/*
$ eyapp -C shiftreduceconflict_fixed.eyp
$ ./shiftreduceconflict_fixed.pm -t -i --dot t.png -m 1 -c 'if e then if e then o else o'
IFTHEN(
TERMINAL[e],
IFTHENELSE(
TERMINAL[e],
TERMINAL[o],
TERMINAL[o]
)
)
Also have a look at the t.png output file
*/
%syntactic token IF =/(?i:if)/
%syntactic token ELSE =/(?i:else)/
%syntactic token THEN =/(?i:then)/
%token EXPR =/(?i:(e))/
%token OTHERSTMT =/(?i:(o))/
%left THEN
%left ELSE
%tree bypass
%%
stmt:
%name IFTHEN
IF expr THEN stmt
| %name IFTHENELSE
IF expr THEN stmt ELSE stmt
| OTHERSTMT
;
expr:
EXPR
;
%%