From 63f418886743517b426920590fb09d6c4f1eb8c7 Mon Sep 17 00:00:00 2001 From: Hans Bolinder Date: Tue, 27 Aug 2013 10:08:48 +0200 Subject: Fix a Yecc bug A bug causing Yecc to generate badly formed parsers when encountering very simple recursive rules has been fixed. Thanks to Eric Pailleau for reporting the bug. --- lib/parsetools/src/yecc.erl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'lib/parsetools/src/yecc.erl') diff --git a/lib/parsetools/src/yecc.erl b/lib/parsetools/src/yecc.erl index 53292b037a..f9207d926e 100644 --- a/lib/parsetools/src/yecc.erl +++ b/lib/parsetools/src/yecc.erl @@ -2106,8 +2106,8 @@ output_state_actions(St0, State, State, {Actions, Jump}, SI) -> output_state_actions(St, State, JState, _XActions, _SI) -> fwrite(St, <<"%% yeccpars2_~w: see yeccpars2_~w\n\n">>, [State, JState]). -output_state_actions1(St, State, [], _IsFirst, normal, _SI) -> - output_state_actions_fini(State, St); +output_state_actions1(St, State, [], IsFirst, normal, _SI) -> + output_state_actions_fini(State, IsFirst, St); output_state_actions1(St0, State, [], IsFirst, {to, ToS}, _SI) -> St = delim(St0, IsFirst), fwrite(St, @@ -2151,9 +2151,9 @@ output_call_to_includefile(NewState, St) -> fwrite(St, <<" yeccpars1(S, ~w, Ss, Stack, T, Ts, Tzr)">>, [NewState]). -output_state_actions_fini(State, St0) -> +output_state_actions_fini(State, IsFirst, St0) -> %% Backward compatible. - St10 = delim(St0, false), + St10 = delim(St0, IsFirst), St = fwrite(St10, <<"yeccpars2_~w(_, _, _, _, T, _, _) ->\n">>, [State]), fwrite(St, <<" yeccerror(T).\n\n">>, []). -- cgit v1.2.3