Ejemplo n.º 1
0
 def push(self, evt):
     if self.verbose:
         print "pushed", evt.data,
     key = evt.data
     d = self.k.get(key)
     if isinstance(d, dict):
         if self.verbose:
             print "transition"
         self.stack.append(key)
         self.k = d
     else:
         if d is None:
             if self.verbose:
                 print "invalid"
             if self.stack or len(key) > 1 or unicodedata_.category(key) == 'C':
                 self.results.append(
                     (self.invalid_cls, self.stack + [key]))
             else:
                 # small optimization:
                 self.k[key] = self.character_cls
                 self.results.append(
                     (self.character_cls, [key]))
         else:
             if self.verbose:
                 print "matched", d
             self.results.append((d, self.stack + [key]))
         self.stack = []
         self.k = self.ck
Ejemplo n.º 2
0
 def _my_unctrl(c, u=_make_unctrl_map()):
     if c in u:
         return u[c]
     else:
         if unicodedata_.category(c).startswith('C'):
             return '\u%04x'%(ord(c),)
         else:
             return c
Ejemplo n.º 3
0
 def _my_unctrl(c, u=_make_unctrl_map()):
     if c in u:
         return u[c]
     else:
         if unicodedata_.category(c).startswith('C'):
             return '\u%04x' % (ord(c), )
         else:
             return c
Ejemplo n.º 4
0
def _make_unctrl_map():
    uc_map = {}
    for c in map(unichr, range(256)):
        if unicodedata_.category(c)[0] <> 'C':
            uc_map[c] = c
    for i in range(32):
        c = unichr(i)
        uc_map[c] = u'^' + unichr(ord('A') + i - 1)
    uc_map['\t'] = '    ' # display TABs as 4 characters
    uc_map['\177'] = u'^?'
    for i in range(256):
        c = unichr(i)
        if not uc_map.has_key(c):
            uc_map[c] = u'\\%03o'%i
    return uc_map
Ejemplo n.º 5
0
def _make_unctrl_map():
    uc_map = {}
    for c in map(unichr, range(256)):
        if unicodedata_.category(c)[0] <> 'C':
            uc_map[c] = c
    for i in range(32):
        c = unichr(i)
        uc_map[c] = u'^' + unichr(ord('A') + i - 1)
    uc_map['\t'] = '    '  # display TABs as 4 characters
    uc_map['\177'] = u'^?'
    for i in range(256):
        c = unichr(i)
        if not uc_map.has_key(c):
            uc_map[c] = u'\\%03o' % i
    return uc_map
Ejemplo n.º 6
0
def _make_unctrl_map():
    uc_map = {}
    for c in map(unichr, range(256)):
        if unicodedata_.category(c)[0] <> "C":
            uc_map[c] = c
    for i in range(32):
        c = unichr(i)
        uc_map[c] = u"^" + unichr(ord("A") + i - 1)
    uc_map["\t"] = "    "  # display TABs as 4 characters
    uc_map["\177"] = u"^?"
    for i in range(256):
        c = unichr(i)
        if not uc_map.has_key(c):
            uc_map[c] = u"\\%03o" % i
    return uc_map