Approved!

[I guess I can understand why actions can't be executed on lookahead.  Too bad 
JavaCC doesn't give a warning when you write that...  Annoying that you have to 
replicate so many productions.  I guess I blame Brendan for not picking a 
different word for the operator that would have made writing the parser easier.]

On 2011-01-08, at 13:07, André Bargull wrote:

> Change bargull-20110108-4LP by barg...@bargull02 on 2011-01-08 18:40:23
> in /home/anba/src/svn/openlaszlo/trunk
> for http://svn.openlaszlo.org/openlaszlo/trunk
> 
> Summary: fix grammar for "in" operator in lookahead
> 
> Bugs Fixed: LPP-6684 (Missing "var" in for-in loop)
> 
> Technical Reviewer: ptw
> QA Reviewer: (pending)
> 
> 
> Details:
> JavaCC doesn't execute semantic actions while doing a lookahead, therefore 
> setAllowIn() gets never called during lookahead. And because of that, 
> getAllowIn() may not report the correct value during a semantic lookahead in 
> the RelOP() production. Therefore I've added a couple of "xxxNoIn" 
> productions instead of relying on semantic lookahead to determine when the 
> "in" operator is allowed.
> 
> I've also changed ConditionalExpression() so it only allows 
> AssignmentExpression() instead of Expression() in the first branch. Changing 
> the 2nd branch to AssignmentExpression() instead of ConditionalExpression() 
> caused some lookahead warnings, because AssignmentExpression() isn't 
> compliant to ECMAScript. Changing AssignmentExpression() to make it 
> ECMAScript compatible didn't work, because of more differences in 
> CallExpression(), MemberExpression(), etc. At least the grammar doesn't 
> anymore allow invalid code, it's now only a bit stricter than the standard. 
> (Also see LPP-9571)
> 
> And added missing jjtAccept() methods for ASTModifiedDefinition and 
> ASTFormalParameterList.
> 
> 
> Tests:
> test case from bug report compiles
> 
> Files:
> M WEB-INF/lps/server/sc/src/org/openlaszlo/sc/Parser.jjt
> M 
> WEB-INF/lps/server/sc/src/org/openlaszlo/sc/parser/ASTModifiedDefinition.java
> M 
> WEB-INF/lps/server/sc/src/org/openlaszlo/sc/parser/ASTFormalParameterList.java
> 
> Changeset: 
> http://svn.openlaszlo.org/openlaszlo/patches/bargull-20110108-4LP.tar
> 


Reply via email to