%token ID = /([A-Za-z]\w*)/ %token NUM = /(\d+)/ %left ',' %left '-' '+' %left '*' '/' %% range: expr '..' expr ';' ; expr : '(' expr ')' | %name PLUS expr '+' expr | %name MINUS expr '-' expr | %name TIMES expr '*' expr | %name DIV expr '/' expr | %name COMMA expr ',' expr | %name ID:RANGE ID | %name NUM NUM ; %%