def get_tokens(self, text, unfiltered=False):
"""
Return an iterable of (tokentype, value) pairs generated from
`text`. If `unfiltered` is set to `True`, the filtering mechanism
is bypassed even if filters are defined.
Also preprocess the text, i.e. expand tabs and strip it if
wanted and applies registered filters.
"""
if isinstance(text, str):
if self.stripall:
text = text.strip()
elif self.stripnl:
text = text.strip('\n')
if sys.version_info[0] < 3 and isinstance(text, str):
# for jython
import cStringIO
text = cStringIO.StringIO(text)
self.encoding = 'utf-8'
else:
# for jython move import section
from _io import StringIO
text = StringIO(text)
def streamer():
for i, t, v in self.get_tokens_unprocessed(text):
# for jython encode
if sys.version_info[0] < 3 and isinstance(v, unicode):
v = v.encode('utf-8')
yield t, v
stream = streamer()
if not unfiltered:
stream = apply_filters(stream, self.filters, self)
return stream
lexer.py 文件源码
python
阅读 22
收藏 0
点赞 0
评论 0
评论列表
文章目录