%start G %% G : ( A | B ) { B | C { D | E } } ; A : "a" ; B : "b" ; C : "c" ; D : "d" ; E : "e" ;