Commit c2c7c373 authored by Raymond Hettinger's avatar Raymond Hettinger

Make the example a little more interesting and useful.

parent 673ccf20
...@@ -1300,6 +1300,7 @@ successive matches:: ...@@ -1300,6 +1300,7 @@ successive matches::
Token = collections.namedtuple('Token', 'typ value line column') Token = collections.namedtuple('Token', 'typ value line column')
def tokenize(s): def tokenize(s):
keywords = {'IF', 'THEN', 'FOR', 'NEXT', 'GOSUB', 'RETURN'}
tok_spec = [ tok_spec = [
('NUMBER', r'\d+(\.\d*)?'), # Integer or decimal number ('NUMBER', r'\d+(\.\d*)?'), # Integer or decimal number
('ASSIGN', r':='), # Assignment operator ('ASSIGN', r':='), # Assignment operator
...@@ -1320,6 +1321,8 @@ successive matches:: ...@@ -1320,6 +1321,8 @@ successive matches::
line_start = pos line_start = pos
line += 1 line += 1
elif typ != 'SKIP': elif typ != 'SKIP':
if typ == 'ID' and val in keywords:
typ = val
yield Token(typ, mo.group(typ), line, mo.start()-line_start) yield Token(typ, mo.group(typ), line, mo.start()-line_start)
pos = mo.end() pos = mo.end()
mo = gettok(s, pos) mo = gettok(s, pos)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment