Issue 12: Disambiguisation runs into dead-loop
Reported by manu....@gmail.com, Feb 2, 2009
Consider this gzl grammar

----
@start expression;

// sample language with function call and method
// sample expression : #true, #false, a, b, a.b, a.b(c), a(b), a(#true), 
// and also the useless #true.#false(#true)

expression -> simpleExpression (methodApplication | functionApplication)* ;

functionApplication -> argumentList;
methodApplication -> "." variableExpression (argumentList)?+;

simpleExpression -> variableExpression| literalExpression;   

argumentList -> '('  expression *(',')')';

variableExpression -> .name=/[a-z]+/;

literalExpression -> "#true" | "#false" ;

----

Compiler runs into a loop while consuming more and more memory.
The rationale of the test is to match expression
a.b(c) as a 'methodApplication' with parameters and not a
'methodApplication' followed by a 'functionApplication'

Feb 2, 2009
#1 manu....@gmail.com
Note: when I remove the '+' after the '?', I get the following error message:

gazelle/gzlc: compiler/ll.lua:803: attempt to index field '?' (a number value)

Feb 6, 2009
Project Member #2 jhaber...@gmail.com
I believe the latter problem you mention is fixed in the latest Git.

The first problem I can reproduce however.  I'll have to track it down and fix it.  Thanks for the report!
Status: Accepted
Labels: FixTarget-0.5