[erlang-bugs] R17A - Bug : unwanted semi-colon in generated erlang module after yecc compilation.
Anthony Ramine
n.oxyde@REDACTED
Mon Oct 28 12:34:56 CET 2013
Forwarding to Richard Carlsson, ping?
--
Anthony Ramine
Le 4 août 2013 à 00:03, PAILLEAU Eric <eric.pailleau@REDACTED> 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
> erlang-bugs@REDACTED
> http://erlang.org/mailman/listinfo/erlang-bugs
More information about the erlang-bugs
mailing list