def push(self, evt):
trace("[input] pushed {!r}", evt.data)
key = evt.data
d = self.k.get(key)
if isinstance(d, dict):
trace("[input] transition")
self.stack.append(key)
self.k = d
else:
if d is None:
trace("[input] 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:
trace("[input] matched {}", d)
self.results.append((d, self.stack + [key]))
self.stack = []
self.k = self.ck
评论列表
文章目录