/* lexical grammar */
%lex
%%
\s+ /* skip whitespace */
[a-z]+ return 'ALPHA'
[0-9]+("."[0-9]+)?\b return 'NUMBER'
"=" return '='
"*" return '*'
"/" return '/'
"-" return '-'
"+" return '+'
"^" return '^'
"!" return '!'
"%" return '%'
"(" return '('
")" return ')'
"PI" return 'PI'
"E" return 'E'
<<EOF>> return 'EOF'
. return 'INVALID'
/lex