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
Felix-language@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to