/* $ 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 ; %%