[erlang-bugs] R17A - Bug : unwanted semi-colon in generated erlang module after yecc compilation.

Anthony Ramine <>
Mon Oct 28 12:34:56 CET 2013


Forwarding to Richard Carlsson, ping?

-- 
Anthony Ramine

Le 4 août 2013 à 00:03, PAILLEAU Eric <> a écrit :

> 
> 2> yecc:file("test",[]).
> test.yrl: Warning: conflicts: 111 shift/reduce, 0 reduce/reduce
> {ok,"test.erl"}
> 3> c:c("test").
> test.erl:1167: syntax error before: ';'
> 
> Yes, the generated test.erl have a semi-colon before yeccerror .
> (compilation ok by removing it...).
> --8<-------------------------------------------------
> snip... snip
> 
> ;
> yeccpars2_24(_, _, _, _, T, _, _) ->
> yeccerror(T).
> 
> snip... snip
> --8<-------------------------------------------------
> 
> in lib/parsetools/src/yecc.erl
> the problem comes from delim/2 function called in
> output_state_actions_fini/2
> --8<-------------------------------------------------
> snip... snip
> 
> output_state_actions_fini(State, St0) ->
>    %% Backward compatible.
>    St10 = delim(St0, false),
>    St = fwrite(St10, <<"yeccpars2_~w(_, _, _, _, T, _, _) ->\n">>,
> [State]),
>    fwrite(St, <<" yeccerror(T).\n\n">>, []).
> 
> snip... snip
> 
> delim(St, true) ->
>    St;
> delim(St, false) ->
>    fwrite(St, <<";\n">>, []).
> 
> snip... snip
> --8<-------------------------------------------------
> May be the delim/2 function should get 'true' as second argument,
> but the global code is a bit hard to understand and I suppose
> the author should be a better bugfixer... furtherover, I go in vacation
> and won't have time to look at this ;>) .
> 
> comments indicates changes on yeccerror() in yecc.erl since 1.4,
> parsetools-2.0.4 . May be this introduce this bug.
> 
> Helas, so far, I can't say if this bug is a consequence of my parser or not.
> 
> I get same error with R16B01 .
> 
> best regards.
> _______________________________________________
> erlang-bugs mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-bugs



More information about the erlang-bugs mailing list