Quoting skaller <[EMAIL PROTECTED]>:
> We start with two parses, hit the first statement, and now
> we have four parses. When we hit the 'else' both the inner
> parses without the else option return, and the ones that
> consume the else continue.
>
> Now, the parse i (i) gives up, i (ie), ie (i) and ie (ie) keep
> going. Now, I expected the i/ie conflict in ie(i) and ie(ie)
> to be resolved by a merge but this isn't the case! At the end,
It can't be resolved by a merge. Merge is called when a given part
of the input is reduced to a same non terminal with distinct
interpretations. But the part of the input you consider:
if(i==10)
if(i==0) println "WRONG";
else println "RIGHT";
is never reduced to ie(ie), therefore merge is not responsible for
eliminating the interpretation ie(ie).
> ie(ie) is incomplete and will give up on the next token,
Indeed, that's the way this kind of misinterpretation is eliminated.
Emmanuel
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Felix-language mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/felix-language