Next | Tricks of the Wizards | 194 |
The tokenizer:
sub tokens { my @tokens = split m{( \*\* | := # ** or := operator | [-+*/^()=] # some other operator | [A-Za-z]\w+ # Identifier | \d*\.\d+(?:[Ee]\d+)? # Decimal number | \d+ # Integer )}x, shift(); grep /\S/, @tokens; }
Easy to understand and to change, efficient, predictable.
Behaves very much like similar lex-generated parsers
Next | Copyright © 2003 M. J. Dominus |