blob: 73f7ce1af81db6a059a5abf92865e236f91e423b [file] [log] [blame]
// $ANTLR 3.0.1 JS.g 2009-09-11 10:55:00
package org.eclipse.dltk.javascript.parser;
import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;
import org.antlr.runtime.tree.*;
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", "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;
public static final int SHR=94;
public static final int VT=158;
public static final int RegularExpressionChar=197;
public static final int CDATA=36;
public static final int XRCLOSE=121;
public static final int LOCALNAME=134;
public static final int MOD=90;
public static final int SHL=93;
public static final int CONST=44;
public static final int XHOPEN=123;
public static final int DO=13;
public static final int DQUOTE=155;
public static final int LineTerminatorChar=168;
public static final int NOT=99;
public static final int EOF=-1;
public static final int CEXPR=136;
public static final int DIVASS=117;
public static final int BYINDEX=132;
public static final int INC=91;
public static final int RPAREN=73;
public static final int FINAL=50;
public static final int FORSTEP=139;
public static final int IMPORT=54;
public static final int EOL=170;
public static final int XLCLOSE=120;
public static final int PropertyIdentifierSymbols=181;
public static final int OctalDigit=183;
public static final int RETURN=23;
public static final int THIS=25;
public static final int ARGS=128;
public static final int GET=33;
public static final int WhiteSpace=163;
public static final int EXPORT=48;
public static final int EQ=83;
public static final int GOTO=52;
public static final int XORASS=115;
public static final int SHU=95;
public static final int RBRACK=75;
public static final int RBRACE=71;
public static final int STATIC=64;
public static final int INV=100;
public static final int ELSE=14;
public static final int NATIVE=58;
public static final int INT=55;
public static final int DEFAULT_XML_NAMESPACE=143;
public static final int FF=159;
public static final int OctalEscapeSequence=191;
public static final int RegularExpressionFirstChar=196;
public static final int TYPEOF=28;
public static final int GT=80;
public static final int CALL=135;
public static final int CharacterEscapeSequence=189;
public static final int LAND=101;
public static final int PINC=151;
public static final int PROTECTED=61;
public static final int LBRACK=74;
public static final int LBRACE=70;
public static final int SUB=88;
public static final int RegularExpressionLiteral=182;
public static final int FLOAT=51;
public static final int DecimalIntegerLiteral=185;
public static final int HexDigit=175;
public static final int LPAREN=72;
public static final int AT=125;
public static final int IMPLEMENTS=53;
public static final int CDATAOPEN=122;
public static final int YIELD=35;
public static final int XCCLOSE=119;
public static final int SHRASS=111;
public static final int PS=167;
public static final int MultiLineComment=171;
public static final int ADD=87;
public static final int ZeroToThree=190;
public static final int ITEM=144;
public static final int XMLLiteral=153;
public static final int UnicodeEscapeSequence=193;
public static final int SHUASS=112;
public static final int SHORT=63;
public static final int SET=34;
public static final int INSTANCEOF=21;
public static final int SQUOTE=156;
public static final int SAME=85;
public static final int XHCLOSE=124;
public static final int COLON=104;
public static final int StringLiteral=173;
public static final int PAREXPR=149;
public static final int ENUM=47;
public static final int HexIntegerLiteral=188;
public static final int NBSP=161;
public static final int SP=160;
public static final int BLOCK=130;
public static final int LineTerminator=169;
public static final int INTERFACE=56;
public static final int DIV=116;
public static final int LONG=57;
public static final int CR=165;
public static final int PUBLIC=62;
public static final int LOR=102;
public static final int LT=79;
public static final int WHILE=31;
public static final int BackslashSequence=195;
public static final int LS=166;
public static final int CASE=8;
public static final int NEW=22;
public static final int CHAR=42;
public static final int DecimalDigit=177;
public static final int BYFIELD=131;
public static final int BREAK=7;
public static final int Identifier=180;
public static final int WXML=37;
public static final int POS=152;
public static final int DOUBLE=46;
public static final int ExponentPart=184;
public static final int VAR=29;
public static final int VOID=30;
public static final int SUPER=65;
public static final int EACH=17;
public static final int LABELLED=145;
public static final int ADDASS=106;
public static final int ARRAY=129;
public static final int PRIVATE=60;
public static final int SWITCH=24;
public static final int NULL=4;
public static final int THROWS=67;
public static final int DELETE=12;
public static final int XCOPEN=118;
public static final int MUL=89;
public static final int IdentifierStartASCII=176;
public static final int TRY=27;
public static final int NAMESPACE=38;
public static final int SHLASS=110;
public static final int COLONCOLON=127;
public static final int USP=162;
public static final int ANDASS=113;
public static final int IdentifierNameASCIIStart=179;
public static final int QUE=103;
public static final int OR=97;
public static final int SETTER=142;
public static final int DEBUGGER=45;
public static final int FOREACH=140;
public static final int PDEC=150;
public static final int CATCH=9;
public static final int FALSE=6;
public static final int EscapeSequence=194;
public static final int THROW=26;
public static final int MULASS=108;
public static final int XmlAttribute=174;
public static final int DEC=92;
public static final int OctalIntegerLiteral=187;
public static final int CLASS=43;
public static final int HexEscapeSequence=192;
public static final int ORASS=114;
public static final int NAMEDVALUE=146;
public static final int SingleLineComment=172;
public static final int GTE=82;
public static final int FOR=16;
public static final int DOTDOT=126;
public static final int ABSTRACT=39;
public static final int AND=96;
public static final int LTE=81;
public static final int IF=19;
public static final int SUBASS=107;
public static final int SYNCHRONIZED=66;
public static final int BOOLEAN=40;
public static final int EXPR=137;
public static final int IN=20;
public static final int CONTINUE=10;
public static final int OBJECT=148;
public static final int COMMA=78;
public static final int TRANSIENT=68;
public static final int FORITER=138;
public static final int MODASS=109;
public static final int DOT=76;
public static final int IdentifierPart=178;
public static final int WITH=32;
public static final int BYTE=41;
public static final int XOR=98;
public static final int VOLATILE=69;
public static final int GETTER=141;
public static final int NSAME=86;
public static final int DEFAULT=11;
public static final int ALLCHILDREN=133;
public static final int TAB=157;
public static final int DecimalLiteral=186;
public static final int TRUE=5;
public static final int NEQ=84;
public static final int FINALLY=15;
public static final int NEG=147;
public static final int ASSIGN=105;
public static final int SEMIC=77;
public static final int EXTENDS=49;
public static final int BSLASH=154;
public static final int LF=164;
public JSParser(TokenStream input) {
super(input);
}
protected TreeAdaptor adaptor = new CommonTreeAdaptor();
public void setTreeAdaptor(TreeAdaptor adaptor) {
this.adaptor = adaptor;
}
public TreeAdaptor getTreeAdaptor() {
return adaptor;
}
public String[] getTokenNames() { return tokenNames; }
public String getGrammarFileName() { return "JS.g"; }
private final boolean isLeftHandSideAssign(RuleReturnScope lhs, Object[] cached)
{
if (cached[0] != null)
{
return ((Boolean)cached[0]).booleanValue();
}
boolean result;
if (isLeftHandSideExpression(lhs))
{
switch (input.LA(1))
{
case ASSIGN:
case MULASS:
case DIVASS:
case MODASS:
case ADDASS:
case SUBASS:
case SHLASS:
case SHRASS:
case SHUASS:
case ANDASS:
case XORASS:
case ORASS:
result = true;
break;
default:
result = false;
break;
}
}
else
{
result = false;
}
cached[0] = new Boolean(result);
return result;
}
private final static boolean isLeftHandSideExpression(RuleReturnScope lhs)
{
if (lhs.getTree() == null) // e.g. during backtracking
{
return true;
}
else
{
if (JSLexer.isIdentifierKeyword(((Tree)lhs.getTree()).getType())) {
return true;
}
switch (((Tree)lhs.getTree()).getType())
{
// primaryExpression
case THIS:
case Identifier:
case XmlAttribute:
case NULL:
case TRUE:
case FALSE:
case DecimalLiteral:
case OctalIntegerLiteral:
case HexIntegerLiteral:
case StringLiteral:
case RegularExpressionLiteral:
case XMLLiteral:
case ARRAY:
case OBJECT:
case PAREXPR:
// functionExpression
case FUNCTION:
// newExpression
case NEW:
// leftHandSideExpression
case CALL:
case BYFIELD:
case BYINDEX:
return true;
default:
return false;
}
}
}
private final boolean isLeftHandSideIn(RuleReturnScope lhs, Object[] cached)
{
if (cached[0] != null)
{
return ((Boolean)cached[0]).booleanValue();
}
boolean result = isLeftHandSideExpression(lhs) && (input.LA(1) == IN);
cached[0] = new Boolean(result);
return result;
}
private final void promoteEOL(ParserRuleReturnScope rule)
{
// Get current token and its type (the possibly offending token).
Token lt = input.LT(1);
int la = lt.getType();
// We only need to promote an EOL when the current token is offending (not a SEMIC, EOF, RBRACE, EOL or MultiLineComment).
// EOL and MultiLineComment are not offending as they're already promoted in a previous call to this method.
// Promoting an EOL means switching it from off channel to on channel.
// A MultiLineComment gets promoted when it contains an EOL.
if (!(la == SEMIC || la == EOF || la == RBRACE || la == EOL || la == MultiLineComment))
{
// Start on the possition before the current token and scan backwards off channel tokens until the previous on channel token.
for (int ix = lt.getTokenIndex() - 1; ix > 0; ix--)
{
lt = input.get(ix);
if (lt.getChannel() == Token.DEFAULT_CHANNEL)
{
// On channel token found: stop scanning.
break;
}
else if (lt.getType() == EOL || (lt.getType() == MultiLineComment && lt.getText().matches("/.*\r\n|\r|\n")))
{
// We found our EOL: promote the token to on channel, position the input on it and reset the rule start.
lt.setChannel(Token.DEFAULT_CHANNEL);
input.seek(lt.getTokenIndex());
if (rule != null)
{
rule.start = lt;
}
break;
}
}
}
}
public static class token_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start token
// JS.g:614:1: token : ( reservedWord | identifier | punctuator | numericLiteral | StringLiteral | XmlAttribute );
public final token_return token() throws RecognitionException {
token_return retval = new token_return();
retval.start = input.LT(1);
Object root_0 = null;
Token StringLiteral5=null;
Token XmlAttribute6=null;
reservedWord_return reservedWord1 = null;
identifier_return identifier2 = null;
punctuator_return punctuator3 = null;
numericLiteral_return numericLiteral4 = null;
Object StringLiteral5_tree=null;
Object XmlAttribute6_tree=null;
try {
// JS.g:615:2: ( reservedWord | identifier | punctuator | numericLiteral | StringLiteral | XmlAttribute )
int alt1=6;
switch ( input.LA(1) ) {
case NULL:
case TRUE:
case FALSE:
case BREAK:
case CASE:
case CATCH:
case CONTINUE:
case DEFAULT:
case DELETE:
case DO:
case ELSE:
case FINALLY:
case FOR:
case EACH:
case FUNCTION:
case IF:
case IN:
case INSTANCEOF:
case NEW:
case RETURN:
case SWITCH:
case THIS:
case THROW:
case TRY:
case TYPEOF:
case VAR:
case VOID:
case WHILE:
case WITH:
case GET:
case SET:
case YIELD:
case WXML:
case NAMESPACE:
case ABSTRACT:
case BOOLEAN:
case BYTE:
case CHAR:
case CLASS:
case CONST:
case DEBUGGER:
case DOUBLE:
case ENUM:
case EXPORT:
case EXTENDS:
case FINAL:
case FLOAT:
case GOTO:
case IMPLEMENTS:
case IMPORT:
case INT:
case INTERFACE:
case LONG:
case NATIVE:
case PACKAGE:
case PRIVATE:
case PROTECTED:
case PUBLIC:
case SHORT:
case STATIC:
case SUPER:
case SYNCHRONIZED:
case THROWS:
case TRANSIENT:
case VOLATILE:
{
alt1=1;
}
break;
case Identifier:
{
alt1=2;
}
break;
case LBRACE:
case RBRACE:
case LPAREN:
case RPAREN:
case LBRACK:
case RBRACK:
case DOT:
case SEMIC:
case COMMA:
case LT:
case GT:
case LTE:
case GTE:
case EQ:
case NEQ:
case SAME:
case NSAME:
case ADD:
case SUB:
case MUL:
case MOD:
case INC:
case DEC:
case SHL:
case SHR:
case SHU:
case AND:
case OR:
case XOR:
case NOT:
case INV:
case LAND:
case LOR:
case QUE:
case COLON:
case ASSIGN:
case ADDASS:
case SUBASS:
case MULASS:
case MODASS:
case SHLASS:
case SHRASS:
case SHUASS:
case ANDASS:
case ORASS:
case XORASS:
case DIV:
case DIVASS:
case DOTDOT:
case COLONCOLON:
{
alt1=3;
}
break;
case DecimalLiteral:
case OctalIntegerLiteral:
case HexIntegerLiteral:
{
alt1=4;
}
break;
case StringLiteral:
{
alt1=5;
}
break;
case XmlAttribute:
{
alt1=6;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("614:1: token : ( reservedWord | identifier | punctuator | numericLiteral | StringLiteral | XmlAttribute );", 1, 0, input);
throw nvae;
}
switch (alt1) {
case 1 :
// JS.g:615:4: reservedWord
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_reservedWord_in_token1997);
reservedWord1=reservedWord();
_fsp--;
adaptor.addChild(root_0, reservedWord1.getTree());
}
break;
case 2 :
// JS.g:616:4: identifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_identifier_in_token2002);
identifier2=identifier();
_fsp--;
adaptor.addChild(root_0, identifier2.getTree());
}
break;
case 3 :
// JS.g:617:4: punctuator
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_punctuator_in_token2007);
punctuator3=punctuator();
_fsp--;
adaptor.addChild(root_0, punctuator3.getTree());
}
break;
case 4 :
// JS.g:618:4: numericLiteral
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_numericLiteral_in_token2012);
numericLiteral4=numericLiteral();
_fsp--;
adaptor.addChild(root_0, numericLiteral4.getTree());
}
break;
case 5 :
// JS.g:619:4: StringLiteral
{
root_0 = (Object)adaptor.nil();
StringLiteral5=(Token)input.LT(1);
match(input,StringLiteral,FOLLOW_StringLiteral_in_token2017);
StringLiteral5_tree = (Object)adaptor.create(StringLiteral5);
adaptor.addChild(root_0, StringLiteral5_tree);
}
break;
case 6 :
// JS.g:620:4: XmlAttribute
{
root_0 = (Object)adaptor.nil();
XmlAttribute6=(Token)input.LT(1);
match(input,XmlAttribute,FOLLOW_XmlAttribute_in_token2022);
XmlAttribute6_tree = (Object)adaptor.create(XmlAttribute6);
adaptor.addChild(root_0, XmlAttribute6_tree);
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end token
public static class reservedWord_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start reservedWord
// JS.g:626:1: reservedWord : ( keyword | futureReservedWord | NULL | booleanLiteral );
public final reservedWord_return reservedWord() throws RecognitionException {
reservedWord_return retval = new reservedWord_return();
retval.start = input.LT(1);
Object root_0 = null;
Token NULL9=null;
keyword_return keyword7 = null;
futureReservedWord_return futureReservedWord8 = null;
booleanLiteral_return booleanLiteral10 = null;
Object NULL9_tree=null;
try {
// JS.g:627:2: ( keyword | futureReservedWord | NULL | booleanLiteral )
int alt2=4;
switch ( input.LA(1) ) {
case BREAK:
case CASE:
case CATCH:
case CONTINUE:
case DEFAULT:
case DELETE:
case DO:
case ELSE:
case FINALLY:
case FOR:
case EACH:
case FUNCTION:
case IF:
case IN:
case INSTANCEOF:
case NEW:
case RETURN:
case SWITCH:
case THIS:
case THROW:
case TRY:
case TYPEOF:
case VAR:
case VOID:
case WHILE:
case WITH:
case GET:
case SET:
case YIELD:
case WXML:
case NAMESPACE:
{
alt2=1;
}
break;
case ABSTRACT:
case BOOLEAN:
case BYTE:
case CHAR:
case CLASS:
case CONST:
case DEBUGGER:
case DOUBLE:
case ENUM:
case EXPORT:
case EXTENDS:
case FINAL:
case FLOAT:
case GOTO:
case IMPLEMENTS:
case IMPORT:
case INT:
case INTERFACE:
case LONG:
case NATIVE:
case PACKAGE:
case PRIVATE:
case PROTECTED:
case PUBLIC:
case SHORT:
case STATIC:
case SUPER:
case SYNCHRONIZED:
case THROWS:
case TRANSIENT:
case VOLATILE:
{
alt2=2;
}
break;
case NULL:
{
alt2=3;
}
break;
case TRUE:
case FALSE:
{
alt2=4;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("626:1: reservedWord : ( keyword | futureReservedWord | NULL | booleanLiteral );", 2, 0, input);
throw nvae;
}
switch (alt2) {
case 1 :
// JS.g:627:4: keyword
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_keyword_in_reservedWord2037);
keyword7=keyword();
_fsp--;
adaptor.addChild(root_0, keyword7.getTree());
}
break;
case 2 :
// JS.g:628:4: futureReservedWord
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_futureReservedWord_in_reservedWord2042);
futureReservedWord8=futureReservedWord();
_fsp--;
adaptor.addChild(root_0, futureReservedWord8.getTree());
}
break;
case 3 :
// JS.g:629:4: NULL
{
root_0 = (Object)adaptor.nil();
NULL9=(Token)input.LT(1);
match(input,NULL,FOLLOW_NULL_in_reservedWord2047);
NULL9_tree = (Object)adaptor.create(NULL9);
adaptor.addChild(root_0, NULL9_tree);
}
break;
case 4 :
// JS.g:630:4: booleanLiteral
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_booleanLiteral_in_reservedWord2052);
booleanLiteral10=booleanLiteral();
_fsp--;
adaptor.addChild(root_0, booleanLiteral10.getTree());
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end reservedWord
public static class keyword_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $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 | WXML | YIELD );
public final keyword_return keyword() throws RecognitionException {
keyword_return retval = new keyword_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set11=null;
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 | 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)>=WXML && input.LA(1)<=NAMESPACE) ) {
input.consume();
adaptor.addChild(root_0, adaptor.create(set11));
errorRecovery=false;
}
else {
MismatchedSetException mse =
new MismatchedSetException(null,input);
recoverFromMismatchedSet(input,mse,FOLLOW_set_in_keyword0); throw mse;
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end keyword
public static class futureReservedWord_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start futureReservedWord
// JS.g:675:1: futureReservedWord : ( 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 );
public final futureReservedWord_return futureReservedWord() throws RecognitionException {
futureReservedWord_return retval = new futureReservedWord_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set12=null;
Object set12_tree=null;
try {
// JS.g:676:2: ( 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 )
// JS.g:
{
root_0 = (Object)adaptor.nil();
set12=(Token)input.LT(1);
if ( (input.LA(1)>=ABSTRACT && input.LA(1)<=VOLATILE) ) {
input.consume();
adaptor.addChild(root_0, adaptor.create(set12));
errorRecovery=false;
}
else {
MismatchedSetException mse =
new MismatchedSetException(null,input);
recoverFromMismatchedSet(input,mse,FOLLOW_set_in_futureReservedWord0); throw mse;
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end futureReservedWord
public static class identifier_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start identifier
// JS.g:749:1: identifier : ( WXML | GET | SET | EACH | NAMESPACE | Identifier );
public final identifier_return identifier() throws RecognitionException {
identifier_return retval = new identifier_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set13=null;
Object set13_tree=null;
try {
// JS.g:750:3: ( WXML | GET | SET | EACH | NAMESPACE | Identifier )
// JS.g:
{
root_0 = (Object)adaptor.nil();
set13=(Token)input.LT(1);
if ( input.LA(1)==EACH||(input.LA(1)>=GET && input.LA(1)<=SET)||(input.LA(1)>=WXML && input.LA(1)<=NAMESPACE)||input.LA(1)==Identifier ) {
input.consume();
adaptor.addChild(root_0, adaptor.create(set13));
errorRecovery=false;
}
else {
MismatchedSetException mse =
new MismatchedSetException(null,input);
recoverFromMismatchedSet(input,mse,FOLLOW_set_in_identifier0); throw mse;
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end identifier
public static class punctuator_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start punctuator
// JS.g:770:1: punctuator : ( 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 | DOTDOT | COLONCOLON );
public final punctuator_return punctuator() throws RecognitionException {
punctuator_return retval = new punctuator_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set14=null;
Object set14_tree=null;
try {
// JS.g:771:2: ( 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 | DOTDOT | COLONCOLON )
// JS.g:
{
root_0 = (Object)adaptor.nil();
set14=(Token)input.LT(1);
if ( (input.LA(1)>=LBRACE && input.LA(1)<=DIVASS)||(input.LA(1)>=DOTDOT && input.LA(1)<=COLONCOLON) ) {
input.consume();
adaptor.addChild(root_0, adaptor.create(set14));
errorRecovery=false;
}
else {
MismatchedSetException mse =
new MismatchedSetException(null,input);
recoverFromMismatchedSet(input,mse,FOLLOW_set_in_punctuator0); throw mse;
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end punctuator
public static class literal_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start literal
// JS.g:828:1: literal : ( NULL | booleanLiteral | numericLiteral | StringLiteral | RegularExpressionLiteral );
public final literal_return literal() throws RecognitionException {
literal_return retval = new literal_return();
retval.start = input.LT(1);
Object root_0 = null;
Token NULL15=null;
Token StringLiteral18=null;
Token RegularExpressionLiteral19=null;
booleanLiteral_return booleanLiteral16 = null;
numericLiteral_return numericLiteral17 = null;
Object NULL15_tree=null;
Object StringLiteral18_tree=null;
Object RegularExpressionLiteral19_tree=null;
try {
// JS.g:829:2: ( NULL | booleanLiteral | numericLiteral | StringLiteral | RegularExpressionLiteral )
int alt3=5;
switch ( input.LA(1) ) {
case NULL:
{
alt3=1;
}
break;
case TRUE:
case FALSE:
{
alt3=2;
}
break;
case DecimalLiteral:
case OctalIntegerLiteral:
case HexIntegerLiteral:
{
alt3=3;
}
break;
case StringLiteral:
{
alt3=4;
}
break;
case RegularExpressionLiteral:
{
alt3=5;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("828:1: literal : ( NULL | booleanLiteral | numericLiteral | StringLiteral | RegularExpressionLiteral );", 3, 0, input);
throw nvae;
}
switch (alt3) {
case 1 :
// JS.g:829:4: NULL
{
root_0 = (Object)adaptor.nil();
NULL15=(Token)input.LT(1);
match(input,NULL,FOLLOW_NULL_in_literal2847);
NULL15_tree = (Object)adaptor.create(NULL15);
adaptor.addChild(root_0, NULL15_tree);
}
break;
case 2 :
// JS.g:830:4: booleanLiteral
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_booleanLiteral_in_literal2852);
booleanLiteral16=booleanLiteral();
_fsp--;
adaptor.addChild(root_0, booleanLiteral16.getTree());
}
break;
case 3 :
// JS.g:831:4: numericLiteral
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_numericLiteral_in_literal2857);
numericLiteral17=numericLiteral();
_fsp--;
adaptor.addChild(root_0, numericLiteral17.getTree());
}
break;
case 4 :
// JS.g:832:4: StringLiteral
{
root_0 = (Object)adaptor.nil();
StringLiteral18=(Token)input.LT(1);
match(input,StringLiteral,FOLLOW_StringLiteral_in_literal2862);
StringLiteral18_tree = (Object)adaptor.create(StringLiteral18);
adaptor.addChild(root_0, StringLiteral18_tree);
}
break;
case 5 :
// JS.g:833:4: RegularExpressionLiteral
{
root_0 = (Object)adaptor.nil();
RegularExpressionLiteral19=(Token)input.LT(1);
match(input,RegularExpressionLiteral,FOLLOW_RegularExpressionLiteral_in_literal2867);
RegularExpressionLiteral19_tree = (Object)adaptor.create(RegularExpressionLiteral19);
adaptor.addChild(root_0, RegularExpressionLiteral19_tree);
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end literal
public static class booleanLiteral_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start booleanLiteral
// JS.g:836:1: booleanLiteral : ( TRUE | FALSE );
public final booleanLiteral_return booleanLiteral() throws RecognitionException {
booleanLiteral_return retval = new booleanLiteral_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set20=null;
Object set20_tree=null;
try {
// JS.g:837:2: ( TRUE | FALSE )
// JS.g:
{
root_0 = (Object)adaptor.nil();
set20=(Token)input.LT(1);
if ( (input.LA(1)>=TRUE && input.LA(1)<=FALSE) ) {
input.consume();
adaptor.addChild(root_0, adaptor.create(set20));
errorRecovery=false;
}
else {
MismatchedSetException mse =
new MismatchedSetException(null,input);
recoverFromMismatchedSet(input,mse,FOLLOW_set_in_booleanLiteral0); throw mse;
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end booleanLiteral
public static class numericLiteral_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start numericLiteral
// JS.g:883:1: numericLiteral : ( DecimalLiteral | OctalIntegerLiteral | HexIntegerLiteral );
public final numericLiteral_return numericLiteral() throws RecognitionException {
numericLiteral_return retval = new numericLiteral_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set21=null;
Object set21_tree=null;
try {
// JS.g:884:2: ( DecimalLiteral | OctalIntegerLiteral | HexIntegerLiteral )
// JS.g:
{
root_0 = (Object)adaptor.nil();
set21=(Token)input.LT(1);
if ( (input.LA(1)>=DecimalLiteral && input.LA(1)<=HexIntegerLiteral) ) {
input.consume();
adaptor.addChild(root_0, adaptor.create(set21));
errorRecovery=false;
}
else {
MismatchedSetException mse =
new MismatchedSetException(null,input);
recoverFromMismatchedSet(input,mse,FOLLOW_set_in_numericLiteral0); throw mse;
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end numericLiteral
public static class primaryExpression_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start primaryExpression
// JS.g:979:1: primaryExpression : ( THIS | identifier | XmlAttribute | literal | arrayLiteral | objectLiteral | parenExpression );
public final primaryExpression_return primaryExpression() throws RecognitionException {
primaryExpression_return retval = new primaryExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token THIS22=null;
Token XmlAttribute24=null;
identifier_return identifier23 = null;
literal_return literal25 = null;
arrayLiteral_return arrayLiteral26 = null;
objectLiteral_return objectLiteral27 = null;
parenExpression_return parenExpression28 = null;
Object THIS22_tree=null;
Object XmlAttribute24_tree=null;
try {
// JS.g:980:2: ( THIS | identifier | XmlAttribute | literal | arrayLiteral | objectLiteral | parenExpression )
int alt4=7;
switch ( input.LA(1) ) {
case THIS:
{
alt4=1;
}
break;
case EACH:
case GET:
case SET:
case WXML:
case NAMESPACE:
case Identifier:
{
alt4=2;
}
break;
case XmlAttribute:
{
alt4=3;
}
break;
case NULL:
case TRUE:
case FALSE:
case StringLiteral:
case RegularExpressionLiteral:
case DecimalLiteral:
case OctalIntegerLiteral:
case HexIntegerLiteral:
{
alt4=4;
}
break;
case LBRACK:
{
alt4=5;
}
break;
case LBRACE:
{
alt4=6;
}
break;
case LPAREN:
{
alt4=7;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("979:1: primaryExpression : ( THIS | identifier | XmlAttribute | literal | arrayLiteral | objectLiteral | parenExpression );", 4, 0, input);
throw nvae;
}
switch (alt4) {
case 1 :
// JS.g:980:4: THIS
{
root_0 = (Object)adaptor.nil();
THIS22=(Token)input.LT(1);
match(input,THIS,FOLLOW_THIS_in_primaryExpression3496);
THIS22_tree = (Object)adaptor.create(THIS22);
adaptor.addChild(root_0, THIS22_tree);
}
break;
case 2 :
// JS.g:981:4: identifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_identifier_in_primaryExpression3501);
identifier23=identifier();
_fsp--;
adaptor.addChild(root_0, identifier23.getTree());
}
break;
case 3 :
// JS.g:982:4: XmlAttribute
{
root_0 = (Object)adaptor.nil();
XmlAttribute24=(Token)input.LT(1);
match(input,XmlAttribute,FOLLOW_XmlAttribute_in_primaryExpression3506);
XmlAttribute24_tree = (Object)adaptor.create(XmlAttribute24);
adaptor.addChild(root_0, XmlAttribute24_tree);
}
break;
case 4 :
// JS.g:983:4: literal
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_literal_in_primaryExpression3511);
literal25=literal();
_fsp--;
adaptor.addChild(root_0, literal25.getTree());
}
break;
case 5 :
// JS.g:984:4: arrayLiteral
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_arrayLiteral_in_primaryExpression3516);
arrayLiteral26=arrayLiteral();
_fsp--;
adaptor.addChild(root_0, arrayLiteral26.getTree());
}
break;
case 6 :
// JS.g:985:4: objectLiteral
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_objectLiteral_in_primaryExpression3521);
objectLiteral27=objectLiteral();
_fsp--;
adaptor.addChild(root_0, objectLiteral27.getTree());
}
break;
case 7 :
// JS.g:986:4: parenExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_parenExpression_in_primaryExpression3526);
parenExpression28=parenExpression();
_fsp--;
adaptor.addChild(root_0, parenExpression28.getTree());
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end primaryExpression
public static class parenExpression_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start parenExpression
// JS.g:989:1: parenExpression : lpar= LPAREN expression RPAREN -> ^( PAREXPR[$lpar, \"PAREXPR\"] expression ) ;
public final parenExpression_return parenExpression() throws RecognitionException {
parenExpression_return retval = new parenExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token lpar=null;
Token RPAREN30=null;
expression_return expression29 = null;
Object lpar_tree=null;
Object RPAREN30_tree=null;
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleSubtreeStream stream_expression=new RewriteRuleSubtreeStream(adaptor,"rule expression");
try {
// JS.g:990:3: (lpar= LPAREN expression RPAREN -> ^( PAREXPR[$lpar, \"PAREXPR\"] expression ) )
// JS.g:990:5: lpar= LPAREN expression RPAREN
{
lpar=(Token)input.LT(1);
match(input,LPAREN,FOLLOW_LPAREN_in_parenExpression3542);
stream_LPAREN.add(lpar);
pushFollow(FOLLOW_expression_in_parenExpression3544);
expression29=expression();
_fsp--;
stream_expression.add(expression29.getTree());
RPAREN30=(Token)input.LT(1);
match(input,RPAREN,FOLLOW_RPAREN_in_parenExpression3546);
stream_RPAREN.add(RPAREN30);
// AST REWRITE
// elements: expression
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
// 990:37: -> ^( PAREXPR[$lpar, \"PAREXPR\"] expression )
{
// JS.g:990:40: ^( PAREXPR[$lpar, \"PAREXPR\"] expression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(PAREXPR, lpar, "PAREXPR"), root_1);
adaptor.addChild(root_1, stream_expression.next());
adaptor.addChild(root_0, root_1);
}
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end parenExpression
public static class arrayLiteral_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start arrayLiteral
// JS.g:993:1: arrayLiteral : lb= LBRACK ( arrayItem ( COMMA arrayItem )* )? RBRACK -> ^( ARRAY[$lb, \"ARRAY\"] ( arrayItem )* ) ;
public final arrayLiteral_return arrayLiteral() throws RecognitionException {
arrayLiteral_return retval = new arrayLiteral_return();
retval.start = input.LT(1);
Object root_0 = null;
Token lb=null;
Token COMMA32=null;
Token RBRACK34=null;
arrayItem_return arrayItem31 = null;
arrayItem_return arrayItem33 = null;
Object lb_tree=null;
Object COMMA32_tree=null;
Object RBRACK34_tree=null;
RewriteRuleTokenStream stream_RBRACK=new RewriteRuleTokenStream(adaptor,"token RBRACK");
RewriteRuleTokenStream stream_LBRACK=new RewriteRuleTokenStream(adaptor,"token LBRACK");
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_arrayItem=new RewriteRuleSubtreeStream(adaptor,"rule arrayItem");
try {
// JS.g:994:2: (lb= LBRACK ( arrayItem ( COMMA arrayItem )* )? RBRACK -> ^( ARRAY[$lb, \"ARRAY\"] ( arrayItem )* ) )
// JS.g:994:4: lb= LBRACK ( arrayItem ( COMMA arrayItem )* )? RBRACK
{
lb=(Token)input.LT(1);
match(input,LBRACK,FOLLOW_LBRACK_in_arrayLiteral3571);
stream_LBRACK.add(lb);
// JS.g:994:14: ( arrayItem ( COMMA arrayItem )* )?
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==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) ) {
int LA6_2 = input.LA(2);
if ( ( input.LA(1) == COMMA ) ) {
alt6=1;
}
}
switch (alt6) {
case 1 :
// JS.g:994:16: arrayItem ( COMMA arrayItem )*
{
pushFollow(FOLLOW_arrayItem_in_arrayLiteral3575);
arrayItem31=arrayItem();
_fsp--;
stream_arrayItem.add(arrayItem31.getTree());
// JS.g:994:26: ( COMMA arrayItem )*
loop5:
do {
int alt5=2;
int LA5_0 = input.LA(1);
if ( (LA5_0==COMMA) ) {
alt5=1;
}
switch (alt5) {
case 1 :
// JS.g:994:28: COMMA arrayItem
{
COMMA32=(Token)input.LT(1);
match(input,COMMA,FOLLOW_COMMA_in_arrayLiteral3579);
stream_COMMA.add(COMMA32);
pushFollow(FOLLOW_arrayItem_in_arrayLiteral3581);
arrayItem33=arrayItem();
_fsp--;
stream_arrayItem.add(arrayItem33.getTree());
}
break;
default :
break loop5;
}
} while (true);
}
break;
}
RBRACK34=(Token)input.LT(1);
match(input,RBRACK,FOLLOW_RBRACK_in_arrayLiteral3589);
stream_RBRACK.add(RBRACK34);
// AST REWRITE
// elements: arrayItem
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
// 995:2: -> ^( ARRAY[$lb, \"ARRAY\"] ( arrayItem )* )
{
// JS.g:995:5: ^( ARRAY[$lb, \"ARRAY\"] ( arrayItem )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(ARRAY, lb, "ARRAY"), root_1);
// JS.g:995:28: ( arrayItem )*
while ( stream_arrayItem.hasNext() ) {
adaptor.addChild(root_1, stream_arrayItem.next());
}
stream_arrayItem.reset();
adaptor.addChild(root_0, root_1);
}
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end arrayLiteral
public static class arrayItem_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start arrayItem
// JS.g:998:1: arrayItem : (expr= assignmentExpression | {...}?) -> ^( ITEM ( $expr)? ) ;
public final arrayItem_return arrayItem() throws RecognitionException {
arrayItem_return retval = new arrayItem_return();
retval.start = input.LT(1);
Object root_0 = null;
assignmentExpression_return expr = null;
RewriteRuleSubtreeStream stream_assignmentExpression=new RewriteRuleSubtreeStream(adaptor,"rule assignmentExpression");
try {
// JS.g:999:2: ( (expr= assignmentExpression | {...}?) -> ^( ITEM ( $expr)? ) )
// JS.g:999:4: (expr= assignmentExpression | {...}?)
{
// JS.g:999:4: (expr= assignmentExpression | {...}?)
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==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) ) {
alt7=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("999:4: (expr= assignmentExpression | {...}?)", 7, 0, input);
throw nvae;
}
switch (alt7) {
case 1 :
// JS.g:999:6: expr= assignmentExpression
{
pushFollow(FOLLOW_assignmentExpression_in_arrayItem3617);
expr=assignmentExpression();
_fsp--;
stream_assignmentExpression.add(expr.getTree());
}
break;
case 2 :
// JS.g:999:34: {...}?
{
if ( !( input.LA(1) == COMMA ) ) {
throw new FailedPredicateException(input, "arrayItem", " input.LA(1) == COMMA ");
}
}
break;
}
// AST REWRITE
// elements: expr
// token labels:
// rule labels: retval, expr
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"token expr",expr!=null?expr.tree:null);
root_0 = (Object)adaptor.nil();
// 1000:2: -> ^( ITEM ( $expr)? )
{
// JS.g:1000:5: ^( ITEM ( $expr)? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(ITEM, "ITEM"), root_1);
// JS.g:1000:13: ( $expr)?
if ( stream_expr.hasNext() ) {
adaptor.addChild(root_1, stream_expr.next());
}
stream_expr.reset();
adaptor.addChild(root_0, root_1);
}
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end arrayItem
public static class objectLiteral_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start objectLiteral
// JS.g:1003:1: objectLiteral : lb= LBRACE ( objectPropertyInitializer ( COMMA objectPropertyInitializer )* )? RBRACE -> ^( OBJECT[$lb, \"OBJECT\"] ( objectPropertyInitializer )* ) ;
public final objectLiteral_return objectLiteral() throws RecognitionException {
objectLiteral_return retval = new objectLiteral_return();
retval.start = input.LT(1);
Object root_0 = null;
Token lb=null;
Token COMMA36=null;
Token RBRACE38=null;
objectPropertyInitializer_return objectPropertyInitializer35 = null;
objectPropertyInitializer_return objectPropertyInitializer37 = null;
Object lb_tree=null;
Object COMMA36_tree=null;
Object RBRACE38_tree=null;
RewriteRuleTokenStream stream_RBRACE=new RewriteRuleTokenStream(adaptor,"token RBRACE");
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_LBRACE=new RewriteRuleTokenStream(adaptor,"token LBRACE");
RewriteRuleSubtreeStream stream_objectPropertyInitializer=new RewriteRuleSubtreeStream(adaptor,"rule objectPropertyInitializer");
try {
// JS.g:1004:2: (lb= LBRACE ( objectPropertyInitializer ( COMMA objectPropertyInitializer )* )? RBRACE -> ^( OBJECT[$lb, \"OBJECT\"] ( objectPropertyInitializer )* ) )
// JS.g:1004:4: lb= LBRACE ( objectPropertyInitializer ( COMMA objectPropertyInitializer )* )? RBRACE
{
lb=(Token)input.LT(1);
match(input,LBRACE,FOLLOW_LBRACE_in_objectLiteral3649);
stream_LBRACE.add(lb);
// JS.g:1004:14: ( objectPropertyInitializer ( COMMA objectPropertyInitializer )* )?
int alt9=2;
int LA9_0 = input.LA(1);
if ( (LA9_0==EACH||(LA9_0>=GET && LA9_0<=SET)||(LA9_0>=WXML && LA9_0<=NAMESPACE)||(LA9_0>=StringLiteral && LA9_0<=XmlAttribute)||LA9_0==Identifier||(LA9_0>=DecimalLiteral && LA9_0<=HexIntegerLiteral)) ) {
alt9=1;
}
switch (alt9) {
case 1 :
// JS.g:1004:16: objectPropertyInitializer ( COMMA objectPropertyInitializer )*
{
pushFollow(FOLLOW_objectPropertyInitializer_in_objectLiteral3653);
objectPropertyInitializer35=objectPropertyInitializer();
_fsp--;
stream_objectPropertyInitializer.add(objectPropertyInitializer35.getTree());
// JS.g:1004:42: ( COMMA objectPropertyInitializer )*
loop8:
do {
int alt8=2;
int LA8_0 = input.LA(1);
if ( (LA8_0==COMMA) ) {
alt8=1;
}
switch (alt8) {
case 1 :
// JS.g:1004:44: COMMA objectPropertyInitializer
{
COMMA36=(Token)input.LT(1);
match(input,COMMA,FOLLOW_COMMA_in_objectLiteral3657);
stream_COMMA.add(COMMA36);
pushFollow(FOLLOW_objectPropertyInitializer_in_objectLiteral3659);
objectPropertyInitializer37=objectPropertyInitializer();
_fsp--;
stream_objectPropertyInitializer.add(objectPropertyInitializer37.getTree());
}
break;
default :
break loop8;
}
} while (true);
}
break;
}
RBRACE38=(Token)input.LT(1);
match(input,RBRACE,FOLLOW_RBRACE_in_objectLiteral3667);
stream_RBRACE.add(RBRACE38);
// AST REWRITE
// elements: objectPropertyInitializer
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
// 1005:2: -> ^( OBJECT[$lb, \"OBJECT\"] ( objectPropertyInitializer )* )
{
// JS.g:1005:5: ^( OBJECT[$lb, \"OBJECT\"] ( objectPropertyInitializer )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(OBJECT, lb, "OBJECT"), root_1);
// JS.g:1005:30: ( objectPropertyInitializer )*
while ( stream_objectPropertyInitializer.hasNext() ) {
adaptor.addChild(root_1, stream_objectPropertyInitializer.next());
}
stream_objectPropertyInitializer.reset();
adaptor.addChild(root_0, root_1);
}
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end objectLiteral
public static class objectPropertyInitializer_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start objectPropertyInitializer
// JS.g:1008:1: objectPropertyInitializer : ( nameValuePair | getMethodDeclaration | setMethodDeclaration );
public final objectPropertyInitializer_return objectPropertyInitializer() throws RecognitionException {
objectPropertyInitializer_return retval = new objectPropertyInitializer_return();
retval.start = input.LT(1);
Object root_0 = null;
nameValuePair_return nameValuePair39 = null;
getMethodDeclaration_return getMethodDeclaration40 = null;
setMethodDeclaration_return setMethodDeclaration41 = null;
try {
// JS.g:1009:3: ( nameValuePair | getMethodDeclaration | setMethodDeclaration )
int alt10=3;
switch ( input.LA(1) ) {
case GET:
{
int LA10_1 = input.LA(2);
if ( (LA10_1==COLON) ) {
alt10=1;
}
else if ( (LA10_1==EACH||(LA10_1>=GET && LA10_1<=SET)||(LA10_1>=WXML && LA10_1<=NAMESPACE)||LA10_1==Identifier) ) {
alt10=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("1008:1: objectPropertyInitializer : ( nameValuePair | getMethodDeclaration | setMethodDeclaration );", 10, 1, input);
throw nvae;
}
}
break;
case EACH:
case WXML:
case NAMESPACE:
case StringLiteral:
case XmlAttribute:
case Identifier:
case DecimalLiteral:
case OctalIntegerLiteral:
case HexIntegerLiteral:
{
alt10=1;
}
break;
case SET:
{
int LA10_3 = input.LA(2);
if ( (LA10_3==COLON) ) {
alt10=1;
}
else if ( (LA10_3==EACH||(LA10_3>=GET && LA10_3<=SET)||(LA10_3>=WXML && LA10_3<=NAMESPACE)||LA10_3==Identifier) ) {
alt10=3;
}
else {
NoViableAltException nvae =
new NoViableAltException("1008:1: objectPropertyInitializer : ( nameValuePair | getMethodDeclaration | setMethodDeclaration );", 10, 3, input);
throw nvae;
}
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("1008:1: objectPropertyInitializer : ( nameValuePair | getMethodDeclaration | setMethodDeclaration );", 10, 0, input);
throw nvae;
}
switch (alt10) {
case 1 :
// JS.g:1009:5: nameValuePair
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_nameValuePair_in_objectPropertyInitializer3692);
nameValuePair39=nameValuePair();
_fsp--;
adaptor.addChild(root_0, nameValuePair39.getTree());
}
break;
case 2 :
// JS.g:1010:5: getMethodDeclaration
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_getMethodDeclaration_in_objectPropertyInitializer3699);
getMethodDeclaration40=getMethodDeclaration();
_fsp--;
adaptor.addChild(root_0, getMethodDeclaration40.getTree());
}
break;
case 3 :
// JS.g:1011:5: setMethodDeclaration
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_setMethodDeclaration_in_objectPropertyInitializer3705);
setMethodDeclaration41=setMethodDeclaration();
_fsp--;
adaptor.addChild(root_0, setMethodDeclaration41.getTree());
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end objectPropertyInitializer
public static class nameValuePair_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start nameValuePair
// JS.g:1014:1: nameValuePair : propertyName COLON assignmentExpression -> ^( NAMEDVALUE propertyName assignmentExpression ) ;
public final nameValuePair_return nameValuePair() throws RecognitionException {
nameValuePair_return retval = new nameValuePair_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COLON43=null;
propertyName_return propertyName42 = null;
assignmentExpression_return assignmentExpression44 = null;
Object COLON43_tree=null;
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleSubtreeStream stream_propertyName=new RewriteRuleSubtreeStream(adaptor,"rule propertyName");
RewriteRuleSubtreeStream stream_assignmentExpression=new RewriteRuleSubtreeStream(adaptor,"rule assignmentExpression");
try {
// JS.g:1015:2: ( propertyName COLON assignmentExpression -> ^( NAMEDVALUE propertyName assignmentExpression ) )
// JS.g:1015:4: propertyName COLON assignmentExpression
{
pushFollow(FOLLOW_propertyName_in_nameValuePair3718);
propertyName42=propertyName();
_fsp--;
stream_propertyName.add(propertyName42.getTree());
COLON43=(Token)input.LT(1);
match(input,COLON,FOLLOW_COLON_in_nameValuePair3720);
stream_COLON.add(COLON43);
pushFollow(FOLLOW_assignmentExpression_in_nameValuePair3722);
assignmentExpression44=assignmentExpression();
_fsp--;
stream_assignmentExpression.add(assignmentExpression44.getTree());
// AST REWRITE
// elements: assignmentExpression, propertyName
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
// 1016:2: -> ^( NAMEDVALUE propertyName assignmentExpression )
{
// JS.g:1016:5: ^( NAMEDVALUE propertyName assignmentExpression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(NAMEDVALUE, "NAMEDVALUE"), root_1);
adaptor.addChild(root_1, stream_propertyName.next());
adaptor.addChild(root_1, stream_assignmentExpression.next());
adaptor.addChild(root_0, root_1);
}
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end nameValuePair
public static class propertyName_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start propertyName
// JS.g:1019:1: propertyName : ( identifier | StringLiteral | numericLiteral | XmlAttribute );
public final propertyName_return propertyName() throws RecognitionException {
propertyName_return retval = new propertyName_return();
retval.start = input.LT(1);
Object root_0 = null;
Token StringLiteral46=null;
Token XmlAttribute48=null;
identifier_return identifier45 = null;
numericLiteral_return numericLiteral47 = null;
Object StringLiteral46_tree=null;
Object XmlAttribute48_tree=null;
try {
// JS.g:1020:2: ( identifier | StringLiteral | numericLiteral | XmlAttribute )
int alt11=4;
switch ( input.LA(1) ) {
case EACH:
case GET:
case SET:
case WXML:
case NAMESPACE:
case Identifier:
{
alt11=1;
}
break;
case StringLiteral:
{
alt11=2;
}
break;
case DecimalLiteral:
case OctalIntegerLiteral:
case HexIntegerLiteral:
{
alt11=3;
}
break;
case XmlAttribute:
{
alt11=4;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("1019:1: propertyName : ( identifier | StringLiteral | numericLiteral | XmlAttribute );", 11, 0, input);
throw nvae;
}
switch (alt11) {
case 1 :
// JS.g:1020:4: identifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_identifier_in_propertyName3746);
identifier45=identifier();
_fsp--;
adaptor.addChild(root_0, identifier45.getTree());
}
break;
case 2 :
// JS.g:1021:4: StringLiteral
{
root_0 = (Object)adaptor.nil();
StringLiteral46=(Token)input.LT(1);
match(input,StringLiteral,FOLLOW_StringLiteral_in_propertyName3751);
StringLiteral46_tree = (Object)adaptor.create(StringLiteral46);
adaptor.addChild(root_0, StringLiteral46_tree);
}
break;
case 3 :
// JS.g:1022:4: numericLiteral
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_numericLiteral_in_propertyName3756);
numericLiteral47=numericLiteral();
_fsp--;
adaptor.addChild(root_0, numericLiteral47.getTree());
}
break;
case 4 :
// JS.g:1023:4: XmlAttribute
{
root_0 = (Object)adaptor.nil();
XmlAttribute48=(Token)input.LT(1);
match(input,XmlAttribute,FOLLOW_XmlAttribute_in_propertyName3761);
XmlAttribute48_tree = (Object)adaptor.create(XmlAttribute48);
adaptor.addChild(root_0, XmlAttribute48_tree);
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end propertyName
public static class memberExpression_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start memberExpression
// JS.g:1035:1: memberExpression : ( primaryExpression | functionExpression | newExpression );
public final memberExpression_return memberExpression() throws RecognitionException {
memberExpression_return retval = new memberExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
primaryExpression_return primaryExpression49 = null;
functionExpression_return functionExpression50 = null;
newExpression_return newExpression51 = null;
try {
// JS.g:1036:2: ( primaryExpression | functionExpression | newExpression )
int alt12=3;
switch ( input.LA(1) ) {
case NULL:
case TRUE:
case FALSE:
case EACH:
case THIS:
case GET:
case SET:
case WXML:
case NAMESPACE:
case LBRACE:
case LPAREN:
case LBRACK:
case StringLiteral:
case XmlAttribute:
case Identifier:
case RegularExpressionLiteral:
case DecimalLiteral:
case OctalIntegerLiteral:
case HexIntegerLiteral:
{
alt12=1;
}
break;
case FUNCTION:
{
alt12=2;
}
break;
case NEW:
{
alt12=3;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("1035:1: memberExpression : ( primaryExpression | functionExpression | newExpression );", 12, 0, input);
throw nvae;
}
switch (alt12) {
case 1 :
// JS.g:1036:4: primaryExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_primaryExpression_in_memberExpression3779);
primaryExpression49=primaryExpression();
_fsp--;
adaptor.addChild(root_0, primaryExpression49.getTree());
}
break;
case 2 :
// JS.g:1037:4: functionExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_functionExpression_in_memberExpression3784);
functionExpression50=functionExpression();
_fsp--;
adaptor.addChild(root_0, functionExpression50.getTree());
}
break;
case 3 :
// JS.g:1038:4: newExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_newExpression_in_memberExpression3789);
newExpression51=newExpression();
_fsp--;
adaptor.addChild(root_0, newExpression51.getTree());
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end memberExpression
public static class newExpression_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start newExpression
// JS.g:1041:1: newExpression : NEW memberExpression ;
public final newExpression_return newExpression() throws RecognitionException {
newExpression_return retval = new newExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token NEW52=null;
memberExpression_return memberExpression53 = null;
Object NEW52_tree=null;
try {
// JS.g:1042:2: ( NEW memberExpression )
// JS.g:1042:4: NEW memberExpression
{
root_0 = (Object)adaptor.nil();
NEW52=(Token)input.LT(1);
match(input,NEW,FOLLOW_NEW_in_newExpression3800);
NEW52_tree = (Object)adaptor.create(NEW52);
root_0 = (Object)adaptor.becomeRoot(NEW52_tree, root_0);
pushFollow(FOLLOW_memberExpression_in_newExpression3803);
memberExpression53=memberExpression();
_fsp--;
adaptor.addChild(root_0, memberExpression53.getTree());
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end newExpression
public static class arguments_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start arguments
// JS.g:1046:1: arguments : LPAREN ( assignmentExpression ( COMMA assignmentExpression )* )? RPAREN -> ^( ARGS ( assignmentExpression )* ) ;
public final arguments_return arguments() throws RecognitionException {
arguments_return retval = new arguments_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LPAREN54=null;
Token COMMA56=null;
Token RPAREN58=null;
assignmentExpression_return assignmentExpression55 = null;
assignmentExpression_return assignmentExpression57 = null;
Object LPAREN54_tree=null;
Object COMMA56_tree=null;
Object RPAREN58_tree=null;
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleSubtreeStream stream_assignmentExpression=new RewriteRuleSubtreeStream(adaptor,"rule assignmentExpression");
try {
// JS.g:1047:2: ( LPAREN ( assignmentExpression ( COMMA assignmentExpression )* )? RPAREN -> ^( ARGS ( assignmentExpression )* ) )
// JS.g:1047:4: LPAREN ( assignmentExpression ( COMMA assignmentExpression )* )? RPAREN
{
LPAREN54=(Token)input.LT(1);
match(input,LPAREN,FOLLOW_LPAREN_in_arguments3816);
stream_LPAREN.add(LPAREN54);
// JS.g:1047:11: ( assignmentExpression ( COMMA assignmentExpression )* )?
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==XMLLiteral||(LA14_0>=StringLiteral && LA14_0<=XmlAttribute)||LA14_0==Identifier||LA14_0==RegularExpressionLiteral||(LA14_0>=DecimalLiteral && LA14_0<=HexIntegerLiteral)) ) {
alt14=1;
}
switch (alt14) {
case 1 :
// JS.g:1047:13: assignmentExpression ( COMMA assignmentExpression )*
{
pushFollow(FOLLOW_assignmentExpression_in_arguments3820);
assignmentExpression55=assignmentExpression();
_fsp--;
stream_assignmentExpression.add(assignmentExpression55.getTree());
// JS.g:1047:34: ( COMMA assignmentExpression )*
loop13:
do {
int alt13=2;
int LA13_0 = input.LA(1);
if ( (LA13_0==COMMA) ) {
alt13=1;
}
switch (alt13) {
case 1 :
// JS.g:1047:36: COMMA assignmentExpression
{
COMMA56=(Token)input.LT(1);
match(input,COMMA,FOLLOW_COMMA_in_arguments3824);
stream_COMMA.add(COMMA56);
pushFollow(FOLLOW_assignmentExpression_in_arguments3826);
assignmentExpression57=assignmentExpression();
_fsp--;
stream_assignmentExpression.add(assignmentExpression57.getTree());
}
break;
default :
break loop13;
}
} while (true);
}
break;
}
RPAREN58=(Token)input.LT(1);
match(input,RPAREN,FOLLOW_RPAREN_in_arguments3834);
stream_RPAREN.add(RPAREN58);
// AST REWRITE
// elements: assignmentExpression
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
// 1048:2: -> ^( ARGS ( assignmentExpression )* )
{
// JS.g:1048:5: ^( ARGS ( assignmentExpression )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(ARGS, "ARGS"), root_1);
// JS.g:1048:13: ( assignmentExpression )*
while ( stream_assignmentExpression.hasNext() ) {
adaptor.addChild(root_1, stream_assignmentExpression.next());
}
stream_assignmentExpression.reset();
adaptor.addChild(root_0, root_1);
}
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end arguments
public static class leftHandSideExpression_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start leftHandSideExpression
// JS.g:1051:1: leftHandSideExpression : ( memberExpression -> memberExpression ) ( arguments -> ^( CALL $leftHandSideExpression arguments ) | LBRACK expression RBRACK -> ^( BYINDEX $leftHandSideExpression expression ) | DOT rightHandSideExpression -> ^( BYFIELD $leftHandSideExpression rightHandSideExpression ) | DOTDOT expression -> ^( ALLCHILDREN $leftHandSideExpression expression ) | COLONCOLON expression -> ^( LOCALNAME $leftHandSideExpression expression ) )* ;
public final leftHandSideExpression_return leftHandSideExpression() throws RecognitionException {
leftHandSideExpression_return retval = new leftHandSideExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LBRACK61=null;
Token RBRACK63=null;
Token DOT64=null;
Token DOTDOT66=null;
Token COLONCOLON68=null;
memberExpression_return memberExpression59 = null;
arguments_return arguments60 = null;
expression_return expression62 = null;
rightHandSideExpression_return rightHandSideExpression65 = null;
expression_return expression67 = null;
expression_return expression69 = null;
Object LBRACK61_tree=null;
Object RBRACK63_tree=null;
Object DOT64_tree=null;
Object DOTDOT66_tree=null;
Object COLONCOLON68_tree=null;
RewriteRuleTokenStream stream_RBRACK=new RewriteRuleTokenStream(adaptor,"token RBRACK");
RewriteRuleTokenStream stream_COLONCOLON=new RewriteRuleTokenStream(adaptor,"token COLONCOLON");
RewriteRuleTokenStream stream_LBRACK=new RewriteRuleTokenStream(adaptor,"token LBRACK");
RewriteRuleTokenStream stream_DOTDOT=new RewriteRuleTokenStream(adaptor,"token DOTDOT");
RewriteRuleTokenStream stream_DOT=new RewriteRuleTokenStream(adaptor,"token DOT");
RewriteRuleSubtreeStream stream_memberExpression=new RewriteRuleSubtreeStream(adaptor,"rule memberExpression");
RewriteRuleSubtreeStream stream_expression=new RewriteRuleSubtreeStream(adaptor,"rule expression");
RewriteRuleSubtreeStream stream_arguments=new RewriteRuleSubtreeStream(adaptor,"rule arguments");
RewriteRuleSubtreeStream stream_rightHandSideExpression=new RewriteRuleSubtreeStream(adaptor,"rule rightHandSideExpression");
try {
// JS.g:1052:3: ( ( memberExpression -> memberExpression ) ( arguments -> ^( CALL $leftHandSideExpression arguments ) | LBRACK expression RBRACK -> ^( BYINDEX $leftHandSideExpression expression ) | DOT rightHandSideExpression -> ^( BYFIELD $leftHandSideExpression rightHandSideExpression ) | DOTDOT expression -> ^( ALLCHILDREN $leftHandSideExpression expression ) | COLONCOLON expression -> ^( LOCALNAME $leftHandSideExpression expression ) )* )
// JS.g:1053:3: ( memberExpression -> memberExpression ) ( arguments -> ^( CALL $leftHandSideExpression arguments ) | LBRACK expression RBRACK -> ^( BYINDEX $leftHandSideExpression expression ) | DOT rightHandSideExpression -> ^( BYFIELD $leftHandSideExpression rightHandSideExpression ) | DOTDOT expression -> ^( ALLCHILDREN $leftHandSideExpression expression ) | COLONCOLON expression -> ^( LOCALNAME $leftHandSideExpression expression ) )*
{
// JS.g:1053:3: ( memberExpression -> memberExpression )
// JS.g:1054:5: memberExpression
{
pushFollow(FOLLOW_memberExpression_in_leftHandSideExpression3867);
memberExpression59=memberExpression();
_fsp--;
stream_memberExpression.add(memberExpression59.getTree());
// AST REWRITE
// elements: memberExpression
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
// 1054:25: -> memberExpression
{
adaptor.addChild(root_0, stream_memberExpression.next());
}
}
// JS.g:1056:3: ( arguments -> ^( CALL $leftHandSideExpression arguments ) | LBRACK expression RBRACK -> ^( BYINDEX $leftHandSideExpression expression ) | DOT rightHandSideExpression -> ^( BYFIELD $leftHandSideExpression rightHandSideExpression ) | DOTDOT expression -> ^( ALLCHILDREN $leftHandSideExpression expression ) | COLONCOLON expression -> ^( LOCALNAME $leftHandSideExpression expression ) )*
loop15:
do {
int alt15=6;
switch ( input.LA(1) ) {
case LPAREN:
{
alt15=1;
}
break;
case LBRACK:
{
alt15=2;
}
break;
case DOT:
{
alt15=3;
}
break;
case DOTDOT:
{
alt15=4;
}
break;
case COLONCOLON:
{
alt15=5;
}
break;
}
switch (alt15) {
case 1 :
// JS.g:1057:5: arguments
{
pushFollow(FOLLOW_arguments_in_leftHandSideExpression3888);
arguments60=arguments();
_fsp--;
stream_arguments.add(arguments60.getTree());
// AST REWRITE
// elements: leftHandSideExpression, arguments
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
// 1057:19: -> ^( CALL $leftHandSideExpression arguments )
{
// JS.g:1057:22: ^( CALL $leftHandSideExpression arguments )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(CALL, "CALL"), root_1);
adaptor.addChild(root_1, stream_retval.next());
adaptor.addChild(root_1, stream_arguments.next());
adaptor.addChild(root_0, root_1);
}
}
}
break;
case 2 :
// JS.g:1058:7: LBRACK expression RBRACK
{
LBRACK61=(Token)input.LT(1);
match(input,LBRACK,FOLLOW_LBRACK_in_leftHandSideExpression3913);
stream_LBRACK.add(LBRACK61);
pushFollow(FOLLOW_expression_in_leftHandSideExpression3915);
expression62=expression();
_fsp--;
stream_expression.add(expression62.getTree());
RBRACK63=(Token)input.LT(1);
match(input,RBRACK,FOLLOW_RBRACK_in_leftHandSideExpression3917);
stream_RBRACK.add(RBRACK63);
// AST REWRITE
// elements: expression, leftHandSideExpression
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
// 1058:33: -> ^( BYINDEX $leftHandSideExpression expression )
{
// JS.g:1058:36: ^( BYINDEX $leftHandSideExpression expression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(BYINDEX, "BYINDEX"), root_1);
adaptor.addChild(root_1, stream_retval.next());
adaptor.addChild(root_1, stream_expression.next());
adaptor.addChild(root_0, root_1);
}
}
}
break;
case 3 :
// JS.g:1059:7: DOT rightHandSideExpression
{
DOT64=(Token)input.LT(1);
match(input,DOT,FOLLOW_DOT_in_leftHandSideExpression3939);
stream_DOT.add(DOT64);
pushFollow(FOLLOW_rightHandSideExpression_in_leftHandSideExpression3941);
rightHandSideExpression65=rightHandSideExpression();
_fsp--;
stream_rightHandSideExpression.add(rightHandSideExpression65.getTree());
// AST REWRITE
// elements: rightHandSideExpression, leftHandSideExpression
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
// 1059:35: -> ^( BYFIELD $leftHandSideExpression rightHandSideExpression )
{
// JS.g:1059:38: ^( BYFIELD $leftHandSideExpression rightHandSideExpression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(BYFIELD, "BYFIELD"), root_1);
adaptor.addChild(root_1, stream_retval.next());
adaptor.addChild(root_1, stream_rightHandSideExpression.next());
adaptor.addChild(root_0, root_1);
}
}
}
break;
case 4 :
// JS.g:1060:7: DOTDOT expression
{
DOTDOT66=(Token)input.LT(1);
match(input,DOTDOT,FOLLOW_DOTDOT_in_leftHandSideExpression3962);
stream_DOTDOT.add(DOTDOT66);
pushFollow(FOLLOW_expression_in_leftHandSideExpression3964);
expression67=expression();
_fsp--;
stream_expression.add(expression67.getTree());
// AST REWRITE
// elements: expression, leftHandSideExpression
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
// 1060:25: -> ^( ALLCHILDREN $leftHandSideExpression expression )
{
// JS.g:1060:28: ^( ALLCHILDREN $leftHandSideExpression expression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(ALLCHILDREN, "ALLCHILDREN"), root_1);
adaptor.addChild(root_1, stream_retval.next());
adaptor.addChild(root_1, stream_expression.next());
adaptor.addChild(root_0, root_1);
}
}
}
break;
case 5 :
// JS.g:1061:7: COLONCOLON expression
{
COLONCOLON68=(Token)input.LT(1);
match(input,COLONCOLON,FOLLOW_COLONCOLON_in_leftHandSideExpression3983);
stream_COLONCOLON.add(COLONCOLON68);
pushFollow(FOLLOW_expression_in_leftHandSideExpression3985);
expression69=expression();
_fsp--;
stream_expression.add(expression69.getTree());
// AST REWRITE
// elements: expression, leftHandSideExpression
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
// 1061:29: -> ^( LOCALNAME $leftHandSideExpression expression )
{
// JS.g:1061:32: ^( LOCALNAME $leftHandSideExpression expression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(LOCALNAME, "LOCALNAME"), root_1);
adaptor.addChild(root_1, stream_retval.next());
adaptor.addChild(root_1, stream_expression.next());
adaptor.addChild(root_0, root_1);
}
}
}
break;
default :
break loop15;
}
} while (true);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end leftHandSideExpression
public static class rightHandSideExpression_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start rightHandSideExpression
// JS.g:1065:1: rightHandSideExpression : ( parenExpression | identifier | XmlAttribute | MUL );
public final rightHandSideExpression_return rightHandSideExpression() throws RecognitionException {
rightHandSideExpression_return retval = new rightHandSideExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token XmlAttribute72=null;
Token MUL73=null;
parenExpression_return parenExpression70 = null;
identifier_return identifier71 = null;
Object XmlAttribute72_tree=null;
Object MUL73_tree=null;
try {
// JS.g:1066:3: ( parenExpression | identifier | XmlAttribute | MUL )
int alt16=4;
switch ( input.LA(1) ) {
case LPAREN:
{
alt16=1;
}
break;
case EACH:
case GET:
case SET:
case WXML:
case NAMESPACE:
case Identifier:
{
alt16=2;
}
break;
case XmlAttribute:
{
alt16=3;
}
break;
case MUL:
{
alt16=4;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("1065:1: rightHandSideExpression : ( parenExpression | identifier | XmlAttribute | MUL );", 16, 0, input);
throw nvae;
}
switch (alt16) {
case 1 :
// JS.g:1066:5: parenExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_parenExpression_in_rightHandSideExpression4014);
parenExpression70=parenExpression();
_fsp--;
adaptor.addChild(root_0, parenExpression70.getTree());
}
break;
case 2 :
// JS.g:1067:5: identifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_identifier_in_rightHandSideExpression4021);
identifier71=identifier();
_fsp--;
adaptor.addChild(root_0, identifier71.getTree());
}
break;
case 3 :
// JS.g:1068:5: XmlAttribute
{
root_0 = (Object)adaptor.nil();
XmlAttribute72=(Token)input.LT(1);
match(input,XmlAttribute,FOLLOW_XmlAttribute_in_rightHandSideExpression4027);
XmlAttribute72_tree = (Object)adaptor.create(XmlAttribute72);
adaptor.addChild(root_0, XmlAttribute72_tree);
}
break;
case 4 :
// JS.g:1069:5: MUL
{
root_0 = (Object)adaptor.nil();
MUL73=(Token)input.LT(1);
match(input,MUL,FOLLOW_MUL_in_rightHandSideExpression4033);
MUL73_tree = (Object)adaptor.create(MUL73);
adaptor.addChild(root_0, MUL73_tree);
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end rightHandSideExpression
public static class postfixExpression_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start postfixExpression
// JS.g:1102:1: postfixExpression : leftHandSideExpression ( postfixOperator )? ;
public final postfixExpression_return postfixExpression() throws RecognitionException {
postfixExpression_return retval = new postfixExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
leftHandSideExpression_return leftHandSideExpression74 = null;
postfixOperator_return postfixOperator75 = null;
try {
// JS.g:1103:2: ( leftHandSideExpression ( postfixOperator )? )
// JS.g:1103:4: leftHandSideExpression ( postfixOperator )?
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_leftHandSideExpression_in_postfixExpression4071);
leftHandSideExpression74=leftHandSideExpression();
_fsp--;
adaptor.addChild(root_0, leftHandSideExpression74.getTree());
if (input.LA(1) == INC || input.LA(1) == DEC) promoteEOL(null);
// JS.g:1103:95: ( postfixOperator )?
int alt17=2;
int LA17_0 = input.LA(1);
if ( (LA17_0==INC) ) {
alt17=1;
}
else if ( (LA17_0==DEC) ) {
alt17=1;
}
switch (alt17) {
case 1 :
// JS.g:1103:97: postfixOperator
{
pushFollow(FOLLOW_postfixOperator_in_postfixExpression4077);
postfixOperator75=postfixOperator();
_fsp--;
root_0 = (Object)adaptor.becomeRoot(postfixOperator75.getTree(), root_0);
}
break;
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end postfixExpression
public static class postfixOperator_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start postfixOperator
// JS.g:1106:1: postfixOperator : (op= INC | op= DEC );
public final postfixOperator_return postfixOperator() throws RecognitionException {
postfixOperator_return retval = new postfixOperator_return();
retval.start = input.LT(1);
Object root_0 = null;
Token op=null;
Object op_tree=null;
try {
// JS.g:1107:2: (op= INC | op= DEC )
int alt18=2;
int LA18_0 = input.LA(1);
if ( (LA18_0==INC) ) {
alt18=1;
}
else if ( (LA18_0==DEC) ) {
alt18=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("1106:1: postfixOperator : (op= INC | op= DEC );", 18, 0, input);
throw nvae;
}
switch (alt18) {
case 1 :
// JS.g:1107:4: op= INC
{
root_0 = (Object)adaptor.nil();
op=(Token)input.LT(1);
match(input,INC,FOLLOW_INC_in_postfixOperator4095);
op_tree = (Object)adaptor.create(op);
adaptor.addChild(root_0, op_tree);
op.setType(PINC);
}
break;
case 2 :
// JS.g:1108:4: op= DEC
{
root_0 = (Object)adaptor.nil();
op=(Token)input.LT(1);
match(input,DEC,FOLLOW_DEC_in_postfixOperator4104);
op_tree = (Object)adaptor.create(op);
adaptor.addChild(root_0, op_tree);
op.setType(PDEC);
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end postfixOperator
public static class unaryExpression_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start unaryExpression
// JS.g:1115:1: unaryExpression : ( postfixExpression | unaryOperator unaryExpression | XMLLiteral );
public final unaryExpression_return unaryExpression() throws RecognitionException {
unaryExpression_return retval = new unaryExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token XMLLiteral79=null;
postfixExpression_return postfixExpression76 = null;
unaryOperator_return unaryOperator77 = null;
unaryExpression_return unaryExpression78 = null;
Object XMLLiteral79_tree=null;
try {
// JS.g:1116:2: ( postfixExpression | unaryOperator unaryExpression | XMLLiteral )
int alt19=3;
switch ( input.LA(1) ) {
case NULL:
case TRUE:
case FALSE:
case EACH:
case FUNCTION:
case NEW:
case THIS:
case GET:
case SET:
case WXML:
case NAMESPACE:
case LBRACE:
case LPAREN:
case LBRACK:
case StringLiteral:
case XmlAttribute:
case Identifier:
case RegularExpressionLiteral:
case DecimalLiteral:
case OctalIntegerLiteral:
case HexIntegerLiteral:
{
alt19=1;
}
break;
case DELETE:
case TYPEOF:
case VOID:
case YIELD:
case ADD:
case SUB:
case INC:
case DEC:
case NOT:
case INV:
{
alt19=2;
}
break;
case XMLLiteral:
{
alt19=3;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("1115:1: unaryExpression : ( postfixExpression | unaryOperator unaryExpression | XMLLiteral );", 19, 0, input);
throw nvae;
}
switch (alt19) {
case 1 :
// JS.g:1116:4: postfixExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_postfixExpression_in_unaryExpression4121);
postfixExpression76=postfixExpression();
_fsp--;
adaptor.addChild(root_0, postfixExpression76.getTree());
}
break;
case 2 :
// JS.g:1117:4: unaryOperator unaryExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_unaryOperator_in_unaryExpression4126);
unaryOperator77=unaryOperator();
_fsp--;
root_0 = (Object)adaptor.becomeRoot(unaryOperator77.getTree(), root_0);
pushFollow(FOLLOW_unaryExpression_in_unaryExpression4129);
unaryExpression78=unaryExpression();
_fsp--;
adaptor.addChild(root_0, unaryExpression78.getTree());
}
break;
case 3 :
// JS.g:1118:4: XMLLiteral
{
root_0 = (Object)adaptor.nil();
XMLLiteral79=(Token)input.LT(1);
match(input,XMLLiteral,FOLLOW_XMLLiteral_in_unaryExpression4134);
XMLLiteral79_tree = (Object)adaptor.create(XMLLiteral79);
adaptor.addChild(root_0, XMLLiteral79_tree);
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end unaryExpression
public static class unaryOperator_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start unaryOperator
// JS.g:1121:1: unaryOperator : ( DELETE | VOID | TYPEOF | INC | DEC | op= ADD | op= SUB | INV | NOT | YIELD );
public final unaryOperator_return unaryOperator() throws RecognitionException {
unaryOperator_return retval = new unaryOperator_return();
retval.start = input.LT(1);
Object root_0 = null;
Token op=null;
Token DELETE80=null;
Token VOID81=null;
Token TYPEOF82=null;
Token INC83=null;
Token DEC84=null;
Token INV85=null;
Token NOT86=null;
Token YIELD87=null;
Object op_tree=null;
Object DELETE80_tree=null;
Object VOID81_tree=null;
Object TYPEOF82_tree=null;
Object INC83_tree=null;
Object DEC84_tree=null;
Object INV85_tree=null;
Object NOT86_tree=null;
Object YIELD87_tree=null;
try {
// JS.g:1122:2: ( DELETE | VOID | TYPEOF | INC | DEC | op= ADD | op= SUB | INV | NOT | YIELD )
int alt20=10;
switch ( input.LA(1) ) {
case DELETE:
{
alt20=1;
}
break;
case VOID:
{
alt20=2;
}
break;
case TYPEOF:
{
alt20=3;
}
break;
case INC:
{
alt20=4;
}
break;
case DEC:
{
alt20=5;
}
break;
case ADD:
{
alt20=6;
}
break;
case SUB:
{
alt20=7;
}
break;
case INV:
{
alt20=8;
}
break;
case NOT:
{
alt20=9;
}
break;
case YIELD:
{
alt20=10;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("1121:1: unaryOperator : ( DELETE | VOID | TYPEOF | INC | DEC | op= ADD | op= SUB | INV | NOT | YIELD );", 20, 0, input);
throw nvae;
}
switch (alt20) {
case 1 :
// JS.g:1122:4: DELETE
{
root_0 = (Object)adaptor.nil();
DELETE80=(Token)input.LT(1);
match(input,DELETE,FOLLOW_DELETE_in_unaryOperator4146);
DELETE80_tree = (Object)adaptor.create(DELETE80);
adaptor.addChild(root_0, DELETE80_tree);
}
break;
case 2 :
// JS.g:1123:4: VOID
{
root_0 = (Object)adaptor.nil();
VOID81=(Token)input.LT(1);
match(input,VOID,FOLLOW_VOID_in_unaryOperator4151);
VOID81_tree = (Object)adaptor.create(VOID81);
adaptor.addChild(root_0, VOID81_tree);
}
break;
case 3 :
// JS.g:1124:4: TYPEOF
{
root_0 = (Object)adaptor.nil();
TYPEOF82=(Token)input.LT(1);
match(input,TYPEOF,FOLLOW_TYPEOF_in_unaryOperator4156);
TYPEOF82_tree = (Object)adaptor.create(TYPEOF82);
adaptor.addChild(root_0, TYPEOF82_tree);
}
break;
case 4 :
// JS.g:1125:4: INC
{
root_0 = (Object)adaptor.nil();
INC83=(Token)input.LT(1);
match(input,INC,FOLLOW_INC_in_unaryOperator4161);
INC83_tree = (Object)adaptor.create(INC83);
adaptor.addChild(root_0, INC83_tree);
}
break;
case 5 :
// JS.g:1126:4: DEC
{
root_0 = (Object)adaptor.nil();
DEC84=(Token)input.LT(1);
match(input,DEC,FOLLOW_DEC_in_unaryOperator4166);
DEC84_tree = (Object)adaptor.create(DEC84);
adaptor.addChild(root_0, DEC84_tree);
}
break;
case 6 :
// JS.g:1127:4: op= ADD
{
root_0 = (Object)adaptor.nil();
op=(Token)input.LT(1);
match(input,ADD,FOLLOW_ADD_in_unaryOperator4173);
op_tree = (Object)adaptor.create(op);
adaptor.addChild(root_0, op_tree);
op.setType(POS);
}
break;
case 7 :
// JS.g:1128:4: op= SUB
{
root_0 = (Object)adaptor.nil();
op=(Token)input.LT(1);
match(input,SUB,FOLLOW_SUB_in_unaryOperator4182);
op_tree = (Object)adaptor.create(op);
adaptor.addChild(root_0, op_tree);
op.setType(NEG);
}
break;
case 8 :
// JS.g:1129:4: INV
{
root_0 = (Object)adaptor.nil();
INV85=(Token)input.LT(1);
match(input,INV,FOLLOW_INV_in_unaryOperator4189);
INV85_tree = (Object)adaptor.create(INV85);
adaptor.addChild(root_0, INV85_tree);
}
break;
case 9 :
// JS.g:1130:4: NOT
{
root_0 = (Object)adaptor.nil();
NOT86=(Token)input.LT(1);
match(input,NOT,FOLLOW_NOT_in_unaryOperator4194);
NOT86_tree = (Object)adaptor.create(NOT86);
adaptor.addChild(root_0, NOT86_tree);
}
break;
case 10 :
// JS.g:1131:4: YIELD
{
root_0 = (Object)adaptor.nil();
YIELD87=(Token)input.LT(1);
match(input,YIELD,FOLLOW_YIELD_in_unaryOperator4199);
YIELD87_tree = (Object)adaptor.create(YIELD87);
adaptor.addChild(root_0, YIELD87_tree);
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end unaryOperator
public static class namespaceStatement_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start namespaceStatement
// JS.g:1158:1: namespaceStatement : DEFAULT WXML NAMESPACE ASSIGN StringLiteral semic -> ^( DEFAULT_XML_NAMESPACE DEFAULT WXML ASSIGN StringLiteral ) ;
public final namespaceStatement_return namespaceStatement() throws RecognitionException {
namespaceStatement_return retval = new namespaceStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token DEFAULT88=null;
Token WXML89=null;
Token NAMESPACE90=null;
Token ASSIGN91=null;
Token StringLiteral92=null;
semic_return semic93 = null;
Object DEFAULT88_tree=null;
Object WXML89_tree=null;
Object NAMESPACE90_tree=null;
Object ASSIGN91_tree=null;
Object StringLiteral92_tree=null;
RewriteRuleTokenStream stream_StringLiteral=new RewriteRuleTokenStream(adaptor,"token StringLiteral");
RewriteRuleTokenStream stream_WXML=new RewriteRuleTokenStream(adaptor,"token WXML");
RewriteRuleTokenStream stream_NAMESPACE=new RewriteRuleTokenStream(adaptor,"token NAMESPACE");
RewriteRuleTokenStream stream_DEFAULT=new RewriteRuleTokenStream(adaptor,"token DEFAULT");
RewriteRuleTokenStream stream_ASSIGN=new RewriteRuleTokenStream(adaptor,"token ASSIGN");
RewriteRuleSubtreeStream stream_semic=new RewriteRuleSubtreeStream(adaptor,"rule semic");
try {
// JS.g:1159:3: ( DEFAULT WXML NAMESPACE ASSIGN StringLiteral semic -> ^( DEFAULT_XML_NAMESPACE DEFAULT WXML ASSIGN StringLiteral ) )
// JS.g:1159:5: DEFAULT WXML NAMESPACE ASSIGN StringLiteral semic
{
DEFAULT88=(Token)input.LT(1);
match(input,DEFAULT,FOLLOW_DEFAULT_in_namespaceStatement4235);
stream_DEFAULT.add(DEFAULT88);
WXML89=(Token)input.LT(1);
match(input,WXML,FOLLOW_WXML_in_namespaceStatement4237);
stream_WXML.add(WXML89);
NAMESPACE90=(Token)input.LT(1);
match(input,NAMESPACE,FOLLOW_NAMESPACE_in_namespaceStatement4239);
stream_NAMESPACE.add(NAMESPACE90);
ASSIGN91=(Token)input.LT(1);
match(input,ASSIGN,FOLLOW_ASSIGN_in_namespaceStatement4241);
stream_ASSIGN.add(ASSIGN91);
StringLiteral92=(Token)input.LT(1);
match(input,StringLiteral,FOLLOW_StringLiteral_in_namespaceStatement4243);
stream_StringLiteral.add(StringLiteral92);
pushFollow(FOLLOW_semic_in_namespaceStatement4245);
semic93=semic();
_fsp--;
stream_semic.add(semic93.getTree());
// AST REWRITE
// elements: DEFAULT, StringLiteral, WXML, ASSIGN
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
// 1160:5: -> ^( DEFAULT_XML_NAMESPACE DEFAULT WXML ASSIGN StringLiteral )
{
// JS.g:1160:8: ^( DEFAULT_XML_NAMESPACE DEFAULT WXML ASSIGN StringLiteral )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(DEFAULT_XML_NAMESPACE, "DEFAULT_XML_NAMESPACE"), root_1);
adaptor.addChild(root_1, stream_DEFAULT.next());
adaptor.addChild(root_1, stream_WXML.next());
adaptor.addChild(root_1, stream_ASSIGN.next());
adaptor.addChild(root_1, stream_StringLiteral.next());
adaptor.addChild(root_0, root_1);
}
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end namespaceStatement
public static class multiplicativeExpression_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start multiplicativeExpression
// JS.g:1165:1: multiplicativeExpression : unaryExpression ( ( MUL | DIV | MOD ) unaryExpression )* ;
public final multiplicativeExpression_return multiplicativeExpression() throws RecognitionException {
multiplicativeExpression_return retval = new multiplicativeExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set95=null;
unaryExpression_return unaryExpression94 = null;
unaryExpression_return unaryExpression96 = null;
Object set95_tree=null;
try {
// JS.g:1166:2: ( unaryExpression ( ( MUL | DIV | MOD ) unaryExpression )* )
// JS.g:1166:4: unaryExpression ( ( MUL | DIV | MOD ) unaryExpression )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression4277);
unaryExpression94=unaryExpression();
_fsp--;
adaptor.addChild(root_0, unaryExpression94.getTree());
// JS.g:1166:20: ( ( MUL | DIV | MOD ) unaryExpression )*
loop21:
do {
int alt21=2;
int LA21_0 = input.LA(1);
if ( ((LA21_0>=MUL && LA21_0<=MOD)||LA21_0==DIV) ) {
alt21=1;
}
switch (alt21) {
case 1 :
// JS.g:1166:22: ( MUL | DIV | MOD ) unaryExpression
{
set95=(Token)input.LT(1);
if ( (input.LA(1)>=MUL && input.LA(1)<=MOD)||input.LA(1)==DIV ) {
input.consume();
root_0 = (Object)adaptor.becomeRoot(adaptor.create(set95), root_0);
errorRecovery=false;
}
else {
MismatchedSetException mse =
new MismatchedSetException(null,input);
recoverFromMismatchedSet(input,mse,FOLLOW_set_in_multiplicativeExpression4281); throw mse;
}
pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression4296);
unaryExpression96=unaryExpression();
_fsp--;
adaptor.addChild(root_0, unaryExpression96.getTree());
}
break;
default :
break loop21;
}
} while (true);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end multiplicativeExpression
public static class additiveExpression_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start additiveExpression
// JS.g:1173:1: additiveExpression : multiplicativeExpression ( ( ADD | SUB ) multiplicativeExpression )* ;
public final additiveExpression_return additiveExpression() throws RecognitionException {
additiveExpression_return retval = new additiveExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set98=null;
multiplicativeExpression_return multiplicativeExpression97 = null;
multiplicativeExpression_return multiplicativeExpression99 = null;
Object set98_tree=null;
try {
// JS.g:1174:2: ( multiplicativeExpression ( ( ADD | SUB ) multiplicativeExpression )* )
// JS.g:1174:4: multiplicativeExpression ( ( ADD | SUB ) multiplicativeExpression )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression4314);
multiplicativeExpression97=multiplicativeExpression();
_fsp--;
adaptor.addChild(root_0, multiplicativeExpression97.getTree());
// JS.g:1174:29: ( ( ADD | SUB ) multiplicativeExpression )*
loop22:
do {
int alt22=2;
int LA22_0 = input.LA(1);
if ( ((LA22_0>=ADD && LA22_0<=SUB)) ) {
alt22=1;
}
switch (alt22) {
case 1 :
// JS.g:1174:31: ( ADD | SUB ) multiplicativeExpression
{
set98=(Token)input.LT(1);
if ( (input.LA(1)>=ADD && input.LA(1)<=SUB) ) {
input.consume();
root_0 = (Object)adaptor.becomeRoot(adaptor.create(set98), root_0);
errorRecovery=false;
}
else {
MismatchedSetException mse =
new MismatchedSetException(null,input);
recoverFromMismatchedSet(input,mse,FOLLOW_set_in_additiveExpression4318); throw mse;
}
pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression4329);
multiplicativeExpression99=multiplicativeExpression();
_fsp--;
adaptor.addChild(root_0, multiplicativeExpression99.getTree());
}
break;
default :
break loop22;
}
} while (true);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end additiveExpression
public static class shiftExpression_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start shiftExpression
// JS.g:1181:1: shiftExpression : additiveExpression ( ( SHL | SHR | SHU ) additiveExpression )* ;
public final shiftExpression_return shiftExpression() throws RecognitionException {
shiftExpression_return retval = new shiftExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set101=null;
additiveExpression_return additiveExpression100 = null;
additiveExpression_return additiveExpression102 = null;
Object set101_tree=null;
try {
// JS.g:1182:2: ( additiveExpression ( ( SHL | SHR | SHU ) additiveExpression )* )
// JS.g:1182:4: additiveExpression ( ( SHL | SHR | SHU ) additiveExpression )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_additiveExpression_in_shiftExpression4348);
additiveExpression100=additiveExpression();
_fsp--;
adaptor.addChild(root_0, additiveExpression100.getTree());
// JS.g:1182:23: ( ( SHL | SHR | SHU ) additiveExpression )*
loop23:
do {
int alt23=2;
int LA23_0 = input.LA(1);
if ( ((LA23_0>=SHL && LA23_0<=SHU)) ) {
alt23=1;
}
switch (alt23) {
case 1 :
// JS.g:1182:25: ( SHL | SHR | SHU ) additiveExpression
{
set101=(Token)input.LT(1);
if ( (input.LA(1)>=SHL && input.LA(1)<=SHU) ) {
input.consume();
root_0 = (Object)adaptor.becomeRoot(adaptor.create(set101), root_0);
errorRecovery=false;
}
else {
MismatchedSetException mse =
new MismatchedSetException(null,input);
recoverFromMismatchedSet(input,mse,FOLLOW_set_in_shiftExpression4352); throw mse;
}
pushFollow(FOLLOW_additiveExpression_in_shiftExpression4367);
additiveExpression102=additiveExpression();
_fsp--;
adaptor.addChild(root_0, additiveExpression102.getTree());
}
break;
default :
break loop23;
}
} while (true);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end shiftExpression
public static class relationalExpression_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start relationalExpression
// JS.g:1189:1: relationalExpression : shiftExpression ( ( LT | GT | LTE | GTE | INSTANCEOF | IN ) shiftExpression )* ;
public final relationalExpression_return relationalExpression() throws RecognitionException {
relationalExpression_return retval = new relationalExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set104=null;
shiftExpression_return shiftExpression103 = null;
shiftExpression_return shiftExpression105 = null;
Object set104_tree=null;
try {
// JS.g:1190:2: ( shiftExpression ( ( LT | GT | LTE | GTE | INSTANCEOF | IN ) shiftExpression )* )
// JS.g:1190:4: shiftExpression ( ( LT | GT | LTE | GTE | INSTANCEOF | IN ) shiftExpression )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_shiftExpression_in_relationalExpression4386);
shiftExpression103=shiftExpression();
_fsp--;
adaptor.addChild(root_0, shiftExpression103.getTree());
// JS.g:1190:20: ( ( LT | GT | LTE | GTE | INSTANCEOF | IN ) shiftExpression )*
loop24:
do {
int alt24=2;
int LA24_0 = input.LA(1);
if ( (LA24_0==INSTANCEOF||(LA24_0>=LT && LA24_0<=GTE)) ) {
alt24=1;
}
else if ( (LA24_0==IN) ) {
alt24=1;
}
switch (alt24) {
case 1 :
// JS.g:1190:22: ( LT | GT | LTE | GTE | INSTANCEOF | IN ) shiftExpression
{
set104=(Token)input.LT(1);
if ( (input.LA(1)>=IN && input.LA(1)<=INSTANCEOF)||(input.LA(1)>=LT && input.LA(1)<=GTE) ) {
input.consume();
root_0 = (Object)adaptor.becomeRoot(adaptor.create(set104), root_0);
errorRecovery=false;
}
else {
MismatchedSetException mse =
new MismatchedSetException(null,input);
recoverFromMismatchedSet(input,mse,FOLLOW_set_in_relationalExpression4390); throw mse;
}
pushFollow(FOLLOW_shiftExpression_in_relationalExpression4417);
shiftExpression105=shiftExpression();
_fsp--;
adaptor.addChild(root_0, shiftExpression105.getTree());
}
break;
default :
break loop24;
}
} while (true);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end relationalExpression
public static class relationalExpressionNoIn_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start relationalExpressionNoIn
// JS.g:1193:1: relationalExpressionNoIn : shiftExpression ( ( LT | GT | LTE | GTE | INSTANCEOF ) shiftExpression )* ;
public final relationalExpressionNoIn_return relationalExpressionNoIn() throws RecognitionException {
relationalExpressionNoIn_return retval = new relationalExpressionNoIn_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set107=null;
shiftExpression_return shiftExpression106 = null;
shiftExpression_return shiftExpression108 = null;
Object set107_tree=null;
try {
// JS.g:1194:2: ( shiftExpression ( ( LT | GT | LTE | GTE | INSTANCEOF ) shiftExpression )* )
// JS.g:1194:4: shiftExpression ( ( LT | GT | LTE | GTE | INSTANCEOF ) shiftExpression )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_shiftExpression_in_relationalExpressionNoIn4431);
shiftExpression106=shiftExpression();
_fsp--;
adaptor.addChild(root_0, shiftExpression106.getTree());
// JS.g:1194:20: ( ( LT | GT | LTE | GTE | INSTANCEOF ) shiftExpression )*
loop25:
do {
int alt25=2;
int LA25_0 = input.LA(1);
if ( (LA25_0==INSTANCEOF||(LA25_0>=LT && LA25_0<=GTE)) ) {
alt25=1;
}
switch (alt25) {
case 1 :
// JS.g:1194:22: ( LT | GT | LTE | GTE | INSTANCEOF ) shiftExpression
{
set107=(Token)input.LT(1);
if ( input.LA(1)==INSTANCEOF||(input.LA(1)>=LT && input.LA(1)<=GTE) ) {
input.consume();
root_0 = (Object)adaptor.becomeRoot(adaptor.create(set107), root_0);
errorRecovery=false;
}
else {
MismatchedSetException mse =
new MismatchedSetException(null,input);
recoverFromMismatchedSet(input,mse,FOLLOW_set_in_relationalExpressionNoIn4435); throw mse;
}
pushFollow(FOLLOW_shiftExpression_in_relationalExpressionNoIn4458);
shiftExpression108=shiftExpression();
_fsp--;
adaptor.addChild(root_0, shiftExpression108.getTree());
}
break;
default :
break loop25;
}
} while (true);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end relationalExpressionNoIn
public static class equalityExpression_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start equalityExpression
// JS.g:1201:1: equalityExpression : relationalExpression ( ( EQ | NEQ | SAME | NSAME ) relationalExpression )* ;
public final equalityExpression_return equalityExpression() throws RecognitionException {
equalityExpression_return retval = new equalityExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set110=null;
relationalExpression_return relationalExpression109 = null;
relationalExpression_return relationalExpression111 = null;
Object set110_tree=null;
try {
// JS.g:1202:2: ( relationalExpression ( ( EQ | NEQ | SAME | NSAME ) relationalExpression )* )
// JS.g:1202:4: relationalExpression ( ( EQ | NEQ | SAME | NSAME ) relationalExpression )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_relationalExpression_in_equalityExpression4477);
relationalExpression109=relationalExpression();
_fsp--;
adaptor.addChild(root_0, relationalExpression109.getTree());
// JS.g:1202:25: ( ( EQ | NEQ | SAME | NSAME ) relationalExpression )*
loop26:
do {
int alt26=2;
int LA26_0 = input.LA(1);
if ( ((LA26_0>=EQ && LA26_0<=NSAME)) ) {
alt26=1;
}
switch (alt26) {
case 1 :
// JS.g:1202:27: ( EQ | NEQ | SAME | NSAME ) relationalExpression
{
set110=(Token)input.LT(1);
if ( (input.LA(1)>=EQ && input.LA(1)<=NSAME) ) {
input.consume();
root_0 = (Object)adaptor.becomeRoot(adaptor.create(set110), root_0);
errorRecovery=false;
}
else {
MismatchedSetException mse =
new MismatchedSetException(null,input);
recoverFromMismatchedSet(input,mse,FOLLOW_set_in_equalityExpression4481); throw mse;
}
pushFollow(FOLLOW_relationalExpression_in_equalityExpression4500);
relationalExpression111=relationalExpression();
_fsp--;
adaptor.addChild(root_0, relationalExpression111.getTree());
}
break;
default :
break loop26;
}
} while (true);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end equalityExpression
public static class equalityExpressionNoIn_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start equalityExpressionNoIn
// JS.g:1205:1: equalityExpressionNoIn : relationalExpressionNoIn ( ( EQ | NEQ | SAME | NSAME ) relationalExpressionNoIn )* ;
public final equalityExpressionNoIn_return equalityExpressionNoIn() throws RecognitionException {
equalityExpressionNoIn_return retval = new equalityExpressionNoIn_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set113=null;
relationalExpressionNoIn_return relationalExpressionNoIn112 = null;
relationalExpressionNoIn_return relationalExpressionNoIn114 = null;
Object set113_tree=null;
try {
// JS.g:1206:2: ( relationalExpressionNoIn ( ( EQ | NEQ | SAME | NSAME ) relationalExpressionNoIn )* )
// JS.g:1206:4: relationalExpressionNoIn ( ( EQ | NEQ | SAME | NSAME ) relationalExpressionNoIn )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_relationalExpressionNoIn_in_equalityExpressionNoIn4514);
relationalExpressionNoIn112=relationalExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, relationalExpressionNoIn112.getTree());
// JS.g:1206:29: ( ( EQ | NEQ | SAME | NSAME ) relationalExpressionNoIn )*
loop27:
do {
int alt27=2;
int LA27_0 = input.LA(1);
if ( ((LA27_0>=EQ && LA27_0<=NSAME)) ) {
alt27=1;
}
switch (alt27) {
case 1 :
// JS.g:1206:31: ( EQ | NEQ | SAME | NSAME ) relationalExpressionNoIn
{
set113=(Token)input.LT(1);
if ( (input.LA(1)>=EQ && input.LA(1)<=NSAME) ) {
input.consume();
root_0 = (Object)adaptor.becomeRoot(adaptor.create(set113), root_0);
errorRecovery=false;
}
else {
MismatchedSetException mse =
new MismatchedSetException(null,input);
recoverFromMismatchedSet(input,mse,FOLLOW_set_in_equalityExpressionNoIn4518); throw mse;
}
pushFollow(FOLLOW_relationalExpressionNoIn_in_equalityExpressionNoIn4537);
relationalExpressionNoIn114=relationalExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, relationalExpressionNoIn114.getTree());
}
break;
default :
break loop27;
}
} while (true);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end equalityExpressionNoIn
public static class bitwiseANDExpression_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start bitwiseANDExpression
// JS.g:1213:1: bitwiseANDExpression : equalityExpression ( AND equalityExpression )* ;
public final bitwiseANDExpression_return bitwiseANDExpression() throws RecognitionException {
bitwiseANDExpression_return retval = new bitwiseANDExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token AND116=null;
equalityExpression_return equalityExpression115 = null;
equalityExpression_return equalityExpression117 = null;
Object AND116_tree=null;
try {
// JS.g:1214:2: ( equalityExpression ( AND equalityExpression )* )
// JS.g:1214:4: equalityExpression ( AND equalityExpression )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_equalityExpression_in_bitwiseANDExpression4557);
equalityExpression115=equalityExpression();
_fsp--;
adaptor.addChild(root_0, equalityExpression115.getTree());
// JS.g:1214:23: ( AND equalityExpression )*
loop28:
do {
int alt28=2;
int LA28_0 = input.LA(1);
if ( (LA28_0==AND) ) {
alt28=1;
}
switch (alt28) {
case 1 :
// JS.g:1214:25: AND equalityExpression
{
AND116=(Token)input.LT(1);
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_bitwiseANDExpression4564);
equalityExpression117=equalityExpression();
_fsp--;
adaptor.addChild(root_0, equalityExpression117.getTree());
}
break;
default :
break loop28;
}
} while (true);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end bitwiseANDExpression
public static class bitwiseANDExpressionNoIn_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start bitwiseANDExpressionNoIn
// JS.g:1217:1: bitwiseANDExpressionNoIn : equalityExpressionNoIn ( AND equalityExpressionNoIn )* ;
public final bitwiseANDExpressionNoIn_return bitwiseANDExpressionNoIn() throws RecognitionException {
bitwiseANDExpressionNoIn_return retval = new bitwiseANDExpressionNoIn_return();
retval.start = input.LT(1);
Object root_0 = null;
Token AND119=null;
equalityExpressionNoIn_return equalityExpressionNoIn118 = null;
equalityExpressionNoIn_return equalityExpressionNoIn120 = null;
Object AND119_tree=null;
try {
// JS.g:1218:2: ( equalityExpressionNoIn ( AND equalityExpressionNoIn )* )
// JS.g:1218:4: equalityExpressionNoIn ( AND equalityExpressionNoIn )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_equalityExpressionNoIn_in_bitwiseANDExpressionNoIn4578);
equalityExpressionNoIn118=equalityExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, equalityExpressionNoIn118.getTree());
// JS.g:1218:27: ( AND equalityExpressionNoIn )*
loop29:
do {
int alt29=2;
int LA29_0 = input.LA(1);
if ( (LA29_0==AND) ) {
alt29=1;
}
switch (alt29) {
case 1 :
// JS.g:1218:29: AND equalityExpressionNoIn
{
AND119=(Token)input.LT(1);
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_bitwiseANDExpressionNoIn4585);
equalityExpressionNoIn120=equalityExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, equalityExpressionNoIn120.getTree());
}
break;
default :
break loop29;
}
} while (true);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end bitwiseANDExpressionNoIn
public static class bitwiseXORExpression_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start bitwiseXORExpression
// JS.g:1221:1: bitwiseXORExpression : bitwiseANDExpression ( XOR bitwiseANDExpression )* ;
public final bitwiseXORExpression_return bitwiseXORExpression() throws RecognitionException {
bitwiseXORExpression_return retval = new bitwiseXORExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token XOR122=null;
bitwiseANDExpression_return bitwiseANDExpression121 = null;
bitwiseANDExpression_return bitwiseANDExpression123 = null;
Object XOR122_tree=null;
try {
// JS.g:1222:2: ( bitwiseANDExpression ( XOR bitwiseANDExpression )* )
// JS.g:1222:4: bitwiseANDExpression ( XOR bitwiseANDExpression )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_bitwiseANDExpression_in_bitwiseXORExpression4601);
bitwiseANDExpression121=bitwiseANDExpression();
_fsp--;
adaptor.addChild(root_0, bitwiseANDExpression121.getTree());
// JS.g:1222:25: ( XOR bitwiseANDExpression )*
loop30:
do {
int alt30=2;
int LA30_0 = input.LA(1);
if ( (LA30_0==XOR) ) {
alt30=1;
}
switch (alt30) {
case 1 :
// JS.g:1222:27: XOR bitwiseANDExpression
{
XOR122=(Token)input.LT(1);
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_bitwiseXORExpression4608);
bitwiseANDExpression123=bitwiseANDExpression();
_fsp--;
adaptor.addChild(root_0, bitwiseANDExpression123.getTree());
}
break;
default :
break loop30;
}
} while (true);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end bitwiseXORExpression
public static class bitwiseXORExpressionNoIn_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start bitwiseXORExpressionNoIn
// JS.g:1225:1: bitwiseXORExpressionNoIn : bitwiseANDExpressionNoIn ( XOR bitwiseANDExpressionNoIn )* ;
public final bitwiseXORExpressionNoIn_return bitwiseXORExpressionNoIn() throws RecognitionException {
bitwiseXORExpressionNoIn_return retval = new bitwiseXORExpressionNoIn_return();
retval.start = input.LT(1);
Object root_0 = null;
Token XOR125=null;
bitwiseANDExpressionNoIn_return bitwiseANDExpressionNoIn124 = null;
bitwiseANDExpressionNoIn_return bitwiseANDExpressionNoIn126 = null;
Object XOR125_tree=null;
try {
// JS.g:1226:2: ( bitwiseANDExpressionNoIn ( XOR bitwiseANDExpressionNoIn )* )
// JS.g:1226:4: bitwiseANDExpressionNoIn ( XOR bitwiseANDExpressionNoIn )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_bitwiseANDExpressionNoIn_in_bitwiseXORExpressionNoIn4624);
bitwiseANDExpressionNoIn124=bitwiseANDExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, bitwiseANDExpressionNoIn124.getTree());
// JS.g:1226:29: ( XOR bitwiseANDExpressionNoIn )*
loop31:
do {
int alt31=2;
int LA31_0 = input.LA(1);
if ( (LA31_0==XOR) ) {
alt31=1;
}
switch (alt31) {
case 1 :
// JS.g:1226:31: XOR bitwiseANDExpressionNoIn
{
XOR125=(Token)input.LT(1);
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_bitwiseXORExpressionNoIn4631);
bitwiseANDExpressionNoIn126=bitwiseANDExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, bitwiseANDExpressionNoIn126.getTree());
}
break;
default :
break loop31;
}
} while (true);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end bitwiseXORExpressionNoIn
public static class bitwiseORExpression_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start bitwiseORExpression
// JS.g:1229:1: bitwiseORExpression : bitwiseXORExpression ( OR bitwiseXORExpression )* ;
public final bitwiseORExpression_return bitwiseORExpression() throws RecognitionException {
bitwiseORExpression_return retval = new bitwiseORExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token OR128=null;
bitwiseXORExpression_return bitwiseXORExpression127 = null;
bitwiseXORExpression_return bitwiseXORExpression129 = null;
Object OR128_tree=null;
try {
// JS.g:1230:2: ( bitwiseXORExpression ( OR bitwiseXORExpression )* )
// JS.g:1230:4: bitwiseXORExpression ( OR bitwiseXORExpression )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_bitwiseXORExpression_in_bitwiseORExpression4646);
bitwiseXORExpression127=bitwiseXORExpression();
_fsp--;
adaptor.addChild(root_0, bitwiseXORExpression127.getTree());
// JS.g:1230:25: ( OR bitwiseXORExpression )*
loop32:
do {
int alt32=2;
int LA32_0 = input.LA(1);
if ( (LA32_0==OR) ) {
alt32=1;
}
switch (alt32) {
case 1 :
// JS.g:1230:27: OR bitwiseXORExpression
{
OR128=(Token)input.LT(1);
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_bitwiseORExpression4653);
bitwiseXORExpression129=bitwiseXORExpression();
_fsp--;
adaptor.addChild(root_0, bitwiseXORExpression129.getTree());
}
break;
default :
break loop32;
}
} while (true);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end bitwiseORExpression
public static class bitwiseORExpressionNoIn_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start bitwiseORExpressionNoIn
// JS.g:1233:1: bitwiseORExpressionNoIn : bitwiseXORExpressionNoIn ( OR bitwiseXORExpressionNoIn )* ;
public final bitwiseORExpressionNoIn_return bitwiseORExpressionNoIn() throws RecognitionException {
bitwiseORExpressionNoIn_return retval = new bitwiseORExpressionNoIn_return();
retval.start = input.LT(1);
Object root_0 = null;
Token OR131=null;
bitwiseXORExpressionNoIn_return bitwiseXORExpressionNoIn130 = null;
bitwiseXORExpressionNoIn_return bitwiseXORExpressionNoIn132 = null;
Object OR131_tree=null;
try {
// JS.g:1234:2: ( bitwiseXORExpressionNoIn ( OR bitwiseXORExpressionNoIn )* )
// JS.g:1234:4: bitwiseXORExpressionNoIn ( OR bitwiseXORExpressionNoIn )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_bitwiseXORExpressionNoIn_in_bitwiseORExpressionNoIn4668);
bitwiseXORExpressionNoIn130=bitwiseXORExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, bitwiseXORExpressionNoIn130.getTree());
// JS.g:1234:29: ( OR bitwiseXORExpressionNoIn )*
loop33:
do {
int alt33=2;
int LA33_0 = input.LA(1);
if ( (LA33_0==OR) ) {
alt33=1;
}
switch (alt33) {
case 1 :
// JS.g:1234:31: OR bitwiseXORExpressionNoIn
{
OR131=(Token)input.LT(1);
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_bitwiseORExpressionNoIn4675);
bitwiseXORExpressionNoIn132=bitwiseXORExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, bitwiseXORExpressionNoIn132.getTree());
}
break;
default :
break loop33;
}
} while (true);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end bitwiseORExpressionNoIn
public static class logicalANDExpression_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start logicalANDExpression
// JS.g:1241:1: logicalANDExpression : bitwiseORExpression ( LAND bitwiseORExpression )* ;
public final logicalANDExpression_return logicalANDExpression() throws RecognitionException {
logicalANDExpression_return retval = new logicalANDExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LAND134=null;
bitwiseORExpression_return bitwiseORExpression133 = null;
bitwiseORExpression_return bitwiseORExpression135 = null;
Object LAND134_tree=null;
try {
// JS.g:1242:2: ( bitwiseORExpression ( LAND bitwiseORExpression )* )
// JS.g:1242:4: bitwiseORExpression ( LAND bitwiseORExpression )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_bitwiseORExpression_in_logicalANDExpression4694);
bitwiseORExpression133=bitwiseORExpression();
_fsp--;
adaptor.addChild(root_0, bitwiseORExpression133.getTree());
// JS.g:1242:24: ( LAND bitwiseORExpression )*
loop34:
do {
int alt34=2;
int LA34_0 = input.LA(1);
if ( (LA34_0==LAND) ) {
alt34=1;
}
switch (alt34) {
case 1 :
// JS.g:1242:26: LAND bitwiseORExpression
{
LAND134=(Token)input.LT(1);
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_logicalANDExpression4701);
bitwiseORExpression135=bitwiseORExpression();
_fsp--;
adaptor.addChild(root_0, bitwiseORExpression135.getTree());
}
break;
default :
break loop34;
}
} while (true);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end logicalANDExpression
public static class logicalANDExpressionNoIn_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start logicalANDExpressionNoIn
// JS.g:1245:1: logicalANDExpressionNoIn : bitwiseORExpressionNoIn ( LAND bitwiseORExpressionNoIn )* ;
public final logicalANDExpressionNoIn_return logicalANDExpressionNoIn() throws RecognitionException {
logicalANDExpressionNoIn_return retval = new logicalANDExpressionNoIn_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LAND137=null;
bitwiseORExpressionNoIn_return bitwiseORExpressionNoIn136 = null;
bitwiseORExpressionNoIn_return bitwiseORExpressionNoIn138 = null;
Object LAND137_tree=null;
try {
// JS.g:1246:2: ( bitwiseORExpressionNoIn ( LAND bitwiseORExpressionNoIn )* )
// JS.g:1246:4: bitwiseORExpressionNoIn ( LAND bitwiseORExpressionNoIn )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_bitwiseORExpressionNoIn_in_logicalANDExpressionNoIn4715);
bitwiseORExpressionNoIn136=bitwiseORExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, bitwiseORExpressionNoIn136.getTree());
// JS.g:1246:28: ( LAND bitwiseORExpressionNoIn )*
loop35:
do {
int alt35=2;
int LA35_0 = input.LA(1);
if ( (LA35_0==LAND) ) {
alt35=1;
}
switch (alt35) {
case 1 :
// JS.g:1246:30: LAND bitwiseORExpressionNoIn
{
LAND137=(Token)input.LT(1);
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_logicalANDExpressionNoIn4722);
bitwiseORExpressionNoIn138=bitwiseORExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, bitwiseORExpressionNoIn138.getTree());
}
break;
default :
break loop35;
}
} while (true);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end logicalANDExpressionNoIn
public static class logicalORExpression_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start logicalORExpression
// JS.g:1249:1: logicalORExpression : logicalANDExpression ( LOR logicalANDExpression )* ;
public final logicalORExpression_return logicalORExpression() throws RecognitionException {
logicalORExpression_return retval = new logicalORExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LOR140=null;
logicalANDExpression_return logicalANDExpression139 = null;
logicalANDExpression_return logicalANDExpression141 = null;
Object LOR140_tree=null;
try {
// JS.g:1250:2: ( logicalANDExpression ( LOR logicalANDExpression )* )
// JS.g:1250:4: logicalANDExpression ( LOR logicalANDExpression )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_logicalANDExpression_in_logicalORExpression4737);
logicalANDExpression139=logicalANDExpression();
_fsp--;
adaptor.addChild(root_0, logicalANDExpression139.getTree());
// JS.g:1250:25: ( LOR logicalANDExpression )*
loop36:
do {
int alt36=2;
int LA36_0 = input.LA(1);
if ( (LA36_0==LOR) ) {
alt36=1;
}
switch (alt36) {
case 1 :
// JS.g:1250:27: LOR logicalANDExpression
{
LOR140=(Token)input.LT(1);
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_logicalORExpression4744);
logicalANDExpression141=logicalANDExpression();
_fsp--;
adaptor.addChild(root_0, logicalANDExpression141.getTree());
}
break;
default :
break loop36;
}
} while (true);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end logicalORExpression
public static class logicalORExpressionNoIn_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start logicalORExpressionNoIn
// JS.g:1253:1: logicalORExpressionNoIn : logicalANDExpressionNoIn ( LOR logicalANDExpressionNoIn )* ;
public final logicalORExpressionNoIn_return logicalORExpressionNoIn() throws RecognitionException {
logicalORExpressionNoIn_return retval = new logicalORExpressionNoIn_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LOR143=null;
logicalANDExpressionNoIn_return logicalANDExpressionNoIn142 = null;
logicalANDExpressionNoIn_return logicalANDExpressionNoIn144 = null;
Object LOR143_tree=null;
try {
// JS.g:1254:2: ( logicalANDExpressionNoIn ( LOR logicalANDExpressionNoIn )* )
// JS.g:1254:4: logicalANDExpressionNoIn ( LOR logicalANDExpressionNoIn )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_logicalANDExpressionNoIn_in_logicalORExpressionNoIn4759);
logicalANDExpressionNoIn142=logicalANDExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, logicalANDExpressionNoIn142.getTree());
// JS.g:1254:29: ( LOR logicalANDExpressionNoIn )*
loop37:
do {
int alt37=2;
int LA37_0 = input.LA(1);
if ( (LA37_0==LOR) ) {
alt37=1;
}
switch (alt37) {
case 1 :
// JS.g:1254:31: LOR logicalANDExpressionNoIn
{
LOR143=(Token)input.LT(1);
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_logicalORExpressionNoIn4766);
logicalANDExpressionNoIn144=logicalANDExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, logicalANDExpressionNoIn144.getTree());
}
break;
default :
break loop37;
}
} while (true);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end logicalORExpressionNoIn
public static class conditionalExpression_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start conditionalExpression
// JS.g:1261:1: conditionalExpression : logicalORExpression ( QUE assignmentExpression COLON assignmentExpression )? ;
public final conditionalExpression_return conditionalExpression() throws RecognitionException {
conditionalExpression_return retval = new conditionalExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token QUE146=null;
Token COLON148=null;
logicalORExpression_return logicalORExpression145 = null;
assignmentExpression_return assignmentExpression147 = null;
assignmentExpression_return assignmentExpression149 = null;
Object QUE146_tree=null;
Object COLON148_tree=null;
try {
// JS.g:1262:2: ( logicalORExpression ( QUE assignmentExpression COLON assignmentExpression )? )
// JS.g:1262:4: logicalORExpression ( QUE assignmentExpression COLON assignmentExpression )?
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_logicalORExpression_in_conditionalExpression4785);
logicalORExpression145=logicalORExpression();
_fsp--;
adaptor.addChild(root_0, logicalORExpression145.getTree());
// JS.g:1262:24: ( QUE assignmentExpression COLON assignmentExpression )?
int alt38=2;
int LA38_0 = input.LA(1);
if ( (LA38_0==QUE) ) {
alt38=1;
}
switch (alt38) {
case 1 :
// JS.g:1262:26: QUE assignmentExpression COLON assignmentExpression
{
QUE146=(Token)input.LT(1);
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_conditionalExpression4792);
assignmentExpression147=assignmentExpression();
_fsp--;
adaptor.addChild(root_0, assignmentExpression147.getTree());
COLON148=(Token)input.LT(1);
match(input,COLON,FOLLOW_COLON_in_conditionalExpression4794);
pushFollow(FOLLOW_assignmentExpression_in_conditionalExpression4797);
assignmentExpression149=assignmentExpression();
_fsp--;
adaptor.addChild(root_0, assignmentExpression149.getTree());
}
break;
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end conditionalExpression
public static class conditionalExpressionNoIn_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start conditionalExpressionNoIn
// JS.g:1265:1: conditionalExpressionNoIn : logicalORExpressionNoIn ( QUE assignmentExpressionNoIn COLON assignmentExpressionNoIn )? ;
public final conditionalExpressionNoIn_return conditionalExpressionNoIn() throws RecognitionException {
conditionalExpressionNoIn_return retval = new conditionalExpressionNoIn_return();
retval.start = input.LT(1);
Object root_0 = null;
Token QUE151=null;
Token COLON153=null;
logicalORExpressionNoIn_return logicalORExpressionNoIn150 = null;
assignmentExpressionNoIn_return assignmentExpressionNoIn152 = null;
assignmentExpressionNoIn_return assignmentExpressionNoIn154 = null;
Object QUE151_tree=null;
Object COLON153_tree=null;
try {
// JS.g:1266:2: ( logicalORExpressionNoIn ( QUE assignmentExpressionNoIn COLON assignmentExpressionNoIn )? )
// JS.g:1266:4: logicalORExpressionNoIn ( QUE assignmentExpressionNoIn COLON assignmentExpressionNoIn )?
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_logicalORExpressionNoIn_in_conditionalExpressionNoIn4811);
logicalORExpressionNoIn150=logicalORExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, logicalORExpressionNoIn150.getTree());
// JS.g:1266:28: ( QUE assignmentExpressionNoIn COLON assignmentExpressionNoIn )?
int alt39=2;
int LA39_0 = input.LA(1);
if ( (LA39_0==QUE) ) {
alt39=1;
}
switch (alt39) {
case 1 :
// JS.g:1266:30: QUE assignmentExpressionNoIn COLON assignmentExpressionNoIn
{
QUE151=(Token)input.LT(1);
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_conditionalExpressionNoIn4818);
assignmentExpressionNoIn152=assignmentExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, assignmentExpressionNoIn152.getTree());
COLON153=(Token)input.LT(1);
match(input,COLON,FOLLOW_COLON_in_conditionalExpressionNoIn4820);
pushFollow(FOLLOW_assignmentExpressionNoIn_in_conditionalExpressionNoIn4823);
assignmentExpressionNoIn154=assignmentExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, assignmentExpressionNoIn154.getTree());
}
break;
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end conditionalExpressionNoIn
public static class assignmentExpression_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start assignmentExpression
// JS.g:1295:1: assignmentExpression : lhs= conditionalExpression ({...}? assignmentOperator assignmentExpression )? ;
public final assignmentExpression_return assignmentExpression() throws RecognitionException {
assignmentExpression_return retval = new assignmentExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
conditionalExpression_return lhs = null;
assignmentOperator_return assignmentOperator155 = null;
assignmentExpression_return assignmentExpression156 = null;
Object[] isLhs = new Object[1];
try {
// JS.g:1300:2: (lhs= conditionalExpression ({...}? assignmentOperator assignmentExpression )? )
// JS.g:1300:4: lhs= conditionalExpression ({...}? assignmentOperator assignmentExpression )?
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_conditionalExpression_in_assignmentExpression4851);
lhs=conditionalExpression();
_fsp--;
adaptor.addChild(root_0, lhs.getTree());
// JS.g:1301:2: ({...}? assignmentOperator assignmentExpression )?
int alt40=2;
int LA40_0 = input.LA(1);
if ( ((LA40_0>=ASSIGN && LA40_0<=XORASS)||LA40_0==DIVASS) ) {
int LA40_1 = input.LA(2);
if ( ( isLeftHandSideAssign(lhs, isLhs) ) ) {
alt40=1;
}
}
switch (alt40) {
case 1 :
// JS.g:1301:4: {...}? assignmentOperator assignmentExpression
{
if ( !( isLeftHandSideAssign(lhs, isLhs) ) ) {
throw new FailedPredicateException(input, "assignmentExpression", " isLeftHandSideAssign(lhs, isLhs) ");
}
pushFollow(FOLLOW_assignmentOperator_in_assignmentExpression4858);
assignmentOperator155=assignmentOperator();
_fsp--;
root_0 = (Object)adaptor.becomeRoot(assignmentOperator155.getTree(), root_0);
pushFollow(FOLLOW_assignmentExpression_in_assignmentExpression4861);
assignmentExpression156=assignmentExpression();
_fsp--;
adaptor.addChild(root_0, assignmentExpression156.getTree());
}
break;
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end assignmentExpression
public static class assignmentOperator_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start assignmentOperator
// JS.g:1304:1: assignmentOperator : ( ASSIGN | MULASS | DIVASS | MODASS | ADDASS | SUBASS | SHLASS | SHRASS | SHUASS | ANDASS | XORASS | ORASS );
public final assignmentOperator_return assignmentOperator() throws RecognitionException {
assignmentOperator_return retval = new assignmentOperator_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set157=null;
Object set157_tree=null;
try {
// JS.g:1305:3: ( ASSIGN | MULASS | DIVASS | MODASS | ADDASS | SUBASS | SHLASS | SHRASS | SHUASS | ANDASS | XORASS | ORASS )
// JS.g:
{
root_0 = (Object)adaptor.nil();
set157=(Token)input.LT(1);
if ( (input.LA(1)>=ASSIGN && input.LA(1)<=XORASS)||input.LA(1)==DIVASS ) {
input.consume();
adaptor.addChild(root_0, adaptor.create(set157));
errorRecovery=false;
}
else {
MismatchedSetException mse =
new MismatchedSetException(null,input);
recoverFromMismatchedSet(input,mse,FOLLOW_set_in_assignmentOperator0); throw mse;
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end assignmentOperator
public static class assignmentExpressionNoIn_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start assignmentExpressionNoIn
// JS.g:1308:1: assignmentExpressionNoIn : lhs= conditionalExpressionNoIn ({...}? assignmentOperator assignmentExpressionNoIn )? ;
public final assignmentExpressionNoIn_return assignmentExpressionNoIn() throws RecognitionException {
assignmentExpressionNoIn_return retval = new assignmentExpressionNoIn_return();
retval.start = input.LT(1);
Object root_0 = null;
conditionalExpressionNoIn_return lhs = null;
assignmentOperator_return assignmentOperator158 = null;
assignmentExpressionNoIn_return assignmentExpressionNoIn159 = null;
Object[] isLhs = new Object[1];
try {
// JS.g:1313:2: (lhs= conditionalExpressionNoIn ({...}? assignmentOperator assignmentExpressionNoIn )? )
// JS.g:1313:4: lhs= conditionalExpressionNoIn ({...}? assignmentOperator assignmentExpressionNoIn )?
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_conditionalExpressionNoIn_in_assignmentExpressionNoIn4939);
lhs=conditionalExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, lhs.getTree());
// JS.g:1314:2: ({...}? assignmentOperator assignmentExpressionNoIn )?
int alt41=2;
int LA41_0 = input.LA(1);
if ( ((LA41_0>=ASSIGN && LA41_0<=XORASS)||LA41_0==DIVASS) ) {
int LA41_1 = input.LA(2);
if ( ( isLeftHandSideAssign(lhs, isLhs) ) ) {
alt41=1;
}
}
switch (alt41) {
case 1 :
// JS.g:1314:4: {...}? assignmentOperator assignmentExpressionNoIn
{
if ( !( isLeftHandSideAssign(lhs, isLhs) ) ) {
throw new FailedPredicateException(input, "assignmentExpressionNoIn", " isLeftHandSideAssign(lhs, isLhs) ");
}
pushFollow(FOLLOW_assignmentOperator_in_assignmentExpressionNoIn4946);
assignmentOperator158=assignmentOperator();
_fsp--;
root_0 = (Object)adaptor.becomeRoot(assignmentOperator158.getTree(), root_0);
pushFollow(FOLLOW_assignmentExpressionNoIn_in_assignmentExpressionNoIn4949);
assignmentExpressionNoIn159=assignmentExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, assignmentExpressionNoIn159.getTree());
}
break;
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end assignmentExpressionNoIn
public static class expression_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start expression
// JS.g:1321:1: expression : exprs+= assignmentExpression ( COMMA exprs+= assignmentExpression )* -> { $exprs.size() > 1 }? ^( CEXPR ( $exprs)+ ) -> $exprs;
public final expression_return expression() throws RecognitionException {
expression_return retval = new expression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COMMA160=null;
List list_exprs=null;
RuleReturnScope exprs = null;
Object COMMA160_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_assignmentExpression=new RewriteRuleSubtreeStream(adaptor,"rule assignmentExpression");
try {
// 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_expression4971);
exprs=assignmentExpression();
_fsp--;
stream_assignmentExpression.add(exprs.getTree());
if (list_exprs==null) list_exprs=new ArrayList();
list_exprs.add(exprs);
// JS.g:1322:32: ( COMMA exprs+= assignmentExpression )*
loop42:
do {
int alt42=2;
int LA42_0 = input.LA(1);
if ( (LA42_0==COMMA) ) {
alt42=1;
}
switch (alt42) {
case 1 :
// JS.g:1322:34: COMMA exprs+= assignmentExpression
{
COMMA160=(Token)input.LT(1);
match(input,COMMA,FOLLOW_COMMA_in_expression4975);
stream_COMMA.add(COMMA160);
pushFollow(FOLLOW_assignmentExpression_in_expression4979);
exprs=assignmentExpression();
_fsp--;
stream_assignmentExpression.add(exprs.getTree());
if (list_exprs==null) list_exprs=new ArrayList();
list_exprs.add(exprs);
}
break;
default :
break loop42;
}
} while (true);
// AST REWRITE
// elements: exprs, exprs
// token labels:
// rule labels: retval
// token list labels:
// rule list labels: exprs
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
RewriteRuleSubtreeStream stream_exprs=new RewriteRuleSubtreeStream(adaptor,"token exprs",list_exprs);
root_0 = (Object)adaptor.nil();
// 1323:2: -> { $exprs.size() > 1 }? ^( CEXPR ( $exprs)+ )
if ( list_exprs.size() > 1 ) {
// JS.g:1323:28: ^( CEXPR ( $exprs)+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(CEXPR, "CEXPR"), root_1);
if ( !(stream_exprs.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_exprs.hasNext() ) {
adaptor.addChild(root_1, ((ParserRuleReturnScope)stream_exprs.next()).getTree());
}
stream_exprs.reset();
adaptor.addChild(root_0, root_1);
}
}
else // 1324:2: -> $exprs
{
adaptor.addChild(root_0, ((ParserRuleReturnScope)stream_exprs.next()).getTree());
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end expression
public static class expressionNoIn_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start expressionNoIn
// JS.g:1327:1: expressionNoIn : exprs+= assignmentExpressionNoIn ( COMMA exprs+= assignmentExpressionNoIn )* -> { $exprs.size() > 1 }? ^( CEXPR ( $exprs)+ ) -> $exprs;
public final expressionNoIn_return expressionNoIn() throws RecognitionException {
expressionNoIn_return retval = new expressionNoIn_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COMMA161=null;
List list_exprs=null;
RuleReturnScope exprs = null;
Object COMMA161_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_assignmentExpressionNoIn=new RewriteRuleSubtreeStream(adaptor,"rule assignmentExpressionNoIn");
try {
// 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_expressionNoIn5016);
exprs=assignmentExpressionNoIn();
_fsp--;
stream_assignmentExpressionNoIn.add(exprs.getTree());
if (list_exprs==null) list_exprs=new ArrayList();
list_exprs.add(exprs);
// JS.g:1328:36: ( COMMA exprs+= assignmentExpressionNoIn )*
loop43:
do {
int alt43=2;
int LA43_0 = input.LA(1);
if ( (LA43_0==COMMA) ) {
alt43=1;
}
switch (alt43) {
case 1 :
// JS.g:1328:38: COMMA exprs+= assignmentExpressionNoIn
{
COMMA161=(Token)input.LT(1);
match(input,COMMA,FOLLOW_COMMA_in_expressionNoIn5020);
stream_COMMA.add(COMMA161);
pushFollow(FOLLOW_assignmentExpressionNoIn_in_expressionNoIn5024);
exprs=assignmentExpressionNoIn();
_fsp--;
stream_assignmentExpressionNoIn.add(exprs.getTree());
if (list_exprs==null) list_exprs=new ArrayList();
list_exprs.add(exprs);
}
break;
default :
break loop43;
}
} while (true);
// AST REWRITE
// elements: exprs, exprs
// token labels:
// rule labels: retval
// token list labels:
// rule list labels: exprs
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
RewriteRuleSubtreeStream stream_exprs=new RewriteRuleSubtreeStream(adaptor,"token exprs",list_exprs);
root_0 = (Object)adaptor.nil();
// 1329:2: -> { $exprs.size() > 1 }? ^( CEXPR ( $exprs)+ )
if ( list_exprs.size() > 1 ) {
// JS.g:1329:28: ^( CEXPR ( $exprs)+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(CEXPR, "CEXPR"), root_1);
if ( !(stream_exprs.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_exprs.hasNext() ) {
adaptor.addChild(root_1, ((ParserRuleReturnScope)stream_exprs.next()).getTree());
}
stream_exprs.reset();
adaptor.addChild(root_0, root_1);
}
}
else // 1330:2: -> $exprs
{
adaptor.addChild(root_0, ((ParserRuleReturnScope)stream_exprs.next()).getTree());
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end expressionNoIn
public static class semic_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start semic
// JS.g:1355:1: semic : ( SEMIC | EOF | RBRACE | EOL | MultiLineComment );
public final semic_return semic() throws RecognitionException {
semic_return retval = new semic_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SEMIC162=null;
Token EOF163=null;
Token RBRACE164=null;
Token EOL165=null;
Token MultiLineComment166=null;
Object SEMIC162_tree=null;
Object EOF163_tree=null;
Object RBRACE164_tree=null;
Object EOL165_tree=null;
Object MultiLineComment166_tree=null;
// Mark current position so we can unconsume a RBRACE.
int marker = input.mark();
// Promote EOL if appropriate
promoteEOL(retval);
try {
// JS.g:1363:2: ( SEMIC | EOF | RBRACE | EOL | MultiLineComment )
int alt44=5;
switch ( input.LA(1) ) {
case SEMIC:
{
alt44=1;
}
break;
case EOF:
{
alt44=2;
}
break;
case RBRACE:
{
alt44=3;
}
break;
case EOL:
{
alt44=4;
}
break;
case MultiLineComment:
{
alt44=5;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("1355:1: semic : ( SEMIC | EOF | RBRACE | EOL | MultiLineComment );", 44, 0, input);
throw nvae;
}
switch (alt44) {
case 1 :
// JS.g:1363:4: SEMIC
{
root_0 = (Object)adaptor.nil();
SEMIC162=(Token)input.LT(1);
match(input,SEMIC,FOLLOW_SEMIC_in_semic5075);
SEMIC162_tree = (Object)adaptor.create(SEMIC162);
adaptor.addChild(root_0, SEMIC162_tree);
}
break;
case 2 :
// JS.g:1364:4: EOF
{
root_0 = (Object)adaptor.nil();
EOF163=(Token)input.LT(1);
match(input,EOF,FOLLOW_EOF_in_semic5080);
EOF163_tree = (Object)adaptor.create(EOF163);
adaptor.addChild(root_0, EOF163_tree);
}
break;
case 3 :
// JS.g:1365:4: RBRACE
{
root_0 = (Object)adaptor.nil();
RBRACE164=(Token)input.LT(1);
match(input,RBRACE,FOLLOW_RBRACE_in_semic5085);
RBRACE164_tree = (Object)adaptor.create(RBRACE164);
adaptor.addChild(root_0, RBRACE164_tree);
input.rewind(marker);
}
break;
case 4 :
// JS.g:1366:4: EOL
{
root_0 = (Object)adaptor.nil();
EOL165=(Token)input.LT(1);
match(input,EOL,FOLLOW_EOL_in_semic5092);
EOL165_tree = (Object)adaptor.create(EOL165);
adaptor.addChild(root_0, EOL165_tree);
}
break;
case 5 :
// JS.g:1366:10: MultiLineComment
{
root_0 = (Object)adaptor.nil();
MultiLineComment166=(Token)input.LT(1);
match(input,MultiLineComment,FOLLOW_MultiLineComment_in_semic5096);
MultiLineComment166_tree = (Object)adaptor.create(MultiLineComment166);
adaptor.addChild(root_0, MultiLineComment166_tree);
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end semic
public static class statement_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start statement
// JS.g:1374:1: statement options {k=1; } : ({...}? block | statementTail );
public final statement_return statement() throws RecognitionException {
statement_return retval = new statement_return();
retval.start = input.LT(1);
Object root_0 = null;
block_return block167 = null;
statementTail_return statementTail168 = null;
try {
// JS.g:1379:2: ({...}? block | statementTail )
int alt45=2;
int LA45_0 = input.LA(1);
if ( (LA45_0==LBRACE) ) {
int LA45_1 = input.LA(2);
if ( ( input.LA(1) == LBRACE ) ) {
alt45=1;
}
else if ( (true) ) {
alt45=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("1374:1: statement options {k=1; } : ({...}? block | statementTail );", 45, 1, input);
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==XMLLiteral||(LA45_0>=StringLiteral && LA45_0<=XmlAttribute)||LA45_0==Identifier||LA45_0==RegularExpressionLiteral||(LA45_0>=DecimalLiteral && LA45_0<=HexIntegerLiteral)) ) {
alt45=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("1374:1: statement options {k=1; } : ({...}? block | statementTail );", 45, 0, input);
throw nvae;
}
switch (alt45) {
case 1 :
// JS.g:1379:4: {...}? block
{
root_0 = (Object)adaptor.nil();
if ( !( input.LA(1) == LBRACE ) ) {
throw new FailedPredicateException(input, "statement", " input.LA(1) == LBRACE ");
}
pushFollow(FOLLOW_block_in_statement5125);
block167=block();
_fsp--;
adaptor.addChild(root_0, block167.getTree());
}
break;
case 2 :
// JS.g:1380:4: statementTail
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_statementTail_in_statement5130);
statementTail168=statementTail();
_fsp--;
adaptor.addChild(root_0, statementTail168.getTree());
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end statement
public static class statementTail_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start statementTail
// JS.g:1383:1: statementTail : ( variableStatement | emptyStatement | expressionStatement | ifStatement | iterationStatement | continueStatement | breakStatement | returnStatement | withStatement | labelledStatement | switchStatement | throwStatement | tryStatement | constStatement | namespaceStatement );
public final statementTail_return statementTail() throws RecognitionException {
statementTail_return retval = new statementTail_return();
retval.start = input.LT(1);
Object root_0 = null;
variableStatement_return variableStatement169 = null;
emptyStatement_return emptyStatement170 = null;
expressionStatement_return expressionStatement171 = null;
ifStatement_return ifStatement172 = null;
iterationStatement_return iterationStatement173 = null;
continueStatement_return continueStatement174 = null;
breakStatement_return breakStatement175 = null;
returnStatement_return returnStatement176 = null;
withStatement_return withStatement177 = null;
labelledStatement_return labelledStatement178 = null;
switchStatement_return switchStatement179 = null;
throwStatement_return throwStatement180 = null;
tryStatement_return tryStatement181 = null;
constStatement_return constStatement182 = null;
namespaceStatement_return namespaceStatement183 = null;
try {
// JS.g:1384:2: ( variableStatement | emptyStatement | expressionStatement | ifStatement | iterationStatement | continueStatement | breakStatement | returnStatement | withStatement | labelledStatement | switchStatement | throwStatement | tryStatement | constStatement | namespaceStatement )
int alt46=15;
switch ( input.LA(1) ) {
case VAR:
{
alt46=1;
}
break;
case SEMIC:
{
alt46=2;
}
break;
case NULL:
case TRUE:
case FALSE:
case DELETE:
case FUNCTION:
case NEW:
case THIS:
case TYPEOF:
case VOID:
case YIELD:
case LBRACE:
case LPAREN:
case LBRACK:
case ADD:
case SUB:
case INC:
case DEC:
case NOT:
case INV:
case XMLLiteral:
case StringLiteral:
case XmlAttribute:
case RegularExpressionLiteral:
case DecimalLiteral:
case OctalIntegerLiteral:
case HexIntegerLiteral:
{
alt46=3;
}
break;
case EACH:
case GET:
case SET:
case WXML:
case NAMESPACE:
case Identifier:
{
int LA46_4 = input.LA(2);
if ( (LA46_4==COLON) ) {
alt46=10;
}
else if ( (LA46_4==EOF||(LA46_4>=IN && LA46_4<=INSTANCEOF)||(LA46_4>=RBRACE && LA46_4<=LPAREN)||LA46_4==LBRACK||(LA46_4>=DOT && LA46_4<=XOR)||(LA46_4>=LAND && LA46_4<=QUE)||(LA46_4>=ASSIGN && LA46_4<=DIVASS)||(LA46_4>=DOTDOT && LA46_4<=COLONCOLON)||(LA46_4>=EOL && LA46_4<=MultiLineComment)) ) {
alt46=3;
}
else {
NoViableAltException nvae =
new NoViableAltException("1383:1: statementTail : ( variableStatement | emptyStatement | expressionStatement | ifStatement | iterationStatement | continueStatement | breakStatement | returnStatement | withStatement | labelledStatement | switchStatement | throwStatement | tryStatement | constStatement | namespaceStatement );", 46, 4, input);
throw nvae;
}
}
break;
case IF:
{
alt46=4;
}
break;
case DO:
case FOR:
case WHILE:
{
alt46=5;
}
break;
case CONTINUE:
{
alt46=6;
}
break;
case BREAK:
{
alt46=7;
}
break;
case RETURN:
{
alt46=8;
}
break;
case WITH:
{
alt46=9;
}
break;
case SWITCH:
{
alt46=11;
}
break;
case THROW:
{
alt46=12;
}
break;
case TRY:
{
alt46=13;
}
break;
case CONST:
{
alt46=14;
}
break;
case DEFAULT:
{
alt46=15;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("1383:1: statementTail : ( variableStatement | emptyStatement | expressionStatement | ifStatement | iterationStatement | continueStatement | breakStatement | returnStatement | withStatement | labelledStatement | switchStatement | throwStatement | tryStatement | constStatement | namespaceStatement );", 46, 0, input);
throw nvae;
}
switch (alt46) {
case 1 :
// JS.g:1384:4: variableStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_variableStatement_in_statementTail5142);
variableStatement169=variableStatement();
_fsp--;
adaptor.addChild(root_0, variableStatement169.getTree());
}
break;
case 2 :
// JS.g:1385:4: emptyStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_emptyStatement_in_statementTail5147);
emptyStatement170=emptyStatement();
_fsp--;
adaptor.addChild(root_0, emptyStatement170.getTree());
}
break;
case 3 :
// JS.g:1386:4: expressionStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_expressionStatement_in_statementTail5152);
expressionStatement171=expressionStatement();
_fsp--;
adaptor.addChild(root_0, expressionStatement171.getTree());
}
break;
case 4 :
// JS.g:1387:4: ifStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_ifStatement_in_statementTail5157);
ifStatement172=ifStatement();
_fsp--;
adaptor.addChild(root_0, ifStatement172.getTree());
}
break;
case 5 :
// JS.g:1388:4: iterationStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_iterationStatement_in_statementTail5162);
iterationStatement173=iterationStatement();
_fsp--;
adaptor.addChild(root_0, iterationStatement173.getTree());
}
break;
case 6 :
// JS.g:1389:4: continueStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_continueStatement_in_statementTail5167);
continueStatement174=continueStatement();
_fsp--;
adaptor.addChild(root_0, continueStatement174.getTree());
}
break;
case 7 :
// JS.g:1390:4: breakStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_breakStatement_in_statementTail5172);
breakStatement175=breakStatement();
_fsp--;
adaptor.addChild(root_0, breakStatement175.getTree());
}
break;
case 8 :
// JS.g:1391:4: returnStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_returnStatement_in_statementTail5177);
returnStatement176=returnStatement();
_fsp--;
adaptor.addChild(root_0, returnStatement176.getTree());
}
break;
case 9 :
// JS.g:1392:4: withStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_withStatement_in_statementTail5182);
withStatement177=withStatement();
_fsp--;
adaptor.addChild(root_0, withStatement177.getTree());
}
break;
case 10 :
// JS.g:1393:4: labelledStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_labelledStatement_in_statementTail5187);
labelledStatement178=labelledStatement();
_fsp--;
adaptor.addChild(root_0, labelledStatement178.getTree());
}
break;
case 11 :
// JS.g:1394:4: switchStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_switchStatement_in_statementTail5192);
switchStatement179=switchStatement();
_fsp--;
adaptor.addChild(root_0, switchStatement179.getTree());
}
break;
case 12 :
// JS.g:1395:4: throwStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_throwStatement_in_statementTail5197);
throwStatement180=throwStatement();
_fsp--;
adaptor.addChild(root_0, throwStatement180.getTree());
}
break;
case 13 :
// JS.g:1396:4: tryStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_tryStatement_in_statementTail5202);
tryStatement181=tryStatement();
_fsp--;
adaptor.addChild(root_0, tryStatement181.getTree());
}
break;
case 14 :
// JS.g:1397:4: constStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_constStatement_in_statementTail5207);
constStatement182=constStatement();
_fsp--;
adaptor.addChild(root_0, constStatement182.getTree());
}
break;
case 15 :
// JS.g:1398:4: namespaceStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_namespaceStatement_in_statementTail5212);
namespaceStatement183=namespaceStatement();
_fsp--;
adaptor.addChild(root_0, namespaceStatement183.getTree());
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end statementTail
public static class block_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start block
// JS.g:1403:1: block : lb= LBRACE ( statement )* RBRACE -> ^( BLOCK[$lb, \"BLOCK\"] ( statement )* ) ;
public final block_return block() throws RecognitionException {
block_return retval = new block_return();
retval.start = input.LT(1);
Object root_0 = null;
Token lb=null;
Token RBRACE185=null;
statement_return statement184 = null;
Object lb_tree=null;
Object RBRACE185_tree=null;
RewriteRuleTokenStream stream_RBRACE=new RewriteRuleTokenStream(adaptor,"token RBRACE");
RewriteRuleTokenStream stream_LBRACE=new RewriteRuleTokenStream(adaptor,"token LBRACE");
RewriteRuleSubtreeStream stream_statement=new RewriteRuleSubtreeStream(adaptor,"rule statement");
try {
// JS.g:1404:2: (lb= LBRACE ( statement )* RBRACE -> ^( BLOCK[$lb, \"BLOCK\"] ( statement )* ) )
// JS.g:1404:4: lb= LBRACE ( statement )* RBRACE
{
lb=(Token)input.LT(1);
match(input,LBRACE,FOLLOW_LBRACE_in_block5227);
stream_LBRACE.add(lb);
// JS.g:1404:14: ( statement )*
loop47:
do {
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==XMLLiteral||(LA47_0>=StringLiteral && LA47_0<=XmlAttribute)||LA47_0==Identifier||LA47_0==RegularExpressionLiteral||(LA47_0>=DecimalLiteral && LA47_0<=HexIntegerLiteral)) ) {
alt47=1;
}
switch (alt47) {
case 1 :
// JS.g:1404:14: statement
{
pushFollow(FOLLOW_statement_in_block5229);
statement184=statement();
_fsp--;
stream_statement.add(statement184.getTree());
}
break;
default :
break loop47;
}
} while (true);
RBRACE185=(Token)input.LT(1);
match(input,RBRACE,FOLLOW_RBRACE_in_block5232);
stream_RBRACE.add(RBRACE185);
// AST REWRITE
// elements: statement
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
// 1405:2: -> ^( BLOCK[$lb, \"BLOCK\"] ( statement )* )
{
// JS.g:1405:5: ^( BLOCK[$lb, \"BLOCK\"] ( statement )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(BLOCK, lb, "BLOCK"), root_1);
// JS.g:1405:28: ( statement )*
while ( stream_statement.hasNext() ) {
adaptor.addChild(root_1, stream_statement.next());
}
stream_statement.reset();
adaptor.addChild(root_0, root_1);
}
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end block
public static class variableStatement_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start variableStatement
// JS.g:1412:1: variableStatement : VAR variableDeclaration ( COMMA variableDeclaration )* semic -> ^( VAR ( variableDeclaration )+ ) ;
public final variableStatement_return variableStatement() throws RecognitionException {
variableStatement_return retval = new variableStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token VAR186=null;
Token COMMA188=null;
variableDeclaration_return variableDeclaration187 = null;
variableDeclaration_return variableDeclaration189 = null;
semic_return semic190 = null;
Object VAR186_tree=null;
Object COMMA188_tree=null;
RewriteRuleTokenStream stream_VAR=new RewriteRuleTokenStream(adaptor,"token VAR");
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_variableDeclaration=new RewriteRuleSubtreeStream(adaptor,"rule variableDeclaration");
RewriteRuleSubtreeStream stream_semic=new RewriteRuleSubtreeStream(adaptor,"rule semic");
try {
// JS.g:1413:2: ( VAR variableDeclaration ( COMMA variableDeclaration )* semic -> ^( VAR ( variableDeclaration )+ ) )
// JS.g:1413:4: VAR variableDeclaration ( COMMA variableDeclaration )* semic
{
VAR186=(Token)input.LT(1);
match(input,VAR,FOLLOW_VAR_in_variableStatement5261);
stream_VAR.add(VAR186);
pushFollow(FOLLOW_variableDeclaration_in_variableStatement5263);
variableDeclaration187=variableDeclaration();
_fsp--;
stream_variableDeclaration.add(variableDeclaration187.getTree());
// JS.g:1413:28: ( COMMA variableDeclaration )*
loop48:
do {
int alt48=2;
int LA48_0 = input.LA(1);
if ( (LA48_0==COMMA) ) {
alt48=1;
}
switch (alt48) {
case 1 :
// JS.g:1413:30: COMMA variableDeclaration
{
COMMA188=(Token)input.LT(1);
match(input,COMMA,FOLLOW_COMMA_in_variableStatement5267);
stream_COMMA.add(COMMA188);
pushFollow(FOLLOW_variableDeclaration_in_variableStatement5269);
variableDeclaration189=variableDeclaration();
_fsp--;
stream_variableDeclaration.add(variableDeclaration189.getTree());
}
break;
default :
break loop48;
}
} while (true);
pushFollow(FOLLOW_semic_in_variableStatement5274);
semic190=semic();
_fsp--;
stream_semic.add(semic190.getTree());
// AST REWRITE
// elements: variableDeclaration, VAR
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
// 1414:2: -> ^( VAR ( variableDeclaration )+ )
{
// JS.g:1414:5: ^( VAR ( variableDeclaration )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_VAR.next(), root_1);
if ( !(stream_variableDeclaration.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_variableDeclaration.hasNext() ) {
adaptor.addChild(root_1, stream_variableDeclaration.next());
}
stream_variableDeclaration.reset();
adaptor.addChild(root_0, root_1);
}
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end variableStatement
public static class variableDeclaration_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start variableDeclaration
// JS.g:1417:1: variableDeclaration : identifier ( ASSIGN assignmentExpression )? ;
public final variableDeclaration_return variableDeclaration() throws RecognitionException {
variableDeclaration_return retval = new variableDeclaration_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ASSIGN192=null;
identifier_return identifier191 = null;
assignmentExpression_return assignmentExpression193 = null;
Object ASSIGN192_tree=null;
try {
// JS.g:1418:2: ( identifier ( ASSIGN assignmentExpression )? )
// JS.g:1418:4: identifier ( ASSIGN assignmentExpression )?
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_identifier_in_variableDeclaration5297);
identifier191=identifier();
_fsp--;
adaptor.addChild(root_0, identifier191.getTree());
// JS.g:1418:15: ( ASSIGN assignmentExpression )?
int alt49=2;
int LA49_0 = input.LA(1);
if ( (LA49_0==ASSIGN) ) {
alt49=1;
}
switch (alt49) {
case 1 :
// JS.g:1418:17: ASSIGN assignmentExpression
{
ASSIGN192=(Token)input.LT(1);
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_variableDeclaration5304);
assignmentExpression193=assignmentExpression();
_fsp--;
adaptor.addChild(root_0, assignmentExpression193.getTree());
}
break;
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end variableDeclaration
public static class variableDeclarationNoIn_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start variableDeclarationNoIn
// JS.g:1421:1: variableDeclarationNoIn : identifier ( ASSIGN assignmentExpressionNoIn )? ;
public final variableDeclarationNoIn_return variableDeclarationNoIn() throws RecognitionException {
variableDeclarationNoIn_return retval = new variableDeclarationNoIn_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ASSIGN195=null;
identifier_return identifier194 = null;
assignmentExpressionNoIn_return assignmentExpressionNoIn196 = null;
Object ASSIGN195_tree=null;
try {
// JS.g:1422:2: ( identifier ( ASSIGN assignmentExpressionNoIn )? )
// JS.g:1422:4: identifier ( ASSIGN assignmentExpressionNoIn )?
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_identifier_in_variableDeclarationNoIn5319);
identifier194=identifier();
_fsp--;
adaptor.addChild(root_0, identifier194.getTree());
// JS.g:1422:15: ( ASSIGN assignmentExpressionNoIn )?
int alt50=2;
int LA50_0 = input.LA(1);
if ( (LA50_0==ASSIGN) ) {
alt50=1;
}
switch (alt50) {
case 1 :
// JS.g:1422:17: ASSIGN assignmentExpressionNoIn
{
ASSIGN195=(Token)input.LT(1);
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_variableDeclarationNoIn5326);
assignmentExpressionNoIn196=assignmentExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, assignmentExpressionNoIn196.getTree());
}
break;
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end variableDeclarationNoIn
public static class constStatement_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start constStatement
// JS.g:1425:1: constStatement : CONST variableDeclaration ( COMMA variableDeclaration )* semic -> ^( CONST ( variableDeclaration )+ ) ;
public final constStatement_return constStatement() throws RecognitionException {
constStatement_return retval = new constStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token CONST197=null;
Token COMMA199=null;
variableDeclaration_return variableDeclaration198 = null;
variableDeclaration_return variableDeclaration200 = null;
semic_return semic201 = null;
Object CONST197_tree=null;
Object COMMA199_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_CONST=new RewriteRuleTokenStream(adaptor,"token CONST");
RewriteRuleSubtreeStream stream_variableDeclaration=new RewriteRuleSubtreeStream(adaptor,"rule variableDeclaration");
RewriteRuleSubtreeStream stream_semic=new RewriteRuleSubtreeStream(adaptor,"rule semic");
try {
// JS.g:1426:3: ( CONST variableDeclaration ( COMMA variableDeclaration )* semic -> ^( CONST ( variableDeclaration )+ ) )
// JS.g:1426:5: CONST variableDeclaration ( COMMA variableDeclaration )* semic
{
CONST197=(Token)input.LT(1);
match(input,CONST,FOLLOW_CONST_in_constStatement5341);
stream_CONST.add(CONST197);
pushFollow(FOLLOW_variableDeclaration_in_constStatement5343);
variableDeclaration198=variableDeclaration();
_fsp--;
stream_variableDeclaration.add(variableDeclaration198.getTree());
// JS.g:1426:31: ( COMMA variableDeclaration )*
loop51:
do {
int alt51=2;
int LA51_0 = input.LA(1);
if ( (LA51_0==COMMA) ) {
alt51=1;
}
switch (alt51) {
case 1 :
// JS.g:1426:33: COMMA variableDeclaration
{
COMMA199=(Token)input.LT(1);
match(input,COMMA,FOLLOW_COMMA_in_constStatement5347);
stream_COMMA.add(COMMA199);
pushFollow(FOLLOW_variableDeclaration_in_constStatement5349);
variableDeclaration200=variableDeclaration();
_fsp--;
stream_variableDeclaration.add(variableDeclaration200.getTree());
}
break;
default :
break loop51;
}
} while (true);
pushFollow(FOLLOW_semic_in_constStatement5354);
semic201=semic();
_fsp--;
stream_semic.add(semic201.getTree());
// AST REWRITE
// elements: variableDeclaration, CONST
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
// 1427:3: -> ^( CONST ( variableDeclaration )+ )
{
// JS.g:1427:6: ^( CONST ( variableDeclaration )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_CONST.next(), root_1);
if ( !(stream_variableDeclaration.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_variableDeclaration.hasNext() ) {
adaptor.addChild(root_1, stream_variableDeclaration.next());
}
stream_variableDeclaration.reset();
adaptor.addChild(root_0, root_1);
}
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end constStatement
public static class emptyStatement_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start emptyStatement
// JS.g:1434:1: emptyStatement : SEMIC ;
public final emptyStatement_return emptyStatement() throws RecognitionException {
emptyStatement_return retval = new emptyStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SEMIC202=null;
Object SEMIC202_tree=null;
try {
// JS.g:1435:2: ( SEMIC )
// JS.g:1435:4: SEMIC
{
root_0 = (Object)adaptor.nil();
SEMIC202=(Token)input.LT(1);
match(input,SEMIC,FOLLOW_SEMIC_in_emptyStatement5384);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end emptyStatement
public static class expressionStatement_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start expressionStatement
// JS.g:1448:1: expressionStatement : expression semic ;
public final expressionStatement_return expressionStatement() throws RecognitionException {
expressionStatement_return retval = new expressionStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
expression_return expression203 = null;
semic_return semic204 = null;
try {
// JS.g:1449:2: ( expression semic )
// JS.g:1449:4: expression semic
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_expression_in_expressionStatement5403);
expression203=expression();
_fsp--;
adaptor.addChild(root_0, expression203.getTree());
pushFollow(FOLLOW_semic_in_expressionStatement5405);
semic204=semic();
_fsp--;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end expressionStatement
public static class ifStatement_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start ifStatement
// JS.g:1456:1: ifStatement : IF LPAREN expression RPAREN statement ({...}? ELSE statement )? -> ^( IF expression ( statement )+ ) ;
public final ifStatement_return ifStatement() throws RecognitionException {
ifStatement_return retval = new ifStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IF205=null;
Token LPAREN206=null;
Token RPAREN208=null;
Token ELSE210=null;
expression_return expression207 = null;
statement_return statement209 = null;
statement_return statement211 = null;
Object IF205_tree=null;
Object LPAREN206_tree=null;
Object RPAREN208_tree=null;
Object ELSE210_tree=null;
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_IF=new RewriteRuleTokenStream(adaptor,"token IF");
RewriteRuleTokenStream stream_ELSE=new RewriteRuleTokenStream(adaptor,"token ELSE");
RewriteRuleSubtreeStream stream_expression=new RewriteRuleSubtreeStream(adaptor,"rule expression");
RewriteRuleSubtreeStream stream_statement=new RewriteRuleSubtreeStream(adaptor,"rule statement");
try {
// JS.g:1458:2: ( IF LPAREN expression RPAREN statement ({...}? ELSE statement )? -> ^( IF expression ( statement )+ ) )
// JS.g:1458:4: IF LPAREN expression RPAREN statement ({...}? ELSE statement )?
{
IF205=(Token)input.LT(1);
match(input,IF,FOLLOW_IF_in_ifStatement5423);
stream_IF.add(IF205);
LPAREN206=(Token)input.LT(1);
match(input,LPAREN,FOLLOW_LPAREN_in_ifStatement5425);
stream_LPAREN.add(LPAREN206);
pushFollow(FOLLOW_expression_in_ifStatement5427);
expression207=expression();
_fsp--;
stream_expression.add(expression207.getTree());
RPAREN208=(Token)input.LT(1);
match(input,RPAREN,FOLLOW_RPAREN_in_ifStatement5429);
stream_RPAREN.add(RPAREN208);
pushFollow(FOLLOW_statement_in_ifStatement5431);
statement209=statement();
_fsp--;
stream_statement.add(statement209.getTree());
// JS.g:1458:42: ({...}? ELSE statement )?
int alt52=2;
int LA52_0 = input.LA(1);
if ( (LA52_0==ELSE) ) {
int LA52_1 = input.LA(2);
if ( ( input.LA(1) == ELSE ) ) {
alt52=1;
}
}
switch (alt52) {
case 1 :
// JS.g:1458:44: {...}? ELSE statement
{
if ( !( input.LA(1) == ELSE ) ) {
throw new FailedPredicateException(input, "ifStatement", " input.LA(1) == ELSE ");
}
ELSE210=(Token)input.LT(1);
match(input,ELSE,FOLLOW_ELSE_in_ifStatement5437);
stream_ELSE.add(ELSE210);
pushFollow(FOLLOW_statement_in_ifStatement5439);
statement211=statement();
_fsp--;
stream_statement.add(statement211.getTree());
}
break;
}
// AST REWRITE
// elements: expression, IF, statement
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
// 1459:2: -> ^( IF expression ( statement )+ )
{
// JS.g:1459:5: ^( IF expression ( statement )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_IF.next(), root_1);
adaptor.addChild(root_1, stream_expression.next());
if ( !(stream_statement.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_statement.hasNext() ) {
adaptor.addChild(root_1, stream_statement.next());
}
stream_statement.reset();
adaptor.addChild(root_0, root_1);
}
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end ifStatement
public static class iterationStatement_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start iterationStatement
// JS.g:1466:1: iterationStatement : ( doStatement | whileStatement | forEachStatement | forStatement );
public final iterationStatement_return iterationStatement() throws RecognitionException {
iterationStatement_return retval = new iterationStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
doStatement_return doStatement212 = null;
whileStatement_return whileStatement213 = null;
forEachStatement_return forEachStatement214 = null;
forStatement_return forStatement215 = null;
try {
// JS.g:1467:2: ( doStatement | whileStatement | forEachStatement | forStatement )
int alt53=4;
switch ( input.LA(1) ) {
case DO:
{
alt53=1;
}
break;
case WHILE:
{
alt53=2;
}
break;
case FOR:
{
int LA53_3 = input.LA(2);
if ( (LA53_3==LPAREN) ) {
alt53=4;
}
else if ( (LA53_3==EACH) ) {
alt53=3;
}
else {
NoViableAltException nvae =
new NoViableAltException("1466:1: iterationStatement : ( doStatement | whileStatement | forEachStatement | forStatement );", 53, 3, input);
throw nvae;
}
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("1466:1: iterationStatement : ( doStatement | whileStatement | forEachStatement | forStatement );", 53, 0, input);
throw nvae;
}
switch (alt53) {
case 1 :
// JS.g:1467:4: doStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_doStatement_in_iterationStatement5472);
doStatement212=doStatement();
_fsp--;
adaptor.addChild(root_0, doStatement212.getTree());
}
break;
case 2 :
// JS.g:1468:4: whileStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_whileStatement_in_iterationStatement5477);
whileStatement213=whileStatement();
_fsp--;
adaptor.addChild(root_0, whileStatement213.getTree());
}
break;
case 3 :
// JS.g:1469:4: forEachStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_forEachStatement_in_iterationStatement5482);
forEachStatement214=forEachStatement();
_fsp--;
adaptor.addChild(root_0, forEachStatement214.getTree());
}
break;
case 4 :
// JS.g:1470:4: forStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_forStatement_in_iterationStatement5487);
forStatement215=forStatement();
_fsp--;
adaptor.addChild(root_0, forStatement215.getTree());
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end iterationStatement
public static class doStatement_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start doStatement
// JS.g:1473:1: doStatement : DO statement WHILE LPAREN expression RPAREN semic -> ^( DO statement expression ) ;
public final doStatement_return doStatement() throws RecognitionException {
doStatement_return retval = new doStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token DO216=null;
Token WHILE218=null;
Token LPAREN219=null;
Token RPAREN221=null;
statement_return statement217 = null;
expression_return expression220 = null;
semic_return semic222 = null;
Object DO216_tree=null;
Object WHILE218_tree=null;
Object LPAREN219_tree=null;
Object RPAREN221_tree=null;
RewriteRuleTokenStream stream_DO=new RewriteRuleTokenStream(adaptor,"token DO");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_WHILE=new RewriteRuleTokenStream(adaptor,"token WHILE");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleSubtreeStream stream_statement=new RewriteRuleSubtreeStream(adaptor,"rule statement");
RewriteRuleSubtreeStream stream_expression=new RewriteRuleSubtreeStream(adaptor,"rule expression");
RewriteRuleSubtreeStream stream_semic=new RewriteRuleSubtreeStream(adaptor,"rule semic");
try {
// JS.g:1474:2: ( DO statement WHILE LPAREN expression RPAREN semic -> ^( DO statement expression ) )
// JS.g:1474:4: DO statement WHILE LPAREN expression RPAREN semic
{
DO216=(Token)input.LT(1);
match(input,DO,FOLLOW_DO_in_doStatement5499);
stream_DO.add(DO216);
pushFollow(FOLLOW_statement_in_doStatement5501);
statement217=statement();
_fsp--;
stream_statement.add(statement217.getTree());
WHILE218=(Token)input.LT(1);
match(input,WHILE,FOLLOW_WHILE_in_doStatement5503);
stream_WHILE.add(WHILE218);
LPAREN219=(Token)input.LT(1);
match(input,LPAREN,FOLLOW_LPAREN_in_doStatement5505);
stream_LPAREN.add(LPAREN219);
pushFollow(FOLLOW_expression_in_doStatement5507);
expression220=expression();
_fsp--;
stream_expression.add(expression220.getTree());
RPAREN221=(Token)input.LT(1);
match(input,RPAREN,FOLLOW_RPAREN_in_doStatement5509);
stream_RPAREN.add(RPAREN221);
pushFollow(FOLLOW_semic_in_doStatement5511);
semic222=semic();
_fsp--;
stream_semic.add(semic222.getTree());
// AST REWRITE
// elements: DO, statement, expression
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
// 1475:2: -> ^( DO statement expression )
{
// JS.g:1475:5: ^( DO statement expression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_DO.next(), root_1);
adaptor.addChild(root_1, stream_statement.next());
adaptor.addChild(root_1, stream_expression.next());
adaptor.addChild(root_0, root_1);
}
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end doStatement
public static class whileStatement_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start whileStatement
// JS.g:1478:1: whileStatement : WHILE LPAREN expression RPAREN statement ;
public final whileStatement_return whileStatement() throws RecognitionException {
whileStatement_return retval = new whileStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token WHILE223=null;
Token LPAREN224=null;
Token RPAREN226=null;
expression_return expression225 = null;
statement_return statement227 = null;
Object WHILE223_tree=null;
Object LPAREN224_tree=null;
Object RPAREN226_tree=null;
try {
// JS.g:1479:2: ( WHILE LPAREN expression RPAREN statement )
// JS.g:1479:4: WHILE LPAREN expression RPAREN statement
{
root_0 = (Object)adaptor.nil();
WHILE223=(Token)input.LT(1);
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_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_whileStatement5544);
pushFollow(FOLLOW_statement_in_whileStatement5547);
statement227=statement();
_fsp--;
adaptor.addChild(root_0, statement227.getTree());
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end whileStatement
public static class forEachStatement_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start forEachStatement
// JS.g:1524:1: forEachStatement : FOR EACH LPAREN forEachControl RPAREN statement -> ^( FOREACH forEachControl statement ) ;
public final forEachStatement_return forEachStatement() throws RecognitionException {
forEachStatement_return retval = new forEachStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token FOR228=null;
Token EACH229=null;
Token LPAREN230=null;
Token RPAREN232=null;
forEachControl_return forEachControl231 = null;
statement_return statement233 = null;
Object FOR228_tree=null;
Object EACH229_tree=null;
Object LPAREN230_tree=null;
Object RPAREN232_tree=null;
RewriteRuleTokenStream stream_FOR=new RewriteRuleTokenStream(adaptor,"token FOR");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_EACH=new RewriteRuleTokenStream(adaptor,"token EACH");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleSubtreeStream stream_statement=new RewriteRuleSubtreeStream(adaptor,"rule statement");
RewriteRuleSubtreeStream stream_forEachControl=new RewriteRuleSubtreeStream(adaptor,"rule forEachControl");
try {
// JS.g:1525:3: ( FOR EACH LPAREN forEachControl RPAREN statement -> ^( FOREACH forEachControl statement ) )
// JS.g:1525:5: FOR EACH LPAREN forEachControl RPAREN statement
{
FOR228=(Token)input.LT(1);
match(input,FOR,FOLLOW_FOR_in_forEachStatement5562);
stream_FOR.add(FOR228);
EACH229=(Token)input.LT(1);
match(input,EACH,FOLLOW_EACH_in_forEachStatement5564);
stream_EACH.add(EACH229);
LPAREN230=(Token)input.LT(1);
match(input,LPAREN,FOLLOW_LPAREN_in_forEachStatement5566);
stream_LPAREN.add(LPAREN230);
pushFollow(FOLLOW_forEachControl_in_forEachStatement5568);
forEachControl231=forEachControl();
_fsp--;
stream_forEachControl.add(forEachControl231.getTree());
RPAREN232=(Token)input.LT(1);
match(input,RPAREN,FOLLOW_RPAREN_in_forEachStatement5570);
stream_RPAREN.add(RPAREN232);
pushFollow(FOLLOW_statement_in_forEachStatement5572);
statement233=statement();
_fsp--;
stream_statement.add(statement233.getTree());
// AST REWRITE
// elements: forEachControl, statement
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
// 1526:4: -> ^( FOREACH forEachControl statement )
{
// JS.g:1526:7: ^( FOREACH forEachControl statement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(FOREACH, "FOREACH"), root_1);
adaptor.addChild(root_1, stream_forEachControl.next());
adaptor.addChild(root_1, stream_statement.next());
adaptor.addChild(root_0, root_1);
}
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end forEachStatement
public static class forEachControl_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start forEachControl
// JS.g:1529:1: forEachControl : ( forControlVar | forControlExpression );
public final forEachControl_return forEachControl() throws RecognitionException {
forEachControl_return retval = new forEachControl_return();
retval.start = input.LT(1);
Object root_0 = null;
forControlVar_return forControlVar234 = null;
forControlExpression_return forControlExpression235 = null;
try {
// JS.g:1530:3: ( forControlVar | forControlExpression )
int alt54=2;
int LA54_0 = input.LA(1);
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==XMLLiteral||(LA54_0>=StringLiteral && LA54_0<=XmlAttribute)||LA54_0==Identifier||LA54_0==RegularExpressionLiteral||(LA54_0>=DecimalLiteral && LA54_0<=HexIntegerLiteral)) ) {
alt54=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("1529:1: forEachControl : ( forControlVar | forControlExpression );", 54, 0, input);
throw nvae;
}
switch (alt54) {
case 1 :
// JS.g:1530:5: forControlVar
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_forControlVar_in_forEachControl5599);
forControlVar234=forControlVar();
_fsp--;
adaptor.addChild(root_0, forControlVar234.getTree());
}
break;
case 2 :
// JS.g:1531:5: forControlExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_forControlExpression_in_forEachControl5605);
forControlExpression235=forControlExpression();
_fsp--;
adaptor.addChild(root_0, forControlExpression235.getTree());
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end forEachControl
public static class forStatement_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start forStatement
// JS.g:1534:1: forStatement : FOR LPAREN forControl RPAREN statement ;
public final forStatement_return forStatement() throws RecognitionException {
forStatement_return retval = new forStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token FOR236=null;
Token LPAREN237=null;
Token RPAREN239=null;
forControl_return forControl238 = null;
statement_return statement240 = null;
Object FOR236_tree=null;
Object LPAREN237_tree=null;
Object RPAREN239_tree=null;
try {
// JS.g:1535:2: ( FOR LPAREN forControl RPAREN statement )
// JS.g:1535:4: FOR LPAREN forControl RPAREN statement
{
root_0 = (Object)adaptor.nil();
FOR236=(Token)input.LT(1);
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_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_forStatement5625);
pushFollow(FOLLOW_statement_in_forStatement5628);
statement240=statement();
_fsp--;
adaptor.addChild(root_0, statement240.getTree());
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end forStatement
public static class forControl_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start forControl
// JS.g:1538:1: forControl : ( forControlVar | forControlExpression | forControlSemic );
public final forControl_return forControl() throws RecognitionException {
forControl_return retval = new forControl_return();
retval.start = input.LT(1);
Object root_0 = null;
forControlVar_return forControlVar241 = null;
forControlExpression_return forControlExpression242 = null;
forControlSemic_return forControlSemic243 = null;
try {
// JS.g:1539:2: ( forControlVar | forControlExpression | forControlSemic )
int alt55=3;
switch ( input.LA(1) ) {
case VAR:
{
alt55=1;
}
break;
case NULL:
case TRUE:
case FALSE:
case DELETE:
case EACH:
case FUNCTION:
case NEW:
case THIS:
case TYPEOF:
case VOID:
case GET:
case SET:
case YIELD:
case WXML:
case NAMESPACE:
case LBRACE:
case LPAREN:
case LBRACK:
case ADD:
case SUB:
case INC:
case DEC:
case NOT:
case INV:
case XMLLiteral:
case StringLiteral:
case XmlAttribute:
case Identifier:
case RegularExpressionLiteral:
case DecimalLiteral:
case OctalIntegerLiteral:
case HexIntegerLiteral:
{
alt55=2;
}
break;
case SEMIC:
{
alt55=3;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("1538:1: forControl : ( forControlVar | forControlExpression | forControlSemic );", 55, 0, input);
throw nvae;
}
switch (alt55) {
case 1 :
// JS.g:1539:4: forControlVar
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_forControlVar_in_forControl5639);
forControlVar241=forControlVar();
_fsp--;
adaptor.addChild(root_0, forControlVar241.getTree());
}
break;
case 2 :
// JS.g:1540:4: forControlExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_forControlExpression_in_forControl5644);
forControlExpression242=forControlExpression();
_fsp--;
adaptor.addChild(root_0, forControlExpression242.getTree());
}
break;
case 3 :
// JS.g:1541:4: forControlSemic
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_forControlSemic_in_forControl5649);
forControlSemic243=forControlSemic();
_fsp--;
adaptor.addChild(root_0, forControlSemic243.getTree());
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end forControl
public static class forControlVar_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start forControlVar
// JS.g:1544:1: forControlVar : VAR variableDeclarationNoIn ( ( IN expression -> ^( FORITER ^( VAR variableDeclarationNoIn ) ^( EXPR expression ) ) ) | ( ( COMMA variableDeclarationNoIn )* SEMIC (ex1= expression )? SEMIC (ex2= expression )? -> ^( FORSTEP ^( VAR ( variableDeclarationNoIn )+ ) ^( EXPR ( $ex1)? ) ^( EXPR ( $ex2)? ) ) ) ) ;
public final forControlVar_return forControlVar() throws RecognitionException {
forControlVar_return retval = new forControlVar_return();
retval.start = input.LT(1);
Object root_0 = null;
Token VAR244=null;
Token IN246=null;
Token COMMA248=null;
Token SEMIC250=null;
Token SEMIC251=null;
expression_return ex1 = null;
expression_return ex2 = null;
variableDeclarationNoIn_return variableDeclarationNoIn245 = null;
expression_return expression247 = null;
variableDeclarationNoIn_return variableDeclarationNoIn249 = null;
Object VAR244_tree=null;
Object IN246_tree=null;
Object COMMA248_tree=null;
Object SEMIC250_tree=null;
Object SEMIC251_tree=null;
RewriteRuleTokenStream stream_VAR=new RewriteRuleTokenStream(adaptor,"token VAR");
RewriteRuleTokenStream stream_IN=new RewriteRuleTokenStream(adaptor,"token IN");
RewriteRuleTokenStream stream_SEMIC=new RewriteRuleTokenStream(adaptor,"token SEMIC");
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_expression=new RewriteRuleSubtreeStream(adaptor,"rule expression");
RewriteRuleSubtreeStream stream_variableDeclarationNoIn=new RewriteRuleSubtreeStream(adaptor,"rule variableDeclarationNoIn");
try {
// JS.g:1545:2: ( VAR variableDeclarationNoIn ( ( IN expression -> ^( FORITER ^( VAR variableDeclarationNoIn ) ^( EXPR expression ) ) ) | ( ( COMMA variableDeclarationNoIn )* SEMIC (ex1= expression )? SEMIC (ex2= expression )? -> ^( FORSTEP ^( VAR ( variableDeclarationNoIn )+ ) ^( EXPR ( $ex1)? ) ^( EXPR ( $ex2)? ) ) ) ) )
// 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_forControlVar5660);
stream_VAR.add(VAR244);
pushFollow(FOLLOW_variableDeclarationNoIn_in_forControlVar5662);
variableDeclarationNoIn245=variableDeclarationNoIn();
_fsp--;
stream_variableDeclarationNoIn.add(variableDeclarationNoIn245.getTree());
// JS.g:1546:2: ( ( IN expression -> ^( FORITER ^( VAR variableDeclarationNoIn ) ^( EXPR expression ) ) ) | ( ( COMMA variableDeclarationNoIn )* SEMIC (ex1= expression )? SEMIC (ex2= expression )? -> ^( FORSTEP ^( VAR ( variableDeclarationNoIn )+ ) ^( EXPR ( $ex1)? ) ^( EXPR ( $ex2)? ) ) ) )
int alt59=2;
int LA59_0 = input.LA(1);
if ( (LA59_0==IN) ) {
alt59=1;
}
else if ( ((LA59_0>=SEMIC && LA59_0<=COMMA)) ) {
alt59=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("1546:2: ( ( IN expression -> ^( FORITER ^( VAR variableDeclarationNoIn ) ^( EXPR expression ) ) ) | ( ( COMMA variableDeclarationNoIn )* SEMIC (ex1= expression )? SEMIC (ex2= expression )? -> ^( FORSTEP ^( VAR ( variableDeclarationNoIn )+ ) ^( EXPR ( $ex1)? ) ^( EXPR ( $ex2)? ) ) ) )", 59, 0, input);
throw nvae;
}
switch (alt59) {
case 1 :
// JS.g:1547:3: ( IN expression -> ^( FORITER ^( VAR variableDeclarationNoIn ) ^( EXPR expression ) ) )
{
// JS.g:1547:3: ( IN expression -> ^( FORITER ^( VAR variableDeclarationNoIn ) ^( EXPR expression ) ) )
// JS.g:1548:4: IN expression
{
IN246=(Token)input.LT(1);
match(input,IN,FOLLOW_IN_in_forControlVar5674);
stream_IN.add(IN246);
pushFollow(FOLLOW_expression_in_forControlVar5676);
expression247=expression();
_fsp--;
stream_expression.add(expression247.getTree());
// AST REWRITE
// elements: VAR, expression, variableDeclarationNoIn
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
// 1549:4: -> ^( FORITER ^( VAR variableDeclarationNoIn ) ^( EXPR expression ) )
{
// JS.g:1549:7: ^( FORITER ^( VAR variableDeclarationNoIn ) ^( EXPR expression ) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(FORITER, "FORITER"), root_1);
// JS.g:1549:18: ^( VAR variableDeclarationNoIn )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot(stream_VAR.next(), root_2);
adaptor.addChild(root_2, stream_variableDeclarationNoIn.next());
adaptor.addChild(root_1, root_2);
}
// JS.g:1549:51: ^( EXPR expression )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot(adaptor.create(EXPR, "EXPR"), root_2);
adaptor.addChild(root_2, stream_expression.next());
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
}
}
break;
case 2 :
// JS.g:1552:3: ( ( COMMA variableDeclarationNoIn )* SEMIC (ex1= expression )? SEMIC (ex2= expression )? -> ^( FORSTEP ^( VAR ( variableDeclarationNoIn )+ ) ^( EXPR ( $ex1)? ) ^( EXPR ( $ex2)? ) ) )
{
// JS.g:1552:3: ( ( COMMA variableDeclarationNoIn )* SEMIC (ex1= expression )? SEMIC (ex2= expression )? -> ^( FORSTEP ^( VAR ( variableDeclarationNoIn )+ ) ^( EXPR ( $ex1)? ) ^( EXPR ( $ex2)? ) ) )
// JS.g:1553:4: ( COMMA variableDeclarationNoIn )* SEMIC (ex1= expression )? SEMIC (ex2= expression )?
{
// JS.g:1553:4: ( COMMA variableDeclarationNoIn )*
loop56:
do {
int alt56=2;
int LA56_0 = input.LA(1);
if ( (LA56_0==COMMA) ) {
alt56=1;
}
switch (alt56) {
case 1 :
// JS.g:1553:6: COMMA variableDeclarationNoIn
{
COMMA248=(Token)input.LT(1);
match(input,COMMA,FOLLOW_COMMA_in_forControlVar5722);
stream_COMMA.add(COMMA248);
pushFollow(FOLLOW_variableDeclarationNoIn_in_forControlVar5724);
variableDeclarationNoIn249=variableDeclarationNoIn();
_fsp--;
stream_variableDeclarationNoIn.add(variableDeclarationNoIn249.getTree());
}
break;
default :
break loop56;
}
} while (true);
SEMIC250=(Token)input.LT(1);
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==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_forControlVar5733);
ex1=expression();
_fsp--;
stream_expression.add(ex1.getTree());
}
break;
}
SEMIC251=(Token)input.LT(1);
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==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_forControlVar5740);
ex2=expression();
_fsp--;
stream_expression.add(ex2.getTree());
}
break;
}
// AST REWRITE
// elements: VAR, ex1, ex2, variableDeclarationNoIn
// token labels:
// rule labels: retval, ex2, ex1
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
RewriteRuleSubtreeStream stream_ex2=new RewriteRuleSubtreeStream(adaptor,"token ex2",ex2!=null?ex2.tree:null);
RewriteRuleSubtreeStream stream_ex1=new RewriteRuleSubtreeStream(adaptor,"token ex1",ex1!=null?ex1.tree:null);
root_0 = (Object)adaptor.nil();
// 1554:4: -> ^( FORSTEP ^( VAR ( variableDeclarationNoIn )+ ) ^( EXPR ( $ex1)? ) ^( EXPR ( $ex2)? ) )
{
// JS.g:1554:7: ^( FORSTEP ^( VAR ( variableDeclarationNoIn )+ ) ^( EXPR ( $ex1)? ) ^( EXPR ( $ex2)? ) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(FORSTEP, "FORSTEP"), root_1);
// JS.g:1554:18: ^( VAR ( variableDeclarationNoIn )+ )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot(stream_VAR.next(), root_2);
if ( !(stream_variableDeclarationNoIn.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_variableDeclarationNoIn.hasNext() ) {
adaptor.addChild(root_2, stream_variableDeclarationNoIn.next());
}
stream_variableDeclarationNoIn.reset();
adaptor.addChild(root_1, root_2);
}
// JS.g:1554:52: ^( EXPR ( $ex1)? )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot(adaptor.create(EXPR, "EXPR"), root_2);
// JS.g:1554:60: ( $ex1)?
if ( stream_ex1.hasNext() ) {
adaptor.addChild(root_2, stream_ex1.next());
}
stream_ex1.reset();
adaptor.addChild(root_1, root_2);
}
// JS.g:1554:68: ^( EXPR ( $ex2)? )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot(adaptor.create(EXPR, "EXPR"), root_2);
// JS.g:1554:76: ( $ex2)?
if ( stream_ex2.hasNext() ) {
adaptor.addChild(root_2, stream_ex2.next());
}
stream_ex2.reset();
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
}
}
break;
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end forControlVar
public static class forControlExpression_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start forControlExpression
// JS.g:1559:1: forControlExpression : ex1= expressionNoIn ({...}? ( IN ex2= expression -> ^( FORITER ^( EXPR $ex1) ^( EXPR $ex2) ) ) | ( SEMIC (ex2= expression )? SEMIC (ex3= expression )? -> ^( FORSTEP ^( EXPR $ex1) ^( EXPR ( $ex2)? ) ^( EXPR ( $ex3)? ) ) ) ) ;
public final forControlExpression_return forControlExpression() throws RecognitionException {
forControlExpression_return retval = new forControlExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IN252=null;
Token SEMIC253=null;
Token SEMIC254=null;
expressionNoIn_return ex1 = null;
expression_return ex2 = null;
expression_return ex3 = null;
Object IN252_tree=null;
Object SEMIC253_tree=null;
Object SEMIC254_tree=null;
RewriteRuleTokenStream stream_IN=new RewriteRuleTokenStream(adaptor,"token IN");
RewriteRuleTokenStream stream_SEMIC=new RewriteRuleTokenStream(adaptor,"token SEMIC");
RewriteRuleSubtreeStream stream_expression=new RewriteRuleSubtreeStream(adaptor,"rule expression");
RewriteRuleSubtreeStream stream_expressionNoIn=new RewriteRuleSubtreeStream(adaptor,"rule expressionNoIn");
Object[] isLhs = new Object[1];
try {
// 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_forControlExpression5806);
ex1=expressionNoIn();
_fsp--;
stream_expressionNoIn.add(ex1.getTree());
// JS.g:1565:2: ({...}? ( IN ex2= expression -> ^( FORITER ^( EXPR $ex1) ^( EXPR $ex2) ) ) | ( SEMIC (ex2= expression )? SEMIC (ex3= expression )? -> ^( FORSTEP ^( EXPR $ex1) ^( EXPR ( $ex2)? ) ^( EXPR ( $ex3)? ) ) ) )
int alt62=2;
int LA62_0 = input.LA(1);
if ( (LA62_0==IN) ) {
alt62=1;
}
else if ( (LA62_0==SEMIC) ) {
alt62=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("1565:2: ({...}? ( IN ex2= expression -> ^( FORITER ^( EXPR $ex1) ^( EXPR $ex2) ) ) | ( SEMIC (ex2= expression )? SEMIC (ex3= expression )? -> ^( FORSTEP ^( EXPR $ex1) ^( EXPR ( $ex2)? ) ^( EXPR ( $ex3)? ) ) ) )", 62, 0, input);
throw nvae;
}
switch (alt62) {
case 1 :
// JS.g:1566:3: {...}? ( IN ex2= expression -> ^( FORITER ^( EXPR $ex1) ^( EXPR $ex2) ) )
{
if ( !( isLeftHandSideIn(ex1, isLhs) ) ) {
throw new FailedPredicateException(input, "forControlExpression", " isLeftHandSideIn(ex1, isLhs) ");
}
// JS.g:1566:37: ( IN ex2= expression -> ^( FORITER ^( EXPR $ex1) ^( EXPR $ex2) ) )
// JS.g:1567:4: IN ex2= expression
{
IN252=(Token)input.LT(1);
match(input,IN,FOLLOW_IN_in_forControlExpression5821);
stream_IN.add(IN252);
pushFollow(FOLLOW_expression_in_forControlExpression5825);
ex2=expression();
_fsp--;
stream_expression.add(ex2.getTree());
// AST REWRITE
// elements: ex1, ex2
// token labels:
// rule labels: retval, ex2, ex1
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
RewriteRuleSubtreeStream stream_ex2=new RewriteRuleSubtreeStream(adaptor,"token ex2",ex2!=null?ex2.tree:null);
RewriteRuleSubtreeStream stream_ex1=new RewriteRuleSubtreeStream(adaptor,"token ex1",ex1!=null?ex1.tree:null);
root_0 = (Object)adaptor.nil();
// 1568:4: -> ^( FORITER ^( EXPR $ex1) ^( EXPR $ex2) )
{
// JS.g:1568:7: ^( FORITER ^( EXPR $ex1) ^( EXPR $ex2) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(FORITER, "FORITER"), root_1);
// JS.g:1568:18: ^( EXPR $ex1)
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot(adaptor.create(EXPR, "EXPR"), root_2);
adaptor.addChild(root_2, stream_ex1.next());
adaptor.addChild(root_1, root_2);
}
// JS.g:1568:33: ^( EXPR $ex2)
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot(adaptor.create(EXPR, "EXPR"), root_2);
adaptor.addChild(root_2, stream_ex2.next());
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
}
}
break;
case 2 :
// JS.g:1571:3: ( SEMIC (ex2= expression )? SEMIC (ex3= expression )? -> ^( FORSTEP ^( EXPR $ex1) ^( EXPR ( $ex2)? ) ^( EXPR ( $ex3)? ) ) )
{
// JS.g:1571:3: ( SEMIC (ex2= expression )? SEMIC (ex3= expression )? -> ^( FORSTEP ^( EXPR $ex1) ^( EXPR ( $ex2)? ) ^( EXPR ( $ex3)? ) ) )
// JS.g:1572:4: SEMIC (ex2= expression )? SEMIC (ex3= expression )?
{
SEMIC253=(Token)input.LT(1);
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==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_forControlExpression5875);
ex2=expression();
_fsp--;
stream_expression.add(ex2.getTree());
}
break;
}
SEMIC254=(Token)input.LT(1);
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==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_forControlExpression5882);
ex3=expression();
_fsp--;
stream_expression.add(ex3.getTree());
}
break;
}
// AST REWRITE
// elements: ex3, ex1, ex2
// token labels:
// rule labels: retval, ex3, ex2, ex1
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
RewriteRuleSubtreeStream stream_ex3=new RewriteRuleSubtreeStream(adaptor,"token ex3",ex3!=null?ex3.tree:null);
RewriteRuleSubtreeStream stream_ex2=new RewriteRuleSubtreeStream(adaptor,"token ex2",ex2!=null?ex2.tree:null);
RewriteRuleSubtreeStream stream_ex1=new RewriteRuleSubtreeStream(adaptor,"token ex1",ex1!=null?ex1.tree:null);
root_0 = (Object)adaptor.nil();
// 1573:4: -> ^( FORSTEP ^( EXPR $ex1) ^( EXPR ( $ex2)? ) ^( EXPR ( $ex3)? ) )
{
// JS.g:1573:7: ^( FORSTEP ^( EXPR $ex1) ^( EXPR ( $ex2)? ) ^( EXPR ( $ex3)? ) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(FORSTEP, "FORSTEP"), root_1);
// JS.g:1573:18: ^( EXPR $ex1)
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot(adaptor.create(EXPR, "EXPR"), root_2);
adaptor.addChild(root_2, stream_ex1.next());
adaptor.addChild(root_1, root_2);
}
// JS.g:1573:33: ^( EXPR ( $ex2)? )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot(adaptor.create(EXPR, "EXPR"), root_2);
// JS.g:1573:41: ( $ex2)?
if ( stream_ex2.hasNext() ) {
adaptor.addChild(root_2, stream_ex2.next());
}
stream_ex2.reset();
adaptor.addChild(root_1, root_2);
}
// JS.g:1573:49: ^( EXPR ( $ex3)? )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot(adaptor.create(EXPR, "EXPR"), root_2);
// JS.g:1573:57: ( $ex3)?
if ( stream_ex3.hasNext() ) {
adaptor.addChild(root_2, stream_ex3.next());
}
stream_ex3.reset();
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
}
}
break;
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end forControlExpression
public static class forControlSemic_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start forControlSemic
// JS.g:1578:1: forControlSemic : SEMIC (ex1= expression )? SEMIC (ex2= expression )? -> ^( FORSTEP ^( EXPR ) ^( EXPR ( $ex1)? ) ^( EXPR ( $ex2)? ) ) ;
public final forControlSemic_return forControlSemic() throws RecognitionException {
forControlSemic_return retval = new forControlSemic_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SEMIC255=null;
Token SEMIC256=null;
expression_return ex1 = null;
expression_return ex2 = null;
Object SEMIC255_tree=null;
Object SEMIC256_tree=null;
RewriteRuleTokenStream stream_SEMIC=new RewriteRuleTokenStream(adaptor,"token SEMIC");
RewriteRuleSubtreeStream stream_expression=new RewriteRuleSubtreeStream(adaptor,"rule expression");
try {
// JS.g:1579:2: ( SEMIC (ex1= expression )? SEMIC (ex2= expression )? -> ^( FORSTEP ^( EXPR ) ^( EXPR ( $ex1)? ) ^( EXPR ( $ex2)? ) ) )
// JS.g:1579:4: SEMIC (ex1= expression )? SEMIC (ex2= expression )?
{
SEMIC255=(Token)input.LT(1);
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==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_forControlSemic5945);
ex1=expression();
_fsp--;
stream_expression.add(ex1.getTree());
}
break;
}
SEMIC256=(Token)input.LT(1);
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==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_forControlSemic5952);
ex2=expression();
_fsp--;
stream_expression.add(ex2.getTree());
}
break;
}
// AST REWRITE
// elements: ex2, ex1
// token labels:
// rule labels: retval, ex2, ex1
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
RewriteRuleSubtreeStream stream_ex2=new RewriteRuleSubtreeStream(adaptor,"token ex2",ex2!=null?ex2.tree:null);
RewriteRuleSubtreeStream stream_ex1=new RewriteRuleSubtreeStream(adaptor,"token ex1",ex1!=null?ex1.tree:null);
root_0 = (Object)adaptor.nil();
// 1580:2: -> ^( FORSTEP ^( EXPR ) ^( EXPR ( $ex1)? ) ^( EXPR ( $ex2)? ) )
{
// JS.g:1580:5: ^( FORSTEP ^( EXPR ) ^( EXPR ( $ex1)? ) ^( EXPR ( $ex2)? ) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(FORSTEP, "FORSTEP"), root_1);
// JS.g:1580:16: ^( EXPR )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot(adaptor.create(EXPR, "EXPR"), root_2);
adaptor.addChild(root_1, root_2);
}
// JS.g:1580:26: ^( EXPR ( $ex1)? )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot(adaptor.create(EXPR, "EXPR"), root_2);
// JS.g:1580:34: ( $ex1)?
if ( stream_ex1.hasNext() ) {
adaptor.addChild(root_2, stream_ex1.next());
}
stream_ex1.reset();
adaptor.addChild(root_1, root_2);
}
// JS.g:1580:42: ^( EXPR ( $ex2)? )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot(adaptor.create(EXPR, "EXPR"), root_2);
// JS.g:1580:50: ( $ex2)?
if ( stream_ex2.hasNext() ) {
adaptor.addChild(root_2, stream_ex2.next());
}
stream_ex2.reset();
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end forControlSemic
public static class continueStatement_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start continueStatement
// JS.g:1592:1: continueStatement : CONTINUE ( Identifier )? semic ;
public final continueStatement_return continueStatement() throws RecognitionException {
continueStatement_return retval = new continueStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token CONTINUE257=null;
Token Identifier258=null;
semic_return semic259 = null;
Object CONTINUE257_tree=null;
Object Identifier258_tree=null;
try {
// JS.g:1593:2: ( CONTINUE ( Identifier )? semic )
// JS.g:1593:4: CONTINUE ( Identifier )? semic
{
root_0 = (Object)adaptor.nil();
CONTINUE257=(Token)input.LT(1);
match(input,CONTINUE,FOLLOW_CONTINUE_in_continueStatement6006);
CONTINUE257_tree = (Object)adaptor.create(CONTINUE257);
root_0 = (Object)adaptor.becomeRoot(CONTINUE257_tree, root_0);
if (input.LA(1) == Identifier) promoteEOL(null);
// JS.g:1593:67: ( Identifier )?
int alt65=2;
int LA65_0 = input.LA(1);
if ( (LA65_0==Identifier) ) {
alt65=1;
}
switch (alt65) {
case 1 :
// JS.g:1593:67: Identifier
{
Identifier258=(Token)input.LT(1);
match(input,Identifier,FOLLOW_Identifier_in_continueStatement6011);
Identifier258_tree = (Object)adaptor.create(Identifier258);
adaptor.addChild(root_0, Identifier258_tree);
}
break;
}
pushFollow(FOLLOW_semic_in_continueStatement6014);
semic259=semic();
_fsp--;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end continueStatement
public static class breakStatement_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start breakStatement
// JS.g:1605:1: breakStatement : BREAK ( Identifier )? semic ;
public final breakStatement_return breakStatement() throws RecognitionException {
breakStatement_return retval = new breakStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token BREAK260=null;
Token Identifier261=null;
semic_return semic262 = null;
Object BREAK260_tree=null;
Object Identifier261_tree=null;
try {
// JS.g:1606:2: ( BREAK ( Identifier )? semic )
// JS.g:1606:4: BREAK ( Identifier )? semic
{
root_0 = (Object)adaptor.nil();
BREAK260=(Token)input.LT(1);
match(input,BREAK,FOLLOW_BREAK_in_breakStatement6033);
BREAK260_tree = (Object)adaptor.create(BREAK260);
root_0 = (Object)adaptor.becomeRoot(BREAK260_tree, root_0);
if (input.LA(1) == Identifier) promoteEOL(null);
// JS.g:1606:64: ( Identifier )?
int alt66=2;
int LA66_0 = input.LA(1);
if ( (LA66_0==Identifier) ) {
alt66=1;
}
switch (alt66) {
case 1 :
// JS.g:1606:64: Identifier
{
Identifier261=(Token)input.LT(1);
match(input,Identifier,FOLLOW_Identifier_in_breakStatement6038);
Identifier261_tree = (Object)adaptor.create(Identifier261);
adaptor.addChild(root_0, Identifier261_tree);
}
break;
}
pushFollow(FOLLOW_semic_in_breakStatement6041);
semic262=semic();
_fsp--;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end breakStatement
public static class returnStatement_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start returnStatement
// JS.g:1626:1: returnStatement : RETURN ( expression )? semic ;
public final returnStatement_return returnStatement() throws RecognitionException {
returnStatement_return retval = new returnStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token RETURN263=null;
expression_return expression264 = null;
semic_return semic265 = null;
Object RETURN263_tree=null;
try {
// JS.g:1627:2: ( RETURN ( expression )? semic )
// JS.g:1627:4: RETURN ( expression )? semic
{
root_0 = (Object)adaptor.nil();
RETURN263=(Token)input.LT(1);
match(input,RETURN,FOLLOW_RETURN_in_returnStatement6060);
RETURN263_tree = (Object)adaptor.create(RETURN263);
root_0 = (Object)adaptor.becomeRoot(RETURN263_tree, root_0);
promoteEOL(null);
// JS.g:1627:34: ( expression )?
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==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_returnStatement6065);
expression264=expression();
_fsp--;
adaptor.addChild(root_0, expression264.getTree());
}
break;
}
pushFollow(FOLLOW_semic_in_returnStatement6068);
semic265=semic();
_fsp--;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end returnStatement
public static class withStatement_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start withStatement
// JS.g:1634:1: withStatement : WITH LPAREN expression RPAREN statement ;
public final withStatement_return withStatement() throws RecognitionException {
withStatement_return retval = new withStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token WITH266=null;
Token LPAREN267=null;
Token RPAREN269=null;
expression_return expression268 = null;
statement_return statement270 = null;
Object WITH266_tree=null;
Object LPAREN267_tree=null;
Object RPAREN269_tree=null;
try {
// JS.g:1635:2: ( WITH LPAREN expression RPAREN statement )
// JS.g:1635:4: WITH LPAREN expression RPAREN statement
{
root_0 = (Object)adaptor.nil();
WITH266=(Token)input.LT(1);
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_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_withStatement6093);
pushFollow(FOLLOW_statement_in_withStatement6096);
statement270=statement();
_fsp--;
adaptor.addChild(root_0, statement270.getTree());
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end withStatement
public static class switchStatement_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start switchStatement
// JS.g:1642:1: switchStatement : SWITCH LPAREN expression RPAREN LBRACE ({...}? => defaultClause | caseClause )* RBRACE -> ^( SWITCH expression ( defaultClause )? ( caseClause )* ) ;
public final switchStatement_return switchStatement() throws RecognitionException {
switchStatement_return retval = new switchStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SWITCH271=null;
Token LPAREN272=null;
Token RPAREN274=null;
Token LBRACE275=null;
Token RBRACE278=null;
expression_return expression273 = null;
defaultClause_return defaultClause276 = null;
caseClause_return caseClause277 = null;
Object SWITCH271_tree=null;
Object LPAREN272_tree=null;
Object RPAREN274_tree=null;
Object LBRACE275_tree=null;
Object RBRACE278_tree=null;
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_RBRACE=new RewriteRuleTokenStream(adaptor,"token RBRACE");
RewriteRuleTokenStream stream_SWITCH=new RewriteRuleTokenStream(adaptor,"token SWITCH");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_LBRACE=new RewriteRuleTokenStream(adaptor,"token LBRACE");
RewriteRuleSubtreeStream stream_expression=new RewriteRuleSubtreeStream(adaptor,"rule expression");
RewriteRuleSubtreeStream stream_caseClause=new RewriteRuleSubtreeStream(adaptor,"rule caseClause");
RewriteRuleSubtreeStream stream_defaultClause=new RewriteRuleSubtreeStream(adaptor,"rule defaultClause");
int defaultClauseCount = 0;
try {
// JS.g:1647:2: ( SWITCH LPAREN expression RPAREN LBRACE ({...}? => defaultClause | caseClause )* RBRACE -> ^( SWITCH expression ( defaultClause )? ( caseClause )* ) )
// JS.g:1647:4: SWITCH LPAREN expression RPAREN LBRACE ({...}? => defaultClause | caseClause )* RBRACE
{
SWITCH271=(Token)input.LT(1);
match(input,SWITCH,FOLLOW_SWITCH_in_switchStatement6117);
stream_SWITCH.add(SWITCH271);
LPAREN272=(Token)input.LT(1);
match(input,LPAREN,FOLLOW_LPAREN_in_switchStatement6119);
stream_LPAREN.add(LPAREN272);
pushFollow(FOLLOW_expression_in_switchStatement6121);
expression273=expression();
_fsp--;
stream_expression.add(expression273.getTree());
RPAREN274=(Token)input.LT(1);
match(input,RPAREN,FOLLOW_RPAREN_in_switchStatement6123);
stream_RPAREN.add(RPAREN274);
LBRACE275=(Token)input.LT(1);
match(input,LBRACE,FOLLOW_LBRACE_in_switchStatement6125);
stream_LBRACE.add(LBRACE275);
// JS.g:1647:43: ({...}? => defaultClause | caseClause )*
loop68:
do {
int alt68=3;
int LA68_0 = input.LA(1);
if ( (LA68_0==DEFAULT) && ( defaultClauseCount == 0 )) {
alt68=1;
}
else if ( (LA68_0==CASE) ) {
alt68=2;
}
switch (alt68) {
case 1 :
// JS.g:1647:45: {...}? => defaultClause
{
if ( !( defaultClauseCount == 0 ) ) {
throw new FailedPredicateException(input, "switchStatement", " defaultClauseCount == 0 ");
}
pushFollow(FOLLOW_defaultClause_in_switchStatement6132);
defaultClause276=defaultClause();
_fsp--;
stream_defaultClause.add(defaultClause276.getTree());
defaultClauseCount++;
}
break;
case 2 :
// JS.g:1647:118: caseClause
{
pushFollow(FOLLOW_caseClause_in_switchStatement6138);
caseClause277=caseClause();
_fsp--;
stream_caseClause.add(caseClause277.getTree());
}
break;
default :
break loop68;
}
} while (true);
RBRACE278=(Token)input.LT(1);
match(input,RBRACE,FOLLOW_RBRACE_in_switchStatement6143);
stream_RBRACE.add(RBRACE278);
// AST REWRITE
// elements: expression, defaultClause, caseClause, SWITCH
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
// 1648:2: -> ^( SWITCH expression ( defaultClause )? ( caseClause )* )
{
// JS.g:1648:5: ^( SWITCH expression ( defaultClause )? ( caseClause )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_SWITCH.next(), root_1);
adaptor.addChild(root_1, stream_expression.next());
// JS.g:1648:26: ( defaultClause )?
if ( stream_defaultClause.hasNext() ) {
adaptor.addChild(root_1, stream_defaultClause.next());
}
stream_defaultClause.reset();
// JS.g:1648:41: ( caseClause )*
while ( stream_caseClause.hasNext() ) {
adaptor.addChild(root_1, stream_caseClause.next());
}
stream_caseClause.reset();
adaptor.addChild(root_0, root_1);
}
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end switchStatement
public static class caseClause_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start caseClause
// JS.g:1651:1: caseClause : CASE expression COLON ( statement )* ;
public final caseClause_return caseClause() throws RecognitionException {
caseClause_return retval = new caseClause_return();
retval.start = input.LT(1);
Object root_0 = null;
Token CASE279=null;
Token COLON281=null;
expression_return expression280 = null;
statement_return statement282 = null;
Object CASE279_tree=null;
Object COLON281_tree=null;
try {
// JS.g:1652:2: ( CASE expression COLON ( statement )* )
// JS.g:1652:4: CASE expression COLON ( statement )*
{
root_0 = (Object)adaptor.nil();
CASE279=(Token)input.LT(1);
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_caseClause6174);
expression280=expression();
_fsp--;
adaptor.addChild(root_0, expression280.getTree());
COLON281=(Token)input.LT(1);
match(input,COLON,FOLLOW_COLON_in_caseClause6176);
// JS.g:1652:28: ( statement )*
loop69:
do {
int alt69=2;
int LA69_0 = input.LA(1);
if ( (LA69_0==DEFAULT) ) {
int LA69_2 = input.LA(2);
if ( (LA69_2==WXML) ) {
alt69=1;
}
}
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;
}
switch (alt69) {
case 1 :
// JS.g:1652:28: statement
{
pushFollow(FOLLOW_statement_in_caseClause6179);
statement282=statement();
_fsp--;
adaptor.addChild(root_0, statement282.getTree());
}
break;
default :
break loop69;
}
} while (true);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end caseClause
public static class defaultClause_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start defaultClause
// JS.g:1655:1: defaultClause : DEFAULT COLON ( statement )* ;
public final defaultClause_return defaultClause() throws RecognitionException {
defaultClause_return retval = new defaultClause_return();
retval.start = input.LT(1);
Object root_0 = null;
Token DEFAULT283=null;
Token COLON284=null;
statement_return statement285 = null;
Object DEFAULT283_tree=null;
Object COLON284_tree=null;
try {
// JS.g:1656:2: ( DEFAULT COLON ( statement )* )
// JS.g:1656:4: DEFAULT COLON ( statement )*
{
root_0 = (Object)adaptor.nil();
DEFAULT283=(Token)input.LT(1);
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_defaultClause6195);
// JS.g:1656:20: ( statement )*
loop70:
do {
int alt70=2;
int LA70_0 = input.LA(1);
if ( (LA70_0==DEFAULT) ) {
int LA70_2 = input.LA(2);
if ( (LA70_2==WXML) ) {
alt70=1;
}
}
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;
}
switch (alt70) {
case 1 :
// JS.g:1656:20: statement
{
pushFollow(FOLLOW_statement_in_defaultClause6198);
statement285=statement();
_fsp--;
adaptor.addChild(root_0, statement285.getTree());
}
break;
default :
break loop70;
}
} while (true);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end defaultClause
public static class labelledStatement_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start labelledStatement
// JS.g:1663:1: labelledStatement : identifier COLON statement -> ^( LABELLED identifier statement ) ;
public final labelledStatement_return labelledStatement() throws RecognitionException {
labelledStatement_return retval = new labelledStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COLON287=null;
identifier_return identifier286 = null;
statement_return statement288 = null;
Object COLON287_tree=null;
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleSubtreeStream stream_statement=new RewriteRuleSubtreeStream(adaptor,"rule statement");
RewriteRuleSubtreeStream stream_identifier=new RewriteRuleSubtreeStream(adaptor,"rule identifier");
try {
// JS.g:1664:2: ( identifier COLON statement -> ^( LABELLED identifier statement ) )
// JS.g:1664:4: identifier COLON statement
{
pushFollow(FOLLOW_identifier_in_labelledStatement6215);
identifier286=identifier();
_fsp--;
stream_identifier.add(identifier286.getTree());
COLON287=(Token)input.LT(1);
match(input,COLON,FOLLOW_COLON_in_labelledStatement6217);
stream_COLON.add(COLON287);
pushFollow(FOLLOW_statement_in_labelledStatement6219);
statement288=statement();
_fsp--;
stream_statement.add(statement288.getTree());
// AST REWRITE
// elements: identifier, statement
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
// 1665:2: -> ^( LABELLED identifier statement )
{
// JS.g:1665:5: ^( LABELLED identifier statement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(LABELLED, "LABELLED"), root_1);
adaptor.addChild(root_1, stream_identifier.next());
adaptor.addChild(root_1, stream_statement.next());
adaptor.addChild(root_0, root_1);
}
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end labelledStatement
public static class throwStatement_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start throwStatement
// JS.g:1687:1: throwStatement : THROW expression semic ;
public final throwStatement_return throwStatement() throws RecognitionException {
throwStatement_return retval = new throwStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token THROW289=null;
expression_return expression290 = null;
semic_return semic291 = null;
Object THROW289_tree=null;
try {
// JS.g:1688:2: ( THROW expression semic )
// JS.g:1688:4: THROW expression semic
{
root_0 = (Object)adaptor.nil();
THROW289=(Token)input.LT(1);
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_throwStatement6255);
expression290=expression();
_fsp--;
adaptor.addChild(root_0, expression290.getTree());
pushFollow(FOLLOW_semic_in_throwStatement6257);
semic291=semic();
_fsp--;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end throwStatement
public static class tryStatement_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start tryStatement
// JS.g:1695:1: tryStatement : TRY block ( ( catchClause )+ ( finallyClause )? | finallyClause ) ;
public final tryStatement_return tryStatement() throws RecognitionException {
tryStatement_return retval = new tryStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token TRY292=null;
block_return block293 = null;
catchClause_return catchClause294 = null;
finallyClause_return finallyClause295 = null;
finallyClause_return finallyClause296 = null;
Object TRY292_tree=null;
try {
// JS.g:1696:2: ( TRY block ( ( catchClause )+ ( finallyClause )? | finallyClause ) )
// JS.g:1696:4: TRY block ( ( catchClause )+ ( finallyClause )? | finallyClause )
{
root_0 = (Object)adaptor.nil();
TRY292=(Token)input.LT(1);
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_tryStatement6277);
block293=block();
_fsp--;
adaptor.addChild(root_0, block293.getTree());
// JS.g:1696:15: ( ( catchClause )+ ( finallyClause )? | finallyClause )
int alt73=2;
int LA73_0 = input.LA(1);
if ( (LA73_0==CATCH) ) {
alt73=1;
}
else if ( (LA73_0==FINALLY) ) {
alt73=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("1696:15: ( ( catchClause )+ ( finallyClause )? | finallyClause )", 73, 0, input);
throw nvae;
}
switch (alt73) {
case 1 :
// JS.g:1696:17: ( catchClause )+ ( finallyClause )?
{
// JS.g:1696:17: ( catchClause )+
int cnt71=0;
loop71:
do {
int alt71=2;
int LA71_0 = input.LA(1);
if ( (LA71_0==CATCH) ) {
alt71=1;
}
switch (alt71) {
case 1 :
// JS.g:1696:17: catchClause
{
pushFollow(FOLLOW_catchClause_in_tryStatement6281);
catchClause294=catchClause();
_fsp--;
adaptor.addChild(root_0, catchClause294.getTree());
}
break;
default :
if ( cnt71 >= 1 ) break loop71;
EarlyExitException eee =
new EarlyExitException(71, input);
throw eee;
}
cnt71++;
} while (true);
// JS.g:1696:30: ( finallyClause )?
int alt72=2;
int LA72_0 = input.LA(1);
if ( (LA72_0==FINALLY) ) {
alt72=1;
}
switch (alt72) {
case 1 :
// JS.g:1696:30: finallyClause
{
pushFollow(FOLLOW_finallyClause_in_tryStatement6284);
finallyClause295=finallyClause();
_fsp--;
adaptor.addChild(root_0, finallyClause295.getTree());
}
break;
}
}
break;
case 2 :
// JS.g:1696:47: finallyClause
{
pushFollow(FOLLOW_finallyClause_in_tryStatement6289);
finallyClause296=finallyClause();
_fsp--;
adaptor.addChild(root_0, finallyClause296.getTree());
}
break;
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end tryStatement
public static class catchClause_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start catchClause
// JS.g:1699:1: catchClause : CATCH LPAREN identifier ( catchFilter )? RPAREN block ;
public final catchClause_return catchClause() throws RecognitionException {
catchClause_return retval = new catchClause_return();
retval.start = input.LT(1);
Object root_0 = null;
Token CATCH297=null;
Token LPAREN298=null;
Token RPAREN301=null;
identifier_return identifier299 = null;
catchFilter_return catchFilter300 = null;
block_return block302 = null;
Object CATCH297_tree=null;
Object LPAREN298_tree=null;
Object RPAREN301_tree=null;
try {
// JS.g:1700:2: ( CATCH LPAREN identifier ( catchFilter )? RPAREN block )
// JS.g:1700:4: CATCH LPAREN identifier ( catchFilter )? RPAREN block
{
root_0 = (Object)adaptor.nil();
CATCH297=(Token)input.LT(1);
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_catchClause6306);
pushFollow(FOLLOW_identifier_in_catchClause6309);
identifier299=identifier();
_fsp--;
adaptor.addChild(root_0, identifier299.getTree());
// JS.g:1700:30: ( catchFilter )?
int alt74=2;
int LA74_0 = input.LA(1);
if ( (LA74_0==IF) ) {
alt74=1;
}
switch (alt74) {
case 1 :
// JS.g:1700:30: catchFilter
{
pushFollow(FOLLOW_catchFilter_in_catchClause6311);
catchFilter300=catchFilter();
_fsp--;
adaptor.addChild(root_0, catchFilter300.getTree());
}
break;
}
RPAREN301=(Token)input.LT(1);
match(input,RPAREN,FOLLOW_RPAREN_in_catchClause6314);
pushFollow(FOLLOW_block_in_catchClause6317);
block302=block();
_fsp--;
adaptor.addChild(root_0, block302.getTree());
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end catchClause
public static class catchFilter_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start catchFilter
// JS.g:1703:1: catchFilter : IF instanceofExpression ;
public final catchFilter_return catchFilter() throws RecognitionException {
catchFilter_return retval = new catchFilter_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IF303=null;
instanceofExpression_return instanceofExpression304 = null;
Object IF303_tree=null;
try {
// JS.g:1704:3: ( IF instanceofExpression )
// JS.g:1704:5: IF instanceofExpression
{
root_0 = (Object)adaptor.nil();
IF303=(Token)input.LT(1);
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_catchFilter6333);
instanceofExpression304=instanceofExpression();
_fsp--;
adaptor.addChild(root_0, instanceofExpression304.getTree());
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end catchFilter
public static class instanceofExpression_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start instanceofExpression
// JS.g:1707:1: instanceofExpression : identifier INSTANCEOF identifier ;
public final instanceofExpression_return instanceofExpression() throws RecognitionException {
instanceofExpression_return retval = new instanceofExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token INSTANCEOF306=null;
identifier_return identifier305 = null;
identifier_return identifier307 = null;
Object INSTANCEOF306_tree=null;
try {
// JS.g:1708:3: ( identifier INSTANCEOF identifier )
// JS.g:1708:5: identifier INSTANCEOF identifier
{
root_0 = (Object)adaptor.nil();
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_instanceofExpression6350);
INSTANCEOF306_tree = (Object)adaptor.create(INSTANCEOF306);
root_0 = (Object)adaptor.becomeRoot(INSTANCEOF306_tree, root_0);
pushFollow(FOLLOW_identifier_in_instanceofExpression6353);
identifier307=identifier();
_fsp--;
adaptor.addChild(root_0, identifier307.getTree());
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end instanceofExpression
public static class finallyClause_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start finallyClause
// JS.g:1711:1: finallyClause : FINALLY block ;
public final finallyClause_return finallyClause() throws RecognitionException {
finallyClause_return retval = new finallyClause_return();
retval.start = input.LT(1);
Object root_0 = null;
Token FINALLY308=null;
block_return block309 = null;
Object FINALLY308_tree=null;
try {
// JS.g:1712:2: ( FINALLY block )
// JS.g:1712:4: FINALLY block
{
root_0 = (Object)adaptor.nil();
FINALLY308=(Token)input.LT(1);
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_finallyClause6369);
block309=block();
_fsp--;
adaptor.addChild(root_0, block309.getTree());
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end finallyClause
public static class functionDeclaration_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start functionDeclaration
// JS.g:1725:1: functionDeclaration : FUNCTION name= identifier formalParameterList functionBody -> ^( FUNCTION $name formalParameterList functionBody ) ;
public final functionDeclaration_return functionDeclaration() throws RecognitionException {
functionDeclaration_return retval = new functionDeclaration_return();
retval.start = input.LT(1);
Object root_0 = null;
Token FUNCTION310=null;
identifier_return name = null;
formalParameterList_return formalParameterList311 = null;
functionBody_return functionBody312 = null;
Object FUNCTION310_tree=null;
RewriteRuleTokenStream stream_FUNCTION=new RewriteRuleTokenStream(adaptor,"token FUNCTION");
RewriteRuleSubtreeStream stream_functionBody=new RewriteRuleSubtreeStream(adaptor,"rule functionBody");
RewriteRuleSubtreeStream stream_identifier=new RewriteRuleSubtreeStream(adaptor,"rule identifier");
RewriteRuleSubtreeStream stream_formalParameterList=new RewriteRuleSubtreeStream(adaptor,"rule formalParameterList");
try {
// JS.g:1726:2: ( FUNCTION name= identifier formalParameterList functionBody -> ^( FUNCTION $name formalParameterList functionBody ) )
// JS.g:1726:4: FUNCTION name= identifier formalParameterList functionBody
{
FUNCTION310=(Token)input.LT(1);
match(input,FUNCTION,FOLLOW_FUNCTION_in_functionDeclaration6390);
stream_FUNCTION.add(FUNCTION310);
pushFollow(FOLLOW_identifier_in_functionDeclaration6394);
name=identifier();
_fsp--;
stream_identifier.add(name.getTree());
pushFollow(FOLLOW_formalParameterList_in_functionDeclaration6396);
formalParameterList311=formalParameterList();
_fsp--;
stream_formalParameterList.add(formalParameterList311.getTree());
pushFollow(FOLLOW_functionBody_in_functionDeclaration6398);
functionBody312=functionBody();
_fsp--;
stream_functionBody.add(functionBody312.getTree());
// AST REWRITE
// elements: formalParameterList, functionBody, FUNCTION, name
// token labels:
// rule labels: retval, name
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
RewriteRuleSubtreeStream stream_name=new RewriteRuleSubtreeStream(adaptor,"token name",name!=null?name.tree:null);
root_0 = (Object)adaptor.nil();
// 1727:2: -> ^( FUNCTION $name formalParameterList functionBody )
{
// JS.g:1727:5: ^( FUNCTION $name formalParameterList functionBody )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_FUNCTION.next(), root_1);
adaptor.addChild(root_1, stream_name.next());
adaptor.addChild(root_1, stream_formalParameterList.next());
adaptor.addChild(root_1, stream_functionBody.next());
adaptor.addChild(root_0, root_1);
}
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end functionDeclaration
public static class functionExpression_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start functionExpression
// JS.g:1730:1: functionExpression : FUNCTION (name= identifier )? formalParameterList functionBody -> ^( FUNCTION ( $name)? formalParameterList functionBody ) ;
public final functionExpression_return functionExpression() throws RecognitionException {
functionExpression_return retval = new functionExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token FUNCTION313=null;
identifier_return name = null;
formalParameterList_return formalParameterList314 = null;
functionBody_return functionBody315 = null;
Object FUNCTION313_tree=null;
RewriteRuleTokenStream stream_FUNCTION=new RewriteRuleTokenStream(adaptor,"token FUNCTION");
RewriteRuleSubtreeStream stream_functionBody=new RewriteRuleSubtreeStream(adaptor,"rule functionBody");
RewriteRuleSubtreeStream stream_identifier=new RewriteRuleSubtreeStream(adaptor,"rule identifier");
RewriteRuleSubtreeStream stream_formalParameterList=new RewriteRuleSubtreeStream(adaptor,"rule formalParameterList");
try {
// JS.g:1731:2: ( FUNCTION (name= identifier )? formalParameterList functionBody -> ^( FUNCTION ( $name)? formalParameterList functionBody ) )
// JS.g:1731:4: FUNCTION (name= identifier )? formalParameterList functionBody
{
FUNCTION313=(Token)input.LT(1);
match(input,FUNCTION,FOLLOW_FUNCTION_in_functionExpression6425);
stream_FUNCTION.add(FUNCTION313);
// JS.g:1731:17: (name= identifier )?
int alt75=2;
int LA75_0 = input.LA(1);
if ( (LA75_0==EACH||(LA75_0>=GET && LA75_0<=SET)||(LA75_0>=WXML && LA75_0<=NAMESPACE)||LA75_0==Identifier) ) {
alt75=1;
}
switch (alt75) {
case 1 :
// JS.g:1731:17: name= identifier
{
pushFollow(FOLLOW_identifier_in_functionExpression6429);
name=identifier();
_fsp--;
stream_identifier.add(name.getTree());
}
break;
}
pushFollow(FOLLOW_formalParameterList_in_functionExpression6432);
formalParameterList314=formalParameterList();
_fsp--;
stream_formalParameterList.add(formalParameterList314.getTree());
pushFollow(FOLLOW_functionBody_in_functionExpression6434);
functionBody315=functionBody();
_fsp--;
stream_functionBody.add(functionBody315.getTree());
// AST REWRITE
// elements: FUNCTION, formalParameterList, name, functionBody
// token labels:
// rule labels: retval, name
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
RewriteRuleSubtreeStream stream_name=new RewriteRuleSubtreeStream(adaptor,"token name",name!=null?name.tree:null);
root_0 = (Object)adaptor.nil();
// 1732:2: -> ^( FUNCTION ( $name)? formalParameterList functionBody )
{
// JS.g:1732:5: ^( FUNCTION ( $name)? formalParameterList functionBody )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_FUNCTION.next(), root_1);
// JS.g:1732:17: ( $name)?
if ( stream_name.hasNext() ) {
adaptor.addChild(root_1, stream_name.next());
}
stream_name.reset();
adaptor.addChild(root_1, stream_formalParameterList.next());
adaptor.addChild(root_1, stream_functionBody.next());
adaptor.addChild(root_0, root_1);
}
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end functionExpression
public static class formalParameterList_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start formalParameterList
// JS.g:1735:1: formalParameterList : LPAREN (args+= identifier ( COMMA args+= identifier )* )? RPAREN -> ^( ARGS ( $args)* ) ;
public final formalParameterList_return formalParameterList() throws RecognitionException {
formalParameterList_return retval = new formalParameterList_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LPAREN316=null;
Token COMMA317=null;
Token RPAREN318=null;
List list_args=null;
RuleReturnScope args = null;
Object LPAREN316_tree=null;
Object COMMA317_tree=null;
Object RPAREN318_tree=null;
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleSubtreeStream stream_identifier=new RewriteRuleSubtreeStream(adaptor,"rule identifier");
try {
// JS.g:1736:2: ( LPAREN (args+= identifier ( COMMA args+= identifier )* )? RPAREN -> ^( ARGS ( $args)* ) )
// JS.g:1736:4: LPAREN (args+= identifier ( COMMA args+= identifier )* )? RPAREN
{
LPAREN316=(Token)input.LT(1);
match(input,LPAREN,FOLLOW_LPAREN_in_formalParameterList6462);
stream_LPAREN.add(LPAREN316);
// JS.g:1736:11: (args+= identifier ( COMMA args+= identifier )* )?
int alt77=2;
int LA77_0 = input.LA(1);
if ( (LA77_0==EACH||(LA77_0>=GET && LA77_0<=SET)||(LA77_0>=WXML && LA77_0<=NAMESPACE)||LA77_0==Identifier) ) {
alt77=1;
}
switch (alt77) {
case 1 :
// JS.g:1736:13: args+= identifier ( COMMA args+= identifier )*
{
pushFollow(FOLLOW_identifier_in_formalParameterList6468);
args=identifier();
_fsp--;
stream_identifier.add(args.getTree());
if (list_args==null) list_args=new ArrayList();
list_args.add(args);
// JS.g:1736:30: ( COMMA args+= identifier )*
loop76:
do {
int alt76=2;
int LA76_0 = input.LA(1);
if ( (LA76_0==COMMA) ) {
alt76=1;
}
switch (alt76) {
case 1 :
// JS.g:1736:32: COMMA args+= identifier
{
COMMA317=(Token)input.LT(1);
match(input,COMMA,FOLLOW_COMMA_in_formalParameterList6472);
stream_COMMA.add(COMMA317);
pushFollow(FOLLOW_identifier_in_formalParameterList6476);
args=identifier();
_fsp--;
stream_identifier.add(args.getTree());
if (list_args==null) list_args=new ArrayList();
list_args.add(args);
}
break;
default :
break loop76;
}
} while (true);
}
break;
}
RPAREN318=(Token)input.LT(1);
match(input,RPAREN,FOLLOW_RPAREN_in_formalParameterList6484);
stream_RPAREN.add(RPAREN318);
// AST REWRITE
// elements: args
// token labels:
// rule labels: retval
// token list labels:
// rule list labels: args
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
RewriteRuleSubtreeStream stream_args=new RewriteRuleSubtreeStream(adaptor,"token args",list_args);
root_0 = (Object)adaptor.nil();
// 1737:2: -> ^( ARGS ( $args)* )
{
// JS.g:1737:5: ^( ARGS ( $args)* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(ARGS, "ARGS"), root_1);
// JS.g:1737:13: ( $args)*
while ( stream_args.hasNext() ) {
adaptor.addChild(root_1, ((ParserRuleReturnScope)stream_args.next()).getTree());
}
stream_args.reset();
adaptor.addChild(root_0, root_1);
}
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end formalParameterList
public static class functionBody_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start functionBody
// JS.g:1740:1: functionBody : lb= LBRACE ( sourceElement )* RBRACE -> ^( BLOCK[$lb, \"BLOCK\"] ( sourceElement )* ) ;
public final functionBody_return functionBody() throws RecognitionException {
functionBody_return retval = new functionBody_return();
retval.start = input.LT(1);
Object root_0 = null;
Token lb=null;
Token RBRACE320=null;
sourceElement_return sourceElement319 = null;
Object lb_tree=null;
Object RBRACE320_tree=null;
RewriteRuleTokenStream stream_RBRACE=new RewriteRuleTokenStream(adaptor,"token RBRACE");
RewriteRuleTokenStream stream_LBRACE=new RewriteRuleTokenStream(adaptor,"token LBRACE");
RewriteRuleSubtreeStream stream_sourceElement=new RewriteRuleSubtreeStream(adaptor,"rule sourceElement");
try {
// JS.g:1741:2: (lb= LBRACE ( sourceElement )* RBRACE -> ^( BLOCK[$lb, \"BLOCK\"] ( sourceElement )* ) )
// JS.g:1741:4: lb= LBRACE ( sourceElement )* RBRACE
{
lb=(Token)input.LT(1);
match(input,LBRACE,FOLLOW_LBRACE_in_functionBody6510);
stream_LBRACE.add(lb);
// JS.g:1741:14: ( sourceElement )*
loop78:
do {
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==XMLLiteral||(LA78_0>=StringLiteral && LA78_0<=XmlAttribute)||LA78_0==Identifier||LA78_0==RegularExpressionLiteral||(LA78_0>=DecimalLiteral && LA78_0<=HexIntegerLiteral)) ) {
alt78=1;
}
switch (alt78) {
case 1 :
// JS.g:1741:14: sourceElement
{
pushFollow(FOLLOW_sourceElement_in_functionBody6512);
sourceElement319=sourceElement();
_fsp--;
stream_sourceElement.add(sourceElement319.getTree());
}
break;
default :
break loop78;
}
} while (true);
RBRACE320=(Token)input.LT(1);
match(input,RBRACE,FOLLOW_RBRACE_in_functionBody6515);
stream_RBRACE.add(RBRACE320);
// AST REWRITE
// elements: sourceElement
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
// 1742:2: -> ^( BLOCK[$lb, \"BLOCK\"] ( sourceElement )* )
{
// JS.g:1742:5: ^( BLOCK[$lb, \"BLOCK\"] ( sourceElement )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(BLOCK, lb, "BLOCK"), root_1);
// JS.g:1742:28: ( sourceElement )*
while ( stream_sourceElement.hasNext() ) {
adaptor.addChild(root_1, stream_sourceElement.next());
}
stream_sourceElement.reset();
adaptor.addChild(root_0, root_1);
}
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end functionBody
public static class getMethodDeclaration_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start getMethodDeclaration
// JS.g:1750:1: getMethodDeclaration : GET name= identifier LPAREN RPAREN functionBody -> ^( GETTER identifier functionBody ) ;
public final getMethodDeclaration_return getMethodDeclaration() throws RecognitionException {
getMethodDeclaration_return retval = new getMethodDeclaration_return();
retval.start = input.LT(1);
Object root_0 = null;
Token GET321=null;
Token LPAREN322=null;
Token RPAREN323=null;
identifier_return name = null;
functionBody_return functionBody324 = null;
Object GET321_tree=null;
Object LPAREN322_tree=null;
Object RPAREN323_tree=null;
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_GET=new RewriteRuleTokenStream(adaptor,"token GET");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleSubtreeStream stream_functionBody=new RewriteRuleSubtreeStream(adaptor,"rule functionBody");
RewriteRuleSubtreeStream stream_identifier=new RewriteRuleSubtreeStream(adaptor,"rule identifier");
try {
// JS.g:1751:3: ( GET name= identifier LPAREN RPAREN functionBody -> ^( GETTER identifier functionBody ) )
// JS.g:1751:5: GET name= identifier LPAREN RPAREN functionBody
{
GET321=(Token)input.LT(1);
match(input,GET,FOLLOW_GET_in_getMethodDeclaration6545);
stream_GET.add(GET321);
pushFollow(FOLLOW_identifier_in_getMethodDeclaration6549);
name=identifier();
_fsp--;
stream_identifier.add(name.getTree());
LPAREN322=(Token)input.LT(1);
match(input,LPAREN,FOLLOW_LPAREN_in_getMethodDeclaration6551);
stream_LPAREN.add(LPAREN322);
RPAREN323=(Token)input.LT(1);
match(input,RPAREN,FOLLOW_RPAREN_in_getMethodDeclaration6553);
stream_RPAREN.add(RPAREN323);
pushFollow(FOLLOW_functionBody_in_getMethodDeclaration6555);
functionBody324=functionBody();
_fsp--;
stream_functionBody.add(functionBody324.getTree());
// AST REWRITE
// elements: functionBody, identifier
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
// 1752:4: -> ^( GETTER identifier functionBody )
{
// JS.g:1752:7: ^( GETTER identifier functionBody )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(GETTER, "GETTER"), root_1);
adaptor.addChild(root_1, stream_identifier.next());
adaptor.addChild(root_1, stream_functionBody.next());
adaptor.addChild(root_0, root_1);
}
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end getMethodDeclaration
public static class setMethodDeclaration_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start setMethodDeclaration
// JS.g:1755:1: setMethodDeclaration : SET name= identifier LPAREN param= identifier RPAREN functionBody -> ^( SETTER $name $param functionBody ) ;
public final setMethodDeclaration_return setMethodDeclaration() throws RecognitionException {
setMethodDeclaration_return retval = new setMethodDeclaration_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SET325=null;
Token LPAREN326=null;
Token RPAREN327=null;
identifier_return name = null;
identifier_return param = null;
functionBody_return functionBody328 = null;
Object SET325_tree=null;
Object LPAREN326_tree=null;
Object RPAREN327_tree=null;
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_SET=new RewriteRuleTokenStream(adaptor,"token SET");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleSubtreeStream stream_functionBody=new RewriteRuleSubtreeStream(adaptor,"rule functionBody");
RewriteRuleSubtreeStream stream_identifier=new RewriteRuleSubtreeStream(adaptor,"rule identifier");
try {
// JS.g:1756:3: ( SET name= identifier LPAREN param= identifier RPAREN functionBody -> ^( SETTER $name $param functionBody ) )
// JS.g:1756:5: SET name= identifier LPAREN param= identifier RPAREN functionBody
{
SET325=(Token)input.LT(1);
match(input,SET,FOLLOW_SET_in_setMethodDeclaration6583);
stream_SET.add(SET325);
pushFollow(FOLLOW_identifier_in_setMethodDeclaration6587);
name=identifier();
_fsp--;
stream_identifier.add(name.getTree());
LPAREN326=(Token)input.LT(1);
match(input,LPAREN,FOLLOW_LPAREN_in_setMethodDeclaration6589);
stream_LPAREN.add(LPAREN326);
pushFollow(FOLLOW_identifier_in_setMethodDeclaration6593);
param=identifier();
_fsp--;
stream_identifier.add(param.getTree());
RPAREN327=(Token)input.LT(1);
match(input,RPAREN,FOLLOW_RPAREN_in_setMethodDeclaration6595);
stream_RPAREN.add(RPAREN327);
pushFollow(FOLLOW_functionBody_in_setMethodDeclaration6597);
functionBody328=functionBody();
_fsp--;
stream_functionBody.add(functionBody328.getTree());
// AST REWRITE
// elements: functionBody, param, name
// token labels:
// rule labels: retval, param, name
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
RewriteRuleSubtreeStream stream_param=new RewriteRuleSubtreeStream(adaptor,"token param",param!=null?param.tree:null);
RewriteRuleSubtreeStream stream_name=new RewriteRuleSubtreeStream(adaptor,"token name",name!=null?name.tree:null);
root_0 = (Object)adaptor.nil();
// 1757:5: -> ^( SETTER $name $param functionBody )
{
// JS.g:1757:8: ^( SETTER $name $param functionBody )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(SETTER, "SETTER"), root_1);
adaptor.addChild(root_1, stream_name.next());
adaptor.addChild(root_1, stream_param.next());
adaptor.addChild(root_1, stream_functionBody.next());
adaptor.addChild(root_0, root_1);
}
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end setMethodDeclaration
public static class program_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start program
// JS.g:1764:1: program : ( sourceElement )* EOF ;
public final program_return program() throws RecognitionException {
program_return retval = new program_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EOF330=null;
sourceElement_return sourceElement329 = null;
Object EOF330_tree=null;
try {
// JS.g:1765:2: ( ( sourceElement )* EOF )
// JS.g:1765:4: ( sourceElement )* EOF
{
root_0 = (Object)adaptor.nil();
// JS.g:1765:4: ( sourceElement )*
loop79:
do {
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==XMLLiteral||(LA79_0>=StringLiteral && LA79_0<=XmlAttribute)||LA79_0==Identifier||LA79_0==RegularExpressionLiteral||(LA79_0>=DecimalLiteral && LA79_0<=HexIntegerLiteral)) ) {
alt79=1;
}
switch (alt79) {
case 1 :
// JS.g:1765:4: sourceElement
{
pushFollow(FOLLOW_sourceElement_in_program6632);
sourceElement329=sourceElement();
_fsp--;
adaptor.addChild(root_0, sourceElement329.getTree());
}
break;
default :
break loop79;
}
} while (true);
EOF330=(Token)input.LT(1);
match(input,EOF,FOLLOW_EOF_in_program6635);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end program
public static class sourceElement_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start sourceElement
// JS.g:1773:1: sourceElement options {k=1; } : ({...}? functionDeclaration | statement );
public final sourceElement_return sourceElement() throws RecognitionException {
sourceElement_return retval = new sourceElement_return();
retval.start = input.LT(1);
Object root_0 = null;
functionDeclaration_return functionDeclaration331 = null;
statement_return statement332 = null;
try {
// JS.g:1778:2: ({...}? functionDeclaration | statement )
int alt80=2;
int LA80_0 = input.LA(1);
if ( (LA80_0==FUNCTION) ) {
int LA80_1 = input.LA(2);
if ( ( input.LA(1) == FUNCTION ) ) {
alt80=1;
}
else if ( (true) ) {
alt80=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("1773:1: sourceElement options {k=1; } : ({...}? functionDeclaration | statement );", 80, 1, input);
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==XMLLiteral||(LA80_0>=StringLiteral && LA80_0<=XmlAttribute)||LA80_0==Identifier||LA80_0==RegularExpressionLiteral||(LA80_0>=DecimalLiteral && LA80_0<=HexIntegerLiteral)) ) {
alt80=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("1773:1: sourceElement options {k=1; } : ({...}? functionDeclaration | statement );", 80, 0, input);
throw nvae;
}
switch (alt80) {
case 1 :
// JS.g:1778:4: {...}? functionDeclaration
{
root_0 = (Object)adaptor.nil();
if ( !( input.LA(1) == FUNCTION ) ) {
throw new FailedPredicateException(input, "sourceElement", " input.LA(1) == FUNCTION ");
}
pushFollow(FOLLOW_functionDeclaration_in_sourceElement6664);
functionDeclaration331=functionDeclaration();
_fsp--;
adaptor.addChild(root_0, functionDeclaration331.getTree());
}
break;
case 2 :
// JS.g:1779:4: statement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_statement_in_sourceElement6669);
statement332=statement();
_fsp--;
adaptor.addChild(root_0, statement332.getTree());
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end sourceElement
public static final BitSet FOLLOW_reservedWord_in_token1997 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_token2002 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_punctuator_in_token2007 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_numericLiteral_in_token2012 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_StringLiteral_in_token2017 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_XmlAttribute_in_token2022 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_keyword_in_reservedWord2037 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_futureReservedWord_in_reservedWord2042 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NULL_in_reservedWord2047 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_booleanLiteral_in_reservedWord2052 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_keyword0 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_futureReservedWord0 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_identifier0 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_punctuator0 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NULL_in_literal2847 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_booleanLiteral_in_literal2852 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_numericLiteral_in_literal2857 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_StringLiteral_in_literal2862 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RegularExpressionLiteral_in_literal2867 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_booleanLiteral0 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_numericLiteral0 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_THIS_in_primaryExpression3496 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_primaryExpression3501 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_XmlAttribute_in_primaryExpression3506 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_literal_in_primaryExpression3511 = new BitSet(new long[]{0x0000000000000002L});
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,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,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,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});
public static final BitSet FOLLOW_LBRACE_in_objectLiteral3649 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000080L,0x1C10600000000000L});
public static final BitSet FOLLOW_objectPropertyInitializer_in_objectLiteral3653 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004080L});
public static final BitSet FOLLOW_COMMA_in_objectLiteral3657 = new BitSet(new long[]{0x0000006600020000L,0x0000000000000000L,0x1C10600000000000L});
public static final BitSet FOLLOW_objectPropertyInitializer_in_objectLiteral3659 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004080L});
public static final BitSet FOLLOW_RBRACE_in_objectLiteral3667 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_nameValuePair_in_objectPropertyInitializer3692 = new BitSet(new long[]{0x0000000000000002L});
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,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});
public static final BitSet FOLLOW_numericLiteral_in_propertyName3756 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_XmlAttribute_in_propertyName3761 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_primaryExpression_in_memberExpression3779 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_functionExpression_in_memberExpression3784 = new BitSet(new long[]{0x0000000000000002L});
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,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,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,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,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,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});
public static final BitSet FOLLOW_XmlAttribute_in_rightHandSideExpression4027 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MUL_in_rightHandSideExpression4033 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_leftHandSideExpression_in_postfixExpression4071 = new BitSet(new long[]{0x0000000000000002L,0x0000000018000000L});
public static final BitSet FOLLOW_postfixOperator_in_postfixExpression4077 = new BitSet(new long[]{0x0000000000000002L});
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,0x1C50600002000000L});
public static final BitSet FOLLOW_unaryExpression_in_unaryExpression4129 = 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_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});
}