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
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
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
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
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
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