Parrot Perl6Grammar compiler and parsers #24

Backtracking control -- tokens

regex TOP     { <integer> <addop> <integer> {*} }
regex integer { \d+: {*} }
regex addop   { [ '+' | '-' ] {*} }

For modern one-pass languages, non-backtracking regexes are very common

The keyword "token" indicates a regex that does no backtracking by default

Examples:

token integer  { \d+ }

token ident    { <alpha> \w* }

token variable { [ '$' | '@' | '%' ] <ident> }
Copyright © 2009
http://www.pmichaud.com/2009/pres/