Make the example a little more interesting and useful.

This commit is contained in:
Raymond Hettinger 2010-12-07 09:44:21 +00:00
parent 673ccf20dc
commit c2c7c37377

View file

@ -1300,6 +1300,7 @@ successive matches::
Token = collections.namedtuple('Token', 'typ value line column')
def tokenize(s):
keywords = {'IF', 'THEN', 'FOR', 'NEXT', 'GOSUB', 'RETURN'}
tok_spec = [
('NUMBER', r'\d+(\.\d*)?'), # Integer or decimal number
('ASSIGN', r':='), # Assignment operator
@ -1320,6 +1321,8 @@ successive matches::
line_start = pos
line += 1
elif typ != 'SKIP':
if typ == 'ID' and val in keywords:
typ = val
yield Token(typ, mo.group(typ), line, mo.start()-line_start)
pos = mo.end()
mo = gettok(s, pos)