-
rmfuhrer committed patchset 36 of module lpg.update to the LALR Parser Generator CVS repository, changing 1 files.
2009-12-02 15:26:11 UTC by rmfuhrer
-
rmfuhrer committed patchset 3 of module lpg.generator.macosx_x86_64 to the LALR Parser Generator CVS repository, changing 2 files.
2009-12-01 22:58:38 UTC by rmfuhrer
-
rmfuhrer committed patchset 7 of module lpg.generator.feature to the LALR Parser Generator CVS repository, changing 1 files.
2009-12-01 22:50:33 UTC by rmfuhrer
-
rmfuhrer committed patchset 2 of module lpg.generator.macosx_x86_64 to the LALR Parser Generator CVS repository, changing 1 files.
2009-12-01 22:48:58 UTC by rmfuhrer
-
rmfuhrer committed patchset 1 of module lpg.generator.macosx_x86_64 to the LALR Parser Generator CVS repository, changing 7 files.
2009-12-01 22:47:36 UTC by rmfuhrer
-
for example, code
if (true) :
if (true)
;
elseif (true) :
endif;
and code
if (true) :
if (true)
;
else
;
elseif (true) :
endif;
should both valid, but php.exe is unable to parse the first one, the grammar is conflict on 'elseif' and it using wrong shift, you have to lookahead for ':' token.
2009-10-28 02:00:06 UTC by eric_suen
-
Is it possible make following grammar LALR(k):
Goal ::= ')' statement_full
statement_full ::= if_statement_full
| newif_statement
if_statement_full ::= 'if' '(' expr ')' statement_full
| 'if' '(' expr ')' statement_noShortIf 'else' statement_full
| 'if' '(' expr ')' statement_noShortIf elseif_list_full
| 'if' '(' expr ')' statement_noShortIf elseif_list_noShortIf 'else'...
2009-10-27 19:00:40 UTC by eric_suen
-
Is it possible make following grammar LALR(k)
<pre>
Goal ::= ')' statement_full
statement_full ::= if_statement_full
| newif_statement
if_statement_full ::= 'if' '(' expr ')' statement_full
| 'if' '(' expr ')' statement_noShortIf 'else' statement_full
| 'if' '(' expr ')' statement_noShortIf elseif_list_full
| 'if' '(' expr ')' statement_noShortIf elseif_list_noShortIf...
2009-10-27 18:58:33 UTC by eric_suen
-
That's because once a cycle is detected, LPG stops computing extra lookahead. You are correct that in such a case not all the conflicts are reported. Note that when you asked LPG to compute 2 lookaheads, it's really a request to compute "up to 2" lookaheads. The lookahead computation is done incrementally until either the conflict is resolved, or the maximum lookahead count is reached...
2009-09-29 18:31:49 UTC by pgcharles
-
I would like to understand lpg's behaviour for the following grammar:
%Rules
A ::= B C D
B ::= | B C E
C ::= | c
D ::= | d
E ::= | e
%End
where 'c','d' and 'e' are terminal symbols.
Runing lpg with one lookahead, 4 conflicts are reported:
*** In state 3:
test7.jikes:14:11:14:13:128:130: Warning: Shift/reduce conflict in state 3 on "c
" with rule 4...
2009-09-29 05:26:56 UTC by leco