#$ eyapp -TC DynamicallyChangingTheParser.eyp
#$ ./DynamicallyChangingTheParser.pm -t -i -c 'D; S'
#p_is_ds_ss(ds_is_D(TERMINAL[D]),ss_is_S(TERMINAL[S]))

%conflict L {
  /(?=\G\s*;\s*S)/ ?  $self->YYSetReduce(';', ':L') :  $self->YYSetShift(';') 
}
%expect 1
%%
p:  ds ';' ss          | ss ; 
ds: D  %PREC L ';' ds  | %name :L D %PREC L ;
ss: S  ';' ss          | S  ;
%%