fix in areRegularExpressionsEnabled()
drop XML token, use XMLLiteral instead of it
diff --git a/plugins/org.eclipse.dltk.javascript.formatter/src/org/eclipse/dltk/javascript/parser/JS.g b/plugins/org.eclipse.dltk.javascript.formatter/src/org/eclipse/dltk/javascript/parser/JS.g
index c2a007a..cce5afe 100644
--- a/plugins/org.eclipse.dltk.javascript.formatter/src/org/eclipse/dltk/javascript/parser/JS.g
+++ b/plugins/org.eclipse.dltk.javascript.formatter/src/org/eclipse/dltk/javascript/parser/JS.g
@@ -218,7 +218,7 @@
 	PDEC ;
 	PINC ;
 	POS ;
-	XML ;
+	XMLLiteral ;
 }
 
 @lexer::header
@@ -251,7 +251,7 @@
 		return true;
 	}
 	if (isIdentifierKeyword(last.getType())) {
-		return true; 
+		return false; 
 	}
 	switch (last.getType())
 	{
@@ -432,7 +432,7 @@
 			case HexIntegerLiteral:
 			case StringLiteral:
 			case RegularExpressionLiteral:
-			case XML:
+			case XMLLiteral:
 			case ARRAY:
 			case OBJECT:
 			case PAREXPR:
@@ -664,7 +664,7 @@
 	| WHILE
 	| WITH
 	| NAMESPACE
-	| XML
+	| WXML
 	| YIELD
 	;
 
@@ -1115,7 +1115,7 @@
 unaryExpression
 	: postfixExpression
 	| unaryOperator^ unaryExpression
-  | XMLLiteral
+	| XMLLiteral
 	;
 	
 unaryOperator
diff --git a/plugins/org.eclipse.dltk.javascript.formatter/src/org/eclipse/dltk/javascript/parser/JSLexer.java b/plugins/org.eclipse.dltk.javascript.formatter/src/org/eclipse/dltk/javascript/parser/JSLexer.java
index 3cea5ad..7797e87 100644
--- a/plugins/org.eclipse.dltk.javascript.formatter/src/org/eclipse/dltk/javascript/parser/JSLexer.java
+++ b/plugins/org.eclipse.dltk.javascript.formatter/src/org/eclipse/dltk/javascript/parser/JSLexer.java
@@ -1,4 +1,4 @@
-// $ANTLR 3.0.1 JS.g 2009-09-03 19:32:37
+// $ANTLR 3.0.1 JS.g 2009-09-11 10:55:01
 
 package org.eclipse.dltk.javascript.parser;
 
@@ -63,7 +63,6 @@
     public static final int GT=80;
     public static final int CALL=135;
     public static final int CharacterEscapeSequence=189;
-    public static final int XML=153;
     public static final int LAND=101;
     public static final int PINC=151;
     public static final int PROTECTED=61;
@@ -86,14 +85,14 @@
     public static final int ADD=87;
     public static final int ZeroToThree=190;
     public static final int ITEM=144;
-    public static final int XMLLiteral=198;
+    public static final int XMLLiteral=153;
     public static final int UnicodeEscapeSequence=193;
     public static final int SHUASS=112;
     public static final int SET=34;
     public static final int SHORT=63;
     public static final int INSTANCEOF=21;
     public static final int SQUOTE=156;
-    public static final int Tokens=199;
+    public static final int Tokens=198;
     public static final int SAME=85;
     public static final int XHCLOSE=124;
     public static final int StringLiteral=173;
@@ -225,7 +224,7 @@
     		return true;
     	}
     	if (isIdentifierKeyword(last.getType())) {
-    		return true; 
+    		return false; 
     	}
     	switch (last.getType())
     	{
diff --git a/plugins/org.eclipse.dltk.javascript.formatter/src/org/eclipse/dltk/javascript/parser/JSParser.java b/plugins/org.eclipse.dltk.javascript.formatter/src/org/eclipse/dltk/javascript/parser/JSParser.java
index 5043cf9..73f7ce1 100644
--- a/plugins/org.eclipse.dltk.javascript.formatter/src/org/eclipse/dltk/javascript/parser/JSParser.java
+++ b/plugins/org.eclipse.dltk.javascript.formatter/src/org/eclipse/dltk/javascript/parser/JSParser.java
@@ -1,4 +1,4 @@
-// $ANTLR 3.0.1 JS.g 2009-09-03 19:32:37
+// $ANTLR 3.0.1 JS.g 2009-09-11 10:55:00
 
 package org.eclipse.dltk.javascript.parser;
 
@@ -13,7 +13,7 @@
 
 public class JSParser extends Parser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "NULL", "TRUE", "FALSE", "BREAK", "CASE", "CATCH", "CONTINUE", "DEFAULT", "DELETE", "DO", "ELSE", "FINALLY", "FOR", "EACH", "FUNCTION", "IF", "IN", "INSTANCEOF", "NEW", "RETURN", "SWITCH", "THIS", "THROW", "TRY", "TYPEOF", "VAR", "VOID", "WHILE", "WITH", "GET", "SET", "YIELD", "CDATA", "WXML", "NAMESPACE", "ABSTRACT", "BOOLEAN", "BYTE", "CHAR", "CLASS", "CONST", "DEBUGGER", "DOUBLE", "ENUM", "EXPORT", "EXTENDS", "FINAL", "FLOAT", "GOTO", "IMPLEMENTS", "IMPORT", "INT", "INTERFACE", "LONG", "NATIVE", "PACKAGE", "PRIVATE", "PROTECTED", "PUBLIC", "SHORT", "STATIC", "SUPER", "SYNCHRONIZED", "THROWS", "TRANSIENT", "VOLATILE", "LBRACE", "RBRACE", "LPAREN", "RPAREN", "LBRACK", "RBRACK", "DOT", "SEMIC", "COMMA", "LT", "GT", "LTE", "GTE", "EQ", "NEQ", "SAME", "NSAME", "ADD", "SUB", "MUL", "MOD", "INC", "DEC", "SHL", "SHR", "SHU", "AND", "OR", "XOR", "NOT", "INV", "LAND", "LOR", "QUE", "COLON", "ASSIGN", "ADDASS", "SUBASS", "MULASS", "MODASS", "SHLASS", "SHRASS", "SHUASS", "ANDASS", "ORASS", "XORASS", "DIV", "DIVASS", "XCOPEN", "XCCLOSE", "XLCLOSE", "XRCLOSE", "CDATAOPEN", "XHOPEN", "XHCLOSE", "AT", "DOTDOT", "COLONCOLON", "ARGS", "ARRAY", "BLOCK", "BYFIELD", "BYINDEX", "ALLCHILDREN", "LOCALNAME", "CALL", "CEXPR", "EXPR", "FORITER", "FORSTEP", "FOREACH", "GETTER", "SETTER", "DEFAULT_XML_NAMESPACE", "ITEM", "LABELLED", "NAMEDVALUE", "NEG", "OBJECT", "PAREXPR", "PDEC", "PINC", "POS", "XML", "BSLASH", "DQUOTE", "SQUOTE", "TAB", "VT", "FF", "SP", "NBSP", "USP", "WhiteSpace", "LF", "CR", "LS", "PS", "LineTerminatorChar", "LineTerminator", "EOL", "MultiLineComment", "SingleLineComment", "StringLiteral", "XmlAttribute", "HexDigit", "IdentifierStartASCII", "DecimalDigit", "IdentifierPart", "IdentifierNameASCIIStart", "Identifier", "PropertyIdentifierSymbols", "RegularExpressionLiteral", "OctalDigit", "ExponentPart", "DecimalIntegerLiteral", "DecimalLiteral", "OctalIntegerLiteral", "HexIntegerLiteral", "CharacterEscapeSequence", "ZeroToThree", "OctalEscapeSequence", "HexEscapeSequence", "UnicodeEscapeSequence", "EscapeSequence", "BackslashSequence", "RegularExpressionFirstChar", "RegularExpressionChar", "XMLLiteral"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "NULL", "TRUE", "FALSE", "BREAK", "CASE", "CATCH", "CONTINUE", "DEFAULT", "DELETE", "DO", "ELSE", "FINALLY", "FOR", "EACH", "FUNCTION", "IF", "IN", "INSTANCEOF", "NEW", "RETURN", "SWITCH", "THIS", "THROW", "TRY", "TYPEOF", "VAR", "VOID", "WHILE", "WITH", "GET", "SET", "YIELD", "CDATA", "WXML", "NAMESPACE", "ABSTRACT", "BOOLEAN", "BYTE", "CHAR", "CLASS", "CONST", "DEBUGGER", "DOUBLE", "ENUM", "EXPORT", "EXTENDS", "FINAL", "FLOAT", "GOTO", "IMPLEMENTS", "IMPORT", "INT", "INTERFACE", "LONG", "NATIVE", "PACKAGE", "PRIVATE", "PROTECTED", "PUBLIC", "SHORT", "STATIC", "SUPER", "SYNCHRONIZED", "THROWS", "TRANSIENT", "VOLATILE", "LBRACE", "RBRACE", "LPAREN", "RPAREN", "LBRACK", "RBRACK", "DOT", "SEMIC", "COMMA", "LT", "GT", "LTE", "GTE", "EQ", "NEQ", "SAME", "NSAME", "ADD", "SUB", "MUL", "MOD", "INC", "DEC", "SHL", "SHR", "SHU", "AND", "OR", "XOR", "NOT", "INV", "LAND", "LOR", "QUE", "COLON", "ASSIGN", "ADDASS", "SUBASS", "MULASS", "MODASS", "SHLASS", "SHRASS", "SHUASS", "ANDASS", "ORASS", "XORASS", "DIV", "DIVASS", "XCOPEN", "XCCLOSE", "XLCLOSE", "XRCLOSE", "CDATAOPEN", "XHOPEN", "XHCLOSE", "AT", "DOTDOT", "COLONCOLON", "ARGS", "ARRAY", "BLOCK", "BYFIELD", "BYINDEX", "ALLCHILDREN", "LOCALNAME", "CALL", "CEXPR", "EXPR", "FORITER", "FORSTEP", "FOREACH", "GETTER", "SETTER", "DEFAULT_XML_NAMESPACE", "ITEM", "LABELLED", "NAMEDVALUE", "NEG", "OBJECT", "PAREXPR", "PDEC", "PINC", "POS", "XMLLiteral", "BSLASH", "DQUOTE", "SQUOTE", "TAB", "VT", "FF", "SP", "NBSP", "USP", "WhiteSpace", "LF", "CR", "LS", "PS", "LineTerminatorChar", "LineTerminator", "EOL", "MultiLineComment", "SingleLineComment", "StringLiteral", "XmlAttribute", "HexDigit", "IdentifierStartASCII", "DecimalDigit", "IdentifierPart", "IdentifierNameASCIIStart", "Identifier", "PropertyIdentifierSymbols", "RegularExpressionLiteral", "OctalDigit", "ExponentPart", "DecimalIntegerLiteral", "DecimalLiteral", "OctalIntegerLiteral", "HexIntegerLiteral", "CharacterEscapeSequence", "ZeroToThree", "OctalEscapeSequence", "HexEscapeSequence", "UnicodeEscapeSequence", "EscapeSequence", "BackslashSequence", "RegularExpressionFirstChar", "RegularExpressionChar"
     };
     public static final int PACKAGE=59;
     public static final int FUNCTION=18;
@@ -70,7 +70,6 @@
     public static final int CALL=135;
     public static final int CharacterEscapeSequence=189;
     public static final int LAND=101;
-    public static final int XML=153;
     public static final int PINC=151;
     public static final int PROTECTED=61;
     public static final int LBRACK=74;
@@ -92,7 +91,7 @@
     public static final int ADD=87;
     public static final int ZeroToThree=190;
     public static final int ITEM=144;
-    public static final int XMLLiteral=198;
+    public static final int XMLLiteral=153;
     public static final int UnicodeEscapeSequence=193;
     public static final int SHUASS=112;
     public static final int SHORT=63;
@@ -294,7 +293,7 @@
     			case HexIntegerLiteral:
     			case StringLiteral:
     			case RegularExpressionLiteral:
-    			case XML:
+    			case XMLLiteral:
     			case ARRAY:
     			case OBJECT:
     			case PAREXPR:
@@ -426,6 +425,7 @@
             case GET:
             case SET:
             case YIELD:
+            case WXML:
             case NAMESPACE:
             case ABSTRACT:
             case BOOLEAN:
@@ -458,12 +458,10 @@
             case THROWS:
             case TRANSIENT:
             case VOLATILE:
-            case XML:
                 {
                 alt1=1;
                 }
                 break;
-            case WXML:
             case Identifier:
                 {
                 alt1=2;
@@ -700,8 +698,8 @@
             case GET:
             case SET:
             case YIELD:
+            case WXML:
             case NAMESPACE:
-            case XML:
                 {
                 alt2=1;
                 }
@@ -836,7 +834,7 @@
     };
 
     // $ANTLR start keyword
-    // JS.g:637:1: keyword : ( BREAK | CASE | CATCH | CONTINUE | DEFAULT | DELETE | DO | ELSE | FINALLY | FOR | EACH | FUNCTION | GET | SET | IF | IN | INSTANCEOF | NEW | RETURN | SWITCH | THIS | THROW | TRY | TYPEOF | VAR | VOID | WHILE | WITH | NAMESPACE | XML | YIELD );
+    // JS.g:637:1: keyword : ( BREAK | CASE | CATCH | CONTINUE | DEFAULT | DELETE | DO | ELSE | FINALLY | FOR | EACH | FUNCTION | GET | SET | IF | IN | INSTANCEOF | NEW | RETURN | SWITCH | THIS | THROW | TRY | TYPEOF | VAR | VOID | WHILE | WITH | NAMESPACE | WXML | YIELD );
     public final keyword_return keyword() throws RecognitionException {
         keyword_return retval = new keyword_return();
         retval.start = input.LT(1);
@@ -848,13 +846,13 @@
         Object set11_tree=null;
 
         try {
-            // JS.g:638:2: ( BREAK | CASE | CATCH | CONTINUE | DEFAULT | DELETE | DO | ELSE | FINALLY | FOR | EACH | FUNCTION | GET | SET | IF | IN | INSTANCEOF | NEW | RETURN | SWITCH | THIS | THROW | TRY | TYPEOF | VAR | VOID | WHILE | WITH | NAMESPACE | XML | YIELD )
+            // JS.g:638:2: ( BREAK | CASE | CATCH | CONTINUE | DEFAULT | DELETE | DO | ELSE | FINALLY | FOR | EACH | FUNCTION | GET | SET | IF | IN | INSTANCEOF | NEW | RETURN | SWITCH | THIS | THROW | TRY | TYPEOF | VAR | VOID | WHILE | WITH | NAMESPACE | WXML | YIELD )
             // JS.g:
             {
             root_0 = (Object)adaptor.nil();
 
             set11=(Token)input.LT(1);
-            if ( (input.LA(1)>=BREAK && input.LA(1)<=YIELD)||input.LA(1)==NAMESPACE||input.LA(1)==XML ) {
+            if ( (input.LA(1)>=BREAK && input.LA(1)<=YIELD)||(input.LA(1)>=WXML && input.LA(1)<=NAMESPACE) ) {
                 input.consume();
                 adaptor.addChild(root_0, adaptor.create(set11));
                 errorRecovery=false;
@@ -1624,7 +1622,7 @@
             int alt6=2;
             int LA6_0 = input.LA(1);
 
-            if ( ((LA6_0>=NULL && LA6_0<=FALSE)||LA6_0==DELETE||(LA6_0>=EACH && LA6_0<=FUNCTION)||LA6_0==NEW||LA6_0==THIS||LA6_0==TYPEOF||LA6_0==VOID||(LA6_0>=GET && LA6_0<=YIELD)||(LA6_0>=WXML && LA6_0<=NAMESPACE)||LA6_0==LBRACE||LA6_0==LPAREN||LA6_0==LBRACK||LA6_0==COMMA||(LA6_0>=ADD && LA6_0<=SUB)||(LA6_0>=INC && LA6_0<=DEC)||(LA6_0>=NOT && LA6_0<=INV)||(LA6_0>=StringLiteral && LA6_0<=XmlAttribute)||LA6_0==Identifier||LA6_0==RegularExpressionLiteral||(LA6_0>=DecimalLiteral && LA6_0<=HexIntegerLiteral)||LA6_0==XMLLiteral) ) {
+            if ( ((LA6_0>=NULL && LA6_0<=FALSE)||LA6_0==DELETE||(LA6_0>=EACH && LA6_0<=FUNCTION)||LA6_0==NEW||LA6_0==THIS||LA6_0==TYPEOF||LA6_0==VOID||(LA6_0>=GET && LA6_0<=YIELD)||(LA6_0>=WXML && LA6_0<=NAMESPACE)||LA6_0==LBRACE||LA6_0==LPAREN||LA6_0==LBRACK||LA6_0==COMMA||(LA6_0>=ADD && LA6_0<=SUB)||(LA6_0>=INC && LA6_0<=DEC)||(LA6_0>=NOT && LA6_0<=INV)||LA6_0==XMLLiteral||(LA6_0>=StringLiteral && LA6_0<=XmlAttribute)||LA6_0==Identifier||LA6_0==RegularExpressionLiteral||(LA6_0>=DecimalLiteral && LA6_0<=HexIntegerLiteral)) ) {
                 alt6=1;
             }
             else if ( (LA6_0==RBRACK) ) {
@@ -1761,7 +1759,7 @@
             int alt7=2;
             int LA7_0 = input.LA(1);
 
-            if ( ((LA7_0>=NULL && LA7_0<=FALSE)||LA7_0==DELETE||(LA7_0>=EACH && LA7_0<=FUNCTION)||LA7_0==NEW||LA7_0==THIS||LA7_0==TYPEOF||LA7_0==VOID||(LA7_0>=GET && LA7_0<=YIELD)||(LA7_0>=WXML && LA7_0<=NAMESPACE)||LA7_0==LBRACE||LA7_0==LPAREN||LA7_0==LBRACK||(LA7_0>=ADD && LA7_0<=SUB)||(LA7_0>=INC && LA7_0<=DEC)||(LA7_0>=NOT && LA7_0<=INV)||(LA7_0>=StringLiteral && LA7_0<=XmlAttribute)||LA7_0==Identifier||LA7_0==RegularExpressionLiteral||(LA7_0>=DecimalLiteral && LA7_0<=HexIntegerLiteral)||LA7_0==XMLLiteral) ) {
+            if ( ((LA7_0>=NULL && LA7_0<=FALSE)||LA7_0==DELETE||(LA7_0>=EACH && LA7_0<=FUNCTION)||LA7_0==NEW||LA7_0==THIS||LA7_0==TYPEOF||LA7_0==VOID||(LA7_0>=GET && LA7_0<=YIELD)||(LA7_0>=WXML && LA7_0<=NAMESPACE)||LA7_0==LBRACE||LA7_0==LPAREN||LA7_0==LBRACK||(LA7_0>=ADD && LA7_0<=SUB)||(LA7_0>=INC && LA7_0<=DEC)||(LA7_0>=NOT && LA7_0<=INV)||LA7_0==XMLLiteral||(LA7_0>=StringLiteral && LA7_0<=XmlAttribute)||LA7_0==Identifier||LA7_0==RegularExpressionLiteral||(LA7_0>=DecimalLiteral && LA7_0<=HexIntegerLiteral)) ) {
                 alt7=1;
             }
             else if ( (LA7_0==RBRACK||LA7_0==COMMA) ) {
@@ -2175,7 +2173,7 @@
             stream_assignmentExpression.add(assignmentExpression44.getTree());
 
             // AST REWRITE
-            // elements: propertyName, assignmentExpression
+            // elements: assignmentExpression, propertyName
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -2568,7 +2566,7 @@
             int alt14=2;
             int LA14_0 = input.LA(1);
 
-            if ( ((LA14_0>=NULL && LA14_0<=FALSE)||LA14_0==DELETE||(LA14_0>=EACH && LA14_0<=FUNCTION)||LA14_0==NEW||LA14_0==THIS||LA14_0==TYPEOF||LA14_0==VOID||(LA14_0>=GET && LA14_0<=YIELD)||(LA14_0>=WXML && LA14_0<=NAMESPACE)||LA14_0==LBRACE||LA14_0==LPAREN||LA14_0==LBRACK||(LA14_0>=ADD && LA14_0<=SUB)||(LA14_0>=INC && LA14_0<=DEC)||(LA14_0>=NOT && LA14_0<=INV)||(LA14_0>=StringLiteral && LA14_0<=XmlAttribute)||LA14_0==Identifier||LA14_0==RegularExpressionLiteral||(LA14_0>=DecimalLiteral && LA14_0<=HexIntegerLiteral)||LA14_0==XMLLiteral) ) {
+            if ( ((LA14_0>=NULL && LA14_0<=FALSE)||LA14_0==DELETE||(LA14_0>=EACH && LA14_0<=FUNCTION)||LA14_0==NEW||LA14_0==THIS||LA14_0==TYPEOF||LA14_0==VOID||(LA14_0>=GET && LA14_0<=YIELD)||(LA14_0>=WXML && LA14_0<=NAMESPACE)||LA14_0==LBRACE||LA14_0==LPAREN||LA14_0==LBRACK||(LA14_0>=ADD && LA14_0<=SUB)||(LA14_0>=INC && LA14_0<=DEC)||(LA14_0>=NOT && LA14_0<=INV)||LA14_0==XMLLiteral||(LA14_0>=StringLiteral && LA14_0<=XmlAttribute)||LA14_0==Identifier||LA14_0==RegularExpressionLiteral||(LA14_0>=DecimalLiteral && LA14_0<=HexIntegerLiteral)) ) {
                 alt14=1;
             }
             switch (alt14) {
@@ -2795,7 +2793,7 @@
             	    stream_arguments.add(arguments60.getTree());
 
             	    // AST REWRITE
-            	    // elements: arguments, leftHandSideExpression
+            	    // elements: leftHandSideExpression, arguments
             	    // token labels: 
             	    // rule labels: retval
             	    // token list labels: 
@@ -2883,7 +2881,7 @@
             	    stream_rightHandSideExpression.add(rightHandSideExpression65.getTree());
 
             	    // AST REWRITE
-            	    // elements: leftHandSideExpression, rightHandSideExpression
+            	    // elements: rightHandSideExpression, leftHandSideExpression
             	    // token labels: 
             	    // rule labels: retval
             	    // token list labels: 
@@ -2925,7 +2923,7 @@
             	    stream_expression.add(expression67.getTree());
 
             	    // AST REWRITE
-            	    // elements: leftHandSideExpression, expression
+            	    // elements: expression, leftHandSideExpression
             	    // token labels: 
             	    // rule labels: retval
             	    // token list labels: 
@@ -2967,7 +2965,7 @@
             	    stream_expression.add(expression69.getTree());
 
             	    // AST REWRITE
-            	    // elements: leftHandSideExpression, expression
+            	    // elements: expression, leftHandSideExpression
             	    // token labels: 
             	    // rule labels: retval
             	    // token list labels: 
@@ -3417,12 +3415,12 @@
                     }
                     break;
                 case 3 :
-                    // JS.g:1118:5: XMLLiteral
+                    // JS.g:1118:4: XMLLiteral
                     {
                     root_0 = (Object)adaptor.nil();
 
                     XMLLiteral79=(Token)input.LT(1);
-                    match(input,XMLLiteral,FOLLOW_XMLLiteral_in_unaryExpression4135); 
+                    match(input,XMLLiteral,FOLLOW_XMLLiteral_in_unaryExpression4134); 
                     XMLLiteral79_tree = (Object)adaptor.create(XMLLiteral79);
                     adaptor.addChild(root_0, XMLLiteral79_tree);
 
@@ -3548,7 +3546,7 @@
                     root_0 = (Object)adaptor.nil();
 
                     DELETE80=(Token)input.LT(1);
-                    match(input,DELETE,FOLLOW_DELETE_in_unaryOperator4147); 
+                    match(input,DELETE,FOLLOW_DELETE_in_unaryOperator4146); 
                     DELETE80_tree = (Object)adaptor.create(DELETE80);
                     adaptor.addChild(root_0, DELETE80_tree);
 
@@ -3561,7 +3559,7 @@
                     root_0 = (Object)adaptor.nil();
 
                     VOID81=(Token)input.LT(1);
-                    match(input,VOID,FOLLOW_VOID_in_unaryOperator4152); 
+                    match(input,VOID,FOLLOW_VOID_in_unaryOperator4151); 
                     VOID81_tree = (Object)adaptor.create(VOID81);
                     adaptor.addChild(root_0, VOID81_tree);
 
@@ -3574,7 +3572,7 @@
                     root_0 = (Object)adaptor.nil();
 
                     TYPEOF82=(Token)input.LT(1);
-                    match(input,TYPEOF,FOLLOW_TYPEOF_in_unaryOperator4157); 
+                    match(input,TYPEOF,FOLLOW_TYPEOF_in_unaryOperator4156); 
                     TYPEOF82_tree = (Object)adaptor.create(TYPEOF82);
                     adaptor.addChild(root_0, TYPEOF82_tree);
 
@@ -3587,7 +3585,7 @@
                     root_0 = (Object)adaptor.nil();
 
                     INC83=(Token)input.LT(1);
-                    match(input,INC,FOLLOW_INC_in_unaryOperator4162); 
+                    match(input,INC,FOLLOW_INC_in_unaryOperator4161); 
                     INC83_tree = (Object)adaptor.create(INC83);
                     adaptor.addChild(root_0, INC83_tree);
 
@@ -3600,7 +3598,7 @@
                     root_0 = (Object)adaptor.nil();
 
                     DEC84=(Token)input.LT(1);
-                    match(input,DEC,FOLLOW_DEC_in_unaryOperator4167); 
+                    match(input,DEC,FOLLOW_DEC_in_unaryOperator4166); 
                     DEC84_tree = (Object)adaptor.create(DEC84);
                     adaptor.addChild(root_0, DEC84_tree);
 
@@ -3613,7 +3611,7 @@
                     root_0 = (Object)adaptor.nil();
 
                     op=(Token)input.LT(1);
-                    match(input,ADD,FOLLOW_ADD_in_unaryOperator4174); 
+                    match(input,ADD,FOLLOW_ADD_in_unaryOperator4173); 
                     op_tree = (Object)adaptor.create(op);
                     adaptor.addChild(root_0, op_tree);
 
@@ -3627,7 +3625,7 @@
                     root_0 = (Object)adaptor.nil();
 
                     op=(Token)input.LT(1);
-                    match(input,SUB,FOLLOW_SUB_in_unaryOperator4183); 
+                    match(input,SUB,FOLLOW_SUB_in_unaryOperator4182); 
                     op_tree = (Object)adaptor.create(op);
                     adaptor.addChild(root_0, op_tree);
 
@@ -3641,7 +3639,7 @@
                     root_0 = (Object)adaptor.nil();
 
                     INV85=(Token)input.LT(1);
-                    match(input,INV,FOLLOW_INV_in_unaryOperator4190); 
+                    match(input,INV,FOLLOW_INV_in_unaryOperator4189); 
                     INV85_tree = (Object)adaptor.create(INV85);
                     adaptor.addChild(root_0, INV85_tree);
 
@@ -3654,7 +3652,7 @@
                     root_0 = (Object)adaptor.nil();
 
                     NOT86=(Token)input.LT(1);
-                    match(input,NOT,FOLLOW_NOT_in_unaryOperator4195); 
+                    match(input,NOT,FOLLOW_NOT_in_unaryOperator4194); 
                     NOT86_tree = (Object)adaptor.create(NOT86);
                     adaptor.addChild(root_0, NOT86_tree);
 
@@ -3667,7 +3665,7 @@
                     root_0 = (Object)adaptor.nil();
 
                     YIELD87=(Token)input.LT(1);
-                    match(input,YIELD,FOLLOW_YIELD_in_unaryOperator4200); 
+                    match(input,YIELD,FOLLOW_YIELD_in_unaryOperator4199); 
                     YIELD87_tree = (Object)adaptor.create(YIELD87);
                     adaptor.addChild(root_0, YIELD87_tree);
 
@@ -3729,33 +3727,33 @@
             // JS.g:1159:5: DEFAULT WXML NAMESPACE ASSIGN StringLiteral semic
             {
             DEFAULT88=(Token)input.LT(1);
-            match(input,DEFAULT,FOLLOW_DEFAULT_in_namespaceStatement4236); 
+            match(input,DEFAULT,FOLLOW_DEFAULT_in_namespaceStatement4235); 
             stream_DEFAULT.add(DEFAULT88);
 
             WXML89=(Token)input.LT(1);
-            match(input,WXML,FOLLOW_WXML_in_namespaceStatement4238); 
+            match(input,WXML,FOLLOW_WXML_in_namespaceStatement4237); 
             stream_WXML.add(WXML89);
 
             NAMESPACE90=(Token)input.LT(1);
-            match(input,NAMESPACE,FOLLOW_NAMESPACE_in_namespaceStatement4240); 
+            match(input,NAMESPACE,FOLLOW_NAMESPACE_in_namespaceStatement4239); 
             stream_NAMESPACE.add(NAMESPACE90);
 
             ASSIGN91=(Token)input.LT(1);
-            match(input,ASSIGN,FOLLOW_ASSIGN_in_namespaceStatement4242); 
+            match(input,ASSIGN,FOLLOW_ASSIGN_in_namespaceStatement4241); 
             stream_ASSIGN.add(ASSIGN91);
 
             StringLiteral92=(Token)input.LT(1);
-            match(input,StringLiteral,FOLLOW_StringLiteral_in_namespaceStatement4244); 
+            match(input,StringLiteral,FOLLOW_StringLiteral_in_namespaceStatement4243); 
             stream_StringLiteral.add(StringLiteral92);
 
-            pushFollow(FOLLOW_semic_in_namespaceStatement4246);
+            pushFollow(FOLLOW_semic_in_namespaceStatement4245);
             semic93=semic();
             _fsp--;
 
             stream_semic.add(semic93.getTree());
 
             // AST REWRITE
-            // elements: StringLiteral, ASSIGN, WXML, DEFAULT
+            // elements: DEFAULT, StringLiteral, WXML, ASSIGN
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -3828,7 +3826,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression4278);
+            pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression4277);
             unaryExpression94=unaryExpression();
             _fsp--;
 
@@ -3857,10 +3855,10 @@
             	    else {
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_multiplicativeExpression4282);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_multiplicativeExpression4281);    throw mse;
             	    }
 
-            	    pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression4297);
+            	    pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression4296);
             	    unaryExpression96=unaryExpression();
             	    _fsp--;
 
@@ -3920,7 +3918,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression4315);
+            pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression4314);
             multiplicativeExpression97=multiplicativeExpression();
             _fsp--;
 
@@ -3949,10 +3947,10 @@
             	    else {
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_additiveExpression4319);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_additiveExpression4318);    throw mse;
             	    }
 
-            	    pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression4330);
+            	    pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression4329);
             	    multiplicativeExpression99=multiplicativeExpression();
             	    _fsp--;
 
@@ -4012,7 +4010,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_additiveExpression_in_shiftExpression4349);
+            pushFollow(FOLLOW_additiveExpression_in_shiftExpression4348);
             additiveExpression100=additiveExpression();
             _fsp--;
 
@@ -4041,10 +4039,10 @@
             	    else {
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_shiftExpression4353);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_shiftExpression4352);    throw mse;
             	    }
 
-            	    pushFollow(FOLLOW_additiveExpression_in_shiftExpression4368);
+            	    pushFollow(FOLLOW_additiveExpression_in_shiftExpression4367);
             	    additiveExpression102=additiveExpression();
             	    _fsp--;
 
@@ -4104,7 +4102,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_shiftExpression_in_relationalExpression4387);
+            pushFollow(FOLLOW_shiftExpression_in_relationalExpression4386);
             shiftExpression103=shiftExpression();
             _fsp--;
 
@@ -4136,10 +4134,10 @@
             	    else {
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_relationalExpression4391);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_relationalExpression4390);    throw mse;
             	    }
 
-            	    pushFollow(FOLLOW_shiftExpression_in_relationalExpression4418);
+            	    pushFollow(FOLLOW_shiftExpression_in_relationalExpression4417);
             	    shiftExpression105=shiftExpression();
             	    _fsp--;
 
@@ -4199,7 +4197,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_shiftExpression_in_relationalExpressionNoIn4432);
+            pushFollow(FOLLOW_shiftExpression_in_relationalExpressionNoIn4431);
             shiftExpression106=shiftExpression();
             _fsp--;
 
@@ -4228,10 +4226,10 @@
             	    else {
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_relationalExpressionNoIn4436);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_relationalExpressionNoIn4435);    throw mse;
             	    }
 
-            	    pushFollow(FOLLOW_shiftExpression_in_relationalExpressionNoIn4459);
+            	    pushFollow(FOLLOW_shiftExpression_in_relationalExpressionNoIn4458);
             	    shiftExpression108=shiftExpression();
             	    _fsp--;
 
@@ -4291,7 +4289,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_relationalExpression_in_equalityExpression4478);
+            pushFollow(FOLLOW_relationalExpression_in_equalityExpression4477);
             relationalExpression109=relationalExpression();
             _fsp--;
 
@@ -4320,10 +4318,10 @@
             	    else {
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_equalityExpression4482);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_equalityExpression4481);    throw mse;
             	    }
 
-            	    pushFollow(FOLLOW_relationalExpression_in_equalityExpression4501);
+            	    pushFollow(FOLLOW_relationalExpression_in_equalityExpression4500);
             	    relationalExpression111=relationalExpression();
             	    _fsp--;
 
@@ -4383,7 +4381,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_relationalExpressionNoIn_in_equalityExpressionNoIn4515);
+            pushFollow(FOLLOW_relationalExpressionNoIn_in_equalityExpressionNoIn4514);
             relationalExpressionNoIn112=relationalExpressionNoIn();
             _fsp--;
 
@@ -4412,10 +4410,10 @@
             	    else {
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_equalityExpressionNoIn4519);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_equalityExpressionNoIn4518);    throw mse;
             	    }
 
-            	    pushFollow(FOLLOW_relationalExpressionNoIn_in_equalityExpressionNoIn4538);
+            	    pushFollow(FOLLOW_relationalExpressionNoIn_in_equalityExpressionNoIn4537);
             	    relationalExpressionNoIn114=relationalExpressionNoIn();
             	    _fsp--;
 
@@ -4475,7 +4473,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_equalityExpression_in_bitwiseANDExpression4558);
+            pushFollow(FOLLOW_equalityExpression_in_bitwiseANDExpression4557);
             equalityExpression115=equalityExpression();
             _fsp--;
 
@@ -4496,11 +4494,11 @@
             	    // JS.g:1214:25: AND equalityExpression
             	    {
             	    AND116=(Token)input.LT(1);
-            	    match(input,AND,FOLLOW_AND_in_bitwiseANDExpression4562); 
+            	    match(input,AND,FOLLOW_AND_in_bitwiseANDExpression4561); 
             	    AND116_tree = (Object)adaptor.create(AND116);
             	    root_0 = (Object)adaptor.becomeRoot(AND116_tree, root_0);
 
-            	    pushFollow(FOLLOW_equalityExpression_in_bitwiseANDExpression4565);
+            	    pushFollow(FOLLOW_equalityExpression_in_bitwiseANDExpression4564);
             	    equalityExpression117=equalityExpression();
             	    _fsp--;
 
@@ -4560,7 +4558,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_equalityExpressionNoIn_in_bitwiseANDExpressionNoIn4579);
+            pushFollow(FOLLOW_equalityExpressionNoIn_in_bitwiseANDExpressionNoIn4578);
             equalityExpressionNoIn118=equalityExpressionNoIn();
             _fsp--;
 
@@ -4581,11 +4579,11 @@
             	    // JS.g:1218:29: AND equalityExpressionNoIn
             	    {
             	    AND119=(Token)input.LT(1);
-            	    match(input,AND,FOLLOW_AND_in_bitwiseANDExpressionNoIn4583); 
+            	    match(input,AND,FOLLOW_AND_in_bitwiseANDExpressionNoIn4582); 
             	    AND119_tree = (Object)adaptor.create(AND119);
             	    root_0 = (Object)adaptor.becomeRoot(AND119_tree, root_0);
 
-            	    pushFollow(FOLLOW_equalityExpressionNoIn_in_bitwiseANDExpressionNoIn4586);
+            	    pushFollow(FOLLOW_equalityExpressionNoIn_in_bitwiseANDExpressionNoIn4585);
             	    equalityExpressionNoIn120=equalityExpressionNoIn();
             	    _fsp--;
 
@@ -4645,7 +4643,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_bitwiseANDExpression_in_bitwiseXORExpression4602);
+            pushFollow(FOLLOW_bitwiseANDExpression_in_bitwiseXORExpression4601);
             bitwiseANDExpression121=bitwiseANDExpression();
             _fsp--;
 
@@ -4666,11 +4664,11 @@
             	    // JS.g:1222:27: XOR bitwiseANDExpression
             	    {
             	    XOR122=(Token)input.LT(1);
-            	    match(input,XOR,FOLLOW_XOR_in_bitwiseXORExpression4606); 
+            	    match(input,XOR,FOLLOW_XOR_in_bitwiseXORExpression4605); 
             	    XOR122_tree = (Object)adaptor.create(XOR122);
             	    root_0 = (Object)adaptor.becomeRoot(XOR122_tree, root_0);
 
-            	    pushFollow(FOLLOW_bitwiseANDExpression_in_bitwiseXORExpression4609);
+            	    pushFollow(FOLLOW_bitwiseANDExpression_in_bitwiseXORExpression4608);
             	    bitwiseANDExpression123=bitwiseANDExpression();
             	    _fsp--;
 
@@ -4730,7 +4728,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_bitwiseANDExpressionNoIn_in_bitwiseXORExpressionNoIn4625);
+            pushFollow(FOLLOW_bitwiseANDExpressionNoIn_in_bitwiseXORExpressionNoIn4624);
             bitwiseANDExpressionNoIn124=bitwiseANDExpressionNoIn();
             _fsp--;
 
@@ -4751,11 +4749,11 @@
             	    // JS.g:1226:31: XOR bitwiseANDExpressionNoIn
             	    {
             	    XOR125=(Token)input.LT(1);
-            	    match(input,XOR,FOLLOW_XOR_in_bitwiseXORExpressionNoIn4629); 
+            	    match(input,XOR,FOLLOW_XOR_in_bitwiseXORExpressionNoIn4628); 
             	    XOR125_tree = (Object)adaptor.create(XOR125);
             	    root_0 = (Object)adaptor.becomeRoot(XOR125_tree, root_0);
 
-            	    pushFollow(FOLLOW_bitwiseANDExpressionNoIn_in_bitwiseXORExpressionNoIn4632);
+            	    pushFollow(FOLLOW_bitwiseANDExpressionNoIn_in_bitwiseXORExpressionNoIn4631);
             	    bitwiseANDExpressionNoIn126=bitwiseANDExpressionNoIn();
             	    _fsp--;
 
@@ -4815,7 +4813,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_bitwiseXORExpression_in_bitwiseORExpression4647);
+            pushFollow(FOLLOW_bitwiseXORExpression_in_bitwiseORExpression4646);
             bitwiseXORExpression127=bitwiseXORExpression();
             _fsp--;
 
@@ -4836,11 +4834,11 @@
             	    // JS.g:1230:27: OR bitwiseXORExpression
             	    {
             	    OR128=(Token)input.LT(1);
-            	    match(input,OR,FOLLOW_OR_in_bitwiseORExpression4651); 
+            	    match(input,OR,FOLLOW_OR_in_bitwiseORExpression4650); 
             	    OR128_tree = (Object)adaptor.create(OR128);
             	    root_0 = (Object)adaptor.becomeRoot(OR128_tree, root_0);
 
-            	    pushFollow(FOLLOW_bitwiseXORExpression_in_bitwiseORExpression4654);
+            	    pushFollow(FOLLOW_bitwiseXORExpression_in_bitwiseORExpression4653);
             	    bitwiseXORExpression129=bitwiseXORExpression();
             	    _fsp--;
 
@@ -4900,7 +4898,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_bitwiseXORExpressionNoIn_in_bitwiseORExpressionNoIn4669);
+            pushFollow(FOLLOW_bitwiseXORExpressionNoIn_in_bitwiseORExpressionNoIn4668);
             bitwiseXORExpressionNoIn130=bitwiseXORExpressionNoIn();
             _fsp--;
 
@@ -4921,11 +4919,11 @@
             	    // JS.g:1234:31: OR bitwiseXORExpressionNoIn
             	    {
             	    OR131=(Token)input.LT(1);
-            	    match(input,OR,FOLLOW_OR_in_bitwiseORExpressionNoIn4673); 
+            	    match(input,OR,FOLLOW_OR_in_bitwiseORExpressionNoIn4672); 
             	    OR131_tree = (Object)adaptor.create(OR131);
             	    root_0 = (Object)adaptor.becomeRoot(OR131_tree, root_0);
 
-            	    pushFollow(FOLLOW_bitwiseXORExpressionNoIn_in_bitwiseORExpressionNoIn4676);
+            	    pushFollow(FOLLOW_bitwiseXORExpressionNoIn_in_bitwiseORExpressionNoIn4675);
             	    bitwiseXORExpressionNoIn132=bitwiseXORExpressionNoIn();
             	    _fsp--;
 
@@ -4985,7 +4983,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_bitwiseORExpression_in_logicalANDExpression4695);
+            pushFollow(FOLLOW_bitwiseORExpression_in_logicalANDExpression4694);
             bitwiseORExpression133=bitwiseORExpression();
             _fsp--;
 
@@ -5006,11 +5004,11 @@
             	    // JS.g:1242:26: LAND bitwiseORExpression
             	    {
             	    LAND134=(Token)input.LT(1);
-            	    match(input,LAND,FOLLOW_LAND_in_logicalANDExpression4699); 
+            	    match(input,LAND,FOLLOW_LAND_in_logicalANDExpression4698); 
             	    LAND134_tree = (Object)adaptor.create(LAND134);
             	    root_0 = (Object)adaptor.becomeRoot(LAND134_tree, root_0);
 
-            	    pushFollow(FOLLOW_bitwiseORExpression_in_logicalANDExpression4702);
+            	    pushFollow(FOLLOW_bitwiseORExpression_in_logicalANDExpression4701);
             	    bitwiseORExpression135=bitwiseORExpression();
             	    _fsp--;
 
@@ -5070,7 +5068,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_bitwiseORExpressionNoIn_in_logicalANDExpressionNoIn4716);
+            pushFollow(FOLLOW_bitwiseORExpressionNoIn_in_logicalANDExpressionNoIn4715);
             bitwiseORExpressionNoIn136=bitwiseORExpressionNoIn();
             _fsp--;
 
@@ -5091,11 +5089,11 @@
             	    // JS.g:1246:30: LAND bitwiseORExpressionNoIn
             	    {
             	    LAND137=(Token)input.LT(1);
-            	    match(input,LAND,FOLLOW_LAND_in_logicalANDExpressionNoIn4720); 
+            	    match(input,LAND,FOLLOW_LAND_in_logicalANDExpressionNoIn4719); 
             	    LAND137_tree = (Object)adaptor.create(LAND137);
             	    root_0 = (Object)adaptor.becomeRoot(LAND137_tree, root_0);
 
-            	    pushFollow(FOLLOW_bitwiseORExpressionNoIn_in_logicalANDExpressionNoIn4723);
+            	    pushFollow(FOLLOW_bitwiseORExpressionNoIn_in_logicalANDExpressionNoIn4722);
             	    bitwiseORExpressionNoIn138=bitwiseORExpressionNoIn();
             	    _fsp--;
 
@@ -5155,7 +5153,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_logicalANDExpression_in_logicalORExpression4738);
+            pushFollow(FOLLOW_logicalANDExpression_in_logicalORExpression4737);
             logicalANDExpression139=logicalANDExpression();
             _fsp--;
 
@@ -5176,11 +5174,11 @@
             	    // JS.g:1250:27: LOR logicalANDExpression
             	    {
             	    LOR140=(Token)input.LT(1);
-            	    match(input,LOR,FOLLOW_LOR_in_logicalORExpression4742); 
+            	    match(input,LOR,FOLLOW_LOR_in_logicalORExpression4741); 
             	    LOR140_tree = (Object)adaptor.create(LOR140);
             	    root_0 = (Object)adaptor.becomeRoot(LOR140_tree, root_0);
 
-            	    pushFollow(FOLLOW_logicalANDExpression_in_logicalORExpression4745);
+            	    pushFollow(FOLLOW_logicalANDExpression_in_logicalORExpression4744);
             	    logicalANDExpression141=logicalANDExpression();
             	    _fsp--;
 
@@ -5240,7 +5238,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_logicalANDExpressionNoIn_in_logicalORExpressionNoIn4760);
+            pushFollow(FOLLOW_logicalANDExpressionNoIn_in_logicalORExpressionNoIn4759);
             logicalANDExpressionNoIn142=logicalANDExpressionNoIn();
             _fsp--;
 
@@ -5261,11 +5259,11 @@
             	    // JS.g:1254:31: LOR logicalANDExpressionNoIn
             	    {
             	    LOR143=(Token)input.LT(1);
-            	    match(input,LOR,FOLLOW_LOR_in_logicalORExpressionNoIn4764); 
+            	    match(input,LOR,FOLLOW_LOR_in_logicalORExpressionNoIn4763); 
             	    LOR143_tree = (Object)adaptor.create(LOR143);
             	    root_0 = (Object)adaptor.becomeRoot(LOR143_tree, root_0);
 
-            	    pushFollow(FOLLOW_logicalANDExpressionNoIn_in_logicalORExpressionNoIn4767);
+            	    pushFollow(FOLLOW_logicalANDExpressionNoIn_in_logicalORExpressionNoIn4766);
             	    logicalANDExpressionNoIn144=logicalANDExpressionNoIn();
             	    _fsp--;
 
@@ -5329,7 +5327,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_logicalORExpression_in_conditionalExpression4786);
+            pushFollow(FOLLOW_logicalORExpression_in_conditionalExpression4785);
             logicalORExpression145=logicalORExpression();
             _fsp--;
 
@@ -5346,18 +5344,18 @@
                     // JS.g:1262:26: QUE assignmentExpression COLON assignmentExpression
                     {
                     QUE146=(Token)input.LT(1);
-                    match(input,QUE,FOLLOW_QUE_in_conditionalExpression4790); 
+                    match(input,QUE,FOLLOW_QUE_in_conditionalExpression4789); 
                     QUE146_tree = (Object)adaptor.create(QUE146);
                     root_0 = (Object)adaptor.becomeRoot(QUE146_tree, root_0);
 
-                    pushFollow(FOLLOW_assignmentExpression_in_conditionalExpression4793);
+                    pushFollow(FOLLOW_assignmentExpression_in_conditionalExpression4792);
                     assignmentExpression147=assignmentExpression();
                     _fsp--;
 
                     adaptor.addChild(root_0, assignmentExpression147.getTree());
                     COLON148=(Token)input.LT(1);
-                    match(input,COLON,FOLLOW_COLON_in_conditionalExpression4795); 
-                    pushFollow(FOLLOW_assignmentExpression_in_conditionalExpression4798);
+                    match(input,COLON,FOLLOW_COLON_in_conditionalExpression4794); 
+                    pushFollow(FOLLOW_assignmentExpression_in_conditionalExpression4797);
                     assignmentExpression149=assignmentExpression();
                     _fsp--;
 
@@ -5418,7 +5416,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_logicalORExpressionNoIn_in_conditionalExpressionNoIn4812);
+            pushFollow(FOLLOW_logicalORExpressionNoIn_in_conditionalExpressionNoIn4811);
             logicalORExpressionNoIn150=logicalORExpressionNoIn();
             _fsp--;
 
@@ -5435,18 +5433,18 @@
                     // JS.g:1266:30: QUE assignmentExpressionNoIn COLON assignmentExpressionNoIn
                     {
                     QUE151=(Token)input.LT(1);
-                    match(input,QUE,FOLLOW_QUE_in_conditionalExpressionNoIn4816); 
+                    match(input,QUE,FOLLOW_QUE_in_conditionalExpressionNoIn4815); 
                     QUE151_tree = (Object)adaptor.create(QUE151);
                     root_0 = (Object)adaptor.becomeRoot(QUE151_tree, root_0);
 
-                    pushFollow(FOLLOW_assignmentExpressionNoIn_in_conditionalExpressionNoIn4819);
+                    pushFollow(FOLLOW_assignmentExpressionNoIn_in_conditionalExpressionNoIn4818);
                     assignmentExpressionNoIn152=assignmentExpressionNoIn();
                     _fsp--;
 
                     adaptor.addChild(root_0, assignmentExpressionNoIn152.getTree());
                     COLON153=(Token)input.LT(1);
-                    match(input,COLON,FOLLOW_COLON_in_conditionalExpressionNoIn4821); 
-                    pushFollow(FOLLOW_assignmentExpressionNoIn_in_conditionalExpressionNoIn4824);
+                    match(input,COLON,FOLLOW_COLON_in_conditionalExpressionNoIn4820); 
+                    pushFollow(FOLLOW_assignmentExpressionNoIn_in_conditionalExpressionNoIn4823);
                     assignmentExpressionNoIn154=assignmentExpressionNoIn();
                     _fsp--;
 
@@ -5506,7 +5504,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_conditionalExpression_in_assignmentExpression4852);
+            pushFollow(FOLLOW_conditionalExpression_in_assignmentExpression4851);
             lhs=conditionalExpression();
             _fsp--;
 
@@ -5529,12 +5527,12 @@
                     if ( !( isLeftHandSideAssign(lhs, isLhs) ) ) {
                         throw new FailedPredicateException(input, "assignmentExpression", " isLeftHandSideAssign(lhs, isLhs) ");
                     }
-                    pushFollow(FOLLOW_assignmentOperator_in_assignmentExpression4859);
+                    pushFollow(FOLLOW_assignmentOperator_in_assignmentExpression4858);
                     assignmentOperator155=assignmentOperator();
                     _fsp--;
 
                     root_0 = (Object)adaptor.becomeRoot(assignmentOperator155.getTree(), root_0);
-                    pushFollow(FOLLOW_assignmentExpression_in_assignmentExpression4862);
+                    pushFollow(FOLLOW_assignmentExpression_in_assignmentExpression4861);
                     assignmentExpression156=assignmentExpression();
                     _fsp--;
 
@@ -5648,7 +5646,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_conditionalExpressionNoIn_in_assignmentExpressionNoIn4940);
+            pushFollow(FOLLOW_conditionalExpressionNoIn_in_assignmentExpressionNoIn4939);
             lhs=conditionalExpressionNoIn();
             _fsp--;
 
@@ -5671,12 +5669,12 @@
                     if ( !( isLeftHandSideAssign(lhs, isLhs) ) ) {
                         throw new FailedPredicateException(input, "assignmentExpressionNoIn", " isLeftHandSideAssign(lhs, isLhs) ");
                     }
-                    pushFollow(FOLLOW_assignmentOperator_in_assignmentExpressionNoIn4947);
+                    pushFollow(FOLLOW_assignmentOperator_in_assignmentExpressionNoIn4946);
                     assignmentOperator158=assignmentOperator();
                     _fsp--;
 
                     root_0 = (Object)adaptor.becomeRoot(assignmentOperator158.getTree(), root_0);
-                    pushFollow(FOLLOW_assignmentExpressionNoIn_in_assignmentExpressionNoIn4950);
+                    pushFollow(FOLLOW_assignmentExpressionNoIn_in_assignmentExpressionNoIn4949);
                     assignmentExpressionNoIn159=assignmentExpressionNoIn();
                     _fsp--;
 
@@ -5729,7 +5727,7 @@
             // JS.g:1322:2: (exprs+= assignmentExpression ( COMMA exprs+= assignmentExpression )* -> { $exprs.size() > 1 }? ^( CEXPR ( $exprs)+ ) -> $exprs)
             // JS.g:1322:4: exprs+= assignmentExpression ( COMMA exprs+= assignmentExpression )*
             {
-            pushFollow(FOLLOW_assignmentExpression_in_expression4972);
+            pushFollow(FOLLOW_assignmentExpression_in_expression4971);
             exprs=assignmentExpression();
             _fsp--;
 
@@ -5753,10 +5751,10 @@
             	    // JS.g:1322:34: COMMA exprs+= assignmentExpression
             	    {
             	    COMMA160=(Token)input.LT(1);
-            	    match(input,COMMA,FOLLOW_COMMA_in_expression4976); 
+            	    match(input,COMMA,FOLLOW_COMMA_in_expression4975); 
             	    stream_COMMA.add(COMMA160);
 
-            	    pushFollow(FOLLOW_assignmentExpression_in_expression4980);
+            	    pushFollow(FOLLOW_assignmentExpression_in_expression4979);
             	    exprs=assignmentExpression();
             	    _fsp--;
 
@@ -5853,7 +5851,7 @@
             // JS.g:1328:2: (exprs+= assignmentExpressionNoIn ( COMMA exprs+= assignmentExpressionNoIn )* -> { $exprs.size() > 1 }? ^( CEXPR ( $exprs)+ ) -> $exprs)
             // JS.g:1328:4: exprs+= assignmentExpressionNoIn ( COMMA exprs+= assignmentExpressionNoIn )*
             {
-            pushFollow(FOLLOW_assignmentExpressionNoIn_in_expressionNoIn5017);
+            pushFollow(FOLLOW_assignmentExpressionNoIn_in_expressionNoIn5016);
             exprs=assignmentExpressionNoIn();
             _fsp--;
 
@@ -5877,10 +5875,10 @@
             	    // JS.g:1328:38: COMMA exprs+= assignmentExpressionNoIn
             	    {
             	    COMMA161=(Token)input.LT(1);
-            	    match(input,COMMA,FOLLOW_COMMA_in_expressionNoIn5021); 
+            	    match(input,COMMA,FOLLOW_COMMA_in_expressionNoIn5020); 
             	    stream_COMMA.add(COMMA161);
 
-            	    pushFollow(FOLLOW_assignmentExpressionNoIn_in_expressionNoIn5025);
+            	    pushFollow(FOLLOW_assignmentExpressionNoIn_in_expressionNoIn5024);
             	    exprs=assignmentExpressionNoIn();
             	    _fsp--;
 
@@ -6028,7 +6026,7 @@
                     root_0 = (Object)adaptor.nil();
 
                     SEMIC162=(Token)input.LT(1);
-                    match(input,SEMIC,FOLLOW_SEMIC_in_semic5076); 
+                    match(input,SEMIC,FOLLOW_SEMIC_in_semic5075); 
                     SEMIC162_tree = (Object)adaptor.create(SEMIC162);
                     adaptor.addChild(root_0, SEMIC162_tree);
 
@@ -6041,7 +6039,7 @@
                     root_0 = (Object)adaptor.nil();
 
                     EOF163=(Token)input.LT(1);
-                    match(input,EOF,FOLLOW_EOF_in_semic5081); 
+                    match(input,EOF,FOLLOW_EOF_in_semic5080); 
                     EOF163_tree = (Object)adaptor.create(EOF163);
                     adaptor.addChild(root_0, EOF163_tree);
 
@@ -6054,7 +6052,7 @@
                     root_0 = (Object)adaptor.nil();
 
                     RBRACE164=(Token)input.LT(1);
-                    match(input,RBRACE,FOLLOW_RBRACE_in_semic5086); 
+                    match(input,RBRACE,FOLLOW_RBRACE_in_semic5085); 
                     RBRACE164_tree = (Object)adaptor.create(RBRACE164);
                     adaptor.addChild(root_0, RBRACE164_tree);
 
@@ -6068,7 +6066,7 @@
                     root_0 = (Object)adaptor.nil();
 
                     EOL165=(Token)input.LT(1);
-                    match(input,EOL,FOLLOW_EOL_in_semic5093); 
+                    match(input,EOL,FOLLOW_EOL_in_semic5092); 
                     EOL165_tree = (Object)adaptor.create(EOL165);
                     adaptor.addChild(root_0, EOL165_tree);
 
@@ -6081,7 +6079,7 @@
                     root_0 = (Object)adaptor.nil();
 
                     MultiLineComment166=(Token)input.LT(1);
-                    match(input,MultiLineComment,FOLLOW_MultiLineComment_in_semic5097); 
+                    match(input,MultiLineComment,FOLLOW_MultiLineComment_in_semic5096); 
                     MultiLineComment166_tree = (Object)adaptor.create(MultiLineComment166);
                     adaptor.addChild(root_0, MultiLineComment166_tree);
 
@@ -6146,7 +6144,7 @@
                     throw nvae;
                 }
             }
-            else if ( ((LA45_0>=NULL && LA45_0<=BREAK)||(LA45_0>=CONTINUE && LA45_0<=DO)||(LA45_0>=FOR && LA45_0<=IF)||(LA45_0>=NEW && LA45_0<=YIELD)||(LA45_0>=WXML && LA45_0<=NAMESPACE)||LA45_0==CONST||LA45_0==LPAREN||LA45_0==LBRACK||LA45_0==SEMIC||(LA45_0>=ADD && LA45_0<=SUB)||(LA45_0>=INC && LA45_0<=DEC)||(LA45_0>=NOT && LA45_0<=INV)||(LA45_0>=StringLiteral && LA45_0<=XmlAttribute)||LA45_0==Identifier||LA45_0==RegularExpressionLiteral||(LA45_0>=DecimalLiteral && LA45_0<=HexIntegerLiteral)||LA45_0==XMLLiteral) ) {
+            else if ( ((LA45_0>=NULL && LA45_0<=BREAK)||(LA45_0>=CONTINUE && LA45_0<=DO)||(LA45_0>=FOR && LA45_0<=IF)||(LA45_0>=NEW && LA45_0<=YIELD)||(LA45_0>=WXML && LA45_0<=NAMESPACE)||LA45_0==CONST||LA45_0==LPAREN||LA45_0==LBRACK||LA45_0==SEMIC||(LA45_0>=ADD && LA45_0<=SUB)||(LA45_0>=INC && LA45_0<=DEC)||(LA45_0>=NOT && LA45_0<=INV)||LA45_0==XMLLiteral||(LA45_0>=StringLiteral && LA45_0<=XmlAttribute)||LA45_0==Identifier||LA45_0==RegularExpressionLiteral||(LA45_0>=DecimalLiteral && LA45_0<=HexIntegerLiteral)) ) {
                 alt45=2;
             }
             else {
@@ -6164,7 +6162,7 @@
                     if ( !( input.LA(1) == LBRACE ) ) {
                         throw new FailedPredicateException(input, "statement", " input.LA(1) == LBRACE ");
                     }
-                    pushFollow(FOLLOW_block_in_statement5126);
+                    pushFollow(FOLLOW_block_in_statement5125);
                     block167=block();
                     _fsp--;
 
@@ -6177,7 +6175,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_statementTail_in_statement5131);
+                    pushFollow(FOLLOW_statementTail_in_statement5130);
                     statementTail168=statementTail();
                     _fsp--;
 
@@ -6281,13 +6279,13 @@
             case DEC:
             case NOT:
             case INV:
+            case XMLLiteral:
             case StringLiteral:
             case XmlAttribute:
             case RegularExpressionLiteral:
             case DecimalLiteral:
             case OctalIntegerLiteral:
             case HexIntegerLiteral:
-            case XMLLiteral:
                 {
                 alt46=3;
                 }
@@ -6385,7 +6383,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_variableStatement_in_statementTail5143);
+                    pushFollow(FOLLOW_variableStatement_in_statementTail5142);
                     variableStatement169=variableStatement();
                     _fsp--;
 
@@ -6398,7 +6396,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_emptyStatement_in_statementTail5148);
+                    pushFollow(FOLLOW_emptyStatement_in_statementTail5147);
                     emptyStatement170=emptyStatement();
                     _fsp--;
 
@@ -6411,7 +6409,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_expressionStatement_in_statementTail5153);
+                    pushFollow(FOLLOW_expressionStatement_in_statementTail5152);
                     expressionStatement171=expressionStatement();
                     _fsp--;
 
@@ -6424,7 +6422,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_ifStatement_in_statementTail5158);
+                    pushFollow(FOLLOW_ifStatement_in_statementTail5157);
                     ifStatement172=ifStatement();
                     _fsp--;
 
@@ -6437,7 +6435,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_iterationStatement_in_statementTail5163);
+                    pushFollow(FOLLOW_iterationStatement_in_statementTail5162);
                     iterationStatement173=iterationStatement();
                     _fsp--;
 
@@ -6450,7 +6448,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_continueStatement_in_statementTail5168);
+                    pushFollow(FOLLOW_continueStatement_in_statementTail5167);
                     continueStatement174=continueStatement();
                     _fsp--;
 
@@ -6463,7 +6461,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_breakStatement_in_statementTail5173);
+                    pushFollow(FOLLOW_breakStatement_in_statementTail5172);
                     breakStatement175=breakStatement();
                     _fsp--;
 
@@ -6476,7 +6474,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_returnStatement_in_statementTail5178);
+                    pushFollow(FOLLOW_returnStatement_in_statementTail5177);
                     returnStatement176=returnStatement();
                     _fsp--;
 
@@ -6489,7 +6487,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_withStatement_in_statementTail5183);
+                    pushFollow(FOLLOW_withStatement_in_statementTail5182);
                     withStatement177=withStatement();
                     _fsp--;
 
@@ -6502,7 +6500,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_labelledStatement_in_statementTail5188);
+                    pushFollow(FOLLOW_labelledStatement_in_statementTail5187);
                     labelledStatement178=labelledStatement();
                     _fsp--;
 
@@ -6515,7 +6513,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_switchStatement_in_statementTail5193);
+                    pushFollow(FOLLOW_switchStatement_in_statementTail5192);
                     switchStatement179=switchStatement();
                     _fsp--;
 
@@ -6528,7 +6526,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_throwStatement_in_statementTail5198);
+                    pushFollow(FOLLOW_throwStatement_in_statementTail5197);
                     throwStatement180=throwStatement();
                     _fsp--;
 
@@ -6541,7 +6539,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_tryStatement_in_statementTail5203);
+                    pushFollow(FOLLOW_tryStatement_in_statementTail5202);
                     tryStatement181=tryStatement();
                     _fsp--;
 
@@ -6554,7 +6552,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_constStatement_in_statementTail5208);
+                    pushFollow(FOLLOW_constStatement_in_statementTail5207);
                     constStatement182=constStatement();
                     _fsp--;
 
@@ -6567,7 +6565,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_namespaceStatement_in_statementTail5213);
+                    pushFollow(FOLLOW_namespaceStatement_in_statementTail5212);
                     namespaceStatement183=namespaceStatement();
                     _fsp--;
 
@@ -6621,7 +6619,7 @@
             // JS.g:1404:4: lb= LBRACE ( statement )* RBRACE
             {
             lb=(Token)input.LT(1);
-            match(input,LBRACE,FOLLOW_LBRACE_in_block5228); 
+            match(input,LBRACE,FOLLOW_LBRACE_in_block5227); 
             stream_LBRACE.add(lb);
 
             // JS.g:1404:14: ( statement )*
@@ -6630,7 +6628,7 @@
                 int alt47=2;
                 int LA47_0 = input.LA(1);
 
-                if ( ((LA47_0>=NULL && LA47_0<=BREAK)||(LA47_0>=CONTINUE && LA47_0<=DO)||(LA47_0>=FOR && LA47_0<=IF)||(LA47_0>=NEW && LA47_0<=YIELD)||(LA47_0>=WXML && LA47_0<=NAMESPACE)||LA47_0==CONST||LA47_0==LBRACE||LA47_0==LPAREN||LA47_0==LBRACK||LA47_0==SEMIC||(LA47_0>=ADD && LA47_0<=SUB)||(LA47_0>=INC && LA47_0<=DEC)||(LA47_0>=NOT && LA47_0<=INV)||(LA47_0>=StringLiteral && LA47_0<=XmlAttribute)||LA47_0==Identifier||LA47_0==RegularExpressionLiteral||(LA47_0>=DecimalLiteral && LA47_0<=HexIntegerLiteral)||LA47_0==XMLLiteral) ) {
+                if ( ((LA47_0>=NULL && LA47_0<=BREAK)||(LA47_0>=CONTINUE && LA47_0<=DO)||(LA47_0>=FOR && LA47_0<=IF)||(LA47_0>=NEW && LA47_0<=YIELD)||(LA47_0>=WXML && LA47_0<=NAMESPACE)||LA47_0==CONST||LA47_0==LBRACE||LA47_0==LPAREN||LA47_0==LBRACK||LA47_0==SEMIC||(LA47_0>=ADD && LA47_0<=SUB)||(LA47_0>=INC && LA47_0<=DEC)||(LA47_0>=NOT && LA47_0<=INV)||LA47_0==XMLLiteral||(LA47_0>=StringLiteral && LA47_0<=XmlAttribute)||LA47_0==Identifier||LA47_0==RegularExpressionLiteral||(LA47_0>=DecimalLiteral && LA47_0<=HexIntegerLiteral)) ) {
                     alt47=1;
                 }
 
@@ -6639,7 +6637,7 @@
             	case 1 :
             	    // JS.g:1404:14: statement
             	    {
-            	    pushFollow(FOLLOW_statement_in_block5230);
+            	    pushFollow(FOLLOW_statement_in_block5229);
             	    statement184=statement();
             	    _fsp--;
 
@@ -6654,7 +6652,7 @@
             } while (true);
 
             RBRACE185=(Token)input.LT(1);
-            match(input,RBRACE,FOLLOW_RBRACE_in_block5233); 
+            match(input,RBRACE,FOLLOW_RBRACE_in_block5232); 
             stream_RBRACE.add(RBRACE185);
 
 
@@ -6740,10 +6738,10 @@
             // JS.g:1413:4: VAR variableDeclaration ( COMMA variableDeclaration )* semic
             {
             VAR186=(Token)input.LT(1);
-            match(input,VAR,FOLLOW_VAR_in_variableStatement5262); 
+            match(input,VAR,FOLLOW_VAR_in_variableStatement5261); 
             stream_VAR.add(VAR186);
 
-            pushFollow(FOLLOW_variableDeclaration_in_variableStatement5264);
+            pushFollow(FOLLOW_variableDeclaration_in_variableStatement5263);
             variableDeclaration187=variableDeclaration();
             _fsp--;
 
@@ -6764,10 +6762,10 @@
             	    // JS.g:1413:30: COMMA variableDeclaration
             	    {
             	    COMMA188=(Token)input.LT(1);
-            	    match(input,COMMA,FOLLOW_COMMA_in_variableStatement5268); 
+            	    match(input,COMMA,FOLLOW_COMMA_in_variableStatement5267); 
             	    stream_COMMA.add(COMMA188);
 
-            	    pushFollow(FOLLOW_variableDeclaration_in_variableStatement5270);
+            	    pushFollow(FOLLOW_variableDeclaration_in_variableStatement5269);
             	    variableDeclaration189=variableDeclaration();
             	    _fsp--;
 
@@ -6781,14 +6779,14 @@
                 }
             } while (true);
 
-            pushFollow(FOLLOW_semic_in_variableStatement5275);
+            pushFollow(FOLLOW_semic_in_variableStatement5274);
             semic190=semic();
             _fsp--;
 
             stream_semic.add(semic190.getTree());
 
             // AST REWRITE
-            // elements: VAR, variableDeclaration
+            // elements: variableDeclaration, VAR
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -6865,7 +6863,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_identifier_in_variableDeclaration5298);
+            pushFollow(FOLLOW_identifier_in_variableDeclaration5297);
             identifier191=identifier();
             _fsp--;
 
@@ -6882,11 +6880,11 @@
                     // JS.g:1418:17: ASSIGN assignmentExpression
                     {
                     ASSIGN192=(Token)input.LT(1);
-                    match(input,ASSIGN,FOLLOW_ASSIGN_in_variableDeclaration5302); 
+                    match(input,ASSIGN,FOLLOW_ASSIGN_in_variableDeclaration5301); 
                     ASSIGN192_tree = (Object)adaptor.create(ASSIGN192);
                     root_0 = (Object)adaptor.becomeRoot(ASSIGN192_tree, root_0);
 
-                    pushFollow(FOLLOW_assignmentExpression_in_variableDeclaration5305);
+                    pushFollow(FOLLOW_assignmentExpression_in_variableDeclaration5304);
                     assignmentExpression193=assignmentExpression();
                     _fsp--;
 
@@ -6943,7 +6941,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_identifier_in_variableDeclarationNoIn5320);
+            pushFollow(FOLLOW_identifier_in_variableDeclarationNoIn5319);
             identifier194=identifier();
             _fsp--;
 
@@ -6960,11 +6958,11 @@
                     // JS.g:1422:17: ASSIGN assignmentExpressionNoIn
                     {
                     ASSIGN195=(Token)input.LT(1);
-                    match(input,ASSIGN,FOLLOW_ASSIGN_in_variableDeclarationNoIn5324); 
+                    match(input,ASSIGN,FOLLOW_ASSIGN_in_variableDeclarationNoIn5323); 
                     ASSIGN195_tree = (Object)adaptor.create(ASSIGN195);
                     root_0 = (Object)adaptor.becomeRoot(ASSIGN195_tree, root_0);
 
-                    pushFollow(FOLLOW_assignmentExpressionNoIn_in_variableDeclarationNoIn5327);
+                    pushFollow(FOLLOW_assignmentExpressionNoIn_in_variableDeclarationNoIn5326);
                     assignmentExpressionNoIn196=assignmentExpressionNoIn();
                     _fsp--;
 
@@ -7027,10 +7025,10 @@
             // JS.g:1426:5: CONST variableDeclaration ( COMMA variableDeclaration )* semic
             {
             CONST197=(Token)input.LT(1);
-            match(input,CONST,FOLLOW_CONST_in_constStatement5342); 
+            match(input,CONST,FOLLOW_CONST_in_constStatement5341); 
             stream_CONST.add(CONST197);
 
-            pushFollow(FOLLOW_variableDeclaration_in_constStatement5344);
+            pushFollow(FOLLOW_variableDeclaration_in_constStatement5343);
             variableDeclaration198=variableDeclaration();
             _fsp--;
 
@@ -7051,10 +7049,10 @@
             	    // JS.g:1426:33: COMMA variableDeclaration
             	    {
             	    COMMA199=(Token)input.LT(1);
-            	    match(input,COMMA,FOLLOW_COMMA_in_constStatement5348); 
+            	    match(input,COMMA,FOLLOW_COMMA_in_constStatement5347); 
             	    stream_COMMA.add(COMMA199);
 
-            	    pushFollow(FOLLOW_variableDeclaration_in_constStatement5350);
+            	    pushFollow(FOLLOW_variableDeclaration_in_constStatement5349);
             	    variableDeclaration200=variableDeclaration();
             	    _fsp--;
 
@@ -7068,7 +7066,7 @@
                 }
             } while (true);
 
-            pushFollow(FOLLOW_semic_in_constStatement5355);
+            pushFollow(FOLLOW_semic_in_constStatement5354);
             semic201=semic();
             _fsp--;
 
@@ -7149,7 +7147,7 @@
             root_0 = (Object)adaptor.nil();
 
             SEMIC202=(Token)input.LT(1);
-            match(input,SEMIC,FOLLOW_SEMIC_in_emptyStatement5385); 
+            match(input,SEMIC,FOLLOW_SEMIC_in_emptyStatement5384); 
 
             }
 
@@ -7194,12 +7192,12 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_expression_in_expressionStatement5404);
+            pushFollow(FOLLOW_expression_in_expressionStatement5403);
             expression203=expression();
             _fsp--;
 
             adaptor.addChild(root_0, expression203.getTree());
-            pushFollow(FOLLOW_semic_in_expressionStatement5406);
+            pushFollow(FOLLOW_semic_in_expressionStatement5405);
             semic204=semic();
             _fsp--;
 
@@ -7261,23 +7259,23 @@
             // JS.g:1458:4: IF LPAREN expression RPAREN statement ({...}? ELSE statement )?
             {
             IF205=(Token)input.LT(1);
-            match(input,IF,FOLLOW_IF_in_ifStatement5424); 
+            match(input,IF,FOLLOW_IF_in_ifStatement5423); 
             stream_IF.add(IF205);
 
             LPAREN206=(Token)input.LT(1);
-            match(input,LPAREN,FOLLOW_LPAREN_in_ifStatement5426); 
+            match(input,LPAREN,FOLLOW_LPAREN_in_ifStatement5425); 
             stream_LPAREN.add(LPAREN206);
 
-            pushFollow(FOLLOW_expression_in_ifStatement5428);
+            pushFollow(FOLLOW_expression_in_ifStatement5427);
             expression207=expression();
             _fsp--;
 
             stream_expression.add(expression207.getTree());
             RPAREN208=(Token)input.LT(1);
-            match(input,RPAREN,FOLLOW_RPAREN_in_ifStatement5430); 
+            match(input,RPAREN,FOLLOW_RPAREN_in_ifStatement5429); 
             stream_RPAREN.add(RPAREN208);
 
-            pushFollow(FOLLOW_statement_in_ifStatement5432);
+            pushFollow(FOLLOW_statement_in_ifStatement5431);
             statement209=statement();
             _fsp--;
 
@@ -7301,10 +7299,10 @@
                         throw new FailedPredicateException(input, "ifStatement", " input.LA(1) == ELSE ");
                     }
                     ELSE210=(Token)input.LT(1);
-                    match(input,ELSE,FOLLOW_ELSE_in_ifStatement5438); 
+                    match(input,ELSE,FOLLOW_ELSE_in_ifStatement5437); 
                     stream_ELSE.add(ELSE210);
 
-                    pushFollow(FOLLOW_statement_in_ifStatement5440);
+                    pushFollow(FOLLOW_statement_in_ifStatement5439);
                     statement211=statement();
                     _fsp--;
 
@@ -7317,7 +7315,7 @@
 
 
             // AST REWRITE
-            // elements: statement, expression, IF
+            // elements: expression, IF, statement
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -7436,7 +7434,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_doStatement_in_iterationStatement5473);
+                    pushFollow(FOLLOW_doStatement_in_iterationStatement5472);
                     doStatement212=doStatement();
                     _fsp--;
 
@@ -7449,7 +7447,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_whileStatement_in_iterationStatement5478);
+                    pushFollow(FOLLOW_whileStatement_in_iterationStatement5477);
                     whileStatement213=whileStatement();
                     _fsp--;
 
@@ -7462,7 +7460,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_forEachStatement_in_iterationStatement5483);
+                    pushFollow(FOLLOW_forEachStatement_in_iterationStatement5482);
                     forEachStatement214=forEachStatement();
                     _fsp--;
 
@@ -7475,7 +7473,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_forStatement_in_iterationStatement5488);
+                    pushFollow(FOLLOW_forStatement_in_iterationStatement5487);
                     forStatement215=forStatement();
                     _fsp--;
 
@@ -7541,39 +7539,39 @@
             // JS.g:1474:4: DO statement WHILE LPAREN expression RPAREN semic
             {
             DO216=(Token)input.LT(1);
-            match(input,DO,FOLLOW_DO_in_doStatement5500); 
+            match(input,DO,FOLLOW_DO_in_doStatement5499); 
             stream_DO.add(DO216);
 
-            pushFollow(FOLLOW_statement_in_doStatement5502);
+            pushFollow(FOLLOW_statement_in_doStatement5501);
             statement217=statement();
             _fsp--;
 
             stream_statement.add(statement217.getTree());
             WHILE218=(Token)input.LT(1);
-            match(input,WHILE,FOLLOW_WHILE_in_doStatement5504); 
+            match(input,WHILE,FOLLOW_WHILE_in_doStatement5503); 
             stream_WHILE.add(WHILE218);
 
             LPAREN219=(Token)input.LT(1);
-            match(input,LPAREN,FOLLOW_LPAREN_in_doStatement5506); 
+            match(input,LPAREN,FOLLOW_LPAREN_in_doStatement5505); 
             stream_LPAREN.add(LPAREN219);
 
-            pushFollow(FOLLOW_expression_in_doStatement5508);
+            pushFollow(FOLLOW_expression_in_doStatement5507);
             expression220=expression();
             _fsp--;
 
             stream_expression.add(expression220.getTree());
             RPAREN221=(Token)input.LT(1);
-            match(input,RPAREN,FOLLOW_RPAREN_in_doStatement5510); 
+            match(input,RPAREN,FOLLOW_RPAREN_in_doStatement5509); 
             stream_RPAREN.add(RPAREN221);
 
-            pushFollow(FOLLOW_semic_in_doStatement5512);
+            pushFollow(FOLLOW_semic_in_doStatement5511);
             semic222=semic();
             _fsp--;
 
             stream_semic.add(semic222.getTree());
 
             // AST REWRITE
-            // elements: statement, expression, DO
+            // elements: DO, statement, expression
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -7649,20 +7647,20 @@
             root_0 = (Object)adaptor.nil();
 
             WHILE223=(Token)input.LT(1);
-            match(input,WHILE,FOLLOW_WHILE_in_whileStatement5537); 
+            match(input,WHILE,FOLLOW_WHILE_in_whileStatement5536); 
             WHILE223_tree = (Object)adaptor.create(WHILE223);
             root_0 = (Object)adaptor.becomeRoot(WHILE223_tree, root_0);
 
             LPAREN224=(Token)input.LT(1);
-            match(input,LPAREN,FOLLOW_LPAREN_in_whileStatement5540); 
-            pushFollow(FOLLOW_expression_in_whileStatement5543);
+            match(input,LPAREN,FOLLOW_LPAREN_in_whileStatement5539); 
+            pushFollow(FOLLOW_expression_in_whileStatement5542);
             expression225=expression();
             _fsp--;
 
             adaptor.addChild(root_0, expression225.getTree());
             RPAREN226=(Token)input.LT(1);
-            match(input,RPAREN,FOLLOW_RPAREN_in_whileStatement5545); 
-            pushFollow(FOLLOW_statement_in_whileStatement5548);
+            match(input,RPAREN,FOLLOW_RPAREN_in_whileStatement5544); 
+            pushFollow(FOLLOW_statement_in_whileStatement5547);
             statement227=statement();
             _fsp--;
 
@@ -7723,34 +7721,34 @@
             // JS.g:1525:5: FOR EACH LPAREN forEachControl RPAREN statement
             {
             FOR228=(Token)input.LT(1);
-            match(input,FOR,FOLLOW_FOR_in_forEachStatement5563); 
+            match(input,FOR,FOLLOW_FOR_in_forEachStatement5562); 
             stream_FOR.add(FOR228);
 
             EACH229=(Token)input.LT(1);
-            match(input,EACH,FOLLOW_EACH_in_forEachStatement5565); 
+            match(input,EACH,FOLLOW_EACH_in_forEachStatement5564); 
             stream_EACH.add(EACH229);
 
             LPAREN230=(Token)input.LT(1);
-            match(input,LPAREN,FOLLOW_LPAREN_in_forEachStatement5567); 
+            match(input,LPAREN,FOLLOW_LPAREN_in_forEachStatement5566); 
             stream_LPAREN.add(LPAREN230);
 
-            pushFollow(FOLLOW_forEachControl_in_forEachStatement5569);
+            pushFollow(FOLLOW_forEachControl_in_forEachStatement5568);
             forEachControl231=forEachControl();
             _fsp--;
 
             stream_forEachControl.add(forEachControl231.getTree());
             RPAREN232=(Token)input.LT(1);
-            match(input,RPAREN,FOLLOW_RPAREN_in_forEachStatement5571); 
+            match(input,RPAREN,FOLLOW_RPAREN_in_forEachStatement5570); 
             stream_RPAREN.add(RPAREN232);
 
-            pushFollow(FOLLOW_statement_in_forEachStatement5573);
+            pushFollow(FOLLOW_statement_in_forEachStatement5572);
             statement233=statement();
             _fsp--;
 
             stream_statement.add(statement233.getTree());
 
             // AST REWRITE
-            // elements: statement, forEachControl
+            // elements: forEachControl, statement
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -7821,7 +7819,7 @@
             if ( (LA54_0==VAR) ) {
                 alt54=1;
             }
-            else if ( ((LA54_0>=NULL && LA54_0<=FALSE)||LA54_0==DELETE||(LA54_0>=EACH && LA54_0<=FUNCTION)||LA54_0==NEW||LA54_0==THIS||LA54_0==TYPEOF||LA54_0==VOID||(LA54_0>=GET && LA54_0<=YIELD)||(LA54_0>=WXML && LA54_0<=NAMESPACE)||LA54_0==LBRACE||LA54_0==LPAREN||LA54_0==LBRACK||(LA54_0>=ADD && LA54_0<=SUB)||(LA54_0>=INC && LA54_0<=DEC)||(LA54_0>=NOT && LA54_0<=INV)||(LA54_0>=StringLiteral && LA54_0<=XmlAttribute)||LA54_0==Identifier||LA54_0==RegularExpressionLiteral||(LA54_0>=DecimalLiteral && LA54_0<=HexIntegerLiteral)||LA54_0==XMLLiteral) ) {
+            else if ( ((LA54_0>=NULL && LA54_0<=FALSE)||LA54_0==DELETE||(LA54_0>=EACH && LA54_0<=FUNCTION)||LA54_0==NEW||LA54_0==THIS||LA54_0==TYPEOF||LA54_0==VOID||(LA54_0>=GET && LA54_0<=YIELD)||(LA54_0>=WXML && LA54_0<=NAMESPACE)||LA54_0==LBRACE||LA54_0==LPAREN||LA54_0==LBRACK||(LA54_0>=ADD && LA54_0<=SUB)||(LA54_0>=INC && LA54_0<=DEC)||(LA54_0>=NOT && LA54_0<=INV)||LA54_0==XMLLiteral||(LA54_0>=StringLiteral && LA54_0<=XmlAttribute)||LA54_0==Identifier||LA54_0==RegularExpressionLiteral||(LA54_0>=DecimalLiteral && LA54_0<=HexIntegerLiteral)) ) {
                 alt54=2;
             }
             else {
@@ -7836,7 +7834,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_forControlVar_in_forEachControl5600);
+                    pushFollow(FOLLOW_forControlVar_in_forEachControl5599);
                     forControlVar234=forControlVar();
                     _fsp--;
 
@@ -7849,7 +7847,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_forControlExpression_in_forEachControl5606);
+                    pushFollow(FOLLOW_forControlExpression_in_forEachControl5605);
                     forControlExpression235=forControlExpression();
                     _fsp--;
 
@@ -7907,20 +7905,20 @@
             root_0 = (Object)adaptor.nil();
 
             FOR236=(Token)input.LT(1);
-            match(input,FOR,FOLLOW_FOR_in_forStatement5618); 
+            match(input,FOR,FOLLOW_FOR_in_forStatement5617); 
             FOR236_tree = (Object)adaptor.create(FOR236);
             root_0 = (Object)adaptor.becomeRoot(FOR236_tree, root_0);
 
             LPAREN237=(Token)input.LT(1);
-            match(input,LPAREN,FOLLOW_LPAREN_in_forStatement5621); 
-            pushFollow(FOLLOW_forControl_in_forStatement5624);
+            match(input,LPAREN,FOLLOW_LPAREN_in_forStatement5620); 
+            pushFollow(FOLLOW_forControl_in_forStatement5623);
             forControl238=forControl();
             _fsp--;
 
             adaptor.addChild(root_0, forControl238.getTree());
             RPAREN239=(Token)input.LT(1);
-            match(input,RPAREN,FOLLOW_RPAREN_in_forStatement5626); 
-            pushFollow(FOLLOW_statement_in_forStatement5629);
+            match(input,RPAREN,FOLLOW_RPAREN_in_forStatement5625); 
+            pushFollow(FOLLOW_statement_in_forStatement5628);
             statement240=statement();
             _fsp--;
 
@@ -7998,6 +7996,7 @@
             case DEC:
             case NOT:
             case INV:
+            case XMLLiteral:
             case StringLiteral:
             case XmlAttribute:
             case Identifier:
@@ -8005,7 +8004,6 @@
             case DecimalLiteral:
             case OctalIntegerLiteral:
             case HexIntegerLiteral:
-            case XMLLiteral:
                 {
                 alt55=2;
                 }
@@ -8028,7 +8026,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_forControlVar_in_forControl5640);
+                    pushFollow(FOLLOW_forControlVar_in_forControl5639);
                     forControlVar241=forControlVar();
                     _fsp--;
 
@@ -8041,7 +8039,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_forControlExpression_in_forControl5645);
+                    pushFollow(FOLLOW_forControlExpression_in_forControl5644);
                     forControlExpression242=forControlExpression();
                     _fsp--;
 
@@ -8054,7 +8052,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_forControlSemic_in_forControl5650);
+                    pushFollow(FOLLOW_forControlSemic_in_forControl5649);
                     forControlSemic243=forControlSemic();
                     _fsp--;
 
@@ -8125,10 +8123,10 @@
             // JS.g:1545:4: VAR variableDeclarationNoIn ( ( IN expression -> ^( FORITER ^( VAR variableDeclarationNoIn ) ^( EXPR expression ) ) ) | ( ( COMMA variableDeclarationNoIn )* SEMIC (ex1= expression )? SEMIC (ex2= expression )? -> ^( FORSTEP ^( VAR ( variableDeclarationNoIn )+ ) ^( EXPR ( $ex1)? ) ^( EXPR ( $ex2)? ) ) ) )
             {
             VAR244=(Token)input.LT(1);
-            match(input,VAR,FOLLOW_VAR_in_forControlVar5661); 
+            match(input,VAR,FOLLOW_VAR_in_forControlVar5660); 
             stream_VAR.add(VAR244);
 
-            pushFollow(FOLLOW_variableDeclarationNoIn_in_forControlVar5663);
+            pushFollow(FOLLOW_variableDeclarationNoIn_in_forControlVar5662);
             variableDeclarationNoIn245=variableDeclarationNoIn();
             _fsp--;
 
@@ -8157,17 +8155,17 @@
                     // JS.g:1548:4: IN expression
                     {
                     IN246=(Token)input.LT(1);
-                    match(input,IN,FOLLOW_IN_in_forControlVar5675); 
+                    match(input,IN,FOLLOW_IN_in_forControlVar5674); 
                     stream_IN.add(IN246);
 
-                    pushFollow(FOLLOW_expression_in_forControlVar5677);
+                    pushFollow(FOLLOW_expression_in_forControlVar5676);
                     expression247=expression();
                     _fsp--;
 
                     stream_expression.add(expression247.getTree());
 
                     // AST REWRITE
-                    // elements: variableDeclarationNoIn, VAR, expression
+                    // elements: VAR, expression, variableDeclarationNoIn
                     // token labels: 
                     // rule labels: retval
                     // token list labels: 
@@ -8236,10 +8234,10 @@
                     	    // JS.g:1553:6: COMMA variableDeclarationNoIn
                     	    {
                     	    COMMA248=(Token)input.LT(1);
-                    	    match(input,COMMA,FOLLOW_COMMA_in_forControlVar5723); 
+                    	    match(input,COMMA,FOLLOW_COMMA_in_forControlVar5722); 
                     	    stream_COMMA.add(COMMA248);
 
-                    	    pushFollow(FOLLOW_variableDeclarationNoIn_in_forControlVar5725);
+                    	    pushFollow(FOLLOW_variableDeclarationNoIn_in_forControlVar5724);
                     	    variableDeclarationNoIn249=variableDeclarationNoIn();
                     	    _fsp--;
 
@@ -8254,21 +8252,21 @@
                     } while (true);
 
                     SEMIC250=(Token)input.LT(1);
-                    match(input,SEMIC,FOLLOW_SEMIC_in_forControlVar5730); 
+                    match(input,SEMIC,FOLLOW_SEMIC_in_forControlVar5729); 
                     stream_SEMIC.add(SEMIC250);
 
                     // JS.g:1553:48: (ex1= expression )?
                     int alt57=2;
                     int LA57_0 = input.LA(1);
 
-                    if ( ((LA57_0>=NULL && LA57_0<=FALSE)||LA57_0==DELETE||(LA57_0>=EACH && LA57_0<=FUNCTION)||LA57_0==NEW||LA57_0==THIS||LA57_0==TYPEOF||LA57_0==VOID||(LA57_0>=GET && LA57_0<=YIELD)||(LA57_0>=WXML && LA57_0<=NAMESPACE)||LA57_0==LBRACE||LA57_0==LPAREN||LA57_0==LBRACK||(LA57_0>=ADD && LA57_0<=SUB)||(LA57_0>=INC && LA57_0<=DEC)||(LA57_0>=NOT && LA57_0<=INV)||(LA57_0>=StringLiteral && LA57_0<=XmlAttribute)||LA57_0==Identifier||LA57_0==RegularExpressionLiteral||(LA57_0>=DecimalLiteral && LA57_0<=HexIntegerLiteral)||LA57_0==XMLLiteral) ) {
+                    if ( ((LA57_0>=NULL && LA57_0<=FALSE)||LA57_0==DELETE||(LA57_0>=EACH && LA57_0<=FUNCTION)||LA57_0==NEW||LA57_0==THIS||LA57_0==TYPEOF||LA57_0==VOID||(LA57_0>=GET && LA57_0<=YIELD)||(LA57_0>=WXML && LA57_0<=NAMESPACE)||LA57_0==LBRACE||LA57_0==LPAREN||LA57_0==LBRACK||(LA57_0>=ADD && LA57_0<=SUB)||(LA57_0>=INC && LA57_0<=DEC)||(LA57_0>=NOT && LA57_0<=INV)||LA57_0==XMLLiteral||(LA57_0>=StringLiteral && LA57_0<=XmlAttribute)||LA57_0==Identifier||LA57_0==RegularExpressionLiteral||(LA57_0>=DecimalLiteral && LA57_0<=HexIntegerLiteral)) ) {
                         alt57=1;
                     }
                     switch (alt57) {
                         case 1 :
                             // JS.g:1553:48: ex1= expression
                             {
-                            pushFollow(FOLLOW_expression_in_forControlVar5734);
+                            pushFollow(FOLLOW_expression_in_forControlVar5733);
                             ex1=expression();
                             _fsp--;
 
@@ -8280,21 +8278,21 @@
                     }
 
                     SEMIC251=(Token)input.LT(1);
-                    match(input,SEMIC,FOLLOW_SEMIC_in_forControlVar5737); 
+                    match(input,SEMIC,FOLLOW_SEMIC_in_forControlVar5736); 
                     stream_SEMIC.add(SEMIC251);
 
                     // JS.g:1553:70: (ex2= expression )?
                     int alt58=2;
                     int LA58_0 = input.LA(1);
 
-                    if ( ((LA58_0>=NULL && LA58_0<=FALSE)||LA58_0==DELETE||(LA58_0>=EACH && LA58_0<=FUNCTION)||LA58_0==NEW||LA58_0==THIS||LA58_0==TYPEOF||LA58_0==VOID||(LA58_0>=GET && LA58_0<=YIELD)||(LA58_0>=WXML && LA58_0<=NAMESPACE)||LA58_0==LBRACE||LA58_0==LPAREN||LA58_0==LBRACK||(LA58_0>=ADD && LA58_0<=SUB)||(LA58_0>=INC && LA58_0<=DEC)||(LA58_0>=NOT && LA58_0<=INV)||(LA58_0>=StringLiteral && LA58_0<=XmlAttribute)||LA58_0==Identifier||LA58_0==RegularExpressionLiteral||(LA58_0>=DecimalLiteral && LA58_0<=HexIntegerLiteral)||LA58_0==XMLLiteral) ) {
+                    if ( ((LA58_0>=NULL && LA58_0<=FALSE)||LA58_0==DELETE||(LA58_0>=EACH && LA58_0<=FUNCTION)||LA58_0==NEW||LA58_0==THIS||LA58_0==TYPEOF||LA58_0==VOID||(LA58_0>=GET && LA58_0<=YIELD)||(LA58_0>=WXML && LA58_0<=NAMESPACE)||LA58_0==LBRACE||LA58_0==LPAREN||LA58_0==LBRACK||(LA58_0>=ADD && LA58_0<=SUB)||(LA58_0>=INC && LA58_0<=DEC)||(LA58_0>=NOT && LA58_0<=INV)||LA58_0==XMLLiteral||(LA58_0>=StringLiteral && LA58_0<=XmlAttribute)||LA58_0==Identifier||LA58_0==RegularExpressionLiteral||(LA58_0>=DecimalLiteral && LA58_0<=HexIntegerLiteral)) ) {
                         alt58=1;
                     }
                     switch (alt58) {
                         case 1 :
                             // JS.g:1553:70: ex2= expression
                             {
-                            pushFollow(FOLLOW_expression_in_forControlVar5741);
+                            pushFollow(FOLLOW_expression_in_forControlVar5740);
                             ex2=expression();
                             _fsp--;
 
@@ -8307,7 +8305,7 @@
 
 
                     // AST REWRITE
-                    // elements: ex2, ex1, variableDeclarationNoIn, VAR
+                    // elements: VAR, ex1, ex2, variableDeclarationNoIn
                     // token labels: 
                     // rule labels: retval, ex2, ex1
                     // token list labels: 
@@ -8441,7 +8439,7 @@
             // JS.g:1564:2: (ex1= expressionNoIn ({...}? ( IN ex2= expression -> ^( FORITER ^( EXPR $ex1) ^( EXPR $ex2) ) ) | ( SEMIC (ex2= expression )? SEMIC (ex3= expression )? -> ^( FORSTEP ^( EXPR $ex1) ^( EXPR ( $ex2)? ) ^( EXPR ( $ex3)? ) ) ) ) )
             // JS.g:1564:4: ex1= expressionNoIn ({...}? ( IN ex2= expression -> ^( FORITER ^( EXPR $ex1) ^( EXPR $ex2) ) ) | ( SEMIC (ex2= expression )? SEMIC (ex3= expression )? -> ^( FORSTEP ^( EXPR $ex1) ^( EXPR ( $ex2)? ) ^( EXPR ( $ex3)? ) ) ) )
             {
-            pushFollow(FOLLOW_expressionNoIn_in_forControlExpression5807);
+            pushFollow(FOLLOW_expressionNoIn_in_forControlExpression5806);
             ex1=expressionNoIn();
             _fsp--;
 
@@ -8473,17 +8471,17 @@
                     // JS.g:1567:4: IN ex2= expression
                     {
                     IN252=(Token)input.LT(1);
-                    match(input,IN,FOLLOW_IN_in_forControlExpression5822); 
+                    match(input,IN,FOLLOW_IN_in_forControlExpression5821); 
                     stream_IN.add(IN252);
 
-                    pushFollow(FOLLOW_expression_in_forControlExpression5826);
+                    pushFollow(FOLLOW_expression_in_forControlExpression5825);
                     ex2=expression();
                     _fsp--;
 
                     stream_expression.add(ex2.getTree());
 
                     // AST REWRITE
-                    // elements: ex2, ex1
+                    // elements: ex1, ex2
                     // token labels: 
                     // rule labels: retval, ex2, ex1
                     // token list labels: 
@@ -8539,21 +8537,21 @@
                     // JS.g:1572:4: SEMIC (ex2= expression )? SEMIC (ex3= expression )?
                     {
                     SEMIC253=(Token)input.LT(1);
-                    match(input,SEMIC,FOLLOW_SEMIC_in_forControlExpression5872); 
+                    match(input,SEMIC,FOLLOW_SEMIC_in_forControlExpression5871); 
                     stream_SEMIC.add(SEMIC253);
 
                     // JS.g:1572:13: (ex2= expression )?
                     int alt60=2;
                     int LA60_0 = input.LA(1);
 
-                    if ( ((LA60_0>=NULL && LA60_0<=FALSE)||LA60_0==DELETE||(LA60_0>=EACH && LA60_0<=FUNCTION)||LA60_0==NEW||LA60_0==THIS||LA60_0==TYPEOF||LA60_0==VOID||(LA60_0>=GET && LA60_0<=YIELD)||(LA60_0>=WXML && LA60_0<=NAMESPACE)||LA60_0==LBRACE||LA60_0==LPAREN||LA60_0==LBRACK||(LA60_0>=ADD && LA60_0<=SUB)||(LA60_0>=INC && LA60_0<=DEC)||(LA60_0>=NOT && LA60_0<=INV)||(LA60_0>=StringLiteral && LA60_0<=XmlAttribute)||LA60_0==Identifier||LA60_0==RegularExpressionLiteral||(LA60_0>=DecimalLiteral && LA60_0<=HexIntegerLiteral)||LA60_0==XMLLiteral) ) {
+                    if ( ((LA60_0>=NULL && LA60_0<=FALSE)||LA60_0==DELETE||(LA60_0>=EACH && LA60_0<=FUNCTION)||LA60_0==NEW||LA60_0==THIS||LA60_0==TYPEOF||LA60_0==VOID||(LA60_0>=GET && LA60_0<=YIELD)||(LA60_0>=WXML && LA60_0<=NAMESPACE)||LA60_0==LBRACE||LA60_0==LPAREN||LA60_0==LBRACK||(LA60_0>=ADD && LA60_0<=SUB)||(LA60_0>=INC && LA60_0<=DEC)||(LA60_0>=NOT && LA60_0<=INV)||LA60_0==XMLLiteral||(LA60_0>=StringLiteral && LA60_0<=XmlAttribute)||LA60_0==Identifier||LA60_0==RegularExpressionLiteral||(LA60_0>=DecimalLiteral && LA60_0<=HexIntegerLiteral)) ) {
                         alt60=1;
                     }
                     switch (alt60) {
                         case 1 :
                             // JS.g:1572:13: ex2= expression
                             {
-                            pushFollow(FOLLOW_expression_in_forControlExpression5876);
+                            pushFollow(FOLLOW_expression_in_forControlExpression5875);
                             ex2=expression();
                             _fsp--;
 
@@ -8565,21 +8563,21 @@
                     }
 
                     SEMIC254=(Token)input.LT(1);
-                    match(input,SEMIC,FOLLOW_SEMIC_in_forControlExpression5879); 
+                    match(input,SEMIC,FOLLOW_SEMIC_in_forControlExpression5878); 
                     stream_SEMIC.add(SEMIC254);
 
                     // JS.g:1572:35: (ex3= expression )?
                     int alt61=2;
                     int LA61_0 = input.LA(1);
 
-                    if ( ((LA61_0>=NULL && LA61_0<=FALSE)||LA61_0==DELETE||(LA61_0>=EACH && LA61_0<=FUNCTION)||LA61_0==NEW||LA61_0==THIS||LA61_0==TYPEOF||LA61_0==VOID||(LA61_0>=GET && LA61_0<=YIELD)||(LA61_0>=WXML && LA61_0<=NAMESPACE)||LA61_0==LBRACE||LA61_0==LPAREN||LA61_0==LBRACK||(LA61_0>=ADD && LA61_0<=SUB)||(LA61_0>=INC && LA61_0<=DEC)||(LA61_0>=NOT && LA61_0<=INV)||(LA61_0>=StringLiteral && LA61_0<=XmlAttribute)||LA61_0==Identifier||LA61_0==RegularExpressionLiteral||(LA61_0>=DecimalLiteral && LA61_0<=HexIntegerLiteral)||LA61_0==XMLLiteral) ) {
+                    if ( ((LA61_0>=NULL && LA61_0<=FALSE)||LA61_0==DELETE||(LA61_0>=EACH && LA61_0<=FUNCTION)||LA61_0==NEW||LA61_0==THIS||LA61_0==TYPEOF||LA61_0==VOID||(LA61_0>=GET && LA61_0<=YIELD)||(LA61_0>=WXML && LA61_0<=NAMESPACE)||LA61_0==LBRACE||LA61_0==LPAREN||LA61_0==LBRACK||(LA61_0>=ADD && LA61_0<=SUB)||(LA61_0>=INC && LA61_0<=DEC)||(LA61_0>=NOT && LA61_0<=INV)||LA61_0==XMLLiteral||(LA61_0>=StringLiteral && LA61_0<=XmlAttribute)||LA61_0==Identifier||LA61_0==RegularExpressionLiteral||(LA61_0>=DecimalLiteral && LA61_0<=HexIntegerLiteral)) ) {
                         alt61=1;
                     }
                     switch (alt61) {
                         case 1 :
                             // JS.g:1572:35: ex3= expression
                             {
-                            pushFollow(FOLLOW_expression_in_forControlExpression5883);
+                            pushFollow(FOLLOW_expression_in_forControlExpression5882);
                             ex3=expression();
                             _fsp--;
 
@@ -8592,7 +8590,7 @@
 
 
                     // AST REWRITE
-                    // elements: ex2, ex3, ex1
+                    // elements: ex3, ex1, ex2
                     // token labels: 
                     // rule labels: retval, ex3, ex2, ex1
                     // token list labels: 
@@ -8712,21 +8710,21 @@
             // JS.g:1579:4: SEMIC (ex1= expression )? SEMIC (ex2= expression )?
             {
             SEMIC255=(Token)input.LT(1);
-            match(input,SEMIC,FOLLOW_SEMIC_in_forControlSemic5942); 
+            match(input,SEMIC,FOLLOW_SEMIC_in_forControlSemic5941); 
             stream_SEMIC.add(SEMIC255);
 
             // JS.g:1579:13: (ex1= expression )?
             int alt63=2;
             int LA63_0 = input.LA(1);
 
-            if ( ((LA63_0>=NULL && LA63_0<=FALSE)||LA63_0==DELETE||(LA63_0>=EACH && LA63_0<=FUNCTION)||LA63_0==NEW||LA63_0==THIS||LA63_0==TYPEOF||LA63_0==VOID||(LA63_0>=GET && LA63_0<=YIELD)||(LA63_0>=WXML && LA63_0<=NAMESPACE)||LA63_0==LBRACE||LA63_0==LPAREN||LA63_0==LBRACK||(LA63_0>=ADD && LA63_0<=SUB)||(LA63_0>=INC && LA63_0<=DEC)||(LA63_0>=NOT && LA63_0<=INV)||(LA63_0>=StringLiteral && LA63_0<=XmlAttribute)||LA63_0==Identifier||LA63_0==RegularExpressionLiteral||(LA63_0>=DecimalLiteral && LA63_0<=HexIntegerLiteral)||LA63_0==XMLLiteral) ) {
+            if ( ((LA63_0>=NULL && LA63_0<=FALSE)||LA63_0==DELETE||(LA63_0>=EACH && LA63_0<=FUNCTION)||LA63_0==NEW||LA63_0==THIS||LA63_0==TYPEOF||LA63_0==VOID||(LA63_0>=GET && LA63_0<=YIELD)||(LA63_0>=WXML && LA63_0<=NAMESPACE)||LA63_0==LBRACE||LA63_0==LPAREN||LA63_0==LBRACK||(LA63_0>=ADD && LA63_0<=SUB)||(LA63_0>=INC && LA63_0<=DEC)||(LA63_0>=NOT && LA63_0<=INV)||LA63_0==XMLLiteral||(LA63_0>=StringLiteral && LA63_0<=XmlAttribute)||LA63_0==Identifier||LA63_0==RegularExpressionLiteral||(LA63_0>=DecimalLiteral && LA63_0<=HexIntegerLiteral)) ) {
                 alt63=1;
             }
             switch (alt63) {
                 case 1 :
                     // JS.g:1579:13: ex1= expression
                     {
-                    pushFollow(FOLLOW_expression_in_forControlSemic5946);
+                    pushFollow(FOLLOW_expression_in_forControlSemic5945);
                     ex1=expression();
                     _fsp--;
 
@@ -8738,21 +8736,21 @@
             }
 
             SEMIC256=(Token)input.LT(1);
-            match(input,SEMIC,FOLLOW_SEMIC_in_forControlSemic5949); 
+            match(input,SEMIC,FOLLOW_SEMIC_in_forControlSemic5948); 
             stream_SEMIC.add(SEMIC256);
 
             // JS.g:1579:35: (ex2= expression )?
             int alt64=2;
             int LA64_0 = input.LA(1);
 
-            if ( ((LA64_0>=NULL && LA64_0<=FALSE)||LA64_0==DELETE||(LA64_0>=EACH && LA64_0<=FUNCTION)||LA64_0==NEW||LA64_0==THIS||LA64_0==TYPEOF||LA64_0==VOID||(LA64_0>=GET && LA64_0<=YIELD)||(LA64_0>=WXML && LA64_0<=NAMESPACE)||LA64_0==LBRACE||LA64_0==LPAREN||LA64_0==LBRACK||(LA64_0>=ADD && LA64_0<=SUB)||(LA64_0>=INC && LA64_0<=DEC)||(LA64_0>=NOT && LA64_0<=INV)||(LA64_0>=StringLiteral && LA64_0<=XmlAttribute)||LA64_0==Identifier||LA64_0==RegularExpressionLiteral||(LA64_0>=DecimalLiteral && LA64_0<=HexIntegerLiteral)||LA64_0==XMLLiteral) ) {
+            if ( ((LA64_0>=NULL && LA64_0<=FALSE)||LA64_0==DELETE||(LA64_0>=EACH && LA64_0<=FUNCTION)||LA64_0==NEW||LA64_0==THIS||LA64_0==TYPEOF||LA64_0==VOID||(LA64_0>=GET && LA64_0<=YIELD)||(LA64_0>=WXML && LA64_0<=NAMESPACE)||LA64_0==LBRACE||LA64_0==LPAREN||LA64_0==LBRACK||(LA64_0>=ADD && LA64_0<=SUB)||(LA64_0>=INC && LA64_0<=DEC)||(LA64_0>=NOT && LA64_0<=INV)||LA64_0==XMLLiteral||(LA64_0>=StringLiteral && LA64_0<=XmlAttribute)||LA64_0==Identifier||LA64_0==RegularExpressionLiteral||(LA64_0>=DecimalLiteral && LA64_0<=HexIntegerLiteral)) ) {
                 alt64=1;
             }
             switch (alt64) {
                 case 1 :
                     // JS.g:1579:35: ex2= expression
                     {
-                    pushFollow(FOLLOW_expression_in_forControlSemic5953);
+                    pushFollow(FOLLOW_expression_in_forControlSemic5952);
                     ex2=expression();
                     _fsp--;
 
@@ -8872,7 +8870,7 @@
             root_0 = (Object)adaptor.nil();
 
             CONTINUE257=(Token)input.LT(1);
-            match(input,CONTINUE,FOLLOW_CONTINUE_in_continueStatement6007); 
+            match(input,CONTINUE,FOLLOW_CONTINUE_in_continueStatement6006); 
             CONTINUE257_tree = (Object)adaptor.create(CONTINUE257);
             root_0 = (Object)adaptor.becomeRoot(CONTINUE257_tree, root_0);
 
@@ -8889,7 +8887,7 @@
                     // JS.g:1593:67: Identifier
                     {
                     Identifier258=(Token)input.LT(1);
-                    match(input,Identifier,FOLLOW_Identifier_in_continueStatement6012); 
+                    match(input,Identifier,FOLLOW_Identifier_in_continueStatement6011); 
                     Identifier258_tree = (Object)adaptor.create(Identifier258);
                     adaptor.addChild(root_0, Identifier258_tree);
 
@@ -8899,7 +8897,7 @@
 
             }
 
-            pushFollow(FOLLOW_semic_in_continueStatement6015);
+            pushFollow(FOLLOW_semic_in_continueStatement6014);
             semic259=semic();
             _fsp--;
 
@@ -8950,7 +8948,7 @@
             root_0 = (Object)adaptor.nil();
 
             BREAK260=(Token)input.LT(1);
-            match(input,BREAK,FOLLOW_BREAK_in_breakStatement6034); 
+            match(input,BREAK,FOLLOW_BREAK_in_breakStatement6033); 
             BREAK260_tree = (Object)adaptor.create(BREAK260);
             root_0 = (Object)adaptor.becomeRoot(BREAK260_tree, root_0);
 
@@ -8967,7 +8965,7 @@
                     // JS.g:1606:64: Identifier
                     {
                     Identifier261=(Token)input.LT(1);
-                    match(input,Identifier,FOLLOW_Identifier_in_breakStatement6039); 
+                    match(input,Identifier,FOLLOW_Identifier_in_breakStatement6038); 
                     Identifier261_tree = (Object)adaptor.create(Identifier261);
                     adaptor.addChild(root_0, Identifier261_tree);
 
@@ -8977,7 +8975,7 @@
 
             }
 
-            pushFollow(FOLLOW_semic_in_breakStatement6042);
+            pushFollow(FOLLOW_semic_in_breakStatement6041);
             semic262=semic();
             _fsp--;
 
@@ -9028,7 +9026,7 @@
             root_0 = (Object)adaptor.nil();
 
             RETURN263=(Token)input.LT(1);
-            match(input,RETURN,FOLLOW_RETURN_in_returnStatement6061); 
+            match(input,RETURN,FOLLOW_RETURN_in_returnStatement6060); 
             RETURN263_tree = (Object)adaptor.create(RETURN263);
             root_0 = (Object)adaptor.becomeRoot(RETURN263_tree, root_0);
 
@@ -9037,14 +9035,14 @@
             int alt67=2;
             int LA67_0 = input.LA(1);
 
-            if ( ((LA67_0>=NULL && LA67_0<=FALSE)||LA67_0==DELETE||(LA67_0>=EACH && LA67_0<=FUNCTION)||LA67_0==NEW||LA67_0==THIS||LA67_0==TYPEOF||LA67_0==VOID||(LA67_0>=GET && LA67_0<=YIELD)||(LA67_0>=WXML && LA67_0<=NAMESPACE)||LA67_0==LBRACE||LA67_0==LPAREN||LA67_0==LBRACK||(LA67_0>=ADD && LA67_0<=SUB)||(LA67_0>=INC && LA67_0<=DEC)||(LA67_0>=NOT && LA67_0<=INV)||(LA67_0>=StringLiteral && LA67_0<=XmlAttribute)||LA67_0==Identifier||LA67_0==RegularExpressionLiteral||(LA67_0>=DecimalLiteral && LA67_0<=HexIntegerLiteral)||LA67_0==XMLLiteral) ) {
+            if ( ((LA67_0>=NULL && LA67_0<=FALSE)||LA67_0==DELETE||(LA67_0>=EACH && LA67_0<=FUNCTION)||LA67_0==NEW||LA67_0==THIS||LA67_0==TYPEOF||LA67_0==VOID||(LA67_0>=GET && LA67_0<=YIELD)||(LA67_0>=WXML && LA67_0<=NAMESPACE)||LA67_0==LBRACE||LA67_0==LPAREN||LA67_0==LBRACK||(LA67_0>=ADD && LA67_0<=SUB)||(LA67_0>=INC && LA67_0<=DEC)||(LA67_0>=NOT && LA67_0<=INV)||LA67_0==XMLLiteral||(LA67_0>=StringLiteral && LA67_0<=XmlAttribute)||LA67_0==Identifier||LA67_0==RegularExpressionLiteral||(LA67_0>=DecimalLiteral && LA67_0<=HexIntegerLiteral)) ) {
                 alt67=1;
             }
             switch (alt67) {
                 case 1 :
                     // JS.g:1627:34: expression
                     {
-                    pushFollow(FOLLOW_expression_in_returnStatement6066);
+                    pushFollow(FOLLOW_expression_in_returnStatement6065);
                     expression264=expression();
                     _fsp--;
 
@@ -9055,7 +9053,7 @@
 
             }
 
-            pushFollow(FOLLOW_semic_in_returnStatement6069);
+            pushFollow(FOLLOW_semic_in_returnStatement6068);
             semic265=semic();
             _fsp--;
 
@@ -9110,20 +9108,20 @@
             root_0 = (Object)adaptor.nil();
 
             WITH266=(Token)input.LT(1);
-            match(input,WITH,FOLLOW_WITH_in_withStatement6086); 
+            match(input,WITH,FOLLOW_WITH_in_withStatement6085); 
             WITH266_tree = (Object)adaptor.create(WITH266);
             root_0 = (Object)adaptor.becomeRoot(WITH266_tree, root_0);
 
             LPAREN267=(Token)input.LT(1);
-            match(input,LPAREN,FOLLOW_LPAREN_in_withStatement6089); 
-            pushFollow(FOLLOW_expression_in_withStatement6092);
+            match(input,LPAREN,FOLLOW_LPAREN_in_withStatement6088); 
+            pushFollow(FOLLOW_expression_in_withStatement6091);
             expression268=expression();
             _fsp--;
 
             adaptor.addChild(root_0, expression268.getTree());
             RPAREN269=(Token)input.LT(1);
-            match(input,RPAREN,FOLLOW_RPAREN_in_withStatement6094); 
-            pushFollow(FOLLOW_statement_in_withStatement6097);
+            match(input,RPAREN,FOLLOW_RPAREN_in_withStatement6093); 
+            pushFollow(FOLLOW_statement_in_withStatement6096);
             statement270=statement();
             _fsp--;
 
@@ -9193,24 +9191,24 @@
             // JS.g:1647:4: SWITCH LPAREN expression RPAREN LBRACE ({...}? => defaultClause | caseClause )* RBRACE
             {
             SWITCH271=(Token)input.LT(1);
-            match(input,SWITCH,FOLLOW_SWITCH_in_switchStatement6118); 
+            match(input,SWITCH,FOLLOW_SWITCH_in_switchStatement6117); 
             stream_SWITCH.add(SWITCH271);
 
             LPAREN272=(Token)input.LT(1);
-            match(input,LPAREN,FOLLOW_LPAREN_in_switchStatement6120); 
+            match(input,LPAREN,FOLLOW_LPAREN_in_switchStatement6119); 
             stream_LPAREN.add(LPAREN272);
 
-            pushFollow(FOLLOW_expression_in_switchStatement6122);
+            pushFollow(FOLLOW_expression_in_switchStatement6121);
             expression273=expression();
             _fsp--;
 
             stream_expression.add(expression273.getTree());
             RPAREN274=(Token)input.LT(1);
-            match(input,RPAREN,FOLLOW_RPAREN_in_switchStatement6124); 
+            match(input,RPAREN,FOLLOW_RPAREN_in_switchStatement6123); 
             stream_RPAREN.add(RPAREN274);
 
             LBRACE275=(Token)input.LT(1);
-            match(input,LBRACE,FOLLOW_LBRACE_in_switchStatement6126); 
+            match(input,LBRACE,FOLLOW_LBRACE_in_switchStatement6125); 
             stream_LBRACE.add(LBRACE275);
 
             // JS.g:1647:43: ({...}? => defaultClause | caseClause )*
@@ -9234,7 +9232,7 @@
             	    if ( !( defaultClauseCount == 0 ) ) {
             	        throw new FailedPredicateException(input, "switchStatement", " defaultClauseCount == 0 ");
             	    }
-            	    pushFollow(FOLLOW_defaultClause_in_switchStatement6133);
+            	    pushFollow(FOLLOW_defaultClause_in_switchStatement6132);
             	    defaultClause276=defaultClause();
             	    _fsp--;
 
@@ -9246,7 +9244,7 @@
             	case 2 :
             	    // JS.g:1647:118: caseClause
             	    {
-            	    pushFollow(FOLLOW_caseClause_in_switchStatement6139);
+            	    pushFollow(FOLLOW_caseClause_in_switchStatement6138);
             	    caseClause277=caseClause();
             	    _fsp--;
 
@@ -9261,7 +9259,7 @@
             } while (true);
 
             RBRACE278=(Token)input.LT(1);
-            match(input,RBRACE,FOLLOW_RBRACE_in_switchStatement6144); 
+            match(input,RBRACE,FOLLOW_RBRACE_in_switchStatement6143); 
             stream_RBRACE.add(RBRACE278);
 
 
@@ -9351,17 +9349,17 @@
             root_0 = (Object)adaptor.nil();
 
             CASE279=(Token)input.LT(1);
-            match(input,CASE,FOLLOW_CASE_in_caseClause6172); 
+            match(input,CASE,FOLLOW_CASE_in_caseClause6171); 
             CASE279_tree = (Object)adaptor.create(CASE279);
             root_0 = (Object)adaptor.becomeRoot(CASE279_tree, root_0);
 
-            pushFollow(FOLLOW_expression_in_caseClause6175);
+            pushFollow(FOLLOW_expression_in_caseClause6174);
             expression280=expression();
             _fsp--;
 
             adaptor.addChild(root_0, expression280.getTree());
             COLON281=(Token)input.LT(1);
-            match(input,COLON,FOLLOW_COLON_in_caseClause6177); 
+            match(input,COLON,FOLLOW_COLON_in_caseClause6176); 
             // JS.g:1652:28: ( statement )*
             loop69:
             do {
@@ -9377,7 +9375,7 @@
 
 
                 }
-                else if ( ((LA69_0>=NULL && LA69_0<=BREAK)||LA69_0==CONTINUE||(LA69_0>=DELETE && LA69_0<=DO)||(LA69_0>=FOR && LA69_0<=IF)||(LA69_0>=NEW && LA69_0<=YIELD)||(LA69_0>=WXML && LA69_0<=NAMESPACE)||LA69_0==CONST||LA69_0==LBRACE||LA69_0==LPAREN||LA69_0==LBRACK||LA69_0==SEMIC||(LA69_0>=ADD && LA69_0<=SUB)||(LA69_0>=INC && LA69_0<=DEC)||(LA69_0>=NOT && LA69_0<=INV)||(LA69_0>=StringLiteral && LA69_0<=XmlAttribute)||LA69_0==Identifier||LA69_0==RegularExpressionLiteral||(LA69_0>=DecimalLiteral && LA69_0<=HexIntegerLiteral)||LA69_0==XMLLiteral) ) {
+                else if ( ((LA69_0>=NULL && LA69_0<=BREAK)||LA69_0==CONTINUE||(LA69_0>=DELETE && LA69_0<=DO)||(LA69_0>=FOR && LA69_0<=IF)||(LA69_0>=NEW && LA69_0<=YIELD)||(LA69_0>=WXML && LA69_0<=NAMESPACE)||LA69_0==CONST||LA69_0==LBRACE||LA69_0==LPAREN||LA69_0==LBRACK||LA69_0==SEMIC||(LA69_0>=ADD && LA69_0<=SUB)||(LA69_0>=INC && LA69_0<=DEC)||(LA69_0>=NOT && LA69_0<=INV)||LA69_0==XMLLiteral||(LA69_0>=StringLiteral && LA69_0<=XmlAttribute)||LA69_0==Identifier||LA69_0==RegularExpressionLiteral||(LA69_0>=DecimalLiteral && LA69_0<=HexIntegerLiteral)) ) {
                     alt69=1;
                 }
 
@@ -9386,7 +9384,7 @@
             	case 1 :
             	    // JS.g:1652:28: statement
             	    {
-            	    pushFollow(FOLLOW_statement_in_caseClause6180);
+            	    pushFollow(FOLLOW_statement_in_caseClause6179);
             	    statement282=statement();
             	    _fsp--;
 
@@ -9447,12 +9445,12 @@
             root_0 = (Object)adaptor.nil();
 
             DEFAULT283=(Token)input.LT(1);
-            match(input,DEFAULT,FOLLOW_DEFAULT_in_defaultClause6193); 
+            match(input,DEFAULT,FOLLOW_DEFAULT_in_defaultClause6192); 
             DEFAULT283_tree = (Object)adaptor.create(DEFAULT283);
             root_0 = (Object)adaptor.becomeRoot(DEFAULT283_tree, root_0);
 
             COLON284=(Token)input.LT(1);
-            match(input,COLON,FOLLOW_COLON_in_defaultClause6196); 
+            match(input,COLON,FOLLOW_COLON_in_defaultClause6195); 
             // JS.g:1656:20: ( statement )*
             loop70:
             do {
@@ -9468,7 +9466,7 @@
 
 
                 }
-                else if ( ((LA70_0>=NULL && LA70_0<=BREAK)||LA70_0==CONTINUE||(LA70_0>=DELETE && LA70_0<=DO)||(LA70_0>=FOR && LA70_0<=IF)||(LA70_0>=NEW && LA70_0<=YIELD)||(LA70_0>=WXML && LA70_0<=NAMESPACE)||LA70_0==CONST||LA70_0==LBRACE||LA70_0==LPAREN||LA70_0==LBRACK||LA70_0==SEMIC||(LA70_0>=ADD && LA70_0<=SUB)||(LA70_0>=INC && LA70_0<=DEC)||(LA70_0>=NOT && LA70_0<=INV)||(LA70_0>=StringLiteral && LA70_0<=XmlAttribute)||LA70_0==Identifier||LA70_0==RegularExpressionLiteral||(LA70_0>=DecimalLiteral && LA70_0<=HexIntegerLiteral)||LA70_0==XMLLiteral) ) {
+                else if ( ((LA70_0>=NULL && LA70_0<=BREAK)||LA70_0==CONTINUE||(LA70_0>=DELETE && LA70_0<=DO)||(LA70_0>=FOR && LA70_0<=IF)||(LA70_0>=NEW && LA70_0<=YIELD)||(LA70_0>=WXML && LA70_0<=NAMESPACE)||LA70_0==CONST||LA70_0==LBRACE||LA70_0==LPAREN||LA70_0==LBRACK||LA70_0==SEMIC||(LA70_0>=ADD && LA70_0<=SUB)||(LA70_0>=INC && LA70_0<=DEC)||(LA70_0>=NOT && LA70_0<=INV)||LA70_0==XMLLiteral||(LA70_0>=StringLiteral && LA70_0<=XmlAttribute)||LA70_0==Identifier||LA70_0==RegularExpressionLiteral||(LA70_0>=DecimalLiteral && LA70_0<=HexIntegerLiteral)) ) {
                     alt70=1;
                 }
 
@@ -9477,7 +9475,7 @@
             	case 1 :
             	    // JS.g:1656:20: statement
             	    {
-            	    pushFollow(FOLLOW_statement_in_defaultClause6199);
+            	    pushFollow(FOLLOW_statement_in_defaultClause6198);
             	    statement285=statement();
             	    _fsp--;
 
@@ -9537,23 +9535,23 @@
             // JS.g:1664:2: ( identifier COLON statement -> ^( LABELLED identifier statement ) )
             // JS.g:1664:4: identifier COLON statement
             {
-            pushFollow(FOLLOW_identifier_in_labelledStatement6216);
+            pushFollow(FOLLOW_identifier_in_labelledStatement6215);
             identifier286=identifier();
             _fsp--;
 
             stream_identifier.add(identifier286.getTree());
             COLON287=(Token)input.LT(1);
-            match(input,COLON,FOLLOW_COLON_in_labelledStatement6218); 
+            match(input,COLON,FOLLOW_COLON_in_labelledStatement6217); 
             stream_COLON.add(COLON287);
 
-            pushFollow(FOLLOW_statement_in_labelledStatement6220);
+            pushFollow(FOLLOW_statement_in_labelledStatement6219);
             statement288=statement();
             _fsp--;
 
             stream_statement.add(statement288.getTree());
 
             // AST REWRITE
-            // elements: statement, identifier
+            // elements: identifier, statement
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -9625,17 +9623,17 @@
             root_0 = (Object)adaptor.nil();
 
             THROW289=(Token)input.LT(1);
-            match(input,THROW,FOLLOW_THROW_in_throwStatement6251); 
+            match(input,THROW,FOLLOW_THROW_in_throwStatement6250); 
             THROW289_tree = (Object)adaptor.create(THROW289);
             root_0 = (Object)adaptor.becomeRoot(THROW289_tree, root_0);
 
              promoteEOL(null); 
-            pushFollow(FOLLOW_expression_in_throwStatement6256);
+            pushFollow(FOLLOW_expression_in_throwStatement6255);
             expression290=expression();
             _fsp--;
 
             adaptor.addChild(root_0, expression290.getTree());
-            pushFollow(FOLLOW_semic_in_throwStatement6258);
+            pushFollow(FOLLOW_semic_in_throwStatement6257);
             semic291=semic();
             _fsp--;
 
@@ -9690,11 +9688,11 @@
             root_0 = (Object)adaptor.nil();
 
             TRY292=(Token)input.LT(1);
-            match(input,TRY,FOLLOW_TRY_in_tryStatement6275); 
+            match(input,TRY,FOLLOW_TRY_in_tryStatement6274); 
             TRY292_tree = (Object)adaptor.create(TRY292);
             root_0 = (Object)adaptor.becomeRoot(TRY292_tree, root_0);
 
-            pushFollow(FOLLOW_block_in_tryStatement6278);
+            pushFollow(FOLLOW_block_in_tryStatement6277);
             block293=block();
             _fsp--;
 
@@ -9735,7 +9733,7 @@
                     	case 1 :
                     	    // JS.g:1696:17: catchClause
                     	    {
-                    	    pushFollow(FOLLOW_catchClause_in_tryStatement6282);
+                    	    pushFollow(FOLLOW_catchClause_in_tryStatement6281);
                     	    catchClause294=catchClause();
                     	    _fsp--;
 
@@ -9764,7 +9762,7 @@
                         case 1 :
                             // JS.g:1696:30: finallyClause
                             {
-                            pushFollow(FOLLOW_finallyClause_in_tryStatement6285);
+                            pushFollow(FOLLOW_finallyClause_in_tryStatement6284);
                             finallyClause295=finallyClause();
                             _fsp--;
 
@@ -9781,7 +9779,7 @@
                 case 2 :
                     // JS.g:1696:47: finallyClause
                     {
-                    pushFollow(FOLLOW_finallyClause_in_tryStatement6290);
+                    pushFollow(FOLLOW_finallyClause_in_tryStatement6289);
                     finallyClause296=finallyClause();
                     _fsp--;
 
@@ -9845,13 +9843,13 @@
             root_0 = (Object)adaptor.nil();
 
             CATCH297=(Token)input.LT(1);
-            match(input,CATCH,FOLLOW_CATCH_in_catchClause6304); 
+            match(input,CATCH,FOLLOW_CATCH_in_catchClause6303); 
             CATCH297_tree = (Object)adaptor.create(CATCH297);
             root_0 = (Object)adaptor.becomeRoot(CATCH297_tree, root_0);
 
             LPAREN298=(Token)input.LT(1);
-            match(input,LPAREN,FOLLOW_LPAREN_in_catchClause6307); 
-            pushFollow(FOLLOW_identifier_in_catchClause6310);
+            match(input,LPAREN,FOLLOW_LPAREN_in_catchClause6306); 
+            pushFollow(FOLLOW_identifier_in_catchClause6309);
             identifier299=identifier();
             _fsp--;
 
@@ -9867,7 +9865,7 @@
                 case 1 :
                     // JS.g:1700:30: catchFilter
                     {
-                    pushFollow(FOLLOW_catchFilter_in_catchClause6312);
+                    pushFollow(FOLLOW_catchFilter_in_catchClause6311);
                     catchFilter300=catchFilter();
                     _fsp--;
 
@@ -9879,8 +9877,8 @@
             }
 
             RPAREN301=(Token)input.LT(1);
-            match(input,RPAREN,FOLLOW_RPAREN_in_catchClause6315); 
-            pushFollow(FOLLOW_block_in_catchClause6318);
+            match(input,RPAREN,FOLLOW_RPAREN_in_catchClause6314); 
+            pushFollow(FOLLOW_block_in_catchClause6317);
             block302=block();
             _fsp--;
 
@@ -9930,11 +9928,11 @@
             root_0 = (Object)adaptor.nil();
 
             IF303=(Token)input.LT(1);
-            match(input,IF,FOLLOW_IF_in_catchFilter6331); 
+            match(input,IF,FOLLOW_IF_in_catchFilter6330); 
             IF303_tree = (Object)adaptor.create(IF303);
             root_0 = (Object)adaptor.becomeRoot(IF303_tree, root_0);
 
-            pushFollow(FOLLOW_instanceofExpression_in_catchFilter6334);
+            pushFollow(FOLLOW_instanceofExpression_in_catchFilter6333);
             instanceofExpression304=instanceofExpression();
             _fsp--;
 
@@ -9985,17 +9983,17 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_identifier_in_instanceofExpression6349);
+            pushFollow(FOLLOW_identifier_in_instanceofExpression6348);
             identifier305=identifier();
             _fsp--;
 
             adaptor.addChild(root_0, identifier305.getTree());
             INSTANCEOF306=(Token)input.LT(1);
-            match(input,INSTANCEOF,FOLLOW_INSTANCEOF_in_instanceofExpression6351); 
+            match(input,INSTANCEOF,FOLLOW_INSTANCEOF_in_instanceofExpression6350); 
             INSTANCEOF306_tree = (Object)adaptor.create(INSTANCEOF306);
             root_0 = (Object)adaptor.becomeRoot(INSTANCEOF306_tree, root_0);
 
-            pushFollow(FOLLOW_identifier_in_instanceofExpression6354);
+            pushFollow(FOLLOW_identifier_in_instanceofExpression6353);
             identifier307=identifier();
             _fsp--;
 
@@ -10045,11 +10043,11 @@
             root_0 = (Object)adaptor.nil();
 
             FINALLY308=(Token)input.LT(1);
-            match(input,FINALLY,FOLLOW_FINALLY_in_finallyClause6367); 
+            match(input,FINALLY,FOLLOW_FINALLY_in_finallyClause6366); 
             FINALLY308_tree = (Object)adaptor.create(FINALLY308);
             root_0 = (Object)adaptor.becomeRoot(FINALLY308_tree, root_0);
 
-            pushFollow(FOLLOW_block_in_finallyClause6370);
+            pushFollow(FOLLOW_block_in_finallyClause6369);
             block309=block();
             _fsp--;
 
@@ -10104,27 +10102,27 @@
             // JS.g:1726:4: FUNCTION name= identifier formalParameterList functionBody
             {
             FUNCTION310=(Token)input.LT(1);
-            match(input,FUNCTION,FOLLOW_FUNCTION_in_functionDeclaration6391); 
+            match(input,FUNCTION,FOLLOW_FUNCTION_in_functionDeclaration6390); 
             stream_FUNCTION.add(FUNCTION310);
 
-            pushFollow(FOLLOW_identifier_in_functionDeclaration6395);
+            pushFollow(FOLLOW_identifier_in_functionDeclaration6394);
             name=identifier();
             _fsp--;
 
             stream_identifier.add(name.getTree());
-            pushFollow(FOLLOW_formalParameterList_in_functionDeclaration6397);
+            pushFollow(FOLLOW_formalParameterList_in_functionDeclaration6396);
             formalParameterList311=formalParameterList();
             _fsp--;
 
             stream_formalParameterList.add(formalParameterList311.getTree());
-            pushFollow(FOLLOW_functionBody_in_functionDeclaration6399);
+            pushFollow(FOLLOW_functionBody_in_functionDeclaration6398);
             functionBody312=functionBody();
             _fsp--;
 
             stream_functionBody.add(functionBody312.getTree());
 
             // AST REWRITE
-            // elements: FUNCTION, name, formalParameterList, functionBody
+            // elements: formalParameterList, functionBody, FUNCTION, name
             // token labels: 
             // rule labels: retval, name
             // token list labels: 
@@ -10201,7 +10199,7 @@
             // JS.g:1731:4: FUNCTION (name= identifier )? formalParameterList functionBody
             {
             FUNCTION313=(Token)input.LT(1);
-            match(input,FUNCTION,FOLLOW_FUNCTION_in_functionExpression6426); 
+            match(input,FUNCTION,FOLLOW_FUNCTION_in_functionExpression6425); 
             stream_FUNCTION.add(FUNCTION313);
 
             // JS.g:1731:17: (name= identifier )?
@@ -10215,7 +10213,7 @@
                 case 1 :
                     // JS.g:1731:17: name= identifier
                     {
-                    pushFollow(FOLLOW_identifier_in_functionExpression6430);
+                    pushFollow(FOLLOW_identifier_in_functionExpression6429);
                     name=identifier();
                     _fsp--;
 
@@ -10226,19 +10224,19 @@
 
             }
 
-            pushFollow(FOLLOW_formalParameterList_in_functionExpression6433);
+            pushFollow(FOLLOW_formalParameterList_in_functionExpression6432);
             formalParameterList314=formalParameterList();
             _fsp--;
 
             stream_formalParameterList.add(formalParameterList314.getTree());
-            pushFollow(FOLLOW_functionBody_in_functionExpression6435);
+            pushFollow(FOLLOW_functionBody_in_functionExpression6434);
             functionBody315=functionBody();
             _fsp--;
 
             stream_functionBody.add(functionBody315.getTree());
 
             // AST REWRITE
-            // elements: name, functionBody, formalParameterList, FUNCTION
+            // elements: FUNCTION, formalParameterList, name, functionBody
             // token labels: 
             // rule labels: retval, name
             // token list labels: 
@@ -10319,7 +10317,7 @@
             // JS.g:1736:4: LPAREN (args+= identifier ( COMMA args+= identifier )* )? RPAREN
             {
             LPAREN316=(Token)input.LT(1);
-            match(input,LPAREN,FOLLOW_LPAREN_in_formalParameterList6463); 
+            match(input,LPAREN,FOLLOW_LPAREN_in_formalParameterList6462); 
             stream_LPAREN.add(LPAREN316);
 
             // JS.g:1736:11: (args+= identifier ( COMMA args+= identifier )* )?
@@ -10333,7 +10331,7 @@
                 case 1 :
                     // JS.g:1736:13: args+= identifier ( COMMA args+= identifier )*
                     {
-                    pushFollow(FOLLOW_identifier_in_formalParameterList6469);
+                    pushFollow(FOLLOW_identifier_in_formalParameterList6468);
                     args=identifier();
                     _fsp--;
 
@@ -10357,10 +10355,10 @@
                     	    // JS.g:1736:32: COMMA args+= identifier
                     	    {
                     	    COMMA317=(Token)input.LT(1);
-                    	    match(input,COMMA,FOLLOW_COMMA_in_formalParameterList6473); 
+                    	    match(input,COMMA,FOLLOW_COMMA_in_formalParameterList6472); 
                     	    stream_COMMA.add(COMMA317);
 
-                    	    pushFollow(FOLLOW_identifier_in_formalParameterList6477);
+                    	    pushFollow(FOLLOW_identifier_in_formalParameterList6476);
                     	    args=identifier();
                     	    _fsp--;
 
@@ -10384,7 +10382,7 @@
             }
 
             RPAREN318=(Token)input.LT(1);
-            match(input,RPAREN,FOLLOW_RPAREN_in_formalParameterList6485); 
+            match(input,RPAREN,FOLLOW_RPAREN_in_formalParameterList6484); 
             stream_RPAREN.add(RPAREN318);
 
 
@@ -10465,7 +10463,7 @@
             // JS.g:1741:4: lb= LBRACE ( sourceElement )* RBRACE
             {
             lb=(Token)input.LT(1);
-            match(input,LBRACE,FOLLOW_LBRACE_in_functionBody6511); 
+            match(input,LBRACE,FOLLOW_LBRACE_in_functionBody6510); 
             stream_LBRACE.add(lb);
 
             // JS.g:1741:14: ( sourceElement )*
@@ -10474,7 +10472,7 @@
                 int alt78=2;
                 int LA78_0 = input.LA(1);
 
-                if ( ((LA78_0>=NULL && LA78_0<=BREAK)||(LA78_0>=CONTINUE && LA78_0<=DO)||(LA78_0>=FOR && LA78_0<=IF)||(LA78_0>=NEW && LA78_0<=YIELD)||(LA78_0>=WXML && LA78_0<=NAMESPACE)||LA78_0==CONST||LA78_0==LBRACE||LA78_0==LPAREN||LA78_0==LBRACK||LA78_0==SEMIC||(LA78_0>=ADD && LA78_0<=SUB)||(LA78_0>=INC && LA78_0<=DEC)||(LA78_0>=NOT && LA78_0<=INV)||(LA78_0>=StringLiteral && LA78_0<=XmlAttribute)||LA78_0==Identifier||LA78_0==RegularExpressionLiteral||(LA78_0>=DecimalLiteral && LA78_0<=HexIntegerLiteral)||LA78_0==XMLLiteral) ) {
+                if ( ((LA78_0>=NULL && LA78_0<=BREAK)||(LA78_0>=CONTINUE && LA78_0<=DO)||(LA78_0>=FOR && LA78_0<=IF)||(LA78_0>=NEW && LA78_0<=YIELD)||(LA78_0>=WXML && LA78_0<=NAMESPACE)||LA78_0==CONST||LA78_0==LBRACE||LA78_0==LPAREN||LA78_0==LBRACK||LA78_0==SEMIC||(LA78_0>=ADD && LA78_0<=SUB)||(LA78_0>=INC && LA78_0<=DEC)||(LA78_0>=NOT && LA78_0<=INV)||LA78_0==XMLLiteral||(LA78_0>=StringLiteral && LA78_0<=XmlAttribute)||LA78_0==Identifier||LA78_0==RegularExpressionLiteral||(LA78_0>=DecimalLiteral && LA78_0<=HexIntegerLiteral)) ) {
                     alt78=1;
                 }
 
@@ -10483,7 +10481,7 @@
             	case 1 :
             	    // JS.g:1741:14: sourceElement
             	    {
-            	    pushFollow(FOLLOW_sourceElement_in_functionBody6513);
+            	    pushFollow(FOLLOW_sourceElement_in_functionBody6512);
             	    sourceElement319=sourceElement();
             	    _fsp--;
 
@@ -10498,7 +10496,7 @@
             } while (true);
 
             RBRACE320=(Token)input.LT(1);
-            match(input,RBRACE,FOLLOW_RBRACE_in_functionBody6516); 
+            match(input,RBRACE,FOLLOW_RBRACE_in_functionBody6515); 
             stream_RBRACE.add(RBRACE320);
 
 
@@ -10585,30 +10583,30 @@
             // JS.g:1751:5: GET name= identifier LPAREN RPAREN functionBody
             {
             GET321=(Token)input.LT(1);
-            match(input,GET,FOLLOW_GET_in_getMethodDeclaration6546); 
+            match(input,GET,FOLLOW_GET_in_getMethodDeclaration6545); 
             stream_GET.add(GET321);
 
-            pushFollow(FOLLOW_identifier_in_getMethodDeclaration6550);
+            pushFollow(FOLLOW_identifier_in_getMethodDeclaration6549);
             name=identifier();
             _fsp--;
 
             stream_identifier.add(name.getTree());
             LPAREN322=(Token)input.LT(1);
-            match(input,LPAREN,FOLLOW_LPAREN_in_getMethodDeclaration6552); 
+            match(input,LPAREN,FOLLOW_LPAREN_in_getMethodDeclaration6551); 
             stream_LPAREN.add(LPAREN322);
 
             RPAREN323=(Token)input.LT(1);
-            match(input,RPAREN,FOLLOW_RPAREN_in_getMethodDeclaration6554); 
+            match(input,RPAREN,FOLLOW_RPAREN_in_getMethodDeclaration6553); 
             stream_RPAREN.add(RPAREN323);
 
-            pushFollow(FOLLOW_functionBody_in_getMethodDeclaration6556);
+            pushFollow(FOLLOW_functionBody_in_getMethodDeclaration6555);
             functionBody324=functionBody();
             _fsp--;
 
             stream_functionBody.add(functionBody324.getTree());
 
             // AST REWRITE
-            // elements: identifier, functionBody
+            // elements: functionBody, identifier
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -10688,35 +10686,35 @@
             // JS.g:1756:5: SET name= identifier LPAREN param= identifier RPAREN functionBody
             {
             SET325=(Token)input.LT(1);
-            match(input,SET,FOLLOW_SET_in_setMethodDeclaration6584); 
+            match(input,SET,FOLLOW_SET_in_setMethodDeclaration6583); 
             stream_SET.add(SET325);
 
-            pushFollow(FOLLOW_identifier_in_setMethodDeclaration6588);
+            pushFollow(FOLLOW_identifier_in_setMethodDeclaration6587);
             name=identifier();
             _fsp--;
 
             stream_identifier.add(name.getTree());
             LPAREN326=(Token)input.LT(1);
-            match(input,LPAREN,FOLLOW_LPAREN_in_setMethodDeclaration6590); 
+            match(input,LPAREN,FOLLOW_LPAREN_in_setMethodDeclaration6589); 
             stream_LPAREN.add(LPAREN326);
 
-            pushFollow(FOLLOW_identifier_in_setMethodDeclaration6594);
+            pushFollow(FOLLOW_identifier_in_setMethodDeclaration6593);
             param=identifier();
             _fsp--;
 
             stream_identifier.add(param.getTree());
             RPAREN327=(Token)input.LT(1);
-            match(input,RPAREN,FOLLOW_RPAREN_in_setMethodDeclaration6596); 
+            match(input,RPAREN,FOLLOW_RPAREN_in_setMethodDeclaration6595); 
             stream_RPAREN.add(RPAREN327);
 
-            pushFollow(FOLLOW_functionBody_in_setMethodDeclaration6598);
+            pushFollow(FOLLOW_functionBody_in_setMethodDeclaration6597);
             functionBody328=functionBody();
             _fsp--;
 
             stream_functionBody.add(functionBody328.getTree());
 
             // AST REWRITE
-            // elements: name, param, functionBody
+            // elements: functionBody, param, name
             // token labels: 
             // rule labels: retval, param, name
             // token list labels: 
@@ -10794,7 +10792,7 @@
                 int alt79=2;
                 int LA79_0 = input.LA(1);
 
-                if ( ((LA79_0>=NULL && LA79_0<=BREAK)||(LA79_0>=CONTINUE && LA79_0<=DO)||(LA79_0>=FOR && LA79_0<=IF)||(LA79_0>=NEW && LA79_0<=YIELD)||(LA79_0>=WXML && LA79_0<=NAMESPACE)||LA79_0==CONST||LA79_0==LBRACE||LA79_0==LPAREN||LA79_0==LBRACK||LA79_0==SEMIC||(LA79_0>=ADD && LA79_0<=SUB)||(LA79_0>=INC && LA79_0<=DEC)||(LA79_0>=NOT && LA79_0<=INV)||(LA79_0>=StringLiteral && LA79_0<=XmlAttribute)||LA79_0==Identifier||LA79_0==RegularExpressionLiteral||(LA79_0>=DecimalLiteral && LA79_0<=HexIntegerLiteral)||LA79_0==XMLLiteral) ) {
+                if ( ((LA79_0>=NULL && LA79_0<=BREAK)||(LA79_0>=CONTINUE && LA79_0<=DO)||(LA79_0>=FOR && LA79_0<=IF)||(LA79_0>=NEW && LA79_0<=YIELD)||(LA79_0>=WXML && LA79_0<=NAMESPACE)||LA79_0==CONST||LA79_0==LBRACE||LA79_0==LPAREN||LA79_0==LBRACK||LA79_0==SEMIC||(LA79_0>=ADD && LA79_0<=SUB)||(LA79_0>=INC && LA79_0<=DEC)||(LA79_0>=NOT && LA79_0<=INV)||LA79_0==XMLLiteral||(LA79_0>=StringLiteral && LA79_0<=XmlAttribute)||LA79_0==Identifier||LA79_0==RegularExpressionLiteral||(LA79_0>=DecimalLiteral && LA79_0<=HexIntegerLiteral)) ) {
                     alt79=1;
                 }
 
@@ -10803,7 +10801,7 @@
             	case 1 :
             	    // JS.g:1765:4: sourceElement
             	    {
-            	    pushFollow(FOLLOW_sourceElement_in_program6633);
+            	    pushFollow(FOLLOW_sourceElement_in_program6632);
             	    sourceElement329=sourceElement();
             	    _fsp--;
 
@@ -10818,7 +10816,7 @@
             } while (true);
 
             EOF330=(Token)input.LT(1);
-            match(input,EOF,FOLLOW_EOF_in_program6636); 
+            match(input,EOF,FOLLOW_EOF_in_program6635); 
 
             }
 
@@ -10878,7 +10876,7 @@
                     throw nvae;
                 }
             }
-            else if ( ((LA80_0>=NULL && LA80_0<=BREAK)||(LA80_0>=CONTINUE && LA80_0<=DO)||(LA80_0>=FOR && LA80_0<=EACH)||LA80_0==IF||(LA80_0>=NEW && LA80_0<=YIELD)||(LA80_0>=WXML && LA80_0<=NAMESPACE)||LA80_0==CONST||LA80_0==LBRACE||LA80_0==LPAREN||LA80_0==LBRACK||LA80_0==SEMIC||(LA80_0>=ADD && LA80_0<=SUB)||(LA80_0>=INC && LA80_0<=DEC)||(LA80_0>=NOT && LA80_0<=INV)||(LA80_0>=StringLiteral && LA80_0<=XmlAttribute)||LA80_0==Identifier||LA80_0==RegularExpressionLiteral||(LA80_0>=DecimalLiteral && LA80_0<=HexIntegerLiteral)||LA80_0==XMLLiteral) ) {
+            else if ( ((LA80_0>=NULL && LA80_0<=BREAK)||(LA80_0>=CONTINUE && LA80_0<=DO)||(LA80_0>=FOR && LA80_0<=EACH)||LA80_0==IF||(LA80_0>=NEW && LA80_0<=YIELD)||(LA80_0>=WXML && LA80_0<=NAMESPACE)||LA80_0==CONST||LA80_0==LBRACE||LA80_0==LPAREN||LA80_0==LBRACK||LA80_0==SEMIC||(LA80_0>=ADD && LA80_0<=SUB)||(LA80_0>=INC && LA80_0<=DEC)||(LA80_0>=NOT && LA80_0<=INV)||LA80_0==XMLLiteral||(LA80_0>=StringLiteral && LA80_0<=XmlAttribute)||LA80_0==Identifier||LA80_0==RegularExpressionLiteral||(LA80_0>=DecimalLiteral && LA80_0<=HexIntegerLiteral)) ) {
                 alt80=2;
             }
             else {
@@ -10896,7 +10894,7 @@
                     if ( !( input.LA(1) == FUNCTION ) ) {
                         throw new FailedPredicateException(input, "sourceElement", " input.LA(1) == FUNCTION ");
                     }
-                    pushFollow(FOLLOW_functionDeclaration_in_sourceElement6665);
+                    pushFollow(FOLLOW_functionDeclaration_in_sourceElement6664);
                     functionDeclaration331=functionDeclaration();
                     _fsp--;
 
@@ -10909,7 +10907,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_statement_in_sourceElement6670);
+                    pushFollow(FOLLOW_statement_in_sourceElement6669);
                     statement332=statement();
                     _fsp--;
 
@@ -10966,12 +10964,12 @@
     public static final BitSet FOLLOW_arrayLiteral_in_primaryExpression3516 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_objectLiteral_in_primaryExpression3521 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_parenExpression_in_primaryExpression3526 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LPAREN_in_parenExpression3542 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_LPAREN_in_parenExpression3542 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
     public static final BitSet FOLLOW_expression_in_parenExpression3544 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
     public static final BitSet FOLLOW_RPAREN_in_parenExpression3546 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LBRACK_in_arrayLiteral3571 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819804D40L,0x1C50600000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_LBRACK_in_arrayLiteral3571 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819804D40L,0x1C50600002000000L});
     public static final BitSet FOLLOW_arrayItem_in_arrayLiteral3575 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004800L});
-    public static final BitSet FOLLOW_COMMA_in_arrayLiteral3579 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819804D40L,0x1C50600000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_COMMA_in_arrayLiteral3579 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819804D40L,0x1C50600002000000L});
     public static final BitSet FOLLOW_arrayItem_in_arrayLiteral3581 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004800L});
     public static final BitSet FOLLOW_RBRACK_in_arrayLiteral3589 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_assignmentExpression_in_arrayItem3617 = new BitSet(new long[]{0x0000000000000002L});
@@ -10984,7 +10982,7 @@
     public static final BitSet FOLLOW_getMethodDeclaration_in_objectPropertyInitializer3699 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_setMethodDeclaration_in_objectPropertyInitializer3705 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_propertyName_in_nameValuePair3718 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
-    public static final BitSet FOLLOW_COLON_in_nameValuePair3720 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_COLON_in_nameValuePair3720 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
     public static final BitSet FOLLOW_assignmentExpression_in_nameValuePair3722 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_identifier_in_propertyName3746 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_StringLiteral_in_propertyName3751 = new BitSet(new long[]{0x0000000000000002L});
@@ -10995,21 +10993,21 @@
     public static final BitSet FOLLOW_newExpression_in_memberExpression3789 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_NEW_in_newExpression3800 = new BitSet(new long[]{0x0000006602460070L,0x0000000000000540L,0x1C50600000000000L});
     public static final BitSet FOLLOW_memberExpression_in_newExpression3803 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LPAREN_in_arguments3816 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800740L,0x1C50600000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_LPAREN_in_arguments3816 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800740L,0x1C50600002000000L});
     public static final BitSet FOLLOW_assignmentExpression_in_arguments3820 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004200L});
-    public static final BitSet FOLLOW_COMMA_in_arguments3824 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_COMMA_in_arguments3824 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
     public static final BitSet FOLLOW_assignmentExpression_in_arguments3826 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004200L});
     public static final BitSet FOLLOW_RPAREN_in_arguments3834 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_memberExpression_in_leftHandSideExpression3867 = new BitSet(new long[]{0x0000000000000002L,0xC000000000001500L});
     public static final BitSet FOLLOW_arguments_in_leftHandSideExpression3888 = new BitSet(new long[]{0x0000000000000002L,0xC000000000001500L});
-    public static final BitSet FOLLOW_LBRACK_in_leftHandSideExpression3913 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_LBRACK_in_leftHandSideExpression3913 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
     public static final BitSet FOLLOW_expression_in_leftHandSideExpression3915 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
     public static final BitSet FOLLOW_RBRACK_in_leftHandSideExpression3917 = new BitSet(new long[]{0x0000000000000002L,0xC000000000001500L});
     public static final BitSet FOLLOW_DOT_in_leftHandSideExpression3939 = new BitSet(new long[]{0x0000006600020000L,0x0000000002000100L,0x0010400000000000L});
     public static final BitSet FOLLOW_rightHandSideExpression_in_leftHandSideExpression3941 = new BitSet(new long[]{0x0000000000000002L,0xC000000000001500L});
-    public static final BitSet FOLLOW_DOTDOT_in_leftHandSideExpression3962 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_DOTDOT_in_leftHandSideExpression3962 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
     public static final BitSet FOLLOW_expression_in_leftHandSideExpression3964 = new BitSet(new long[]{0x0000000000000002L,0xC000000000001500L});
-    public static final BitSet FOLLOW_COLONCOLON_in_leftHandSideExpression3983 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_COLONCOLON_in_leftHandSideExpression3983 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
     public static final BitSet FOLLOW_expression_in_leftHandSideExpression3985 = new BitSet(new long[]{0x0000000000000002L,0xC000000000001500L});
     public static final BitSet FOLLOW_parenExpression_in_rightHandSideExpression4014 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_identifier_in_rightHandSideExpression4021 = new BitSet(new long[]{0x0000000000000002L});
@@ -11020,286 +11018,286 @@
     public static final BitSet FOLLOW_INC_in_postfixOperator4095 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_DEC_in_postfixOperator4104 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_postfixExpression_in_unaryExpression4121 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_unaryOperator_in_unaryExpression4126 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_unaryOperator_in_unaryExpression4126 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
     public static final BitSet FOLLOW_unaryExpression_in_unaryExpression4129 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_XMLLiteral_in_unaryExpression4135 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_DELETE_in_unaryOperator4147 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_VOID_in_unaryOperator4152 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_TYPEOF_in_unaryOperator4157 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_INC_in_unaryOperator4162 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_DEC_in_unaryOperator4167 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ADD_in_unaryOperator4174 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_SUB_in_unaryOperator4183 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_INV_in_unaryOperator4190 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_NOT_in_unaryOperator4195 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_YIELD_in_unaryOperator4200 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_DEFAULT_in_namespaceStatement4236 = new BitSet(new long[]{0x0000002000000000L});
-    public static final BitSet FOLLOW_WXML_in_namespaceStatement4238 = new BitSet(new long[]{0x0000004000000000L});
-    public static final BitSet FOLLOW_NAMESPACE_in_namespaceStatement4240 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
-    public static final BitSet FOLLOW_ASSIGN_in_namespaceStatement4242 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000200000000000L});
-    public static final BitSet FOLLOW_StringLiteral_in_namespaceStatement4244 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00000C0000000000L});
-    public static final BitSet FOLLOW_semic_in_namespaceStatement4246 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_unaryExpression_in_multiplicativeExpression4278 = new BitSet(new long[]{0x0000000000000002L,0x0010000006000000L});
-    public static final BitSet FOLLOW_set_in_multiplicativeExpression4282 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_unaryExpression_in_multiplicativeExpression4297 = new BitSet(new long[]{0x0000000000000002L,0x0010000006000000L});
-    public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression4315 = new BitSet(new long[]{0x0000000000000002L,0x0000000001800000L});
-    public static final BitSet FOLLOW_set_in_additiveExpression4319 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression4330 = new BitSet(new long[]{0x0000000000000002L,0x0000000001800000L});
-    public static final BitSet FOLLOW_additiveExpression_in_shiftExpression4349 = new BitSet(new long[]{0x0000000000000002L,0x00000000E0000000L});
-    public static final BitSet FOLLOW_set_in_shiftExpression4353 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_additiveExpression_in_shiftExpression4368 = new BitSet(new long[]{0x0000000000000002L,0x00000000E0000000L});
-    public static final BitSet FOLLOW_shiftExpression_in_relationalExpression4387 = new BitSet(new long[]{0x0000000000300002L,0x0000000000078000L});
-    public static final BitSet FOLLOW_set_in_relationalExpression4391 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_shiftExpression_in_relationalExpression4418 = new BitSet(new long[]{0x0000000000300002L,0x0000000000078000L});
-    public static final BitSet FOLLOW_shiftExpression_in_relationalExpressionNoIn4432 = new BitSet(new long[]{0x0000000000200002L,0x0000000000078000L});
-    public static final BitSet FOLLOW_set_in_relationalExpressionNoIn4436 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_shiftExpression_in_relationalExpressionNoIn4459 = new BitSet(new long[]{0x0000000000200002L,0x0000000000078000L});
-    public static final BitSet FOLLOW_relationalExpression_in_equalityExpression4478 = new BitSet(new long[]{0x0000000000000002L,0x0000000000780000L});
-    public static final BitSet FOLLOW_set_in_equalityExpression4482 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_relationalExpression_in_equalityExpression4501 = new BitSet(new long[]{0x0000000000000002L,0x0000000000780000L});
-    public static final BitSet FOLLOW_relationalExpressionNoIn_in_equalityExpressionNoIn4515 = new BitSet(new long[]{0x0000000000000002L,0x0000000000780000L});
-    public static final BitSet FOLLOW_set_in_equalityExpressionNoIn4519 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_relationalExpressionNoIn_in_equalityExpressionNoIn4538 = new BitSet(new long[]{0x0000000000000002L,0x0000000000780000L});
-    public static final BitSet FOLLOW_equalityExpression_in_bitwiseANDExpression4558 = new BitSet(new long[]{0x0000000000000002L,0x0000000100000000L});
-    public static final BitSet FOLLOW_AND_in_bitwiseANDExpression4562 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_equalityExpression_in_bitwiseANDExpression4565 = new BitSet(new long[]{0x0000000000000002L,0x0000000100000000L});
-    public static final BitSet FOLLOW_equalityExpressionNoIn_in_bitwiseANDExpressionNoIn4579 = new BitSet(new long[]{0x0000000000000002L,0x0000000100000000L});
-    public static final BitSet FOLLOW_AND_in_bitwiseANDExpressionNoIn4583 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_equalityExpressionNoIn_in_bitwiseANDExpressionNoIn4586 = new BitSet(new long[]{0x0000000000000002L,0x0000000100000000L});
-    public static final BitSet FOLLOW_bitwiseANDExpression_in_bitwiseXORExpression4602 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
-    public static final BitSet FOLLOW_XOR_in_bitwiseXORExpression4606 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_bitwiseANDExpression_in_bitwiseXORExpression4609 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
-    public static final BitSet FOLLOW_bitwiseANDExpressionNoIn_in_bitwiseXORExpressionNoIn4625 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
-    public static final BitSet FOLLOW_XOR_in_bitwiseXORExpressionNoIn4629 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_bitwiseANDExpressionNoIn_in_bitwiseXORExpressionNoIn4632 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
-    public static final BitSet FOLLOW_bitwiseXORExpression_in_bitwiseORExpression4647 = new BitSet(new long[]{0x0000000000000002L,0x0000000200000000L});
-    public static final BitSet FOLLOW_OR_in_bitwiseORExpression4651 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_bitwiseXORExpression_in_bitwiseORExpression4654 = new BitSet(new long[]{0x0000000000000002L,0x0000000200000000L});
-    public static final BitSet FOLLOW_bitwiseXORExpressionNoIn_in_bitwiseORExpressionNoIn4669 = new BitSet(new long[]{0x0000000000000002L,0x0000000200000000L});
-    public static final BitSet FOLLOW_OR_in_bitwiseORExpressionNoIn4673 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_bitwiseXORExpressionNoIn_in_bitwiseORExpressionNoIn4676 = new BitSet(new long[]{0x0000000000000002L,0x0000000200000000L});
-    public static final BitSet FOLLOW_bitwiseORExpression_in_logicalANDExpression4695 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L});
-    public static final BitSet FOLLOW_LAND_in_logicalANDExpression4699 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_bitwiseORExpression_in_logicalANDExpression4702 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L});
-    public static final BitSet FOLLOW_bitwiseORExpressionNoIn_in_logicalANDExpressionNoIn4716 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L});
-    public static final BitSet FOLLOW_LAND_in_logicalANDExpressionNoIn4720 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_bitwiseORExpressionNoIn_in_logicalANDExpressionNoIn4723 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L});
-    public static final BitSet FOLLOW_logicalANDExpression_in_logicalORExpression4738 = new BitSet(new long[]{0x0000000000000002L,0x0000004000000000L});
-    public static final BitSet FOLLOW_LOR_in_logicalORExpression4742 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_logicalANDExpression_in_logicalORExpression4745 = new BitSet(new long[]{0x0000000000000002L,0x0000004000000000L});
-    public static final BitSet FOLLOW_logicalANDExpressionNoIn_in_logicalORExpressionNoIn4760 = new BitSet(new long[]{0x0000000000000002L,0x0000004000000000L});
-    public static final BitSet FOLLOW_LOR_in_logicalORExpressionNoIn4764 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_logicalANDExpressionNoIn_in_logicalORExpressionNoIn4767 = new BitSet(new long[]{0x0000000000000002L,0x0000004000000000L});
-    public static final BitSet FOLLOW_logicalORExpression_in_conditionalExpression4786 = new BitSet(new long[]{0x0000000000000002L,0x0000008000000000L});
-    public static final BitSet FOLLOW_QUE_in_conditionalExpression4790 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_assignmentExpression_in_conditionalExpression4793 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
-    public static final BitSet FOLLOW_COLON_in_conditionalExpression4795 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_assignmentExpression_in_conditionalExpression4798 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_logicalORExpressionNoIn_in_conditionalExpressionNoIn4812 = new BitSet(new long[]{0x0000000000000002L,0x0000008000000000L});
-    public static final BitSet FOLLOW_QUE_in_conditionalExpressionNoIn4816 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_assignmentExpressionNoIn_in_conditionalExpressionNoIn4819 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
-    public static final BitSet FOLLOW_COLON_in_conditionalExpressionNoIn4821 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_assignmentExpressionNoIn_in_conditionalExpressionNoIn4824 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_conditionalExpression_in_assignmentExpression4852 = new BitSet(new long[]{0x0000000000000002L,0x002FFE0000000000L});
-    public static final BitSet FOLLOW_assignmentOperator_in_assignmentExpression4859 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_assignmentExpression_in_assignmentExpression4862 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_XMLLiteral_in_unaryExpression4134 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_DELETE_in_unaryOperator4146 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_VOID_in_unaryOperator4151 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_TYPEOF_in_unaryOperator4156 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_INC_in_unaryOperator4161 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_DEC_in_unaryOperator4166 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ADD_in_unaryOperator4173 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_SUB_in_unaryOperator4182 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_INV_in_unaryOperator4189 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_NOT_in_unaryOperator4194 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_YIELD_in_unaryOperator4199 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_DEFAULT_in_namespaceStatement4235 = new BitSet(new long[]{0x0000002000000000L});
+    public static final BitSet FOLLOW_WXML_in_namespaceStatement4237 = new BitSet(new long[]{0x0000004000000000L});
+    public static final BitSet FOLLOW_NAMESPACE_in_namespaceStatement4239 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
+    public static final BitSet FOLLOW_ASSIGN_in_namespaceStatement4241 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000200000000000L});
+    public static final BitSet FOLLOW_StringLiteral_in_namespaceStatement4243 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00000C0000000000L});
+    public static final BitSet FOLLOW_semic_in_namespaceStatement4245 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_unaryExpression_in_multiplicativeExpression4277 = new BitSet(new long[]{0x0000000000000002L,0x0010000006000000L});
+    public static final BitSet FOLLOW_set_in_multiplicativeExpression4281 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_unaryExpression_in_multiplicativeExpression4296 = new BitSet(new long[]{0x0000000000000002L,0x0010000006000000L});
+    public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression4314 = new BitSet(new long[]{0x0000000000000002L,0x0000000001800000L});
+    public static final BitSet FOLLOW_set_in_additiveExpression4318 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression4329 = new BitSet(new long[]{0x0000000000000002L,0x0000000001800000L});
+    public static final BitSet FOLLOW_additiveExpression_in_shiftExpression4348 = new BitSet(new long[]{0x0000000000000002L,0x00000000E0000000L});
+    public static final BitSet FOLLOW_set_in_shiftExpression4352 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_additiveExpression_in_shiftExpression4367 = new BitSet(new long[]{0x0000000000000002L,0x00000000E0000000L});
+    public static final BitSet FOLLOW_shiftExpression_in_relationalExpression4386 = new BitSet(new long[]{0x0000000000300002L,0x0000000000078000L});
+    public static final BitSet FOLLOW_set_in_relationalExpression4390 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_shiftExpression_in_relationalExpression4417 = new BitSet(new long[]{0x0000000000300002L,0x0000000000078000L});
+    public static final BitSet FOLLOW_shiftExpression_in_relationalExpressionNoIn4431 = new BitSet(new long[]{0x0000000000200002L,0x0000000000078000L});
+    public static final BitSet FOLLOW_set_in_relationalExpressionNoIn4435 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_shiftExpression_in_relationalExpressionNoIn4458 = new BitSet(new long[]{0x0000000000200002L,0x0000000000078000L});
+    public static final BitSet FOLLOW_relationalExpression_in_equalityExpression4477 = new BitSet(new long[]{0x0000000000000002L,0x0000000000780000L});
+    public static final BitSet FOLLOW_set_in_equalityExpression4481 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_relationalExpression_in_equalityExpression4500 = new BitSet(new long[]{0x0000000000000002L,0x0000000000780000L});
+    public static final BitSet FOLLOW_relationalExpressionNoIn_in_equalityExpressionNoIn4514 = new BitSet(new long[]{0x0000000000000002L,0x0000000000780000L});
+    public static final BitSet FOLLOW_set_in_equalityExpressionNoIn4518 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_relationalExpressionNoIn_in_equalityExpressionNoIn4537 = new BitSet(new long[]{0x0000000000000002L,0x0000000000780000L});
+    public static final BitSet FOLLOW_equalityExpression_in_bitwiseANDExpression4557 = new BitSet(new long[]{0x0000000000000002L,0x0000000100000000L});
+    public static final BitSet FOLLOW_AND_in_bitwiseANDExpression4561 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_equalityExpression_in_bitwiseANDExpression4564 = new BitSet(new long[]{0x0000000000000002L,0x0000000100000000L});
+    public static final BitSet FOLLOW_equalityExpressionNoIn_in_bitwiseANDExpressionNoIn4578 = new BitSet(new long[]{0x0000000000000002L,0x0000000100000000L});
+    public static final BitSet FOLLOW_AND_in_bitwiseANDExpressionNoIn4582 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_equalityExpressionNoIn_in_bitwiseANDExpressionNoIn4585 = new BitSet(new long[]{0x0000000000000002L,0x0000000100000000L});
+    public static final BitSet FOLLOW_bitwiseANDExpression_in_bitwiseXORExpression4601 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
+    public static final BitSet FOLLOW_XOR_in_bitwiseXORExpression4605 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_bitwiseANDExpression_in_bitwiseXORExpression4608 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
+    public static final BitSet FOLLOW_bitwiseANDExpressionNoIn_in_bitwiseXORExpressionNoIn4624 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
+    public static final BitSet FOLLOW_XOR_in_bitwiseXORExpressionNoIn4628 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_bitwiseANDExpressionNoIn_in_bitwiseXORExpressionNoIn4631 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
+    public static final BitSet FOLLOW_bitwiseXORExpression_in_bitwiseORExpression4646 = new BitSet(new long[]{0x0000000000000002L,0x0000000200000000L});
+    public static final BitSet FOLLOW_OR_in_bitwiseORExpression4650 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_bitwiseXORExpression_in_bitwiseORExpression4653 = new BitSet(new long[]{0x0000000000000002L,0x0000000200000000L});
+    public static final BitSet FOLLOW_bitwiseXORExpressionNoIn_in_bitwiseORExpressionNoIn4668 = new BitSet(new long[]{0x0000000000000002L,0x0000000200000000L});
+    public static final BitSet FOLLOW_OR_in_bitwiseORExpressionNoIn4672 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_bitwiseXORExpressionNoIn_in_bitwiseORExpressionNoIn4675 = new BitSet(new long[]{0x0000000000000002L,0x0000000200000000L});
+    public static final BitSet FOLLOW_bitwiseORExpression_in_logicalANDExpression4694 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L});
+    public static final BitSet FOLLOW_LAND_in_logicalANDExpression4698 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_bitwiseORExpression_in_logicalANDExpression4701 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L});
+    public static final BitSet FOLLOW_bitwiseORExpressionNoIn_in_logicalANDExpressionNoIn4715 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L});
+    public static final BitSet FOLLOW_LAND_in_logicalANDExpressionNoIn4719 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_bitwiseORExpressionNoIn_in_logicalANDExpressionNoIn4722 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L});
+    public static final BitSet FOLLOW_logicalANDExpression_in_logicalORExpression4737 = new BitSet(new long[]{0x0000000000000002L,0x0000004000000000L});
+    public static final BitSet FOLLOW_LOR_in_logicalORExpression4741 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_logicalANDExpression_in_logicalORExpression4744 = new BitSet(new long[]{0x0000000000000002L,0x0000004000000000L});
+    public static final BitSet FOLLOW_logicalANDExpressionNoIn_in_logicalORExpressionNoIn4759 = new BitSet(new long[]{0x0000000000000002L,0x0000004000000000L});
+    public static final BitSet FOLLOW_LOR_in_logicalORExpressionNoIn4763 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_logicalANDExpressionNoIn_in_logicalORExpressionNoIn4766 = new BitSet(new long[]{0x0000000000000002L,0x0000004000000000L});
+    public static final BitSet FOLLOW_logicalORExpression_in_conditionalExpression4785 = new BitSet(new long[]{0x0000000000000002L,0x0000008000000000L});
+    public static final BitSet FOLLOW_QUE_in_conditionalExpression4789 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_assignmentExpression_in_conditionalExpression4792 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
+    public static final BitSet FOLLOW_COLON_in_conditionalExpression4794 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_assignmentExpression_in_conditionalExpression4797 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_logicalORExpressionNoIn_in_conditionalExpressionNoIn4811 = new BitSet(new long[]{0x0000000000000002L,0x0000008000000000L});
+    public static final BitSet FOLLOW_QUE_in_conditionalExpressionNoIn4815 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_assignmentExpressionNoIn_in_conditionalExpressionNoIn4818 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
+    public static final BitSet FOLLOW_COLON_in_conditionalExpressionNoIn4820 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_assignmentExpressionNoIn_in_conditionalExpressionNoIn4823 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_conditionalExpression_in_assignmentExpression4851 = new BitSet(new long[]{0x0000000000000002L,0x002FFE0000000000L});
+    public static final BitSet FOLLOW_assignmentOperator_in_assignmentExpression4858 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_assignmentExpression_in_assignmentExpression4861 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_set_in_assignmentOperator0 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_conditionalExpressionNoIn_in_assignmentExpressionNoIn4940 = new BitSet(new long[]{0x0000000000000002L,0x002FFE0000000000L});
-    public static final BitSet FOLLOW_assignmentOperator_in_assignmentExpressionNoIn4947 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_assignmentExpressionNoIn_in_assignmentExpressionNoIn4950 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_assignmentExpression_in_expression4972 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L});
-    public static final BitSet FOLLOW_COMMA_in_expression4976 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_assignmentExpression_in_expression4980 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L});
-    public static final BitSet FOLLOW_assignmentExpressionNoIn_in_expressionNoIn5017 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L});
-    public static final BitSet FOLLOW_COMMA_in_expressionNoIn5021 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_assignmentExpressionNoIn_in_expressionNoIn5025 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L});
-    public static final BitSet FOLLOW_SEMIC_in_semic5076 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_EOF_in_semic5081 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RBRACE_in_semic5086 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_EOL_in_semic5093 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_MultiLineComment_in_semic5097 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_block_in_statement5126 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_statementTail_in_statement5131 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_variableStatement_in_statementTail5143 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_emptyStatement_in_statementTail5148 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_expressionStatement_in_statementTail5153 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ifStatement_in_statementTail5158 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_iterationStatement_in_statementTail5163 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_continueStatement_in_statementTail5168 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_breakStatement_in_statementTail5173 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_returnStatement_in_statementTail5178 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_withStatement_in_statementTail5183 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_labelledStatement_in_statementTail5188 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_switchStatement_in_statementTail5193 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_throwStatement_in_statementTail5198 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_tryStatement_in_statementTail5203 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_constStatement_in_statementTail5208 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_namespaceStatement_in_statementTail5213 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LBRACE_in_block5228 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x00000018198025C0L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_statement_in_block5230 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x00000018198025C0L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_RBRACE_in_block5233 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_VAR_in_variableStatement5262 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_variableDeclaration_in_variableStatement5264 = new BitSet(new long[]{0x0000000000000000L,0x0000000000006080L,0x00000C0000000000L});
-    public static final BitSet FOLLOW_COMMA_in_variableStatement5268 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_variableDeclaration_in_variableStatement5270 = new BitSet(new long[]{0x0000000000000000L,0x0000000000006080L,0x00000C0000000000L});
-    public static final BitSet FOLLOW_semic_in_variableStatement5275 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_identifier_in_variableDeclaration5298 = new BitSet(new long[]{0x0000000000000002L,0x0000020000000000L});
-    public static final BitSet FOLLOW_ASSIGN_in_variableDeclaration5302 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_assignmentExpression_in_variableDeclaration5305 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_identifier_in_variableDeclarationNoIn5320 = new BitSet(new long[]{0x0000000000000002L,0x0000020000000000L});
-    public static final BitSet FOLLOW_ASSIGN_in_variableDeclarationNoIn5324 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_assignmentExpressionNoIn_in_variableDeclarationNoIn5327 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_CONST_in_constStatement5342 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_variableDeclaration_in_constStatement5344 = new BitSet(new long[]{0x0000000000000000L,0x0000000000006080L,0x00000C0000000000L});
-    public static final BitSet FOLLOW_COMMA_in_constStatement5348 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_variableDeclaration_in_constStatement5350 = new BitSet(new long[]{0x0000000000000000L,0x0000000000006080L,0x00000C0000000000L});
-    public static final BitSet FOLLOW_semic_in_constStatement5355 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_SEMIC_in_emptyStatement5385 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_expression_in_expressionStatement5404 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00000C0000000000L});
-    public static final BitSet FOLLOW_semic_in_expressionStatement5406 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_IF_in_ifStatement5424 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_LPAREN_in_ifStatement5426 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_expression_in_ifStatement5428 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_RPAREN_in_ifStatement5430 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_statement_in_ifStatement5432 = new BitSet(new long[]{0x0000000000004002L});
-    public static final BitSet FOLLOW_ELSE_in_ifStatement5438 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_statement_in_ifStatement5440 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_doStatement_in_iterationStatement5473 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_whileStatement_in_iterationStatement5478 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_forEachStatement_in_iterationStatement5483 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_forStatement_in_iterationStatement5488 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_DO_in_doStatement5500 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_statement_in_doStatement5502 = new BitSet(new long[]{0x0000000080000000L});
-    public static final BitSet FOLLOW_WHILE_in_doStatement5504 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_LPAREN_in_doStatement5506 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_expression_in_doStatement5508 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_RPAREN_in_doStatement5510 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00000C0000000000L});
-    public static final BitSet FOLLOW_semic_in_doStatement5512 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_WHILE_in_whileStatement5537 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_LPAREN_in_whileStatement5540 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_expression_in_whileStatement5543 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_RPAREN_in_whileStatement5545 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_statement_in_whileStatement5548 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FOR_in_forEachStatement5563 = new BitSet(new long[]{0x0000000000020000L});
-    public static final BitSet FOLLOW_EACH_in_forEachStatement5565 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_LPAREN_in_forEachStatement5567 = new BitSet(new long[]{0x0000006E72461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_forEachControl_in_forEachStatement5569 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_RPAREN_in_forEachStatement5571 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_statement_in_forEachStatement5573 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_forControlVar_in_forEachControl5600 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_forControlExpression_in_forEachControl5606 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FOR_in_forStatement5618 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_LPAREN_in_forStatement5621 = new BitSet(new long[]{0x0000006E72461070L,0x0000001819802540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_forControl_in_forStatement5624 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_RPAREN_in_forStatement5626 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_statement_in_forStatement5629 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_forControlVar_in_forControl5640 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_forControlExpression_in_forControl5645 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_forControlSemic_in_forControl5650 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_VAR_in_forControlVar5661 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_variableDeclarationNoIn_in_forControlVar5663 = new BitSet(new long[]{0x0000000000100000L,0x0000000000006000L});
-    public static final BitSet FOLLOW_IN_in_forControlVar5675 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_expression_in_forControlVar5677 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_COMMA_in_forControlVar5723 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_variableDeclarationNoIn_in_forControlVar5725 = new BitSet(new long[]{0x0000000000000000L,0x0000000000006000L});
-    public static final BitSet FOLLOW_SEMIC_in_forControlVar5730 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819802540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_expression_in_forControlVar5734 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
-    public static final BitSet FOLLOW_SEMIC_in_forControlVar5737 = new BitSet(new long[]{0x0000006E52461072L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_expression_in_forControlVar5741 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_expressionNoIn_in_forControlExpression5807 = new BitSet(new long[]{0x0000000000100000L,0x0000000000002000L});
-    public static final BitSet FOLLOW_IN_in_forControlExpression5822 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_expression_in_forControlExpression5826 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_SEMIC_in_forControlExpression5872 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819802540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_expression_in_forControlExpression5876 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
-    public static final BitSet FOLLOW_SEMIC_in_forControlExpression5879 = new BitSet(new long[]{0x0000006E52461072L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_expression_in_forControlExpression5883 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_SEMIC_in_forControlSemic5942 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819802540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_expression_in_forControlSemic5946 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
-    public static final BitSet FOLLOW_SEMIC_in_forControlSemic5949 = new BitSet(new long[]{0x0000006E52461072L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_expression_in_forControlSemic5953 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_CONTINUE_in_continueStatement6007 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00100C0000000000L});
-    public static final BitSet FOLLOW_Identifier_in_continueStatement6012 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00000C0000000000L});
-    public static final BitSet FOLLOW_semic_in_continueStatement6015 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_BREAK_in_breakStatement6034 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00100C0000000000L});
-    public static final BitSet FOLLOW_Identifier_in_breakStatement6039 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00000C0000000000L});
-    public static final BitSet FOLLOW_semic_in_breakStatement6042 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RETURN_in_returnStatement6061 = new BitSet(new long[]{0x0000006E52461070L,0x00000018198025C0L,0x1C506C0000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_expression_in_returnStatement6066 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00000C0000000000L});
-    public static final BitSet FOLLOW_semic_in_returnStatement6069 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_WITH_in_withStatement6086 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_LPAREN_in_withStatement6089 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_expression_in_withStatement6092 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_RPAREN_in_withStatement6094 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_statement_in_withStatement6097 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_SWITCH_in_switchStatement6118 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_LPAREN_in_switchStatement6120 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_expression_in_switchStatement6122 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_RPAREN_in_switchStatement6124 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_LBRACE_in_switchStatement6126 = new BitSet(new long[]{0x0000000000000900L,0x0000000000000080L});
-    public static final BitSet FOLLOW_defaultClause_in_switchStatement6133 = new BitSet(new long[]{0x0000000000000900L,0x0000000000000080L});
-    public static final BitSet FOLLOW_caseClause_in_switchStatement6139 = new BitSet(new long[]{0x0000000000000900L,0x0000000000000080L});
-    public static final BitSet FOLLOW_RBRACE_in_switchStatement6144 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_CASE_in_caseClause6172 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_expression_in_caseClause6175 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
-    public static final BitSet FOLLOW_COLON_in_caseClause6177 = new BitSet(new long[]{0x0000106FFFCF3CF2L,0x0000001819802540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_statement_in_caseClause6180 = new BitSet(new long[]{0x0000106FFFCF3CF2L,0x0000001819802540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_DEFAULT_in_defaultClause6193 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
-    public static final BitSet FOLLOW_COLON_in_defaultClause6196 = new BitSet(new long[]{0x0000106FFFCF3CF2L,0x0000001819802540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_statement_in_defaultClause6199 = new BitSet(new long[]{0x0000106FFFCF3CF2L,0x0000001819802540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_identifier_in_labelledStatement6216 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
-    public static final BitSet FOLLOW_COLON_in_labelledStatement6218 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_statement_in_labelledStatement6220 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_THROW_in_throwStatement6251 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_expression_in_throwStatement6256 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00000C0000000000L});
-    public static final BitSet FOLLOW_semic_in_throwStatement6258 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_TRY_in_tryStatement6275 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_block_in_tryStatement6278 = new BitSet(new long[]{0x0000000000008200L});
-    public static final BitSet FOLLOW_catchClause_in_tryStatement6282 = new BitSet(new long[]{0x0000000000008202L});
-    public static final BitSet FOLLOW_finallyClause_in_tryStatement6285 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_finallyClause_in_tryStatement6290 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_CATCH_in_catchClause6304 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_LPAREN_in_catchClause6307 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_identifier_in_catchClause6310 = new BitSet(new long[]{0x0000000000080000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_catchFilter_in_catchClause6312 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_RPAREN_in_catchClause6315 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_block_in_catchClause6318 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_IF_in_catchFilter6331 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_instanceofExpression_in_catchFilter6334 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_identifier_in_instanceofExpression6349 = new BitSet(new long[]{0x0000000000200000L});
-    public static final BitSet FOLLOW_INSTANCEOF_in_instanceofExpression6351 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_identifier_in_instanceofExpression6354 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FINALLY_in_finallyClause6367 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_block_in_finallyClause6370 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FUNCTION_in_functionDeclaration6391 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_identifier_in_functionDeclaration6395 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_formalParameterList_in_functionDeclaration6397 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_functionBody_in_functionDeclaration6399 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FUNCTION_in_functionExpression6426 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000100L,0x0010000000000000L});
-    public static final BitSet FOLLOW_identifier_in_functionExpression6430 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_formalParameterList_in_functionExpression6433 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_functionBody_in_functionExpression6435 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LPAREN_in_formalParameterList6463 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000200L,0x0010000000000000L});
-    public static final BitSet FOLLOW_identifier_in_formalParameterList6469 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004200L});
-    public static final BitSet FOLLOW_COMMA_in_formalParameterList6473 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_identifier_in_formalParameterList6477 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004200L});
-    public static final BitSet FOLLOW_RPAREN_in_formalParameterList6485 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LBRACE_in_functionBody6511 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x00000018198025C0L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_sourceElement_in_functionBody6513 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x00000018198025C0L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_RBRACE_in_functionBody6516 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_GET_in_getMethodDeclaration6546 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_identifier_in_getMethodDeclaration6550 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_LPAREN_in_getMethodDeclaration6552 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_RPAREN_in_getMethodDeclaration6554 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_functionBody_in_getMethodDeclaration6556 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_SET_in_setMethodDeclaration6584 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_identifier_in_setMethodDeclaration6588 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_LPAREN_in_setMethodDeclaration6590 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_identifier_in_setMethodDeclaration6594 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_RPAREN_in_setMethodDeclaration6596 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_functionBody_in_setMethodDeclaration6598 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_sourceElement_in_program6633 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_EOF_in_program6636 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_functionDeclaration_in_sourceElement6665 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_statement_in_sourceElement6670 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_conditionalExpressionNoIn_in_assignmentExpressionNoIn4939 = new BitSet(new long[]{0x0000000000000002L,0x002FFE0000000000L});
+    public static final BitSet FOLLOW_assignmentOperator_in_assignmentExpressionNoIn4946 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_assignmentExpressionNoIn_in_assignmentExpressionNoIn4949 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_assignmentExpression_in_expression4971 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L});
+    public static final BitSet FOLLOW_COMMA_in_expression4975 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_assignmentExpression_in_expression4979 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L});
+    public static final BitSet FOLLOW_assignmentExpressionNoIn_in_expressionNoIn5016 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L});
+    public static final BitSet FOLLOW_COMMA_in_expressionNoIn5020 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_assignmentExpressionNoIn_in_expressionNoIn5024 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L});
+    public static final BitSet FOLLOW_SEMIC_in_semic5075 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_EOF_in_semic5080 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RBRACE_in_semic5085 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_EOL_in_semic5092 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_MultiLineComment_in_semic5096 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_block_in_statement5125 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_statementTail_in_statement5130 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_variableStatement_in_statementTail5142 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_emptyStatement_in_statementTail5147 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_expressionStatement_in_statementTail5152 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ifStatement_in_statementTail5157 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_iterationStatement_in_statementTail5162 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_continueStatement_in_statementTail5167 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_breakStatement_in_statementTail5172 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_returnStatement_in_statementTail5177 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_withStatement_in_statementTail5182 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_labelledStatement_in_statementTail5187 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_switchStatement_in_statementTail5192 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_throwStatement_in_statementTail5197 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_tryStatement_in_statementTail5202 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_constStatement_in_statementTail5207 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_namespaceStatement_in_statementTail5212 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LBRACE_in_block5227 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x00000018198025C0L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_statement_in_block5229 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x00000018198025C0L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_RBRACE_in_block5232 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_VAR_in_variableStatement5261 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_variableDeclaration_in_variableStatement5263 = new BitSet(new long[]{0x0000000000000000L,0x0000000000006080L,0x00000C0000000000L});
+    public static final BitSet FOLLOW_COMMA_in_variableStatement5267 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_variableDeclaration_in_variableStatement5269 = new BitSet(new long[]{0x0000000000000000L,0x0000000000006080L,0x00000C0000000000L});
+    public static final BitSet FOLLOW_semic_in_variableStatement5274 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_identifier_in_variableDeclaration5297 = new BitSet(new long[]{0x0000000000000002L,0x0000020000000000L});
+    public static final BitSet FOLLOW_ASSIGN_in_variableDeclaration5301 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_assignmentExpression_in_variableDeclaration5304 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_identifier_in_variableDeclarationNoIn5319 = new BitSet(new long[]{0x0000000000000002L,0x0000020000000000L});
+    public static final BitSet FOLLOW_ASSIGN_in_variableDeclarationNoIn5323 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_assignmentExpressionNoIn_in_variableDeclarationNoIn5326 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_CONST_in_constStatement5341 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_variableDeclaration_in_constStatement5343 = new BitSet(new long[]{0x0000000000000000L,0x0000000000006080L,0x00000C0000000000L});
+    public static final BitSet FOLLOW_COMMA_in_constStatement5347 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_variableDeclaration_in_constStatement5349 = new BitSet(new long[]{0x0000000000000000L,0x0000000000006080L,0x00000C0000000000L});
+    public static final BitSet FOLLOW_semic_in_constStatement5354 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_SEMIC_in_emptyStatement5384 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_expression_in_expressionStatement5403 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00000C0000000000L});
+    public static final BitSet FOLLOW_semic_in_expressionStatement5405 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_IF_in_ifStatement5423 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_LPAREN_in_ifStatement5425 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_expression_in_ifStatement5427 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_RPAREN_in_ifStatement5429 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_statement_in_ifStatement5431 = new BitSet(new long[]{0x0000000000004002L});
+    public static final BitSet FOLLOW_ELSE_in_ifStatement5437 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_statement_in_ifStatement5439 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_doStatement_in_iterationStatement5472 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_whileStatement_in_iterationStatement5477 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_forEachStatement_in_iterationStatement5482 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_forStatement_in_iterationStatement5487 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_DO_in_doStatement5499 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_statement_in_doStatement5501 = new BitSet(new long[]{0x0000000080000000L});
+    public static final BitSet FOLLOW_WHILE_in_doStatement5503 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_LPAREN_in_doStatement5505 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_expression_in_doStatement5507 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_RPAREN_in_doStatement5509 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00000C0000000000L});
+    public static final BitSet FOLLOW_semic_in_doStatement5511 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_WHILE_in_whileStatement5536 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_LPAREN_in_whileStatement5539 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_expression_in_whileStatement5542 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_RPAREN_in_whileStatement5544 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_statement_in_whileStatement5547 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FOR_in_forEachStatement5562 = new BitSet(new long[]{0x0000000000020000L});
+    public static final BitSet FOLLOW_EACH_in_forEachStatement5564 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_LPAREN_in_forEachStatement5566 = new BitSet(new long[]{0x0000006E72461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_forEachControl_in_forEachStatement5568 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_RPAREN_in_forEachStatement5570 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_statement_in_forEachStatement5572 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_forControlVar_in_forEachControl5599 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_forControlExpression_in_forEachControl5605 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FOR_in_forStatement5617 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_LPAREN_in_forStatement5620 = new BitSet(new long[]{0x0000006E72461070L,0x0000001819802540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_forControl_in_forStatement5623 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_RPAREN_in_forStatement5625 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_statement_in_forStatement5628 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_forControlVar_in_forControl5639 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_forControlExpression_in_forControl5644 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_forControlSemic_in_forControl5649 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_VAR_in_forControlVar5660 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_variableDeclarationNoIn_in_forControlVar5662 = new BitSet(new long[]{0x0000000000100000L,0x0000000000006000L});
+    public static final BitSet FOLLOW_IN_in_forControlVar5674 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_expression_in_forControlVar5676 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_COMMA_in_forControlVar5722 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_variableDeclarationNoIn_in_forControlVar5724 = new BitSet(new long[]{0x0000000000000000L,0x0000000000006000L});
+    public static final BitSet FOLLOW_SEMIC_in_forControlVar5729 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819802540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_expression_in_forControlVar5733 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
+    public static final BitSet FOLLOW_SEMIC_in_forControlVar5736 = new BitSet(new long[]{0x0000006E52461072L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_expression_in_forControlVar5740 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_expressionNoIn_in_forControlExpression5806 = new BitSet(new long[]{0x0000000000100000L,0x0000000000002000L});
+    public static final BitSet FOLLOW_IN_in_forControlExpression5821 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_expression_in_forControlExpression5825 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_SEMIC_in_forControlExpression5871 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819802540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_expression_in_forControlExpression5875 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
+    public static final BitSet FOLLOW_SEMIC_in_forControlExpression5878 = new BitSet(new long[]{0x0000006E52461072L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_expression_in_forControlExpression5882 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_SEMIC_in_forControlSemic5941 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819802540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_expression_in_forControlSemic5945 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
+    public static final BitSet FOLLOW_SEMIC_in_forControlSemic5948 = new BitSet(new long[]{0x0000006E52461072L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_expression_in_forControlSemic5952 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_CONTINUE_in_continueStatement6006 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00100C0000000000L});
+    public static final BitSet FOLLOW_Identifier_in_continueStatement6011 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00000C0000000000L});
+    public static final BitSet FOLLOW_semic_in_continueStatement6014 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_BREAK_in_breakStatement6033 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00100C0000000000L});
+    public static final BitSet FOLLOW_Identifier_in_breakStatement6038 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00000C0000000000L});
+    public static final BitSet FOLLOW_semic_in_breakStatement6041 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RETURN_in_returnStatement6060 = new BitSet(new long[]{0x0000006E52461070L,0x00000018198025C0L,0x1C506C0002000000L});
+    public static final BitSet FOLLOW_expression_in_returnStatement6065 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00000C0000000000L});
+    public static final BitSet FOLLOW_semic_in_returnStatement6068 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_WITH_in_withStatement6085 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_LPAREN_in_withStatement6088 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_expression_in_withStatement6091 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_RPAREN_in_withStatement6093 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_statement_in_withStatement6096 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_SWITCH_in_switchStatement6117 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_LPAREN_in_switchStatement6119 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_expression_in_switchStatement6121 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_RPAREN_in_switchStatement6123 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_LBRACE_in_switchStatement6125 = new BitSet(new long[]{0x0000000000000900L,0x0000000000000080L});
+    public static final BitSet FOLLOW_defaultClause_in_switchStatement6132 = new BitSet(new long[]{0x0000000000000900L,0x0000000000000080L});
+    public static final BitSet FOLLOW_caseClause_in_switchStatement6138 = new BitSet(new long[]{0x0000000000000900L,0x0000000000000080L});
+    public static final BitSet FOLLOW_RBRACE_in_switchStatement6143 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_CASE_in_caseClause6171 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_expression_in_caseClause6174 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
+    public static final BitSet FOLLOW_COLON_in_caseClause6176 = new BitSet(new long[]{0x0000106FFFCF3CF2L,0x0000001819802540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_statement_in_caseClause6179 = new BitSet(new long[]{0x0000106FFFCF3CF2L,0x0000001819802540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_DEFAULT_in_defaultClause6192 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
+    public static final BitSet FOLLOW_COLON_in_defaultClause6195 = new BitSet(new long[]{0x0000106FFFCF3CF2L,0x0000001819802540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_statement_in_defaultClause6198 = new BitSet(new long[]{0x0000106FFFCF3CF2L,0x0000001819802540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_identifier_in_labelledStatement6215 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
+    public static final BitSet FOLLOW_COLON_in_labelledStatement6217 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_statement_in_labelledStatement6219 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_THROW_in_throwStatement6250 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_expression_in_throwStatement6255 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00000C0000000000L});
+    public static final BitSet FOLLOW_semic_in_throwStatement6257 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_TRY_in_tryStatement6274 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_block_in_tryStatement6277 = new BitSet(new long[]{0x0000000000008200L});
+    public static final BitSet FOLLOW_catchClause_in_tryStatement6281 = new BitSet(new long[]{0x0000000000008202L});
+    public static final BitSet FOLLOW_finallyClause_in_tryStatement6284 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_finallyClause_in_tryStatement6289 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_CATCH_in_catchClause6303 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_LPAREN_in_catchClause6306 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_identifier_in_catchClause6309 = new BitSet(new long[]{0x0000000000080000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_catchFilter_in_catchClause6311 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_RPAREN_in_catchClause6314 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_block_in_catchClause6317 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_IF_in_catchFilter6330 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_instanceofExpression_in_catchFilter6333 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_identifier_in_instanceofExpression6348 = new BitSet(new long[]{0x0000000000200000L});
+    public static final BitSet FOLLOW_INSTANCEOF_in_instanceofExpression6350 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_identifier_in_instanceofExpression6353 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FINALLY_in_finallyClause6366 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_block_in_finallyClause6369 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FUNCTION_in_functionDeclaration6390 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_identifier_in_functionDeclaration6394 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_formalParameterList_in_functionDeclaration6396 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_functionBody_in_functionDeclaration6398 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FUNCTION_in_functionExpression6425 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000100L,0x0010000000000000L});
+    public static final BitSet FOLLOW_identifier_in_functionExpression6429 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_formalParameterList_in_functionExpression6432 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_functionBody_in_functionExpression6434 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LPAREN_in_formalParameterList6462 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000200L,0x0010000000000000L});
+    public static final BitSet FOLLOW_identifier_in_formalParameterList6468 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004200L});
+    public static final BitSet FOLLOW_COMMA_in_formalParameterList6472 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_identifier_in_formalParameterList6476 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004200L});
+    public static final BitSet FOLLOW_RPAREN_in_formalParameterList6484 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LBRACE_in_functionBody6510 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x00000018198025C0L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_sourceElement_in_functionBody6512 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x00000018198025C0L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_RBRACE_in_functionBody6515 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_GET_in_getMethodDeclaration6545 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_identifier_in_getMethodDeclaration6549 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_LPAREN_in_getMethodDeclaration6551 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_RPAREN_in_getMethodDeclaration6553 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_functionBody_in_getMethodDeclaration6555 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_SET_in_setMethodDeclaration6583 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_identifier_in_setMethodDeclaration6587 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_LPAREN_in_setMethodDeclaration6589 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_identifier_in_setMethodDeclaration6593 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_RPAREN_in_setMethodDeclaration6595 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_functionBody_in_setMethodDeclaration6597 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_sourceElement_in_program6632 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_EOF_in_program6635 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_functionDeclaration_in_sourceElement6664 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_statement_in_sourceElement6669 = new BitSet(new long[]{0x0000000000000002L});
 
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.dltk.javascript.parser/src/org/eclipse/dltk/javascript/parser/JS.g b/plugins/org.eclipse.dltk.javascript.parser/src/org/eclipse/dltk/javascript/parser/JS.g
index c2a007a..cce5afe 100644
--- a/plugins/org.eclipse.dltk.javascript.parser/src/org/eclipse/dltk/javascript/parser/JS.g
+++ b/plugins/org.eclipse.dltk.javascript.parser/src/org/eclipse/dltk/javascript/parser/JS.g
@@ -218,7 +218,7 @@
 	PDEC ;
 	PINC ;
 	POS ;
-	XML ;
+	XMLLiteral ;
 }
 
 @lexer::header
@@ -251,7 +251,7 @@
 		return true;
 	}
 	if (isIdentifierKeyword(last.getType())) {
-		return true; 
+		return false; 
 	}
 	switch (last.getType())
 	{
@@ -432,7 +432,7 @@
 			case HexIntegerLiteral:
 			case StringLiteral:
 			case RegularExpressionLiteral:
-			case XML:
+			case XMLLiteral:
 			case ARRAY:
 			case OBJECT:
 			case PAREXPR:
@@ -664,7 +664,7 @@
 	| WHILE
 	| WITH
 	| NAMESPACE
-	| XML
+	| WXML
 	| YIELD
 	;
 
@@ -1115,7 +1115,7 @@
 unaryExpression
 	: postfixExpression
 	| unaryOperator^ unaryExpression
-  | XMLLiteral
+	| XMLLiteral
 	;
 	
 unaryOperator
diff --git a/plugins/org.eclipse.dltk.javascript.parser/src/org/eclipse/dltk/javascript/parser/JSLexer.java b/plugins/org.eclipse.dltk.javascript.parser/src/org/eclipse/dltk/javascript/parser/JSLexer.java
index 3cea5ad..7797e87 100644
--- a/plugins/org.eclipse.dltk.javascript.parser/src/org/eclipse/dltk/javascript/parser/JSLexer.java
+++ b/plugins/org.eclipse.dltk.javascript.parser/src/org/eclipse/dltk/javascript/parser/JSLexer.java
@@ -1,4 +1,4 @@
-// $ANTLR 3.0.1 JS.g 2009-09-03 19:32:37
+// $ANTLR 3.0.1 JS.g 2009-09-11 10:55:01
 
 package org.eclipse.dltk.javascript.parser;
 
@@ -63,7 +63,6 @@
     public static final int GT=80;
     public static final int CALL=135;
     public static final int CharacterEscapeSequence=189;
-    public static final int XML=153;
     public static final int LAND=101;
     public static final int PINC=151;
     public static final int PROTECTED=61;
@@ -86,14 +85,14 @@
     public static final int ADD=87;
     public static final int ZeroToThree=190;
     public static final int ITEM=144;
-    public static final int XMLLiteral=198;
+    public static final int XMLLiteral=153;
     public static final int UnicodeEscapeSequence=193;
     public static final int SHUASS=112;
     public static final int SET=34;
     public static final int SHORT=63;
     public static final int INSTANCEOF=21;
     public static final int SQUOTE=156;
-    public static final int Tokens=199;
+    public static final int Tokens=198;
     public static final int SAME=85;
     public static final int XHCLOSE=124;
     public static final int StringLiteral=173;
@@ -225,7 +224,7 @@
     		return true;
     	}
     	if (isIdentifierKeyword(last.getType())) {
-    		return true; 
+    		return false; 
     	}
     	switch (last.getType())
     	{
diff --git a/plugins/org.eclipse.dltk.javascript.parser/src/org/eclipse/dltk/javascript/parser/JSParser.java b/plugins/org.eclipse.dltk.javascript.parser/src/org/eclipse/dltk/javascript/parser/JSParser.java
index 5043cf9..73f7ce1 100644
--- a/plugins/org.eclipse.dltk.javascript.parser/src/org/eclipse/dltk/javascript/parser/JSParser.java
+++ b/plugins/org.eclipse.dltk.javascript.parser/src/org/eclipse/dltk/javascript/parser/JSParser.java
@@ -1,4 +1,4 @@
-// $ANTLR 3.0.1 JS.g 2009-09-03 19:32:37
+// $ANTLR 3.0.1 JS.g 2009-09-11 10:55:00
 
 package org.eclipse.dltk.javascript.parser;
 
@@ -13,7 +13,7 @@
 
 public class JSParser extends Parser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "NULL", "TRUE", "FALSE", "BREAK", "CASE", "CATCH", "CONTINUE", "DEFAULT", "DELETE", "DO", "ELSE", "FINALLY", "FOR", "EACH", "FUNCTION", "IF", "IN", "INSTANCEOF", "NEW", "RETURN", "SWITCH", "THIS", "THROW", "TRY", "TYPEOF", "VAR", "VOID", "WHILE", "WITH", "GET", "SET", "YIELD", "CDATA", "WXML", "NAMESPACE", "ABSTRACT", "BOOLEAN", "BYTE", "CHAR", "CLASS", "CONST", "DEBUGGER", "DOUBLE", "ENUM", "EXPORT", "EXTENDS", "FINAL", "FLOAT", "GOTO", "IMPLEMENTS", "IMPORT", "INT", "INTERFACE", "LONG", "NATIVE", "PACKAGE", "PRIVATE", "PROTECTED", "PUBLIC", "SHORT", "STATIC", "SUPER", "SYNCHRONIZED", "THROWS", "TRANSIENT", "VOLATILE", "LBRACE", "RBRACE", "LPAREN", "RPAREN", "LBRACK", "RBRACK", "DOT", "SEMIC", "COMMA", "LT", "GT", "LTE", "GTE", "EQ", "NEQ", "SAME", "NSAME", "ADD", "SUB", "MUL", "MOD", "INC", "DEC", "SHL", "SHR", "SHU", "AND", "OR", "XOR", "NOT", "INV", "LAND", "LOR", "QUE", "COLON", "ASSIGN", "ADDASS", "SUBASS", "MULASS", "MODASS", "SHLASS", "SHRASS", "SHUASS", "ANDASS", "ORASS", "XORASS", "DIV", "DIVASS", "XCOPEN", "XCCLOSE", "XLCLOSE", "XRCLOSE", "CDATAOPEN", "XHOPEN", "XHCLOSE", "AT", "DOTDOT", "COLONCOLON", "ARGS", "ARRAY", "BLOCK", "BYFIELD", "BYINDEX", "ALLCHILDREN", "LOCALNAME", "CALL", "CEXPR", "EXPR", "FORITER", "FORSTEP", "FOREACH", "GETTER", "SETTER", "DEFAULT_XML_NAMESPACE", "ITEM", "LABELLED", "NAMEDVALUE", "NEG", "OBJECT", "PAREXPR", "PDEC", "PINC", "POS", "XML", "BSLASH", "DQUOTE", "SQUOTE", "TAB", "VT", "FF", "SP", "NBSP", "USP", "WhiteSpace", "LF", "CR", "LS", "PS", "LineTerminatorChar", "LineTerminator", "EOL", "MultiLineComment", "SingleLineComment", "StringLiteral", "XmlAttribute", "HexDigit", "IdentifierStartASCII", "DecimalDigit", "IdentifierPart", "IdentifierNameASCIIStart", "Identifier", "PropertyIdentifierSymbols", "RegularExpressionLiteral", "OctalDigit", "ExponentPart", "DecimalIntegerLiteral", "DecimalLiteral", "OctalIntegerLiteral", "HexIntegerLiteral", "CharacterEscapeSequence", "ZeroToThree", "OctalEscapeSequence", "HexEscapeSequence", "UnicodeEscapeSequence", "EscapeSequence", "BackslashSequence", "RegularExpressionFirstChar", "RegularExpressionChar", "XMLLiteral"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "NULL", "TRUE", "FALSE", "BREAK", "CASE", "CATCH", "CONTINUE", "DEFAULT", "DELETE", "DO", "ELSE", "FINALLY", "FOR", "EACH", "FUNCTION", "IF", "IN", "INSTANCEOF", "NEW", "RETURN", "SWITCH", "THIS", "THROW", "TRY", "TYPEOF", "VAR", "VOID", "WHILE", "WITH", "GET", "SET", "YIELD", "CDATA", "WXML", "NAMESPACE", "ABSTRACT", "BOOLEAN", "BYTE", "CHAR", "CLASS", "CONST", "DEBUGGER", "DOUBLE", "ENUM", "EXPORT", "EXTENDS", "FINAL", "FLOAT", "GOTO", "IMPLEMENTS", "IMPORT", "INT", "INTERFACE", "LONG", "NATIVE", "PACKAGE", "PRIVATE", "PROTECTED", "PUBLIC", "SHORT", "STATIC", "SUPER", "SYNCHRONIZED", "THROWS", "TRANSIENT", "VOLATILE", "LBRACE", "RBRACE", "LPAREN", "RPAREN", "LBRACK", "RBRACK", "DOT", "SEMIC", "COMMA", "LT", "GT", "LTE", "GTE", "EQ", "NEQ", "SAME", "NSAME", "ADD", "SUB", "MUL", "MOD", "INC", "DEC", "SHL", "SHR", "SHU", "AND", "OR", "XOR", "NOT", "INV", "LAND", "LOR", "QUE", "COLON", "ASSIGN", "ADDASS", "SUBASS", "MULASS", "MODASS", "SHLASS", "SHRASS", "SHUASS", "ANDASS", "ORASS", "XORASS", "DIV", "DIVASS", "XCOPEN", "XCCLOSE", "XLCLOSE", "XRCLOSE", "CDATAOPEN", "XHOPEN", "XHCLOSE", "AT", "DOTDOT", "COLONCOLON", "ARGS", "ARRAY", "BLOCK", "BYFIELD", "BYINDEX", "ALLCHILDREN", "LOCALNAME", "CALL", "CEXPR", "EXPR", "FORITER", "FORSTEP", "FOREACH", "GETTER", "SETTER", "DEFAULT_XML_NAMESPACE", "ITEM", "LABELLED", "NAMEDVALUE", "NEG", "OBJECT", "PAREXPR", "PDEC", "PINC", "POS", "XMLLiteral", "BSLASH", "DQUOTE", "SQUOTE", "TAB", "VT", "FF", "SP", "NBSP", "USP", "WhiteSpace", "LF", "CR", "LS", "PS", "LineTerminatorChar", "LineTerminator", "EOL", "MultiLineComment", "SingleLineComment", "StringLiteral", "XmlAttribute", "HexDigit", "IdentifierStartASCII", "DecimalDigit", "IdentifierPart", "IdentifierNameASCIIStart", "Identifier", "PropertyIdentifierSymbols", "RegularExpressionLiteral", "OctalDigit", "ExponentPart", "DecimalIntegerLiteral", "DecimalLiteral", "OctalIntegerLiteral", "HexIntegerLiteral", "CharacterEscapeSequence", "ZeroToThree", "OctalEscapeSequence", "HexEscapeSequence", "UnicodeEscapeSequence", "EscapeSequence", "BackslashSequence", "RegularExpressionFirstChar", "RegularExpressionChar"
     };
     public static final int PACKAGE=59;
     public static final int FUNCTION=18;
@@ -70,7 +70,6 @@
     public static final int CALL=135;
     public static final int CharacterEscapeSequence=189;
     public static final int LAND=101;
-    public static final int XML=153;
     public static final int PINC=151;
     public static final int PROTECTED=61;
     public static final int LBRACK=74;
@@ -92,7 +91,7 @@
     public static final int ADD=87;
     public static final int ZeroToThree=190;
     public static final int ITEM=144;
-    public static final int XMLLiteral=198;
+    public static final int XMLLiteral=153;
     public static final int UnicodeEscapeSequence=193;
     public static final int SHUASS=112;
     public static final int SHORT=63;
@@ -294,7 +293,7 @@
     			case HexIntegerLiteral:
     			case StringLiteral:
     			case RegularExpressionLiteral:
-    			case XML:
+    			case XMLLiteral:
     			case ARRAY:
     			case OBJECT:
     			case PAREXPR:
@@ -426,6 +425,7 @@
             case GET:
             case SET:
             case YIELD:
+            case WXML:
             case NAMESPACE:
             case ABSTRACT:
             case BOOLEAN:
@@ -458,12 +458,10 @@
             case THROWS:
             case TRANSIENT:
             case VOLATILE:
-            case XML:
                 {
                 alt1=1;
                 }
                 break;
-            case WXML:
             case Identifier:
                 {
                 alt1=2;
@@ -700,8 +698,8 @@
             case GET:
             case SET:
             case YIELD:
+            case WXML:
             case NAMESPACE:
-            case XML:
                 {
                 alt2=1;
                 }
@@ -836,7 +834,7 @@
     };
 
     // $ANTLR start keyword
-    // JS.g:637:1: keyword : ( BREAK | CASE | CATCH | CONTINUE | DEFAULT | DELETE | DO | ELSE | FINALLY | FOR | EACH | FUNCTION | GET | SET | IF | IN | INSTANCEOF | NEW | RETURN | SWITCH | THIS | THROW | TRY | TYPEOF | VAR | VOID | WHILE | WITH | NAMESPACE | XML | YIELD );
+    // JS.g:637:1: keyword : ( BREAK | CASE | CATCH | CONTINUE | DEFAULT | DELETE | DO | ELSE | FINALLY | FOR | EACH | FUNCTION | GET | SET | IF | IN | INSTANCEOF | NEW | RETURN | SWITCH | THIS | THROW | TRY | TYPEOF | VAR | VOID | WHILE | WITH | NAMESPACE | WXML | YIELD );
     public final keyword_return keyword() throws RecognitionException {
         keyword_return retval = new keyword_return();
         retval.start = input.LT(1);
@@ -848,13 +846,13 @@
         Object set11_tree=null;
 
         try {
-            // JS.g:638:2: ( BREAK | CASE | CATCH | CONTINUE | DEFAULT | DELETE | DO | ELSE | FINALLY | FOR | EACH | FUNCTION | GET | SET | IF | IN | INSTANCEOF | NEW | RETURN | SWITCH | THIS | THROW | TRY | TYPEOF | VAR | VOID | WHILE | WITH | NAMESPACE | XML | YIELD )
+            // JS.g:638:2: ( BREAK | CASE | CATCH | CONTINUE | DEFAULT | DELETE | DO | ELSE | FINALLY | FOR | EACH | FUNCTION | GET | SET | IF | IN | INSTANCEOF | NEW | RETURN | SWITCH | THIS | THROW | TRY | TYPEOF | VAR | VOID | WHILE | WITH | NAMESPACE | WXML | YIELD )
             // JS.g:
             {
             root_0 = (Object)adaptor.nil();
 
             set11=(Token)input.LT(1);
-            if ( (input.LA(1)>=BREAK && input.LA(1)<=YIELD)||input.LA(1)==NAMESPACE||input.LA(1)==XML ) {
+            if ( (input.LA(1)>=BREAK && input.LA(1)<=YIELD)||(input.LA(1)>=WXML && input.LA(1)<=NAMESPACE) ) {
                 input.consume();
                 adaptor.addChild(root_0, adaptor.create(set11));
                 errorRecovery=false;
@@ -1624,7 +1622,7 @@
             int alt6=2;
             int LA6_0 = input.LA(1);
 
-            if ( ((LA6_0>=NULL && LA6_0<=FALSE)||LA6_0==DELETE||(LA6_0>=EACH && LA6_0<=FUNCTION)||LA6_0==NEW||LA6_0==THIS||LA6_0==TYPEOF||LA6_0==VOID||(LA6_0>=GET && LA6_0<=YIELD)||(LA6_0>=WXML && LA6_0<=NAMESPACE)||LA6_0==LBRACE||LA6_0==LPAREN||LA6_0==LBRACK||LA6_0==COMMA||(LA6_0>=ADD && LA6_0<=SUB)||(LA6_0>=INC && LA6_0<=DEC)||(LA6_0>=NOT && LA6_0<=INV)||(LA6_0>=StringLiteral && LA6_0<=XmlAttribute)||LA6_0==Identifier||LA6_0==RegularExpressionLiteral||(LA6_0>=DecimalLiteral && LA6_0<=HexIntegerLiteral)||LA6_0==XMLLiteral) ) {
+            if ( ((LA6_0>=NULL && LA6_0<=FALSE)||LA6_0==DELETE||(LA6_0>=EACH && LA6_0<=FUNCTION)||LA6_0==NEW||LA6_0==THIS||LA6_0==TYPEOF||LA6_0==VOID||(LA6_0>=GET && LA6_0<=YIELD)||(LA6_0>=WXML && LA6_0<=NAMESPACE)||LA6_0==LBRACE||LA6_0==LPAREN||LA6_0==LBRACK||LA6_0==COMMA||(LA6_0>=ADD && LA6_0<=SUB)||(LA6_0>=INC && LA6_0<=DEC)||(LA6_0>=NOT && LA6_0<=INV)||LA6_0==XMLLiteral||(LA6_0>=StringLiteral && LA6_0<=XmlAttribute)||LA6_0==Identifier||LA6_0==RegularExpressionLiteral||(LA6_0>=DecimalLiteral && LA6_0<=HexIntegerLiteral)) ) {
                 alt6=1;
             }
             else if ( (LA6_0==RBRACK) ) {
@@ -1761,7 +1759,7 @@
             int alt7=2;
             int LA7_0 = input.LA(1);
 
-            if ( ((LA7_0>=NULL && LA7_0<=FALSE)||LA7_0==DELETE||(LA7_0>=EACH && LA7_0<=FUNCTION)||LA7_0==NEW||LA7_0==THIS||LA7_0==TYPEOF||LA7_0==VOID||(LA7_0>=GET && LA7_0<=YIELD)||(LA7_0>=WXML && LA7_0<=NAMESPACE)||LA7_0==LBRACE||LA7_0==LPAREN||LA7_0==LBRACK||(LA7_0>=ADD && LA7_0<=SUB)||(LA7_0>=INC && LA7_0<=DEC)||(LA7_0>=NOT && LA7_0<=INV)||(LA7_0>=StringLiteral && LA7_0<=XmlAttribute)||LA7_0==Identifier||LA7_0==RegularExpressionLiteral||(LA7_0>=DecimalLiteral && LA7_0<=HexIntegerLiteral)||LA7_0==XMLLiteral) ) {
+            if ( ((LA7_0>=NULL && LA7_0<=FALSE)||LA7_0==DELETE||(LA7_0>=EACH && LA7_0<=FUNCTION)||LA7_0==NEW||LA7_0==THIS||LA7_0==TYPEOF||LA7_0==VOID||(LA7_0>=GET && LA7_0<=YIELD)||(LA7_0>=WXML && LA7_0<=NAMESPACE)||LA7_0==LBRACE||LA7_0==LPAREN||LA7_0==LBRACK||(LA7_0>=ADD && LA7_0<=SUB)||(LA7_0>=INC && LA7_0<=DEC)||(LA7_0>=NOT && LA7_0<=INV)||LA7_0==XMLLiteral||(LA7_0>=StringLiteral && LA7_0<=XmlAttribute)||LA7_0==Identifier||LA7_0==RegularExpressionLiteral||(LA7_0>=DecimalLiteral && LA7_0<=HexIntegerLiteral)) ) {
                 alt7=1;
             }
             else if ( (LA7_0==RBRACK||LA7_0==COMMA) ) {
@@ -2175,7 +2173,7 @@
             stream_assignmentExpression.add(assignmentExpression44.getTree());
 
             // AST REWRITE
-            // elements: propertyName, assignmentExpression
+            // elements: assignmentExpression, propertyName
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -2568,7 +2566,7 @@
             int alt14=2;
             int LA14_0 = input.LA(1);
 
-            if ( ((LA14_0>=NULL && LA14_0<=FALSE)||LA14_0==DELETE||(LA14_0>=EACH && LA14_0<=FUNCTION)||LA14_0==NEW||LA14_0==THIS||LA14_0==TYPEOF||LA14_0==VOID||(LA14_0>=GET && LA14_0<=YIELD)||(LA14_0>=WXML && LA14_0<=NAMESPACE)||LA14_0==LBRACE||LA14_0==LPAREN||LA14_0==LBRACK||(LA14_0>=ADD && LA14_0<=SUB)||(LA14_0>=INC && LA14_0<=DEC)||(LA14_0>=NOT && LA14_0<=INV)||(LA14_0>=StringLiteral && LA14_0<=XmlAttribute)||LA14_0==Identifier||LA14_0==RegularExpressionLiteral||(LA14_0>=DecimalLiteral && LA14_0<=HexIntegerLiteral)||LA14_0==XMLLiteral) ) {
+            if ( ((LA14_0>=NULL && LA14_0<=FALSE)||LA14_0==DELETE||(LA14_0>=EACH && LA14_0<=FUNCTION)||LA14_0==NEW||LA14_0==THIS||LA14_0==TYPEOF||LA14_0==VOID||(LA14_0>=GET && LA14_0<=YIELD)||(LA14_0>=WXML && LA14_0<=NAMESPACE)||LA14_0==LBRACE||LA14_0==LPAREN||LA14_0==LBRACK||(LA14_0>=ADD && LA14_0<=SUB)||(LA14_0>=INC && LA14_0<=DEC)||(LA14_0>=NOT && LA14_0<=INV)||LA14_0==XMLLiteral||(LA14_0>=StringLiteral && LA14_0<=XmlAttribute)||LA14_0==Identifier||LA14_0==RegularExpressionLiteral||(LA14_0>=DecimalLiteral && LA14_0<=HexIntegerLiteral)) ) {
                 alt14=1;
             }
             switch (alt14) {
@@ -2795,7 +2793,7 @@
             	    stream_arguments.add(arguments60.getTree());
 
             	    // AST REWRITE
-            	    // elements: arguments, leftHandSideExpression
+            	    // elements: leftHandSideExpression, arguments
             	    // token labels: 
             	    // rule labels: retval
             	    // token list labels: 
@@ -2883,7 +2881,7 @@
             	    stream_rightHandSideExpression.add(rightHandSideExpression65.getTree());
 
             	    // AST REWRITE
-            	    // elements: leftHandSideExpression, rightHandSideExpression
+            	    // elements: rightHandSideExpression, leftHandSideExpression
             	    // token labels: 
             	    // rule labels: retval
             	    // token list labels: 
@@ -2925,7 +2923,7 @@
             	    stream_expression.add(expression67.getTree());
 
             	    // AST REWRITE
-            	    // elements: leftHandSideExpression, expression
+            	    // elements: expression, leftHandSideExpression
             	    // token labels: 
             	    // rule labels: retval
             	    // token list labels: 
@@ -2967,7 +2965,7 @@
             	    stream_expression.add(expression69.getTree());
 
             	    // AST REWRITE
-            	    // elements: leftHandSideExpression, expression
+            	    // elements: expression, leftHandSideExpression
             	    // token labels: 
             	    // rule labels: retval
             	    // token list labels: 
@@ -3417,12 +3415,12 @@
                     }
                     break;
                 case 3 :
-                    // JS.g:1118:5: XMLLiteral
+                    // JS.g:1118:4: XMLLiteral
                     {
                     root_0 = (Object)adaptor.nil();
 
                     XMLLiteral79=(Token)input.LT(1);
-                    match(input,XMLLiteral,FOLLOW_XMLLiteral_in_unaryExpression4135); 
+                    match(input,XMLLiteral,FOLLOW_XMLLiteral_in_unaryExpression4134); 
                     XMLLiteral79_tree = (Object)adaptor.create(XMLLiteral79);
                     adaptor.addChild(root_0, XMLLiteral79_tree);
 
@@ -3548,7 +3546,7 @@
                     root_0 = (Object)adaptor.nil();
 
                     DELETE80=(Token)input.LT(1);
-                    match(input,DELETE,FOLLOW_DELETE_in_unaryOperator4147); 
+                    match(input,DELETE,FOLLOW_DELETE_in_unaryOperator4146); 
                     DELETE80_tree = (Object)adaptor.create(DELETE80);
                     adaptor.addChild(root_0, DELETE80_tree);
 
@@ -3561,7 +3559,7 @@
                     root_0 = (Object)adaptor.nil();
 
                     VOID81=(Token)input.LT(1);
-                    match(input,VOID,FOLLOW_VOID_in_unaryOperator4152); 
+                    match(input,VOID,FOLLOW_VOID_in_unaryOperator4151); 
                     VOID81_tree = (Object)adaptor.create(VOID81);
                     adaptor.addChild(root_0, VOID81_tree);
 
@@ -3574,7 +3572,7 @@
                     root_0 = (Object)adaptor.nil();
 
                     TYPEOF82=(Token)input.LT(1);
-                    match(input,TYPEOF,FOLLOW_TYPEOF_in_unaryOperator4157); 
+                    match(input,TYPEOF,FOLLOW_TYPEOF_in_unaryOperator4156); 
                     TYPEOF82_tree = (Object)adaptor.create(TYPEOF82);
                     adaptor.addChild(root_0, TYPEOF82_tree);
 
@@ -3587,7 +3585,7 @@
                     root_0 = (Object)adaptor.nil();
 
                     INC83=(Token)input.LT(1);
-                    match(input,INC,FOLLOW_INC_in_unaryOperator4162); 
+                    match(input,INC,FOLLOW_INC_in_unaryOperator4161); 
                     INC83_tree = (Object)adaptor.create(INC83);
                     adaptor.addChild(root_0, INC83_tree);
 
@@ -3600,7 +3598,7 @@
                     root_0 = (Object)adaptor.nil();
 
                     DEC84=(Token)input.LT(1);
-                    match(input,DEC,FOLLOW_DEC_in_unaryOperator4167); 
+                    match(input,DEC,FOLLOW_DEC_in_unaryOperator4166); 
                     DEC84_tree = (Object)adaptor.create(DEC84);
                     adaptor.addChild(root_0, DEC84_tree);
 
@@ -3613,7 +3611,7 @@
                     root_0 = (Object)adaptor.nil();
 
                     op=(Token)input.LT(1);
-                    match(input,ADD,FOLLOW_ADD_in_unaryOperator4174); 
+                    match(input,ADD,FOLLOW_ADD_in_unaryOperator4173); 
                     op_tree = (Object)adaptor.create(op);
                     adaptor.addChild(root_0, op_tree);
 
@@ -3627,7 +3625,7 @@
                     root_0 = (Object)adaptor.nil();
 
                     op=(Token)input.LT(1);
-                    match(input,SUB,FOLLOW_SUB_in_unaryOperator4183); 
+                    match(input,SUB,FOLLOW_SUB_in_unaryOperator4182); 
                     op_tree = (Object)adaptor.create(op);
                     adaptor.addChild(root_0, op_tree);
 
@@ -3641,7 +3639,7 @@
                     root_0 = (Object)adaptor.nil();
 
                     INV85=(Token)input.LT(1);
-                    match(input,INV,FOLLOW_INV_in_unaryOperator4190); 
+                    match(input,INV,FOLLOW_INV_in_unaryOperator4189); 
                     INV85_tree = (Object)adaptor.create(INV85);
                     adaptor.addChild(root_0, INV85_tree);
 
@@ -3654,7 +3652,7 @@
                     root_0 = (Object)adaptor.nil();
 
                     NOT86=(Token)input.LT(1);
-                    match(input,NOT,FOLLOW_NOT_in_unaryOperator4195); 
+                    match(input,NOT,FOLLOW_NOT_in_unaryOperator4194); 
                     NOT86_tree = (Object)adaptor.create(NOT86);
                     adaptor.addChild(root_0, NOT86_tree);
 
@@ -3667,7 +3665,7 @@
                     root_0 = (Object)adaptor.nil();
 
                     YIELD87=(Token)input.LT(1);
-                    match(input,YIELD,FOLLOW_YIELD_in_unaryOperator4200); 
+                    match(input,YIELD,FOLLOW_YIELD_in_unaryOperator4199); 
                     YIELD87_tree = (Object)adaptor.create(YIELD87);
                     adaptor.addChild(root_0, YIELD87_tree);
 
@@ -3729,33 +3727,33 @@
             // JS.g:1159:5: DEFAULT WXML NAMESPACE ASSIGN StringLiteral semic
             {
             DEFAULT88=(Token)input.LT(1);
-            match(input,DEFAULT,FOLLOW_DEFAULT_in_namespaceStatement4236); 
+            match(input,DEFAULT,FOLLOW_DEFAULT_in_namespaceStatement4235); 
             stream_DEFAULT.add(DEFAULT88);
 
             WXML89=(Token)input.LT(1);
-            match(input,WXML,FOLLOW_WXML_in_namespaceStatement4238); 
+            match(input,WXML,FOLLOW_WXML_in_namespaceStatement4237); 
             stream_WXML.add(WXML89);
 
             NAMESPACE90=(Token)input.LT(1);
-            match(input,NAMESPACE,FOLLOW_NAMESPACE_in_namespaceStatement4240); 
+            match(input,NAMESPACE,FOLLOW_NAMESPACE_in_namespaceStatement4239); 
             stream_NAMESPACE.add(NAMESPACE90);
 
             ASSIGN91=(Token)input.LT(1);
-            match(input,ASSIGN,FOLLOW_ASSIGN_in_namespaceStatement4242); 
+            match(input,ASSIGN,FOLLOW_ASSIGN_in_namespaceStatement4241); 
             stream_ASSIGN.add(ASSIGN91);
 
             StringLiteral92=(Token)input.LT(1);
-            match(input,StringLiteral,FOLLOW_StringLiteral_in_namespaceStatement4244); 
+            match(input,StringLiteral,FOLLOW_StringLiteral_in_namespaceStatement4243); 
             stream_StringLiteral.add(StringLiteral92);
 
-            pushFollow(FOLLOW_semic_in_namespaceStatement4246);
+            pushFollow(FOLLOW_semic_in_namespaceStatement4245);
             semic93=semic();
             _fsp--;
 
             stream_semic.add(semic93.getTree());
 
             // AST REWRITE
-            // elements: StringLiteral, ASSIGN, WXML, DEFAULT
+            // elements: DEFAULT, StringLiteral, WXML, ASSIGN
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -3828,7 +3826,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression4278);
+            pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression4277);
             unaryExpression94=unaryExpression();
             _fsp--;
 
@@ -3857,10 +3855,10 @@
             	    else {
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_multiplicativeExpression4282);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_multiplicativeExpression4281);    throw mse;
             	    }
 
-            	    pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression4297);
+            	    pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression4296);
             	    unaryExpression96=unaryExpression();
             	    _fsp--;
 
@@ -3920,7 +3918,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression4315);
+            pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression4314);
             multiplicativeExpression97=multiplicativeExpression();
             _fsp--;
 
@@ -3949,10 +3947,10 @@
             	    else {
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_additiveExpression4319);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_additiveExpression4318);    throw mse;
             	    }
 
-            	    pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression4330);
+            	    pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression4329);
             	    multiplicativeExpression99=multiplicativeExpression();
             	    _fsp--;
 
@@ -4012,7 +4010,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_additiveExpression_in_shiftExpression4349);
+            pushFollow(FOLLOW_additiveExpression_in_shiftExpression4348);
             additiveExpression100=additiveExpression();
             _fsp--;
 
@@ -4041,10 +4039,10 @@
             	    else {
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_shiftExpression4353);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_shiftExpression4352);    throw mse;
             	    }
 
-            	    pushFollow(FOLLOW_additiveExpression_in_shiftExpression4368);
+            	    pushFollow(FOLLOW_additiveExpression_in_shiftExpression4367);
             	    additiveExpression102=additiveExpression();
             	    _fsp--;
 
@@ -4104,7 +4102,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_shiftExpression_in_relationalExpression4387);
+            pushFollow(FOLLOW_shiftExpression_in_relationalExpression4386);
             shiftExpression103=shiftExpression();
             _fsp--;
 
@@ -4136,10 +4134,10 @@
             	    else {
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_relationalExpression4391);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_relationalExpression4390);    throw mse;
             	    }
 
-            	    pushFollow(FOLLOW_shiftExpression_in_relationalExpression4418);
+            	    pushFollow(FOLLOW_shiftExpression_in_relationalExpression4417);
             	    shiftExpression105=shiftExpression();
             	    _fsp--;
 
@@ -4199,7 +4197,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_shiftExpression_in_relationalExpressionNoIn4432);
+            pushFollow(FOLLOW_shiftExpression_in_relationalExpressionNoIn4431);
             shiftExpression106=shiftExpression();
             _fsp--;
 
@@ -4228,10 +4226,10 @@
             	    else {
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_relationalExpressionNoIn4436);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_relationalExpressionNoIn4435);    throw mse;
             	    }
 
-            	    pushFollow(FOLLOW_shiftExpression_in_relationalExpressionNoIn4459);
+            	    pushFollow(FOLLOW_shiftExpression_in_relationalExpressionNoIn4458);
             	    shiftExpression108=shiftExpression();
             	    _fsp--;
 
@@ -4291,7 +4289,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_relationalExpression_in_equalityExpression4478);
+            pushFollow(FOLLOW_relationalExpression_in_equalityExpression4477);
             relationalExpression109=relationalExpression();
             _fsp--;
 
@@ -4320,10 +4318,10 @@
             	    else {
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_equalityExpression4482);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_equalityExpression4481);    throw mse;
             	    }
 
-            	    pushFollow(FOLLOW_relationalExpression_in_equalityExpression4501);
+            	    pushFollow(FOLLOW_relationalExpression_in_equalityExpression4500);
             	    relationalExpression111=relationalExpression();
             	    _fsp--;
 
@@ -4383,7 +4381,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_relationalExpressionNoIn_in_equalityExpressionNoIn4515);
+            pushFollow(FOLLOW_relationalExpressionNoIn_in_equalityExpressionNoIn4514);
             relationalExpressionNoIn112=relationalExpressionNoIn();
             _fsp--;
 
@@ -4412,10 +4410,10 @@
             	    else {
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_equalityExpressionNoIn4519);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_equalityExpressionNoIn4518);    throw mse;
             	    }
 
-            	    pushFollow(FOLLOW_relationalExpressionNoIn_in_equalityExpressionNoIn4538);
+            	    pushFollow(FOLLOW_relationalExpressionNoIn_in_equalityExpressionNoIn4537);
             	    relationalExpressionNoIn114=relationalExpressionNoIn();
             	    _fsp--;
 
@@ -4475,7 +4473,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_equalityExpression_in_bitwiseANDExpression4558);
+            pushFollow(FOLLOW_equalityExpression_in_bitwiseANDExpression4557);
             equalityExpression115=equalityExpression();
             _fsp--;
 
@@ -4496,11 +4494,11 @@
             	    // JS.g:1214:25: AND equalityExpression
             	    {
             	    AND116=(Token)input.LT(1);
-            	    match(input,AND,FOLLOW_AND_in_bitwiseANDExpression4562); 
+            	    match(input,AND,FOLLOW_AND_in_bitwiseANDExpression4561); 
             	    AND116_tree = (Object)adaptor.create(AND116);
             	    root_0 = (Object)adaptor.becomeRoot(AND116_tree, root_0);
 
-            	    pushFollow(FOLLOW_equalityExpression_in_bitwiseANDExpression4565);
+            	    pushFollow(FOLLOW_equalityExpression_in_bitwiseANDExpression4564);
             	    equalityExpression117=equalityExpression();
             	    _fsp--;
 
@@ -4560,7 +4558,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_equalityExpressionNoIn_in_bitwiseANDExpressionNoIn4579);
+            pushFollow(FOLLOW_equalityExpressionNoIn_in_bitwiseANDExpressionNoIn4578);
             equalityExpressionNoIn118=equalityExpressionNoIn();
             _fsp--;
 
@@ -4581,11 +4579,11 @@
             	    // JS.g:1218:29: AND equalityExpressionNoIn
             	    {
             	    AND119=(Token)input.LT(1);
-            	    match(input,AND,FOLLOW_AND_in_bitwiseANDExpressionNoIn4583); 
+            	    match(input,AND,FOLLOW_AND_in_bitwiseANDExpressionNoIn4582); 
             	    AND119_tree = (Object)adaptor.create(AND119);
             	    root_0 = (Object)adaptor.becomeRoot(AND119_tree, root_0);
 
-            	    pushFollow(FOLLOW_equalityExpressionNoIn_in_bitwiseANDExpressionNoIn4586);
+            	    pushFollow(FOLLOW_equalityExpressionNoIn_in_bitwiseANDExpressionNoIn4585);
             	    equalityExpressionNoIn120=equalityExpressionNoIn();
             	    _fsp--;
 
@@ -4645,7 +4643,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_bitwiseANDExpression_in_bitwiseXORExpression4602);
+            pushFollow(FOLLOW_bitwiseANDExpression_in_bitwiseXORExpression4601);
             bitwiseANDExpression121=bitwiseANDExpression();
             _fsp--;
 
@@ -4666,11 +4664,11 @@
             	    // JS.g:1222:27: XOR bitwiseANDExpression
             	    {
             	    XOR122=(Token)input.LT(1);
-            	    match(input,XOR,FOLLOW_XOR_in_bitwiseXORExpression4606); 
+            	    match(input,XOR,FOLLOW_XOR_in_bitwiseXORExpression4605); 
             	    XOR122_tree = (Object)adaptor.create(XOR122);
             	    root_0 = (Object)adaptor.becomeRoot(XOR122_tree, root_0);
 
-            	    pushFollow(FOLLOW_bitwiseANDExpression_in_bitwiseXORExpression4609);
+            	    pushFollow(FOLLOW_bitwiseANDExpression_in_bitwiseXORExpression4608);
             	    bitwiseANDExpression123=bitwiseANDExpression();
             	    _fsp--;
 
@@ -4730,7 +4728,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_bitwiseANDExpressionNoIn_in_bitwiseXORExpressionNoIn4625);
+            pushFollow(FOLLOW_bitwiseANDExpressionNoIn_in_bitwiseXORExpressionNoIn4624);
             bitwiseANDExpressionNoIn124=bitwiseANDExpressionNoIn();
             _fsp--;
 
@@ -4751,11 +4749,11 @@
             	    // JS.g:1226:31: XOR bitwiseANDExpressionNoIn
             	    {
             	    XOR125=(Token)input.LT(1);
-            	    match(input,XOR,FOLLOW_XOR_in_bitwiseXORExpressionNoIn4629); 
+            	    match(input,XOR,FOLLOW_XOR_in_bitwiseXORExpressionNoIn4628); 
             	    XOR125_tree = (Object)adaptor.create(XOR125);
             	    root_0 = (Object)adaptor.becomeRoot(XOR125_tree, root_0);
 
-            	    pushFollow(FOLLOW_bitwiseANDExpressionNoIn_in_bitwiseXORExpressionNoIn4632);
+            	    pushFollow(FOLLOW_bitwiseANDExpressionNoIn_in_bitwiseXORExpressionNoIn4631);
             	    bitwiseANDExpressionNoIn126=bitwiseANDExpressionNoIn();
             	    _fsp--;
 
@@ -4815,7 +4813,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_bitwiseXORExpression_in_bitwiseORExpression4647);
+            pushFollow(FOLLOW_bitwiseXORExpression_in_bitwiseORExpression4646);
             bitwiseXORExpression127=bitwiseXORExpression();
             _fsp--;
 
@@ -4836,11 +4834,11 @@
             	    // JS.g:1230:27: OR bitwiseXORExpression
             	    {
             	    OR128=(Token)input.LT(1);
-            	    match(input,OR,FOLLOW_OR_in_bitwiseORExpression4651); 
+            	    match(input,OR,FOLLOW_OR_in_bitwiseORExpression4650); 
             	    OR128_tree = (Object)adaptor.create(OR128);
             	    root_0 = (Object)adaptor.becomeRoot(OR128_tree, root_0);
 
-            	    pushFollow(FOLLOW_bitwiseXORExpression_in_bitwiseORExpression4654);
+            	    pushFollow(FOLLOW_bitwiseXORExpression_in_bitwiseORExpression4653);
             	    bitwiseXORExpression129=bitwiseXORExpression();
             	    _fsp--;
 
@@ -4900,7 +4898,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_bitwiseXORExpressionNoIn_in_bitwiseORExpressionNoIn4669);
+            pushFollow(FOLLOW_bitwiseXORExpressionNoIn_in_bitwiseORExpressionNoIn4668);
             bitwiseXORExpressionNoIn130=bitwiseXORExpressionNoIn();
             _fsp--;
 
@@ -4921,11 +4919,11 @@
             	    // JS.g:1234:31: OR bitwiseXORExpressionNoIn
             	    {
             	    OR131=(Token)input.LT(1);
-            	    match(input,OR,FOLLOW_OR_in_bitwiseORExpressionNoIn4673); 
+            	    match(input,OR,FOLLOW_OR_in_bitwiseORExpressionNoIn4672); 
             	    OR131_tree = (Object)adaptor.create(OR131);
             	    root_0 = (Object)adaptor.becomeRoot(OR131_tree, root_0);
 
-            	    pushFollow(FOLLOW_bitwiseXORExpressionNoIn_in_bitwiseORExpressionNoIn4676);
+            	    pushFollow(FOLLOW_bitwiseXORExpressionNoIn_in_bitwiseORExpressionNoIn4675);
             	    bitwiseXORExpressionNoIn132=bitwiseXORExpressionNoIn();
             	    _fsp--;
 
@@ -4985,7 +4983,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_bitwiseORExpression_in_logicalANDExpression4695);
+            pushFollow(FOLLOW_bitwiseORExpression_in_logicalANDExpression4694);
             bitwiseORExpression133=bitwiseORExpression();
             _fsp--;
 
@@ -5006,11 +5004,11 @@
             	    // JS.g:1242:26: LAND bitwiseORExpression
             	    {
             	    LAND134=(Token)input.LT(1);
-            	    match(input,LAND,FOLLOW_LAND_in_logicalANDExpression4699); 
+            	    match(input,LAND,FOLLOW_LAND_in_logicalANDExpression4698); 
             	    LAND134_tree = (Object)adaptor.create(LAND134);
             	    root_0 = (Object)adaptor.becomeRoot(LAND134_tree, root_0);
 
-            	    pushFollow(FOLLOW_bitwiseORExpression_in_logicalANDExpression4702);
+            	    pushFollow(FOLLOW_bitwiseORExpression_in_logicalANDExpression4701);
             	    bitwiseORExpression135=bitwiseORExpression();
             	    _fsp--;
 
@@ -5070,7 +5068,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_bitwiseORExpressionNoIn_in_logicalANDExpressionNoIn4716);
+            pushFollow(FOLLOW_bitwiseORExpressionNoIn_in_logicalANDExpressionNoIn4715);
             bitwiseORExpressionNoIn136=bitwiseORExpressionNoIn();
             _fsp--;
 
@@ -5091,11 +5089,11 @@
             	    // JS.g:1246:30: LAND bitwiseORExpressionNoIn
             	    {
             	    LAND137=(Token)input.LT(1);
-            	    match(input,LAND,FOLLOW_LAND_in_logicalANDExpressionNoIn4720); 
+            	    match(input,LAND,FOLLOW_LAND_in_logicalANDExpressionNoIn4719); 
             	    LAND137_tree = (Object)adaptor.create(LAND137);
             	    root_0 = (Object)adaptor.becomeRoot(LAND137_tree, root_0);
 
-            	    pushFollow(FOLLOW_bitwiseORExpressionNoIn_in_logicalANDExpressionNoIn4723);
+            	    pushFollow(FOLLOW_bitwiseORExpressionNoIn_in_logicalANDExpressionNoIn4722);
             	    bitwiseORExpressionNoIn138=bitwiseORExpressionNoIn();
             	    _fsp--;
 
@@ -5155,7 +5153,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_logicalANDExpression_in_logicalORExpression4738);
+            pushFollow(FOLLOW_logicalANDExpression_in_logicalORExpression4737);
             logicalANDExpression139=logicalANDExpression();
             _fsp--;
 
@@ -5176,11 +5174,11 @@
             	    // JS.g:1250:27: LOR logicalANDExpression
             	    {
             	    LOR140=(Token)input.LT(1);
-            	    match(input,LOR,FOLLOW_LOR_in_logicalORExpression4742); 
+            	    match(input,LOR,FOLLOW_LOR_in_logicalORExpression4741); 
             	    LOR140_tree = (Object)adaptor.create(LOR140);
             	    root_0 = (Object)adaptor.becomeRoot(LOR140_tree, root_0);
 
-            	    pushFollow(FOLLOW_logicalANDExpression_in_logicalORExpression4745);
+            	    pushFollow(FOLLOW_logicalANDExpression_in_logicalORExpression4744);
             	    logicalANDExpression141=logicalANDExpression();
             	    _fsp--;
 
@@ -5240,7 +5238,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_logicalANDExpressionNoIn_in_logicalORExpressionNoIn4760);
+            pushFollow(FOLLOW_logicalANDExpressionNoIn_in_logicalORExpressionNoIn4759);
             logicalANDExpressionNoIn142=logicalANDExpressionNoIn();
             _fsp--;
 
@@ -5261,11 +5259,11 @@
             	    // JS.g:1254:31: LOR logicalANDExpressionNoIn
             	    {
             	    LOR143=(Token)input.LT(1);
-            	    match(input,LOR,FOLLOW_LOR_in_logicalORExpressionNoIn4764); 
+            	    match(input,LOR,FOLLOW_LOR_in_logicalORExpressionNoIn4763); 
             	    LOR143_tree = (Object)adaptor.create(LOR143);
             	    root_0 = (Object)adaptor.becomeRoot(LOR143_tree, root_0);
 
-            	    pushFollow(FOLLOW_logicalANDExpressionNoIn_in_logicalORExpressionNoIn4767);
+            	    pushFollow(FOLLOW_logicalANDExpressionNoIn_in_logicalORExpressionNoIn4766);
             	    logicalANDExpressionNoIn144=logicalANDExpressionNoIn();
             	    _fsp--;
 
@@ -5329,7 +5327,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_logicalORExpression_in_conditionalExpression4786);
+            pushFollow(FOLLOW_logicalORExpression_in_conditionalExpression4785);
             logicalORExpression145=logicalORExpression();
             _fsp--;
 
@@ -5346,18 +5344,18 @@
                     // JS.g:1262:26: QUE assignmentExpression COLON assignmentExpression
                     {
                     QUE146=(Token)input.LT(1);
-                    match(input,QUE,FOLLOW_QUE_in_conditionalExpression4790); 
+                    match(input,QUE,FOLLOW_QUE_in_conditionalExpression4789); 
                     QUE146_tree = (Object)adaptor.create(QUE146);
                     root_0 = (Object)adaptor.becomeRoot(QUE146_tree, root_0);
 
-                    pushFollow(FOLLOW_assignmentExpression_in_conditionalExpression4793);
+                    pushFollow(FOLLOW_assignmentExpression_in_conditionalExpression4792);
                     assignmentExpression147=assignmentExpression();
                     _fsp--;
 
                     adaptor.addChild(root_0, assignmentExpression147.getTree());
                     COLON148=(Token)input.LT(1);
-                    match(input,COLON,FOLLOW_COLON_in_conditionalExpression4795); 
-                    pushFollow(FOLLOW_assignmentExpression_in_conditionalExpression4798);
+                    match(input,COLON,FOLLOW_COLON_in_conditionalExpression4794); 
+                    pushFollow(FOLLOW_assignmentExpression_in_conditionalExpression4797);
                     assignmentExpression149=assignmentExpression();
                     _fsp--;
 
@@ -5418,7 +5416,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_logicalORExpressionNoIn_in_conditionalExpressionNoIn4812);
+            pushFollow(FOLLOW_logicalORExpressionNoIn_in_conditionalExpressionNoIn4811);
             logicalORExpressionNoIn150=logicalORExpressionNoIn();
             _fsp--;
 
@@ -5435,18 +5433,18 @@
                     // JS.g:1266:30: QUE assignmentExpressionNoIn COLON assignmentExpressionNoIn
                     {
                     QUE151=(Token)input.LT(1);
-                    match(input,QUE,FOLLOW_QUE_in_conditionalExpressionNoIn4816); 
+                    match(input,QUE,FOLLOW_QUE_in_conditionalExpressionNoIn4815); 
                     QUE151_tree = (Object)adaptor.create(QUE151);
                     root_0 = (Object)adaptor.becomeRoot(QUE151_tree, root_0);
 
-                    pushFollow(FOLLOW_assignmentExpressionNoIn_in_conditionalExpressionNoIn4819);
+                    pushFollow(FOLLOW_assignmentExpressionNoIn_in_conditionalExpressionNoIn4818);
                     assignmentExpressionNoIn152=assignmentExpressionNoIn();
                     _fsp--;
 
                     adaptor.addChild(root_0, assignmentExpressionNoIn152.getTree());
                     COLON153=(Token)input.LT(1);
-                    match(input,COLON,FOLLOW_COLON_in_conditionalExpressionNoIn4821); 
-                    pushFollow(FOLLOW_assignmentExpressionNoIn_in_conditionalExpressionNoIn4824);
+                    match(input,COLON,FOLLOW_COLON_in_conditionalExpressionNoIn4820); 
+                    pushFollow(FOLLOW_assignmentExpressionNoIn_in_conditionalExpressionNoIn4823);
                     assignmentExpressionNoIn154=assignmentExpressionNoIn();
                     _fsp--;
 
@@ -5506,7 +5504,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_conditionalExpression_in_assignmentExpression4852);
+            pushFollow(FOLLOW_conditionalExpression_in_assignmentExpression4851);
             lhs=conditionalExpression();
             _fsp--;
 
@@ -5529,12 +5527,12 @@
                     if ( !( isLeftHandSideAssign(lhs, isLhs) ) ) {
                         throw new FailedPredicateException(input, "assignmentExpression", " isLeftHandSideAssign(lhs, isLhs) ");
                     }
-                    pushFollow(FOLLOW_assignmentOperator_in_assignmentExpression4859);
+                    pushFollow(FOLLOW_assignmentOperator_in_assignmentExpression4858);
                     assignmentOperator155=assignmentOperator();
                     _fsp--;
 
                     root_0 = (Object)adaptor.becomeRoot(assignmentOperator155.getTree(), root_0);
-                    pushFollow(FOLLOW_assignmentExpression_in_assignmentExpression4862);
+                    pushFollow(FOLLOW_assignmentExpression_in_assignmentExpression4861);
                     assignmentExpression156=assignmentExpression();
                     _fsp--;
 
@@ -5648,7 +5646,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_conditionalExpressionNoIn_in_assignmentExpressionNoIn4940);
+            pushFollow(FOLLOW_conditionalExpressionNoIn_in_assignmentExpressionNoIn4939);
             lhs=conditionalExpressionNoIn();
             _fsp--;
 
@@ -5671,12 +5669,12 @@
                     if ( !( isLeftHandSideAssign(lhs, isLhs) ) ) {
                         throw new FailedPredicateException(input, "assignmentExpressionNoIn", " isLeftHandSideAssign(lhs, isLhs) ");
                     }
-                    pushFollow(FOLLOW_assignmentOperator_in_assignmentExpressionNoIn4947);
+                    pushFollow(FOLLOW_assignmentOperator_in_assignmentExpressionNoIn4946);
                     assignmentOperator158=assignmentOperator();
                     _fsp--;
 
                     root_0 = (Object)adaptor.becomeRoot(assignmentOperator158.getTree(), root_0);
-                    pushFollow(FOLLOW_assignmentExpressionNoIn_in_assignmentExpressionNoIn4950);
+                    pushFollow(FOLLOW_assignmentExpressionNoIn_in_assignmentExpressionNoIn4949);
                     assignmentExpressionNoIn159=assignmentExpressionNoIn();
                     _fsp--;
 
@@ -5729,7 +5727,7 @@
             // JS.g:1322:2: (exprs+= assignmentExpression ( COMMA exprs+= assignmentExpression )* -> { $exprs.size() > 1 }? ^( CEXPR ( $exprs)+ ) -> $exprs)
             // JS.g:1322:4: exprs+= assignmentExpression ( COMMA exprs+= assignmentExpression )*
             {
-            pushFollow(FOLLOW_assignmentExpression_in_expression4972);
+            pushFollow(FOLLOW_assignmentExpression_in_expression4971);
             exprs=assignmentExpression();
             _fsp--;
 
@@ -5753,10 +5751,10 @@
             	    // JS.g:1322:34: COMMA exprs+= assignmentExpression
             	    {
             	    COMMA160=(Token)input.LT(1);
-            	    match(input,COMMA,FOLLOW_COMMA_in_expression4976); 
+            	    match(input,COMMA,FOLLOW_COMMA_in_expression4975); 
             	    stream_COMMA.add(COMMA160);
 
-            	    pushFollow(FOLLOW_assignmentExpression_in_expression4980);
+            	    pushFollow(FOLLOW_assignmentExpression_in_expression4979);
             	    exprs=assignmentExpression();
             	    _fsp--;
 
@@ -5853,7 +5851,7 @@
             // JS.g:1328:2: (exprs+= assignmentExpressionNoIn ( COMMA exprs+= assignmentExpressionNoIn )* -> { $exprs.size() > 1 }? ^( CEXPR ( $exprs)+ ) -> $exprs)
             // JS.g:1328:4: exprs+= assignmentExpressionNoIn ( COMMA exprs+= assignmentExpressionNoIn )*
             {
-            pushFollow(FOLLOW_assignmentExpressionNoIn_in_expressionNoIn5017);
+            pushFollow(FOLLOW_assignmentExpressionNoIn_in_expressionNoIn5016);
             exprs=assignmentExpressionNoIn();
             _fsp--;
 
@@ -5877,10 +5875,10 @@
             	    // JS.g:1328:38: COMMA exprs+= assignmentExpressionNoIn
             	    {
             	    COMMA161=(Token)input.LT(1);
-            	    match(input,COMMA,FOLLOW_COMMA_in_expressionNoIn5021); 
+            	    match(input,COMMA,FOLLOW_COMMA_in_expressionNoIn5020); 
             	    stream_COMMA.add(COMMA161);
 
-            	    pushFollow(FOLLOW_assignmentExpressionNoIn_in_expressionNoIn5025);
+            	    pushFollow(FOLLOW_assignmentExpressionNoIn_in_expressionNoIn5024);
             	    exprs=assignmentExpressionNoIn();
             	    _fsp--;
 
@@ -6028,7 +6026,7 @@
                     root_0 = (Object)adaptor.nil();
 
                     SEMIC162=(Token)input.LT(1);
-                    match(input,SEMIC,FOLLOW_SEMIC_in_semic5076); 
+                    match(input,SEMIC,FOLLOW_SEMIC_in_semic5075); 
                     SEMIC162_tree = (Object)adaptor.create(SEMIC162);
                     adaptor.addChild(root_0, SEMIC162_tree);
 
@@ -6041,7 +6039,7 @@
                     root_0 = (Object)adaptor.nil();
 
                     EOF163=(Token)input.LT(1);
-                    match(input,EOF,FOLLOW_EOF_in_semic5081); 
+                    match(input,EOF,FOLLOW_EOF_in_semic5080); 
                     EOF163_tree = (Object)adaptor.create(EOF163);
                     adaptor.addChild(root_0, EOF163_tree);
 
@@ -6054,7 +6052,7 @@
                     root_0 = (Object)adaptor.nil();
 
                     RBRACE164=(Token)input.LT(1);
-                    match(input,RBRACE,FOLLOW_RBRACE_in_semic5086); 
+                    match(input,RBRACE,FOLLOW_RBRACE_in_semic5085); 
                     RBRACE164_tree = (Object)adaptor.create(RBRACE164);
                     adaptor.addChild(root_0, RBRACE164_tree);
 
@@ -6068,7 +6066,7 @@
                     root_0 = (Object)adaptor.nil();
 
                     EOL165=(Token)input.LT(1);
-                    match(input,EOL,FOLLOW_EOL_in_semic5093); 
+                    match(input,EOL,FOLLOW_EOL_in_semic5092); 
                     EOL165_tree = (Object)adaptor.create(EOL165);
                     adaptor.addChild(root_0, EOL165_tree);
 
@@ -6081,7 +6079,7 @@
                     root_0 = (Object)adaptor.nil();
 
                     MultiLineComment166=(Token)input.LT(1);
-                    match(input,MultiLineComment,FOLLOW_MultiLineComment_in_semic5097); 
+                    match(input,MultiLineComment,FOLLOW_MultiLineComment_in_semic5096); 
                     MultiLineComment166_tree = (Object)adaptor.create(MultiLineComment166);
                     adaptor.addChild(root_0, MultiLineComment166_tree);
 
@@ -6146,7 +6144,7 @@
                     throw nvae;
                 }
             }
-            else if ( ((LA45_0>=NULL && LA45_0<=BREAK)||(LA45_0>=CONTINUE && LA45_0<=DO)||(LA45_0>=FOR && LA45_0<=IF)||(LA45_0>=NEW && LA45_0<=YIELD)||(LA45_0>=WXML && LA45_0<=NAMESPACE)||LA45_0==CONST||LA45_0==LPAREN||LA45_0==LBRACK||LA45_0==SEMIC||(LA45_0>=ADD && LA45_0<=SUB)||(LA45_0>=INC && LA45_0<=DEC)||(LA45_0>=NOT && LA45_0<=INV)||(LA45_0>=StringLiteral && LA45_0<=XmlAttribute)||LA45_0==Identifier||LA45_0==RegularExpressionLiteral||(LA45_0>=DecimalLiteral && LA45_0<=HexIntegerLiteral)||LA45_0==XMLLiteral) ) {
+            else if ( ((LA45_0>=NULL && LA45_0<=BREAK)||(LA45_0>=CONTINUE && LA45_0<=DO)||(LA45_0>=FOR && LA45_0<=IF)||(LA45_0>=NEW && LA45_0<=YIELD)||(LA45_0>=WXML && LA45_0<=NAMESPACE)||LA45_0==CONST||LA45_0==LPAREN||LA45_0==LBRACK||LA45_0==SEMIC||(LA45_0>=ADD && LA45_0<=SUB)||(LA45_0>=INC && LA45_0<=DEC)||(LA45_0>=NOT && LA45_0<=INV)||LA45_0==XMLLiteral||(LA45_0>=StringLiteral && LA45_0<=XmlAttribute)||LA45_0==Identifier||LA45_0==RegularExpressionLiteral||(LA45_0>=DecimalLiteral && LA45_0<=HexIntegerLiteral)) ) {
                 alt45=2;
             }
             else {
@@ -6164,7 +6162,7 @@
                     if ( !( input.LA(1) == LBRACE ) ) {
                         throw new FailedPredicateException(input, "statement", " input.LA(1) == LBRACE ");
                     }
-                    pushFollow(FOLLOW_block_in_statement5126);
+                    pushFollow(FOLLOW_block_in_statement5125);
                     block167=block();
                     _fsp--;
 
@@ -6177,7 +6175,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_statementTail_in_statement5131);
+                    pushFollow(FOLLOW_statementTail_in_statement5130);
                     statementTail168=statementTail();
                     _fsp--;
 
@@ -6281,13 +6279,13 @@
             case DEC:
             case NOT:
             case INV:
+            case XMLLiteral:
             case StringLiteral:
             case XmlAttribute:
             case RegularExpressionLiteral:
             case DecimalLiteral:
             case OctalIntegerLiteral:
             case HexIntegerLiteral:
-            case XMLLiteral:
                 {
                 alt46=3;
                 }
@@ -6385,7 +6383,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_variableStatement_in_statementTail5143);
+                    pushFollow(FOLLOW_variableStatement_in_statementTail5142);
                     variableStatement169=variableStatement();
                     _fsp--;
 
@@ -6398,7 +6396,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_emptyStatement_in_statementTail5148);
+                    pushFollow(FOLLOW_emptyStatement_in_statementTail5147);
                     emptyStatement170=emptyStatement();
                     _fsp--;
 
@@ -6411,7 +6409,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_expressionStatement_in_statementTail5153);
+                    pushFollow(FOLLOW_expressionStatement_in_statementTail5152);
                     expressionStatement171=expressionStatement();
                     _fsp--;
 
@@ -6424,7 +6422,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_ifStatement_in_statementTail5158);
+                    pushFollow(FOLLOW_ifStatement_in_statementTail5157);
                     ifStatement172=ifStatement();
                     _fsp--;
 
@@ -6437,7 +6435,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_iterationStatement_in_statementTail5163);
+                    pushFollow(FOLLOW_iterationStatement_in_statementTail5162);
                     iterationStatement173=iterationStatement();
                     _fsp--;
 
@@ -6450,7 +6448,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_continueStatement_in_statementTail5168);
+                    pushFollow(FOLLOW_continueStatement_in_statementTail5167);
                     continueStatement174=continueStatement();
                     _fsp--;
 
@@ -6463,7 +6461,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_breakStatement_in_statementTail5173);
+                    pushFollow(FOLLOW_breakStatement_in_statementTail5172);
                     breakStatement175=breakStatement();
                     _fsp--;
 
@@ -6476,7 +6474,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_returnStatement_in_statementTail5178);
+                    pushFollow(FOLLOW_returnStatement_in_statementTail5177);
                     returnStatement176=returnStatement();
                     _fsp--;
 
@@ -6489,7 +6487,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_withStatement_in_statementTail5183);
+                    pushFollow(FOLLOW_withStatement_in_statementTail5182);
                     withStatement177=withStatement();
                     _fsp--;
 
@@ -6502,7 +6500,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_labelledStatement_in_statementTail5188);
+                    pushFollow(FOLLOW_labelledStatement_in_statementTail5187);
                     labelledStatement178=labelledStatement();
                     _fsp--;
 
@@ -6515,7 +6513,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_switchStatement_in_statementTail5193);
+                    pushFollow(FOLLOW_switchStatement_in_statementTail5192);
                     switchStatement179=switchStatement();
                     _fsp--;
 
@@ -6528,7 +6526,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_throwStatement_in_statementTail5198);
+                    pushFollow(FOLLOW_throwStatement_in_statementTail5197);
                     throwStatement180=throwStatement();
                     _fsp--;
 
@@ -6541,7 +6539,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_tryStatement_in_statementTail5203);
+                    pushFollow(FOLLOW_tryStatement_in_statementTail5202);
                     tryStatement181=tryStatement();
                     _fsp--;
 
@@ -6554,7 +6552,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_constStatement_in_statementTail5208);
+                    pushFollow(FOLLOW_constStatement_in_statementTail5207);
                     constStatement182=constStatement();
                     _fsp--;
 
@@ -6567,7 +6565,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_namespaceStatement_in_statementTail5213);
+                    pushFollow(FOLLOW_namespaceStatement_in_statementTail5212);
                     namespaceStatement183=namespaceStatement();
                     _fsp--;
 
@@ -6621,7 +6619,7 @@
             // JS.g:1404:4: lb= LBRACE ( statement )* RBRACE
             {
             lb=(Token)input.LT(1);
-            match(input,LBRACE,FOLLOW_LBRACE_in_block5228); 
+            match(input,LBRACE,FOLLOW_LBRACE_in_block5227); 
             stream_LBRACE.add(lb);
 
             // JS.g:1404:14: ( statement )*
@@ -6630,7 +6628,7 @@
                 int alt47=2;
                 int LA47_0 = input.LA(1);
 
-                if ( ((LA47_0>=NULL && LA47_0<=BREAK)||(LA47_0>=CONTINUE && LA47_0<=DO)||(LA47_0>=FOR && LA47_0<=IF)||(LA47_0>=NEW && LA47_0<=YIELD)||(LA47_0>=WXML && LA47_0<=NAMESPACE)||LA47_0==CONST||LA47_0==LBRACE||LA47_0==LPAREN||LA47_0==LBRACK||LA47_0==SEMIC||(LA47_0>=ADD && LA47_0<=SUB)||(LA47_0>=INC && LA47_0<=DEC)||(LA47_0>=NOT && LA47_0<=INV)||(LA47_0>=StringLiteral && LA47_0<=XmlAttribute)||LA47_0==Identifier||LA47_0==RegularExpressionLiteral||(LA47_0>=DecimalLiteral && LA47_0<=HexIntegerLiteral)||LA47_0==XMLLiteral) ) {
+                if ( ((LA47_0>=NULL && LA47_0<=BREAK)||(LA47_0>=CONTINUE && LA47_0<=DO)||(LA47_0>=FOR && LA47_0<=IF)||(LA47_0>=NEW && LA47_0<=YIELD)||(LA47_0>=WXML && LA47_0<=NAMESPACE)||LA47_0==CONST||LA47_0==LBRACE||LA47_0==LPAREN||LA47_0==LBRACK||LA47_0==SEMIC||(LA47_0>=ADD && LA47_0<=SUB)||(LA47_0>=INC && LA47_0<=DEC)||(LA47_0>=NOT && LA47_0<=INV)||LA47_0==XMLLiteral||(LA47_0>=StringLiteral && LA47_0<=XmlAttribute)||LA47_0==Identifier||LA47_0==RegularExpressionLiteral||(LA47_0>=DecimalLiteral && LA47_0<=HexIntegerLiteral)) ) {
                     alt47=1;
                 }
 
@@ -6639,7 +6637,7 @@
             	case 1 :
             	    // JS.g:1404:14: statement
             	    {
-            	    pushFollow(FOLLOW_statement_in_block5230);
+            	    pushFollow(FOLLOW_statement_in_block5229);
             	    statement184=statement();
             	    _fsp--;
 
@@ -6654,7 +6652,7 @@
             } while (true);
 
             RBRACE185=(Token)input.LT(1);
-            match(input,RBRACE,FOLLOW_RBRACE_in_block5233); 
+            match(input,RBRACE,FOLLOW_RBRACE_in_block5232); 
             stream_RBRACE.add(RBRACE185);
 
 
@@ -6740,10 +6738,10 @@
             // JS.g:1413:4: VAR variableDeclaration ( COMMA variableDeclaration )* semic
             {
             VAR186=(Token)input.LT(1);
-            match(input,VAR,FOLLOW_VAR_in_variableStatement5262); 
+            match(input,VAR,FOLLOW_VAR_in_variableStatement5261); 
             stream_VAR.add(VAR186);
 
-            pushFollow(FOLLOW_variableDeclaration_in_variableStatement5264);
+            pushFollow(FOLLOW_variableDeclaration_in_variableStatement5263);
             variableDeclaration187=variableDeclaration();
             _fsp--;
 
@@ -6764,10 +6762,10 @@
             	    // JS.g:1413:30: COMMA variableDeclaration
             	    {
             	    COMMA188=(Token)input.LT(1);
-            	    match(input,COMMA,FOLLOW_COMMA_in_variableStatement5268); 
+            	    match(input,COMMA,FOLLOW_COMMA_in_variableStatement5267); 
             	    stream_COMMA.add(COMMA188);
 
-            	    pushFollow(FOLLOW_variableDeclaration_in_variableStatement5270);
+            	    pushFollow(FOLLOW_variableDeclaration_in_variableStatement5269);
             	    variableDeclaration189=variableDeclaration();
             	    _fsp--;
 
@@ -6781,14 +6779,14 @@
                 }
             } while (true);
 
-            pushFollow(FOLLOW_semic_in_variableStatement5275);
+            pushFollow(FOLLOW_semic_in_variableStatement5274);
             semic190=semic();
             _fsp--;
 
             stream_semic.add(semic190.getTree());
 
             // AST REWRITE
-            // elements: VAR, variableDeclaration
+            // elements: variableDeclaration, VAR
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -6865,7 +6863,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_identifier_in_variableDeclaration5298);
+            pushFollow(FOLLOW_identifier_in_variableDeclaration5297);
             identifier191=identifier();
             _fsp--;
 
@@ -6882,11 +6880,11 @@
                     // JS.g:1418:17: ASSIGN assignmentExpression
                     {
                     ASSIGN192=(Token)input.LT(1);
-                    match(input,ASSIGN,FOLLOW_ASSIGN_in_variableDeclaration5302); 
+                    match(input,ASSIGN,FOLLOW_ASSIGN_in_variableDeclaration5301); 
                     ASSIGN192_tree = (Object)adaptor.create(ASSIGN192);
                     root_0 = (Object)adaptor.becomeRoot(ASSIGN192_tree, root_0);
 
-                    pushFollow(FOLLOW_assignmentExpression_in_variableDeclaration5305);
+                    pushFollow(FOLLOW_assignmentExpression_in_variableDeclaration5304);
                     assignmentExpression193=assignmentExpression();
                     _fsp--;
 
@@ -6943,7 +6941,7 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_identifier_in_variableDeclarationNoIn5320);
+            pushFollow(FOLLOW_identifier_in_variableDeclarationNoIn5319);
             identifier194=identifier();
             _fsp--;
 
@@ -6960,11 +6958,11 @@
                     // JS.g:1422:17: ASSIGN assignmentExpressionNoIn
                     {
                     ASSIGN195=(Token)input.LT(1);
-                    match(input,ASSIGN,FOLLOW_ASSIGN_in_variableDeclarationNoIn5324); 
+                    match(input,ASSIGN,FOLLOW_ASSIGN_in_variableDeclarationNoIn5323); 
                     ASSIGN195_tree = (Object)adaptor.create(ASSIGN195);
                     root_0 = (Object)adaptor.becomeRoot(ASSIGN195_tree, root_0);
 
-                    pushFollow(FOLLOW_assignmentExpressionNoIn_in_variableDeclarationNoIn5327);
+                    pushFollow(FOLLOW_assignmentExpressionNoIn_in_variableDeclarationNoIn5326);
                     assignmentExpressionNoIn196=assignmentExpressionNoIn();
                     _fsp--;
 
@@ -7027,10 +7025,10 @@
             // JS.g:1426:5: CONST variableDeclaration ( COMMA variableDeclaration )* semic
             {
             CONST197=(Token)input.LT(1);
-            match(input,CONST,FOLLOW_CONST_in_constStatement5342); 
+            match(input,CONST,FOLLOW_CONST_in_constStatement5341); 
             stream_CONST.add(CONST197);
 
-            pushFollow(FOLLOW_variableDeclaration_in_constStatement5344);
+            pushFollow(FOLLOW_variableDeclaration_in_constStatement5343);
             variableDeclaration198=variableDeclaration();
             _fsp--;
 
@@ -7051,10 +7049,10 @@
             	    // JS.g:1426:33: COMMA variableDeclaration
             	    {
             	    COMMA199=(Token)input.LT(1);
-            	    match(input,COMMA,FOLLOW_COMMA_in_constStatement5348); 
+            	    match(input,COMMA,FOLLOW_COMMA_in_constStatement5347); 
             	    stream_COMMA.add(COMMA199);
 
-            	    pushFollow(FOLLOW_variableDeclaration_in_constStatement5350);
+            	    pushFollow(FOLLOW_variableDeclaration_in_constStatement5349);
             	    variableDeclaration200=variableDeclaration();
             	    _fsp--;
 
@@ -7068,7 +7066,7 @@
                 }
             } while (true);
 
-            pushFollow(FOLLOW_semic_in_constStatement5355);
+            pushFollow(FOLLOW_semic_in_constStatement5354);
             semic201=semic();
             _fsp--;
 
@@ -7149,7 +7147,7 @@
             root_0 = (Object)adaptor.nil();
 
             SEMIC202=(Token)input.LT(1);
-            match(input,SEMIC,FOLLOW_SEMIC_in_emptyStatement5385); 
+            match(input,SEMIC,FOLLOW_SEMIC_in_emptyStatement5384); 
 
             }
 
@@ -7194,12 +7192,12 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_expression_in_expressionStatement5404);
+            pushFollow(FOLLOW_expression_in_expressionStatement5403);
             expression203=expression();
             _fsp--;
 
             adaptor.addChild(root_0, expression203.getTree());
-            pushFollow(FOLLOW_semic_in_expressionStatement5406);
+            pushFollow(FOLLOW_semic_in_expressionStatement5405);
             semic204=semic();
             _fsp--;
 
@@ -7261,23 +7259,23 @@
             // JS.g:1458:4: IF LPAREN expression RPAREN statement ({...}? ELSE statement )?
             {
             IF205=(Token)input.LT(1);
-            match(input,IF,FOLLOW_IF_in_ifStatement5424); 
+            match(input,IF,FOLLOW_IF_in_ifStatement5423); 
             stream_IF.add(IF205);
 
             LPAREN206=(Token)input.LT(1);
-            match(input,LPAREN,FOLLOW_LPAREN_in_ifStatement5426); 
+            match(input,LPAREN,FOLLOW_LPAREN_in_ifStatement5425); 
             stream_LPAREN.add(LPAREN206);
 
-            pushFollow(FOLLOW_expression_in_ifStatement5428);
+            pushFollow(FOLLOW_expression_in_ifStatement5427);
             expression207=expression();
             _fsp--;
 
             stream_expression.add(expression207.getTree());
             RPAREN208=(Token)input.LT(1);
-            match(input,RPAREN,FOLLOW_RPAREN_in_ifStatement5430); 
+            match(input,RPAREN,FOLLOW_RPAREN_in_ifStatement5429); 
             stream_RPAREN.add(RPAREN208);
 
-            pushFollow(FOLLOW_statement_in_ifStatement5432);
+            pushFollow(FOLLOW_statement_in_ifStatement5431);
             statement209=statement();
             _fsp--;
 
@@ -7301,10 +7299,10 @@
                         throw new FailedPredicateException(input, "ifStatement", " input.LA(1) == ELSE ");
                     }
                     ELSE210=(Token)input.LT(1);
-                    match(input,ELSE,FOLLOW_ELSE_in_ifStatement5438); 
+                    match(input,ELSE,FOLLOW_ELSE_in_ifStatement5437); 
                     stream_ELSE.add(ELSE210);
 
-                    pushFollow(FOLLOW_statement_in_ifStatement5440);
+                    pushFollow(FOLLOW_statement_in_ifStatement5439);
                     statement211=statement();
                     _fsp--;
 
@@ -7317,7 +7315,7 @@
 
 
             // AST REWRITE
-            // elements: statement, expression, IF
+            // elements: expression, IF, statement
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -7436,7 +7434,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_doStatement_in_iterationStatement5473);
+                    pushFollow(FOLLOW_doStatement_in_iterationStatement5472);
                     doStatement212=doStatement();
                     _fsp--;
 
@@ -7449,7 +7447,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_whileStatement_in_iterationStatement5478);
+                    pushFollow(FOLLOW_whileStatement_in_iterationStatement5477);
                     whileStatement213=whileStatement();
                     _fsp--;
 
@@ -7462,7 +7460,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_forEachStatement_in_iterationStatement5483);
+                    pushFollow(FOLLOW_forEachStatement_in_iterationStatement5482);
                     forEachStatement214=forEachStatement();
                     _fsp--;
 
@@ -7475,7 +7473,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_forStatement_in_iterationStatement5488);
+                    pushFollow(FOLLOW_forStatement_in_iterationStatement5487);
                     forStatement215=forStatement();
                     _fsp--;
 
@@ -7541,39 +7539,39 @@
             // JS.g:1474:4: DO statement WHILE LPAREN expression RPAREN semic
             {
             DO216=(Token)input.LT(1);
-            match(input,DO,FOLLOW_DO_in_doStatement5500); 
+            match(input,DO,FOLLOW_DO_in_doStatement5499); 
             stream_DO.add(DO216);
 
-            pushFollow(FOLLOW_statement_in_doStatement5502);
+            pushFollow(FOLLOW_statement_in_doStatement5501);
             statement217=statement();
             _fsp--;
 
             stream_statement.add(statement217.getTree());
             WHILE218=(Token)input.LT(1);
-            match(input,WHILE,FOLLOW_WHILE_in_doStatement5504); 
+            match(input,WHILE,FOLLOW_WHILE_in_doStatement5503); 
             stream_WHILE.add(WHILE218);
 
             LPAREN219=(Token)input.LT(1);
-            match(input,LPAREN,FOLLOW_LPAREN_in_doStatement5506); 
+            match(input,LPAREN,FOLLOW_LPAREN_in_doStatement5505); 
             stream_LPAREN.add(LPAREN219);
 
-            pushFollow(FOLLOW_expression_in_doStatement5508);
+            pushFollow(FOLLOW_expression_in_doStatement5507);
             expression220=expression();
             _fsp--;
 
             stream_expression.add(expression220.getTree());
             RPAREN221=(Token)input.LT(1);
-            match(input,RPAREN,FOLLOW_RPAREN_in_doStatement5510); 
+            match(input,RPAREN,FOLLOW_RPAREN_in_doStatement5509); 
             stream_RPAREN.add(RPAREN221);
 
-            pushFollow(FOLLOW_semic_in_doStatement5512);
+            pushFollow(FOLLOW_semic_in_doStatement5511);
             semic222=semic();
             _fsp--;
 
             stream_semic.add(semic222.getTree());
 
             // AST REWRITE
-            // elements: statement, expression, DO
+            // elements: DO, statement, expression
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -7649,20 +7647,20 @@
             root_0 = (Object)adaptor.nil();
 
             WHILE223=(Token)input.LT(1);
-            match(input,WHILE,FOLLOW_WHILE_in_whileStatement5537); 
+            match(input,WHILE,FOLLOW_WHILE_in_whileStatement5536); 
             WHILE223_tree = (Object)adaptor.create(WHILE223);
             root_0 = (Object)adaptor.becomeRoot(WHILE223_tree, root_0);
 
             LPAREN224=(Token)input.LT(1);
-            match(input,LPAREN,FOLLOW_LPAREN_in_whileStatement5540); 
-            pushFollow(FOLLOW_expression_in_whileStatement5543);
+            match(input,LPAREN,FOLLOW_LPAREN_in_whileStatement5539); 
+            pushFollow(FOLLOW_expression_in_whileStatement5542);
             expression225=expression();
             _fsp--;
 
             adaptor.addChild(root_0, expression225.getTree());
             RPAREN226=(Token)input.LT(1);
-            match(input,RPAREN,FOLLOW_RPAREN_in_whileStatement5545); 
-            pushFollow(FOLLOW_statement_in_whileStatement5548);
+            match(input,RPAREN,FOLLOW_RPAREN_in_whileStatement5544); 
+            pushFollow(FOLLOW_statement_in_whileStatement5547);
             statement227=statement();
             _fsp--;
 
@@ -7723,34 +7721,34 @@
             // JS.g:1525:5: FOR EACH LPAREN forEachControl RPAREN statement
             {
             FOR228=(Token)input.LT(1);
-            match(input,FOR,FOLLOW_FOR_in_forEachStatement5563); 
+            match(input,FOR,FOLLOW_FOR_in_forEachStatement5562); 
             stream_FOR.add(FOR228);
 
             EACH229=(Token)input.LT(1);
-            match(input,EACH,FOLLOW_EACH_in_forEachStatement5565); 
+            match(input,EACH,FOLLOW_EACH_in_forEachStatement5564); 
             stream_EACH.add(EACH229);
 
             LPAREN230=(Token)input.LT(1);
-            match(input,LPAREN,FOLLOW_LPAREN_in_forEachStatement5567); 
+            match(input,LPAREN,FOLLOW_LPAREN_in_forEachStatement5566); 
             stream_LPAREN.add(LPAREN230);
 
-            pushFollow(FOLLOW_forEachControl_in_forEachStatement5569);
+            pushFollow(FOLLOW_forEachControl_in_forEachStatement5568);
             forEachControl231=forEachControl();
             _fsp--;
 
             stream_forEachControl.add(forEachControl231.getTree());
             RPAREN232=(Token)input.LT(1);
-            match(input,RPAREN,FOLLOW_RPAREN_in_forEachStatement5571); 
+            match(input,RPAREN,FOLLOW_RPAREN_in_forEachStatement5570); 
             stream_RPAREN.add(RPAREN232);
 
-            pushFollow(FOLLOW_statement_in_forEachStatement5573);
+            pushFollow(FOLLOW_statement_in_forEachStatement5572);
             statement233=statement();
             _fsp--;
 
             stream_statement.add(statement233.getTree());
 
             // AST REWRITE
-            // elements: statement, forEachControl
+            // elements: forEachControl, statement
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -7821,7 +7819,7 @@
             if ( (LA54_0==VAR) ) {
                 alt54=1;
             }
-            else if ( ((LA54_0>=NULL && LA54_0<=FALSE)||LA54_0==DELETE||(LA54_0>=EACH && LA54_0<=FUNCTION)||LA54_0==NEW||LA54_0==THIS||LA54_0==TYPEOF||LA54_0==VOID||(LA54_0>=GET && LA54_0<=YIELD)||(LA54_0>=WXML && LA54_0<=NAMESPACE)||LA54_0==LBRACE||LA54_0==LPAREN||LA54_0==LBRACK||(LA54_0>=ADD && LA54_0<=SUB)||(LA54_0>=INC && LA54_0<=DEC)||(LA54_0>=NOT && LA54_0<=INV)||(LA54_0>=StringLiteral && LA54_0<=XmlAttribute)||LA54_0==Identifier||LA54_0==RegularExpressionLiteral||(LA54_0>=DecimalLiteral && LA54_0<=HexIntegerLiteral)||LA54_0==XMLLiteral) ) {
+            else if ( ((LA54_0>=NULL && LA54_0<=FALSE)||LA54_0==DELETE||(LA54_0>=EACH && LA54_0<=FUNCTION)||LA54_0==NEW||LA54_0==THIS||LA54_0==TYPEOF||LA54_0==VOID||(LA54_0>=GET && LA54_0<=YIELD)||(LA54_0>=WXML && LA54_0<=NAMESPACE)||LA54_0==LBRACE||LA54_0==LPAREN||LA54_0==LBRACK||(LA54_0>=ADD && LA54_0<=SUB)||(LA54_0>=INC && LA54_0<=DEC)||(LA54_0>=NOT && LA54_0<=INV)||LA54_0==XMLLiteral||(LA54_0>=StringLiteral && LA54_0<=XmlAttribute)||LA54_0==Identifier||LA54_0==RegularExpressionLiteral||(LA54_0>=DecimalLiteral && LA54_0<=HexIntegerLiteral)) ) {
                 alt54=2;
             }
             else {
@@ -7836,7 +7834,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_forControlVar_in_forEachControl5600);
+                    pushFollow(FOLLOW_forControlVar_in_forEachControl5599);
                     forControlVar234=forControlVar();
                     _fsp--;
 
@@ -7849,7 +7847,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_forControlExpression_in_forEachControl5606);
+                    pushFollow(FOLLOW_forControlExpression_in_forEachControl5605);
                     forControlExpression235=forControlExpression();
                     _fsp--;
 
@@ -7907,20 +7905,20 @@
             root_0 = (Object)adaptor.nil();
 
             FOR236=(Token)input.LT(1);
-            match(input,FOR,FOLLOW_FOR_in_forStatement5618); 
+            match(input,FOR,FOLLOW_FOR_in_forStatement5617); 
             FOR236_tree = (Object)adaptor.create(FOR236);
             root_0 = (Object)adaptor.becomeRoot(FOR236_tree, root_0);
 
             LPAREN237=(Token)input.LT(1);
-            match(input,LPAREN,FOLLOW_LPAREN_in_forStatement5621); 
-            pushFollow(FOLLOW_forControl_in_forStatement5624);
+            match(input,LPAREN,FOLLOW_LPAREN_in_forStatement5620); 
+            pushFollow(FOLLOW_forControl_in_forStatement5623);
             forControl238=forControl();
             _fsp--;
 
             adaptor.addChild(root_0, forControl238.getTree());
             RPAREN239=(Token)input.LT(1);
-            match(input,RPAREN,FOLLOW_RPAREN_in_forStatement5626); 
-            pushFollow(FOLLOW_statement_in_forStatement5629);
+            match(input,RPAREN,FOLLOW_RPAREN_in_forStatement5625); 
+            pushFollow(FOLLOW_statement_in_forStatement5628);
             statement240=statement();
             _fsp--;
 
@@ -7998,6 +7996,7 @@
             case DEC:
             case NOT:
             case INV:
+            case XMLLiteral:
             case StringLiteral:
             case XmlAttribute:
             case Identifier:
@@ -8005,7 +8004,6 @@
             case DecimalLiteral:
             case OctalIntegerLiteral:
             case HexIntegerLiteral:
-            case XMLLiteral:
                 {
                 alt55=2;
                 }
@@ -8028,7 +8026,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_forControlVar_in_forControl5640);
+                    pushFollow(FOLLOW_forControlVar_in_forControl5639);
                     forControlVar241=forControlVar();
                     _fsp--;
 
@@ -8041,7 +8039,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_forControlExpression_in_forControl5645);
+                    pushFollow(FOLLOW_forControlExpression_in_forControl5644);
                     forControlExpression242=forControlExpression();
                     _fsp--;
 
@@ -8054,7 +8052,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_forControlSemic_in_forControl5650);
+                    pushFollow(FOLLOW_forControlSemic_in_forControl5649);
                     forControlSemic243=forControlSemic();
                     _fsp--;
 
@@ -8125,10 +8123,10 @@
             // JS.g:1545:4: VAR variableDeclarationNoIn ( ( IN expression -> ^( FORITER ^( VAR variableDeclarationNoIn ) ^( EXPR expression ) ) ) | ( ( COMMA variableDeclarationNoIn )* SEMIC (ex1= expression )? SEMIC (ex2= expression )? -> ^( FORSTEP ^( VAR ( variableDeclarationNoIn )+ ) ^( EXPR ( $ex1)? ) ^( EXPR ( $ex2)? ) ) ) )
             {
             VAR244=(Token)input.LT(1);
-            match(input,VAR,FOLLOW_VAR_in_forControlVar5661); 
+            match(input,VAR,FOLLOW_VAR_in_forControlVar5660); 
             stream_VAR.add(VAR244);
 
-            pushFollow(FOLLOW_variableDeclarationNoIn_in_forControlVar5663);
+            pushFollow(FOLLOW_variableDeclarationNoIn_in_forControlVar5662);
             variableDeclarationNoIn245=variableDeclarationNoIn();
             _fsp--;
 
@@ -8157,17 +8155,17 @@
                     // JS.g:1548:4: IN expression
                     {
                     IN246=(Token)input.LT(1);
-                    match(input,IN,FOLLOW_IN_in_forControlVar5675); 
+                    match(input,IN,FOLLOW_IN_in_forControlVar5674); 
                     stream_IN.add(IN246);
 
-                    pushFollow(FOLLOW_expression_in_forControlVar5677);
+                    pushFollow(FOLLOW_expression_in_forControlVar5676);
                     expression247=expression();
                     _fsp--;
 
                     stream_expression.add(expression247.getTree());
 
                     // AST REWRITE
-                    // elements: variableDeclarationNoIn, VAR, expression
+                    // elements: VAR, expression, variableDeclarationNoIn
                     // token labels: 
                     // rule labels: retval
                     // token list labels: 
@@ -8236,10 +8234,10 @@
                     	    // JS.g:1553:6: COMMA variableDeclarationNoIn
                     	    {
                     	    COMMA248=(Token)input.LT(1);
-                    	    match(input,COMMA,FOLLOW_COMMA_in_forControlVar5723); 
+                    	    match(input,COMMA,FOLLOW_COMMA_in_forControlVar5722); 
                     	    stream_COMMA.add(COMMA248);
 
-                    	    pushFollow(FOLLOW_variableDeclarationNoIn_in_forControlVar5725);
+                    	    pushFollow(FOLLOW_variableDeclarationNoIn_in_forControlVar5724);
                     	    variableDeclarationNoIn249=variableDeclarationNoIn();
                     	    _fsp--;
 
@@ -8254,21 +8252,21 @@
                     } while (true);
 
                     SEMIC250=(Token)input.LT(1);
-                    match(input,SEMIC,FOLLOW_SEMIC_in_forControlVar5730); 
+                    match(input,SEMIC,FOLLOW_SEMIC_in_forControlVar5729); 
                     stream_SEMIC.add(SEMIC250);
 
                     // JS.g:1553:48: (ex1= expression )?
                     int alt57=2;
                     int LA57_0 = input.LA(1);
 
-                    if ( ((LA57_0>=NULL && LA57_0<=FALSE)||LA57_0==DELETE||(LA57_0>=EACH && LA57_0<=FUNCTION)||LA57_0==NEW||LA57_0==THIS||LA57_0==TYPEOF||LA57_0==VOID||(LA57_0>=GET && LA57_0<=YIELD)||(LA57_0>=WXML && LA57_0<=NAMESPACE)||LA57_0==LBRACE||LA57_0==LPAREN||LA57_0==LBRACK||(LA57_0>=ADD && LA57_0<=SUB)||(LA57_0>=INC && LA57_0<=DEC)||(LA57_0>=NOT && LA57_0<=INV)||(LA57_0>=StringLiteral && LA57_0<=XmlAttribute)||LA57_0==Identifier||LA57_0==RegularExpressionLiteral||(LA57_0>=DecimalLiteral && LA57_0<=HexIntegerLiteral)||LA57_0==XMLLiteral) ) {
+                    if ( ((LA57_0>=NULL && LA57_0<=FALSE)||LA57_0==DELETE||(LA57_0>=EACH && LA57_0<=FUNCTION)||LA57_0==NEW||LA57_0==THIS||LA57_0==TYPEOF||LA57_0==VOID||(LA57_0>=GET && LA57_0<=YIELD)||(LA57_0>=WXML && LA57_0<=NAMESPACE)||LA57_0==LBRACE||LA57_0==LPAREN||LA57_0==LBRACK||(LA57_0>=ADD && LA57_0<=SUB)||(LA57_0>=INC && LA57_0<=DEC)||(LA57_0>=NOT && LA57_0<=INV)||LA57_0==XMLLiteral||(LA57_0>=StringLiteral && LA57_0<=XmlAttribute)||LA57_0==Identifier||LA57_0==RegularExpressionLiteral||(LA57_0>=DecimalLiteral && LA57_0<=HexIntegerLiteral)) ) {
                         alt57=1;
                     }
                     switch (alt57) {
                         case 1 :
                             // JS.g:1553:48: ex1= expression
                             {
-                            pushFollow(FOLLOW_expression_in_forControlVar5734);
+                            pushFollow(FOLLOW_expression_in_forControlVar5733);
                             ex1=expression();
                             _fsp--;
 
@@ -8280,21 +8278,21 @@
                     }
 
                     SEMIC251=(Token)input.LT(1);
-                    match(input,SEMIC,FOLLOW_SEMIC_in_forControlVar5737); 
+                    match(input,SEMIC,FOLLOW_SEMIC_in_forControlVar5736); 
                     stream_SEMIC.add(SEMIC251);
 
                     // JS.g:1553:70: (ex2= expression )?
                     int alt58=2;
                     int LA58_0 = input.LA(1);
 
-                    if ( ((LA58_0>=NULL && LA58_0<=FALSE)||LA58_0==DELETE||(LA58_0>=EACH && LA58_0<=FUNCTION)||LA58_0==NEW||LA58_0==THIS||LA58_0==TYPEOF||LA58_0==VOID||(LA58_0>=GET && LA58_0<=YIELD)||(LA58_0>=WXML && LA58_0<=NAMESPACE)||LA58_0==LBRACE||LA58_0==LPAREN||LA58_0==LBRACK||(LA58_0>=ADD && LA58_0<=SUB)||(LA58_0>=INC && LA58_0<=DEC)||(LA58_0>=NOT && LA58_0<=INV)||(LA58_0>=StringLiteral && LA58_0<=XmlAttribute)||LA58_0==Identifier||LA58_0==RegularExpressionLiteral||(LA58_0>=DecimalLiteral && LA58_0<=HexIntegerLiteral)||LA58_0==XMLLiteral) ) {
+                    if ( ((LA58_0>=NULL && LA58_0<=FALSE)||LA58_0==DELETE||(LA58_0>=EACH && LA58_0<=FUNCTION)||LA58_0==NEW||LA58_0==THIS||LA58_0==TYPEOF||LA58_0==VOID||(LA58_0>=GET && LA58_0<=YIELD)||(LA58_0>=WXML && LA58_0<=NAMESPACE)||LA58_0==LBRACE||LA58_0==LPAREN||LA58_0==LBRACK||(LA58_0>=ADD && LA58_0<=SUB)||(LA58_0>=INC && LA58_0<=DEC)||(LA58_0>=NOT && LA58_0<=INV)||LA58_0==XMLLiteral||(LA58_0>=StringLiteral && LA58_0<=XmlAttribute)||LA58_0==Identifier||LA58_0==RegularExpressionLiteral||(LA58_0>=DecimalLiteral && LA58_0<=HexIntegerLiteral)) ) {
                         alt58=1;
                     }
                     switch (alt58) {
                         case 1 :
                             // JS.g:1553:70: ex2= expression
                             {
-                            pushFollow(FOLLOW_expression_in_forControlVar5741);
+                            pushFollow(FOLLOW_expression_in_forControlVar5740);
                             ex2=expression();
                             _fsp--;
 
@@ -8307,7 +8305,7 @@
 
 
                     // AST REWRITE
-                    // elements: ex2, ex1, variableDeclarationNoIn, VAR
+                    // elements: VAR, ex1, ex2, variableDeclarationNoIn
                     // token labels: 
                     // rule labels: retval, ex2, ex1
                     // token list labels: 
@@ -8441,7 +8439,7 @@
             // JS.g:1564:2: (ex1= expressionNoIn ({...}? ( IN ex2= expression -> ^( FORITER ^( EXPR $ex1) ^( EXPR $ex2) ) ) | ( SEMIC (ex2= expression )? SEMIC (ex3= expression )? -> ^( FORSTEP ^( EXPR $ex1) ^( EXPR ( $ex2)? ) ^( EXPR ( $ex3)? ) ) ) ) )
             // JS.g:1564:4: ex1= expressionNoIn ({...}? ( IN ex2= expression -> ^( FORITER ^( EXPR $ex1) ^( EXPR $ex2) ) ) | ( SEMIC (ex2= expression )? SEMIC (ex3= expression )? -> ^( FORSTEP ^( EXPR $ex1) ^( EXPR ( $ex2)? ) ^( EXPR ( $ex3)? ) ) ) )
             {
-            pushFollow(FOLLOW_expressionNoIn_in_forControlExpression5807);
+            pushFollow(FOLLOW_expressionNoIn_in_forControlExpression5806);
             ex1=expressionNoIn();
             _fsp--;
 
@@ -8473,17 +8471,17 @@
                     // JS.g:1567:4: IN ex2= expression
                     {
                     IN252=(Token)input.LT(1);
-                    match(input,IN,FOLLOW_IN_in_forControlExpression5822); 
+                    match(input,IN,FOLLOW_IN_in_forControlExpression5821); 
                     stream_IN.add(IN252);
 
-                    pushFollow(FOLLOW_expression_in_forControlExpression5826);
+                    pushFollow(FOLLOW_expression_in_forControlExpression5825);
                     ex2=expression();
                     _fsp--;
 
                     stream_expression.add(ex2.getTree());
 
                     // AST REWRITE
-                    // elements: ex2, ex1
+                    // elements: ex1, ex2
                     // token labels: 
                     // rule labels: retval, ex2, ex1
                     // token list labels: 
@@ -8539,21 +8537,21 @@
                     // JS.g:1572:4: SEMIC (ex2= expression )? SEMIC (ex3= expression )?
                     {
                     SEMIC253=(Token)input.LT(1);
-                    match(input,SEMIC,FOLLOW_SEMIC_in_forControlExpression5872); 
+                    match(input,SEMIC,FOLLOW_SEMIC_in_forControlExpression5871); 
                     stream_SEMIC.add(SEMIC253);
 
                     // JS.g:1572:13: (ex2= expression )?
                     int alt60=2;
                     int LA60_0 = input.LA(1);
 
-                    if ( ((LA60_0>=NULL && LA60_0<=FALSE)||LA60_0==DELETE||(LA60_0>=EACH && LA60_0<=FUNCTION)||LA60_0==NEW||LA60_0==THIS||LA60_0==TYPEOF||LA60_0==VOID||(LA60_0>=GET && LA60_0<=YIELD)||(LA60_0>=WXML && LA60_0<=NAMESPACE)||LA60_0==LBRACE||LA60_0==LPAREN||LA60_0==LBRACK||(LA60_0>=ADD && LA60_0<=SUB)||(LA60_0>=INC && LA60_0<=DEC)||(LA60_0>=NOT && LA60_0<=INV)||(LA60_0>=StringLiteral && LA60_0<=XmlAttribute)||LA60_0==Identifier||LA60_0==RegularExpressionLiteral||(LA60_0>=DecimalLiteral && LA60_0<=HexIntegerLiteral)||LA60_0==XMLLiteral) ) {
+                    if ( ((LA60_0>=NULL && LA60_0<=FALSE)||LA60_0==DELETE||(LA60_0>=EACH && LA60_0<=FUNCTION)||LA60_0==NEW||LA60_0==THIS||LA60_0==TYPEOF||LA60_0==VOID||(LA60_0>=GET && LA60_0<=YIELD)||(LA60_0>=WXML && LA60_0<=NAMESPACE)||LA60_0==LBRACE||LA60_0==LPAREN||LA60_0==LBRACK||(LA60_0>=ADD && LA60_0<=SUB)||(LA60_0>=INC && LA60_0<=DEC)||(LA60_0>=NOT && LA60_0<=INV)||LA60_0==XMLLiteral||(LA60_0>=StringLiteral && LA60_0<=XmlAttribute)||LA60_0==Identifier||LA60_0==RegularExpressionLiteral||(LA60_0>=DecimalLiteral && LA60_0<=HexIntegerLiteral)) ) {
                         alt60=1;
                     }
                     switch (alt60) {
                         case 1 :
                             // JS.g:1572:13: ex2= expression
                             {
-                            pushFollow(FOLLOW_expression_in_forControlExpression5876);
+                            pushFollow(FOLLOW_expression_in_forControlExpression5875);
                             ex2=expression();
                             _fsp--;
 
@@ -8565,21 +8563,21 @@
                     }
 
                     SEMIC254=(Token)input.LT(1);
-                    match(input,SEMIC,FOLLOW_SEMIC_in_forControlExpression5879); 
+                    match(input,SEMIC,FOLLOW_SEMIC_in_forControlExpression5878); 
                     stream_SEMIC.add(SEMIC254);
 
                     // JS.g:1572:35: (ex3= expression )?
                     int alt61=2;
                     int LA61_0 = input.LA(1);
 
-                    if ( ((LA61_0>=NULL && LA61_0<=FALSE)||LA61_0==DELETE||(LA61_0>=EACH && LA61_0<=FUNCTION)||LA61_0==NEW||LA61_0==THIS||LA61_0==TYPEOF||LA61_0==VOID||(LA61_0>=GET && LA61_0<=YIELD)||(LA61_0>=WXML && LA61_0<=NAMESPACE)||LA61_0==LBRACE||LA61_0==LPAREN||LA61_0==LBRACK||(LA61_0>=ADD && LA61_0<=SUB)||(LA61_0>=INC && LA61_0<=DEC)||(LA61_0>=NOT && LA61_0<=INV)||(LA61_0>=StringLiteral && LA61_0<=XmlAttribute)||LA61_0==Identifier||LA61_0==RegularExpressionLiteral||(LA61_0>=DecimalLiteral && LA61_0<=HexIntegerLiteral)||LA61_0==XMLLiteral) ) {
+                    if ( ((LA61_0>=NULL && LA61_0<=FALSE)||LA61_0==DELETE||(LA61_0>=EACH && LA61_0<=FUNCTION)||LA61_0==NEW||LA61_0==THIS||LA61_0==TYPEOF||LA61_0==VOID||(LA61_0>=GET && LA61_0<=YIELD)||(LA61_0>=WXML && LA61_0<=NAMESPACE)||LA61_0==LBRACE||LA61_0==LPAREN||LA61_0==LBRACK||(LA61_0>=ADD && LA61_0<=SUB)||(LA61_0>=INC && LA61_0<=DEC)||(LA61_0>=NOT && LA61_0<=INV)||LA61_0==XMLLiteral||(LA61_0>=StringLiteral && LA61_0<=XmlAttribute)||LA61_0==Identifier||LA61_0==RegularExpressionLiteral||(LA61_0>=DecimalLiteral && LA61_0<=HexIntegerLiteral)) ) {
                         alt61=1;
                     }
                     switch (alt61) {
                         case 1 :
                             // JS.g:1572:35: ex3= expression
                             {
-                            pushFollow(FOLLOW_expression_in_forControlExpression5883);
+                            pushFollow(FOLLOW_expression_in_forControlExpression5882);
                             ex3=expression();
                             _fsp--;
 
@@ -8592,7 +8590,7 @@
 
 
                     // AST REWRITE
-                    // elements: ex2, ex3, ex1
+                    // elements: ex3, ex1, ex2
                     // token labels: 
                     // rule labels: retval, ex3, ex2, ex1
                     // token list labels: 
@@ -8712,21 +8710,21 @@
             // JS.g:1579:4: SEMIC (ex1= expression )? SEMIC (ex2= expression )?
             {
             SEMIC255=(Token)input.LT(1);
-            match(input,SEMIC,FOLLOW_SEMIC_in_forControlSemic5942); 
+            match(input,SEMIC,FOLLOW_SEMIC_in_forControlSemic5941); 
             stream_SEMIC.add(SEMIC255);
 
             // JS.g:1579:13: (ex1= expression )?
             int alt63=2;
             int LA63_0 = input.LA(1);
 
-            if ( ((LA63_0>=NULL && LA63_0<=FALSE)||LA63_0==DELETE||(LA63_0>=EACH && LA63_0<=FUNCTION)||LA63_0==NEW||LA63_0==THIS||LA63_0==TYPEOF||LA63_0==VOID||(LA63_0>=GET && LA63_0<=YIELD)||(LA63_0>=WXML && LA63_0<=NAMESPACE)||LA63_0==LBRACE||LA63_0==LPAREN||LA63_0==LBRACK||(LA63_0>=ADD && LA63_0<=SUB)||(LA63_0>=INC && LA63_0<=DEC)||(LA63_0>=NOT && LA63_0<=INV)||(LA63_0>=StringLiteral && LA63_0<=XmlAttribute)||LA63_0==Identifier||LA63_0==RegularExpressionLiteral||(LA63_0>=DecimalLiteral && LA63_0<=HexIntegerLiteral)||LA63_0==XMLLiteral) ) {
+            if ( ((LA63_0>=NULL && LA63_0<=FALSE)||LA63_0==DELETE||(LA63_0>=EACH && LA63_0<=FUNCTION)||LA63_0==NEW||LA63_0==THIS||LA63_0==TYPEOF||LA63_0==VOID||(LA63_0>=GET && LA63_0<=YIELD)||(LA63_0>=WXML && LA63_0<=NAMESPACE)||LA63_0==LBRACE||LA63_0==LPAREN||LA63_0==LBRACK||(LA63_0>=ADD && LA63_0<=SUB)||(LA63_0>=INC && LA63_0<=DEC)||(LA63_0>=NOT && LA63_0<=INV)||LA63_0==XMLLiteral||(LA63_0>=StringLiteral && LA63_0<=XmlAttribute)||LA63_0==Identifier||LA63_0==RegularExpressionLiteral||(LA63_0>=DecimalLiteral && LA63_0<=HexIntegerLiteral)) ) {
                 alt63=1;
             }
             switch (alt63) {
                 case 1 :
                     // JS.g:1579:13: ex1= expression
                     {
-                    pushFollow(FOLLOW_expression_in_forControlSemic5946);
+                    pushFollow(FOLLOW_expression_in_forControlSemic5945);
                     ex1=expression();
                     _fsp--;
 
@@ -8738,21 +8736,21 @@
             }
 
             SEMIC256=(Token)input.LT(1);
-            match(input,SEMIC,FOLLOW_SEMIC_in_forControlSemic5949); 
+            match(input,SEMIC,FOLLOW_SEMIC_in_forControlSemic5948); 
             stream_SEMIC.add(SEMIC256);
 
             // JS.g:1579:35: (ex2= expression )?
             int alt64=2;
             int LA64_0 = input.LA(1);
 
-            if ( ((LA64_0>=NULL && LA64_0<=FALSE)||LA64_0==DELETE||(LA64_0>=EACH && LA64_0<=FUNCTION)||LA64_0==NEW||LA64_0==THIS||LA64_0==TYPEOF||LA64_0==VOID||(LA64_0>=GET && LA64_0<=YIELD)||(LA64_0>=WXML && LA64_0<=NAMESPACE)||LA64_0==LBRACE||LA64_0==LPAREN||LA64_0==LBRACK||(LA64_0>=ADD && LA64_0<=SUB)||(LA64_0>=INC && LA64_0<=DEC)||(LA64_0>=NOT && LA64_0<=INV)||(LA64_0>=StringLiteral && LA64_0<=XmlAttribute)||LA64_0==Identifier||LA64_0==RegularExpressionLiteral||(LA64_0>=DecimalLiteral && LA64_0<=HexIntegerLiteral)||LA64_0==XMLLiteral) ) {
+            if ( ((LA64_0>=NULL && LA64_0<=FALSE)||LA64_0==DELETE||(LA64_0>=EACH && LA64_0<=FUNCTION)||LA64_0==NEW||LA64_0==THIS||LA64_0==TYPEOF||LA64_0==VOID||(LA64_0>=GET && LA64_0<=YIELD)||(LA64_0>=WXML && LA64_0<=NAMESPACE)||LA64_0==LBRACE||LA64_0==LPAREN||LA64_0==LBRACK||(LA64_0>=ADD && LA64_0<=SUB)||(LA64_0>=INC && LA64_0<=DEC)||(LA64_0>=NOT && LA64_0<=INV)||LA64_0==XMLLiteral||(LA64_0>=StringLiteral && LA64_0<=XmlAttribute)||LA64_0==Identifier||LA64_0==RegularExpressionLiteral||(LA64_0>=DecimalLiteral && LA64_0<=HexIntegerLiteral)) ) {
                 alt64=1;
             }
             switch (alt64) {
                 case 1 :
                     // JS.g:1579:35: ex2= expression
                     {
-                    pushFollow(FOLLOW_expression_in_forControlSemic5953);
+                    pushFollow(FOLLOW_expression_in_forControlSemic5952);
                     ex2=expression();
                     _fsp--;
 
@@ -8872,7 +8870,7 @@
             root_0 = (Object)adaptor.nil();
 
             CONTINUE257=(Token)input.LT(1);
-            match(input,CONTINUE,FOLLOW_CONTINUE_in_continueStatement6007); 
+            match(input,CONTINUE,FOLLOW_CONTINUE_in_continueStatement6006); 
             CONTINUE257_tree = (Object)adaptor.create(CONTINUE257);
             root_0 = (Object)adaptor.becomeRoot(CONTINUE257_tree, root_0);
 
@@ -8889,7 +8887,7 @@
                     // JS.g:1593:67: Identifier
                     {
                     Identifier258=(Token)input.LT(1);
-                    match(input,Identifier,FOLLOW_Identifier_in_continueStatement6012); 
+                    match(input,Identifier,FOLLOW_Identifier_in_continueStatement6011); 
                     Identifier258_tree = (Object)adaptor.create(Identifier258);
                     adaptor.addChild(root_0, Identifier258_tree);
 
@@ -8899,7 +8897,7 @@
 
             }
 
-            pushFollow(FOLLOW_semic_in_continueStatement6015);
+            pushFollow(FOLLOW_semic_in_continueStatement6014);
             semic259=semic();
             _fsp--;
 
@@ -8950,7 +8948,7 @@
             root_0 = (Object)adaptor.nil();
 
             BREAK260=(Token)input.LT(1);
-            match(input,BREAK,FOLLOW_BREAK_in_breakStatement6034); 
+            match(input,BREAK,FOLLOW_BREAK_in_breakStatement6033); 
             BREAK260_tree = (Object)adaptor.create(BREAK260);
             root_0 = (Object)adaptor.becomeRoot(BREAK260_tree, root_0);
 
@@ -8967,7 +8965,7 @@
                     // JS.g:1606:64: Identifier
                     {
                     Identifier261=(Token)input.LT(1);
-                    match(input,Identifier,FOLLOW_Identifier_in_breakStatement6039); 
+                    match(input,Identifier,FOLLOW_Identifier_in_breakStatement6038); 
                     Identifier261_tree = (Object)adaptor.create(Identifier261);
                     adaptor.addChild(root_0, Identifier261_tree);
 
@@ -8977,7 +8975,7 @@
 
             }
 
-            pushFollow(FOLLOW_semic_in_breakStatement6042);
+            pushFollow(FOLLOW_semic_in_breakStatement6041);
             semic262=semic();
             _fsp--;
 
@@ -9028,7 +9026,7 @@
             root_0 = (Object)adaptor.nil();
 
             RETURN263=(Token)input.LT(1);
-            match(input,RETURN,FOLLOW_RETURN_in_returnStatement6061); 
+            match(input,RETURN,FOLLOW_RETURN_in_returnStatement6060); 
             RETURN263_tree = (Object)adaptor.create(RETURN263);
             root_0 = (Object)adaptor.becomeRoot(RETURN263_tree, root_0);
 
@@ -9037,14 +9035,14 @@
             int alt67=2;
             int LA67_0 = input.LA(1);
 
-            if ( ((LA67_0>=NULL && LA67_0<=FALSE)||LA67_0==DELETE||(LA67_0>=EACH && LA67_0<=FUNCTION)||LA67_0==NEW||LA67_0==THIS||LA67_0==TYPEOF||LA67_0==VOID||(LA67_0>=GET && LA67_0<=YIELD)||(LA67_0>=WXML && LA67_0<=NAMESPACE)||LA67_0==LBRACE||LA67_0==LPAREN||LA67_0==LBRACK||(LA67_0>=ADD && LA67_0<=SUB)||(LA67_0>=INC && LA67_0<=DEC)||(LA67_0>=NOT && LA67_0<=INV)||(LA67_0>=StringLiteral && LA67_0<=XmlAttribute)||LA67_0==Identifier||LA67_0==RegularExpressionLiteral||(LA67_0>=DecimalLiteral && LA67_0<=HexIntegerLiteral)||LA67_0==XMLLiteral) ) {
+            if ( ((LA67_0>=NULL && LA67_0<=FALSE)||LA67_0==DELETE||(LA67_0>=EACH && LA67_0<=FUNCTION)||LA67_0==NEW||LA67_0==THIS||LA67_0==TYPEOF||LA67_0==VOID||(LA67_0>=GET && LA67_0<=YIELD)||(LA67_0>=WXML && LA67_0<=NAMESPACE)||LA67_0==LBRACE||LA67_0==LPAREN||LA67_0==LBRACK||(LA67_0>=ADD && LA67_0<=SUB)||(LA67_0>=INC && LA67_0<=DEC)||(LA67_0>=NOT && LA67_0<=INV)||LA67_0==XMLLiteral||(LA67_0>=StringLiteral && LA67_0<=XmlAttribute)||LA67_0==Identifier||LA67_0==RegularExpressionLiteral||(LA67_0>=DecimalLiteral && LA67_0<=HexIntegerLiteral)) ) {
                 alt67=1;
             }
             switch (alt67) {
                 case 1 :
                     // JS.g:1627:34: expression
                     {
-                    pushFollow(FOLLOW_expression_in_returnStatement6066);
+                    pushFollow(FOLLOW_expression_in_returnStatement6065);
                     expression264=expression();
                     _fsp--;
 
@@ -9055,7 +9053,7 @@
 
             }
 
-            pushFollow(FOLLOW_semic_in_returnStatement6069);
+            pushFollow(FOLLOW_semic_in_returnStatement6068);
             semic265=semic();
             _fsp--;
 
@@ -9110,20 +9108,20 @@
             root_0 = (Object)adaptor.nil();
 
             WITH266=(Token)input.LT(1);
-            match(input,WITH,FOLLOW_WITH_in_withStatement6086); 
+            match(input,WITH,FOLLOW_WITH_in_withStatement6085); 
             WITH266_tree = (Object)adaptor.create(WITH266);
             root_0 = (Object)adaptor.becomeRoot(WITH266_tree, root_0);
 
             LPAREN267=(Token)input.LT(1);
-            match(input,LPAREN,FOLLOW_LPAREN_in_withStatement6089); 
-            pushFollow(FOLLOW_expression_in_withStatement6092);
+            match(input,LPAREN,FOLLOW_LPAREN_in_withStatement6088); 
+            pushFollow(FOLLOW_expression_in_withStatement6091);
             expression268=expression();
             _fsp--;
 
             adaptor.addChild(root_0, expression268.getTree());
             RPAREN269=(Token)input.LT(1);
-            match(input,RPAREN,FOLLOW_RPAREN_in_withStatement6094); 
-            pushFollow(FOLLOW_statement_in_withStatement6097);
+            match(input,RPAREN,FOLLOW_RPAREN_in_withStatement6093); 
+            pushFollow(FOLLOW_statement_in_withStatement6096);
             statement270=statement();
             _fsp--;
 
@@ -9193,24 +9191,24 @@
             // JS.g:1647:4: SWITCH LPAREN expression RPAREN LBRACE ({...}? => defaultClause | caseClause )* RBRACE
             {
             SWITCH271=(Token)input.LT(1);
-            match(input,SWITCH,FOLLOW_SWITCH_in_switchStatement6118); 
+            match(input,SWITCH,FOLLOW_SWITCH_in_switchStatement6117); 
             stream_SWITCH.add(SWITCH271);
 
             LPAREN272=(Token)input.LT(1);
-            match(input,LPAREN,FOLLOW_LPAREN_in_switchStatement6120); 
+            match(input,LPAREN,FOLLOW_LPAREN_in_switchStatement6119); 
             stream_LPAREN.add(LPAREN272);
 
-            pushFollow(FOLLOW_expression_in_switchStatement6122);
+            pushFollow(FOLLOW_expression_in_switchStatement6121);
             expression273=expression();
             _fsp--;
 
             stream_expression.add(expression273.getTree());
             RPAREN274=(Token)input.LT(1);
-            match(input,RPAREN,FOLLOW_RPAREN_in_switchStatement6124); 
+            match(input,RPAREN,FOLLOW_RPAREN_in_switchStatement6123); 
             stream_RPAREN.add(RPAREN274);
 
             LBRACE275=(Token)input.LT(1);
-            match(input,LBRACE,FOLLOW_LBRACE_in_switchStatement6126); 
+            match(input,LBRACE,FOLLOW_LBRACE_in_switchStatement6125); 
             stream_LBRACE.add(LBRACE275);
 
             // JS.g:1647:43: ({...}? => defaultClause | caseClause )*
@@ -9234,7 +9232,7 @@
             	    if ( !( defaultClauseCount == 0 ) ) {
             	        throw new FailedPredicateException(input, "switchStatement", " defaultClauseCount == 0 ");
             	    }
-            	    pushFollow(FOLLOW_defaultClause_in_switchStatement6133);
+            	    pushFollow(FOLLOW_defaultClause_in_switchStatement6132);
             	    defaultClause276=defaultClause();
             	    _fsp--;
 
@@ -9246,7 +9244,7 @@
             	case 2 :
             	    // JS.g:1647:118: caseClause
             	    {
-            	    pushFollow(FOLLOW_caseClause_in_switchStatement6139);
+            	    pushFollow(FOLLOW_caseClause_in_switchStatement6138);
             	    caseClause277=caseClause();
             	    _fsp--;
 
@@ -9261,7 +9259,7 @@
             } while (true);
 
             RBRACE278=(Token)input.LT(1);
-            match(input,RBRACE,FOLLOW_RBRACE_in_switchStatement6144); 
+            match(input,RBRACE,FOLLOW_RBRACE_in_switchStatement6143); 
             stream_RBRACE.add(RBRACE278);
 
 
@@ -9351,17 +9349,17 @@
             root_0 = (Object)adaptor.nil();
 
             CASE279=(Token)input.LT(1);
-            match(input,CASE,FOLLOW_CASE_in_caseClause6172); 
+            match(input,CASE,FOLLOW_CASE_in_caseClause6171); 
             CASE279_tree = (Object)adaptor.create(CASE279);
             root_0 = (Object)adaptor.becomeRoot(CASE279_tree, root_0);
 
-            pushFollow(FOLLOW_expression_in_caseClause6175);
+            pushFollow(FOLLOW_expression_in_caseClause6174);
             expression280=expression();
             _fsp--;
 
             adaptor.addChild(root_0, expression280.getTree());
             COLON281=(Token)input.LT(1);
-            match(input,COLON,FOLLOW_COLON_in_caseClause6177); 
+            match(input,COLON,FOLLOW_COLON_in_caseClause6176); 
             // JS.g:1652:28: ( statement )*
             loop69:
             do {
@@ -9377,7 +9375,7 @@
 
 
                 }
-                else if ( ((LA69_0>=NULL && LA69_0<=BREAK)||LA69_0==CONTINUE||(LA69_0>=DELETE && LA69_0<=DO)||(LA69_0>=FOR && LA69_0<=IF)||(LA69_0>=NEW && LA69_0<=YIELD)||(LA69_0>=WXML && LA69_0<=NAMESPACE)||LA69_0==CONST||LA69_0==LBRACE||LA69_0==LPAREN||LA69_0==LBRACK||LA69_0==SEMIC||(LA69_0>=ADD && LA69_0<=SUB)||(LA69_0>=INC && LA69_0<=DEC)||(LA69_0>=NOT && LA69_0<=INV)||(LA69_0>=StringLiteral && LA69_0<=XmlAttribute)||LA69_0==Identifier||LA69_0==RegularExpressionLiteral||(LA69_0>=DecimalLiteral && LA69_0<=HexIntegerLiteral)||LA69_0==XMLLiteral) ) {
+                else if ( ((LA69_0>=NULL && LA69_0<=BREAK)||LA69_0==CONTINUE||(LA69_0>=DELETE && LA69_0<=DO)||(LA69_0>=FOR && LA69_0<=IF)||(LA69_0>=NEW && LA69_0<=YIELD)||(LA69_0>=WXML && LA69_0<=NAMESPACE)||LA69_0==CONST||LA69_0==LBRACE||LA69_0==LPAREN||LA69_0==LBRACK||LA69_0==SEMIC||(LA69_0>=ADD && LA69_0<=SUB)||(LA69_0>=INC && LA69_0<=DEC)||(LA69_0>=NOT && LA69_0<=INV)||LA69_0==XMLLiteral||(LA69_0>=StringLiteral && LA69_0<=XmlAttribute)||LA69_0==Identifier||LA69_0==RegularExpressionLiteral||(LA69_0>=DecimalLiteral && LA69_0<=HexIntegerLiteral)) ) {
                     alt69=1;
                 }
 
@@ -9386,7 +9384,7 @@
             	case 1 :
             	    // JS.g:1652:28: statement
             	    {
-            	    pushFollow(FOLLOW_statement_in_caseClause6180);
+            	    pushFollow(FOLLOW_statement_in_caseClause6179);
             	    statement282=statement();
             	    _fsp--;
 
@@ -9447,12 +9445,12 @@
             root_0 = (Object)adaptor.nil();
 
             DEFAULT283=(Token)input.LT(1);
-            match(input,DEFAULT,FOLLOW_DEFAULT_in_defaultClause6193); 
+            match(input,DEFAULT,FOLLOW_DEFAULT_in_defaultClause6192); 
             DEFAULT283_tree = (Object)adaptor.create(DEFAULT283);
             root_0 = (Object)adaptor.becomeRoot(DEFAULT283_tree, root_0);
 
             COLON284=(Token)input.LT(1);
-            match(input,COLON,FOLLOW_COLON_in_defaultClause6196); 
+            match(input,COLON,FOLLOW_COLON_in_defaultClause6195); 
             // JS.g:1656:20: ( statement )*
             loop70:
             do {
@@ -9468,7 +9466,7 @@
 
 
                 }
-                else if ( ((LA70_0>=NULL && LA70_0<=BREAK)||LA70_0==CONTINUE||(LA70_0>=DELETE && LA70_0<=DO)||(LA70_0>=FOR && LA70_0<=IF)||(LA70_0>=NEW && LA70_0<=YIELD)||(LA70_0>=WXML && LA70_0<=NAMESPACE)||LA70_0==CONST||LA70_0==LBRACE||LA70_0==LPAREN||LA70_0==LBRACK||LA70_0==SEMIC||(LA70_0>=ADD && LA70_0<=SUB)||(LA70_0>=INC && LA70_0<=DEC)||(LA70_0>=NOT && LA70_0<=INV)||(LA70_0>=StringLiteral && LA70_0<=XmlAttribute)||LA70_0==Identifier||LA70_0==RegularExpressionLiteral||(LA70_0>=DecimalLiteral && LA70_0<=HexIntegerLiteral)||LA70_0==XMLLiteral) ) {
+                else if ( ((LA70_0>=NULL && LA70_0<=BREAK)||LA70_0==CONTINUE||(LA70_0>=DELETE && LA70_0<=DO)||(LA70_0>=FOR && LA70_0<=IF)||(LA70_0>=NEW && LA70_0<=YIELD)||(LA70_0>=WXML && LA70_0<=NAMESPACE)||LA70_0==CONST||LA70_0==LBRACE||LA70_0==LPAREN||LA70_0==LBRACK||LA70_0==SEMIC||(LA70_0>=ADD && LA70_0<=SUB)||(LA70_0>=INC && LA70_0<=DEC)||(LA70_0>=NOT && LA70_0<=INV)||LA70_0==XMLLiteral||(LA70_0>=StringLiteral && LA70_0<=XmlAttribute)||LA70_0==Identifier||LA70_0==RegularExpressionLiteral||(LA70_0>=DecimalLiteral && LA70_0<=HexIntegerLiteral)) ) {
                     alt70=1;
                 }
 
@@ -9477,7 +9475,7 @@
             	case 1 :
             	    // JS.g:1656:20: statement
             	    {
-            	    pushFollow(FOLLOW_statement_in_defaultClause6199);
+            	    pushFollow(FOLLOW_statement_in_defaultClause6198);
             	    statement285=statement();
             	    _fsp--;
 
@@ -9537,23 +9535,23 @@
             // JS.g:1664:2: ( identifier COLON statement -> ^( LABELLED identifier statement ) )
             // JS.g:1664:4: identifier COLON statement
             {
-            pushFollow(FOLLOW_identifier_in_labelledStatement6216);
+            pushFollow(FOLLOW_identifier_in_labelledStatement6215);
             identifier286=identifier();
             _fsp--;
 
             stream_identifier.add(identifier286.getTree());
             COLON287=(Token)input.LT(1);
-            match(input,COLON,FOLLOW_COLON_in_labelledStatement6218); 
+            match(input,COLON,FOLLOW_COLON_in_labelledStatement6217); 
             stream_COLON.add(COLON287);
 
-            pushFollow(FOLLOW_statement_in_labelledStatement6220);
+            pushFollow(FOLLOW_statement_in_labelledStatement6219);
             statement288=statement();
             _fsp--;
 
             stream_statement.add(statement288.getTree());
 
             // AST REWRITE
-            // elements: statement, identifier
+            // elements: identifier, statement
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -9625,17 +9623,17 @@
             root_0 = (Object)adaptor.nil();
 
             THROW289=(Token)input.LT(1);
-            match(input,THROW,FOLLOW_THROW_in_throwStatement6251); 
+            match(input,THROW,FOLLOW_THROW_in_throwStatement6250); 
             THROW289_tree = (Object)adaptor.create(THROW289);
             root_0 = (Object)adaptor.becomeRoot(THROW289_tree, root_0);
 
              promoteEOL(null); 
-            pushFollow(FOLLOW_expression_in_throwStatement6256);
+            pushFollow(FOLLOW_expression_in_throwStatement6255);
             expression290=expression();
             _fsp--;
 
             adaptor.addChild(root_0, expression290.getTree());
-            pushFollow(FOLLOW_semic_in_throwStatement6258);
+            pushFollow(FOLLOW_semic_in_throwStatement6257);
             semic291=semic();
             _fsp--;
 
@@ -9690,11 +9688,11 @@
             root_0 = (Object)adaptor.nil();
 
             TRY292=(Token)input.LT(1);
-            match(input,TRY,FOLLOW_TRY_in_tryStatement6275); 
+            match(input,TRY,FOLLOW_TRY_in_tryStatement6274); 
             TRY292_tree = (Object)adaptor.create(TRY292);
             root_0 = (Object)adaptor.becomeRoot(TRY292_tree, root_0);
 
-            pushFollow(FOLLOW_block_in_tryStatement6278);
+            pushFollow(FOLLOW_block_in_tryStatement6277);
             block293=block();
             _fsp--;
 
@@ -9735,7 +9733,7 @@
                     	case 1 :
                     	    // JS.g:1696:17: catchClause
                     	    {
-                    	    pushFollow(FOLLOW_catchClause_in_tryStatement6282);
+                    	    pushFollow(FOLLOW_catchClause_in_tryStatement6281);
                     	    catchClause294=catchClause();
                     	    _fsp--;
 
@@ -9764,7 +9762,7 @@
                         case 1 :
                             // JS.g:1696:30: finallyClause
                             {
-                            pushFollow(FOLLOW_finallyClause_in_tryStatement6285);
+                            pushFollow(FOLLOW_finallyClause_in_tryStatement6284);
                             finallyClause295=finallyClause();
                             _fsp--;
 
@@ -9781,7 +9779,7 @@
                 case 2 :
                     // JS.g:1696:47: finallyClause
                     {
-                    pushFollow(FOLLOW_finallyClause_in_tryStatement6290);
+                    pushFollow(FOLLOW_finallyClause_in_tryStatement6289);
                     finallyClause296=finallyClause();
                     _fsp--;
 
@@ -9845,13 +9843,13 @@
             root_0 = (Object)adaptor.nil();
 
             CATCH297=(Token)input.LT(1);
-            match(input,CATCH,FOLLOW_CATCH_in_catchClause6304); 
+            match(input,CATCH,FOLLOW_CATCH_in_catchClause6303); 
             CATCH297_tree = (Object)adaptor.create(CATCH297);
             root_0 = (Object)adaptor.becomeRoot(CATCH297_tree, root_0);
 
             LPAREN298=(Token)input.LT(1);
-            match(input,LPAREN,FOLLOW_LPAREN_in_catchClause6307); 
-            pushFollow(FOLLOW_identifier_in_catchClause6310);
+            match(input,LPAREN,FOLLOW_LPAREN_in_catchClause6306); 
+            pushFollow(FOLLOW_identifier_in_catchClause6309);
             identifier299=identifier();
             _fsp--;
 
@@ -9867,7 +9865,7 @@
                 case 1 :
                     // JS.g:1700:30: catchFilter
                     {
-                    pushFollow(FOLLOW_catchFilter_in_catchClause6312);
+                    pushFollow(FOLLOW_catchFilter_in_catchClause6311);
                     catchFilter300=catchFilter();
                     _fsp--;
 
@@ -9879,8 +9877,8 @@
             }
 
             RPAREN301=(Token)input.LT(1);
-            match(input,RPAREN,FOLLOW_RPAREN_in_catchClause6315); 
-            pushFollow(FOLLOW_block_in_catchClause6318);
+            match(input,RPAREN,FOLLOW_RPAREN_in_catchClause6314); 
+            pushFollow(FOLLOW_block_in_catchClause6317);
             block302=block();
             _fsp--;
 
@@ -9930,11 +9928,11 @@
             root_0 = (Object)adaptor.nil();
 
             IF303=(Token)input.LT(1);
-            match(input,IF,FOLLOW_IF_in_catchFilter6331); 
+            match(input,IF,FOLLOW_IF_in_catchFilter6330); 
             IF303_tree = (Object)adaptor.create(IF303);
             root_0 = (Object)adaptor.becomeRoot(IF303_tree, root_0);
 
-            pushFollow(FOLLOW_instanceofExpression_in_catchFilter6334);
+            pushFollow(FOLLOW_instanceofExpression_in_catchFilter6333);
             instanceofExpression304=instanceofExpression();
             _fsp--;
 
@@ -9985,17 +9983,17 @@
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_identifier_in_instanceofExpression6349);
+            pushFollow(FOLLOW_identifier_in_instanceofExpression6348);
             identifier305=identifier();
             _fsp--;
 
             adaptor.addChild(root_0, identifier305.getTree());
             INSTANCEOF306=(Token)input.LT(1);
-            match(input,INSTANCEOF,FOLLOW_INSTANCEOF_in_instanceofExpression6351); 
+            match(input,INSTANCEOF,FOLLOW_INSTANCEOF_in_instanceofExpression6350); 
             INSTANCEOF306_tree = (Object)adaptor.create(INSTANCEOF306);
             root_0 = (Object)adaptor.becomeRoot(INSTANCEOF306_tree, root_0);
 
-            pushFollow(FOLLOW_identifier_in_instanceofExpression6354);
+            pushFollow(FOLLOW_identifier_in_instanceofExpression6353);
             identifier307=identifier();
             _fsp--;
 
@@ -10045,11 +10043,11 @@
             root_0 = (Object)adaptor.nil();
 
             FINALLY308=(Token)input.LT(1);
-            match(input,FINALLY,FOLLOW_FINALLY_in_finallyClause6367); 
+            match(input,FINALLY,FOLLOW_FINALLY_in_finallyClause6366); 
             FINALLY308_tree = (Object)adaptor.create(FINALLY308);
             root_0 = (Object)adaptor.becomeRoot(FINALLY308_tree, root_0);
 
-            pushFollow(FOLLOW_block_in_finallyClause6370);
+            pushFollow(FOLLOW_block_in_finallyClause6369);
             block309=block();
             _fsp--;
 
@@ -10104,27 +10102,27 @@
             // JS.g:1726:4: FUNCTION name= identifier formalParameterList functionBody
             {
             FUNCTION310=(Token)input.LT(1);
-            match(input,FUNCTION,FOLLOW_FUNCTION_in_functionDeclaration6391); 
+            match(input,FUNCTION,FOLLOW_FUNCTION_in_functionDeclaration6390); 
             stream_FUNCTION.add(FUNCTION310);
 
-            pushFollow(FOLLOW_identifier_in_functionDeclaration6395);
+            pushFollow(FOLLOW_identifier_in_functionDeclaration6394);
             name=identifier();
             _fsp--;
 
             stream_identifier.add(name.getTree());
-            pushFollow(FOLLOW_formalParameterList_in_functionDeclaration6397);
+            pushFollow(FOLLOW_formalParameterList_in_functionDeclaration6396);
             formalParameterList311=formalParameterList();
             _fsp--;
 
             stream_formalParameterList.add(formalParameterList311.getTree());
-            pushFollow(FOLLOW_functionBody_in_functionDeclaration6399);
+            pushFollow(FOLLOW_functionBody_in_functionDeclaration6398);
             functionBody312=functionBody();
             _fsp--;
 
             stream_functionBody.add(functionBody312.getTree());
 
             // AST REWRITE
-            // elements: FUNCTION, name, formalParameterList, functionBody
+            // elements: formalParameterList, functionBody, FUNCTION, name
             // token labels: 
             // rule labels: retval, name
             // token list labels: 
@@ -10201,7 +10199,7 @@
             // JS.g:1731:4: FUNCTION (name= identifier )? formalParameterList functionBody
             {
             FUNCTION313=(Token)input.LT(1);
-            match(input,FUNCTION,FOLLOW_FUNCTION_in_functionExpression6426); 
+            match(input,FUNCTION,FOLLOW_FUNCTION_in_functionExpression6425); 
             stream_FUNCTION.add(FUNCTION313);
 
             // JS.g:1731:17: (name= identifier )?
@@ -10215,7 +10213,7 @@
                 case 1 :
                     // JS.g:1731:17: name= identifier
                     {
-                    pushFollow(FOLLOW_identifier_in_functionExpression6430);
+                    pushFollow(FOLLOW_identifier_in_functionExpression6429);
                     name=identifier();
                     _fsp--;
 
@@ -10226,19 +10224,19 @@
 
             }
 
-            pushFollow(FOLLOW_formalParameterList_in_functionExpression6433);
+            pushFollow(FOLLOW_formalParameterList_in_functionExpression6432);
             formalParameterList314=formalParameterList();
             _fsp--;
 
             stream_formalParameterList.add(formalParameterList314.getTree());
-            pushFollow(FOLLOW_functionBody_in_functionExpression6435);
+            pushFollow(FOLLOW_functionBody_in_functionExpression6434);
             functionBody315=functionBody();
             _fsp--;
 
             stream_functionBody.add(functionBody315.getTree());
 
             // AST REWRITE
-            // elements: name, functionBody, formalParameterList, FUNCTION
+            // elements: FUNCTION, formalParameterList, name, functionBody
             // token labels: 
             // rule labels: retval, name
             // token list labels: 
@@ -10319,7 +10317,7 @@
             // JS.g:1736:4: LPAREN (args+= identifier ( COMMA args+= identifier )* )? RPAREN
             {
             LPAREN316=(Token)input.LT(1);
-            match(input,LPAREN,FOLLOW_LPAREN_in_formalParameterList6463); 
+            match(input,LPAREN,FOLLOW_LPAREN_in_formalParameterList6462); 
             stream_LPAREN.add(LPAREN316);
 
             // JS.g:1736:11: (args+= identifier ( COMMA args+= identifier )* )?
@@ -10333,7 +10331,7 @@
                 case 1 :
                     // JS.g:1736:13: args+= identifier ( COMMA args+= identifier )*
                     {
-                    pushFollow(FOLLOW_identifier_in_formalParameterList6469);
+                    pushFollow(FOLLOW_identifier_in_formalParameterList6468);
                     args=identifier();
                     _fsp--;
 
@@ -10357,10 +10355,10 @@
                     	    // JS.g:1736:32: COMMA args+= identifier
                     	    {
                     	    COMMA317=(Token)input.LT(1);
-                    	    match(input,COMMA,FOLLOW_COMMA_in_formalParameterList6473); 
+                    	    match(input,COMMA,FOLLOW_COMMA_in_formalParameterList6472); 
                     	    stream_COMMA.add(COMMA317);
 
-                    	    pushFollow(FOLLOW_identifier_in_formalParameterList6477);
+                    	    pushFollow(FOLLOW_identifier_in_formalParameterList6476);
                     	    args=identifier();
                     	    _fsp--;
 
@@ -10384,7 +10382,7 @@
             }
 
             RPAREN318=(Token)input.LT(1);
-            match(input,RPAREN,FOLLOW_RPAREN_in_formalParameterList6485); 
+            match(input,RPAREN,FOLLOW_RPAREN_in_formalParameterList6484); 
             stream_RPAREN.add(RPAREN318);
 
 
@@ -10465,7 +10463,7 @@
             // JS.g:1741:4: lb= LBRACE ( sourceElement )* RBRACE
             {
             lb=(Token)input.LT(1);
-            match(input,LBRACE,FOLLOW_LBRACE_in_functionBody6511); 
+            match(input,LBRACE,FOLLOW_LBRACE_in_functionBody6510); 
             stream_LBRACE.add(lb);
 
             // JS.g:1741:14: ( sourceElement )*
@@ -10474,7 +10472,7 @@
                 int alt78=2;
                 int LA78_0 = input.LA(1);
 
-                if ( ((LA78_0>=NULL && LA78_0<=BREAK)||(LA78_0>=CONTINUE && LA78_0<=DO)||(LA78_0>=FOR && LA78_0<=IF)||(LA78_0>=NEW && LA78_0<=YIELD)||(LA78_0>=WXML && LA78_0<=NAMESPACE)||LA78_0==CONST||LA78_0==LBRACE||LA78_0==LPAREN||LA78_0==LBRACK||LA78_0==SEMIC||(LA78_0>=ADD && LA78_0<=SUB)||(LA78_0>=INC && LA78_0<=DEC)||(LA78_0>=NOT && LA78_0<=INV)||(LA78_0>=StringLiteral && LA78_0<=XmlAttribute)||LA78_0==Identifier||LA78_0==RegularExpressionLiteral||(LA78_0>=DecimalLiteral && LA78_0<=HexIntegerLiteral)||LA78_0==XMLLiteral) ) {
+                if ( ((LA78_0>=NULL && LA78_0<=BREAK)||(LA78_0>=CONTINUE && LA78_0<=DO)||(LA78_0>=FOR && LA78_0<=IF)||(LA78_0>=NEW && LA78_0<=YIELD)||(LA78_0>=WXML && LA78_0<=NAMESPACE)||LA78_0==CONST||LA78_0==LBRACE||LA78_0==LPAREN||LA78_0==LBRACK||LA78_0==SEMIC||(LA78_0>=ADD && LA78_0<=SUB)||(LA78_0>=INC && LA78_0<=DEC)||(LA78_0>=NOT && LA78_0<=INV)||LA78_0==XMLLiteral||(LA78_0>=StringLiteral && LA78_0<=XmlAttribute)||LA78_0==Identifier||LA78_0==RegularExpressionLiteral||(LA78_0>=DecimalLiteral && LA78_0<=HexIntegerLiteral)) ) {
                     alt78=1;
                 }
 
@@ -10483,7 +10481,7 @@
             	case 1 :
             	    // JS.g:1741:14: sourceElement
             	    {
-            	    pushFollow(FOLLOW_sourceElement_in_functionBody6513);
+            	    pushFollow(FOLLOW_sourceElement_in_functionBody6512);
             	    sourceElement319=sourceElement();
             	    _fsp--;
 
@@ -10498,7 +10496,7 @@
             } while (true);
 
             RBRACE320=(Token)input.LT(1);
-            match(input,RBRACE,FOLLOW_RBRACE_in_functionBody6516); 
+            match(input,RBRACE,FOLLOW_RBRACE_in_functionBody6515); 
             stream_RBRACE.add(RBRACE320);
 
 
@@ -10585,30 +10583,30 @@
             // JS.g:1751:5: GET name= identifier LPAREN RPAREN functionBody
             {
             GET321=(Token)input.LT(1);
-            match(input,GET,FOLLOW_GET_in_getMethodDeclaration6546); 
+            match(input,GET,FOLLOW_GET_in_getMethodDeclaration6545); 
             stream_GET.add(GET321);
 
-            pushFollow(FOLLOW_identifier_in_getMethodDeclaration6550);
+            pushFollow(FOLLOW_identifier_in_getMethodDeclaration6549);
             name=identifier();
             _fsp--;
 
             stream_identifier.add(name.getTree());
             LPAREN322=(Token)input.LT(1);
-            match(input,LPAREN,FOLLOW_LPAREN_in_getMethodDeclaration6552); 
+            match(input,LPAREN,FOLLOW_LPAREN_in_getMethodDeclaration6551); 
             stream_LPAREN.add(LPAREN322);
 
             RPAREN323=(Token)input.LT(1);
-            match(input,RPAREN,FOLLOW_RPAREN_in_getMethodDeclaration6554); 
+            match(input,RPAREN,FOLLOW_RPAREN_in_getMethodDeclaration6553); 
             stream_RPAREN.add(RPAREN323);
 
-            pushFollow(FOLLOW_functionBody_in_getMethodDeclaration6556);
+            pushFollow(FOLLOW_functionBody_in_getMethodDeclaration6555);
             functionBody324=functionBody();
             _fsp--;
 
             stream_functionBody.add(functionBody324.getTree());
 
             // AST REWRITE
-            // elements: identifier, functionBody
+            // elements: functionBody, identifier
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -10688,35 +10686,35 @@
             // JS.g:1756:5: SET name= identifier LPAREN param= identifier RPAREN functionBody
             {
             SET325=(Token)input.LT(1);
-            match(input,SET,FOLLOW_SET_in_setMethodDeclaration6584); 
+            match(input,SET,FOLLOW_SET_in_setMethodDeclaration6583); 
             stream_SET.add(SET325);
 
-            pushFollow(FOLLOW_identifier_in_setMethodDeclaration6588);
+            pushFollow(FOLLOW_identifier_in_setMethodDeclaration6587);
             name=identifier();
             _fsp--;
 
             stream_identifier.add(name.getTree());
             LPAREN326=(Token)input.LT(1);
-            match(input,LPAREN,FOLLOW_LPAREN_in_setMethodDeclaration6590); 
+            match(input,LPAREN,FOLLOW_LPAREN_in_setMethodDeclaration6589); 
             stream_LPAREN.add(LPAREN326);
 
-            pushFollow(FOLLOW_identifier_in_setMethodDeclaration6594);
+            pushFollow(FOLLOW_identifier_in_setMethodDeclaration6593);
             param=identifier();
             _fsp--;
 
             stream_identifier.add(param.getTree());
             RPAREN327=(Token)input.LT(1);
-            match(input,RPAREN,FOLLOW_RPAREN_in_setMethodDeclaration6596); 
+            match(input,RPAREN,FOLLOW_RPAREN_in_setMethodDeclaration6595); 
             stream_RPAREN.add(RPAREN327);
 
-            pushFollow(FOLLOW_functionBody_in_setMethodDeclaration6598);
+            pushFollow(FOLLOW_functionBody_in_setMethodDeclaration6597);
             functionBody328=functionBody();
             _fsp--;
 
             stream_functionBody.add(functionBody328.getTree());
 
             // AST REWRITE
-            // elements: name, param, functionBody
+            // elements: functionBody, param, name
             // token labels: 
             // rule labels: retval, param, name
             // token list labels: 
@@ -10794,7 +10792,7 @@
                 int alt79=2;
                 int LA79_0 = input.LA(1);
 
-                if ( ((LA79_0>=NULL && LA79_0<=BREAK)||(LA79_0>=CONTINUE && LA79_0<=DO)||(LA79_0>=FOR && LA79_0<=IF)||(LA79_0>=NEW && LA79_0<=YIELD)||(LA79_0>=WXML && LA79_0<=NAMESPACE)||LA79_0==CONST||LA79_0==LBRACE||LA79_0==LPAREN||LA79_0==LBRACK||LA79_0==SEMIC||(LA79_0>=ADD && LA79_0<=SUB)||(LA79_0>=INC && LA79_0<=DEC)||(LA79_0>=NOT && LA79_0<=INV)||(LA79_0>=StringLiteral && LA79_0<=XmlAttribute)||LA79_0==Identifier||LA79_0==RegularExpressionLiteral||(LA79_0>=DecimalLiteral && LA79_0<=HexIntegerLiteral)||LA79_0==XMLLiteral) ) {
+                if ( ((LA79_0>=NULL && LA79_0<=BREAK)||(LA79_0>=CONTINUE && LA79_0<=DO)||(LA79_0>=FOR && LA79_0<=IF)||(LA79_0>=NEW && LA79_0<=YIELD)||(LA79_0>=WXML && LA79_0<=NAMESPACE)||LA79_0==CONST||LA79_0==LBRACE||LA79_0==LPAREN||LA79_0==LBRACK||LA79_0==SEMIC||(LA79_0>=ADD && LA79_0<=SUB)||(LA79_0>=INC && LA79_0<=DEC)||(LA79_0>=NOT && LA79_0<=INV)||LA79_0==XMLLiteral||(LA79_0>=StringLiteral && LA79_0<=XmlAttribute)||LA79_0==Identifier||LA79_0==RegularExpressionLiteral||(LA79_0>=DecimalLiteral && LA79_0<=HexIntegerLiteral)) ) {
                     alt79=1;
                 }
 
@@ -10803,7 +10801,7 @@
             	case 1 :
             	    // JS.g:1765:4: sourceElement
             	    {
-            	    pushFollow(FOLLOW_sourceElement_in_program6633);
+            	    pushFollow(FOLLOW_sourceElement_in_program6632);
             	    sourceElement329=sourceElement();
             	    _fsp--;
 
@@ -10818,7 +10816,7 @@
             } while (true);
 
             EOF330=(Token)input.LT(1);
-            match(input,EOF,FOLLOW_EOF_in_program6636); 
+            match(input,EOF,FOLLOW_EOF_in_program6635); 
 
             }
 
@@ -10878,7 +10876,7 @@
                     throw nvae;
                 }
             }
-            else if ( ((LA80_0>=NULL && LA80_0<=BREAK)||(LA80_0>=CONTINUE && LA80_0<=DO)||(LA80_0>=FOR && LA80_0<=EACH)||LA80_0==IF||(LA80_0>=NEW && LA80_0<=YIELD)||(LA80_0>=WXML && LA80_0<=NAMESPACE)||LA80_0==CONST||LA80_0==LBRACE||LA80_0==LPAREN||LA80_0==LBRACK||LA80_0==SEMIC||(LA80_0>=ADD && LA80_0<=SUB)||(LA80_0>=INC && LA80_0<=DEC)||(LA80_0>=NOT && LA80_0<=INV)||(LA80_0>=StringLiteral && LA80_0<=XmlAttribute)||LA80_0==Identifier||LA80_0==RegularExpressionLiteral||(LA80_0>=DecimalLiteral && LA80_0<=HexIntegerLiteral)||LA80_0==XMLLiteral) ) {
+            else if ( ((LA80_0>=NULL && LA80_0<=BREAK)||(LA80_0>=CONTINUE && LA80_0<=DO)||(LA80_0>=FOR && LA80_0<=EACH)||LA80_0==IF||(LA80_0>=NEW && LA80_0<=YIELD)||(LA80_0>=WXML && LA80_0<=NAMESPACE)||LA80_0==CONST||LA80_0==LBRACE||LA80_0==LPAREN||LA80_0==LBRACK||LA80_0==SEMIC||(LA80_0>=ADD && LA80_0<=SUB)||(LA80_0>=INC && LA80_0<=DEC)||(LA80_0>=NOT && LA80_0<=INV)||LA80_0==XMLLiteral||(LA80_0>=StringLiteral && LA80_0<=XmlAttribute)||LA80_0==Identifier||LA80_0==RegularExpressionLiteral||(LA80_0>=DecimalLiteral && LA80_0<=HexIntegerLiteral)) ) {
                 alt80=2;
             }
             else {
@@ -10896,7 +10894,7 @@
                     if ( !( input.LA(1) == FUNCTION ) ) {
                         throw new FailedPredicateException(input, "sourceElement", " input.LA(1) == FUNCTION ");
                     }
-                    pushFollow(FOLLOW_functionDeclaration_in_sourceElement6665);
+                    pushFollow(FOLLOW_functionDeclaration_in_sourceElement6664);
                     functionDeclaration331=functionDeclaration();
                     _fsp--;
 
@@ -10909,7 +10907,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_statement_in_sourceElement6670);
+                    pushFollow(FOLLOW_statement_in_sourceElement6669);
                     statement332=statement();
                     _fsp--;
 
@@ -10966,12 +10964,12 @@
     public static final BitSet FOLLOW_arrayLiteral_in_primaryExpression3516 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_objectLiteral_in_primaryExpression3521 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_parenExpression_in_primaryExpression3526 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LPAREN_in_parenExpression3542 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_LPAREN_in_parenExpression3542 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
     public static final BitSet FOLLOW_expression_in_parenExpression3544 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
     public static final BitSet FOLLOW_RPAREN_in_parenExpression3546 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LBRACK_in_arrayLiteral3571 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819804D40L,0x1C50600000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_LBRACK_in_arrayLiteral3571 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819804D40L,0x1C50600002000000L});
     public static final BitSet FOLLOW_arrayItem_in_arrayLiteral3575 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004800L});
-    public static final BitSet FOLLOW_COMMA_in_arrayLiteral3579 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819804D40L,0x1C50600000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_COMMA_in_arrayLiteral3579 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819804D40L,0x1C50600002000000L});
     public static final BitSet FOLLOW_arrayItem_in_arrayLiteral3581 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004800L});
     public static final BitSet FOLLOW_RBRACK_in_arrayLiteral3589 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_assignmentExpression_in_arrayItem3617 = new BitSet(new long[]{0x0000000000000002L});
@@ -10984,7 +10982,7 @@
     public static final BitSet FOLLOW_getMethodDeclaration_in_objectPropertyInitializer3699 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_setMethodDeclaration_in_objectPropertyInitializer3705 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_propertyName_in_nameValuePair3718 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
-    public static final BitSet FOLLOW_COLON_in_nameValuePair3720 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_COLON_in_nameValuePair3720 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
     public static final BitSet FOLLOW_assignmentExpression_in_nameValuePair3722 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_identifier_in_propertyName3746 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_StringLiteral_in_propertyName3751 = new BitSet(new long[]{0x0000000000000002L});
@@ -10995,21 +10993,21 @@
     public static final BitSet FOLLOW_newExpression_in_memberExpression3789 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_NEW_in_newExpression3800 = new BitSet(new long[]{0x0000006602460070L,0x0000000000000540L,0x1C50600000000000L});
     public static final BitSet FOLLOW_memberExpression_in_newExpression3803 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LPAREN_in_arguments3816 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800740L,0x1C50600000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_LPAREN_in_arguments3816 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800740L,0x1C50600002000000L});
     public static final BitSet FOLLOW_assignmentExpression_in_arguments3820 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004200L});
-    public static final BitSet FOLLOW_COMMA_in_arguments3824 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_COMMA_in_arguments3824 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
     public static final BitSet FOLLOW_assignmentExpression_in_arguments3826 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004200L});
     public static final BitSet FOLLOW_RPAREN_in_arguments3834 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_memberExpression_in_leftHandSideExpression3867 = new BitSet(new long[]{0x0000000000000002L,0xC000000000001500L});
     public static final BitSet FOLLOW_arguments_in_leftHandSideExpression3888 = new BitSet(new long[]{0x0000000000000002L,0xC000000000001500L});
-    public static final BitSet FOLLOW_LBRACK_in_leftHandSideExpression3913 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_LBRACK_in_leftHandSideExpression3913 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
     public static final BitSet FOLLOW_expression_in_leftHandSideExpression3915 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
     public static final BitSet FOLLOW_RBRACK_in_leftHandSideExpression3917 = new BitSet(new long[]{0x0000000000000002L,0xC000000000001500L});
     public static final BitSet FOLLOW_DOT_in_leftHandSideExpression3939 = new BitSet(new long[]{0x0000006600020000L,0x0000000002000100L,0x0010400000000000L});
     public static final BitSet FOLLOW_rightHandSideExpression_in_leftHandSideExpression3941 = new BitSet(new long[]{0x0000000000000002L,0xC000000000001500L});
-    public static final BitSet FOLLOW_DOTDOT_in_leftHandSideExpression3962 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_DOTDOT_in_leftHandSideExpression3962 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
     public static final BitSet FOLLOW_expression_in_leftHandSideExpression3964 = new BitSet(new long[]{0x0000000000000002L,0xC000000000001500L});
-    public static final BitSet FOLLOW_COLONCOLON_in_leftHandSideExpression3983 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_COLONCOLON_in_leftHandSideExpression3983 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
     public static final BitSet FOLLOW_expression_in_leftHandSideExpression3985 = new BitSet(new long[]{0x0000000000000002L,0xC000000000001500L});
     public static final BitSet FOLLOW_parenExpression_in_rightHandSideExpression4014 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_identifier_in_rightHandSideExpression4021 = new BitSet(new long[]{0x0000000000000002L});
@@ -11020,286 +11018,286 @@
     public static final BitSet FOLLOW_INC_in_postfixOperator4095 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_DEC_in_postfixOperator4104 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_postfixExpression_in_unaryExpression4121 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_unaryOperator_in_unaryExpression4126 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_unaryOperator_in_unaryExpression4126 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
     public static final BitSet FOLLOW_unaryExpression_in_unaryExpression4129 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_XMLLiteral_in_unaryExpression4135 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_DELETE_in_unaryOperator4147 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_VOID_in_unaryOperator4152 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_TYPEOF_in_unaryOperator4157 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_INC_in_unaryOperator4162 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_DEC_in_unaryOperator4167 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ADD_in_unaryOperator4174 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_SUB_in_unaryOperator4183 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_INV_in_unaryOperator4190 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_NOT_in_unaryOperator4195 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_YIELD_in_unaryOperator4200 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_DEFAULT_in_namespaceStatement4236 = new BitSet(new long[]{0x0000002000000000L});
-    public static final BitSet FOLLOW_WXML_in_namespaceStatement4238 = new BitSet(new long[]{0x0000004000000000L});
-    public static final BitSet FOLLOW_NAMESPACE_in_namespaceStatement4240 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
-    public static final BitSet FOLLOW_ASSIGN_in_namespaceStatement4242 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000200000000000L});
-    public static final BitSet FOLLOW_StringLiteral_in_namespaceStatement4244 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00000C0000000000L});
-    public static final BitSet FOLLOW_semic_in_namespaceStatement4246 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_unaryExpression_in_multiplicativeExpression4278 = new BitSet(new long[]{0x0000000000000002L,0x0010000006000000L});
-    public static final BitSet FOLLOW_set_in_multiplicativeExpression4282 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_unaryExpression_in_multiplicativeExpression4297 = new BitSet(new long[]{0x0000000000000002L,0x0010000006000000L});
-    public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression4315 = new BitSet(new long[]{0x0000000000000002L,0x0000000001800000L});
-    public static final BitSet FOLLOW_set_in_additiveExpression4319 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression4330 = new BitSet(new long[]{0x0000000000000002L,0x0000000001800000L});
-    public static final BitSet FOLLOW_additiveExpression_in_shiftExpression4349 = new BitSet(new long[]{0x0000000000000002L,0x00000000E0000000L});
-    public static final BitSet FOLLOW_set_in_shiftExpression4353 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_additiveExpression_in_shiftExpression4368 = new BitSet(new long[]{0x0000000000000002L,0x00000000E0000000L});
-    public static final BitSet FOLLOW_shiftExpression_in_relationalExpression4387 = new BitSet(new long[]{0x0000000000300002L,0x0000000000078000L});
-    public static final BitSet FOLLOW_set_in_relationalExpression4391 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_shiftExpression_in_relationalExpression4418 = new BitSet(new long[]{0x0000000000300002L,0x0000000000078000L});
-    public static final BitSet FOLLOW_shiftExpression_in_relationalExpressionNoIn4432 = new BitSet(new long[]{0x0000000000200002L,0x0000000000078000L});
-    public static final BitSet FOLLOW_set_in_relationalExpressionNoIn4436 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_shiftExpression_in_relationalExpressionNoIn4459 = new BitSet(new long[]{0x0000000000200002L,0x0000000000078000L});
-    public static final BitSet FOLLOW_relationalExpression_in_equalityExpression4478 = new BitSet(new long[]{0x0000000000000002L,0x0000000000780000L});
-    public static final BitSet FOLLOW_set_in_equalityExpression4482 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_relationalExpression_in_equalityExpression4501 = new BitSet(new long[]{0x0000000000000002L,0x0000000000780000L});
-    public static final BitSet FOLLOW_relationalExpressionNoIn_in_equalityExpressionNoIn4515 = new BitSet(new long[]{0x0000000000000002L,0x0000000000780000L});
-    public static final BitSet FOLLOW_set_in_equalityExpressionNoIn4519 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_relationalExpressionNoIn_in_equalityExpressionNoIn4538 = new BitSet(new long[]{0x0000000000000002L,0x0000000000780000L});
-    public static final BitSet FOLLOW_equalityExpression_in_bitwiseANDExpression4558 = new BitSet(new long[]{0x0000000000000002L,0x0000000100000000L});
-    public static final BitSet FOLLOW_AND_in_bitwiseANDExpression4562 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_equalityExpression_in_bitwiseANDExpression4565 = new BitSet(new long[]{0x0000000000000002L,0x0000000100000000L});
-    public static final BitSet FOLLOW_equalityExpressionNoIn_in_bitwiseANDExpressionNoIn4579 = new BitSet(new long[]{0x0000000000000002L,0x0000000100000000L});
-    public static final BitSet FOLLOW_AND_in_bitwiseANDExpressionNoIn4583 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_equalityExpressionNoIn_in_bitwiseANDExpressionNoIn4586 = new BitSet(new long[]{0x0000000000000002L,0x0000000100000000L});
-    public static final BitSet FOLLOW_bitwiseANDExpression_in_bitwiseXORExpression4602 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
-    public static final BitSet FOLLOW_XOR_in_bitwiseXORExpression4606 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_bitwiseANDExpression_in_bitwiseXORExpression4609 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
-    public static final BitSet FOLLOW_bitwiseANDExpressionNoIn_in_bitwiseXORExpressionNoIn4625 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
-    public static final BitSet FOLLOW_XOR_in_bitwiseXORExpressionNoIn4629 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_bitwiseANDExpressionNoIn_in_bitwiseXORExpressionNoIn4632 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
-    public static final BitSet FOLLOW_bitwiseXORExpression_in_bitwiseORExpression4647 = new BitSet(new long[]{0x0000000000000002L,0x0000000200000000L});
-    public static final BitSet FOLLOW_OR_in_bitwiseORExpression4651 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_bitwiseXORExpression_in_bitwiseORExpression4654 = new BitSet(new long[]{0x0000000000000002L,0x0000000200000000L});
-    public static final BitSet FOLLOW_bitwiseXORExpressionNoIn_in_bitwiseORExpressionNoIn4669 = new BitSet(new long[]{0x0000000000000002L,0x0000000200000000L});
-    public static final BitSet FOLLOW_OR_in_bitwiseORExpressionNoIn4673 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_bitwiseXORExpressionNoIn_in_bitwiseORExpressionNoIn4676 = new BitSet(new long[]{0x0000000000000002L,0x0000000200000000L});
-    public static final BitSet FOLLOW_bitwiseORExpression_in_logicalANDExpression4695 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L});
-    public static final BitSet FOLLOW_LAND_in_logicalANDExpression4699 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_bitwiseORExpression_in_logicalANDExpression4702 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L});
-    public static final BitSet FOLLOW_bitwiseORExpressionNoIn_in_logicalANDExpressionNoIn4716 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L});
-    public static final BitSet FOLLOW_LAND_in_logicalANDExpressionNoIn4720 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_bitwiseORExpressionNoIn_in_logicalANDExpressionNoIn4723 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L});
-    public static final BitSet FOLLOW_logicalANDExpression_in_logicalORExpression4738 = new BitSet(new long[]{0x0000000000000002L,0x0000004000000000L});
-    public static final BitSet FOLLOW_LOR_in_logicalORExpression4742 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_logicalANDExpression_in_logicalORExpression4745 = new BitSet(new long[]{0x0000000000000002L,0x0000004000000000L});
-    public static final BitSet FOLLOW_logicalANDExpressionNoIn_in_logicalORExpressionNoIn4760 = new BitSet(new long[]{0x0000000000000002L,0x0000004000000000L});
-    public static final BitSet FOLLOW_LOR_in_logicalORExpressionNoIn4764 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_logicalANDExpressionNoIn_in_logicalORExpressionNoIn4767 = new BitSet(new long[]{0x0000000000000002L,0x0000004000000000L});
-    public static final BitSet FOLLOW_logicalORExpression_in_conditionalExpression4786 = new BitSet(new long[]{0x0000000000000002L,0x0000008000000000L});
-    public static final BitSet FOLLOW_QUE_in_conditionalExpression4790 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_assignmentExpression_in_conditionalExpression4793 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
-    public static final BitSet FOLLOW_COLON_in_conditionalExpression4795 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_assignmentExpression_in_conditionalExpression4798 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_logicalORExpressionNoIn_in_conditionalExpressionNoIn4812 = new BitSet(new long[]{0x0000000000000002L,0x0000008000000000L});
-    public static final BitSet FOLLOW_QUE_in_conditionalExpressionNoIn4816 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_assignmentExpressionNoIn_in_conditionalExpressionNoIn4819 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
-    public static final BitSet FOLLOW_COLON_in_conditionalExpressionNoIn4821 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_assignmentExpressionNoIn_in_conditionalExpressionNoIn4824 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_conditionalExpression_in_assignmentExpression4852 = new BitSet(new long[]{0x0000000000000002L,0x002FFE0000000000L});
-    public static final BitSet FOLLOW_assignmentOperator_in_assignmentExpression4859 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_assignmentExpression_in_assignmentExpression4862 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_XMLLiteral_in_unaryExpression4134 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_DELETE_in_unaryOperator4146 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_VOID_in_unaryOperator4151 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_TYPEOF_in_unaryOperator4156 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_INC_in_unaryOperator4161 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_DEC_in_unaryOperator4166 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ADD_in_unaryOperator4173 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_SUB_in_unaryOperator4182 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_INV_in_unaryOperator4189 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_NOT_in_unaryOperator4194 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_YIELD_in_unaryOperator4199 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_DEFAULT_in_namespaceStatement4235 = new BitSet(new long[]{0x0000002000000000L});
+    public static final BitSet FOLLOW_WXML_in_namespaceStatement4237 = new BitSet(new long[]{0x0000004000000000L});
+    public static final BitSet FOLLOW_NAMESPACE_in_namespaceStatement4239 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
+    public static final BitSet FOLLOW_ASSIGN_in_namespaceStatement4241 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000200000000000L});
+    public static final BitSet FOLLOW_StringLiteral_in_namespaceStatement4243 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00000C0000000000L});
+    public static final BitSet FOLLOW_semic_in_namespaceStatement4245 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_unaryExpression_in_multiplicativeExpression4277 = new BitSet(new long[]{0x0000000000000002L,0x0010000006000000L});
+    public static final BitSet FOLLOW_set_in_multiplicativeExpression4281 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_unaryExpression_in_multiplicativeExpression4296 = new BitSet(new long[]{0x0000000000000002L,0x0010000006000000L});
+    public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression4314 = new BitSet(new long[]{0x0000000000000002L,0x0000000001800000L});
+    public static final BitSet FOLLOW_set_in_additiveExpression4318 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression4329 = new BitSet(new long[]{0x0000000000000002L,0x0000000001800000L});
+    public static final BitSet FOLLOW_additiveExpression_in_shiftExpression4348 = new BitSet(new long[]{0x0000000000000002L,0x00000000E0000000L});
+    public static final BitSet FOLLOW_set_in_shiftExpression4352 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_additiveExpression_in_shiftExpression4367 = new BitSet(new long[]{0x0000000000000002L,0x00000000E0000000L});
+    public static final BitSet FOLLOW_shiftExpression_in_relationalExpression4386 = new BitSet(new long[]{0x0000000000300002L,0x0000000000078000L});
+    public static final BitSet FOLLOW_set_in_relationalExpression4390 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_shiftExpression_in_relationalExpression4417 = new BitSet(new long[]{0x0000000000300002L,0x0000000000078000L});
+    public static final BitSet FOLLOW_shiftExpression_in_relationalExpressionNoIn4431 = new BitSet(new long[]{0x0000000000200002L,0x0000000000078000L});
+    public static final BitSet FOLLOW_set_in_relationalExpressionNoIn4435 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_shiftExpression_in_relationalExpressionNoIn4458 = new BitSet(new long[]{0x0000000000200002L,0x0000000000078000L});
+    public static final BitSet FOLLOW_relationalExpression_in_equalityExpression4477 = new BitSet(new long[]{0x0000000000000002L,0x0000000000780000L});
+    public static final BitSet FOLLOW_set_in_equalityExpression4481 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_relationalExpression_in_equalityExpression4500 = new BitSet(new long[]{0x0000000000000002L,0x0000000000780000L});
+    public static final BitSet FOLLOW_relationalExpressionNoIn_in_equalityExpressionNoIn4514 = new BitSet(new long[]{0x0000000000000002L,0x0000000000780000L});
+    public static final BitSet FOLLOW_set_in_equalityExpressionNoIn4518 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_relationalExpressionNoIn_in_equalityExpressionNoIn4537 = new BitSet(new long[]{0x0000000000000002L,0x0000000000780000L});
+    public static final BitSet FOLLOW_equalityExpression_in_bitwiseANDExpression4557 = new BitSet(new long[]{0x0000000000000002L,0x0000000100000000L});
+    public static final BitSet FOLLOW_AND_in_bitwiseANDExpression4561 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_equalityExpression_in_bitwiseANDExpression4564 = new BitSet(new long[]{0x0000000000000002L,0x0000000100000000L});
+    public static final BitSet FOLLOW_equalityExpressionNoIn_in_bitwiseANDExpressionNoIn4578 = new BitSet(new long[]{0x0000000000000002L,0x0000000100000000L});
+    public static final BitSet FOLLOW_AND_in_bitwiseANDExpressionNoIn4582 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_equalityExpressionNoIn_in_bitwiseANDExpressionNoIn4585 = new BitSet(new long[]{0x0000000000000002L,0x0000000100000000L});
+    public static final BitSet FOLLOW_bitwiseANDExpression_in_bitwiseXORExpression4601 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
+    public static final BitSet FOLLOW_XOR_in_bitwiseXORExpression4605 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_bitwiseANDExpression_in_bitwiseXORExpression4608 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
+    public static final BitSet FOLLOW_bitwiseANDExpressionNoIn_in_bitwiseXORExpressionNoIn4624 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
+    public static final BitSet FOLLOW_XOR_in_bitwiseXORExpressionNoIn4628 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_bitwiseANDExpressionNoIn_in_bitwiseXORExpressionNoIn4631 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
+    public static final BitSet FOLLOW_bitwiseXORExpression_in_bitwiseORExpression4646 = new BitSet(new long[]{0x0000000000000002L,0x0000000200000000L});
+    public static final BitSet FOLLOW_OR_in_bitwiseORExpression4650 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_bitwiseXORExpression_in_bitwiseORExpression4653 = new BitSet(new long[]{0x0000000000000002L,0x0000000200000000L});
+    public static final BitSet FOLLOW_bitwiseXORExpressionNoIn_in_bitwiseORExpressionNoIn4668 = new BitSet(new long[]{0x0000000000000002L,0x0000000200000000L});
+    public static final BitSet FOLLOW_OR_in_bitwiseORExpressionNoIn4672 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_bitwiseXORExpressionNoIn_in_bitwiseORExpressionNoIn4675 = new BitSet(new long[]{0x0000000000000002L,0x0000000200000000L});
+    public static final BitSet FOLLOW_bitwiseORExpression_in_logicalANDExpression4694 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L});
+    public static final BitSet FOLLOW_LAND_in_logicalANDExpression4698 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_bitwiseORExpression_in_logicalANDExpression4701 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L});
+    public static final BitSet FOLLOW_bitwiseORExpressionNoIn_in_logicalANDExpressionNoIn4715 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L});
+    public static final BitSet FOLLOW_LAND_in_logicalANDExpressionNoIn4719 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_bitwiseORExpressionNoIn_in_logicalANDExpressionNoIn4722 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L});
+    public static final BitSet FOLLOW_logicalANDExpression_in_logicalORExpression4737 = new BitSet(new long[]{0x0000000000000002L,0x0000004000000000L});
+    public static final BitSet FOLLOW_LOR_in_logicalORExpression4741 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_logicalANDExpression_in_logicalORExpression4744 = new BitSet(new long[]{0x0000000000000002L,0x0000004000000000L});
+    public static final BitSet FOLLOW_logicalANDExpressionNoIn_in_logicalORExpressionNoIn4759 = new BitSet(new long[]{0x0000000000000002L,0x0000004000000000L});
+    public static final BitSet FOLLOW_LOR_in_logicalORExpressionNoIn4763 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_logicalANDExpressionNoIn_in_logicalORExpressionNoIn4766 = new BitSet(new long[]{0x0000000000000002L,0x0000004000000000L});
+    public static final BitSet FOLLOW_logicalORExpression_in_conditionalExpression4785 = new BitSet(new long[]{0x0000000000000002L,0x0000008000000000L});
+    public static final BitSet FOLLOW_QUE_in_conditionalExpression4789 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_assignmentExpression_in_conditionalExpression4792 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
+    public static final BitSet FOLLOW_COLON_in_conditionalExpression4794 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_assignmentExpression_in_conditionalExpression4797 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_logicalORExpressionNoIn_in_conditionalExpressionNoIn4811 = new BitSet(new long[]{0x0000000000000002L,0x0000008000000000L});
+    public static final BitSet FOLLOW_QUE_in_conditionalExpressionNoIn4815 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_assignmentExpressionNoIn_in_conditionalExpressionNoIn4818 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
+    public static final BitSet FOLLOW_COLON_in_conditionalExpressionNoIn4820 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_assignmentExpressionNoIn_in_conditionalExpressionNoIn4823 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_conditionalExpression_in_assignmentExpression4851 = new BitSet(new long[]{0x0000000000000002L,0x002FFE0000000000L});
+    public static final BitSet FOLLOW_assignmentOperator_in_assignmentExpression4858 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_assignmentExpression_in_assignmentExpression4861 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_set_in_assignmentOperator0 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_conditionalExpressionNoIn_in_assignmentExpressionNoIn4940 = new BitSet(new long[]{0x0000000000000002L,0x002FFE0000000000L});
-    public static final BitSet FOLLOW_assignmentOperator_in_assignmentExpressionNoIn4947 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_assignmentExpressionNoIn_in_assignmentExpressionNoIn4950 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_assignmentExpression_in_expression4972 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L});
-    public static final BitSet FOLLOW_COMMA_in_expression4976 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_assignmentExpression_in_expression4980 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L});
-    public static final BitSet FOLLOW_assignmentExpressionNoIn_in_expressionNoIn5017 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L});
-    public static final BitSet FOLLOW_COMMA_in_expressionNoIn5021 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_assignmentExpressionNoIn_in_expressionNoIn5025 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L});
-    public static final BitSet FOLLOW_SEMIC_in_semic5076 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_EOF_in_semic5081 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RBRACE_in_semic5086 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_EOL_in_semic5093 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_MultiLineComment_in_semic5097 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_block_in_statement5126 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_statementTail_in_statement5131 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_variableStatement_in_statementTail5143 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_emptyStatement_in_statementTail5148 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_expressionStatement_in_statementTail5153 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ifStatement_in_statementTail5158 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_iterationStatement_in_statementTail5163 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_continueStatement_in_statementTail5168 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_breakStatement_in_statementTail5173 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_returnStatement_in_statementTail5178 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_withStatement_in_statementTail5183 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_labelledStatement_in_statementTail5188 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_switchStatement_in_statementTail5193 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_throwStatement_in_statementTail5198 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_tryStatement_in_statementTail5203 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_constStatement_in_statementTail5208 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_namespaceStatement_in_statementTail5213 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LBRACE_in_block5228 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x00000018198025C0L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_statement_in_block5230 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x00000018198025C0L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_RBRACE_in_block5233 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_VAR_in_variableStatement5262 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_variableDeclaration_in_variableStatement5264 = new BitSet(new long[]{0x0000000000000000L,0x0000000000006080L,0x00000C0000000000L});
-    public static final BitSet FOLLOW_COMMA_in_variableStatement5268 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_variableDeclaration_in_variableStatement5270 = new BitSet(new long[]{0x0000000000000000L,0x0000000000006080L,0x00000C0000000000L});
-    public static final BitSet FOLLOW_semic_in_variableStatement5275 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_identifier_in_variableDeclaration5298 = new BitSet(new long[]{0x0000000000000002L,0x0000020000000000L});
-    public static final BitSet FOLLOW_ASSIGN_in_variableDeclaration5302 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_assignmentExpression_in_variableDeclaration5305 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_identifier_in_variableDeclarationNoIn5320 = new BitSet(new long[]{0x0000000000000002L,0x0000020000000000L});
-    public static final BitSet FOLLOW_ASSIGN_in_variableDeclarationNoIn5324 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_assignmentExpressionNoIn_in_variableDeclarationNoIn5327 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_CONST_in_constStatement5342 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_variableDeclaration_in_constStatement5344 = new BitSet(new long[]{0x0000000000000000L,0x0000000000006080L,0x00000C0000000000L});
-    public static final BitSet FOLLOW_COMMA_in_constStatement5348 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_variableDeclaration_in_constStatement5350 = new BitSet(new long[]{0x0000000000000000L,0x0000000000006080L,0x00000C0000000000L});
-    public static final BitSet FOLLOW_semic_in_constStatement5355 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_SEMIC_in_emptyStatement5385 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_expression_in_expressionStatement5404 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00000C0000000000L});
-    public static final BitSet FOLLOW_semic_in_expressionStatement5406 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_IF_in_ifStatement5424 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_LPAREN_in_ifStatement5426 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_expression_in_ifStatement5428 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_RPAREN_in_ifStatement5430 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_statement_in_ifStatement5432 = new BitSet(new long[]{0x0000000000004002L});
-    public static final BitSet FOLLOW_ELSE_in_ifStatement5438 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_statement_in_ifStatement5440 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_doStatement_in_iterationStatement5473 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_whileStatement_in_iterationStatement5478 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_forEachStatement_in_iterationStatement5483 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_forStatement_in_iterationStatement5488 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_DO_in_doStatement5500 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_statement_in_doStatement5502 = new BitSet(new long[]{0x0000000080000000L});
-    public static final BitSet FOLLOW_WHILE_in_doStatement5504 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_LPAREN_in_doStatement5506 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_expression_in_doStatement5508 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_RPAREN_in_doStatement5510 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00000C0000000000L});
-    public static final BitSet FOLLOW_semic_in_doStatement5512 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_WHILE_in_whileStatement5537 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_LPAREN_in_whileStatement5540 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_expression_in_whileStatement5543 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_RPAREN_in_whileStatement5545 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_statement_in_whileStatement5548 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FOR_in_forEachStatement5563 = new BitSet(new long[]{0x0000000000020000L});
-    public static final BitSet FOLLOW_EACH_in_forEachStatement5565 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_LPAREN_in_forEachStatement5567 = new BitSet(new long[]{0x0000006E72461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_forEachControl_in_forEachStatement5569 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_RPAREN_in_forEachStatement5571 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_statement_in_forEachStatement5573 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_forControlVar_in_forEachControl5600 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_forControlExpression_in_forEachControl5606 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FOR_in_forStatement5618 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_LPAREN_in_forStatement5621 = new BitSet(new long[]{0x0000006E72461070L,0x0000001819802540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_forControl_in_forStatement5624 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_RPAREN_in_forStatement5626 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_statement_in_forStatement5629 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_forControlVar_in_forControl5640 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_forControlExpression_in_forControl5645 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_forControlSemic_in_forControl5650 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_VAR_in_forControlVar5661 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_variableDeclarationNoIn_in_forControlVar5663 = new BitSet(new long[]{0x0000000000100000L,0x0000000000006000L});
-    public static final BitSet FOLLOW_IN_in_forControlVar5675 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_expression_in_forControlVar5677 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_COMMA_in_forControlVar5723 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_variableDeclarationNoIn_in_forControlVar5725 = new BitSet(new long[]{0x0000000000000000L,0x0000000000006000L});
-    public static final BitSet FOLLOW_SEMIC_in_forControlVar5730 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819802540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_expression_in_forControlVar5734 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
-    public static final BitSet FOLLOW_SEMIC_in_forControlVar5737 = new BitSet(new long[]{0x0000006E52461072L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_expression_in_forControlVar5741 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_expressionNoIn_in_forControlExpression5807 = new BitSet(new long[]{0x0000000000100000L,0x0000000000002000L});
-    public static final BitSet FOLLOW_IN_in_forControlExpression5822 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_expression_in_forControlExpression5826 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_SEMIC_in_forControlExpression5872 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819802540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_expression_in_forControlExpression5876 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
-    public static final BitSet FOLLOW_SEMIC_in_forControlExpression5879 = new BitSet(new long[]{0x0000006E52461072L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_expression_in_forControlExpression5883 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_SEMIC_in_forControlSemic5942 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819802540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_expression_in_forControlSemic5946 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
-    public static final BitSet FOLLOW_SEMIC_in_forControlSemic5949 = new BitSet(new long[]{0x0000006E52461072L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_expression_in_forControlSemic5953 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_CONTINUE_in_continueStatement6007 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00100C0000000000L});
-    public static final BitSet FOLLOW_Identifier_in_continueStatement6012 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00000C0000000000L});
-    public static final BitSet FOLLOW_semic_in_continueStatement6015 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_BREAK_in_breakStatement6034 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00100C0000000000L});
-    public static final BitSet FOLLOW_Identifier_in_breakStatement6039 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00000C0000000000L});
-    public static final BitSet FOLLOW_semic_in_breakStatement6042 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RETURN_in_returnStatement6061 = new BitSet(new long[]{0x0000006E52461070L,0x00000018198025C0L,0x1C506C0000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_expression_in_returnStatement6066 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00000C0000000000L});
-    public static final BitSet FOLLOW_semic_in_returnStatement6069 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_WITH_in_withStatement6086 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_LPAREN_in_withStatement6089 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_expression_in_withStatement6092 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_RPAREN_in_withStatement6094 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_statement_in_withStatement6097 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_SWITCH_in_switchStatement6118 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_LPAREN_in_switchStatement6120 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_expression_in_switchStatement6122 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_RPAREN_in_switchStatement6124 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_LBRACE_in_switchStatement6126 = new BitSet(new long[]{0x0000000000000900L,0x0000000000000080L});
-    public static final BitSet FOLLOW_defaultClause_in_switchStatement6133 = new BitSet(new long[]{0x0000000000000900L,0x0000000000000080L});
-    public static final BitSet FOLLOW_caseClause_in_switchStatement6139 = new BitSet(new long[]{0x0000000000000900L,0x0000000000000080L});
-    public static final BitSet FOLLOW_RBRACE_in_switchStatement6144 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_CASE_in_caseClause6172 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_expression_in_caseClause6175 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
-    public static final BitSet FOLLOW_COLON_in_caseClause6177 = new BitSet(new long[]{0x0000106FFFCF3CF2L,0x0000001819802540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_statement_in_caseClause6180 = new BitSet(new long[]{0x0000106FFFCF3CF2L,0x0000001819802540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_DEFAULT_in_defaultClause6193 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
-    public static final BitSet FOLLOW_COLON_in_defaultClause6196 = new BitSet(new long[]{0x0000106FFFCF3CF2L,0x0000001819802540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_statement_in_defaultClause6199 = new BitSet(new long[]{0x0000106FFFCF3CF2L,0x0000001819802540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_identifier_in_labelledStatement6216 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
-    public static final BitSet FOLLOW_COLON_in_labelledStatement6218 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_statement_in_labelledStatement6220 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_THROW_in_throwStatement6251 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_expression_in_throwStatement6256 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00000C0000000000L});
-    public static final BitSet FOLLOW_semic_in_throwStatement6258 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_TRY_in_tryStatement6275 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_block_in_tryStatement6278 = new BitSet(new long[]{0x0000000000008200L});
-    public static final BitSet FOLLOW_catchClause_in_tryStatement6282 = new BitSet(new long[]{0x0000000000008202L});
-    public static final BitSet FOLLOW_finallyClause_in_tryStatement6285 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_finallyClause_in_tryStatement6290 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_CATCH_in_catchClause6304 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_LPAREN_in_catchClause6307 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_identifier_in_catchClause6310 = new BitSet(new long[]{0x0000000000080000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_catchFilter_in_catchClause6312 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_RPAREN_in_catchClause6315 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_block_in_catchClause6318 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_IF_in_catchFilter6331 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_instanceofExpression_in_catchFilter6334 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_identifier_in_instanceofExpression6349 = new BitSet(new long[]{0x0000000000200000L});
-    public static final BitSet FOLLOW_INSTANCEOF_in_instanceofExpression6351 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_identifier_in_instanceofExpression6354 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FINALLY_in_finallyClause6367 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_block_in_finallyClause6370 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FUNCTION_in_functionDeclaration6391 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_identifier_in_functionDeclaration6395 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_formalParameterList_in_functionDeclaration6397 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_functionBody_in_functionDeclaration6399 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FUNCTION_in_functionExpression6426 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000100L,0x0010000000000000L});
-    public static final BitSet FOLLOW_identifier_in_functionExpression6430 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_formalParameterList_in_functionExpression6433 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_functionBody_in_functionExpression6435 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LPAREN_in_formalParameterList6463 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000200L,0x0010000000000000L});
-    public static final BitSet FOLLOW_identifier_in_formalParameterList6469 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004200L});
-    public static final BitSet FOLLOW_COMMA_in_formalParameterList6473 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_identifier_in_formalParameterList6477 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004200L});
-    public static final BitSet FOLLOW_RPAREN_in_formalParameterList6485 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LBRACE_in_functionBody6511 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x00000018198025C0L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_sourceElement_in_functionBody6513 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x00000018198025C0L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_RBRACE_in_functionBody6516 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_GET_in_getMethodDeclaration6546 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_identifier_in_getMethodDeclaration6550 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_LPAREN_in_getMethodDeclaration6552 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_RPAREN_in_getMethodDeclaration6554 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_functionBody_in_getMethodDeclaration6556 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_SET_in_setMethodDeclaration6584 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_identifier_in_setMethodDeclaration6588 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_LPAREN_in_setMethodDeclaration6590 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_identifier_in_setMethodDeclaration6594 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_RPAREN_in_setMethodDeclaration6596 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_functionBody_in_setMethodDeclaration6598 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_sourceElement_in_program6633 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_EOF_in_program6636 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_functionDeclaration_in_sourceElement6665 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_statement_in_sourceElement6670 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_conditionalExpressionNoIn_in_assignmentExpressionNoIn4939 = new BitSet(new long[]{0x0000000000000002L,0x002FFE0000000000L});
+    public static final BitSet FOLLOW_assignmentOperator_in_assignmentExpressionNoIn4946 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_assignmentExpressionNoIn_in_assignmentExpressionNoIn4949 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_assignmentExpression_in_expression4971 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L});
+    public static final BitSet FOLLOW_COMMA_in_expression4975 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_assignmentExpression_in_expression4979 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L});
+    public static final BitSet FOLLOW_assignmentExpressionNoIn_in_expressionNoIn5016 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L});
+    public static final BitSet FOLLOW_COMMA_in_expressionNoIn5020 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_assignmentExpressionNoIn_in_expressionNoIn5024 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L});
+    public static final BitSet FOLLOW_SEMIC_in_semic5075 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_EOF_in_semic5080 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RBRACE_in_semic5085 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_EOL_in_semic5092 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_MultiLineComment_in_semic5096 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_block_in_statement5125 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_statementTail_in_statement5130 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_variableStatement_in_statementTail5142 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_emptyStatement_in_statementTail5147 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_expressionStatement_in_statementTail5152 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ifStatement_in_statementTail5157 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_iterationStatement_in_statementTail5162 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_continueStatement_in_statementTail5167 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_breakStatement_in_statementTail5172 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_returnStatement_in_statementTail5177 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_withStatement_in_statementTail5182 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_labelledStatement_in_statementTail5187 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_switchStatement_in_statementTail5192 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_throwStatement_in_statementTail5197 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_tryStatement_in_statementTail5202 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_constStatement_in_statementTail5207 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_namespaceStatement_in_statementTail5212 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LBRACE_in_block5227 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x00000018198025C0L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_statement_in_block5229 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x00000018198025C0L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_RBRACE_in_block5232 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_VAR_in_variableStatement5261 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_variableDeclaration_in_variableStatement5263 = new BitSet(new long[]{0x0000000000000000L,0x0000000000006080L,0x00000C0000000000L});
+    public static final BitSet FOLLOW_COMMA_in_variableStatement5267 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_variableDeclaration_in_variableStatement5269 = new BitSet(new long[]{0x0000000000000000L,0x0000000000006080L,0x00000C0000000000L});
+    public static final BitSet FOLLOW_semic_in_variableStatement5274 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_identifier_in_variableDeclaration5297 = new BitSet(new long[]{0x0000000000000002L,0x0000020000000000L});
+    public static final BitSet FOLLOW_ASSIGN_in_variableDeclaration5301 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_assignmentExpression_in_variableDeclaration5304 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_identifier_in_variableDeclarationNoIn5319 = new BitSet(new long[]{0x0000000000000002L,0x0000020000000000L});
+    public static final BitSet FOLLOW_ASSIGN_in_variableDeclarationNoIn5323 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_assignmentExpressionNoIn_in_variableDeclarationNoIn5326 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_CONST_in_constStatement5341 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_variableDeclaration_in_constStatement5343 = new BitSet(new long[]{0x0000000000000000L,0x0000000000006080L,0x00000C0000000000L});
+    public static final BitSet FOLLOW_COMMA_in_constStatement5347 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_variableDeclaration_in_constStatement5349 = new BitSet(new long[]{0x0000000000000000L,0x0000000000006080L,0x00000C0000000000L});
+    public static final BitSet FOLLOW_semic_in_constStatement5354 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_SEMIC_in_emptyStatement5384 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_expression_in_expressionStatement5403 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00000C0000000000L});
+    public static final BitSet FOLLOW_semic_in_expressionStatement5405 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_IF_in_ifStatement5423 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_LPAREN_in_ifStatement5425 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_expression_in_ifStatement5427 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_RPAREN_in_ifStatement5429 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_statement_in_ifStatement5431 = new BitSet(new long[]{0x0000000000004002L});
+    public static final BitSet FOLLOW_ELSE_in_ifStatement5437 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_statement_in_ifStatement5439 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_doStatement_in_iterationStatement5472 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_whileStatement_in_iterationStatement5477 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_forEachStatement_in_iterationStatement5482 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_forStatement_in_iterationStatement5487 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_DO_in_doStatement5499 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_statement_in_doStatement5501 = new BitSet(new long[]{0x0000000080000000L});
+    public static final BitSet FOLLOW_WHILE_in_doStatement5503 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_LPAREN_in_doStatement5505 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_expression_in_doStatement5507 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_RPAREN_in_doStatement5509 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00000C0000000000L});
+    public static final BitSet FOLLOW_semic_in_doStatement5511 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_WHILE_in_whileStatement5536 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_LPAREN_in_whileStatement5539 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_expression_in_whileStatement5542 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_RPAREN_in_whileStatement5544 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_statement_in_whileStatement5547 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FOR_in_forEachStatement5562 = new BitSet(new long[]{0x0000000000020000L});
+    public static final BitSet FOLLOW_EACH_in_forEachStatement5564 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_LPAREN_in_forEachStatement5566 = new BitSet(new long[]{0x0000006E72461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_forEachControl_in_forEachStatement5568 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_RPAREN_in_forEachStatement5570 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_statement_in_forEachStatement5572 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_forControlVar_in_forEachControl5599 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_forControlExpression_in_forEachControl5605 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FOR_in_forStatement5617 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_LPAREN_in_forStatement5620 = new BitSet(new long[]{0x0000006E72461070L,0x0000001819802540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_forControl_in_forStatement5623 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_RPAREN_in_forStatement5625 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_statement_in_forStatement5628 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_forControlVar_in_forControl5639 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_forControlExpression_in_forControl5644 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_forControlSemic_in_forControl5649 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_VAR_in_forControlVar5660 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_variableDeclarationNoIn_in_forControlVar5662 = new BitSet(new long[]{0x0000000000100000L,0x0000000000006000L});
+    public static final BitSet FOLLOW_IN_in_forControlVar5674 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_expression_in_forControlVar5676 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_COMMA_in_forControlVar5722 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_variableDeclarationNoIn_in_forControlVar5724 = new BitSet(new long[]{0x0000000000000000L,0x0000000000006000L});
+    public static final BitSet FOLLOW_SEMIC_in_forControlVar5729 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819802540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_expression_in_forControlVar5733 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
+    public static final BitSet FOLLOW_SEMIC_in_forControlVar5736 = new BitSet(new long[]{0x0000006E52461072L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_expression_in_forControlVar5740 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_expressionNoIn_in_forControlExpression5806 = new BitSet(new long[]{0x0000000000100000L,0x0000000000002000L});
+    public static final BitSet FOLLOW_IN_in_forControlExpression5821 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_expression_in_forControlExpression5825 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_SEMIC_in_forControlExpression5871 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819802540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_expression_in_forControlExpression5875 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
+    public static final BitSet FOLLOW_SEMIC_in_forControlExpression5878 = new BitSet(new long[]{0x0000006E52461072L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_expression_in_forControlExpression5882 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_SEMIC_in_forControlSemic5941 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819802540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_expression_in_forControlSemic5945 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
+    public static final BitSet FOLLOW_SEMIC_in_forControlSemic5948 = new BitSet(new long[]{0x0000006E52461072L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_expression_in_forControlSemic5952 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_CONTINUE_in_continueStatement6006 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00100C0000000000L});
+    public static final BitSet FOLLOW_Identifier_in_continueStatement6011 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00000C0000000000L});
+    public static final BitSet FOLLOW_semic_in_continueStatement6014 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_BREAK_in_breakStatement6033 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00100C0000000000L});
+    public static final BitSet FOLLOW_Identifier_in_breakStatement6038 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00000C0000000000L});
+    public static final BitSet FOLLOW_semic_in_breakStatement6041 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RETURN_in_returnStatement6060 = new BitSet(new long[]{0x0000006E52461070L,0x00000018198025C0L,0x1C506C0002000000L});
+    public static final BitSet FOLLOW_expression_in_returnStatement6065 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00000C0000000000L});
+    public static final BitSet FOLLOW_semic_in_returnStatement6068 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_WITH_in_withStatement6085 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_LPAREN_in_withStatement6088 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_expression_in_withStatement6091 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_RPAREN_in_withStatement6093 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_statement_in_withStatement6096 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_SWITCH_in_switchStatement6117 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_LPAREN_in_switchStatement6119 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_expression_in_switchStatement6121 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_RPAREN_in_switchStatement6123 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_LBRACE_in_switchStatement6125 = new BitSet(new long[]{0x0000000000000900L,0x0000000000000080L});
+    public static final BitSet FOLLOW_defaultClause_in_switchStatement6132 = new BitSet(new long[]{0x0000000000000900L,0x0000000000000080L});
+    public static final BitSet FOLLOW_caseClause_in_switchStatement6138 = new BitSet(new long[]{0x0000000000000900L,0x0000000000000080L});
+    public static final BitSet FOLLOW_RBRACE_in_switchStatement6143 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_CASE_in_caseClause6171 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_expression_in_caseClause6174 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
+    public static final BitSet FOLLOW_COLON_in_caseClause6176 = new BitSet(new long[]{0x0000106FFFCF3CF2L,0x0000001819802540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_statement_in_caseClause6179 = new BitSet(new long[]{0x0000106FFFCF3CF2L,0x0000001819802540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_DEFAULT_in_defaultClause6192 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
+    public static final BitSet FOLLOW_COLON_in_defaultClause6195 = new BitSet(new long[]{0x0000106FFFCF3CF2L,0x0000001819802540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_statement_in_defaultClause6198 = new BitSet(new long[]{0x0000106FFFCF3CF2L,0x0000001819802540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_identifier_in_labelledStatement6215 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
+    public static final BitSet FOLLOW_COLON_in_labelledStatement6217 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_statement_in_labelledStatement6219 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_THROW_in_throwStatement6250 = new BitSet(new long[]{0x0000006E52461070L,0x0000001819800540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_expression_in_throwStatement6255 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002080L,0x00000C0000000000L});
+    public static final BitSet FOLLOW_semic_in_throwStatement6257 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_TRY_in_tryStatement6274 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_block_in_tryStatement6277 = new BitSet(new long[]{0x0000000000008200L});
+    public static final BitSet FOLLOW_catchClause_in_tryStatement6281 = new BitSet(new long[]{0x0000000000008202L});
+    public static final BitSet FOLLOW_finallyClause_in_tryStatement6284 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_finallyClause_in_tryStatement6289 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_CATCH_in_catchClause6303 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_LPAREN_in_catchClause6306 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_identifier_in_catchClause6309 = new BitSet(new long[]{0x0000000000080000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_catchFilter_in_catchClause6311 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_RPAREN_in_catchClause6314 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_block_in_catchClause6317 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_IF_in_catchFilter6330 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_instanceofExpression_in_catchFilter6333 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_identifier_in_instanceofExpression6348 = new BitSet(new long[]{0x0000000000200000L});
+    public static final BitSet FOLLOW_INSTANCEOF_in_instanceofExpression6350 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_identifier_in_instanceofExpression6353 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FINALLY_in_finallyClause6366 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_block_in_finallyClause6369 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FUNCTION_in_functionDeclaration6390 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_identifier_in_functionDeclaration6394 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_formalParameterList_in_functionDeclaration6396 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_functionBody_in_functionDeclaration6398 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FUNCTION_in_functionExpression6425 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000100L,0x0010000000000000L});
+    public static final BitSet FOLLOW_identifier_in_functionExpression6429 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_formalParameterList_in_functionExpression6432 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_functionBody_in_functionExpression6434 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LPAREN_in_formalParameterList6462 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000200L,0x0010000000000000L});
+    public static final BitSet FOLLOW_identifier_in_formalParameterList6468 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004200L});
+    public static final BitSet FOLLOW_COMMA_in_formalParameterList6472 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_identifier_in_formalParameterList6476 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004200L});
+    public static final BitSet FOLLOW_RPAREN_in_formalParameterList6484 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LBRACE_in_functionBody6510 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x00000018198025C0L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_sourceElement_in_functionBody6512 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x00000018198025C0L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_RBRACE_in_functionBody6515 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_GET_in_getMethodDeclaration6545 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_identifier_in_getMethodDeclaration6549 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_LPAREN_in_getMethodDeclaration6551 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_RPAREN_in_getMethodDeclaration6553 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_functionBody_in_getMethodDeclaration6555 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_SET_in_setMethodDeclaration6583 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_identifier_in_setMethodDeclaration6587 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_LPAREN_in_setMethodDeclaration6589 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_identifier_in_setMethodDeclaration6593 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_RPAREN_in_setMethodDeclaration6595 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_functionBody_in_setMethodDeclaration6597 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_sourceElement_in_program6632 = new BitSet(new long[]{0x0000106FFFCF3CF0L,0x0000001819802540L,0x1C50600002000000L});
+    public static final BitSet FOLLOW_EOF_in_program6635 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_functionDeclaration_in_sourceElement6664 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_statement_in_sourceElement6669 = new BitSet(new long[]{0x0000000000000002L});
 
 }
\ No newline at end of file