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