// $ANTLR 3.0.1 JS.g 2014-04-21 18:13:32
package org.eclipse.dltk.javascript.parser;
import org.eclipse.dltk.javascript.parser.JavaScriptParser.JSBaseParser;
import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;
import org.antlr.runtime.tree.*;
@SuppressWarnings({"cast","unused","rawtypes","unchecked","null"})
public class JSParser extends JSBaseParser {
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", "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", "AT", "DOTDOT", "COLONCOLON", "XMLFragment", "XMLFragmentEnd", "XMLFragmentError", "CALL_ARGUMENTS", "ARGUMENTS", "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", "XmlAttribute", "XML_LITERAL", "EMPTY_STATEMENT", "FUNCTION_DECLARATION", "BSLASH", "DQUOTE", "SQUOTE", "TAB", "VT", "FF", "SP", "NBSP", "USP", "UnicodeFormatCategory", "WhiteSpace", "LF", "CR", "LS", "PS", "LineTerminatorChar", "LineTerminator", "EOL", "MultiLineComment", "SingleLineComment", "StringLiteral", "HexDigit", "IdentifierStartASCII", "DecimalDigit", "IdentifierPart", "IdentifierNameASCIIStart", "Identifier", "RegularExpressionLiteral", "OctalDigit", "ExponentPart", "DecimalIntegerLiteral", "DecimalLiteral", "OctalIntegerLiteral", "HexIntegerLiteral", "CharacterEscapeSequence", "ZeroToThree", "OctalEscapeSequence", "HexEscapeSequence", "UnicodeEscapeSequence", "EscapeSequence", "BackslashSequence", "RegularExpressionFirstChar", "RegularExpressionChar"
};
public static final int PACKAGE=58;
public static final int FUNCTION=18;
public static final int SHR=93;
public static final int VT=157;
public static final int RegularExpressionChar=195;
public static final int LOCALNAME=130;
public static final int XMLFragmentEnd=121;
public static final int MOD=89;
public static final int SHL=92;
public static final int CONST=43;
public static final int DO=13;
public static final int DQUOTE=154;
public static final int LineTerminatorChar=168;
public static final int NOT=98;
public static final int EOF=-1;
public static final int CEXPR=132;
public static final int DIVASS=116;
public static final int BYINDEX=128;
public static final int INC=90;
public static final int RPAREN=72;
public static final int FINAL=49;
public static final int FORSTEP=135;
public static final int IMPORT=53;
public static final int EOL=170;
public static final int OctalDigit=181;
public static final int RETURN=23;
public static final int THIS=25;
public static final int GET=33;
public static final int WhiteSpace=163;
public static final int EXPORT=47;
public static final int EQ=82;
public static final int GOTO=51;
public static final int XORASS=114;
public static final int SHU=94;
public static final int RBRACK=74;
public static final int RBRACE=70;
public static final int STATIC=63;
public static final int INV=99;
public static final int ELSE=14;
public static final int NATIVE=57;
public static final int INT=54;
public static final int DEFAULT_XML_NAMESPACE=139;
public static final int FF=158;
public static final int OctalEscapeSequence=189;
public static final int RegularExpressionFirstChar=194;
public static final int TYPEOF=28;
public static final int GT=79;
public static final int CALL=131;
public static final int CharacterEscapeSequence=187;
public static final int LAND=100;
public static final int PINC=147;
public static final int PROTECTED=60;
public static final int UnicodeFormatCategory=162;
public static final int LBRACK=73;
public static final int LBRACE=69;
public static final int SUB=87;
public static final int RegularExpressionLiteral=180;
public static final int FLOAT=50;
public static final int DecimalIntegerLiteral=183;
public static final int HexDigit=174;
public static final int LPAREN=71;
public static final int AT=117;
public static final int IMPLEMENTS=52;
public static final int YIELD=35;
public static final int SHRASS=110;
public static final int PS=167;
public static final int MultiLineComment=171;
public static final int ADD=86;
public static final int ZeroToThree=188;
public static final int ITEM=140;
public static final int UnicodeEscapeSequence=191;
public static final int SHUASS=111;
public static final int SHORT=62;
public static final int SET=34;
public static final int INSTANCEOF=21;
public static final int SQUOTE=155;
public static final int SAME=84;
public static final int COLON=103;
public static final int StringLiteral=173;
public static final int XMLFragment=120;
public static final int PAREXPR=145;
public static final int ENUM=46;
public static final int CALL_ARGUMENTS=123;
public static final int NBSP=160;
public static final int HexIntegerLiteral=186;
public static final int SP=159;
public static final int BLOCK=126;
public static final int LineTerminator=169;
public static final int INTERFACE=55;
public static final int DIV=115;
public static final int FUNCTION_DECLARATION=152;
public static final int LONG=56;
public static final int CR=165;
public static final int PUBLIC=61;
public static final int LOR=101;
public static final int LT=78;
public static final int WHILE=31;
public static final int BackslashSequence=193;
public static final int LS=166;
public static final int CASE=8;
public static final int NEW=22;
public static final int CHAR=41;
public static final int DecimalDigit=176;
public static final int BYFIELD=127;
public static final int BREAK=7;
public static final int Identifier=179;
public static final int WXML=36;
public static final int POS=148;
public static final int DOUBLE=45;
public static final int ExponentPart=182;
public static final int VAR=29;
public static final int VOID=30;
public static final int SUPER=64;
public static final int EACH=17;
public static final int LABELLED=141;
public static final int ADDASS=105;
public static final int ARRAY=125;
public static final int ARGUMENTS=124;
public static final int PRIVATE=59;
public static final int SWITCH=24;
public static final int NULL=4;
public static final int THROWS=66;
public static final int DELETE=12;
public static final int MUL=88;
public static final int IdentifierStartASCII=175;
public static final int TRY=27;
public static final int NAMESPACE=37;
public static final int SHLASS=109;
public static final int COLONCOLON=119;
public static final int USP=161;
public static final int ANDASS=112;
public static final int EMPTY_STATEMENT=151;
public static final int IdentifierNameASCIIStart=178;
public static final int QUE=102;
public static final int OR=96;
public static final int SETTER=138;
public static final int DEBUGGER=44;
public static final int FOREACH=136;
public static final int PDEC=146;
public static final int CATCH=9;
public static final int FALSE=6;
public static final int EscapeSequence=192;
public static final int THROW=26;
public static final int MULASS=107;
public static final int XmlAttribute=149;
public static final int DEC=91;
public static final int OctalIntegerLiteral=185;
public static final int CLASS=42;
public static final int HexEscapeSequence=190;
public static final int ORASS=113;
public static final int NAMEDVALUE=142;
public static final int SingleLineComment=172;
public static final int GTE=81;
public static final int XMLFragmentError=122;
public static final int FOR=16;
public static final int DOTDOT=118;
public static final int ABSTRACT=38;
public static final int AND=95;
public static final int LTE=80;
public static final int IF=19;
public static final int SUBASS=106;
public static final int SYNCHRONIZED=65;
public static final int BOOLEAN=39;
public static final int EXPR=133;
public static final int IN=20;
public static final int CONTINUE=10;
public static final int OBJECT=144;
public static final int COMMA=77;
public static final int TRANSIENT=67;
public static final int FORITER=134;
public static final int MODASS=108;
public static final int DOT=75;
public static final int IdentifierPart=177;
public static final int WITH=32;
public static final int BYTE=40;
public static final int XOR=97;
public static final int VOLATILE=68;
public static final int GETTER=137;
public static final int NSAME=85;
public static final int DEFAULT=11;
public static final int ALLCHILDREN=129;
public static final int TAB=156;
public static final int DecimalLiteral=184;
public static final int TRUE=5;
public static final int NEQ=83;
public static final int FINALLY=15;
public static final int NEG=143;
public static final int ASSIGN=104;
public static final int XML_LITERAL=150;
public static final int SEMIC=76;
public static final int EXTENDS=48;
public static final int BSLASH=153;
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] = Boolean.valueOf(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 XMLFragment:
case XMLFragmentEnd:
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:599:1: token : ( reservedWord | identifier | XMLFragment | XMLFragmentEnd | punctuator | NULL | booleanLiteral | 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 XMLFragment3=null;
Token XMLFragmentEnd4=null;
Token NULL6=null;
Token StringLiteral9=null;
reservedWord_return reservedWord1 = null;
identifier_return identifier2 = null;
punctuator_return punctuator5 = null;
booleanLiteral_return booleanLiteral7 = null;
numericLiteral_return numericLiteral8 = null;
xmlAttribute_return xmlAttribute10 = null;
Object XMLFragment3_tree=null;
Object XMLFragmentEnd4_tree=null;
Object NULL6_tree=null;
Object StringLiteral9_tree=null;
try {
// JS.g:600:2: ( reservedWord | identifier | XMLFragment | XMLFragmentEnd | punctuator | NULL | booleanLiteral | numericLiteral | StringLiteral | xmlAttribute )
int alt1=10;
switch ( input.LA(1) ) {
case WXML:
{
alt1=1;
}
break;
case GET:
{
alt1=1;
}
break;
case SET:
{
alt1=1;
}
break;
case EACH:
{
alt1=1;
}
break;
case BREAK:
case CASE:
case CATCH:
case CONTINUE:
case DEFAULT:
case DELETE:
case DO:
case ELSE:
case FINALLY:
case FOR:
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 YIELD:
case NAMESPACE:
{
alt1=1;
}
break;
case ABSTRACT:
case BOOLEAN:
case BYTE:
case CHAR:
case CLASS:
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:
case Identifier:
{
alt1=2;
}
break;
case XMLFragment:
{
alt1=3;
}
break;
case XMLFragmentEnd:
{
alt1=4;
}
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=5;
}
break;
case NULL:
{
alt1=6;
}
break;
case TRUE:
case FALSE:
{
alt1=7;
}
break;
case DecimalLiteral:
case OctalIntegerLiteral:
case HexIntegerLiteral:
{
alt1=8;
}
break;
case StringLiteral:
{
alt1=9;
}
break;
case AT:
{
alt1=10;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("599:1: token : ( reservedWord | identifier | XMLFragment | XMLFragmentEnd | punctuator | NULL | booleanLiteral | numericLiteral | StringLiteral | xmlAttribute );", 1, 0, input);
throw nvae;
}
switch (alt1) {
case 1 :
// JS.g:600:4: reservedWord
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_reservedWord_in_token1981);
reservedWord1=reservedWord();
_fsp--;
adaptor.addChild(root_0, reservedWord1.getTree());
}
break;
case 2 :
// JS.g:601:4: identifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_identifier_in_token1986);
identifier2=identifier();
_fsp--;
adaptor.addChild(root_0, identifier2.getTree());
}
break;
case 3 :
// JS.g:602:4: XMLFragment
{
root_0 = (Object)adaptor.nil();
XMLFragment3=(Token)input.LT(1);
match(input,XMLFragment,FOLLOW_XMLFragment_in_token1991);
XMLFragment3_tree = (Object)adaptor.create(XMLFragment3);
adaptor.addChild(root_0, XMLFragment3_tree);
}
break;
case 4 :
// JS.g:603:4: XMLFragmentEnd
{
root_0 = (Object)adaptor.nil();
XMLFragmentEnd4=(Token)input.LT(1);
match(input,XMLFragmentEnd,FOLLOW_XMLFragmentEnd_in_token1996);
XMLFragmentEnd4_tree = (Object)adaptor.create(XMLFragmentEnd4);
adaptor.addChild(root_0, XMLFragmentEnd4_tree);
}
break;
case 5 :
// JS.g:604:4: punctuator
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_punctuator_in_token2001);
punctuator5=punctuator();
_fsp--;
adaptor.addChild(root_0, punctuator5.getTree());
}
break;
case 6 :
// JS.g:605:4: NULL
{
root_0 = (Object)adaptor.nil();
NULL6=(Token)input.LT(1);
match(input,NULL,FOLLOW_NULL_in_token2006);
NULL6_tree = (Object)adaptor.create(NULL6);
adaptor.addChild(root_0, NULL6_tree);
}
break;
case 7 :
// JS.g:606:4: booleanLiteral
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_booleanLiteral_in_token2011);
booleanLiteral7=booleanLiteral();
_fsp--;
adaptor.addChild(root_0, booleanLiteral7.getTree());
}
break;
case 8 :
// JS.g:607:4: numericLiteral
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_numericLiteral_in_token2016);
numericLiteral8=numericLiteral();
_fsp--;
adaptor.addChild(root_0, numericLiteral8.getTree());
}
break;
case 9 :
// JS.g:608:4: StringLiteral
{
root_0 = (Object)adaptor.nil();
StringLiteral9=(Token)input.LT(1);
match(input,StringLiteral,FOLLOW_StringLiteral_in_token2021);
StringLiteral9_tree = (Object)adaptor.create(StringLiteral9);
adaptor.addChild(root_0, StringLiteral9_tree);
}
break;
case 10 :
// JS.g:609:4: xmlAttribute
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_xmlAttribute_in_token2026);
xmlAttribute10=xmlAttribute();
_fsp--;
adaptor.addChild(root_0, xmlAttribute10.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:614:1: reservedWord : keyword ;
public final reservedWord_return reservedWord() throws RecognitionException {
reservedWord_return retval = new reservedWord_return();
retval.start = input.LT(1);
Object root_0 = null;
keyword_return keyword11 = null;
try {
// JS.g:615:2: ( keyword )
// JS.g:615:4: keyword
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_keyword_in_reservedWord2039);
keyword11=keyword();
_fsp--;
adaptor.addChild(root_0, keyword11.getTree());
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:622: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 set12=null;
Object set12_tree=null;
try {
// JS.g:623: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();
set12=(Token)input.LT(1);
if ( (input.LA(1)>=BREAK && input.LA(1)<=NAMESPACE) ) {
input.consume();
adaptor.addChild(root_0, adaptor.create(set12));
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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:660:1: futureReservedWord : ( ABSTRACT | BOOLEAN | BYTE | CHAR | CLASS | 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 set13=null;
Object set13_tree=null;
try {
// JS.g:661:2: ( ABSTRACT | BOOLEAN | BYTE | CHAR | CLASS | 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();
set13=(Token)input.LT(1);
if ( (input.LA(1)>=ABSTRACT && input.LA(1)<=CLASS)||(input.LA(1)>=DEBUGGER && input.LA(1)<=VOLATILE) ) {
input.consume();
adaptor.addChild(root_0, adaptor.create(set13));
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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:733:1: identifier : ( WXML | GET | SET | EACH | NAMESPACE | word= futureReservedWord -> Identifier[word.start] | Identifier );
public final identifier_return identifier() throws RecognitionException {
identifier_return retval = new identifier_return();
retval.start = input.LT(1);
Object root_0 = null;
Token WXML14=null;
Token GET15=null;
Token SET16=null;
Token EACH17=null;
Token NAMESPACE18=null;
Token Identifier19=null;
futureReservedWord_return word = null;
Object WXML14_tree=null;
Object GET15_tree=null;
Object SET16_tree=null;
Object EACH17_tree=null;
Object NAMESPACE18_tree=null;
Object Identifier19_tree=null;
RewriteRuleSubtreeStream stream_futureReservedWord=new RewriteRuleSubtreeStream(adaptor,"rule futureReservedWord");
try {
// JS.g:734:3: ( WXML | GET | SET | EACH | NAMESPACE | word= futureReservedWord -> Identifier[word.start] | Identifier )
int alt2=7;
switch ( input.LA(1) ) {
case WXML:
{
alt2=1;
}
break;
case GET:
{
alt2=2;
}
break;
case SET:
{
alt2=3;
}
break;
case EACH:
{
alt2=4;
}
break;
case NAMESPACE:
{
alt2=5;
}
break;
case ABSTRACT:
case BOOLEAN:
case BYTE:
case CHAR:
case CLASS:
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=6;
}
break;
case Identifier:
{
alt2=7;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("733:1: identifier : ( WXML | GET | SET | EACH | NAMESPACE | word= futureReservedWord -> Identifier[word.start] | Identifier );", 2, 0, input);
throw nvae;
}
switch (alt2) {
case 1 :
// JS.g:734:5: WXML
{
root_0 = (Object)adaptor.nil();
WXML14=(Token)input.LT(1);
match(input,WXML,FOLLOW_WXML_in_identifier2493);
WXML14_tree = (Object)adaptor.create(WXML14);
adaptor.addChild(root_0, WXML14_tree);
}
break;
case 2 :
// JS.g:735:5: GET
{
root_0 = (Object)adaptor.nil();
GET15=(Token)input.LT(1);
match(input,GET,FOLLOW_GET_in_identifier2499);
GET15_tree = (Object)adaptor.create(GET15);
adaptor.addChild(root_0, GET15_tree);
}
break;
case 3 :
// JS.g:736:5: SET
{
root_0 = (Object)adaptor.nil();
SET16=(Token)input.LT(1);
match(input,SET,FOLLOW_SET_in_identifier2505);
SET16_tree = (Object)adaptor.create(SET16);
adaptor.addChild(root_0, SET16_tree);
}
break;
case 4 :
// JS.g:737:5: EACH
{
root_0 = (Object)adaptor.nil();
EACH17=(Token)input.LT(1);
match(input,EACH,FOLLOW_EACH_in_identifier2511);
EACH17_tree = (Object)adaptor.create(EACH17);
adaptor.addChild(root_0, EACH17_tree);
}
break;
case 5 :
// JS.g:738:5: NAMESPACE
{
root_0 = (Object)adaptor.nil();
NAMESPACE18=(Token)input.LT(1);
match(input,NAMESPACE,FOLLOW_NAMESPACE_in_identifier2517);
NAMESPACE18_tree = (Object)adaptor.create(NAMESPACE18);
adaptor.addChild(root_0, NAMESPACE18_tree);
}
break;
case 6 :
// JS.g:739:5: word= futureReservedWord
{
pushFollow(FOLLOW_futureReservedWord_in_identifier2525);
word=futureReservedWord();
_fsp--;
stream_futureReservedWord.add(word.getTree());
reportReservedKeyword(word.start);
// AST REWRITE
// elements:
// 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();
// 739:68: -> Identifier[word.start]
{
adaptor.addChild(root_0, adaptor.create(Identifier, word.start));
}
}
break;
case 7 :
// JS.g:740:5: Identifier
{
root_0 = (Object)adaptor.nil();
Identifier19=(Token)input.LT(1);
match(input,Identifier,FOLLOW_Identifier_in_identifier2538);
Identifier19_tree = (Object)adaptor.create(Identifier19);
adaptor.addChild(root_0, Identifier19_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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
finally {
}
return retval;
}
// $ANTLR end identifier
public static class xmlAttribute_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start xmlAttribute
// JS.g:743:1: xmlAttribute : ( AT identifier -> ^( XmlAttribute AT identifier ) | AT MUL -> ^( XmlAttribute AT MUL ) | AT LBRACK expression RBRACK -> ^( XmlAttribute LBRACK expression ) );
public final xmlAttribute_return xmlAttribute() throws RecognitionException {
xmlAttribute_return retval = new xmlAttribute_return();
retval.start = input.LT(1);
Object root_0 = null;
Token AT20=null;
Token AT22=null;
Token MUL23=null;
Token AT24=null;
Token LBRACK25=null;
Token RBRACK27=null;
identifier_return identifier21 = null;
expression_return expression26 = null;
Object AT20_tree=null;
Object AT22_tree=null;
Object MUL23_tree=null;
Object AT24_tree=null;
Object LBRACK25_tree=null;
Object RBRACK27_tree=null;
RewriteRuleTokenStream stream_RBRACK=new RewriteRuleTokenStream(adaptor,"token RBRACK");
RewriteRuleTokenStream stream_AT=new RewriteRuleTokenStream(adaptor,"token AT");
RewriteRuleTokenStream stream_LBRACK=new RewriteRuleTokenStream(adaptor,"token LBRACK");
RewriteRuleTokenStream stream_MUL=new RewriteRuleTokenStream(adaptor,"token MUL");
RewriteRuleSubtreeStream stream_expression=new RewriteRuleSubtreeStream(adaptor,"rule expression");
RewriteRuleSubtreeStream stream_identifier=new RewriteRuleSubtreeStream(adaptor,"rule identifier");
try {
// JS.g:744:3: ( AT identifier -> ^( XmlAttribute AT identifier ) | AT MUL -> ^( XmlAttribute AT MUL ) | AT LBRACK expression RBRACK -> ^( XmlAttribute LBRACK expression ) )
int alt3=3;
int LA3_0 = input.LA(1);
if ( (LA3_0==AT) ) {
switch ( input.LA(2) ) {
case MUL:
{
alt3=2;
}
break;
case LBRACK:
{
alt3=3;
}
break;
case EACH:
case GET:
case SET:
case WXML:
case NAMESPACE:
case ABSTRACT:
case BOOLEAN:
case BYTE:
case CHAR:
case CLASS:
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:
case Identifier:
{
alt3=1;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("743:1: xmlAttribute : ( AT identifier -> ^( XmlAttribute AT identifier ) | AT MUL -> ^( XmlAttribute AT MUL ) | AT LBRACK expression RBRACK -> ^( XmlAttribute LBRACK expression ) );", 3, 1, input);
throw nvae;
}
}
else {
NoViableAltException nvae =
new NoViableAltException("743:1: xmlAttribute : ( AT identifier -> ^( XmlAttribute AT identifier ) | AT MUL -> ^( XmlAttribute AT MUL ) | AT LBRACK expression RBRACK -> ^( XmlAttribute LBRACK expression ) );", 3, 0, input);
throw nvae;
}
switch (alt3) {
case 1 :
// JS.g:744:5: AT identifier
{
AT20=(Token)input.LT(1);
match(input,AT,FOLLOW_AT_in_xmlAttribute2549);
stream_AT.add(AT20);
pushFollow(FOLLOW_identifier_in_xmlAttribute2551);
identifier21=identifier();
_fsp--;
stream_identifier.add(identifier21.getTree());
// AST REWRITE
// elements: identifier, AT
// 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();
// 744:19: -> ^( XmlAttribute AT identifier )
{
// JS.g:744:22: ^( XmlAttribute AT identifier )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(XmlAttribute, "XmlAttribute"), root_1);
adaptor.addChild(root_1, stream_AT.next());
adaptor.addChild(root_1, stream_identifier.next());
adaptor.addChild(root_0, root_1);
}
}
}
break;
case 2 :
// JS.g:745:5: AT MUL
{
AT22=(Token)input.LT(1);
match(input,AT,FOLLOW_AT_in_xmlAttribute2567);
stream_AT.add(AT22);
MUL23=(Token)input.LT(1);
match(input,MUL,FOLLOW_MUL_in_xmlAttribute2569);
stream_MUL.add(MUL23);
// AST REWRITE
// elements: AT, MUL
// 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();
// 745:12: -> ^( XmlAttribute AT MUL )
{
// JS.g:745:15: ^( XmlAttribute AT MUL )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(XmlAttribute, "XmlAttribute"), root_1);
adaptor.addChild(root_1, stream_AT.next());
adaptor.addChild(root_1, stream_MUL.next());
adaptor.addChild(root_0, root_1);
}
}
}
break;
case 3 :
// JS.g:746:5: AT LBRACK expression RBRACK
{
AT24=(Token)input.LT(1);
match(input,AT,FOLLOW_AT_in_xmlAttribute2585);
stream_AT.add(AT24);
LBRACK25=(Token)input.LT(1);
match(input,LBRACK,FOLLOW_LBRACK_in_xmlAttribute2587);
stream_LBRACK.add(LBRACK25);
pushFollow(FOLLOW_expression_in_xmlAttribute2589);
expression26=expression();
_fsp--;
stream_expression.add(expression26.getTree());
RBRACK27=(Token)input.LT(1);
match(input,RBRACK,FOLLOW_RBRACK_in_xmlAttribute2591);
stream_RBRACK.add(RBRACK27);
// AST REWRITE
// elements: expression, LBRACK
// 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();
// 746:33: -> ^( XmlAttribute LBRACK expression )
{
// JS.g:746:36: ^( XmlAttribute LBRACK expression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(XmlAttribute, "XmlAttribute"), root_1);
adaptor.addChild(root_1, stream_LBRACK.next());
adaptor.addChild(root_1, stream_expression.next());
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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
finally {
}
return retval;
}
// $ANTLR end xmlAttribute
public static class propertySelector_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start propertySelector
// JS.g:749:1: propertySelector : ( identifier | MUL );
public final propertySelector_return propertySelector() throws RecognitionException {
propertySelector_return retval = new propertySelector_return();
retval.start = input.LT(1);
Object root_0 = null;
Token MUL29=null;
identifier_return identifier28 = null;
Object MUL29_tree=null;
try {
// JS.g:750:2: ( identifier | MUL )
int alt4=2;
int LA4_0 = input.LA(1);
if ( (LA4_0==EACH||(LA4_0>=GET && LA4_0<=SET)||(LA4_0>=WXML && LA4_0<=CLASS)||(LA4_0>=DEBUGGER && LA4_0<=VOLATILE)||LA4_0==Identifier) ) {
alt4=1;
}
else if ( (LA4_0==MUL) ) {
alt4=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("749:1: propertySelector : ( identifier | MUL );", 4, 0, input);
throw nvae;
}
switch (alt4) {
case 1 :
// JS.g:750:4: identifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_identifier_in_propertySelector2613);
identifier28=identifier();
_fsp--;
adaptor.addChild(root_0, identifier28.getTree());
}
break;
case 2 :
// JS.g:751:4: MUL
{
root_0 = (Object)adaptor.nil();
MUL29=(Token)input.LT(1);
match(input,MUL,FOLLOW_MUL_in_propertySelector2618);
MUL29_tree = (Object)adaptor.create(MUL29);
adaptor.addChild(root_0, MUL29_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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
finally {
}
return retval;
}
// $ANTLR end propertySelector
public static class punctuator_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start punctuator
// JS.g:758: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 set30=null;
Object set30_tree=null;
try {
// JS.g:759: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();
set30=(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(set30));
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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:815:1: literal : ( NULL | booleanLiteral | numericLiteral | StringLiteral | RegularExpressionLiteral | {...}? => xmlLiteral );
public final literal_return literal() throws RecognitionException {
literal_return retval = new literal_return();
retval.start = input.LT(1);
Object root_0 = null;
Token NULL31=null;
Token StringLiteral34=null;
Token RegularExpressionLiteral35=null;
booleanLiteral_return booleanLiteral32 = null;
numericLiteral_return numericLiteral33 = null;
xmlLiteral_return xmlLiteral36 = null;
Object NULL31_tree=null;
Object StringLiteral34_tree=null;
Object RegularExpressionLiteral35_tree=null;
try {
// JS.g:816:2: ( NULL | booleanLiteral | numericLiteral | StringLiteral | RegularExpressionLiteral | {...}? => xmlLiteral )
int alt5=6;
int LA5_0 = input.LA(1);
if ( (LA5_0==NULL) ) {
alt5=1;
}
else if ( ((LA5_0>=TRUE && LA5_0<=FALSE)) ) {
alt5=2;
}
else if ( ((LA5_0>=DecimalLiteral && LA5_0<=HexIntegerLiteral)) ) {
alt5=3;
}
else if ( (LA5_0==StringLiteral) ) {
alt5=4;
}
else if ( (LA5_0==RegularExpressionLiteral) ) {
alt5=5;
}
else if ( ((LA5_0>=XMLFragment && LA5_0<=XMLFragmentEnd)) && ( isXmlEnabled() )) {
alt5=6;
}
else {
NoViableAltException nvae =
new NoViableAltException("815:1: literal : ( NULL | booleanLiteral | numericLiteral | StringLiteral | RegularExpressionLiteral | {...}? => xmlLiteral );", 5, 0, input);
throw nvae;
}
switch (alt5) {
case 1 :
// JS.g:816:4: NULL
{
root_0 = (Object)adaptor.nil();
NULL31=(Token)input.LT(1);
match(input,NULL,FOLLOW_NULL_in_literal2893);
NULL31_tree = (Object)adaptor.create(NULL31);
adaptor.addChild(root_0, NULL31_tree);
}
break;
case 2 :
// JS.g:817:4: booleanLiteral
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_booleanLiteral_in_literal2898);
booleanLiteral32=booleanLiteral();
_fsp--;
adaptor.addChild(root_0, booleanLiteral32.getTree());
}
break;
case 3 :
// JS.g:818:4: numericLiteral
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_numericLiteral_in_literal2903);
numericLiteral33=numericLiteral();
_fsp--;
adaptor.addChild(root_0, numericLiteral33.getTree());
}
break;
case 4 :
// JS.g:819:4: StringLiteral
{
root_0 = (Object)adaptor.nil();
StringLiteral34=(Token)input.LT(1);
match(input,StringLiteral,FOLLOW_StringLiteral_in_literal2908);
StringLiteral34_tree = (Object)adaptor.create(StringLiteral34);
adaptor.addChild(root_0, StringLiteral34_tree);
}
break;
case 5 :
// JS.g:820:4: RegularExpressionLiteral
{
root_0 = (Object)adaptor.nil();
RegularExpressionLiteral35=(Token)input.LT(1);
match(input,RegularExpressionLiteral,FOLLOW_RegularExpressionLiteral_in_literal2913);
RegularExpressionLiteral35_tree = (Object)adaptor.create(RegularExpressionLiteral35);
adaptor.addChild(root_0, RegularExpressionLiteral35_tree);
}
break;
case 6 :
// JS.g:821:4: {...}? => xmlLiteral
{
root_0 = (Object)adaptor.nil();
if ( !( isXmlEnabled() ) ) {
throw new FailedPredicateException(input, "literal", " isXmlEnabled() ");
}
pushFollow(FOLLOW_xmlLiteral_in_literal2921);
xmlLiteral36=xmlLiteral();
_fsp--;
adaptor.addChild(root_0, xmlLiteral36.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
finally {
}
return retval;
}
// $ANTLR end literal
public static class xmlLiteral_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start xmlLiteral
// JS.g:824:1: xmlLiteral : ( XMLFragment LBRACE expression RBRACE )* XMLFragmentEnd -> ^( XML_LITERAL ( XMLFragment )* ( expression )* XMLFragmentEnd ) ;
public final xmlLiteral_return xmlLiteral() throws RecognitionException {
xmlLiteral_return retval = new xmlLiteral_return();
retval.start = input.LT(1);
Object root_0 = null;
Token XMLFragment37=null;
Token LBRACE38=null;
Token RBRACE40=null;
Token XMLFragmentEnd41=null;
expression_return expression39 = null;
Object XMLFragment37_tree=null;
Object LBRACE38_tree=null;
Object RBRACE40_tree=null;
Object XMLFragmentEnd41_tree=null;
RewriteRuleTokenStream stream_XMLFragment=new RewriteRuleTokenStream(adaptor,"token XMLFragment");
RewriteRuleTokenStream stream_RBRACE=new RewriteRuleTokenStream(adaptor,"token RBRACE");
RewriteRuleTokenStream stream_XMLFragmentEnd=new RewriteRuleTokenStream(adaptor,"token XMLFragmentEnd");
RewriteRuleTokenStream stream_LBRACE=new RewriteRuleTokenStream(adaptor,"token LBRACE");
RewriteRuleSubtreeStream stream_expression=new RewriteRuleSubtreeStream(adaptor,"rule expression");
try {
// JS.g:825:2: ( ( XMLFragment LBRACE expression RBRACE )* XMLFragmentEnd -> ^( XML_LITERAL ( XMLFragment )* ( expression )* XMLFragmentEnd ) )
// JS.g:825:4: ( XMLFragment LBRACE expression RBRACE )* XMLFragmentEnd
{
// JS.g:825:4: ( XMLFragment LBRACE expression RBRACE )*
loop6:
do {
int alt6=2;
int LA6_0 = input.LA(1);
if ( (LA6_0==XMLFragment) ) {
alt6=1;
}
switch (alt6) {
case 1 :
// JS.g:826:6: XMLFragment LBRACE expression RBRACE
{
XMLFragment37=(Token)input.LT(1);
match(input,XMLFragment,FOLLOW_XMLFragment_in_xmlLiteral2939);
stream_XMLFragment.add(XMLFragment37);
((JSTokenStream)input).setMode(JSTokenSource.MODE_EXPRESSION);
LBRACE38=(Token)input.LT(1);
match(input,LBRACE,FOLLOW_LBRACE_in_xmlLiteral2956);
stream_LBRACE.add(LBRACE38);
pushFollow(FOLLOW_expression_in_xmlLiteral2958);
expression39=expression();
_fsp--;
stream_expression.add(expression39.getTree());
RBRACE40=(Token)input.LT(1);
match(input,RBRACE,FOLLOW_RBRACE_in_xmlLiteral2960);
stream_RBRACE.add(RBRACE40);
((JSTokenStream)input).setMode(JSTokenSource.MODE_XML);
}
break;
default :
break loop6;
}
} while (true);
XMLFragmentEnd41=(Token)input.LT(1);
match(input,XMLFragmentEnd,FOLLOW_XMLFragmentEnd_in_xmlLiteral2976);
stream_XMLFragmentEnd.add(XMLFragmentEnd41);
// AST REWRITE
// elements: XMLFragment, XMLFragmentEnd, 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();
// 831:4: -> ^( XML_LITERAL ( XMLFragment )* ( expression )* XMLFragmentEnd )
{
// JS.g:831:7: ^( XML_LITERAL ( XMLFragment )* ( expression )* XMLFragmentEnd )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(XML_LITERAL, "XML_LITERAL"), root_1);
// JS.g:831:21: ( XMLFragment )*
while ( stream_XMLFragment.hasNext() ) {
adaptor.addChild(root_1, stream_XMLFragment.next());
}
stream_XMLFragment.reset();
// JS.g:831:34: ( expression )*
while ( stream_expression.hasNext() ) {
adaptor.addChild(root_1, stream_expression.next());
}
stream_expression.reset();
adaptor.addChild(root_1, stream_XMLFragmentEnd.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
finally {
((JSTokenStream)input).setMode(JSTokenSource.MODE_JS);
}
return retval;
}
// $ANTLR end xmlLiteral
public static class booleanLiteral_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start booleanLiteral
// JS.g:855: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 set42=null;
Object set42_tree=null;
try {
// JS.g:856:2: ( TRUE | FALSE )
// JS.g:
{
root_0 = (Object)adaptor.nil();
set42=(Token)input.LT(1);
if ( (input.LA(1)>=TRUE && input.LA(1)<=FALSE) ) {
input.consume();
adaptor.addChild(root_0, adaptor.create(set42));
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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:902: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 set43=null;
Object set43_tree=null;
try {
// JS.g:903:2: ( DecimalLiteral | OctalIntegerLiteral | HexIntegerLiteral )
// JS.g:
{
root_0 = (Object)adaptor.nil();
set43=(Token)input.LT(1);
if ( (input.LA(1)>=DecimalLiteral && input.LA(1)<=HexIntegerLiteral) ) {
input.consume();
adaptor.addChild(root_0, adaptor.create(set43));
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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:992: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 THIS44=null;
identifier_return identifier45 = null;
xmlAttribute_return xmlAttribute46 = null;
literal_return literal47 = null;
arrayLiteral_return arrayLiteral48 = null;
objectLiteral_return objectLiteral49 = null;
parenExpression_return parenExpression50 = null;
Object THIS44_tree=null;
try {
// JS.g:993:2: ( THIS | identifier | xmlAttribute | literal | arrayLiteral | objectLiteral | parenExpression )
int alt7=7;
int LA7_0 = input.LA(1);
if ( (LA7_0==THIS) ) {
alt7=1;
}
else if ( (LA7_0==EACH||(LA7_0>=GET && LA7_0<=SET)||(LA7_0>=WXML && LA7_0<=CLASS)||(LA7_0>=DEBUGGER && LA7_0<=VOLATILE)||LA7_0==Identifier) ) {
alt7=2;
}
else if ( (LA7_0==AT) ) {
alt7=3;
}
else if ( ((LA7_0>=NULL && LA7_0<=FALSE)||LA7_0==StringLiteral||LA7_0==RegularExpressionLiteral||(LA7_0>=DecimalLiteral && LA7_0<=HexIntegerLiteral)) ) {
alt7=4;
}
else if ( ((LA7_0>=XMLFragment && LA7_0<=XMLFragmentEnd)) && ( isXmlEnabled() )) {
alt7=4;
}
else if ( (LA7_0==LBRACK) ) {
alt7=5;
}
else if ( (LA7_0==LBRACE) ) {
alt7=6;
}
else if ( (LA7_0==LPAREN) ) {
alt7=7;
}
else {
NoViableAltException nvae =
new NoViableAltException("992:1: primaryExpression : ( THIS | identifier | xmlAttribute | literal | arrayLiteral | objectLiteral | parenExpression );", 7, 0, input);
throw nvae;
}
switch (alt7) {
case 1 :
// JS.g:993:4: THIS
{
root_0 = (Object)adaptor.nil();
THIS44=(Token)input.LT(1);
match(input,THIS,FOLLOW_THIS_in_primaryExpression3766);
THIS44_tree = (Object)adaptor.create(THIS44);
adaptor.addChild(root_0, THIS44_tree);
}
break;
case 2 :
// JS.g:994:4: identifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_identifier_in_primaryExpression3771);
identifier45=identifier();
_fsp--;
adaptor.addChild(root_0, identifier45.getTree());
}
break;
case 3 :
// JS.g:995:4: xmlAttribute
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_xmlAttribute_in_primaryExpression3776);
xmlAttribute46=xmlAttribute();
_fsp--;
adaptor.addChild(root_0, xmlAttribute46.getTree());
}
break;
case 4 :
// JS.g:996:4: literal
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_literal_in_primaryExpression3781);
literal47=literal();
_fsp--;
adaptor.addChild(root_0, literal47.getTree());
}
break;
case 5 :
// JS.g:997:4: arrayLiteral
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_arrayLiteral_in_primaryExpression3786);
arrayLiteral48=arrayLiteral();
_fsp--;
adaptor.addChild(root_0, arrayLiteral48.getTree());
}
break;
case 6 :
// JS.g:998:4: objectLiteral
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_objectLiteral_in_primaryExpression3791);
objectLiteral49=objectLiteral();
_fsp--;
adaptor.addChild(root_0, objectLiteral49.getTree());
}
break;
case 7 :
// JS.g:999:4: parenExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_parenExpression_in_primaryExpression3796);
parenExpression50=parenExpression();
_fsp--;
adaptor.addChild(root_0, parenExpression50.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1002:1: parenExpression : lpar= LPAREN expression RPAREN -> ^( PAREXPR[$lpar, \"PAREXPR\"] expression RPAREN ) ;
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 RPAREN52=null;
expression_return expression51 = null;
Object lpar_tree=null;
Object RPAREN52_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:1003:3: (lpar= LPAREN expression RPAREN -> ^( PAREXPR[$lpar, \"PAREXPR\"] expression RPAREN ) )
// JS.g:1003:5: lpar= LPAREN expression RPAREN
{
lpar=(Token)input.LT(1);
match(input,LPAREN,FOLLOW_LPAREN_in_parenExpression3812);
stream_LPAREN.add(lpar);
pushFollow(FOLLOW_expression_in_parenExpression3814);
expression51=expression();
_fsp--;
stream_expression.add(expression51.getTree());
RPAREN52=(Token)input.LT(1);
match(input,RPAREN,FOLLOW_RPAREN_in_parenExpression3816);
stream_RPAREN.add(RPAREN52);
// AST REWRITE
// elements: RPAREN, 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();
// 1003:37: -> ^( PAREXPR[$lpar, \"PAREXPR\"] expression RPAREN )
{
// JS.g:1003:40: ^( PAREXPR[$lpar, \"PAREXPR\"] expression RPAREN )
{
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_1, stream_RPAREN.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1006:1: arrayLiteral : lb= LBRACK ( arrayItem ( COMMA ( arrayItem )? )* )? rb= RBRACK -> ^( ARRAY[$lb, \"ARRAY\"] ( arrayItem )* $rb) ;
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 rb=null;
Token COMMA54=null;
arrayItem_return arrayItem53 = null;
arrayItem_return arrayItem55 = null;
Object lb_tree=null;
Object rb_tree=null;
Object COMMA54_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:1007:2: (lb= LBRACK ( arrayItem ( COMMA ( arrayItem )? )* )? rb= RBRACK -> ^( ARRAY[$lb, \"ARRAY\"] ( arrayItem )* $rb) )
// JS.g:1007:4: lb= LBRACK ( arrayItem ( COMMA ( arrayItem )? )* )? rb= RBRACK
{
lb=(Token)input.LT(1);
match(input,LBRACK,FOLLOW_LBRACK_in_arrayLiteral3843);
stream_LBRACK.add(lb);
// JS.g:1007:14: ( arrayItem ( COMMA ( arrayItem )? )* )?
int alt10=2;
int LA10_0 = input.LA(1);
if ( ((LA10_0>=NULL && LA10_0<=FALSE)||LA10_0==EACH||LA10_0==THIS||(LA10_0>=GET && LA10_0<=SET)||(LA10_0>=WXML && LA10_0<=CLASS)||(LA10_0>=DEBUGGER && LA10_0<=VOLATILE)||LA10_0==AT||LA10_0==StringLiteral||(LA10_0>=Identifier && LA10_0<=RegularExpressionLiteral)||(LA10_0>=DecimalLiteral && LA10_0<=HexIntegerLiteral)) ) {
alt10=1;
}
else if ( ((LA10_0>=XMLFragment && LA10_0<=XMLFragmentEnd)) && ( isXmlEnabled() )) {
alt10=1;
}
else if ( (LA10_0==DELETE||LA10_0==FUNCTION||LA10_0==NEW||LA10_0==TYPEOF||LA10_0==VOID||LA10_0==YIELD||LA10_0==LBRACE||LA10_0==LPAREN||LA10_0==LBRACK||LA10_0==COMMA||(LA10_0>=ADD && LA10_0<=SUB)||(LA10_0>=INC && LA10_0<=DEC)||(LA10_0>=NOT && LA10_0<=INV)) ) {
alt10=1;
}
else if ( (LA10_0==RBRACK) ) {
int LA10_4 = input.LA(2);
if ( ( input.LA(1) == COMMA ) ) {
alt10=1;
}
}
switch (alt10) {
case 1 :
// JS.g:1007:16: arrayItem ( COMMA ( arrayItem )? )*
{
pushFollow(FOLLOW_arrayItem_in_arrayLiteral3847);
arrayItem53=arrayItem();
_fsp--;
stream_arrayItem.add(arrayItem53.getTree());
// JS.g:1007:26: ( COMMA ( arrayItem )? )*
loop9:
do {
int alt9=2;
int LA9_0 = input.LA(1);
if ( (LA9_0==COMMA) ) {
alt9=1;
}
switch (alt9) {
case 1 :
// JS.g:1007:28: COMMA ( arrayItem )?
{
COMMA54=(Token)input.LT(1);
match(input,COMMA,FOLLOW_COMMA_in_arrayLiteral3851);
stream_COMMA.add(COMMA54);
// JS.g:1007:34: ( arrayItem )?
int alt8=2;
int LA8_0 = input.LA(1);
if ( ((LA8_0>=NULL && LA8_0<=FALSE)||LA8_0==EACH||LA8_0==THIS||(LA8_0>=GET && LA8_0<=SET)||(LA8_0>=WXML && LA8_0<=CLASS)||(LA8_0>=DEBUGGER && LA8_0<=VOLATILE)||LA8_0==AT||LA8_0==StringLiteral||(LA8_0>=Identifier && LA8_0<=RegularExpressionLiteral)||(LA8_0>=DecimalLiteral && LA8_0<=HexIntegerLiteral)) ) {
alt8=1;
}
else if ( ((LA8_0>=XMLFragment && LA8_0<=XMLFragmentEnd)) && ( isXmlEnabled() )) {
alt8=1;
}
else if ( (LA8_0==DELETE||LA8_0==FUNCTION||LA8_0==NEW||LA8_0==TYPEOF||LA8_0==VOID||LA8_0==YIELD||LA8_0==LBRACE||LA8_0==LPAREN||LA8_0==LBRACK||(LA8_0>=ADD && LA8_0<=SUB)||(LA8_0>=INC && LA8_0<=DEC)||(LA8_0>=NOT && LA8_0<=INV)) ) {
alt8=1;
}
else if ( (LA8_0==RBRACK) ) {
int LA8_4 = input.LA(2);
if ( ( input.LA(1) == COMMA ) ) {
alt8=1;
}
}
else if ( (LA8_0==COMMA) ) {
int LA8_5 = input.LA(2);
if ( ( input.LA(1) == COMMA ) ) {
alt8=1;
}
}
switch (alt8) {
case 1 :
// JS.g:1007:34: arrayItem
{
pushFollow(FOLLOW_arrayItem_in_arrayLiteral3853);
arrayItem55=arrayItem();
_fsp--;
stream_arrayItem.add(arrayItem55.getTree());
}
break;
}
}
break;
default :
break loop9;
}
} while (true);
}
break;
}
rb=(Token)input.LT(1);
match(input,RBRACK,FOLLOW_RBRACK_in_arrayLiteral3864);
stream_RBRACK.add(rb);
// AST REWRITE
// elements: arrayItem, rb
// token labels: rb
// rule labels: retval
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleTokenStream stream_rb=new RewriteRuleTokenStream(adaptor,"token rb",rb);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
// 1008:2: -> ^( ARRAY[$lb, \"ARRAY\"] ( arrayItem )* $rb)
{
// JS.g:1008:5: ^( ARRAY[$lb, \"ARRAY\"] ( arrayItem )* $rb)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(ARRAY, lb, "ARRAY"), root_1);
// JS.g:1008:28: ( arrayItem )*
while ( stream_arrayItem.hasNext() ) {
adaptor.addChild(root_1, stream_arrayItem.next());
}
stream_arrayItem.reset();
adaptor.addChild(root_1, stream_rb.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1011: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:1012:2: ( (expr= assignmentExpression | {...}?) -> ^( ITEM ( $expr)? ) )
// JS.g:1012:4: (expr= assignmentExpression | {...}?)
{
// JS.g:1012:4: (expr= assignmentExpression | {...}?)
int alt11=2;
int LA11_0 = input.LA(1);
if ( ((LA11_0>=NULL && LA11_0<=FALSE)||LA11_0==EACH||LA11_0==THIS||(LA11_0>=GET && LA11_0<=SET)||(LA11_0>=WXML && LA11_0<=CLASS)||(LA11_0>=DEBUGGER && LA11_0<=VOLATILE)||LA11_0==AT||LA11_0==StringLiteral||(LA11_0>=Identifier && LA11_0<=RegularExpressionLiteral)||(LA11_0>=DecimalLiteral && LA11_0<=HexIntegerLiteral)) ) {
alt11=1;
}
else if ( ((LA11_0>=XMLFragment && LA11_0<=XMLFragmentEnd)) && ( isXmlEnabled() )) {
alt11=1;
}
else if ( (LA11_0==DELETE||LA11_0==FUNCTION||LA11_0==NEW||LA11_0==TYPEOF||LA11_0==VOID||LA11_0==YIELD||LA11_0==LBRACE||LA11_0==LPAREN||LA11_0==LBRACK||(LA11_0>=ADD && LA11_0<=SUB)||(LA11_0>=INC && LA11_0<=DEC)||(LA11_0>=NOT && LA11_0<=INV)) ) {
alt11=1;
}
else if ( (LA11_0==RBRACK||LA11_0==COMMA) ) {
alt11=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("1012:4: (expr= assignmentExpression | {...}?)", 11, 0, input);
throw nvae;
}
switch (alt11) {
case 1 :
// JS.g:1012:6: expr= assignmentExpression
{
pushFollow(FOLLOW_assignmentExpression_in_arrayItem3894);
expr=assignmentExpression();
_fsp--;
stream_assignmentExpression.add(expr.getTree());
}
break;
case 2 :
// JS.g:1012: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();
// 1013:2: -> ^( ITEM ( $expr)? )
{
// JS.g:1013:5: ^( ITEM ( $expr)? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(ITEM, "ITEM"), root_1);
// JS.g:1013: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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1016:1: objectLiteral : lb= LBRACE ( objectPropertyInitializer ( COMMA objectPropertyInitializer )* ( COMMA )? )? RBRACE -> ^( OBJECT[$lb, \"OBJECT\"] ( objectPropertyInitializer )* ( COMMA )* ) ;
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 COMMA57=null;
Token COMMA59=null;
Token RBRACE60=null;
objectPropertyInitializer_return objectPropertyInitializer56 = null;
objectPropertyInitializer_return objectPropertyInitializer58 = null;
Object lb_tree=null;
Object COMMA57_tree=null;
Object COMMA59_tree=null;
Object RBRACE60_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:1017:2: (lb= LBRACE ( objectPropertyInitializer ( COMMA objectPropertyInitializer )* ( COMMA )? )? RBRACE -> ^( OBJECT[$lb, \"OBJECT\"] ( objectPropertyInitializer )* ( COMMA )* ) )
// JS.g:1017:4: lb= LBRACE ( objectPropertyInitializer ( COMMA objectPropertyInitializer )* ( COMMA )? )? RBRACE
{
lb=(Token)input.LT(1);
match(input,LBRACE,FOLLOW_LBRACE_in_objectLiteral3926);
stream_LBRACE.add(lb);
// JS.g:1017:14: ( objectPropertyInitializer ( COMMA objectPropertyInitializer )* ( COMMA )? )?
int alt14=2;
int LA14_0 = input.LA(1);
if ( ((LA14_0>=BREAK && LA14_0<=CLASS)||(LA14_0>=DEBUGGER && LA14_0<=VOLATILE)||LA14_0==StringLiteral||LA14_0==Identifier||(LA14_0>=DecimalLiteral && LA14_0<=HexIntegerLiteral)) ) {
alt14=1;
}
switch (alt14) {
case 1 :
// JS.g:1017:16: objectPropertyInitializer ( COMMA objectPropertyInitializer )* ( COMMA )?
{
pushFollow(FOLLOW_objectPropertyInitializer_in_objectLiteral3930);
objectPropertyInitializer56=objectPropertyInitializer();
_fsp--;
stream_objectPropertyInitializer.add(objectPropertyInitializer56.getTree());
// JS.g:1017:42: ( COMMA objectPropertyInitializer )*
loop12:
do {
int alt12=2;
int LA12_0 = input.LA(1);
if ( (LA12_0==COMMA) ) {
int LA12_1 = input.LA(2);
if ( ((LA12_1>=BREAK && LA12_1<=CLASS)||(LA12_1>=DEBUGGER && LA12_1<=VOLATILE)||LA12_1==StringLiteral||LA12_1==Identifier||(LA12_1>=DecimalLiteral && LA12_1<=HexIntegerLiteral)) ) {
alt12=1;
}
}
switch (alt12) {
case 1 :
// JS.g:1017:44: COMMA objectPropertyInitializer
{
COMMA57=(Token)input.LT(1);
match(input,COMMA,FOLLOW_COMMA_in_objectLiteral3934);
stream_COMMA.add(COMMA57);
pushFollow(FOLLOW_objectPropertyInitializer_in_objectLiteral3936);
objectPropertyInitializer58=objectPropertyInitializer();
_fsp--;
stream_objectPropertyInitializer.add(objectPropertyInitializer58.getTree());
}
break;
default :
break loop12;
}
} while (true);
// JS.g:1017:79: ( COMMA )?
int alt13=2;
int LA13_0 = input.LA(1);
if ( (LA13_0==COMMA) ) {
alt13=1;
}
switch (alt13) {
case 1 :
// JS.g:1017:79: COMMA
{
COMMA59=(Token)input.LT(1);
match(input,COMMA,FOLLOW_COMMA_in_objectLiteral3941);
stream_COMMA.add(COMMA59);
}
break;
}
}
break;
}
RBRACE60=(Token)input.LT(1);
match(input,RBRACE,FOLLOW_RBRACE_in_objectLiteral3946);
stream_RBRACE.add(RBRACE60);
// AST REWRITE
// elements: COMMA, 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();
// 1018:2: -> ^( OBJECT[$lb, \"OBJECT\"] ( objectPropertyInitializer )* ( COMMA )* )
{
// JS.g:1018:5: ^( OBJECT[$lb, \"OBJECT\"] ( objectPropertyInitializer )* ( COMMA )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(OBJECT, lb, "OBJECT"), root_1);
// JS.g:1018:30: ( objectPropertyInitializer )*
while ( stream_objectPropertyInitializer.hasNext() ) {
adaptor.addChild(root_1, stream_objectPropertyInitializer.next());
}
stream_objectPropertyInitializer.reset();
// JS.g:1018:57: ( COMMA )*
while ( stream_COMMA.hasNext() ) {
adaptor.addChild(root_1, stream_COMMA.next());
}
stream_COMMA.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1021: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 nameValuePair61 = null;
getMethodDeclaration_return getMethodDeclaration62 = null;
setMethodDeclaration_return setMethodDeclaration63 = null;
try {
// JS.g:1022:3: ( nameValuePair | getMethodDeclaration | setMethodDeclaration )
int alt15=3;
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 YIELD:
case WXML:
case NAMESPACE:
case ABSTRACT:
case BOOLEAN:
case BYTE:
case CHAR:
case CLASS:
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:
case StringLiteral:
case Identifier:
case DecimalLiteral:
case OctalIntegerLiteral:
case HexIntegerLiteral:
{
alt15=1;
}
break;
case GET:
{
int LA15_2 = input.LA(2);
if ( (LA15_2==COLON) ) {
alt15=1;
}
else if ( (LA15_2==EACH||(LA15_2>=GET && LA15_2<=SET)||(LA15_2>=WXML && LA15_2<=CLASS)||(LA15_2>=DEBUGGER && LA15_2<=VOLATILE)||LA15_2==Identifier) ) {
alt15=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("1021:1: objectPropertyInitializer : ( nameValuePair | getMethodDeclaration | setMethodDeclaration );", 15, 2, input);
throw nvae;
}
}
break;
case SET:
{
int LA15_3 = input.LA(2);
if ( (LA15_3==COLON) ) {
alt15=1;
}
else if ( (LA15_3==EACH||(LA15_3>=GET && LA15_3<=SET)||(LA15_3>=WXML && LA15_3<=CLASS)||(LA15_3>=DEBUGGER && LA15_3<=VOLATILE)||LA15_3==Identifier) ) {
alt15=3;
}
else {
NoViableAltException nvae =
new NoViableAltException("1021:1: objectPropertyInitializer : ( nameValuePair | getMethodDeclaration | setMethodDeclaration );", 15, 3, input);
throw nvae;
}
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("1021:1: objectPropertyInitializer : ( nameValuePair | getMethodDeclaration | setMethodDeclaration );", 15, 0, input);
throw nvae;
}
switch (alt15) {
case 1 :
// JS.g:1022:5: nameValuePair
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_nameValuePair_in_objectPropertyInitializer3973);
nameValuePair61=nameValuePair();
_fsp--;
adaptor.addChild(root_0, nameValuePair61.getTree());
}
break;
case 2 :
// JS.g:1023:5: getMethodDeclaration
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_getMethodDeclaration_in_objectPropertyInitializer3979);
getMethodDeclaration62=getMethodDeclaration();
_fsp--;
adaptor.addChild(root_0, getMethodDeclaration62.getTree());
}
break;
case 3 :
// JS.g:1024:5: setMethodDeclaration
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_setMethodDeclaration_in_objectPropertyInitializer3985);
setMethodDeclaration63=setMethodDeclaration();
_fsp--;
adaptor.addChild(root_0, setMethodDeclaration63.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1027:1: nameValuePair : propertyName COLON assignmentExpression ( nameValuePairFix )? -> ^( NAMEDVALUE propertyName assignmentExpression ( nameValuePairFix )? ) ;
public final nameValuePair_return nameValuePair() throws RecognitionException {
nameValuePair_return retval = new nameValuePair_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COLON65=null;
propertyName_return propertyName64 = null;
assignmentExpression_return assignmentExpression66 = null;
nameValuePairFix_return nameValuePairFix67 = null;
Object COLON65_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");
RewriteRuleSubtreeStream stream_nameValuePairFix=new RewriteRuleSubtreeStream(adaptor,"rule nameValuePairFix");
try {
// JS.g:1028:2: ( propertyName COLON assignmentExpression ( nameValuePairFix )? -> ^( NAMEDVALUE propertyName assignmentExpression ( nameValuePairFix )? ) )
// JS.g:1028:4: propertyName COLON assignmentExpression ( nameValuePairFix )?
{
pushFollow(FOLLOW_propertyName_in_nameValuePair3997);
propertyName64=propertyName();
_fsp--;
stream_propertyName.add(propertyName64.getTree());
COLON65=(Token)input.LT(1);
match(input,COLON,FOLLOW_COLON_in_nameValuePair3999);
stream_COLON.add(COLON65);
pushFollow(FOLLOW_assignmentExpression_in_nameValuePair4001);
assignmentExpression66=assignmentExpression();
_fsp--;
stream_assignmentExpression.add(assignmentExpression66.getTree());
// JS.g:1028:44: ( nameValuePairFix )?
int alt16=2;
int LA16_0 = input.LA(1);
if ( (LA16_0==EACH||(LA16_0>=GET && LA16_0<=SET)||(LA16_0>=WXML && LA16_0<=CLASS)||(LA16_0>=DEBUGGER && LA16_0<=VOLATILE)||LA16_0==COLON||LA16_0==Identifier) ) {
alt16=1;
}
switch (alt16) {
case 1 :
// JS.g:1028:44: nameValuePairFix
{
pushFollow(FOLLOW_nameValuePairFix_in_nameValuePair4003);
nameValuePairFix67=nameValuePairFix();
_fsp--;
stream_nameValuePairFix.add(nameValuePairFix67.getTree());
}
break;
}
// AST REWRITE
// elements: nameValuePairFix, 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();
// 1029:2: -> ^( NAMEDVALUE propertyName assignmentExpression ( nameValuePairFix )? )
{
// JS.g:1029:5: ^( NAMEDVALUE propertyName assignmentExpression ( nameValuePairFix )? )
{
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());
// JS.g:1029:53: ( nameValuePairFix )?
if ( stream_nameValuePairFix.hasNext() ) {
adaptor.addChild(root_1, stream_nameValuePairFix.next());
}
stream_nameValuePairFix.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
finally {
}
return retval;
}
// $ANTLR end nameValuePair
public static class nameValuePairFix_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start nameValuePairFix
// JS.g:1032:1: nameValuePairFix : (colon= COLON assignmentExpression -> ^( $colon assignmentExpression ) | id= identifier COLON assignmentExpression -> ^( NAMEDVALUE $id assignmentExpression ) );
public final nameValuePairFix_return nameValuePairFix() throws RecognitionException {
nameValuePairFix_return retval = new nameValuePairFix_return();
retval.start = input.LT(1);
Object root_0 = null;
Token colon=null;
Token COLON69=null;
identifier_return id = null;
assignmentExpression_return assignmentExpression68 = null;
assignmentExpression_return assignmentExpression70 = null;
Object colon_tree=null;
Object COLON69_tree=null;
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleSubtreeStream stream_assignmentExpression=new RewriteRuleSubtreeStream(adaptor,"rule assignmentExpression");
RewriteRuleSubtreeStream stream_identifier=new RewriteRuleSubtreeStream(adaptor,"rule identifier");
try {
// JS.g:1033:2: (colon= COLON assignmentExpression -> ^( $colon assignmentExpression ) | id= identifier COLON assignmentExpression -> ^( NAMEDVALUE $id assignmentExpression ) )
int alt17=2;
int LA17_0 = input.LA(1);
if ( (LA17_0==COLON) ) {
alt17=1;
}
else if ( (LA17_0==EACH||(LA17_0>=GET && LA17_0<=SET)||(LA17_0>=WXML && LA17_0<=CLASS)||(LA17_0>=DEBUGGER && LA17_0<=VOLATILE)||LA17_0==Identifier) ) {
alt17=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("1032:1: nameValuePairFix : (colon= COLON assignmentExpression -> ^( $colon assignmentExpression ) | id= identifier COLON assignmentExpression -> ^( NAMEDVALUE $id assignmentExpression ) );", 17, 0, input);
throw nvae;
}
switch (alt17) {
case 1 :
// JS.g:1033:4: colon= COLON assignmentExpression
{
colon=(Token)input.LT(1);
match(input,COLON,FOLLOW_COLON_in_nameValuePairFix4033);
stream_COLON.add(colon);
pushFollow(FOLLOW_assignmentExpression_in_nameValuePairFix4035);
assignmentExpression68=assignmentExpression();
_fsp--;
stream_assignmentExpression.add(assignmentExpression68.getTree());
reportError("Comma or expression expected", colon);
// AST REWRITE
// elements: colon, assignmentExpression
// token labels: colon
// rule labels: retval
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleTokenStream stream_colon=new RewriteRuleTokenStream(adaptor,"token colon",colon);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
// 1034:2: -> ^( $colon assignmentExpression )
{
// JS.g:1034:5: ^( $colon assignmentExpression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_colon.next(), root_1);
adaptor.addChild(root_1, stream_assignmentExpression.next());
adaptor.addChild(root_0, root_1);
}
}
}
break;
case 2 :
// JS.g:1035:4: id= identifier COLON assignmentExpression
{
pushFollow(FOLLOW_identifier_in_nameValuePairFix4056);
id=identifier();
_fsp--;
stream_identifier.add(id.getTree());
COLON69=(Token)input.LT(1);
match(input,COLON,FOLLOW_COLON_in_nameValuePairFix4058);
stream_COLON.add(COLON69);
pushFollow(FOLLOW_assignmentExpression_in_nameValuePairFix4060);
assignmentExpression70=assignmentExpression();
_fsp--;
stream_assignmentExpression.add(assignmentExpression70.getTree());
reportError("Comma expected", ((Token)id.start));
// AST REWRITE
// elements: assignmentExpression, id
// token labels:
// rule labels: id, retval
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_id=new RewriteRuleSubtreeStream(adaptor,"token id",id!=null?id.tree:null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
// 1036:2: -> ^( NAMEDVALUE $id assignmentExpression )
{
// JS.g:1036:5: ^( NAMEDVALUE $id assignmentExpression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(NAMEDVALUE, "NAMEDVALUE"), root_1);
adaptor.addChild(root_1, stream_id.next());
adaptor.addChild(root_1, stream_assignmentExpression.next());
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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
finally {
}
return retval;
}
// $ANTLR end nameValuePairFix
public static class propertyName_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start propertyName
// JS.g:1039:1: propertyName : ( identifier | word= reservedWord -> Identifier[word.start] | StringLiteral | numericLiteral );
public final propertyName_return propertyName() throws RecognitionException {
propertyName_return retval = new propertyName_return();
retval.start = input.LT(1);
Object root_0 = null;
Token StringLiteral72=null;
reservedWord_return word = null;
identifier_return identifier71 = null;
numericLiteral_return numericLiteral73 = null;
Object StringLiteral72_tree=null;
RewriteRuleSubtreeStream stream_reservedWord=new RewriteRuleSubtreeStream(adaptor,"rule reservedWord");
try {
// JS.g:1040:2: ( identifier | word= reservedWord -> Identifier[word.start] | StringLiteral | numericLiteral )
int alt18=4;
switch ( input.LA(1) ) {
case WXML:
{
alt18=1;
}
break;
case GET:
{
alt18=1;
}
break;
case SET:
{
alt18=1;
}
break;
case EACH:
{
alt18=1;
}
break;
case NAMESPACE:
case ABSTRACT:
case BOOLEAN:
case BYTE:
case CHAR:
case CLASS:
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:
case Identifier:
{
alt18=1;
}
break;
case BREAK:
case CASE:
case CATCH:
case CONTINUE:
case DEFAULT:
case DELETE:
case DO:
case ELSE:
case FINALLY:
case FOR:
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 YIELD:
{
alt18=2;
}
break;
case StringLiteral:
{
alt18=3;
}
break;
case DecimalLiteral:
case OctalIntegerLiteral:
case HexIntegerLiteral:
{
alt18=4;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("1039:1: propertyName : ( identifier | word= reservedWord -> Identifier[word.start] | StringLiteral | numericLiteral );", 18, 0, input);
throw nvae;
}
switch (alt18) {
case 1 :
// JS.g:1040:4: identifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_identifier_in_propertyName4087);
identifier71=identifier();
_fsp--;
adaptor.addChild(root_0, identifier71.getTree());
}
break;
case 2 :
// JS.g:1041:4: word= reservedWord
{
pushFollow(FOLLOW_reservedWord_in_propertyName4094);
word=reservedWord();
_fsp--;
stream_reservedWord.add(word.getTree());
// AST REWRITE
// elements:
// 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();
// 1041:22: -> Identifier[word.start]
{
adaptor.addChild(root_0, adaptor.create(Identifier, word.start));
}
}
break;
case 3 :
// JS.g:1042:4: StringLiteral
{
root_0 = (Object)adaptor.nil();
StringLiteral72=(Token)input.LT(1);
match(input,StringLiteral,FOLLOW_StringLiteral_in_propertyName4104);
StringLiteral72_tree = (Object)adaptor.create(StringLiteral72);
adaptor.addChild(root_0, StringLiteral72_tree);
}
break;
case 4 :
// JS.g:1043:4: numericLiteral
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_numericLiteral_in_propertyName4109);
numericLiteral73=numericLiteral();
_fsp--;
adaptor.addChild(root_0, numericLiteral73.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1055: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 primaryExpression74 = null;
functionExpression_return functionExpression75 = null;
newExpression_return newExpression76 = null;
try {
// JS.g:1056:2: ( primaryExpression | functionExpression | newExpression )
int alt19=3;
int LA19_0 = input.LA(1);
if ( ((LA19_0>=NULL && LA19_0<=FALSE)||LA19_0==EACH||LA19_0==THIS||(LA19_0>=GET && LA19_0<=SET)||(LA19_0>=WXML && LA19_0<=CLASS)||(LA19_0>=DEBUGGER && LA19_0<=VOLATILE)||LA19_0==AT||LA19_0==StringLiteral||(LA19_0>=Identifier && LA19_0<=RegularExpressionLiteral)||(LA19_0>=DecimalLiteral && LA19_0<=HexIntegerLiteral)) ) {
alt19=1;
}
else if ( ((LA19_0>=XMLFragment && LA19_0<=XMLFragmentEnd)) && ( isXmlEnabled() )) {
alt19=1;
}
else if ( (LA19_0==LBRACE||LA19_0==LPAREN||LA19_0==LBRACK) ) {
alt19=1;
}
else if ( (LA19_0==FUNCTION) ) {
alt19=2;
}
else if ( (LA19_0==NEW) ) {
alt19=3;
}
else {
NoViableAltException nvae =
new NoViableAltException("1055:1: memberExpression : ( primaryExpression | functionExpression | newExpression );", 19, 0, input);
throw nvae;
}
switch (alt19) {
case 1 :
// JS.g:1056:4: primaryExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_primaryExpression_in_memberExpression4127);
primaryExpression74=primaryExpression();
_fsp--;
adaptor.addChild(root_0, primaryExpression74.getTree());
}
break;
case 2 :
// JS.g:1057:4: functionExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_functionExpression_in_memberExpression4132);
functionExpression75=functionExpression();
_fsp--;
adaptor.addChild(root_0, functionExpression75.getTree());
}
break;
case 3 :
// JS.g:1058:4: newExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_newExpression_in_memberExpression4137);
newExpression76=newExpression();
_fsp--;
adaptor.addChild(root_0, newExpression76.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1061:1: newExpression : NEW newExpressionTail ;
public final newExpression_return newExpression() throws RecognitionException {
newExpression_return retval = new newExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token NEW77=null;
newExpressionTail_return newExpressionTail78 = null;
Object NEW77_tree=null;
try {
// JS.g:1062:2: ( NEW newExpressionTail )
// JS.g:1062:4: NEW newExpressionTail
{
root_0 = (Object)adaptor.nil();
NEW77=(Token)input.LT(1);
match(input,NEW,FOLLOW_NEW_in_newExpression4148);
NEW77_tree = (Object)adaptor.create(NEW77);
root_0 = (Object)adaptor.becomeRoot(NEW77_tree, root_0);
pushFollow(FOLLOW_newExpressionTail_in_newExpression4151);
newExpressionTail78=newExpressionTail();
_fsp--;
adaptor.addChild(root_0, newExpressionTail78.getTree());
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1066:1: arguments : LPAREN ( assignmentExpression ( COMMA assignmentExpression )* )? RPAREN -> ^( CALL_ARGUMENTS ( assignmentExpression )* ) ;
public final arguments_return arguments() throws RecognitionException {
arguments_return retval = new arguments_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LPAREN79=null;
Token COMMA81=null;
Token RPAREN83=null;
assignmentExpression_return assignmentExpression80 = null;
assignmentExpression_return assignmentExpression82 = null;
Object LPAREN79_tree=null;
Object COMMA81_tree=null;
Object RPAREN83_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:1067:2: ( LPAREN ( assignmentExpression ( COMMA assignmentExpression )* )? RPAREN -> ^( CALL_ARGUMENTS ( assignmentExpression )* ) )
// JS.g:1067:4: LPAREN ( assignmentExpression ( COMMA assignmentExpression )* )? RPAREN
{
LPAREN79=(Token)input.LT(1);
match(input,LPAREN,FOLLOW_LPAREN_in_arguments4164);
stream_LPAREN.add(LPAREN79);
// JS.g:1067:11: ( assignmentExpression ( COMMA assignmentExpression )* )?
int alt21=2;
int LA21_0 = input.LA(1);
if ( ((LA21_0>=NULL && LA21_0<=FALSE)||LA21_0==EACH||LA21_0==THIS||(LA21_0>=GET && LA21_0<=SET)||(LA21_0>=WXML && LA21_0<=CLASS)||(LA21_0>=DEBUGGER && LA21_0<=VOLATILE)||LA21_0==AT||LA21_0==StringLiteral||(LA21_0>=Identifier && LA21_0<=RegularExpressionLiteral)||(LA21_0>=DecimalLiteral && LA21_0<=HexIntegerLiteral)) ) {
alt21=1;
}
else if ( ((LA21_0>=XMLFragment && LA21_0<=XMLFragmentEnd)) && ( isXmlEnabled() )) {
alt21=1;
}
else if ( (LA21_0==DELETE||LA21_0==FUNCTION||LA21_0==NEW||LA21_0==TYPEOF||LA21_0==VOID||LA21_0==YIELD||LA21_0==LBRACE||LA21_0==LPAREN||LA21_0==LBRACK||(LA21_0>=ADD && LA21_0<=SUB)||(LA21_0>=INC && LA21_0<=DEC)||(LA21_0>=NOT && LA21_0<=INV)) ) {
alt21=1;
}
switch (alt21) {
case 1 :
// JS.g:1067:13: assignmentExpression ( COMMA assignmentExpression )*
{
pushFollow(FOLLOW_assignmentExpression_in_arguments4168);
assignmentExpression80=assignmentExpression();
_fsp--;
stream_assignmentExpression.add(assignmentExpression80.getTree());
// JS.g:1067:34: ( COMMA assignmentExpression )*
loop20:
do {
int alt20=2;
int LA20_0 = input.LA(1);
if ( (LA20_0==COMMA) ) {
alt20=1;
}
switch (alt20) {
case 1 :
// JS.g:1067:36: COMMA assignmentExpression
{
COMMA81=(Token)input.LT(1);
match(input,COMMA,FOLLOW_COMMA_in_arguments4172);
stream_COMMA.add(COMMA81);
pushFollow(FOLLOW_assignmentExpression_in_arguments4174);
assignmentExpression82=assignmentExpression();
_fsp--;
stream_assignmentExpression.add(assignmentExpression82.getTree());
}
break;
default :
break loop20;
}
} while (true);
}
break;
}
RPAREN83=(Token)input.LT(1);
match(input,RPAREN,FOLLOW_RPAREN_in_arguments4182);
stream_RPAREN.add(RPAREN83);
// 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();
// 1068:2: -> ^( CALL_ARGUMENTS ( assignmentExpression )* )
{
// JS.g:1068:5: ^( CALL_ARGUMENTS ( assignmentExpression )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(CALL_ARGUMENTS, "CALL_ARGUMENTS"), root_1);
// JS.g:1068:23: ( 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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1071:1: leftHandSideExpression : ( memberExpression -> memberExpression ) ( arguments -> ^( CALL $leftHandSideExpression arguments ) | lb1= LBRACK expression RBRACK -> ^( BYINDEX[$lb1] $leftHandSideExpression expression ) | DOT r= rightHandSideExpression -> ^( BYFIELD $leftHandSideExpression DOT ( $r)? ) | {...}? => DOTDOT r2= rightHandSideExpression2 -> ^( ALLCHILDREN $leftHandSideExpression $r2) | {...}? => COLONCOLON LBRACK expression RBRACK -> ^( LOCALNAME $leftHandSideExpression expression ) | {...}? => COLONCOLON ps= propertySelector -> ^( LOCALNAME $leftHandSideExpression ( $ps)? ) )* ;
public final leftHandSideExpression_return leftHandSideExpression() throws RecognitionException {
leftHandSideExpression_return retval = new leftHandSideExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token lb1=null;
Token RBRACK87=null;
Token DOT88=null;
Token DOTDOT89=null;
Token COLONCOLON90=null;
Token LBRACK91=null;
Token RBRACK93=null;
Token COLONCOLON94=null;
rightHandSideExpression_return r = null;
rightHandSideExpression2_return r2 = null;
propertySelector_return ps = null;
memberExpression_return memberExpression84 = null;
arguments_return arguments85 = null;
expression_return expression86 = null;
expression_return expression92 = null;
Object lb1_tree=null;
Object RBRACK87_tree=null;
Object DOT88_tree=null;
Object DOTDOT89_tree=null;
Object COLONCOLON90_tree=null;
Object LBRACK91_tree=null;
Object RBRACK93_tree=null;
Object COLONCOLON94_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_rightHandSideExpression2=new RewriteRuleSubtreeStream(adaptor,"rule rightHandSideExpression2");
RewriteRuleSubtreeStream stream_rightHandSideExpression=new RewriteRuleSubtreeStream(adaptor,"rule rightHandSideExpression");
RewriteRuleSubtreeStream stream_propertySelector=new RewriteRuleSubtreeStream(adaptor,"rule propertySelector");
pushState(JSParserRule.LEFT_HAND_SIDE_EXPRESSION);
try {
// JS.g:1073:3: ( ( memberExpression -> memberExpression ) ( arguments -> ^( CALL $leftHandSideExpression arguments ) | lb1= LBRACK expression RBRACK -> ^( BYINDEX[$lb1] $leftHandSideExpression expression ) | DOT r= rightHandSideExpression -> ^( BYFIELD $leftHandSideExpression DOT ( $r)? ) | {...}? => DOTDOT r2= rightHandSideExpression2 -> ^( ALLCHILDREN $leftHandSideExpression $r2) | {...}? => COLONCOLON LBRACK expression RBRACK -> ^( LOCALNAME $leftHandSideExpression expression ) | {...}? => COLONCOLON ps= propertySelector -> ^( LOCALNAME $leftHandSideExpression ( $ps)? ) )* )
// JS.g:1074:3: ( memberExpression -> memberExpression ) ( arguments -> ^( CALL $leftHandSideExpression arguments ) | lb1= LBRACK expression RBRACK -> ^( BYINDEX[$lb1] $leftHandSideExpression expression ) | DOT r= rightHandSideExpression -> ^( BYFIELD $leftHandSideExpression DOT ( $r)? ) | {...}? => DOTDOT r2= rightHandSideExpression2 -> ^( ALLCHILDREN $leftHandSideExpression $r2) | {...}? => COLONCOLON LBRACK expression RBRACK -> ^( LOCALNAME $leftHandSideExpression expression ) | {...}? => COLONCOLON ps= propertySelector -> ^( LOCALNAME $leftHandSideExpression ( $ps)? ) )*
{
// JS.g:1074:3: ( memberExpression -> memberExpression )
// JS.g:1075:5: memberExpression
{
pushFollow(FOLLOW_memberExpression_in_leftHandSideExpression4220);
memberExpression84=memberExpression();
_fsp--;
stream_memberExpression.add(memberExpression84.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();
// 1075:25: -> memberExpression
{
adaptor.addChild(root_0, stream_memberExpression.next());
}
}
// JS.g:1077:3: ( arguments -> ^( CALL $leftHandSideExpression arguments ) | lb1= LBRACK expression RBRACK -> ^( BYINDEX[$lb1] $leftHandSideExpression expression ) | DOT r= rightHandSideExpression -> ^( BYFIELD $leftHandSideExpression DOT ( $r)? ) | {...}? => DOTDOT r2= rightHandSideExpression2 -> ^( ALLCHILDREN $leftHandSideExpression $r2) | {...}? => COLONCOLON LBRACK expression RBRACK -> ^( LOCALNAME $leftHandSideExpression expression ) | {...}? => COLONCOLON ps= propertySelector -> ^( LOCALNAME $leftHandSideExpression ( $ps)? ) )*
loop22:
do {
int alt22=7;
int LA22_0 = input.LA(1);
if ( (LA22_0==LPAREN) ) {
alt22=1;
}
else if ( (LA22_0==LBRACK) ) {
alt22=2;
}
else if ( (LA22_0==DOT) ) {
alt22=3;
}
else if ( (LA22_0==DOTDOT) && ( isXmlEnabled() )) {
alt22=4;
}
else if ( (LA22_0==COLONCOLON) && ( isXmlEnabled() )) {
int LA22_6 = input.LA(2);
if ( (LA22_6==LBRACK) && ( isXmlEnabled() )) {
alt22=5;
}
else if ( (LA22_6==EACH||(LA22_6>=GET && LA22_6<=SET)||(LA22_6>=WXML && LA22_6<=CLASS)||(LA22_6>=DEBUGGER && LA22_6<=VOLATILE)||LA22_6==MUL||LA22_6==Identifier) && ( isXmlEnabled() )) {
alt22=6;
}
}
switch (alt22) {
case 1 :
// JS.g:1078:5: arguments
{
pushFollow(FOLLOW_arguments_in_leftHandSideExpression4241);
arguments85=arguments();
_fsp--;
stream_arguments.add(arguments85.getTree());
// AST REWRITE
// elements: arguments, 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();
// 1078:19: -> ^( CALL $leftHandSideExpression arguments )
{
// JS.g:1078: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:1079:7: lb1= LBRACK expression RBRACK
{
lb1=(Token)input.LT(1);
match(input,LBRACK,FOLLOW_LBRACK_in_leftHandSideExpression4268);
stream_LBRACK.add(lb1);
pushFollow(FOLLOW_expression_in_leftHandSideExpression4270);
expression86=expression();
_fsp--;
stream_expression.add(expression86.getTree());
RBRACK87=(Token)input.LT(1);
match(input,RBRACK,FOLLOW_RBRACK_in_leftHandSideExpression4272);
stream_RBRACK.add(RBRACK87);
// AST REWRITE
// elements: leftHandSideExpression, 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();
// 1079:37: -> ^( BYINDEX[$lb1] $leftHandSideExpression expression )
{
// JS.g:1079:40: ^( BYINDEX[$lb1] $leftHandSideExpression expression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(BYINDEX, lb1), 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:1080:7: DOT r= rightHandSideExpression
{
DOT88=(Token)input.LT(1);
match(input,DOT,FOLLOW_DOT_in_leftHandSideExpression4295);
stream_DOT.add(DOT88);
pushFollow(FOLLOW_rightHandSideExpression_in_leftHandSideExpression4299);
r=rightHandSideExpression();
_fsp--;
stream_rightHandSideExpression.add(r.getTree());
// AST REWRITE
// elements: r, DOT, leftHandSideExpression
// token labels:
// rule labels: retval, r
// 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_r=new RewriteRuleSubtreeStream(adaptor,"token r",r!=null?r.tree:null);
root_0 = (Object)adaptor.nil();
// 1080:37: -> ^( BYFIELD $leftHandSideExpression DOT ( $r)? )
{
// JS.g:1080:40: ^( BYFIELD $leftHandSideExpression DOT ( $r)? )
{
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_DOT.next());
// JS.g:1080:79: ( $r)?
if ( stream_r.hasNext() ) {
adaptor.addChild(root_1, stream_r.next());
}
stream_r.reset();
adaptor.addChild(root_0, root_1);
}
}
}
break;
case 4 :
// JS.g:1081:7: {...}? => DOTDOT r2= rightHandSideExpression2
{
if ( !( isXmlEnabled() ) ) {
throw new FailedPredicateException(input, "leftHandSideExpression", " isXmlEnabled() ");
}
DOTDOT89=(Token)input.LT(1);
match(input,DOTDOT,FOLLOW_DOTDOT_in_leftHandSideExpression4327);
stream_DOTDOT.add(DOTDOT89);
pushFollow(FOLLOW_rightHandSideExpression2_in_leftHandSideExpression4331);
r2=rightHandSideExpression2();
_fsp--;
stream_rightHandSideExpression2.add(r2.getTree());
// AST REWRITE
// elements: leftHandSideExpression, r2
// token labels:
// rule labels: retval, r2
// 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_r2=new RewriteRuleSubtreeStream(adaptor,"token r2",r2!=null?r2.tree:null);
root_0 = (Object)adaptor.nil();
// 1081:64: -> ^( ALLCHILDREN $leftHandSideExpression $r2)
{
// JS.g:1081:67: ^( ALLCHILDREN $leftHandSideExpression $r2)
{
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_r2.next());
adaptor.addChild(root_0, root_1);
}
}
}
break;
case 5 :
// JS.g:1082:7: {...}? => COLONCOLON LBRACK expression RBRACK
{
if ( !( isXmlEnabled() ) ) {
throw new FailedPredicateException(input, "leftHandSideExpression", " isXmlEnabled() ");
}
COLONCOLON90=(Token)input.LT(1);
match(input,COLONCOLON,FOLLOW_COLONCOLON_in_leftHandSideExpression4354);
stream_COLONCOLON.add(COLONCOLON90);
LBRACK91=(Token)input.LT(1);
match(input,LBRACK,FOLLOW_LBRACK_in_leftHandSideExpression4356);
stream_LBRACK.add(LBRACK91);
pushFollow(FOLLOW_expression_in_leftHandSideExpression4358);
expression92=expression();
_fsp--;
stream_expression.add(expression92.getTree());
RBRACK93=(Token)input.LT(1);
match(input,RBRACK,FOLLOW_RBRACK_in_leftHandSideExpression4360);
stream_RBRACK.add(RBRACK93);
// 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();
// 1082:65: -> ^( LOCALNAME $leftHandSideExpression expression )
{
// JS.g:1082:68: ^( 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;
case 6 :
// JS.g:1083:7: {...}? => COLONCOLON ps= propertySelector
{
if ( !( isXmlEnabled() ) ) {
throw new FailedPredicateException(input, "leftHandSideExpression", " isXmlEnabled() ");
}
COLONCOLON94=(Token)input.LT(1);
match(input,COLONCOLON,FOLLOW_COLONCOLON_in_leftHandSideExpression4382);
stream_COLONCOLON.add(COLONCOLON94);
pushFollow(FOLLOW_propertySelector_in_leftHandSideExpression4386);
ps=propertySelector();
_fsp--;
stream_propertySelector.add(ps.getTree());
// AST REWRITE
// elements: leftHandSideExpression, ps
// token labels:
// rule labels: retval, ps
// 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_ps=new RewriteRuleSubtreeStream(adaptor,"token ps",ps!=null?ps.tree:null);
root_0 = (Object)adaptor.nil();
// 1083:60: -> ^( LOCALNAME $leftHandSideExpression ( $ps)? )
{
// JS.g:1083:63: ^( LOCALNAME $leftHandSideExpression ( $ps)? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(LOCALNAME, "LOCALNAME"), root_1);
adaptor.addChild(root_1, stream_retval.next());
// JS.g:1083:99: ( $ps)?
if ( stream_ps.hasNext() ) {
adaptor.addChild(root_1, stream_ps.next());
}
stream_ps.reset();
adaptor.addChild(root_0, root_1);
}
}
}
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 e) {
reportRuleError(e);
}
catch (RuntimeException e) {
reportFailure(e);
}
finally {
popState();
}
return retval;
}
// $ANTLR end leftHandSideExpression
public static class newExpressionTail_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start newExpressionTail
// JS.g:1090:1: newExpressionTail : ( memberExpression -> memberExpression ) (lb1= LBRACK expression RBRACK -> ^( BYINDEX[$lb1] $newExpressionTail expression ) | DOT r= rightHandSideExpression -> ^( BYFIELD $newExpressionTail DOT ( $r)? ) | {...}? => DOTDOT r2= rightHandSideExpression2 -> ^( ALLCHILDREN $newExpressionTail $r2) | {...}? => COLONCOLON LBRACK expression RBRACK -> ^( LOCALNAME $newExpressionTail expression ) | {...}? => COLONCOLON ps= propertySelector -> ^( LOCALNAME $newExpressionTail ( $ps)? ) )* ( arguments -> ^( CALL $newExpressionTail arguments ) )? ;
public final newExpressionTail_return newExpressionTail() throws RecognitionException {
newExpressionTail_return retval = new newExpressionTail_return();
retval.start = input.LT(1);
Object root_0 = null;
Token lb1=null;
Token RBRACK97=null;
Token DOT98=null;
Token DOTDOT99=null;
Token COLONCOLON100=null;
Token LBRACK101=null;
Token RBRACK103=null;
Token COLONCOLON104=null;
rightHandSideExpression_return r = null;
rightHandSideExpression2_return r2 = null;
propertySelector_return ps = null;
memberExpression_return memberExpression95 = null;
expression_return expression96 = null;
expression_return expression102 = null;
arguments_return arguments105 = null;
Object lb1_tree=null;
Object RBRACK97_tree=null;
Object DOT98_tree=null;
Object DOTDOT99_tree=null;
Object COLONCOLON100_tree=null;
Object LBRACK101_tree=null;
Object RBRACK103_tree=null;
Object COLONCOLON104_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_rightHandSideExpression2=new RewriteRuleSubtreeStream(adaptor,"rule rightHandSideExpression2");
RewriteRuleSubtreeStream stream_arguments=new RewriteRuleSubtreeStream(adaptor,"rule arguments");
RewriteRuleSubtreeStream stream_rightHandSideExpression=new RewriteRuleSubtreeStream(adaptor,"rule rightHandSideExpression");
RewriteRuleSubtreeStream stream_propertySelector=new RewriteRuleSubtreeStream(adaptor,"rule propertySelector");
try {
// JS.g:1091:3: ( ( memberExpression -> memberExpression ) (lb1= LBRACK expression RBRACK -> ^( BYINDEX[$lb1] $newExpressionTail expression ) | DOT r= rightHandSideExpression -> ^( BYFIELD $newExpressionTail DOT ( $r)? ) | {...}? => DOTDOT r2= rightHandSideExpression2 -> ^( ALLCHILDREN $newExpressionTail $r2) | {...}? => COLONCOLON LBRACK expression RBRACK -> ^( LOCALNAME $newExpressionTail expression ) | {...}? => COLONCOLON ps= propertySelector -> ^( LOCALNAME $newExpressionTail ( $ps)? ) )* ( arguments -> ^( CALL $newExpressionTail arguments ) )? )
// JS.g:1092:3: ( memberExpression -> memberExpression ) (lb1= LBRACK expression RBRACK -> ^( BYINDEX[$lb1] $newExpressionTail expression ) | DOT r= rightHandSideExpression -> ^( BYFIELD $newExpressionTail DOT ( $r)? ) | {...}? => DOTDOT r2= rightHandSideExpression2 -> ^( ALLCHILDREN $newExpressionTail $r2) | {...}? => COLONCOLON LBRACK expression RBRACK -> ^( LOCALNAME $newExpressionTail expression ) | {...}? => COLONCOLON ps= propertySelector -> ^( LOCALNAME $newExpressionTail ( $ps)? ) )* ( arguments -> ^( CALL $newExpressionTail arguments ) )?
{
// JS.g:1092:3: ( memberExpression -> memberExpression )
// JS.g:1093:5: memberExpression
{
pushFollow(FOLLOW_memberExpression_in_newExpressionTail4447);
memberExpression95=memberExpression();
_fsp--;
stream_memberExpression.add(memberExpression95.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();
// 1093:25: -> memberExpression
{
adaptor.addChild(root_0, stream_memberExpression.next());
}
}
// JS.g:1095:3: (lb1= LBRACK expression RBRACK -> ^( BYINDEX[$lb1] $newExpressionTail expression ) | DOT r= rightHandSideExpression -> ^( BYFIELD $newExpressionTail DOT ( $r)? ) | {...}? => DOTDOT r2= rightHandSideExpression2 -> ^( ALLCHILDREN $newExpressionTail $r2) | {...}? => COLONCOLON LBRACK expression RBRACK -> ^( LOCALNAME $newExpressionTail expression ) | {...}? => COLONCOLON ps= propertySelector -> ^( LOCALNAME $newExpressionTail ( $ps)? ) )*
loop23:
do {
int alt23=6;
int LA23_0 = input.LA(1);
if ( (LA23_0==LBRACK) ) {
alt23=1;
}
else if ( (LA23_0==DOT) ) {
alt23=2;
}
else if ( (LA23_0==DOTDOT) && ( isXmlEnabled() )) {
int LA23_4 = input.LA(2);
if ( ( isXmlEnabled() ) ) {
alt23=3;
}
}
else if ( (LA23_0==COLONCOLON) && ( isXmlEnabled() )) {
int LA23_5 = input.LA(2);
if ( ( isXmlEnabled() ) ) {
alt23=4;
}
else if ( ( isXmlEnabled() ) ) {
alt23=5;
}
}
switch (alt23) {
case 1 :
// JS.g:1096:5: lb1= LBRACK expression RBRACK
{
lb1=(Token)input.LT(1);
match(input,LBRACK,FOLLOW_LBRACK_in_newExpressionTail4470);
stream_LBRACK.add(lb1);
pushFollow(FOLLOW_expression_in_newExpressionTail4472);
expression96=expression();
_fsp--;
stream_expression.add(expression96.getTree());
RBRACK97=(Token)input.LT(1);
match(input,RBRACK,FOLLOW_RBRACK_in_newExpressionTail4474);
stream_RBRACK.add(RBRACK97);
// AST REWRITE
// elements: newExpressionTail, 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();
// 1096:35: -> ^( BYINDEX[$lb1] $newExpressionTail expression )
{
// JS.g:1096:38: ^( BYINDEX[$lb1] $newExpressionTail expression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(BYINDEX, lb1), root_1);
adaptor.addChild(root_1, stream_retval.next());
adaptor.addChild(root_1, stream_expression.next());
adaptor.addChild(root_0, root_1);
}
}
}
break;
case 2 :
// JS.g:1097:7: DOT r= rightHandSideExpression
{
DOT98=(Token)input.LT(1);
match(input,DOT,FOLLOW_DOT_in_newExpressionTail4497);
stream_DOT.add(DOT98);
pushFollow(FOLLOW_rightHandSideExpression_in_newExpressionTail4501);
r=rightHandSideExpression();
_fsp--;
stream_rightHandSideExpression.add(r.getTree());
// AST REWRITE
// elements: DOT, newExpressionTail, r
// token labels:
// rule labels: retval, r
// 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_r=new RewriteRuleSubtreeStream(adaptor,"token r",r!=null?r.tree:null);
root_0 = (Object)adaptor.nil();
// 1097:37: -> ^( BYFIELD $newExpressionTail DOT ( $r)? )
{
// JS.g:1097:40: ^( BYFIELD $newExpressionTail DOT ( $r)? )
{
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_DOT.next());
// JS.g:1097:74: ( $r)?
if ( stream_r.hasNext() ) {
adaptor.addChild(root_1, stream_r.next());
}
stream_r.reset();
adaptor.addChild(root_0, root_1);
}
}
}
break;
case 3 :
// JS.g:1098:7: {...}? => DOTDOT r2= rightHandSideExpression2
{
if ( !( isXmlEnabled() ) ) {
throw new FailedPredicateException(input, "newExpressionTail", " isXmlEnabled() ");
}
DOTDOT99=(Token)input.LT(1);
match(input,DOTDOT,FOLLOW_DOTDOT_in_newExpressionTail4529);
stream_DOTDOT.add(DOTDOT99);
pushFollow(FOLLOW_rightHandSideExpression2_in_newExpressionTail4533);
r2=rightHandSideExpression2();
_fsp--;
stream_rightHandSideExpression2.add(r2.getTree());
// AST REWRITE
// elements: newExpressionTail, r2
// token labels:
// rule labels: retval, r2
// 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_r2=new RewriteRuleSubtreeStream(adaptor,"token r2",r2!=null?r2.tree:null);
root_0 = (Object)adaptor.nil();
// 1098:64: -> ^( ALLCHILDREN $newExpressionTail $r2)
{
// JS.g:1098:67: ^( ALLCHILDREN $newExpressionTail $r2)
{
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_r2.next());
adaptor.addChild(root_0, root_1);
}
}
}
break;
case 4 :
// JS.g:1099:7: {...}? => COLONCOLON LBRACK expression RBRACK
{
if ( !( isXmlEnabled() ) ) {
throw new FailedPredicateException(input, "newExpressionTail", " isXmlEnabled() ");
}
COLONCOLON100=(Token)input.LT(1);
match(input,COLONCOLON,FOLLOW_COLONCOLON_in_newExpressionTail4556);
stream_COLONCOLON.add(COLONCOLON100);
LBRACK101=(Token)input.LT(1);
match(input,LBRACK,FOLLOW_LBRACK_in_newExpressionTail4558);
stream_LBRACK.add(LBRACK101);
pushFollow(FOLLOW_expression_in_newExpressionTail4560);
expression102=expression();
_fsp--;
stream_expression.add(expression102.getTree());
RBRACK103=(Token)input.LT(1);
match(input,RBRACK,FOLLOW_RBRACK_in_newExpressionTail4562);
stream_RBRACK.add(RBRACK103);
// AST REWRITE
// elements: expression, newExpressionTail
// 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();
// 1099:65: -> ^( LOCALNAME $newExpressionTail expression )
{
// JS.g:1099:68: ^( LOCALNAME $newExpressionTail 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;
case 5 :
// JS.g:1100:7: {...}? => COLONCOLON ps= propertySelector
{
if ( !( isXmlEnabled() ) ) {
throw new FailedPredicateException(input, "newExpressionTail", " isXmlEnabled() ");
}
COLONCOLON104=(Token)input.LT(1);
match(input,COLONCOLON,FOLLOW_COLONCOLON_in_newExpressionTail4584);
stream_COLONCOLON.add(COLONCOLON104);
pushFollow(FOLLOW_propertySelector_in_newExpressionTail4588);
ps=propertySelector();
_fsp--;
stream_propertySelector.add(ps.getTree());
// AST REWRITE
// elements: newExpressionTail, ps
// token labels:
// rule labels: retval, ps
// 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_ps=new RewriteRuleSubtreeStream(adaptor,"token ps",ps!=null?ps.tree:null);
root_0 = (Object)adaptor.nil();
// 1100:60: -> ^( LOCALNAME $newExpressionTail ( $ps)? )
{
// JS.g:1100:63: ^( LOCALNAME $newExpressionTail ( $ps)? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(LOCALNAME, "LOCALNAME"), root_1);
adaptor.addChild(root_1, stream_retval.next());
// JS.g:1100:94: ( $ps)?
if ( stream_ps.hasNext() ) {
adaptor.addChild(root_1, stream_ps.next());
}
stream_ps.reset();
adaptor.addChild(root_0, root_1);
}
}
}
break;
default :
break loop23;
}
} while (true);
// JS.g:1102:3: ( arguments -> ^( CALL $newExpressionTail arguments ) )?
int alt24=2;
int LA24_0 = input.LA(1);
if ( (LA24_0==LPAREN) ) {
alt24=1;
}
switch (alt24) {
case 1 :
// JS.g:1103:5: arguments
{
pushFollow(FOLLOW_arguments_in_newExpressionTail4616);
arguments105=arguments();
_fsp--;
stream_arguments.add(arguments105.getTree());
// AST REWRITE
// elements: arguments, newExpressionTail
// 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();
// 1103:19: -> ^( CALL $newExpressionTail arguments )
{
// JS.g:1103:22: ^( CALL $newExpressionTail 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;
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
finally {
}
return retval;
}
// $ANTLR end newExpressionTail
public static class rightHandSideExpression_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start rightHandSideExpression
// JS.g:1107:1: rightHandSideExpression : ( identifier | word= reservedWord -> Identifier[word.start] | {...}? => parenExpression | {...}? => 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 MUL109=null;
reservedWord_return word = null;
identifier_return identifier106 = null;
parenExpression_return parenExpression107 = null;
xmlAttribute_return xmlAttribute108 = null;
Object MUL109_tree=null;
RewriteRuleSubtreeStream stream_reservedWord=new RewriteRuleSubtreeStream(adaptor,"rule reservedWord");
try {
// JS.g:1108:3: ( identifier | word= reservedWord -> Identifier[word.start] | {...}? => parenExpression | {...}? => xmlAttribute | {...}? => MUL )
int alt25=5;
int LA25_0 = input.LA(1);
if ( (LA25_0==WXML) ) {
alt25=1;
}
else if ( (LA25_0==GET) ) {
alt25=1;
}
else if ( (LA25_0==SET) ) {
alt25=1;
}
else if ( (LA25_0==EACH) ) {
alt25=1;
}
else if ( ((LA25_0>=NAMESPACE && LA25_0<=CLASS)||(LA25_0>=DEBUGGER && LA25_0<=VOLATILE)||LA25_0==Identifier) ) {
alt25=1;
}
else if ( ((LA25_0>=BREAK && LA25_0<=FOR)||(LA25_0>=FUNCTION && LA25_0<=WITH)||LA25_0==YIELD) ) {
alt25=2;
}
else if ( (LA25_0==LPAREN) && ( isXmlEnabled() )) {
alt25=3;
}
else if ( (LA25_0==AT) && ( isXmlEnabled() )) {
alt25=4;
}
else if ( (LA25_0==MUL) && ( isXmlEnabled() )) {
alt25=5;
}
else {
NoViableAltException nvae =
new NoViableAltException("1107:1: rightHandSideExpression : ( identifier | word= reservedWord -> Identifier[word.start] | {...}? => parenExpression | {...}? => xmlAttribute | {...}? => MUL );", 25, 0, input);
throw nvae;
}
switch (alt25) {
case 1 :
// JS.g:1108:5: identifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_identifier_in_rightHandSideExpression4651);
identifier106=identifier();
_fsp--;
adaptor.addChild(root_0, identifier106.getTree());
}
break;
case 2 :
// JS.g:1109:5: word= reservedWord
{
pushFollow(FOLLOW_reservedWord_in_rightHandSideExpression4659);
word=reservedWord();
_fsp--;
stream_reservedWord.add(word.getTree());
// AST REWRITE
// elements:
// 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();
// 1109:23: -> Identifier[word.start]
{
adaptor.addChild(root_0, adaptor.create(Identifier, word.start));
}
}
break;
case 3 :
// JS.g:1110:5: {...}? => parenExpression
{
root_0 = (Object)adaptor.nil();
if ( !( isXmlEnabled() ) ) {
throw new FailedPredicateException(input, "rightHandSideExpression", " isXmlEnabled() ");
}
pushFollow(FOLLOW_parenExpression_in_rightHandSideExpression4673);
parenExpression107=parenExpression();
_fsp--;
adaptor.addChild(root_0, parenExpression107.getTree());
}
break;
case 4 :
// JS.g:1111:5: {...}? => xmlAttribute
{
root_0 = (Object)adaptor.nil();
if ( !( isXmlEnabled() ) ) {
throw new FailedPredicateException(input, "rightHandSideExpression", " isXmlEnabled() ");
}
pushFollow(FOLLOW_xmlAttribute_in_rightHandSideExpression4683);
xmlAttribute108=xmlAttribute();
_fsp--;
adaptor.addChild(root_0, xmlAttribute108.getTree());
}
break;
case 5 :
// JS.g:1112:5: {...}? => MUL
{
root_0 = (Object)adaptor.nil();
if ( !( isXmlEnabled() ) ) {
throw new FailedPredicateException(input, "rightHandSideExpression", " isXmlEnabled() ");
}
MUL109=(Token)input.LT(1);
match(input,MUL,FOLLOW_MUL_in_rightHandSideExpression4692);
MUL109_tree = (Object)adaptor.create(MUL109);
adaptor.addChild(root_0, MUL109_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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
finally {
}
return retval;
}
// $ANTLR end rightHandSideExpression
public static class rightHandSideExpression2_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start rightHandSideExpression2
// JS.g:1115:1: rightHandSideExpression2 : ( identifier | xmlAttribute | MUL );
public final rightHandSideExpression2_return rightHandSideExpression2() throws RecognitionException {
rightHandSideExpression2_return retval = new rightHandSideExpression2_return();
retval.start = input.LT(1);
Object root_0 = null;
Token MUL112=null;
identifier_return identifier110 = null;
xmlAttribute_return xmlAttribute111 = null;
Object MUL112_tree=null;
try {
// JS.g:1116:3: ( identifier | xmlAttribute | MUL )
int alt26=3;
switch ( input.LA(1) ) {
case EACH:
case GET:
case SET:
case WXML:
case NAMESPACE:
case ABSTRACT:
case BOOLEAN:
case BYTE:
case CHAR:
case CLASS:
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:
case Identifier:
{
alt26=1;
}
break;
case AT:
{
alt26=2;
}
break;
case MUL:
{
alt26=3;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("1115:1: rightHandSideExpression2 : ( identifier | xmlAttribute | MUL );", 26, 0, input);
throw nvae;
}
switch (alt26) {
case 1 :
// JS.g:1116:5: identifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_identifier_in_rightHandSideExpression24704);
identifier110=identifier();
_fsp--;
adaptor.addChild(root_0, identifier110.getTree());
}
break;
case 2 :
// JS.g:1117:5: xmlAttribute
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_xmlAttribute_in_rightHandSideExpression24710);
xmlAttribute111=xmlAttribute();
_fsp--;
adaptor.addChild(root_0, xmlAttribute111.getTree());
}
break;
case 3 :
// JS.g:1118:5: MUL
{
root_0 = (Object)adaptor.nil();
MUL112=(Token)input.LT(1);
match(input,MUL,FOLLOW_MUL_in_rightHandSideExpression24716);
MUL112_tree = (Object)adaptor.create(MUL112);
adaptor.addChild(root_0, MUL112_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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
finally {
}
return retval;
}
// $ANTLR end rightHandSideExpression2
public static class postfixExpression_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start postfixExpression
// JS.g:1131: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 leftHandSideExpression113 = null;
postfixOperator_return postfixOperator114 = null;
try {
// JS.g:1132:2: ( leftHandSideExpression ( postfixOperator )? )
// JS.g:1132:4: leftHandSideExpression ( postfixOperator )?
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_leftHandSideExpression_in_postfixExpression4732);
leftHandSideExpression113=leftHandSideExpression();
_fsp--;
adaptor.addChild(root_0, leftHandSideExpression113.getTree());
if (input.LA(1) == INC || input.LA(1) == DEC) promoteEOL(null);
// JS.g:1132:95: ( postfixOperator )?
int alt27=2;
int LA27_0 = input.LA(1);
if ( ((LA27_0>=INC && LA27_0<=DEC)) ) {
alt27=1;
}
switch (alt27) {
case 1 :
// JS.g:1132:97: postfixOperator
{
pushFollow(FOLLOW_postfixOperator_in_postfixExpression4738);
postfixOperator114=postfixOperator();
_fsp--;
root_0 = (Object)adaptor.becomeRoot(postfixOperator114.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1135: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:1136:2: (op= INC | op= DEC )
int alt28=2;
int LA28_0 = input.LA(1);
if ( (LA28_0==INC) ) {
alt28=1;
}
else if ( (LA28_0==DEC) ) {
alt28=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("1135:1: postfixOperator : (op= INC | op= DEC );", 28, 0, input);
throw nvae;
}
switch (alt28) {
case 1 :
// JS.g:1136:4: op= INC
{
root_0 = (Object)adaptor.nil();
op=(Token)input.LT(1);
match(input,INC,FOLLOW_INC_in_postfixOperator4756);
op_tree = (Object)adaptor.create(op);
adaptor.addChild(root_0, op_tree);
op.setType(PINC);
}
break;
case 2 :
// JS.g:1137:4: op= DEC
{
root_0 = (Object)adaptor.nil();
op=(Token)input.LT(1);
match(input,DEC,FOLLOW_DEC_in_postfixOperator4765);
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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1144:1: unaryExpression : ( postfixExpression | unaryOperator unaryExpression );
public final unaryExpression_return unaryExpression() throws RecognitionException {
unaryExpression_return retval = new unaryExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
postfixExpression_return postfixExpression115 = null;
unaryOperator_return unaryOperator116 = null;
unaryExpression_return unaryExpression117 = null;
try {
// JS.g:1145:2: ( postfixExpression | unaryOperator unaryExpression )
int alt29=2;
int LA29_0 = input.LA(1);
if ( ((LA29_0>=NULL && LA29_0<=FALSE)||LA29_0==EACH||LA29_0==THIS||(LA29_0>=GET && LA29_0<=SET)||(LA29_0>=WXML && LA29_0<=CLASS)||(LA29_0>=DEBUGGER && LA29_0<=VOLATILE)||LA29_0==AT||LA29_0==StringLiteral||(LA29_0>=Identifier && LA29_0<=RegularExpressionLiteral)||(LA29_0>=DecimalLiteral && LA29_0<=HexIntegerLiteral)) ) {
alt29=1;
}
else if ( ((LA29_0>=XMLFragment && LA29_0<=XMLFragmentEnd)) && ( isXmlEnabled() )) {
alt29=1;
}
else if ( (LA29_0==FUNCTION||LA29_0==NEW||LA29_0==LBRACE||LA29_0==LPAREN||LA29_0==LBRACK) ) {
alt29=1;
}
else if ( (LA29_0==DELETE||LA29_0==TYPEOF||LA29_0==VOID||LA29_0==YIELD||(LA29_0>=ADD && LA29_0<=SUB)||(LA29_0>=INC && LA29_0<=DEC)||(LA29_0>=NOT && LA29_0<=INV)) ) {
alt29=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("1144:1: unaryExpression : ( postfixExpression | unaryOperator unaryExpression );", 29, 0, input);
throw nvae;
}
switch (alt29) {
case 1 :
// JS.g:1145:4: postfixExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_postfixExpression_in_unaryExpression4782);
postfixExpression115=postfixExpression();
_fsp--;
adaptor.addChild(root_0, postfixExpression115.getTree());
}
break;
case 2 :
// JS.g:1146:4: unaryOperator unaryExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_unaryOperator_in_unaryExpression4787);
unaryOperator116=unaryOperator();
_fsp--;
root_0 = (Object)adaptor.becomeRoot(unaryOperator116.getTree(), root_0);
pushFollow(FOLLOW_unaryExpression_in_unaryExpression4790);
unaryExpression117=unaryExpression();
_fsp--;
adaptor.addChild(root_0, unaryExpression117.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1149: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 DELETE118=null;
Token VOID119=null;
Token TYPEOF120=null;
Token INC121=null;
Token DEC122=null;
Token INV123=null;
Token NOT124=null;
Token YIELD125=null;
Object op_tree=null;
Object DELETE118_tree=null;
Object VOID119_tree=null;
Object TYPEOF120_tree=null;
Object INC121_tree=null;
Object DEC122_tree=null;
Object INV123_tree=null;
Object NOT124_tree=null;
Object YIELD125_tree=null;
try {
// JS.g:1150:2: ( DELETE | VOID | TYPEOF | INC | DEC | op= ADD | op= SUB | INV | NOT | YIELD )
int alt30=10;
switch ( input.LA(1) ) {
case DELETE:
{
alt30=1;
}
break;
case VOID:
{
alt30=2;
}
break;
case TYPEOF:
{
alt30=3;
}
break;
case INC:
{
alt30=4;
}
break;
case DEC:
{
alt30=5;
}
break;
case ADD:
{
alt30=6;
}
break;
case SUB:
{
alt30=7;
}
break;
case INV:
{
alt30=8;
}
break;
case NOT:
{
alt30=9;
}
break;
case YIELD:
{
alt30=10;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("1149:1: unaryOperator : ( DELETE | VOID | TYPEOF | INC | DEC | op= ADD | op= SUB | INV | NOT | YIELD );", 30, 0, input);
throw nvae;
}
switch (alt30) {
case 1 :
// JS.g:1150:4: DELETE
{
root_0 = (Object)adaptor.nil();
DELETE118=(Token)input.LT(1);
match(input,DELETE,FOLLOW_DELETE_in_unaryOperator4802);
DELETE118_tree = (Object)adaptor.create(DELETE118);
adaptor.addChild(root_0, DELETE118_tree);
}
break;
case 2 :
// JS.g:1151:4: VOID
{
root_0 = (Object)adaptor.nil();
VOID119=(Token)input.LT(1);
match(input,VOID,FOLLOW_VOID_in_unaryOperator4807);
VOID119_tree = (Object)adaptor.create(VOID119);
adaptor.addChild(root_0, VOID119_tree);
}
break;
case 3 :
// JS.g:1152:4: TYPEOF
{
root_0 = (Object)adaptor.nil();
TYPEOF120=(Token)input.LT(1);
match(input,TYPEOF,FOLLOW_TYPEOF_in_unaryOperator4812);
TYPEOF120_tree = (Object)adaptor.create(TYPEOF120);
adaptor.addChild(root_0, TYPEOF120_tree);
}
break;
case 4 :
// JS.g:1153:4: INC
{
root_0 = (Object)adaptor.nil();
INC121=(Token)input.LT(1);
match(input,INC,FOLLOW_INC_in_unaryOperator4817);
INC121_tree = (Object)adaptor.create(INC121);
adaptor.addChild(root_0, INC121_tree);
}
break;
case 5 :
// JS.g:1154:4: DEC
{
root_0 = (Object)adaptor.nil();
DEC122=(Token)input.LT(1);
match(input,DEC,FOLLOW_DEC_in_unaryOperator4822);
DEC122_tree = (Object)adaptor.create(DEC122);
adaptor.addChild(root_0, DEC122_tree);
}
break;
case 6 :
// JS.g:1155:4: op= ADD
{
root_0 = (Object)adaptor.nil();
op=(Token)input.LT(1);
match(input,ADD,FOLLOW_ADD_in_unaryOperator4829);
op_tree = (Object)adaptor.create(op);
adaptor.addChild(root_0, op_tree);
op.setType(POS);
}
break;
case 7 :
// JS.g:1156:4: op= SUB
{
root_0 = (Object)adaptor.nil();
op=(Token)input.LT(1);
match(input,SUB,FOLLOW_SUB_in_unaryOperator4838);
op_tree = (Object)adaptor.create(op);
adaptor.addChild(root_0, op_tree);
op.setType(NEG);
}
break;
case 8 :
// JS.g:1157:4: INV
{
root_0 = (Object)adaptor.nil();
INV123=(Token)input.LT(1);
match(input,INV,FOLLOW_INV_in_unaryOperator4845);
INV123_tree = (Object)adaptor.create(INV123);
adaptor.addChild(root_0, INV123_tree);
}
break;
case 9 :
// JS.g:1158:4: NOT
{
root_0 = (Object)adaptor.nil();
NOT124=(Token)input.LT(1);
match(input,NOT,FOLLOW_NOT_in_unaryOperator4850);
NOT124_tree = (Object)adaptor.create(NOT124);
adaptor.addChild(root_0, NOT124_tree);
}
break;
case 10 :
// JS.g:1159:4: YIELD
{
root_0 = (Object)adaptor.nil();
YIELD125=(Token)input.LT(1);
match(input,YIELD,FOLLOW_YIELD_in_unaryOperator4855);
YIELD125_tree = (Object)adaptor.create(YIELD125);
adaptor.addChild(root_0, YIELD125_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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1164:1: namespaceStatement : {...}? => DEFAULT WXML NAMESPACE ASSIGN expression semic -> ^( DEFAULT_XML_NAMESPACE DEFAULT WXML ASSIGN expression ) ;
public final namespaceStatement_return namespaceStatement() throws RecognitionException {
namespaceStatement_return retval = new namespaceStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token DEFAULT126=null;
Token WXML127=null;
Token NAMESPACE128=null;
Token ASSIGN129=null;
expression_return expression130 = null;
semic_return semic131 = null;
Object DEFAULT126_tree=null;
Object WXML127_tree=null;
Object NAMESPACE128_tree=null;
Object ASSIGN129_tree=null;
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_expression=new RewriteRuleSubtreeStream(adaptor,"rule expression");
RewriteRuleSubtreeStream stream_semic=new RewriteRuleSubtreeStream(adaptor,"rule semic");
try {
// JS.g:1165:3: ({...}? => DEFAULT WXML NAMESPACE ASSIGN expression semic -> ^( DEFAULT_XML_NAMESPACE DEFAULT WXML ASSIGN expression ) )
// JS.g:1165:5: {...}? => DEFAULT WXML NAMESPACE ASSIGN expression semic
{
if ( !( isXmlEnabled() ) ) {
throw new FailedPredicateException(input, "namespaceStatement", " isXmlEnabled() ");
}
DEFAULT126=(Token)input.LT(1);
match(input,DEFAULT,FOLLOW_DEFAULT_in_namespaceStatement4872);
stream_DEFAULT.add(DEFAULT126);
WXML127=(Token)input.LT(1);
match(input,WXML,FOLLOW_WXML_in_namespaceStatement4874);
stream_WXML.add(WXML127);
NAMESPACE128=(Token)input.LT(1);
match(input,NAMESPACE,FOLLOW_NAMESPACE_in_namespaceStatement4876);
stream_NAMESPACE.add(NAMESPACE128);
ASSIGN129=(Token)input.LT(1);
match(input,ASSIGN,FOLLOW_ASSIGN_in_namespaceStatement4878);
stream_ASSIGN.add(ASSIGN129);
pushFollow(FOLLOW_expression_in_namespaceStatement4880);
expression130=expression();
_fsp--;
stream_expression.add(expression130.getTree());
pushFollow(FOLLOW_semic_in_namespaceStatement4882);
semic131=semic();
_fsp--;
stream_semic.add(semic131.getTree());
// AST REWRITE
// elements: WXML, DEFAULT, expression, 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();
// 1166:5: -> ^( DEFAULT_XML_NAMESPACE DEFAULT WXML ASSIGN expression )
{
// JS.g:1166:8: ^( DEFAULT_XML_NAMESPACE DEFAULT WXML ASSIGN expression )
{
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_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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1171: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 set133=null;
unaryExpression_return unaryExpression132 = null;
unaryExpression_return unaryExpression134 = null;
Object set133_tree=null;
try {
// JS.g:1172:2: ( unaryExpression ( ( MUL | DIV | MOD ) unaryExpression )* )
// JS.g:1172:4: unaryExpression ( ( MUL | DIV | MOD ) unaryExpression )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression4914);
unaryExpression132=unaryExpression();
_fsp--;
adaptor.addChild(root_0, unaryExpression132.getTree());
// JS.g:1172:20: ( ( MUL | DIV | MOD ) unaryExpression )*
loop31:
do {
int alt31=2;
int LA31_0 = input.LA(1);
if ( ((LA31_0>=MUL && LA31_0<=MOD)||LA31_0==DIV) ) {
alt31=1;
}
switch (alt31) {
case 1 :
// JS.g:1172:22: ( MUL | DIV | MOD ) unaryExpression
{
set133=(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(set133), root_0);
errorRecovery=false;
}
else {
MismatchedSetException mse =
new MismatchedSetException(null,input);
recoverFromMismatchedSet(input,mse,FOLLOW_set_in_multiplicativeExpression4918); throw mse;
}
pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression4933);
unaryExpression134=unaryExpression();
_fsp--;
adaptor.addChild(root_0, unaryExpression134.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1179: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 set136=null;
multiplicativeExpression_return multiplicativeExpression135 = null;
multiplicativeExpression_return multiplicativeExpression137 = null;
Object set136_tree=null;
try {
// JS.g:1180:2: ( multiplicativeExpression ( ( ADD | SUB ) multiplicativeExpression )* )
// JS.g:1180:4: multiplicativeExpression ( ( ADD | SUB ) multiplicativeExpression )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression4951);
multiplicativeExpression135=multiplicativeExpression();
_fsp--;
adaptor.addChild(root_0, multiplicativeExpression135.getTree());
// JS.g:1180:29: ( ( ADD | SUB ) multiplicativeExpression )*
loop32:
do {
int alt32=2;
int LA32_0 = input.LA(1);
if ( ((LA32_0>=ADD && LA32_0<=SUB)) ) {
alt32=1;
}
switch (alt32) {
case 1 :
// JS.g:1180:31: ( ADD | SUB ) multiplicativeExpression
{
set136=(Token)input.LT(1);
if ( (input.LA(1)>=ADD && input.LA(1)<=SUB) ) {
input.consume();
root_0 = (Object)adaptor.becomeRoot(adaptor.create(set136), root_0);
errorRecovery=false;
}
else {
MismatchedSetException mse =
new MismatchedSetException(null,input);
recoverFromMismatchedSet(input,mse,FOLLOW_set_in_additiveExpression4955); throw mse;
}
pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression4966);
multiplicativeExpression137=multiplicativeExpression();
_fsp--;
adaptor.addChild(root_0, multiplicativeExpression137.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1187: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 set139=null;
additiveExpression_return additiveExpression138 = null;
additiveExpression_return additiveExpression140 = null;
Object set139_tree=null;
try {
// JS.g:1188:2: ( additiveExpression ( ( SHL | SHR | SHU ) additiveExpression )* )
// JS.g:1188:4: additiveExpression ( ( SHL | SHR | SHU ) additiveExpression )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_additiveExpression_in_shiftExpression4985);
additiveExpression138=additiveExpression();
_fsp--;
adaptor.addChild(root_0, additiveExpression138.getTree());
// JS.g:1188:23: ( ( SHL | SHR | SHU ) additiveExpression )*
loop33:
do {
int alt33=2;
int LA33_0 = input.LA(1);
if ( ((LA33_0>=SHL && LA33_0<=SHU)) ) {
alt33=1;
}
switch (alt33) {
case 1 :
// JS.g:1188:25: ( SHL | SHR | SHU ) additiveExpression
{
set139=(Token)input.LT(1);
if ( (input.LA(1)>=SHL && input.LA(1)<=SHU) ) {
input.consume();
root_0 = (Object)adaptor.becomeRoot(adaptor.create(set139), root_0);
errorRecovery=false;
}
else {
MismatchedSetException mse =
new MismatchedSetException(null,input);
recoverFromMismatchedSet(input,mse,FOLLOW_set_in_shiftExpression4989); throw mse;
}
pushFollow(FOLLOW_additiveExpression_in_shiftExpression5004);
additiveExpression140=additiveExpression();
_fsp--;
adaptor.addChild(root_0, additiveExpression140.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1195: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 set142=null;
shiftExpression_return shiftExpression141 = null;
shiftExpression_return shiftExpression143 = null;
Object set142_tree=null;
try {
// JS.g:1196:2: ( shiftExpression ( ( LT | GT | LTE | GTE | INSTANCEOF | IN ) shiftExpression )* )
// JS.g:1196:4: shiftExpression ( ( LT | GT | LTE | GTE | INSTANCEOF | IN ) shiftExpression )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_shiftExpression_in_relationalExpression5023);
shiftExpression141=shiftExpression();
_fsp--;
adaptor.addChild(root_0, shiftExpression141.getTree());
// JS.g:1196:20: ( ( LT | GT | LTE | GTE | INSTANCEOF | IN ) shiftExpression )*
loop34:
do {
int alt34=2;
int LA34_0 = input.LA(1);
if ( ((LA34_0>=IN && LA34_0<=INSTANCEOF)||(LA34_0>=LT && LA34_0<=GTE)) ) {
alt34=1;
}
switch (alt34) {
case 1 :
// JS.g:1196:22: ( LT | GT | LTE | GTE | INSTANCEOF | IN ) shiftExpression
{
set142=(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(set142), root_0);
errorRecovery=false;
}
else {
MismatchedSetException mse =
new MismatchedSetException(null,input);
recoverFromMismatchedSet(input,mse,FOLLOW_set_in_relationalExpression5027); throw mse;
}
pushFollow(FOLLOW_shiftExpression_in_relationalExpression5054);
shiftExpression143=shiftExpression();
_fsp--;
adaptor.addChild(root_0, shiftExpression143.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1199: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 set145=null;
shiftExpression_return shiftExpression144 = null;
shiftExpression_return shiftExpression146 = null;
Object set145_tree=null;
try {
// JS.g:1200:2: ( shiftExpression ( ( LT | GT | LTE | GTE | INSTANCEOF ) shiftExpression )* )
// JS.g:1200:4: shiftExpression ( ( LT | GT | LTE | GTE | INSTANCEOF ) shiftExpression )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_shiftExpression_in_relationalExpressionNoIn5068);
shiftExpression144=shiftExpression();
_fsp--;
adaptor.addChild(root_0, shiftExpression144.getTree());
// JS.g:1200:20: ( ( LT | GT | LTE | GTE | INSTANCEOF ) shiftExpression )*
loop35:
do {
int alt35=2;
int LA35_0 = input.LA(1);
if ( (LA35_0==INSTANCEOF||(LA35_0>=LT && LA35_0<=GTE)) ) {
alt35=1;
}
switch (alt35) {
case 1 :
// JS.g:1200:22: ( LT | GT | LTE | GTE | INSTANCEOF ) shiftExpression
{
set145=(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(set145), root_0);
errorRecovery=false;
}
else {
MismatchedSetException mse =
new MismatchedSetException(null,input);
recoverFromMismatchedSet(input,mse,FOLLOW_set_in_relationalExpressionNoIn5072); throw mse;
}
pushFollow(FOLLOW_shiftExpression_in_relationalExpressionNoIn5095);
shiftExpression146=shiftExpression();
_fsp--;
adaptor.addChild(root_0, shiftExpression146.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1207: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 set148=null;
relationalExpression_return relationalExpression147 = null;
relationalExpression_return relationalExpression149 = null;
Object set148_tree=null;
try {
// JS.g:1208:2: ( relationalExpression ( ( EQ | NEQ | SAME | NSAME ) relationalExpression )* )
// JS.g:1208:4: relationalExpression ( ( EQ | NEQ | SAME | NSAME ) relationalExpression )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_relationalExpression_in_equalityExpression5114);
relationalExpression147=relationalExpression();
_fsp--;
adaptor.addChild(root_0, relationalExpression147.getTree());
// JS.g:1208:25: ( ( EQ | NEQ | SAME | NSAME ) relationalExpression )*
loop36:
do {
int alt36=2;
int LA36_0 = input.LA(1);
if ( ((LA36_0>=EQ && LA36_0<=NSAME)) ) {
alt36=1;
}
switch (alt36) {
case 1 :
// JS.g:1208:27: ( EQ | NEQ | SAME | NSAME ) relationalExpression
{
set148=(Token)input.LT(1);
if ( (input.LA(1)>=EQ && input.LA(1)<=NSAME) ) {
input.consume();
root_0 = (Object)adaptor.becomeRoot(adaptor.create(set148), root_0);
errorRecovery=false;
}
else {
MismatchedSetException mse =
new MismatchedSetException(null,input);
recoverFromMismatchedSet(input,mse,FOLLOW_set_in_equalityExpression5118); throw mse;
}
pushFollow(FOLLOW_relationalExpression_in_equalityExpression5137);
relationalExpression149=relationalExpression();
_fsp--;
adaptor.addChild(root_0, relationalExpression149.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1211: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 set151=null;
relationalExpressionNoIn_return relationalExpressionNoIn150 = null;
relationalExpressionNoIn_return relationalExpressionNoIn152 = null;
Object set151_tree=null;
try {
// JS.g:1212:2: ( relationalExpressionNoIn ( ( EQ | NEQ | SAME | NSAME ) relationalExpressionNoIn )* )
// JS.g:1212:4: relationalExpressionNoIn ( ( EQ | NEQ | SAME | NSAME ) relationalExpressionNoIn )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_relationalExpressionNoIn_in_equalityExpressionNoIn5151);
relationalExpressionNoIn150=relationalExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, relationalExpressionNoIn150.getTree());
// JS.g:1212:29: ( ( EQ | NEQ | SAME | NSAME ) relationalExpressionNoIn )*
loop37:
do {
int alt37=2;
int LA37_0 = input.LA(1);
if ( ((LA37_0>=EQ && LA37_0<=NSAME)) ) {
alt37=1;
}
switch (alt37) {
case 1 :
// JS.g:1212:31: ( EQ | NEQ | SAME | NSAME ) relationalExpressionNoIn
{
set151=(Token)input.LT(1);
if ( (input.LA(1)>=EQ && input.LA(1)<=NSAME) ) {
input.consume();
root_0 = (Object)adaptor.becomeRoot(adaptor.create(set151), root_0);
errorRecovery=false;
}
else {
MismatchedSetException mse =
new MismatchedSetException(null,input);
recoverFromMismatchedSet(input,mse,FOLLOW_set_in_equalityExpressionNoIn5155); throw mse;
}
pushFollow(FOLLOW_relationalExpressionNoIn_in_equalityExpressionNoIn5174);
relationalExpressionNoIn152=relationalExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, relationalExpressionNoIn152.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1219: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 AND154=null;
equalityExpression_return equalityExpression153 = null;
equalityExpression_return equalityExpression155 = null;
Object AND154_tree=null;
try {
// JS.g:1220:2: ( equalityExpression ( AND equalityExpression )* )
// JS.g:1220:4: equalityExpression ( AND equalityExpression )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_equalityExpression_in_bitwiseANDExpression5194);
equalityExpression153=equalityExpression();
_fsp--;
adaptor.addChild(root_0, equalityExpression153.getTree());
// JS.g:1220:23: ( AND equalityExpression )*
loop38:
do {
int alt38=2;
int LA38_0 = input.LA(1);
if ( (LA38_0==AND) ) {
alt38=1;
}
switch (alt38) {
case 1 :
// JS.g:1220:25: AND equalityExpression
{
AND154=(Token)input.LT(1);
match(input,AND,FOLLOW_AND_in_bitwiseANDExpression5198);
AND154_tree = (Object)adaptor.create(AND154);
root_0 = (Object)adaptor.becomeRoot(AND154_tree, root_0);
pushFollow(FOLLOW_equalityExpression_in_bitwiseANDExpression5201);
equalityExpression155=equalityExpression();
_fsp--;
adaptor.addChild(root_0, equalityExpression155.getTree());
}
break;
default :
break loop38;
}
} 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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1223: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 AND157=null;
equalityExpressionNoIn_return equalityExpressionNoIn156 = null;
equalityExpressionNoIn_return equalityExpressionNoIn158 = null;
Object AND157_tree=null;
try {
// JS.g:1224:2: ( equalityExpressionNoIn ( AND equalityExpressionNoIn )* )
// JS.g:1224:4: equalityExpressionNoIn ( AND equalityExpressionNoIn )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_equalityExpressionNoIn_in_bitwiseANDExpressionNoIn5215);
equalityExpressionNoIn156=equalityExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, equalityExpressionNoIn156.getTree());
// JS.g:1224:27: ( AND equalityExpressionNoIn )*
loop39:
do {
int alt39=2;
int LA39_0 = input.LA(1);
if ( (LA39_0==AND) ) {
alt39=1;
}
switch (alt39) {
case 1 :
// JS.g:1224:29: AND equalityExpressionNoIn
{
AND157=(Token)input.LT(1);
match(input,AND,FOLLOW_AND_in_bitwiseANDExpressionNoIn5219);
AND157_tree = (Object)adaptor.create(AND157);
root_0 = (Object)adaptor.becomeRoot(AND157_tree, root_0);
pushFollow(FOLLOW_equalityExpressionNoIn_in_bitwiseANDExpressionNoIn5222);
equalityExpressionNoIn158=equalityExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, equalityExpressionNoIn158.getTree());
}
break;
default :
break loop39;
}
} 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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1227: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 XOR160=null;
bitwiseANDExpression_return bitwiseANDExpression159 = null;
bitwiseANDExpression_return bitwiseANDExpression161 = null;
Object XOR160_tree=null;
try {
// JS.g:1228:2: ( bitwiseANDExpression ( XOR bitwiseANDExpression )* )
// JS.g:1228:4: bitwiseANDExpression ( XOR bitwiseANDExpression )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_bitwiseANDExpression_in_bitwiseXORExpression5238);
bitwiseANDExpression159=bitwiseANDExpression();
_fsp--;
adaptor.addChild(root_0, bitwiseANDExpression159.getTree());
// JS.g:1228:25: ( XOR bitwiseANDExpression )*
loop40:
do {
int alt40=2;
int LA40_0 = input.LA(1);
if ( (LA40_0==XOR) ) {
alt40=1;
}
switch (alt40) {
case 1 :
// JS.g:1228:27: XOR bitwiseANDExpression
{
XOR160=(Token)input.LT(1);
match(input,XOR,FOLLOW_XOR_in_bitwiseXORExpression5242);
XOR160_tree = (Object)adaptor.create(XOR160);
root_0 = (Object)adaptor.becomeRoot(XOR160_tree, root_0);
pushFollow(FOLLOW_bitwiseANDExpression_in_bitwiseXORExpression5245);
bitwiseANDExpression161=bitwiseANDExpression();
_fsp--;
adaptor.addChild(root_0, bitwiseANDExpression161.getTree());
}
break;
default :
break loop40;
}
} 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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1231: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 XOR163=null;
bitwiseANDExpressionNoIn_return bitwiseANDExpressionNoIn162 = null;
bitwiseANDExpressionNoIn_return bitwiseANDExpressionNoIn164 = null;
Object XOR163_tree=null;
try {
// JS.g:1232:2: ( bitwiseANDExpressionNoIn ( XOR bitwiseANDExpressionNoIn )* )
// JS.g:1232:4: bitwiseANDExpressionNoIn ( XOR bitwiseANDExpressionNoIn )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_bitwiseANDExpressionNoIn_in_bitwiseXORExpressionNoIn5261);
bitwiseANDExpressionNoIn162=bitwiseANDExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, bitwiseANDExpressionNoIn162.getTree());
// JS.g:1232:29: ( XOR bitwiseANDExpressionNoIn )*
loop41:
do {
int alt41=2;
int LA41_0 = input.LA(1);
if ( (LA41_0==XOR) ) {
alt41=1;
}
switch (alt41) {
case 1 :
// JS.g:1232:31: XOR bitwiseANDExpressionNoIn
{
XOR163=(Token)input.LT(1);
match(input,XOR,FOLLOW_XOR_in_bitwiseXORExpressionNoIn5265);
XOR163_tree = (Object)adaptor.create(XOR163);
root_0 = (Object)adaptor.becomeRoot(XOR163_tree, root_0);
pushFollow(FOLLOW_bitwiseANDExpressionNoIn_in_bitwiseXORExpressionNoIn5268);
bitwiseANDExpressionNoIn164=bitwiseANDExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, bitwiseANDExpressionNoIn164.getTree());
}
break;
default :
break loop41;
}
} 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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1235: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 OR166=null;
bitwiseXORExpression_return bitwiseXORExpression165 = null;
bitwiseXORExpression_return bitwiseXORExpression167 = null;
Object OR166_tree=null;
try {
// JS.g:1236:2: ( bitwiseXORExpression ( OR bitwiseXORExpression )* )
// JS.g:1236:4: bitwiseXORExpression ( OR bitwiseXORExpression )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_bitwiseXORExpression_in_bitwiseORExpression5283);
bitwiseXORExpression165=bitwiseXORExpression();
_fsp--;
adaptor.addChild(root_0, bitwiseXORExpression165.getTree());
// JS.g:1236:25: ( OR bitwiseXORExpression )*
loop42:
do {
int alt42=2;
int LA42_0 = input.LA(1);
if ( (LA42_0==OR) ) {
alt42=1;
}
switch (alt42) {
case 1 :
// JS.g:1236:27: OR bitwiseXORExpression
{
OR166=(Token)input.LT(1);
match(input,OR,FOLLOW_OR_in_bitwiseORExpression5287);
OR166_tree = (Object)adaptor.create(OR166);
root_0 = (Object)adaptor.becomeRoot(OR166_tree, root_0);
pushFollow(FOLLOW_bitwiseXORExpression_in_bitwiseORExpression5290);
bitwiseXORExpression167=bitwiseXORExpression();
_fsp--;
adaptor.addChild(root_0, bitwiseXORExpression167.getTree());
}
break;
default :
break loop42;
}
} 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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1239: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 OR169=null;
bitwiseXORExpressionNoIn_return bitwiseXORExpressionNoIn168 = null;
bitwiseXORExpressionNoIn_return bitwiseXORExpressionNoIn170 = null;
Object OR169_tree=null;
try {
// JS.g:1240:2: ( bitwiseXORExpressionNoIn ( OR bitwiseXORExpressionNoIn )* )
// JS.g:1240:4: bitwiseXORExpressionNoIn ( OR bitwiseXORExpressionNoIn )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_bitwiseXORExpressionNoIn_in_bitwiseORExpressionNoIn5305);
bitwiseXORExpressionNoIn168=bitwiseXORExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, bitwiseXORExpressionNoIn168.getTree());
// JS.g:1240:29: ( OR bitwiseXORExpressionNoIn )*
loop43:
do {
int alt43=2;
int LA43_0 = input.LA(1);
if ( (LA43_0==OR) ) {
alt43=1;
}
switch (alt43) {
case 1 :
// JS.g:1240:31: OR bitwiseXORExpressionNoIn
{
OR169=(Token)input.LT(1);
match(input,OR,FOLLOW_OR_in_bitwiseORExpressionNoIn5309);
OR169_tree = (Object)adaptor.create(OR169);
root_0 = (Object)adaptor.becomeRoot(OR169_tree, root_0);
pushFollow(FOLLOW_bitwiseXORExpressionNoIn_in_bitwiseORExpressionNoIn5312);
bitwiseXORExpressionNoIn170=bitwiseXORExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, bitwiseXORExpressionNoIn170.getTree());
}
break;
default :
break loop43;
}
} 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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1247: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 LAND172=null;
bitwiseORExpression_return bitwiseORExpression171 = null;
bitwiseORExpression_return bitwiseORExpression173 = null;
Object LAND172_tree=null;
try {
// JS.g:1248:2: ( bitwiseORExpression ( LAND bitwiseORExpression )* )
// JS.g:1248:4: bitwiseORExpression ( LAND bitwiseORExpression )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_bitwiseORExpression_in_logicalANDExpression5331);
bitwiseORExpression171=bitwiseORExpression();
_fsp--;
adaptor.addChild(root_0, bitwiseORExpression171.getTree());
// JS.g:1248:24: ( LAND bitwiseORExpression )*
loop44:
do {
int alt44=2;
int LA44_0 = input.LA(1);
if ( (LA44_0==LAND) ) {
alt44=1;
}
switch (alt44) {
case 1 :
// JS.g:1248:26: LAND bitwiseORExpression
{
LAND172=(Token)input.LT(1);
match(input,LAND,FOLLOW_LAND_in_logicalANDExpression5335);
LAND172_tree = (Object)adaptor.create(LAND172);
root_0 = (Object)adaptor.becomeRoot(LAND172_tree, root_0);
pushFollow(FOLLOW_bitwiseORExpression_in_logicalANDExpression5338);
bitwiseORExpression173=bitwiseORExpression();
_fsp--;
adaptor.addChild(root_0, bitwiseORExpression173.getTree());
}
break;
default :
break loop44;
}
} 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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1251: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 LAND175=null;
bitwiseORExpressionNoIn_return bitwiseORExpressionNoIn174 = null;
bitwiseORExpressionNoIn_return bitwiseORExpressionNoIn176 = null;
Object LAND175_tree=null;
try {
// JS.g:1252:2: ( bitwiseORExpressionNoIn ( LAND bitwiseORExpressionNoIn )* )
// JS.g:1252:4: bitwiseORExpressionNoIn ( LAND bitwiseORExpressionNoIn )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_bitwiseORExpressionNoIn_in_logicalANDExpressionNoIn5352);
bitwiseORExpressionNoIn174=bitwiseORExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, bitwiseORExpressionNoIn174.getTree());
// JS.g:1252:28: ( LAND bitwiseORExpressionNoIn )*
loop45:
do {
int alt45=2;
int LA45_0 = input.LA(1);
if ( (LA45_0==LAND) ) {
alt45=1;
}
switch (alt45) {
case 1 :
// JS.g:1252:30: LAND bitwiseORExpressionNoIn
{
LAND175=(Token)input.LT(1);
match(input,LAND,FOLLOW_LAND_in_logicalANDExpressionNoIn5356);
LAND175_tree = (Object)adaptor.create(LAND175);
root_0 = (Object)adaptor.becomeRoot(LAND175_tree, root_0);
pushFollow(FOLLOW_bitwiseORExpressionNoIn_in_logicalANDExpressionNoIn5359);
bitwiseORExpressionNoIn176=bitwiseORExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, bitwiseORExpressionNoIn176.getTree());
}
break;
default :
break loop45;
}
} 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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1255: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 LOR178=null;
logicalANDExpression_return logicalANDExpression177 = null;
logicalANDExpression_return logicalANDExpression179 = null;
Object LOR178_tree=null;
try {
// JS.g:1256:2: ( logicalANDExpression ( LOR logicalANDExpression )* )
// JS.g:1256:4: logicalANDExpression ( LOR logicalANDExpression )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_logicalANDExpression_in_logicalORExpression5374);
logicalANDExpression177=logicalANDExpression();
_fsp--;
adaptor.addChild(root_0, logicalANDExpression177.getTree());
// JS.g:1256:25: ( LOR logicalANDExpression )*
loop46:
do {
int alt46=2;
int LA46_0 = input.LA(1);
if ( (LA46_0==LOR) ) {
alt46=1;
}
switch (alt46) {
case 1 :
// JS.g:1256:27: LOR logicalANDExpression
{
LOR178=(Token)input.LT(1);
match(input,LOR,FOLLOW_LOR_in_logicalORExpression5378);
LOR178_tree = (Object)adaptor.create(LOR178);
root_0 = (Object)adaptor.becomeRoot(LOR178_tree, root_0);
pushFollow(FOLLOW_logicalANDExpression_in_logicalORExpression5381);
logicalANDExpression179=logicalANDExpression();
_fsp--;
adaptor.addChild(root_0, logicalANDExpression179.getTree());
}
break;
default :
break loop46;
}
} 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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1259: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 LOR181=null;
logicalANDExpressionNoIn_return logicalANDExpressionNoIn180 = null;
logicalANDExpressionNoIn_return logicalANDExpressionNoIn182 = null;
Object LOR181_tree=null;
try {
// JS.g:1260:2: ( logicalANDExpressionNoIn ( LOR logicalANDExpressionNoIn )* )
// JS.g:1260:4: logicalANDExpressionNoIn ( LOR logicalANDExpressionNoIn )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_logicalANDExpressionNoIn_in_logicalORExpressionNoIn5396);
logicalANDExpressionNoIn180=logicalANDExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, logicalANDExpressionNoIn180.getTree());
// JS.g:1260:29: ( LOR logicalANDExpressionNoIn )*
loop47:
do {
int alt47=2;
int LA47_0 = input.LA(1);
if ( (LA47_0==LOR) ) {
alt47=1;
}
switch (alt47) {
case 1 :
// JS.g:1260:31: LOR logicalANDExpressionNoIn
{
LOR181=(Token)input.LT(1);
match(input,LOR,FOLLOW_LOR_in_logicalORExpressionNoIn5400);
LOR181_tree = (Object)adaptor.create(LOR181);
root_0 = (Object)adaptor.becomeRoot(LOR181_tree, root_0);
pushFollow(FOLLOW_logicalANDExpressionNoIn_in_logicalORExpressionNoIn5403);
logicalANDExpressionNoIn182=logicalANDExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, logicalANDExpressionNoIn182.getTree());
}
break;
default :
break loop47;
}
} 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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1267: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 QUE184=null;
Token COLON186=null;
logicalORExpression_return logicalORExpression183 = null;
assignmentExpression_return assignmentExpression185 = null;
assignmentExpression_return assignmentExpression187 = null;
Object QUE184_tree=null;
Object COLON186_tree=null;
try {
// JS.g:1268:2: ( logicalORExpression ( QUE assignmentExpression COLON assignmentExpression )? )
// JS.g:1268:4: logicalORExpression ( QUE assignmentExpression COLON assignmentExpression )?
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_logicalORExpression_in_conditionalExpression5422);
logicalORExpression183=logicalORExpression();
_fsp--;
adaptor.addChild(root_0, logicalORExpression183.getTree());
// JS.g:1268:24: ( QUE assignmentExpression COLON assignmentExpression )?
int alt48=2;
int LA48_0 = input.LA(1);
if ( (LA48_0==QUE) ) {
alt48=1;
}
switch (alt48) {
case 1 :
// JS.g:1268:26: QUE assignmentExpression COLON assignmentExpression
{
QUE184=(Token)input.LT(1);
match(input,QUE,FOLLOW_QUE_in_conditionalExpression5426);
QUE184_tree = (Object)adaptor.create(QUE184);
root_0 = (Object)adaptor.becomeRoot(QUE184_tree, root_0);
pushFollow(FOLLOW_assignmentExpression_in_conditionalExpression5429);
assignmentExpression185=assignmentExpression();
_fsp--;
adaptor.addChild(root_0, assignmentExpression185.getTree());
COLON186=(Token)input.LT(1);
match(input,COLON,FOLLOW_COLON_in_conditionalExpression5431);
pushFollow(FOLLOW_assignmentExpression_in_conditionalExpression5434);
assignmentExpression187=assignmentExpression();
_fsp--;
adaptor.addChild(root_0, assignmentExpression187.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1271: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 QUE189=null;
Token COLON191=null;
logicalORExpressionNoIn_return logicalORExpressionNoIn188 = null;
assignmentExpressionNoIn_return assignmentExpressionNoIn190 = null;
assignmentExpressionNoIn_return assignmentExpressionNoIn192 = null;
Object QUE189_tree=null;
Object COLON191_tree=null;
try {
// JS.g:1272:2: ( logicalORExpressionNoIn ( QUE assignmentExpressionNoIn COLON assignmentExpressionNoIn )? )
// JS.g:1272:4: logicalORExpressionNoIn ( QUE assignmentExpressionNoIn COLON assignmentExpressionNoIn )?
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_logicalORExpressionNoIn_in_conditionalExpressionNoIn5448);
logicalORExpressionNoIn188=logicalORExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, logicalORExpressionNoIn188.getTree());
// JS.g:1272:28: ( QUE assignmentExpressionNoIn COLON assignmentExpressionNoIn )?
int alt49=2;
int LA49_0 = input.LA(1);
if ( (LA49_0==QUE) ) {
alt49=1;
}
switch (alt49) {
case 1 :
// JS.g:1272:30: QUE assignmentExpressionNoIn COLON assignmentExpressionNoIn
{
QUE189=(Token)input.LT(1);
match(input,QUE,FOLLOW_QUE_in_conditionalExpressionNoIn5452);
QUE189_tree = (Object)adaptor.create(QUE189);
root_0 = (Object)adaptor.becomeRoot(QUE189_tree, root_0);
pushFollow(FOLLOW_assignmentExpressionNoIn_in_conditionalExpressionNoIn5455);
assignmentExpressionNoIn190=assignmentExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, assignmentExpressionNoIn190.getTree());
COLON191=(Token)input.LT(1);
match(input,COLON,FOLLOW_COLON_in_conditionalExpressionNoIn5457);
pushFollow(FOLLOW_assignmentExpressionNoIn_in_conditionalExpressionNoIn5460);
assignmentExpressionNoIn192=assignmentExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, assignmentExpressionNoIn192.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1301: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 assignmentOperator193 = null;
assignmentExpression_return assignmentExpression194 = null;
Object[] isLhs = new Object[1];
try {
// JS.g:1306:2: (lhs= conditionalExpression ({...}? assignmentOperator assignmentExpression )? )
// JS.g:1306:4: lhs= conditionalExpression ({...}? assignmentOperator assignmentExpression )?
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_conditionalExpression_in_assignmentExpression5488);
lhs=conditionalExpression();
_fsp--;
adaptor.addChild(root_0, lhs.getTree());
// JS.g:1307:2: ({...}? assignmentOperator assignmentExpression )?
int alt50=2;
int LA50_0 = input.LA(1);
if ( ((LA50_0>=ASSIGN && LA50_0<=XORASS)||LA50_0==DIVASS) ) {
int LA50_1 = input.LA(2);
if ( ( isLeftHandSideAssign(lhs, isLhs) ) ) {
alt50=1;
}
}
switch (alt50) {
case 1 :
// JS.g:1307:4: {...}? assignmentOperator assignmentExpression
{
if ( !( isLeftHandSideAssign(lhs, isLhs) ) ) {
throw new FailedPredicateException(input, "assignmentExpression", " isLeftHandSideAssign(lhs, isLhs) ");
}
pushFollow(FOLLOW_assignmentOperator_in_assignmentExpression5495);
assignmentOperator193=assignmentOperator();
_fsp--;
root_0 = (Object)adaptor.becomeRoot(assignmentOperator193.getTree(), root_0);
pushFollow(FOLLOW_assignmentExpression_in_assignmentExpression5498);
assignmentExpression194=assignmentExpression();
_fsp--;
adaptor.addChild(root_0, assignmentExpression194.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1310: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 set195=null;
Object set195_tree=null;
try {
// JS.g:1311:3: ( ASSIGN | MULASS | DIVASS | MODASS | ADDASS | SUBASS | SHLASS | SHRASS | SHUASS | ANDASS | XORASS | ORASS )
// JS.g:
{
root_0 = (Object)adaptor.nil();
set195=(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(set195));
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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1314: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 assignmentOperator196 = null;
assignmentExpressionNoIn_return assignmentExpressionNoIn197 = null;
Object[] isLhs = new Object[1];
try {
// JS.g:1319:2: (lhs= conditionalExpressionNoIn ({...}? assignmentOperator assignmentExpressionNoIn )? )
// JS.g:1319:4: lhs= conditionalExpressionNoIn ({...}? assignmentOperator assignmentExpressionNoIn )?
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_conditionalExpressionNoIn_in_assignmentExpressionNoIn5576);
lhs=conditionalExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, lhs.getTree());
// JS.g:1320:2: ({...}? assignmentOperator assignmentExpressionNoIn )?
int alt51=2;
int LA51_0 = input.LA(1);
if ( ((LA51_0>=ASSIGN && LA51_0<=XORASS)||LA51_0==DIVASS) ) {
int LA51_1 = input.LA(2);
if ( ( isLeftHandSideAssign(lhs, isLhs) ) ) {
alt51=1;
}
}
switch (alt51) {
case 1 :
// JS.g:1320:4: {...}? assignmentOperator assignmentExpressionNoIn
{
if ( !( isLeftHandSideAssign(lhs, isLhs) ) ) {
throw new FailedPredicateException(input, "assignmentExpressionNoIn", " isLeftHandSideAssign(lhs, isLhs) ");
}
pushFollow(FOLLOW_assignmentOperator_in_assignmentExpressionNoIn5583);
assignmentOperator196=assignmentOperator();
_fsp--;
root_0 = (Object)adaptor.becomeRoot(assignmentOperator196.getTree(), root_0);
pushFollow(FOLLOW_assignmentExpressionNoIn_in_assignmentExpressionNoIn5586);
assignmentExpressionNoIn197=assignmentExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, assignmentExpressionNoIn197.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1327: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 COMMA198=null;
List list_exprs=null;
RuleReturnScope exprs = null;
Object COMMA198_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_assignmentExpression=new RewriteRuleSubtreeStream(adaptor,"rule assignmentExpression");
try {
// JS.g:1328:2: (exprs+= assignmentExpression ( COMMA exprs+= assignmentExpression )* -> { $exprs.size() > 1 }? ^( CEXPR ( $exprs)+ ) -> $exprs)
// JS.g:1328:4: exprs+= assignmentExpression ( COMMA exprs+= assignmentExpression )*
{
pushFollow(FOLLOW_assignmentExpression_in_expression5608);
exprs=assignmentExpression();
_fsp--;
stream_assignmentExpression.add(exprs.getTree());
if (list_exprs==null) list_exprs=new ArrayList();
list_exprs.add(exprs);
// JS.g:1328:32: ( COMMA exprs+= assignmentExpression )*
loop52:
do {
int alt52=2;
int LA52_0 = input.LA(1);
if ( (LA52_0==COMMA) ) {
alt52=1;
}
switch (alt52) {
case 1 :
// JS.g:1328:34: COMMA exprs+= assignmentExpression
{
COMMA198=(Token)input.LT(1);
match(input,COMMA,FOLLOW_COMMA_in_expression5612);
stream_COMMA.add(COMMA198);
pushFollow(FOLLOW_assignmentExpression_in_expression5616);
exprs=assignmentExpression();
_fsp--;
stream_assignmentExpression.add(exprs.getTree());
if (list_exprs==null) list_exprs=new ArrayList();
list_exprs.add(exprs);
}
break;
default :
break loop52;
}
} 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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1333: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 COMMA199=null;
List list_exprs=null;
RuleReturnScope exprs = null;
Object COMMA199_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_assignmentExpressionNoIn=new RewriteRuleSubtreeStream(adaptor,"rule assignmentExpressionNoIn");
try {
// JS.g:1334:2: (exprs+= assignmentExpressionNoIn ( COMMA exprs+= assignmentExpressionNoIn )* -> { $exprs.size() > 1 }? ^( CEXPR ( $exprs)+ ) -> $exprs)
// JS.g:1334:4: exprs+= assignmentExpressionNoIn ( COMMA exprs+= assignmentExpressionNoIn )*
{
pushFollow(FOLLOW_assignmentExpressionNoIn_in_expressionNoIn5653);
exprs=assignmentExpressionNoIn();
_fsp--;
stream_assignmentExpressionNoIn.add(exprs.getTree());
if (list_exprs==null) list_exprs=new ArrayList();
list_exprs.add(exprs);
// JS.g:1334:36: ( COMMA exprs+= assignmentExpressionNoIn )*
loop53:
do {
int alt53=2;
int LA53_0 = input.LA(1);
if ( (LA53_0==COMMA) ) {
alt53=1;
}
switch (alt53) {
case 1 :
// JS.g:1334:38: COMMA exprs+= assignmentExpressionNoIn
{
COMMA199=(Token)input.LT(1);
match(input,COMMA,FOLLOW_COMMA_in_expressionNoIn5657);
stream_COMMA.add(COMMA199);
pushFollow(FOLLOW_assignmentExpressionNoIn_in_expressionNoIn5661);
exprs=assignmentExpressionNoIn();
_fsp--;
stream_assignmentExpressionNoIn.add(exprs.getTree());
if (list_exprs==null) list_exprs=new ArrayList();
list_exprs.add(exprs);
}
break;
default :
break loop53;
}
} 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();
// 1335:2: -> { $exprs.size() > 1 }? ^( CEXPR ( $exprs)+ )
if ( list_exprs.size() > 1 ) {
// JS.g:1335: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 // 1336: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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1361: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 SEMIC200=null;
Token EOF201=null;
Token RBRACE202=null;
Token EOL203=null;
Token MultiLineComment204=null;
Object SEMIC200_tree=null;
Object EOF201_tree=null;
Object RBRACE202_tree=null;
Object EOL203_tree=null;
Object MultiLineComment204_tree=null;
// Mark current position so we can unconsume a RBRACE.
int marker = input.mark();
// Promote EOL if appropriate
promoteEOL(retval);
try {
// JS.g:1369:2: ( SEMIC | EOF | RBRACE | EOL | MultiLineComment )
int alt54=5;
switch ( input.LA(1) ) {
case SEMIC:
{
alt54=1;
}
break;
case EOF:
{
alt54=2;
}
break;
case RBRACE:
{
alt54=3;
}
break;
case EOL:
{
alt54=4;
}
break;
case MultiLineComment:
{
alt54=5;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("1361:1: semic : ( SEMIC | EOF | RBRACE | EOL | MultiLineComment );", 54, 0, input);
throw nvae;
}
switch (alt54) {
case 1 :
// JS.g:1369:4: SEMIC
{
root_0 = (Object)adaptor.nil();
SEMIC200=(Token)input.LT(1);
match(input,SEMIC,FOLLOW_SEMIC_in_semic5712);
SEMIC200_tree = (Object)adaptor.create(SEMIC200);
adaptor.addChild(root_0, SEMIC200_tree);
}
break;
case 2 :
// JS.g:1370:4: EOF
{
root_0 = (Object)adaptor.nil();
EOF201=(Token)input.LT(1);
match(input,EOF,FOLLOW_EOF_in_semic5717);
EOF201_tree = (Object)adaptor.create(EOF201);
adaptor.addChild(root_0, EOF201_tree);
}
break;
case 3 :
// JS.g:1371:4: RBRACE
{
root_0 = (Object)adaptor.nil();
RBRACE202=(Token)input.LT(1);
match(input,RBRACE,FOLLOW_RBRACE_in_semic5722);
RBRACE202_tree = (Object)adaptor.create(RBRACE202);
adaptor.addChild(root_0, RBRACE202_tree);
input.rewind(marker);
}
break;
case 4 :
// JS.g:1372:4: EOL
{
root_0 = (Object)adaptor.nil();
EOL203=(Token)input.LT(1);
match(input,EOL,FOLLOW_EOL_in_semic5729);
EOL203_tree = (Object)adaptor.create(EOL203);
adaptor.addChild(root_0, EOL203_tree);
}
break;
case 5 :
// JS.g:1372:10: MultiLineComment
{
root_0 = (Object)adaptor.nil();
MultiLineComment204=(Token)input.LT(1);
match(input,MultiLineComment,FOLLOW_MultiLineComment_in_semic5733);
MultiLineComment204_tree = (Object)adaptor.create(MultiLineComment204);
adaptor.addChild(root_0, MultiLineComment204_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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1380: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 block205 = null;
statementTail_return statementTail206 = null;
try {
// JS.g:1385:2: ({...}? block | statementTail )
int alt55=2;
int LA55_0 = input.LA(1);
if ( (LA55_0==LBRACE) ) {
int LA55_1 = input.LA(2);
if ( ( input.LA(1) == LBRACE ) ) {
alt55=1;
}
else if ( (true) ) {
alt55=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("1380:1: statement options {k=1; } : ({...}? block | statementTail );", 55, 1, input);
throw nvae;
}
}
else if ( ((LA55_0>=NULL && LA55_0<=FALSE)||LA55_0==EACH||LA55_0==THIS||LA55_0==VAR||(LA55_0>=GET && LA55_0<=SET)||(LA55_0>=WXML && LA55_0<=CLASS)||(LA55_0>=DEBUGGER && LA55_0<=VOLATILE)||LA55_0==SEMIC||LA55_0==AT||LA55_0==StringLiteral||(LA55_0>=Identifier && LA55_0<=RegularExpressionLiteral)||(LA55_0>=DecimalLiteral && LA55_0<=HexIntegerLiteral)) ) {
alt55=2;
}
else if ( ((LA55_0>=XMLFragment && LA55_0<=XMLFragmentEnd)) && ( isXmlEnabled() )) {
alt55=2;
}
else if ( (LA55_0==BREAK||LA55_0==CONTINUE||(LA55_0>=DELETE && LA55_0<=DO)||LA55_0==FOR||(LA55_0>=FUNCTION && LA55_0<=IF)||(LA55_0>=NEW && LA55_0<=SWITCH)||(LA55_0>=THROW && LA55_0<=TYPEOF)||(LA55_0>=VOID && LA55_0<=WITH)||LA55_0==YIELD||LA55_0==CONST||LA55_0==LPAREN||LA55_0==LBRACK||(LA55_0>=ADD && LA55_0<=SUB)||(LA55_0>=INC && LA55_0<=DEC)||(LA55_0>=NOT && LA55_0<=INV)) ) {
alt55=2;
}
else if ( (LA55_0==DEFAULT) && ( isXmlEnabled() )) {
alt55=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("1380:1: statement options {k=1; } : ({...}? block | statementTail );", 55, 0, input);
throw nvae;
}
switch (alt55) {
case 1 :
// JS.g:1385: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_statement5762);
block205=block();
_fsp--;
adaptor.addChild(root_0, block205.getTree());
}
break;
case 2 :
// JS.g:1386:4: statementTail
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_statementTail_in_statement5767);
statementTail206=statementTail();
_fsp--;
adaptor.addChild(root_0, statementTail206.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1389: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 variableStatement207 = null;
emptyStatement_return emptyStatement208 = null;
expressionStatement_return expressionStatement209 = null;
ifStatement_return ifStatement210 = null;
iterationStatement_return iterationStatement211 = null;
continueStatement_return continueStatement212 = null;
breakStatement_return breakStatement213 = null;
returnStatement_return returnStatement214 = null;
withStatement_return withStatement215 = null;
labelledStatement_return labelledStatement216 = null;
switchStatement_return switchStatement217 = null;
throwStatement_return throwStatement218 = null;
tryStatement_return tryStatement219 = null;
constStatement_return constStatement220 = null;
namespaceStatement_return namespaceStatement221 = null;
try {
// JS.g:1390:2: ( variableStatement | emptyStatement | expressionStatement | ifStatement | iterationStatement | continueStatement | breakStatement | returnStatement | withStatement | labelledStatement | switchStatement | throwStatement | tryStatement | constStatement | namespaceStatement )
int alt56=15;
int LA56_0 = input.LA(1);
if ( (LA56_0==VAR) ) {
alt56=1;
}
else if ( (LA56_0==SEMIC) ) {
alt56=2;
}
else if ( ((LA56_0>=NULL && LA56_0<=FALSE)||LA56_0==THIS||LA56_0==AT||LA56_0==StringLiteral||LA56_0==RegularExpressionLiteral||(LA56_0>=DecimalLiteral && LA56_0<=HexIntegerLiteral)) ) {
alt56=3;
}
else if ( (LA56_0==WXML) ) {
int LA56_4 = input.LA(2);
if ( (LA56_4==EOF||(LA56_4>=IN && LA56_4<=INSTANCEOF)||(LA56_4>=RBRACE && LA56_4<=LPAREN)||LA56_4==LBRACK||(LA56_4>=DOT && LA56_4<=XOR)||(LA56_4>=LAND && LA56_4<=QUE)||(LA56_4>=ASSIGN && LA56_4<=DIVASS)||(LA56_4>=DOTDOT && LA56_4<=COLONCOLON)||(LA56_4>=EOL && LA56_4<=MultiLineComment)) ) {
alt56=3;
}
else if ( (LA56_4==COLON) ) {
alt56=10;
}
else {
NoViableAltException nvae =
new NoViableAltException("1389:1: statementTail : ( variableStatement | emptyStatement | expressionStatement | ifStatement | iterationStatement | continueStatement | breakStatement | returnStatement | withStatement | labelledStatement | switchStatement | throwStatement | tryStatement | constStatement | namespaceStatement );", 56, 4, input);
throw nvae;
}
}
else if ( (LA56_0==GET) ) {
int LA56_5 = input.LA(2);
if ( (LA56_5==EOF||(LA56_5>=IN && LA56_5<=INSTANCEOF)||(LA56_5>=RBRACE && LA56_5<=LPAREN)||LA56_5==LBRACK||(LA56_5>=DOT && LA56_5<=XOR)||(LA56_5>=LAND && LA56_5<=QUE)||(LA56_5>=ASSIGN && LA56_5<=DIVASS)||(LA56_5>=DOTDOT && LA56_5<=COLONCOLON)||(LA56_5>=EOL && LA56_5<=MultiLineComment)) ) {
alt56=3;
}
else if ( (LA56_5==COLON) ) {
alt56=10;
}
else {
NoViableAltException nvae =
new NoViableAltException("1389:1: statementTail : ( variableStatement | emptyStatement | expressionStatement | ifStatement | iterationStatement | continueStatement | breakStatement | returnStatement | withStatement | labelledStatement | switchStatement | throwStatement | tryStatement | constStatement | namespaceStatement );", 56, 5, input);
throw nvae;
}
}
else if ( (LA56_0==SET) ) {
int LA56_6 = input.LA(2);
if ( (LA56_6==COLON) ) {
alt56=10;
}
else if ( (LA56_6==EOF||(LA56_6>=IN && LA56_6<=INSTANCEOF)||(LA56_6>=RBRACE && LA56_6<=LPAREN)||LA56_6==LBRACK||(LA56_6>=DOT && LA56_6<=XOR)||(LA56_6>=LAND && LA56_6<=QUE)||(LA56_6>=ASSIGN && LA56_6<=DIVASS)||(LA56_6>=DOTDOT && LA56_6<=COLONCOLON)||(LA56_6>=EOL && LA56_6<=MultiLineComment)) ) {
alt56=3;
}
else {
NoViableAltException nvae =
new NoViableAltException("1389:1: statementTail : ( variableStatement | emptyStatement | expressionStatement | ifStatement | iterationStatement | continueStatement | breakStatement | returnStatement | withStatement | labelledStatement | switchStatement | throwStatement | tryStatement | constStatement | namespaceStatement );", 56, 6, input);
throw nvae;
}
}
else if ( (LA56_0==EACH) ) {
int LA56_7 = input.LA(2);
if ( (LA56_7==COLON) ) {
alt56=10;
}
else if ( (LA56_7==EOF||(LA56_7>=IN && LA56_7<=INSTANCEOF)||(LA56_7>=RBRACE && LA56_7<=LPAREN)||LA56_7==LBRACK||(LA56_7>=DOT && LA56_7<=XOR)||(LA56_7>=LAND && LA56_7<=QUE)||(LA56_7>=ASSIGN && LA56_7<=DIVASS)||(LA56_7>=DOTDOT && LA56_7<=COLONCOLON)||(LA56_7>=EOL && LA56_7<=MultiLineComment)) ) {
alt56=3;
}
else {
NoViableAltException nvae =
new NoViableAltException("1389:1: statementTail : ( variableStatement | emptyStatement | expressionStatement | ifStatement | iterationStatement | continueStatement | breakStatement | returnStatement | withStatement | labelledStatement | switchStatement | throwStatement | tryStatement | constStatement | namespaceStatement );", 56, 7, input);
throw nvae;
}
}
else if ( (LA56_0==NAMESPACE) ) {
int LA56_8 = input.LA(2);
if ( (LA56_8==COLON) ) {
alt56=10;
}
else if ( (LA56_8==EOF||(LA56_8>=IN && LA56_8<=INSTANCEOF)||(LA56_8>=RBRACE && LA56_8<=LPAREN)||LA56_8==LBRACK||(LA56_8>=DOT && LA56_8<=XOR)||(LA56_8>=LAND && LA56_8<=QUE)||(LA56_8>=ASSIGN && LA56_8<=DIVASS)||(LA56_8>=DOTDOT && LA56_8<=COLONCOLON)||(LA56_8>=EOL && LA56_8<=MultiLineComment)) ) {
alt56=3;
}
else {
NoViableAltException nvae =
new NoViableAltException("1389:1: statementTail : ( variableStatement | emptyStatement | expressionStatement | ifStatement | iterationStatement | continueStatement | breakStatement | returnStatement | withStatement | labelledStatement | switchStatement | throwStatement | tryStatement | constStatement | namespaceStatement );", 56, 8, input);
throw nvae;
}
}
else if ( ((LA56_0>=ABSTRACT && LA56_0<=CLASS)||(LA56_0>=DEBUGGER && LA56_0<=VOLATILE)) ) {
int LA56_9 = input.LA(2);
if ( (LA56_9==COLON) ) {
alt56=10;
}
else if ( (LA56_9==EOF||(LA56_9>=IN && LA56_9<=INSTANCEOF)||(LA56_9>=RBRACE && LA56_9<=LPAREN)||LA56_9==LBRACK||(LA56_9>=DOT && LA56_9<=XOR)||(LA56_9>=LAND && LA56_9<=QUE)||(LA56_9>=ASSIGN && LA56_9<=DIVASS)||(LA56_9>=DOTDOT && LA56_9<=COLONCOLON)||(LA56_9>=EOL && LA56_9<=MultiLineComment)) ) {
alt56=3;
}
else {
NoViableAltException nvae =
new NoViableAltException("1389:1: statementTail : ( variableStatement | emptyStatement | expressionStatement | ifStatement | iterationStatement | continueStatement | breakStatement | returnStatement | withStatement | labelledStatement | switchStatement | throwStatement | tryStatement | constStatement | namespaceStatement );", 56, 9, input);
throw nvae;
}
}
else if ( (LA56_0==Identifier) ) {
int LA56_10 = input.LA(2);
if ( (LA56_10==EOF||(LA56_10>=IN && LA56_10<=INSTANCEOF)||(LA56_10>=RBRACE && LA56_10<=LPAREN)||LA56_10==LBRACK||(LA56_10>=DOT && LA56_10<=XOR)||(LA56_10>=LAND && LA56_10<=QUE)||(LA56_10>=ASSIGN && LA56_10<=DIVASS)||(LA56_10>=DOTDOT && LA56_10<=COLONCOLON)||(LA56_10>=EOL && LA56_10<=MultiLineComment)) ) {
alt56=3;
}
else if ( (LA56_10==COLON) ) {
alt56=10;
}
else {
NoViableAltException nvae =
new NoViableAltException("1389:1: statementTail : ( variableStatement | emptyStatement | expressionStatement | ifStatement | iterationStatement | continueStatement | breakStatement | returnStatement | withStatement | labelledStatement | switchStatement | throwStatement | tryStatement | constStatement | namespaceStatement );", 56, 10, input);
throw nvae;
}
}
else if ( ((LA56_0>=XMLFragment && LA56_0<=XMLFragmentEnd)) && ( isXmlEnabled() )) {
alt56=3;
}
else if ( (LA56_0==DELETE||LA56_0==FUNCTION||LA56_0==NEW||LA56_0==TYPEOF||LA56_0==VOID||LA56_0==YIELD||LA56_0==LBRACE||LA56_0==LPAREN||LA56_0==LBRACK||(LA56_0>=ADD && LA56_0<=SUB)||(LA56_0>=INC && LA56_0<=DEC)||(LA56_0>=NOT && LA56_0<=INV)) ) {
alt56=3;
}
else if ( (LA56_0==IF) ) {
alt56=4;
}
else if ( (LA56_0==DO||LA56_0==FOR||LA56_0==WHILE) ) {
alt56=5;
}
else if ( (LA56_0==CONTINUE) ) {
alt56=6;
}
else if ( (LA56_0==BREAK) ) {
alt56=7;
}
else if ( (LA56_0==RETURN) ) {
alt56=8;
}
else if ( (LA56_0==WITH) ) {
alt56=9;
}
else if ( (LA56_0==SWITCH) ) {
alt56=11;
}
else if ( (LA56_0==THROW) ) {
alt56=12;
}
else if ( (LA56_0==TRY) ) {
alt56=13;
}
else if ( (LA56_0==CONST) ) {
alt56=14;
}
else if ( (LA56_0==DEFAULT) && ( isXmlEnabled() )) {
alt56=15;
}
else {
NoViableAltException nvae =
new NoViableAltException("1389:1: statementTail : ( variableStatement | emptyStatement | expressionStatement | ifStatement | iterationStatement | continueStatement | breakStatement | returnStatement | withStatement | labelledStatement | switchStatement | throwStatement | tryStatement | constStatement | namespaceStatement );", 56, 0, input);
throw nvae;
}
switch (alt56) {
case 1 :
// JS.g:1390:4: variableStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_variableStatement_in_statementTail5779);
variableStatement207=variableStatement();
_fsp--;
adaptor.addChild(root_0, variableStatement207.getTree());
}
break;
case 2 :
// JS.g:1391:4: emptyStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_emptyStatement_in_statementTail5784);
emptyStatement208=emptyStatement();
_fsp--;
adaptor.addChild(root_0, emptyStatement208.getTree());
}
break;
case 3 :
// JS.g:1392:4: expressionStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_expressionStatement_in_statementTail5789);
expressionStatement209=expressionStatement();
_fsp--;
adaptor.addChild(root_0, expressionStatement209.getTree());
}
break;
case 4 :
// JS.g:1393:4: ifStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_ifStatement_in_statementTail5794);
ifStatement210=ifStatement();
_fsp--;
adaptor.addChild(root_0, ifStatement210.getTree());
}
break;
case 5 :
// JS.g:1394:4: iterationStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_iterationStatement_in_statementTail5799);
iterationStatement211=iterationStatement();
_fsp--;
adaptor.addChild(root_0, iterationStatement211.getTree());
}
break;
case 6 :
// JS.g:1395:4: continueStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_continueStatement_in_statementTail5804);
continueStatement212=continueStatement();
_fsp--;
adaptor.addChild(root_0, continueStatement212.getTree());
}
break;
case 7 :
// JS.g:1396:4: breakStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_breakStatement_in_statementTail5809);
breakStatement213=breakStatement();
_fsp--;
adaptor.addChild(root_0, breakStatement213.getTree());
}
break;
case 8 :
// JS.g:1397:4: returnStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_returnStatement_in_statementTail5814);
returnStatement214=returnStatement();
_fsp--;
adaptor.addChild(root_0, returnStatement214.getTree());
}
break;
case 9 :
// JS.g:1398:4: withStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_withStatement_in_statementTail5819);
withStatement215=withStatement();
_fsp--;
adaptor.addChild(root_0, withStatement215.getTree());
}
break;
case 10 :
// JS.g:1399:4: labelledStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_labelledStatement_in_statementTail5824);
labelledStatement216=labelledStatement();
_fsp--;
adaptor.addChild(root_0, labelledStatement216.getTree());
}
break;
case 11 :
// JS.g:1400:4: switchStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_switchStatement_in_statementTail5829);
switchStatement217=switchStatement();
_fsp--;
adaptor.addChild(root_0, switchStatement217.getTree());
}
break;
case 12 :
// JS.g:1401:4: throwStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_throwStatement_in_statementTail5834);
throwStatement218=throwStatement();
_fsp--;
adaptor.addChild(root_0, throwStatement218.getTree());
}
break;
case 13 :
// JS.g:1402:4: tryStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_tryStatement_in_statementTail5839);
tryStatement219=tryStatement();
_fsp--;
adaptor.addChild(root_0, tryStatement219.getTree());
}
break;
case 14 :
// JS.g:1403:4: constStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_constStatement_in_statementTail5844);
constStatement220=constStatement();
_fsp--;
adaptor.addChild(root_0, constStatement220.getTree());
}
break;
case 15 :
// JS.g:1404:4: namespaceStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_namespaceStatement_in_statementTail5849);
namespaceStatement221=namespaceStatement();
_fsp--;
adaptor.addChild(root_0, namespaceStatement221.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1409:1: block : lb= LBRACE ( sourceElement )* RBRACE -> ^( BLOCK[$lb, \"BLOCK\"] ( sourceElement )* ) ;
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 RBRACE223=null;
sourceElement_return sourceElement222 = null;
Object lb_tree=null;
Object RBRACE223_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:1410:2: (lb= LBRACE ( sourceElement )* RBRACE -> ^( BLOCK[$lb, \"BLOCK\"] ( sourceElement )* ) )
// JS.g:1410:4: lb= LBRACE ( sourceElement )* RBRACE
{
lb=(Token)input.LT(1);
match(input,LBRACE,FOLLOW_LBRACE_in_block5864);
stream_LBRACE.add(lb);
// JS.g:1410:14: ( sourceElement )*
loop57:
do {
int alt57=2;
int LA57_0 = input.LA(1);
if ( ((LA57_0>=NULL && LA57_0<=FALSE)||(LA57_0>=EACH && LA57_0<=FUNCTION)||LA57_0==THIS||LA57_0==VAR||(LA57_0>=GET && LA57_0<=SET)||(LA57_0>=WXML && LA57_0<=CLASS)||(LA57_0>=DEBUGGER && LA57_0<=LBRACE)||LA57_0==SEMIC||LA57_0==AT||LA57_0==StringLiteral||(LA57_0>=Identifier && LA57_0<=RegularExpressionLiteral)||(LA57_0>=DecimalLiteral && LA57_0<=HexIntegerLiteral)) ) {
alt57=1;
}
else if ( ((LA57_0>=XMLFragment && LA57_0<=XMLFragmentEnd)) && ( isXmlEnabled() )) {
alt57=1;
}
else if ( (LA57_0==BREAK||LA57_0==CONTINUE||(LA57_0>=DELETE && LA57_0<=DO)||LA57_0==FOR||LA57_0==IF||(LA57_0>=NEW && LA57_0<=SWITCH)||(LA57_0>=THROW && LA57_0<=TYPEOF)||(LA57_0>=VOID && LA57_0<=WITH)||LA57_0==YIELD||LA57_0==CONST||LA57_0==LPAREN||LA57_0==LBRACK||(LA57_0>=ADD && LA57_0<=SUB)||(LA57_0>=INC && LA57_0<=DEC)||(LA57_0>=NOT && LA57_0<=INV)) ) {
alt57=1;
}
else if ( (LA57_0==DEFAULT) && ( isXmlEnabled() )) {
alt57=1;
}
switch (alt57) {
case 1 :
// JS.g:1410:14: sourceElement
{
pushFollow(FOLLOW_sourceElement_in_block5866);
sourceElement222=sourceElement();
_fsp--;
stream_sourceElement.add(sourceElement222.getTree());
}
break;
default :
break loop57;
}
} while (true);
RBRACE223=(Token)input.LT(1);
match(input,RBRACE,FOLLOW_RBRACE_in_block5869);
stream_RBRACE.add(RBRACE223);
// 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();
// 1411:2: -> ^( BLOCK[$lb, \"BLOCK\"] ( sourceElement )* )
{
// JS.g:1411: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:1411: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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1418: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 VAR224=null;
Token COMMA226=null;
variableDeclaration_return variableDeclaration225 = null;
variableDeclaration_return variableDeclaration227 = null;
semic_return semic228 = null;
Object VAR224_tree=null;
Object COMMA226_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:1419:2: ( VAR variableDeclaration ( COMMA variableDeclaration )* semic -> ^( VAR ( variableDeclaration )+ ) )
// JS.g:1419:4: VAR variableDeclaration ( COMMA variableDeclaration )* semic
{
VAR224=(Token)input.LT(1);
match(input,VAR,FOLLOW_VAR_in_variableStatement5898);
stream_VAR.add(VAR224);
pushFollow(FOLLOW_variableDeclaration_in_variableStatement5900);
variableDeclaration225=variableDeclaration();
_fsp--;
stream_variableDeclaration.add(variableDeclaration225.getTree());
// JS.g:1419:28: ( COMMA variableDeclaration )*
loop58:
do {
int alt58=2;
int LA58_0 = input.LA(1);
if ( (LA58_0==COMMA) ) {
alt58=1;
}
switch (alt58) {
case 1 :
// JS.g:1419:30: COMMA variableDeclaration
{
COMMA226=(Token)input.LT(1);
match(input,COMMA,FOLLOW_COMMA_in_variableStatement5904);
stream_COMMA.add(COMMA226);
pushFollow(FOLLOW_variableDeclaration_in_variableStatement5906);
variableDeclaration227=variableDeclaration();
_fsp--;
stream_variableDeclaration.add(variableDeclaration227.getTree());
}
break;
default :
break loop58;
}
} while (true);
pushFollow(FOLLOW_semic_in_variableStatement5911);
semic228=semic();
_fsp--;
stream_semic.add(semic228.getTree());
// AST REWRITE
// elements: VAR, variableDeclaration
// 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();
// 1420:2: -> ^( VAR ( variableDeclaration )+ )
{
// JS.g:1420: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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1423: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 ASSIGN230=null;
identifier_return identifier229 = null;
assignmentExpression_return assignmentExpression231 = null;
Object ASSIGN230_tree=null;
try {
// JS.g:1424:2: ( identifier ( ASSIGN assignmentExpression )? )
// JS.g:1424:4: identifier ( ASSIGN assignmentExpression )?
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_identifier_in_variableDeclaration5934);
identifier229=identifier();
_fsp--;
root_0 = (Object)adaptor.becomeRoot(identifier229.getTree(), root_0);
// JS.g:1424:16: ( ASSIGN assignmentExpression )?
int alt59=2;
int LA59_0 = input.LA(1);
if ( (LA59_0==ASSIGN) ) {
alt59=1;
}
switch (alt59) {
case 1 :
// JS.g:1424:18: ASSIGN assignmentExpression
{
ASSIGN230=(Token)input.LT(1);
match(input,ASSIGN,FOLLOW_ASSIGN_in_variableDeclaration5939);
ASSIGN230_tree = (Object)adaptor.create(ASSIGN230);
adaptor.addChild(root_0, ASSIGN230_tree);
pushFollow(FOLLOW_assignmentExpression_in_variableDeclaration5941);
assignmentExpression231=assignmentExpression();
_fsp--;
adaptor.addChild(root_0, assignmentExpression231.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1427: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 ASSIGN233=null;
identifier_return identifier232 = null;
assignmentExpressionNoIn_return assignmentExpressionNoIn234 = null;
Object ASSIGN233_tree=null;
try {
// JS.g:1428:2: ( identifier ( ASSIGN assignmentExpressionNoIn )? )
// JS.g:1428:4: identifier ( ASSIGN assignmentExpressionNoIn )?
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_identifier_in_variableDeclarationNoIn5956);
identifier232=identifier();
_fsp--;
root_0 = (Object)adaptor.becomeRoot(identifier232.getTree(), root_0);
// JS.g:1428:16: ( ASSIGN assignmentExpressionNoIn )?
int alt60=2;
int LA60_0 = input.LA(1);
if ( (LA60_0==ASSIGN) ) {
alt60=1;
}
switch (alt60) {
case 1 :
// JS.g:1428:18: ASSIGN assignmentExpressionNoIn
{
ASSIGN233=(Token)input.LT(1);
match(input,ASSIGN,FOLLOW_ASSIGN_in_variableDeclarationNoIn5961);
ASSIGN233_tree = (Object)adaptor.create(ASSIGN233);
adaptor.addChild(root_0, ASSIGN233_tree);
pushFollow(FOLLOW_assignmentExpressionNoIn_in_variableDeclarationNoIn5963);
assignmentExpressionNoIn234=assignmentExpressionNoIn();
_fsp--;
adaptor.addChild(root_0, assignmentExpressionNoIn234.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1431: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 CONST235=null;
Token COMMA237=null;
variableDeclaration_return variableDeclaration236 = null;
variableDeclaration_return variableDeclaration238 = null;
semic_return semic239 = null;
Object CONST235_tree=null;
Object COMMA237_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:1432:3: ( CONST variableDeclaration ( COMMA variableDeclaration )* semic -> ^( CONST ( variableDeclaration )+ ) )
// JS.g:1432:5: CONST variableDeclaration ( COMMA variableDeclaration )* semic
{
CONST235=(Token)input.LT(1);
match(input,CONST,FOLLOW_CONST_in_constStatement5978);
stream_CONST.add(CONST235);
pushFollow(FOLLOW_variableDeclaration_in_constStatement5980);
variableDeclaration236=variableDeclaration();
_fsp--;
stream_variableDeclaration.add(variableDeclaration236.getTree());
// JS.g:1432:31: ( COMMA variableDeclaration )*
loop61:
do {
int alt61=2;
int LA61_0 = input.LA(1);
if ( (LA61_0==COMMA) ) {
alt61=1;
}
switch (alt61) {
case 1 :
// JS.g:1432:33: COMMA variableDeclaration
{
COMMA237=(Token)input.LT(1);
match(input,COMMA,FOLLOW_COMMA_in_constStatement5984);
stream_COMMA.add(COMMA237);
pushFollow(FOLLOW_variableDeclaration_in_constStatement5986);
variableDeclaration238=variableDeclaration();
_fsp--;
stream_variableDeclaration.add(variableDeclaration238.getTree());
}
break;
default :
break loop61;
}
} while (true);
pushFollow(FOLLOW_semic_in_constStatement5991);
semic239=semic();
_fsp--;
stream_semic.add(semic239.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();
// 1433:3: -> ^( CONST ( variableDeclaration )+ )
{
// JS.g:1433: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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1440:1: emptyStatement : SEMIC -> EMPTY_STATEMENT[$SEMIC] ;
public final emptyStatement_return emptyStatement() throws RecognitionException {
emptyStatement_return retval = new emptyStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SEMIC240=null;
Object SEMIC240_tree=null;
RewriteRuleTokenStream stream_SEMIC=new RewriteRuleTokenStream(adaptor,"token SEMIC");
try {
// JS.g:1441:2: ( SEMIC -> EMPTY_STATEMENT[$SEMIC] )
// JS.g:1441:4: SEMIC
{
SEMIC240=(Token)input.LT(1);
match(input,SEMIC,FOLLOW_SEMIC_in_emptyStatement6021);
stream_SEMIC.add(SEMIC240);
// AST REWRITE
// elements:
// 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();
// 1441:10: -> EMPTY_STATEMENT[$SEMIC]
{
adaptor.addChild(root_0, adaptor.create(EMPTY_STATEMENT, SEMIC240));
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1454: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 expression241 = null;
semic_return semic242 = null;
try {
// JS.g:1455:2: ( expression semic )
// JS.g:1455:4: expression semic
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_expression_in_expressionStatement6044);
expression241=expression();
_fsp--;
adaptor.addChild(root_0, expression241.getTree());
pushFollow(FOLLOW_semic_in_expressionStatement6046);
semic242=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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1462: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 IF243=null;
Token LPAREN244=null;
Token RPAREN246=null;
Token ELSE248=null;
expression_return expression245 = null;
statement_return statement247 = null;
statement_return statement249 = null;
Object IF243_tree=null;
Object LPAREN244_tree=null;
Object RPAREN246_tree=null;
Object ELSE248_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:1464:2: ( IF LPAREN expression RPAREN statement ({...}? ELSE statement )? -> ^( IF expression ( statement )+ ) )
// JS.g:1464:4: IF LPAREN expression RPAREN statement ({...}? ELSE statement )?
{
IF243=(Token)input.LT(1);
match(input,IF,FOLLOW_IF_in_ifStatement6064);
stream_IF.add(IF243);
LPAREN244=(Token)input.LT(1);
match(input,LPAREN,FOLLOW_LPAREN_in_ifStatement6066);
stream_LPAREN.add(LPAREN244);
pushFollow(FOLLOW_expression_in_ifStatement6068);
expression245=expression();
_fsp--;
stream_expression.add(expression245.getTree());
RPAREN246=(Token)input.LT(1);
match(input,RPAREN,FOLLOW_RPAREN_in_ifStatement6070);
stream_RPAREN.add(RPAREN246);
pushFollow(FOLLOW_statement_in_ifStatement6072);
statement247=statement();
_fsp--;
stream_statement.add(statement247.getTree());
// JS.g:1464:42: ({...}? ELSE statement )?
int alt62=2;
int LA62_0 = input.LA(1);
if ( (LA62_0==ELSE) ) {
int LA62_1 = input.LA(2);
if ( ( input.LA(1) == ELSE ) ) {
alt62=1;
}
}
switch (alt62) {
case 1 :
// JS.g:1464:44: {...}? ELSE statement
{
if ( !( input.LA(1) == ELSE ) ) {
throw new FailedPredicateException(input, "ifStatement", " input.LA(1) == ELSE ");
}
ELSE248=(Token)input.LT(1);
match(input,ELSE,FOLLOW_ELSE_in_ifStatement6078);
stream_ELSE.add(ELSE248);
pushFollow(FOLLOW_statement_in_ifStatement6080);
statement249=statement();
_fsp--;
stream_statement.add(statement249.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();
// 1465:2: -> ^( IF expression ( statement )+ )
{
// JS.g:1465: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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1472: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 doStatement250 = null;
whileStatement_return whileStatement251 = null;
forEachStatement_return forEachStatement252 = null;
forStatement_return forStatement253 = null;
try {
// JS.g:1473:2: ( doStatement | whileStatement | forEachStatement | forStatement )
int alt63=4;
switch ( input.LA(1) ) {
case DO:
{
alt63=1;
}
break;
case WHILE:
{
alt63=2;
}
break;
case FOR:
{
int LA63_3 = input.LA(2);
if ( (LA63_3==LPAREN) ) {
alt63=4;
}
else if ( (LA63_3==EACH) ) {
alt63=3;
}
else {
NoViableAltException nvae =
new NoViableAltException("1472:1: iterationStatement : ( doStatement | whileStatement | forEachStatement | forStatement );", 63, 3, input);
throw nvae;
}
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("1472:1: iterationStatement : ( doStatement | whileStatement | forEachStatement | forStatement );", 63, 0, input);
throw nvae;
}
switch (alt63) {
case 1 :
// JS.g:1473:4: doStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_doStatement_in_iterationStatement6113);
doStatement250=doStatement();
_fsp--;
adaptor.addChild(root_0, doStatement250.getTree());
}
break;
case 2 :
// JS.g:1474:4: whileStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_whileStatement_in_iterationStatement6118);
whileStatement251=whileStatement();
_fsp--;
adaptor.addChild(root_0, whileStatement251.getTree());
}
break;
case 3 :
// JS.g:1475:4: forEachStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_forEachStatement_in_iterationStatement6123);
forEachStatement252=forEachStatement();
_fsp--;
adaptor.addChild(root_0, forEachStatement252.getTree());
}
break;
case 4 :
// JS.g:1476:4: forStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_forStatement_in_iterationStatement6128);
forStatement253=forStatement();
_fsp--;
adaptor.addChild(root_0, forStatement253.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1479: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 DO254=null;
Token WHILE256=null;
Token LPAREN257=null;
Token RPAREN259=null;
statement_return statement255 = null;
expression_return expression258 = null;
semic_return semic260 = null;
Object DO254_tree=null;
Object WHILE256_tree=null;
Object LPAREN257_tree=null;
Object RPAREN259_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:1480:2: ( DO statement WHILE LPAREN expression RPAREN semic -> ^( DO statement expression ) )
// JS.g:1480:4: DO statement WHILE LPAREN expression RPAREN semic
{
DO254=(Token)input.LT(1);
match(input,DO,FOLLOW_DO_in_doStatement6140);
stream_DO.add(DO254);
pushFollow(FOLLOW_statement_in_doStatement6142);
statement255=statement();
_fsp--;
stream_statement.add(statement255.getTree());
WHILE256=(Token)input.LT(1);
match(input,WHILE,FOLLOW_WHILE_in_doStatement6144);
stream_WHILE.add(WHILE256);
LPAREN257=(Token)input.LT(1);
match(input,LPAREN,FOLLOW_LPAREN_in_doStatement6146);
stream_LPAREN.add(LPAREN257);
pushFollow(FOLLOW_expression_in_doStatement6148);
expression258=expression();
_fsp--;
stream_expression.add(expression258.getTree());
RPAREN259=(Token)input.LT(1);
match(input,RPAREN,FOLLOW_RPAREN_in_doStatement6150);
stream_RPAREN.add(RPAREN259);
pushFollow(FOLLOW_semic_in_doStatement6152);
semic260=semic();
_fsp--;
stream_semic.add(semic260.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();
// 1481:2: -> ^( DO statement expression )
{
// JS.g:1481: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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1484: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 WHILE261=null;
Token LPAREN262=null;
Token RPAREN264=null;
expression_return expression263 = null;
statement_return statement265 = null;
Object WHILE261_tree=null;
Object LPAREN262_tree=null;
Object RPAREN264_tree=null;
try {
// JS.g:1485:2: ( WHILE LPAREN expression RPAREN statement )
// JS.g:1485:4: WHILE LPAREN expression RPAREN statement
{
root_0 = (Object)adaptor.nil();
WHILE261=(Token)input.LT(1);
match(input,WHILE,FOLLOW_WHILE_in_whileStatement6177);
WHILE261_tree = (Object)adaptor.create(WHILE261);
root_0 = (Object)adaptor.becomeRoot(WHILE261_tree, root_0);
LPAREN262=(Token)input.LT(1);
match(input,LPAREN,FOLLOW_LPAREN_in_whileStatement6180);
pushFollow(FOLLOW_expression_in_whileStatement6183);
expression263=expression();
_fsp--;
adaptor.addChild(root_0, expression263.getTree());
RPAREN264=(Token)input.LT(1);
match(input,RPAREN,FOLLOW_RPAREN_in_whileStatement6185);
pushFollow(FOLLOW_statement_in_whileStatement6188);
statement265=statement();
_fsp--;
adaptor.addChild(root_0, statement265.getTree());
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1530:1: forEachStatement : forKeyword= FOR EACH LPAREN forEachControl RPAREN statement -> ^( FOREACH[$forKeyword] 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 forKeyword=null;
Token EACH266=null;
Token LPAREN267=null;
Token RPAREN269=null;
forEachControl_return forEachControl268 = null;
statement_return statement270 = null;
Object forKeyword_tree=null;
Object EACH266_tree=null;
Object LPAREN267_tree=null;
Object RPAREN269_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:1531:3: (forKeyword= FOR EACH LPAREN forEachControl RPAREN statement -> ^( FOREACH[$forKeyword] forEachControl statement ) )
// JS.g:1531:5: forKeyword= FOR EACH LPAREN forEachControl RPAREN statement
{
forKeyword=(Token)input.LT(1);
match(input,FOR,FOLLOW_FOR_in_forEachStatement6205);
stream_FOR.add(forKeyword);
EACH266=(Token)input.LT(1);
match(input,EACH,FOLLOW_EACH_in_forEachStatement6207);
stream_EACH.add(EACH266);
LPAREN267=(Token)input.LT(1);
match(input,LPAREN,FOLLOW_LPAREN_in_forEachStatement6209);
stream_LPAREN.add(LPAREN267);
pushFollow(FOLLOW_forEachControl_in_forEachStatement6211);
forEachControl268=forEachControl();
_fsp--;
stream_forEachControl.add(forEachControl268.getTree());
RPAREN269=(Token)input.LT(1);
match(input,RPAREN,FOLLOW_RPAREN_in_forEachStatement6213);
stream_RPAREN.add(RPAREN269);
pushFollow(FOLLOW_statement_in_forEachStatement6215);
statement270=statement();
_fsp--;
stream_statement.add(statement270.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();
// 1532:4: -> ^( FOREACH[$forKeyword] forEachControl statement )
{
// JS.g:1532:7: ^( FOREACH[$forKeyword] forEachControl statement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(FOREACH, forKeyword), 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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1535: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 forControlVar271 = null;
forControlExpression_return forControlExpression272 = null;
try {
// JS.g:1536:3: ( forControlVar | forControlExpression )
int alt64=2;
int LA64_0 = input.LA(1);
if ( (LA64_0==VAR) ) {
alt64=1;
}
else if ( ((LA64_0>=NULL && LA64_0<=FALSE)||LA64_0==EACH||LA64_0==THIS||(LA64_0>=GET && LA64_0<=SET)||(LA64_0>=WXML && LA64_0<=CLASS)||(LA64_0>=DEBUGGER && LA64_0<=VOLATILE)||LA64_0==AT||LA64_0==StringLiteral||(LA64_0>=Identifier && LA64_0<=RegularExpressionLiteral)||(LA64_0>=DecimalLiteral && LA64_0<=HexIntegerLiteral)) ) {
alt64=2;
}
else if ( ((LA64_0>=XMLFragment && LA64_0<=XMLFragmentEnd)) && ( isXmlEnabled() )) {
alt64=2;
}
else if ( (LA64_0==DELETE||LA64_0==FUNCTION||LA64_0==NEW||LA64_0==TYPEOF||LA64_0==VOID||LA64_0==YIELD||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)) ) {
alt64=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("1535:1: forEachControl : ( forControlVar | forControlExpression );", 64, 0, input);
throw nvae;
}
switch (alt64) {
case 1 :
// JS.g:1536:5: forControlVar
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_forControlVar_in_forEachControl6243);
forControlVar271=forControlVar();
_fsp--;
adaptor.addChild(root_0, forControlVar271.getTree());
}
break;
case 2 :
// JS.g:1537:5: forControlExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_forControlExpression_in_forEachControl6249);
forControlExpression272=forControlExpression();
_fsp--;
adaptor.addChild(root_0, forControlExpression272.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1540: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 FOR273=null;
Token LPAREN274=null;
Token RPAREN276=null;
forControl_return forControl275 = null;
statement_return statement277 = null;
Object FOR273_tree=null;
Object LPAREN274_tree=null;
Object RPAREN276_tree=null;
try {
// JS.g:1541:2: ( FOR LPAREN forControl RPAREN statement )
// JS.g:1541:4: FOR LPAREN forControl RPAREN statement
{
root_0 = (Object)adaptor.nil();
FOR273=(Token)input.LT(1);
match(input,FOR,FOLLOW_FOR_in_forStatement6261);
FOR273_tree = (Object)adaptor.create(FOR273);
root_0 = (Object)adaptor.becomeRoot(FOR273_tree, root_0);
LPAREN274=(Token)input.LT(1);
match(input,LPAREN,FOLLOW_LPAREN_in_forStatement6264);
pushFollow(FOLLOW_forControl_in_forStatement6267);
forControl275=forControl();
_fsp--;
adaptor.addChild(root_0, forControl275.getTree());
RPAREN276=(Token)input.LT(1);
match(input,RPAREN,FOLLOW_RPAREN_in_forStatement6269);
pushFollow(FOLLOW_statement_in_forStatement6272);
statement277=statement();
_fsp--;
adaptor.addChild(root_0, statement277.getTree());
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1544: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 forControlVar278 = null;
forControlExpression_return forControlExpression279 = null;
forControlSemic_return forControlSemic280 = null;
try {
// JS.g:1545:2: ( forControlVar | forControlExpression | forControlSemic )
int alt65=3;
int LA65_0 = input.LA(1);
if ( (LA65_0==VAR) ) {
alt65=1;
}
else if ( ((LA65_0>=NULL && LA65_0<=FALSE)||LA65_0==EACH||LA65_0==THIS||(LA65_0>=GET && LA65_0<=SET)||(LA65_0>=WXML && LA65_0<=CLASS)||(LA65_0>=DEBUGGER && LA65_0<=VOLATILE)||LA65_0==AT||LA65_0==StringLiteral||(LA65_0>=Identifier && LA65_0<=RegularExpressionLiteral)||(LA65_0>=DecimalLiteral && LA65_0<=HexIntegerLiteral)) ) {
alt65=2;
}
else if ( ((LA65_0>=XMLFragment && LA65_0<=XMLFragmentEnd)) && ( isXmlEnabled() )) {
alt65=2;
}
else if ( (LA65_0==DELETE||LA65_0==FUNCTION||LA65_0==NEW||LA65_0==TYPEOF||LA65_0==VOID||LA65_0==YIELD||LA65_0==LBRACE||LA65_0==LPAREN||LA65_0==LBRACK||(LA65_0>=ADD && LA65_0<=SUB)||(LA65_0>=INC && LA65_0<=DEC)||(LA65_0>=NOT && LA65_0<=INV)) ) {
alt65=2;
}
else if ( (LA65_0==SEMIC) ) {
alt65=3;
}
else {
NoViableAltException nvae =
new NoViableAltException("1544:1: forControl : ( forControlVar | forControlExpression | forControlSemic );", 65, 0, input);
throw nvae;
}
switch (alt65) {
case 1 :
// JS.g:1545:4: forControlVar
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_forControlVar_in_forControl6283);
forControlVar278=forControlVar();
_fsp--;
adaptor.addChild(root_0, forControlVar278.getTree());
}
break;
case 2 :
// JS.g:1546:4: forControlExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_forControlExpression_in_forControl6288);
forControlExpression279=forControlExpression();
_fsp--;
adaptor.addChild(root_0, forControlExpression279.getTree());
}
break;
case 3 :
// JS.g:1547:4: forControlSemic
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_forControlSemic_in_forControl6293);
forControlSemic280=forControlSemic();
_fsp--;
adaptor.addChild(root_0, forControlSemic280.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1550:1: forControlVar : VAR variableDeclarationNoIn ( ( IN expression -> ^( FORITER ^( VAR variableDeclarationNoIn ) ^( EXPR expression ) ) ) | ( ( COMMA variableDeclarationNoIn )* semi1= SEMIC (ex1= expression )? semi2= SEMIC (ex2= expression )? -> ^( FORSTEP ^( VAR ( variableDeclarationNoIn )+ ) ^( $semi1) ^( EXPR ( $ex1)? ) ^( $semi2) ^( 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 semi1=null;
Token semi2=null;
Token VAR281=null;
Token IN283=null;
Token COMMA285=null;
expression_return ex1 = null;
expression_return ex2 = null;
variableDeclarationNoIn_return variableDeclarationNoIn282 = null;
expression_return expression284 = null;
variableDeclarationNoIn_return variableDeclarationNoIn286 = null;
Object semi1_tree=null;
Object semi2_tree=null;
Object VAR281_tree=null;
Object IN283_tree=null;
Object COMMA285_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:1551:2: ( VAR variableDeclarationNoIn ( ( IN expression -> ^( FORITER ^( VAR variableDeclarationNoIn ) ^( EXPR expression ) ) ) | ( ( COMMA variableDeclarationNoIn )* semi1= SEMIC (ex1= expression )? semi2= SEMIC (ex2= expression )? -> ^( FORSTEP ^( VAR ( variableDeclarationNoIn )+ ) ^( $semi1) ^( EXPR ( $ex1)? ) ^( $semi2) ^( EXPR ( $ex2)? ) ) ) ) )
// JS.g:1551:4: VAR variableDeclarationNoIn ( ( IN expression -> ^( FORITER ^( VAR variableDeclarationNoIn ) ^( EXPR expression ) ) ) | ( ( COMMA variableDeclarationNoIn )* semi1= SEMIC (ex1= expression )? semi2= SEMIC (ex2= expression )? -> ^( FORSTEP ^( VAR ( variableDeclarationNoIn )+ ) ^( $semi1) ^( EXPR ( $ex1)? ) ^( $semi2) ^( EXPR ( $ex2)? ) ) ) )
{
VAR281=(Token)input.LT(1);
match(input,VAR,FOLLOW_VAR_in_forControlVar6304);
stream_VAR.add(VAR281);
pushFollow(FOLLOW_variableDeclarationNoIn_in_forControlVar6306);
variableDeclarationNoIn282=variableDeclarationNoIn();
_fsp--;
stream_variableDeclarationNoIn.add(variableDeclarationNoIn282.getTree());
// JS.g:1552:2: ( ( IN expression -> ^( FORITER ^( VAR variableDeclarationNoIn ) ^( EXPR expression ) ) ) | ( ( COMMA variableDeclarationNoIn )* semi1= SEMIC (ex1= expression )? semi2= SEMIC (ex2= expression )? -> ^( FORSTEP ^( VAR ( variableDeclarationNoIn )+ ) ^( $semi1) ^( EXPR ( $ex1)? ) ^( $semi2) ^( EXPR ( $ex2)? ) ) ) )
int alt69=2;
int LA69_0 = input.LA(1);
if ( (LA69_0==IN) ) {
alt69=1;
}
else if ( ((LA69_0>=SEMIC && LA69_0<=COMMA)) ) {
alt69=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("1552:2: ( ( IN expression -> ^( FORITER ^( VAR variableDeclarationNoIn ) ^( EXPR expression ) ) ) | ( ( COMMA variableDeclarationNoIn )* semi1= SEMIC (ex1= expression )? semi2= SEMIC (ex2= expression )? -> ^( FORSTEP ^( VAR ( variableDeclarationNoIn )+ ) ^( $semi1) ^( EXPR ( $ex1)? ) ^( $semi2) ^( EXPR ( $ex2)? ) ) ) )", 69, 0, input);
throw nvae;
}
switch (alt69) {
case 1 :
// JS.g:1553:3: ( IN expression -> ^( FORITER ^( VAR variableDeclarationNoIn ) ^( EXPR expression ) ) )
{
// JS.g:1553:3: ( IN expression -> ^( FORITER ^( VAR variableDeclarationNoIn ) ^( EXPR expression ) ) )
// JS.g:1554:4: IN expression
{
IN283=(Token)input.LT(1);
match(input,IN,FOLLOW_IN_in_forControlVar6318);
stream_IN.add(IN283);
pushFollow(FOLLOW_expression_in_forControlVar6320);
expression284=expression();
_fsp--;
stream_expression.add(expression284.getTree());
// AST REWRITE
// elements: variableDeclarationNoIn, expression, 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();
// 1555:4: -> ^( FORITER ^( VAR variableDeclarationNoIn ) ^( EXPR expression ) )
{
// JS.g:1555: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:1555: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:1555: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:1558:3: ( ( COMMA variableDeclarationNoIn )* semi1= SEMIC (ex1= expression )? semi2= SEMIC (ex2= expression )? -> ^( FORSTEP ^( VAR ( variableDeclarationNoIn )+ ) ^( $semi1) ^( EXPR ( $ex1)? ) ^( $semi2) ^( EXPR ( $ex2)? ) ) )
{
// JS.g:1558:3: ( ( COMMA variableDeclarationNoIn )* semi1= SEMIC (ex1= expression )? semi2= SEMIC (ex2= expression )? -> ^( FORSTEP ^( VAR ( variableDeclarationNoIn )+ ) ^( $semi1) ^( EXPR ( $ex1)? ) ^( $semi2) ^( EXPR ( $ex2)? ) ) )
// JS.g:1559:4: ( COMMA variableDeclarationNoIn )* semi1= SEMIC (ex1= expression )? semi2= SEMIC (ex2= expression )?
{
// JS.g:1559:4: ( COMMA variableDeclarationNoIn )*
loop66:
do {
int alt66=2;
int LA66_0 = input.LA(1);
if ( (LA66_0==COMMA) ) {
alt66=1;
}
switch (alt66) {
case 1 :
// JS.g:1559:6: COMMA variableDeclarationNoIn
{
COMMA285=(Token)input.LT(1);
match(input,COMMA,FOLLOW_COMMA_in_forControlVar6366);
stream_COMMA.add(COMMA285);
pushFollow(FOLLOW_variableDeclarationNoIn_in_forControlVar6368);
variableDeclarationNoIn286=variableDeclarationNoIn();
_fsp--;
stream_variableDeclarationNoIn.add(variableDeclarationNoIn286.getTree());
}
break;
default :
break loop66;
}
} while (true);
semi1=(Token)input.LT(1);
match(input,SEMIC,FOLLOW_SEMIC_in_forControlVar6375);
stream_SEMIC.add(semi1);
// JS.g:1559:54: (ex1= expression )?
int alt67=2;
int LA67_0 = input.LA(1);
if ( ((LA67_0>=NULL && LA67_0<=FALSE)||LA67_0==EACH||LA67_0==THIS||(LA67_0>=GET && LA67_0<=SET)||(LA67_0>=WXML && LA67_0<=CLASS)||(LA67_0>=DEBUGGER && LA67_0<=VOLATILE)||LA67_0==AT||LA67_0==StringLiteral||(LA67_0>=Identifier && LA67_0<=RegularExpressionLiteral)||(LA67_0>=DecimalLiteral && LA67_0<=HexIntegerLiteral)) ) {
alt67=1;
}
else if ( ((LA67_0>=XMLFragment && LA67_0<=XMLFragmentEnd)) && ( isXmlEnabled() )) {
alt67=1;
}
else if ( (LA67_0==DELETE||LA67_0==FUNCTION||LA67_0==NEW||LA67_0==TYPEOF||LA67_0==VOID||LA67_0==YIELD||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)) ) {
alt67=1;
}
switch (alt67) {
case 1 :
// JS.g:1559:54: ex1= expression
{
pushFollow(FOLLOW_expression_in_forControlVar6379);
ex1=expression();
_fsp--;
stream_expression.add(ex1.getTree());
}
break;
}
semi2=(Token)input.LT(1);
match(input,SEMIC,FOLLOW_SEMIC_in_forControlVar6384);
stream_SEMIC.add(semi2);
// JS.g:1559:82: (ex2= expression )?
int alt68=2;
int LA68_0 = input.LA(1);
if ( ((LA68_0>=NULL && LA68_0<=FALSE)||LA68_0==EACH||LA68_0==THIS||(LA68_0>=GET && LA68_0<=SET)||(LA68_0>=WXML && LA68_0<=CLASS)||(LA68_0>=DEBUGGER && LA68_0<=VOLATILE)||LA68_0==AT||LA68_0==StringLiteral||(LA68_0>=Identifier && LA68_0<=RegularExpressionLiteral)||(LA68_0>=DecimalLiteral && LA68_0<=HexIntegerLiteral)) ) {
alt68=1;
}
else if ( ((LA68_0>=XMLFragment && LA68_0<=XMLFragmentEnd)) && ( isXmlEnabled() )) {
alt68=1;
}
else if ( (LA68_0==DELETE||LA68_0==FUNCTION||LA68_0==NEW||LA68_0==TYPEOF||LA68_0==VOID||LA68_0==YIELD||LA68_0==LBRACE||LA68_0==LPAREN||LA68_0==LBRACK||(LA68_0>=ADD && LA68_0<=SUB)||(LA68_0>=INC && LA68_0<=DEC)||(LA68_0>=NOT && LA68_0<=INV)) ) {
alt68=1;
}
switch (alt68) {
case 1 :
// JS.g:1559:82: ex2= expression
{
pushFollow(FOLLOW_expression_in_forControlVar6388);
ex2=expression();
_fsp--;
stream_expression.add(ex2.getTree());
}
break;
}
// AST REWRITE
// elements: semi2, semi1, VAR, variableDeclarationNoIn, ex2, ex1
// token labels: semi2, semi1
// rule labels: retval, ex2, ex1
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleTokenStream stream_semi2=new RewriteRuleTokenStream(adaptor,"token semi2",semi2);
RewriteRuleTokenStream stream_semi1=new RewriteRuleTokenStream(adaptor,"token semi1",semi1);
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();
// 1560:4: -> ^( FORSTEP ^( VAR ( variableDeclarationNoIn )+ ) ^( $semi1) ^( EXPR ( $ex1)? ) ^( $semi2) ^( EXPR ( $ex2)? ) )
{
// JS.g:1560:7: ^( FORSTEP ^( VAR ( variableDeclarationNoIn )+ ) ^( $semi1) ^( EXPR ( $ex1)? ) ^( $semi2) ^( EXPR ( $ex2)? ) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(FORSTEP, "FORSTEP"), root_1);
// JS.g:1560: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:1560:52: ^( $semi1)
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot(stream_semi1.next(), root_2);
adaptor.addChild(root_1, root_2);
}
// JS.g:1560:64: ^( EXPR ( $ex1)? )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot(adaptor.create(EXPR, "EXPR"), root_2);
// JS.g:1560:72: ( $ex1)?
if ( stream_ex1.hasNext() ) {
adaptor.addChild(root_2, stream_ex1.next());
}
stream_ex1.reset();
adaptor.addChild(root_1, root_2);
}
// JS.g:1560:80: ^( $semi2)
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot(stream_semi2.next(), root_2);
adaptor.addChild(root_1, root_2);
}
// JS.g:1560:92: ^( EXPR ( $ex2)? )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot(adaptor.create(EXPR, "EXPR"), root_2);
// JS.g:1560:100: ( $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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1565:1: forControlExpression : ex1= expressionNoIn ({...}? ( IN ex2= expression -> ^( FORITER ^( EXPR $ex1) ^( EXPR $ex2) ) ) | (semi1= SEMIC (ex2= expression )? semi2= SEMIC (ex3= expression )? -> ^( FORSTEP ^( EXPR $ex1) ^( $semi1) ^( EXPR ( $ex2)? ) ^( $semi2) ^( 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 semi1=null;
Token semi2=null;
Token IN287=null;
expressionNoIn_return ex1 = null;
expression_return ex2 = null;
expression_return ex3 = null;
Object semi1_tree=null;
Object semi2_tree=null;
Object IN287_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:1570:2: (ex1= expressionNoIn ({...}? ( IN ex2= expression -> ^( FORITER ^( EXPR $ex1) ^( EXPR $ex2) ) ) | (semi1= SEMIC (ex2= expression )? semi2= SEMIC (ex3= expression )? -> ^( FORSTEP ^( EXPR $ex1) ^( $semi1) ^( EXPR ( $ex2)? ) ^( $semi2) ^( EXPR ( $ex3)? ) ) ) ) )
// JS.g:1570:4: ex1= expressionNoIn ({...}? ( IN ex2= expression -> ^( FORITER ^( EXPR $ex1) ^( EXPR $ex2) ) ) | (semi1= SEMIC (ex2= expression )? semi2= SEMIC (ex3= expression )? -> ^( FORSTEP ^( EXPR $ex1) ^( $semi1) ^( EXPR ( $ex2)? ) ^( $semi2) ^( EXPR ( $ex3)? ) ) ) )
{
pushFollow(FOLLOW_expressionNoIn_in_forControlExpression6468);
ex1=expressionNoIn();
_fsp--;
stream_expressionNoIn.add(ex1.getTree());
// JS.g:1571:2: ({...}? ( IN ex2= expression -> ^( FORITER ^( EXPR $ex1) ^( EXPR $ex2) ) ) | (semi1= SEMIC (ex2= expression )? semi2= SEMIC (ex3= expression )? -> ^( FORSTEP ^( EXPR $ex1) ^( $semi1) ^( EXPR ( $ex2)? ) ^( $semi2) ^( EXPR ( $ex3)? ) ) ) )
int alt72=2;
int LA72_0 = input.LA(1);
if ( (LA72_0==IN) ) {
alt72=1;
}
else if ( (LA72_0==SEMIC) ) {
alt72=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("1571:2: ({...}? ( IN ex2= expression -> ^( FORITER ^( EXPR $ex1) ^( EXPR $ex2) ) ) | (semi1= SEMIC (ex2= expression )? semi2= SEMIC (ex3= expression )? -> ^( FORSTEP ^( EXPR $ex1) ^( $semi1) ^( EXPR ( $ex2)? ) ^( $semi2) ^( EXPR ( $ex3)? ) ) ) )", 72, 0, input);
throw nvae;
}
switch (alt72) {
case 1 :
// JS.g:1572:3: {...}? ( IN ex2= expression -> ^( FORITER ^( EXPR $ex1) ^( EXPR $ex2) ) )
{
if ( !( isLeftHandSideIn(ex1, isLhs) ) ) {
throw new FailedPredicateException(input, "forControlExpression", " isLeftHandSideIn(ex1, isLhs) ");
}
// JS.g:1572:37: ( IN ex2= expression -> ^( FORITER ^( EXPR $ex1) ^( EXPR $ex2) ) )
// JS.g:1573:4: IN ex2= expression
{
IN287=(Token)input.LT(1);
match(input,IN,FOLLOW_IN_in_forControlExpression6483);
stream_IN.add(IN287);
pushFollow(FOLLOW_expression_in_forControlExpression6487);
ex2=expression();
_fsp--;
stream_expression.add(ex2.getTree());
// 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();
// 1574:4: -> ^( FORITER ^( EXPR $ex1) ^( EXPR $ex2) )
{
// JS.g:1574: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:1574: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:1574: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:1577:3: (semi1= SEMIC (ex2= expression )? semi2= SEMIC (ex3= expression )? -> ^( FORSTEP ^( EXPR $ex1) ^( $semi1) ^( EXPR ( $ex2)? ) ^( $semi2) ^( EXPR ( $ex3)? ) ) )
{
// JS.g:1577:3: (semi1= SEMIC (ex2= expression )? semi2= SEMIC (ex3= expression )? -> ^( FORSTEP ^( EXPR $ex1) ^( $semi1) ^( EXPR ( $ex2)? ) ^( $semi2) ^( EXPR ( $ex3)? ) ) )
// JS.g:1578:4: semi1= SEMIC (ex2= expression )? semi2= SEMIC (ex3= expression )?
{
semi1=(Token)input.LT(1);
match(input,SEMIC,FOLLOW_SEMIC_in_forControlExpression6535);
stream_SEMIC.add(semi1);
// JS.g:1578:19: (ex2= expression )?
int alt70=2;
int LA70_0 = input.LA(1);
if ( ((LA70_0>=NULL && LA70_0<=FALSE)||LA70_0==EACH||LA70_0==THIS||(LA70_0>=GET && LA70_0<=SET)||(LA70_0>=WXML && LA70_0<=CLASS)||(LA70_0>=DEBUGGER && LA70_0<=VOLATILE)||LA70_0==AT||LA70_0==StringLiteral||(LA70_0>=Identifier && LA70_0<=RegularExpressionLiteral)||(LA70_0>=DecimalLiteral && LA70_0<=HexIntegerLiteral)) ) {
alt70=1;
}
else if ( ((LA70_0>=XMLFragment && LA70_0<=XMLFragmentEnd)) && ( isXmlEnabled() )) {
alt70=1;
}
else if ( (LA70_0==DELETE||LA70_0==FUNCTION||LA70_0==NEW||LA70_0==TYPEOF||LA70_0==VOID||LA70_0==YIELD||LA70_0==LBRACE||LA70_0==LPAREN||LA70_0==LBRACK||(LA70_0>=ADD && LA70_0<=SUB)||(LA70_0>=INC && LA70_0<=DEC)||(LA70_0>=NOT && LA70_0<=INV)) ) {
alt70=1;
}
switch (alt70) {
case 1 :
// JS.g:1578:19: ex2= expression
{
pushFollow(FOLLOW_expression_in_forControlExpression6539);
ex2=expression();
_fsp--;
stream_expression.add(ex2.getTree());
}
break;
}
semi2=(Token)input.LT(1);
match(input,SEMIC,FOLLOW_SEMIC_in_forControlExpression6544);
stream_SEMIC.add(semi2);
// JS.g:1578:47: (ex3= expression )?
int alt71=2;
int LA71_0 = input.LA(1);
if ( ((LA71_0>=NULL && LA71_0<=FALSE)||LA71_0==EACH||LA71_0==THIS||(LA71_0>=GET && LA71_0<=SET)||(LA71_0>=WXML && LA71_0<=CLASS)||(LA71_0>=DEBUGGER && LA71_0<=VOLATILE)||LA71_0==AT||LA71_0==StringLiteral||(LA71_0>=Identifier && LA71_0<=RegularExpressionLiteral)||(LA71_0>=DecimalLiteral && LA71_0<=HexIntegerLiteral)) ) {
alt71=1;
}
else if ( ((LA71_0>=XMLFragment && LA71_0<=XMLFragmentEnd)) && ( isXmlEnabled() )) {
alt71=1;
}
else if ( (LA71_0==DELETE||LA71_0==FUNCTION||LA71_0==NEW||LA71_0==TYPEOF||LA71_0==VOID||LA71_0==YIELD||LA71_0==LBRACE||LA71_0==LPAREN||LA71_0==LBRACK||(LA71_0>=ADD && LA71_0<=SUB)||(LA71_0>=INC && LA71_0<=DEC)||(LA71_0>=NOT && LA71_0<=INV)) ) {
alt71=1;
}
switch (alt71) {
case 1 :
// JS.g:1578:47: ex3= expression
{
pushFollow(FOLLOW_expression_in_forControlExpression6548);
ex3=expression();
_fsp--;
stream_expression.add(ex3.getTree());
}
break;
}
// AST REWRITE
// elements: semi2, semi1, ex1, ex2, ex3
// token labels: semi2, semi1
// rule labels: retval, ex3, ex2, ex1
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleTokenStream stream_semi2=new RewriteRuleTokenStream(adaptor,"token semi2",semi2);
RewriteRuleTokenStream stream_semi1=new RewriteRuleTokenStream(adaptor,"token semi1",semi1);
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();
// 1579:4: -> ^( FORSTEP ^( EXPR $ex1) ^( $semi1) ^( EXPR ( $ex2)? ) ^( $semi2) ^( EXPR ( $ex3)? ) )
{
// JS.g:1579:7: ^( FORSTEP ^( EXPR $ex1) ^( $semi1) ^( EXPR ( $ex2)? ) ^( $semi2) ^( EXPR ( $ex3)? ) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(FORSTEP, "FORSTEP"), root_1);
// JS.g:1579: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:1579:33: ^( $semi1)
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot(stream_semi1.next(), root_2);
adaptor.addChild(root_1, root_2);
}
// JS.g:1579:45: ^( EXPR ( $ex2)? )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot(adaptor.create(EXPR, "EXPR"), root_2);
// JS.g:1579:53: ( $ex2)?
if ( stream_ex2.hasNext() ) {
adaptor.addChild(root_2, stream_ex2.next());
}
stream_ex2.reset();
adaptor.addChild(root_1, root_2);
}
// JS.g:1579:61: ^( $semi2)
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot(stream_semi2.next(), root_2);
adaptor.addChild(root_1, root_2);
}
// JS.g:1579:73: ^( EXPR ( $ex3)? )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot(adaptor.create(EXPR, "EXPR"), root_2);
// JS.g:1579:81: ( $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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1584:1: forControlSemic : semi1= SEMIC (ex1= expression )? semi2= SEMIC (ex2= expression )? -> ^( FORSTEP ^( EXPR ) ^( $semi1) ^( EXPR ( $ex1)? ) ^( $semi2) ^( 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 semi1=null;
Token semi2=null;
expression_return ex1 = null;
expression_return ex2 = null;
Object semi1_tree=null;
Object semi2_tree=null;
RewriteRuleTokenStream stream_SEMIC=new RewriteRuleTokenStream(adaptor,"token SEMIC");
RewriteRuleSubtreeStream stream_expression=new RewriteRuleSubtreeStream(adaptor,"rule expression");
try {
// JS.g:1585:2: (semi1= SEMIC (ex1= expression )? semi2= SEMIC (ex2= expression )? -> ^( FORSTEP ^( EXPR ) ^( $semi1) ^( EXPR ( $ex1)? ) ^( $semi2) ^( EXPR ( $ex2)? ) ) )
// JS.g:1585:4: semi1= SEMIC (ex1= expression )? semi2= SEMIC (ex2= expression )?
{
semi1=(Token)input.LT(1);
match(input,SEMIC,FOLLOW_SEMIC_in_forControlSemic6623);
stream_SEMIC.add(semi1);
// JS.g:1585:19: (ex1= expression )?
int alt73=2;
int LA73_0 = input.LA(1);
if ( ((LA73_0>=NULL && LA73_0<=FALSE)||LA73_0==EACH||LA73_0==THIS||(LA73_0>=GET && LA73_0<=SET)||(LA73_0>=WXML && LA73_0<=CLASS)||(LA73_0>=DEBUGGER && LA73_0<=VOLATILE)||LA73_0==AT||LA73_0==StringLiteral||(LA73_0>=Identifier && LA73_0<=RegularExpressionLiteral)||(LA73_0>=DecimalLiteral && LA73_0<=HexIntegerLiteral)) ) {
alt73=1;
}
else if ( ((LA73_0>=XMLFragment && LA73_0<=XMLFragmentEnd)) && ( isXmlEnabled() )) {
alt73=1;
}
else if ( (LA73_0==DELETE||LA73_0==FUNCTION||LA73_0==NEW||LA73_0==TYPEOF||LA73_0==VOID||LA73_0==YIELD||LA73_0==LBRACE||LA73_0==LPAREN||LA73_0==LBRACK||(LA73_0>=ADD && LA73_0<=SUB)||(LA73_0>=INC && LA73_0<=DEC)||(LA73_0>=NOT && LA73_0<=INV)) ) {
alt73=1;
}
switch (alt73) {
case 1 :
// JS.g:1585:19: ex1= expression
{
pushFollow(FOLLOW_expression_in_forControlSemic6627);
ex1=expression();
_fsp--;
stream_expression.add(ex1.getTree());
}
break;
}
semi2=(Token)input.LT(1);
match(input,SEMIC,FOLLOW_SEMIC_in_forControlSemic6632);
stream_SEMIC.add(semi2);
// JS.g:1585:47: (ex2= expression )?
int alt74=2;
int LA74_0 = input.LA(1);
if ( ((LA74_0>=NULL && LA74_0<=FALSE)||LA74_0==EACH||LA74_0==THIS||(LA74_0>=GET && LA74_0<=SET)||(LA74_0>=WXML && LA74_0<=CLASS)||(LA74_0>=DEBUGGER && LA74_0<=VOLATILE)||LA74_0==AT||LA74_0==StringLiteral||(LA74_0>=Identifier && LA74_0<=RegularExpressionLiteral)||(LA74_0>=DecimalLiteral && LA74_0<=HexIntegerLiteral)) ) {
alt74=1;
}
else if ( ((LA74_0>=XMLFragment && LA74_0<=XMLFragmentEnd)) && ( isXmlEnabled() )) {
alt74=1;
}
else if ( (LA74_0==DELETE||LA74_0==FUNCTION||LA74_0==NEW||LA74_0==TYPEOF||LA74_0==VOID||LA74_0==YIELD||LA74_0==LBRACE||LA74_0==LPAREN||LA74_0==LBRACK||(LA74_0>=ADD && LA74_0<=SUB)||(LA74_0>=INC && LA74_0<=DEC)||(LA74_0>=NOT && LA74_0<=INV)) ) {
alt74=1;
}
switch (alt74) {
case 1 :
// JS.g:1585:47: ex2= expression
{
pushFollow(FOLLOW_expression_in_forControlSemic6636);
ex2=expression();
_fsp--;
stream_expression.add(ex2.getTree());
}
break;
}
// AST REWRITE
// elements: ex1, semi1, ex2, semi2
// token labels: semi2, semi1
// rule labels: retval, ex2, ex1
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleTokenStream stream_semi2=new RewriteRuleTokenStream(adaptor,"token semi2",semi2);
RewriteRuleTokenStream stream_semi1=new RewriteRuleTokenStream(adaptor,"token semi1",semi1);
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();
// 1586:2: -> ^( FORSTEP ^( EXPR ) ^( $semi1) ^( EXPR ( $ex1)? ) ^( $semi2) ^( EXPR ( $ex2)? ) )
{
// JS.g:1586:5: ^( FORSTEP ^( EXPR ) ^( $semi1) ^( EXPR ( $ex1)? ) ^( $semi2) ^( EXPR ( $ex2)? ) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(FORSTEP, "FORSTEP"), root_1);
// JS.g:1586: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:1586:26: ^( $semi1)
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot(stream_semi1.next(), root_2);
adaptor.addChild(root_1, root_2);
}
// JS.g:1586:38: ^( EXPR ( $ex1)? )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot(adaptor.create(EXPR, "EXPR"), root_2);
// JS.g:1586:46: ( $ex1)?
if ( stream_ex1.hasNext() ) {
adaptor.addChild(root_2, stream_ex1.next());
}
stream_ex1.reset();
adaptor.addChild(root_1, root_2);
}
// JS.g:1586:54: ^( $semi2)
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot(stream_semi2.next(), root_2);
adaptor.addChild(root_1, root_2);
}
// JS.g:1586:66: ^( EXPR ( $ex2)? )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot(adaptor.create(EXPR, "EXPR"), root_2);
// JS.g:1586:74: ( $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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1598: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 CONTINUE288=null;
Token Identifier289=null;
semic_return semic290 = null;
Object CONTINUE288_tree=null;
Object Identifier289_tree=null;
try {
// JS.g:1599:2: ( CONTINUE ( Identifier )? semic )
// JS.g:1599:4: CONTINUE ( Identifier )? semic
{
root_0 = (Object)adaptor.nil();
CONTINUE288=(Token)input.LT(1);
match(input,CONTINUE,FOLLOW_CONTINUE_in_continueStatement6704);
CONTINUE288_tree = (Object)adaptor.create(CONTINUE288);
root_0 = (Object)adaptor.becomeRoot(CONTINUE288_tree, root_0);
if (input.LA(1) == Identifier) promoteEOL(null);
// JS.g:1599:67: ( Identifier )?
int alt75=2;
int LA75_0 = input.LA(1);
if ( (LA75_0==Identifier) ) {
alt75=1;
}
switch (alt75) {
case 1 :
// JS.g:1599:67: Identifier
{
Identifier289=(Token)input.LT(1);
match(input,Identifier,FOLLOW_Identifier_in_continueStatement6709);
Identifier289_tree = (Object)adaptor.create(Identifier289);
adaptor.addChild(root_0, Identifier289_tree);
}
break;
}
pushFollow(FOLLOW_semic_in_continueStatement6712);
semic290=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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1611: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 BREAK291=null;
Token Identifier292=null;
semic_return semic293 = null;
Object BREAK291_tree=null;
Object Identifier292_tree=null;
try {
// JS.g:1612:2: ( BREAK ( Identifier )? semic )
// JS.g:1612:4: BREAK ( Identifier )? semic
{
root_0 = (Object)adaptor.nil();
BREAK291=(Token)input.LT(1);
match(input,BREAK,FOLLOW_BREAK_in_breakStatement6731);
BREAK291_tree = (Object)adaptor.create(BREAK291);
root_0 = (Object)adaptor.becomeRoot(BREAK291_tree, root_0);
if (input.LA(1) == Identifier) promoteEOL(null);
// JS.g:1612:64: ( Identifier )?
int alt76=2;
int LA76_0 = input.LA(1);
if ( (LA76_0==Identifier) ) {
alt76=1;
}
switch (alt76) {
case 1 :
// JS.g:1612:64: Identifier
{
Identifier292=(Token)input.LT(1);
match(input,Identifier,FOLLOW_Identifier_in_breakStatement6736);
Identifier292_tree = (Object)adaptor.create(Identifier292);
adaptor.addChild(root_0, Identifier292_tree);
}
break;
}
pushFollow(FOLLOW_semic_in_breakStatement6739);
semic293=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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1632: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 RETURN294=null;
expression_return expression295 = null;
semic_return semic296 = null;
Object RETURN294_tree=null;
try {
// JS.g:1633:2: ( RETURN ( expression )? semic )
// JS.g:1633:4: RETURN ( expression )? semic
{
root_0 = (Object)adaptor.nil();
RETURN294=(Token)input.LT(1);
match(input,RETURN,FOLLOW_RETURN_in_returnStatement6758);
RETURN294_tree = (Object)adaptor.create(RETURN294);
root_0 = (Object)adaptor.becomeRoot(RETURN294_tree, root_0);
promoteEOL(null);
// JS.g:1633:34: ( expression )?
int alt77=2;
int LA77_0 = input.LA(1);
if ( ((LA77_0>=NULL && LA77_0<=FALSE)||LA77_0==EACH||LA77_0==THIS||(LA77_0>=GET && LA77_0<=SET)||(LA77_0>=WXML && LA77_0<=CLASS)||(LA77_0>=DEBUGGER && LA77_0<=VOLATILE)||LA77_0==AT||LA77_0==StringLiteral||(LA77_0>=Identifier && LA77_0<=RegularExpressionLiteral)||(LA77_0>=DecimalLiteral && LA77_0<=HexIntegerLiteral)) ) {
alt77=1;
}
else if ( ((LA77_0>=XMLFragment && LA77_0<=XMLFragmentEnd)) && ( isXmlEnabled() )) {
alt77=1;
}
else if ( (LA77_0==DELETE||LA77_0==FUNCTION||LA77_0==NEW||LA77_0==TYPEOF||LA77_0==VOID||LA77_0==YIELD||LA77_0==LBRACE||LA77_0==LPAREN||LA77_0==LBRACK||(LA77_0>=ADD && LA77_0<=SUB)||(LA77_0>=INC && LA77_0<=DEC)||(LA77_0>=NOT && LA77_0<=INV)) ) {
alt77=1;
}
switch (alt77) {
case 1 :
// JS.g:1633:34: expression
{
pushFollow(FOLLOW_expression_in_returnStatement6763);
expression295=expression();
_fsp--;
adaptor.addChild(root_0, expression295.getTree());
}
break;
}
pushFollow(FOLLOW_semic_in_returnStatement6766);
semic296=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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1640: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 WITH297=null;
Token LPAREN298=null;
Token RPAREN300=null;
expression_return expression299 = null;
statement_return statement301 = null;
Object WITH297_tree=null;
Object LPAREN298_tree=null;
Object RPAREN300_tree=null;
try {
// JS.g:1641:2: ( WITH LPAREN expression RPAREN statement )
// JS.g:1641:4: WITH LPAREN expression RPAREN statement
{
root_0 = (Object)adaptor.nil();
WITH297=(Token)input.LT(1);
match(input,WITH,FOLLOW_WITH_in_withStatement6783);
WITH297_tree = (Object)adaptor.create(WITH297);
root_0 = (Object)adaptor.becomeRoot(WITH297_tree, root_0);
LPAREN298=(Token)input.LT(1);
match(input,LPAREN,FOLLOW_LPAREN_in_withStatement6786);
pushFollow(FOLLOW_expression_in_withStatement6789);
expression299=expression();
_fsp--;
adaptor.addChild(root_0, expression299.getTree());
RPAREN300=(Token)input.LT(1);
match(input,RPAREN,FOLLOW_RPAREN_in_withStatement6791);
pushFollow(FOLLOW_statement_in_withStatement6794);
statement301=statement();
_fsp--;
adaptor.addChild(root_0, statement301.getTree());
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1648: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 SWITCH302=null;
Token LPAREN303=null;
Token RPAREN305=null;
Token LBRACE306=null;
Token RBRACE309=null;
expression_return expression304 = null;
defaultClause_return defaultClause307 = null;
caseClause_return caseClause308 = null;
Object SWITCH302_tree=null;
Object LPAREN303_tree=null;
Object RPAREN305_tree=null;
Object LBRACE306_tree=null;
Object RBRACE309_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");
try {
// JS.g:1649:2: ( SWITCH LPAREN expression RPAREN LBRACE ( defaultClause | caseClause )* RBRACE -> ^( SWITCH expression ( defaultClause )* ( caseClause )* ) )
// JS.g:1649:4: SWITCH LPAREN expression RPAREN LBRACE ( defaultClause | caseClause )* RBRACE
{
SWITCH302=(Token)input.LT(1);
match(input,SWITCH,FOLLOW_SWITCH_in_switchStatement6810);
stream_SWITCH.add(SWITCH302);
LPAREN303=(Token)input.LT(1);
match(input,LPAREN,FOLLOW_LPAREN_in_switchStatement6812);
stream_LPAREN.add(LPAREN303);
pushFollow(FOLLOW_expression_in_switchStatement6814);
expression304=expression();
_fsp--;
stream_expression.add(expression304.getTree());
RPAREN305=(Token)input.LT(1);
match(input,RPAREN,FOLLOW_RPAREN_in_switchStatement6816);
stream_RPAREN.add(RPAREN305);
LBRACE306=(Token)input.LT(1);
match(input,LBRACE,FOLLOW_LBRACE_in_switchStatement6818);
stream_LBRACE.add(LBRACE306);
// JS.g:1649:43: ( defaultClause | caseClause )*
loop78:
do {
int alt78=3;
int LA78_0 = input.LA(1);
if ( (LA78_0==DEFAULT) ) {
alt78=1;
}
else if ( (LA78_0==CASE) ) {
alt78=2;
}
switch (alt78) {
case 1 :
// JS.g:1649:45: defaultClause
{
pushFollow(FOLLOW_defaultClause_in_switchStatement6822);
defaultClause307=defaultClause();
_fsp--;
stream_defaultClause.add(defaultClause307.getTree());
}
break;
case 2 :
// JS.g:1649:61: caseClause
{
pushFollow(FOLLOW_caseClause_in_switchStatement6826);
caseClause308=caseClause();
_fsp--;
stream_caseClause.add(caseClause308.getTree());
}
break;
default :
break loop78;
}
} while (true);
RBRACE309=(Token)input.LT(1);
match(input,RBRACE,FOLLOW_RBRACE_in_switchStatement6831);
stream_RBRACE.add(RBRACE309);
// AST REWRITE
// elements: SWITCH, defaultClause, expression, caseClause
// 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();
// 1650:2: -> ^( SWITCH expression ( defaultClause )* ( caseClause )* )
{
// JS.g:1650: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:1650:26: ( defaultClause )*
while ( stream_defaultClause.hasNext() ) {
adaptor.addChild(root_1, stream_defaultClause.next());
}
stream_defaultClause.reset();
// JS.g:1650: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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1653: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 CASE310=null;
Token COLON312=null;
expression_return expression311 = null;
statement_return statement313 = null;
Object CASE310_tree=null;
Object COLON312_tree=null;
try {
// JS.g:1654:2: ( CASE expression COLON ( statement )* )
// JS.g:1654:4: CASE expression COLON ( statement )*
{
root_0 = (Object)adaptor.nil();
CASE310=(Token)input.LT(1);
match(input,CASE,FOLLOW_CASE_in_caseClause6859);
CASE310_tree = (Object)adaptor.create(CASE310);
root_0 = (Object)adaptor.becomeRoot(CASE310_tree, root_0);
pushFollow(FOLLOW_expression_in_caseClause6862);
expression311=expression();
_fsp--;
adaptor.addChild(root_0, expression311.getTree());
COLON312=(Token)input.LT(1);
match(input,COLON,FOLLOW_COLON_in_caseClause6864);
// JS.g:1654:28: ( statement )*
loop79:
do {
int alt79=2;
int LA79_0 = input.LA(1);
if ( (LA79_0==DEFAULT) ) {
int LA79_2 = input.LA(2);
if ( (LA79_2==WXML) && ( isXmlEnabled() )) {
alt79=1;
}
}
else if ( ((LA79_0>=NULL && LA79_0<=FALSE)||LA79_0==EACH||LA79_0==THIS||LA79_0==VAR||(LA79_0>=GET && LA79_0<=SET)||(LA79_0>=WXML && LA79_0<=CLASS)||(LA79_0>=DEBUGGER && LA79_0<=LBRACE)||LA79_0==SEMIC||LA79_0==AT||LA79_0==StringLiteral||(LA79_0>=Identifier && LA79_0<=RegularExpressionLiteral)||(LA79_0>=DecimalLiteral && LA79_0<=HexIntegerLiteral)) ) {
alt79=1;
}
else if ( ((LA79_0>=XMLFragment && LA79_0<=XMLFragmentEnd)) && ( isXmlEnabled() )) {
alt79=1;
}
else if ( (LA79_0==BREAK||LA79_0==CONTINUE||(LA79_0>=DELETE && LA79_0<=DO)||LA79_0==FOR||(LA79_0>=FUNCTION && LA79_0<=IF)||(LA79_0>=NEW && LA79_0<=SWITCH)||(LA79_0>=THROW && LA79_0<=TYPEOF)||(LA79_0>=VOID && LA79_0<=WITH)||LA79_0==YIELD||LA79_0==CONST||LA79_0==LPAREN||LA79_0==LBRACK||(LA79_0>=ADD && LA79_0<=SUB)||(LA79_0>=INC && LA79_0<=DEC)||(LA79_0>=NOT && LA79_0<=INV)) ) {
alt79=1;
}
switch (alt79) {
case 1 :
// JS.g:1654:28: statement
{
pushFollow(FOLLOW_statement_in_caseClause6867);
statement313=statement();
_fsp--;
adaptor.addChild(root_0, statement313.getTree());
}
break;
default :
break loop79;
}
} 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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1657: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 DEFAULT314=null;
Token COLON315=null;
statement_return statement316 = null;
Object DEFAULT314_tree=null;
Object COLON315_tree=null;
try {
// JS.g:1658:2: ( DEFAULT COLON ( statement )* )
// JS.g:1658:4: DEFAULT COLON ( statement )*
{
root_0 = (Object)adaptor.nil();
DEFAULT314=(Token)input.LT(1);
match(input,DEFAULT,FOLLOW_DEFAULT_in_defaultClause6880);
DEFAULT314_tree = (Object)adaptor.create(DEFAULT314);
root_0 = (Object)adaptor.becomeRoot(DEFAULT314_tree, root_0);
COLON315=(Token)input.LT(1);
match(input,COLON,FOLLOW_COLON_in_defaultClause6883);
// JS.g:1658:20: ( statement )*
loop80:
do {
int alt80=2;
int LA80_0 = input.LA(1);
if ( (LA80_0==DEFAULT) ) {
int LA80_2 = input.LA(2);
if ( (LA80_2==WXML) && ( isXmlEnabled() )) {
alt80=1;
}
}
else if ( ((LA80_0>=NULL && LA80_0<=FALSE)||LA80_0==EACH||LA80_0==THIS||LA80_0==VAR||(LA80_0>=GET && LA80_0<=SET)||(LA80_0>=WXML && LA80_0<=CLASS)||(LA80_0>=DEBUGGER && LA80_0<=LBRACE)||LA80_0==SEMIC||LA80_0==AT||LA80_0==StringLiteral||(LA80_0>=Identifier && LA80_0<=RegularExpressionLiteral)||(LA80_0>=DecimalLiteral && LA80_0<=HexIntegerLiteral)) ) {
alt80=1;
}
else if ( ((LA80_0>=XMLFragment && LA80_0<=XMLFragmentEnd)) && ( isXmlEnabled() )) {
alt80=1;
}
else if ( (LA80_0==BREAK||LA80_0==CONTINUE||(LA80_0>=DELETE && LA80_0<=DO)||LA80_0==FOR||(LA80_0>=FUNCTION && LA80_0<=IF)||(LA80_0>=NEW && LA80_0<=SWITCH)||(LA80_0>=THROW && LA80_0<=TYPEOF)||(LA80_0>=VOID && LA80_0<=WITH)||LA80_0==YIELD||LA80_0==CONST||LA80_0==LPAREN||LA80_0==LBRACK||(LA80_0>=ADD && LA80_0<=SUB)||(LA80_0>=INC && LA80_0<=DEC)||(LA80_0>=NOT && LA80_0<=INV)) ) {
alt80=1;
}
switch (alt80) {
case 1 :
// JS.g:1658:20: statement
{
pushFollow(FOLLOW_statement_in_defaultClause6886);
statement316=statement();
_fsp--;
adaptor.addChild(root_0, statement316.getTree());
}
break;
default :
break loop80;
}
} 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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1665:1: labelledStatement : identifier COLON sourceElement -> ^( LABELLED identifier sourceElement ) ;
public final labelledStatement_return labelledStatement() throws RecognitionException {
labelledStatement_return retval = new labelledStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COLON318=null;
identifier_return identifier317 = null;
sourceElement_return sourceElement319 = null;
Object COLON318_tree=null;
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleSubtreeStream stream_sourceElement=new RewriteRuleSubtreeStream(adaptor,"rule sourceElement");
RewriteRuleSubtreeStream stream_identifier=new RewriteRuleSubtreeStream(adaptor,"rule identifier");
try {
// JS.g:1666:2: ( identifier COLON sourceElement -> ^( LABELLED identifier sourceElement ) )
// JS.g:1666:4: identifier COLON sourceElement
{
pushFollow(FOLLOW_identifier_in_labelledStatement6903);
identifier317=identifier();
_fsp--;
stream_identifier.add(identifier317.getTree());
COLON318=(Token)input.LT(1);
match(input,COLON,FOLLOW_COLON_in_labelledStatement6905);
stream_COLON.add(COLON318);
pushFollow(FOLLOW_sourceElement_in_labelledStatement6907);
sourceElement319=sourceElement();
_fsp--;
stream_sourceElement.add(sourceElement319.getTree());
// AST REWRITE
// elements: identifier, 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();
// 1667:2: -> ^( LABELLED identifier sourceElement )
{
// JS.g:1667:5: ^( LABELLED identifier sourceElement )
{
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_sourceElement.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1689: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 THROW320=null;
expression_return expression321 = null;
semic_return semic322 = null;
Object THROW320_tree=null;
try {
// JS.g:1690:2: ( THROW expression semic )
// JS.g:1690:4: THROW expression semic
{
root_0 = (Object)adaptor.nil();
THROW320=(Token)input.LT(1);
match(input,THROW,FOLLOW_THROW_in_throwStatement6938);
THROW320_tree = (Object)adaptor.create(THROW320);
root_0 = (Object)adaptor.becomeRoot(THROW320_tree, root_0);
promoteEOL(null);
pushFollow(FOLLOW_expression_in_throwStatement6943);
expression321=expression();
_fsp--;
adaptor.addChild(root_0, expression321.getTree());
pushFollow(FOLLOW_semic_in_throwStatement6945);
semic322=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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1697: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 TRY323=null;
block_return block324 = null;
catchClause_return catchClause325 = null;
finallyClause_return finallyClause326 = null;
finallyClause_return finallyClause327 = null;
Object TRY323_tree=null;
try {
// JS.g:1698:2: ( TRY block ( ( catchClause )+ ( finallyClause )? | finallyClause ) )
// JS.g:1698:4: TRY block ( ( catchClause )+ ( finallyClause )? | finallyClause )
{
root_0 = (Object)adaptor.nil();
TRY323=(Token)input.LT(1);
match(input,TRY,FOLLOW_TRY_in_tryStatement6962);
TRY323_tree = (Object)adaptor.create(TRY323);
root_0 = (Object)adaptor.becomeRoot(TRY323_tree, root_0);
pushFollow(FOLLOW_block_in_tryStatement6965);
block324=block();
_fsp--;
adaptor.addChild(root_0, block324.getTree());
// JS.g:1698:15: ( ( catchClause )+ ( finallyClause )? | finallyClause )
int alt83=2;
int LA83_0 = input.LA(1);
if ( (LA83_0==CATCH) ) {
alt83=1;
}
else if ( (LA83_0==FINALLY) ) {
alt83=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("1698:15: ( ( catchClause )+ ( finallyClause )? | finallyClause )", 83, 0, input);
throw nvae;
}
switch (alt83) {
case 1 :
// JS.g:1698:17: ( catchClause )+ ( finallyClause )?
{
// JS.g:1698:17: ( catchClause )+
int cnt81=0;
loop81:
do {
int alt81=2;
int LA81_0 = input.LA(1);
if ( (LA81_0==CATCH) ) {
alt81=1;
}
switch (alt81) {
case 1 :
// JS.g:1698:17: catchClause
{
pushFollow(FOLLOW_catchClause_in_tryStatement6969);
catchClause325=catchClause();
_fsp--;
adaptor.addChild(root_0, catchClause325.getTree());
}
break;
default :
if ( cnt81 >= 1 ) break loop81;
EarlyExitException eee =
new EarlyExitException(81, input);
throw eee;
}
cnt81++;
} while (true);
// JS.g:1698:30: ( finallyClause )?
int alt82=2;
int LA82_0 = input.LA(1);
if ( (LA82_0==FINALLY) ) {
alt82=1;
}
switch (alt82) {
case 1 :
// JS.g:1698:30: finallyClause
{
pushFollow(FOLLOW_finallyClause_in_tryStatement6972);
finallyClause326=finallyClause();
_fsp--;
adaptor.addChild(root_0, finallyClause326.getTree());
}
break;
}
}
break;
case 2 :
// JS.g:1698:47: finallyClause
{
pushFollow(FOLLOW_finallyClause_in_tryStatement6977);
finallyClause327=finallyClause();
_fsp--;
adaptor.addChild(root_0, finallyClause327.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1701: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 CATCH328=null;
Token LPAREN329=null;
Token RPAREN332=null;
identifier_return identifier330 = null;
catchFilter_return catchFilter331 = null;
block_return block333 = null;
Object CATCH328_tree=null;
Object LPAREN329_tree=null;
Object RPAREN332_tree=null;
try {
// JS.g:1702:2: ( CATCH LPAREN identifier ( catchFilter )? RPAREN block )
// JS.g:1702:4: CATCH LPAREN identifier ( catchFilter )? RPAREN block
{
root_0 = (Object)adaptor.nil();
CATCH328=(Token)input.LT(1);
match(input,CATCH,FOLLOW_CATCH_in_catchClause6991);
CATCH328_tree = (Object)adaptor.create(CATCH328);
root_0 = (Object)adaptor.becomeRoot(CATCH328_tree, root_0);
LPAREN329=(Token)input.LT(1);
match(input,LPAREN,FOLLOW_LPAREN_in_catchClause6994);
pushFollow(FOLLOW_identifier_in_catchClause6997);
identifier330=identifier();
_fsp--;
adaptor.addChild(root_0, identifier330.getTree());
// JS.g:1702:30: ( catchFilter )?
int alt84=2;
int LA84_0 = input.LA(1);
if ( (LA84_0==IF) ) {
alt84=1;
}
switch (alt84) {
case 1 :
// JS.g:1702:30: catchFilter
{
pushFollow(FOLLOW_catchFilter_in_catchClause6999);
catchFilter331=catchFilter();
_fsp--;
adaptor.addChild(root_0, catchFilter331.getTree());
}
break;
}
RPAREN332=(Token)input.LT(1);
match(input,RPAREN,FOLLOW_RPAREN_in_catchClause7002);
pushFollow(FOLLOW_block_in_catchClause7005);
block333=block();
_fsp--;
adaptor.addChild(root_0, block333.getTree());
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1705:1: catchFilter : IF expression ;
public final catchFilter_return catchFilter() throws RecognitionException {
catchFilter_return retval = new catchFilter_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IF334=null;
expression_return expression335 = null;
Object IF334_tree=null;
try {
// JS.g:1706:2: ( IF expression )
// JS.g:1706:4: IF expression
{
root_0 = (Object)adaptor.nil();
IF334=(Token)input.LT(1);
match(input,IF,FOLLOW_IF_in_catchFilter7016);
IF334_tree = (Object)adaptor.create(IF334);
adaptor.addChild(root_0, IF334_tree);
pushFollow(FOLLOW_expression_in_catchFilter7018);
expression335=expression();
_fsp--;
adaptor.addChild(root_0, expression335.getTree());
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
finally {
}
return retval;
}
// $ANTLR end catchFilter
public static class finallyClause_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start finallyClause
// JS.g:1709: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 FINALLY336=null;
block_return block337 = null;
Object FINALLY336_tree=null;
try {
// JS.g:1710:2: ( FINALLY block )
// JS.g:1710:4: FINALLY block
{
root_0 = (Object)adaptor.nil();
FINALLY336=(Token)input.LT(1);
match(input,FINALLY,FOLLOW_FINALLY_in_finallyClause7030);
FINALLY336_tree = (Object)adaptor.create(FINALLY336);
root_0 = (Object)adaptor.becomeRoot(FINALLY336_tree, root_0);
pushFollow(FOLLOW_block_in_finallyClause7033);
block337=block();
_fsp--;
adaptor.addChild(root_0, block337.getTree());
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1723:1: functionDeclaration : function= FUNCTION name= identifier formalParameterList functionBody -> ^( FUNCTION_DECLARATION[$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 function=null;
identifier_return name = null;
formalParameterList_return formalParameterList338 = null;
functionBody_return functionBody339 = null;
Object function_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:1724:2: (function= FUNCTION name= identifier formalParameterList functionBody -> ^( FUNCTION_DECLARATION[$function] $name formalParameterList functionBody ) )
// JS.g:1724:4: function= FUNCTION name= identifier formalParameterList functionBody
{
function=(Token)input.LT(1);
match(input,FUNCTION,FOLLOW_FUNCTION_in_functionDeclaration7056);
stream_FUNCTION.add(function);
pushFollow(FOLLOW_identifier_in_functionDeclaration7060);
name=identifier();
_fsp--;
stream_identifier.add(name.getTree());
pushFollow(FOLLOW_formalParameterList_in_functionDeclaration7062);
formalParameterList338=formalParameterList();
_fsp--;
stream_formalParameterList.add(formalParameterList338.getTree());
pushFollow(FOLLOW_functionBody_in_functionDeclaration7064);
functionBody339=functionBody();
_fsp--;
stream_functionBody.add(functionBody339.getTree());
// AST REWRITE
// elements: functionBody, name, formalParameterList
// 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();
// 1725:2: -> ^( FUNCTION_DECLARATION[$function] $name formalParameterList functionBody )
{
// JS.g:1725:5: ^( FUNCTION_DECLARATION[$function] $name formalParameterList functionBody )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(FUNCTION_DECLARATION, function), 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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1728: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 FUNCTION340=null;
identifier_return name = null;
formalParameterList_return formalParameterList341 = null;
functionBody_return functionBody342 = null;
Object FUNCTION340_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:1729:2: ( FUNCTION (name= identifier )? formalParameterList functionBody -> ^( FUNCTION ( $name)? formalParameterList functionBody ) )
// JS.g:1729:4: FUNCTION (name= identifier )? formalParameterList functionBody
{
FUNCTION340=(Token)input.LT(1);
match(input,FUNCTION,FOLLOW_FUNCTION_in_functionExpression7092);
stream_FUNCTION.add(FUNCTION340);
// JS.g:1729:17: (name= identifier )?
int alt85=2;
int LA85_0 = input.LA(1);
if ( (LA85_0==EACH||(LA85_0>=GET && LA85_0<=SET)||(LA85_0>=WXML && LA85_0<=CLASS)||(LA85_0>=DEBUGGER && LA85_0<=VOLATILE)||LA85_0==Identifier) ) {
alt85=1;
}
switch (alt85) {
case 1 :
// JS.g:1729:17: name= identifier
{
pushFollow(FOLLOW_identifier_in_functionExpression7096);
name=identifier();
_fsp--;
stream_identifier.add(name.getTree());
}
break;
}
pushFollow(FOLLOW_formalParameterList_in_functionExpression7099);
formalParameterList341=formalParameterList();
_fsp--;
stream_formalParameterList.add(formalParameterList341.getTree());
pushFollow(FOLLOW_functionBody_in_functionExpression7101);
functionBody342=functionBody();
_fsp--;
stream_functionBody.add(functionBody342.getTree());
// AST REWRITE
// elements: FUNCTION, functionBody, formalParameterList, 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();
// 1730:2: -> ^( FUNCTION ( $name)? formalParameterList functionBody )
{
// JS.g:1730:5: ^( FUNCTION ( $name)? formalParameterList functionBody )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_FUNCTION.next(), root_1);
// JS.g:1730: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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
finally {
}
return retval;
}
// $ANTLR end functionExpression
public static class formalParameter_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start formalParameter
// JS.g:1733:1: formalParameter : identifier ;
public final formalParameter_return formalParameter() throws RecognitionException {
formalParameter_return retval = new formalParameter_return();
retval.start = input.LT(1);
Object root_0 = null;
identifier_return identifier343 = null;
try {
// JS.g:1734:2: ( identifier )
// JS.g:1734:4: identifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_identifier_in_formalParameter7129);
identifier343=identifier();
_fsp--;
root_0 = (Object)adaptor.becomeRoot(identifier343.getTree(), root_0);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
finally {
}
return retval;
}
// $ANTLR end formalParameter
public static class formalParameterList_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start formalParameterList
// JS.g:1737:1: formalParameterList : LPAREN ( formalParameter ( COMMA formalParameter )* )? RPAREN -> ^( ARGUMENTS ( formalParameter )* ) ;
public final formalParameterList_return formalParameterList() throws RecognitionException {
formalParameterList_return retval = new formalParameterList_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LPAREN344=null;
Token COMMA346=null;
Token RPAREN348=null;
formalParameter_return formalParameter345 = null;
formalParameter_return formalParameter347 = null;
Object LPAREN344_tree=null;
Object COMMA346_tree=null;
Object RPAREN348_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_formalParameter=new RewriteRuleSubtreeStream(adaptor,"rule formalParameter");
try {
// JS.g:1738:2: ( LPAREN ( formalParameter ( COMMA formalParameter )* )? RPAREN -> ^( ARGUMENTS ( formalParameter )* ) )
// JS.g:1738:4: LPAREN ( formalParameter ( COMMA formalParameter )* )? RPAREN
{
LPAREN344=(Token)input.LT(1);
match(input,LPAREN,FOLLOW_LPAREN_in_formalParameterList7141);
stream_LPAREN.add(LPAREN344);
// JS.g:1738:11: ( formalParameter ( COMMA formalParameter )* )?
int alt87=2;
int LA87_0 = input.LA(1);
if ( (LA87_0==EACH||(LA87_0>=GET && LA87_0<=SET)||(LA87_0>=WXML && LA87_0<=CLASS)||(LA87_0>=DEBUGGER && LA87_0<=VOLATILE)||LA87_0==Identifier) ) {
alt87=1;
}
switch (alt87) {
case 1 :
// JS.g:1738:13: formalParameter ( COMMA formalParameter )*
{
pushFollow(FOLLOW_formalParameter_in_formalParameterList7145);
formalParameter345=formalParameter();
_fsp--;
stream_formalParameter.add(formalParameter345.getTree());
// JS.g:1738:29: ( COMMA formalParameter )*
loop86:
do {
int alt86=2;
int LA86_0 = input.LA(1);
if ( (LA86_0==COMMA) ) {
alt86=1;
}
switch (alt86) {
case 1 :
// JS.g:1738:31: COMMA formalParameter
{
COMMA346=(Token)input.LT(1);
match(input,COMMA,FOLLOW_COMMA_in_formalParameterList7149);
stream_COMMA.add(COMMA346);
pushFollow(FOLLOW_formalParameter_in_formalParameterList7151);
formalParameter347=formalParameter();
_fsp--;
stream_formalParameter.add(formalParameter347.getTree());
}
break;
default :
break loop86;
}
} while (true);
}
break;
}
RPAREN348=(Token)input.LT(1);
match(input,RPAREN,FOLLOW_RPAREN_in_formalParameterList7159);
stream_RPAREN.add(RPAREN348);
// AST REWRITE
// elements: formalParameter
// 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();
// 1739:2: -> ^( ARGUMENTS ( formalParameter )* )
{
// JS.g:1739:5: ^( ARGUMENTS ( formalParameter )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(ARGUMENTS, "ARGUMENTS"), root_1);
// JS.g:1739:18: ( formalParameter )*
while ( stream_formalParameter.hasNext() ) {
adaptor.addChild(root_1, stream_formalParameter.next());
}
stream_formalParameter.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1742: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 RBRACE350=null;
sourceElement_return sourceElement349 = null;
Object lb_tree=null;
Object RBRACE350_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");
pushState(JSParserRule.FUNCTION_BODY);
try {
// JS.g:1744:2: (lb= LBRACE ( sourceElement )* RBRACE -> ^( BLOCK[$lb, \"BLOCK\"] ( sourceElement )* ) )
// JS.g:1744:4: lb= LBRACE ( sourceElement )* RBRACE
{
lb=(Token)input.LT(1);
match(input,LBRACE,FOLLOW_LBRACE_in_functionBody7189);
stream_LBRACE.add(lb);
// JS.g:1744:14: ( sourceElement )*
loop88:
do {
int alt88=2;
int LA88_0 = input.LA(1);
if ( ((LA88_0>=NULL && LA88_0<=FALSE)||(LA88_0>=EACH && LA88_0<=FUNCTION)||LA88_0==THIS||LA88_0==VAR||(LA88_0>=GET && LA88_0<=SET)||(LA88_0>=WXML && LA88_0<=CLASS)||(LA88_0>=DEBUGGER && LA88_0<=LBRACE)||LA88_0==SEMIC||LA88_0==AT||LA88_0==StringLiteral||(LA88_0>=Identifier && LA88_0<=RegularExpressionLiteral)||(LA88_0>=DecimalLiteral && LA88_0<=HexIntegerLiteral)) ) {
alt88=1;
}
else if ( ((LA88_0>=XMLFragment && LA88_0<=XMLFragmentEnd)) && ( isXmlEnabled() )) {
alt88=1;
}
else if ( (LA88_0==BREAK||LA88_0==CONTINUE||(LA88_0>=DELETE && LA88_0<=DO)||LA88_0==FOR||LA88_0==IF||(LA88_0>=NEW && LA88_0<=SWITCH)||(LA88_0>=THROW && LA88_0<=TYPEOF)||(LA88_0>=VOID && LA88_0<=WITH)||LA88_0==YIELD||LA88_0==CONST||LA88_0==LPAREN||LA88_0==LBRACK||(LA88_0>=ADD && LA88_0<=SUB)||(LA88_0>=INC && LA88_0<=DEC)||(LA88_0>=NOT && LA88_0<=INV)) ) {
alt88=1;
}
else if ( (LA88_0==DEFAULT) && ( isXmlEnabled() )) {
alt88=1;
}
switch (alt88) {
case 1 :
// JS.g:1744:14: sourceElement
{
pushFollow(FOLLOW_sourceElement_in_functionBody7191);
sourceElement349=sourceElement();
_fsp--;
stream_sourceElement.add(sourceElement349.getTree());
}
break;
default :
break loop88;
}
} while (true);
RBRACE350=(Token)input.LT(1);
match(input,RBRACE,FOLLOW_RBRACE_in_functionBody7194);
stream_RBRACE.add(RBRACE350);
// 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();
// 1745:2: -> ^( BLOCK[$lb, \"BLOCK\"] ( sourceElement )* )
{
// JS.g:1745: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:1745: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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
finally {
popState();
}
return retval;
}
// $ANTLR end functionBody
public static class getMethodDeclaration_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start getMethodDeclaration
// JS.g:1754:1: getMethodDeclaration : get= GET name= identifier LPAREN RPAREN functionBody -> ^( GETTER[$get] 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 get=null;
Token LPAREN351=null;
Token RPAREN352=null;
identifier_return name = null;
functionBody_return functionBody353 = null;
Object get_tree=null;
Object LPAREN351_tree=null;
Object RPAREN352_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:1755:3: (get= GET name= identifier LPAREN RPAREN functionBody -> ^( GETTER[$get] identifier functionBody ) )
// JS.g:1755:5: get= GET name= identifier LPAREN RPAREN functionBody
{
get=(Token)input.LT(1);
match(input,GET,FOLLOW_GET_in_getMethodDeclaration7231);
stream_GET.add(get);
pushFollow(FOLLOW_identifier_in_getMethodDeclaration7235);
name=identifier();
_fsp--;
stream_identifier.add(name.getTree());
LPAREN351=(Token)input.LT(1);
match(input,LPAREN,FOLLOW_LPAREN_in_getMethodDeclaration7237);
stream_LPAREN.add(LPAREN351);
RPAREN352=(Token)input.LT(1);
match(input,RPAREN,FOLLOW_RPAREN_in_getMethodDeclaration7239);
stream_RPAREN.add(RPAREN352);
pushFollow(FOLLOW_functionBody_in_getMethodDeclaration7241);
functionBody353=functionBody();
_fsp--;
stream_functionBody.add(functionBody353.getTree());
// AST REWRITE
// elements: identifier, functionBody
// 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();
// 1756:4: -> ^( GETTER[$get] identifier functionBody )
{
// JS.g:1756:7: ^( GETTER[$get] identifier functionBody )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(GETTER, get), 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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1759:1: setMethodDeclaration : set= SET name= identifier LPAREN param= identifier RPAREN functionBody -> ^( SETTER[$set] $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 set=null;
Token LPAREN354=null;
Token RPAREN355=null;
identifier_return name = null;
identifier_return param = null;
functionBody_return functionBody356 = null;
Object set_tree=null;
Object LPAREN354_tree=null;
Object RPAREN355_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:1760:3: (set= SET name= identifier LPAREN param= identifier RPAREN functionBody -> ^( SETTER[$set] $name $param functionBody ) )
// JS.g:1760:5: set= SET name= identifier LPAREN param= identifier RPAREN functionBody
{
set=(Token)input.LT(1);
match(input,SET,FOLLOW_SET_in_setMethodDeclaration7272);
stream_SET.add(set);
pushFollow(FOLLOW_identifier_in_setMethodDeclaration7276);
name=identifier();
_fsp--;
stream_identifier.add(name.getTree());
LPAREN354=(Token)input.LT(1);
match(input,LPAREN,FOLLOW_LPAREN_in_setMethodDeclaration7278);
stream_LPAREN.add(LPAREN354);
pushFollow(FOLLOW_identifier_in_setMethodDeclaration7282);
param=identifier();
_fsp--;
stream_identifier.add(param.getTree());
RPAREN355=(Token)input.LT(1);
match(input,RPAREN,FOLLOW_RPAREN_in_setMethodDeclaration7284);
stream_RPAREN.add(RPAREN355);
pushFollow(FOLLOW_functionBody_in_setMethodDeclaration7286);
functionBody356=functionBody();
_fsp--;
stream_functionBody.add(functionBody356.getTree());
// AST REWRITE
// elements: param, functionBody, 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();
// 1761:5: -> ^( SETTER[$set] $name $param functionBody )
{
// JS.g:1761:8: ^( SETTER[$set] $name $param functionBody )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(SETTER, set), 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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
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:1768:1: program : sourceElementSync ( sourceElement sourceElementSync )* EOF ;
public final program_return program() throws RecognitionException {
program_return retval = new program_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EOF360=null;
sourceElementSync_return sourceElementSync357 = null;
sourceElement_return sourceElement358 = null;
sourceElementSync_return sourceElementSync359 = null;
Object EOF360_tree=null;
pushState(JSParserRule.PROGRAM);
try {
// JS.g:1770:2: ( sourceElementSync ( sourceElement sourceElementSync )* EOF )
// JS.g:1770:4: sourceElementSync ( sourceElement sourceElementSync )* EOF
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_sourceElementSync_in_program7327);
sourceElementSync357=sourceElementSync();
_fsp--;
adaptor.addChild(root_0, sourceElementSync357.getTree());
// JS.g:1770:22: ( sourceElement sourceElementSync )*
loop89:
do {
int alt89=2;
int LA89_0 = input.LA(1);
if ( ((LA89_0>=NULL && LA89_0<=FALSE)||(LA89_0>=EACH && LA89_0<=FUNCTION)||LA89_0==THIS||LA89_0==VAR||(LA89_0>=GET && LA89_0<=SET)||(LA89_0>=WXML && LA89_0<=CLASS)||(LA89_0>=DEBUGGER && LA89_0<=LBRACE)||LA89_0==SEMIC||LA89_0==AT||LA89_0==StringLiteral||(LA89_0>=Identifier && LA89_0<=RegularExpressionLiteral)||(LA89_0>=DecimalLiteral && LA89_0<=HexIntegerLiteral)) ) {
alt89=1;
}
else if ( ((LA89_0>=XMLFragment && LA89_0<=XMLFragmentEnd)) && ( isXmlEnabled() )) {
alt89=1;
}
else if ( (LA89_0==BREAK||LA89_0==CONTINUE||(LA89_0>=DELETE && LA89_0<=DO)||LA89_0==FOR||LA89_0==IF||(LA89_0>=NEW && LA89_0<=SWITCH)||(LA89_0>=THROW && LA89_0<=TYPEOF)||(LA89_0>=VOID && LA89_0<=WITH)||LA89_0==YIELD||LA89_0==CONST||LA89_0==LPAREN||LA89_0==LBRACK||(LA89_0>=ADD && LA89_0<=SUB)||(LA89_0>=INC && LA89_0<=DEC)||(LA89_0>=NOT && LA89_0<=INV)) ) {
alt89=1;
}
else if ( (LA89_0==DEFAULT) && ( isXmlEnabled() )) {
alt89=1;
}
switch (alt89) {
case 1 :
// JS.g:1770:23: sourceElement sourceElementSync
{
pushFollow(FOLLOW_sourceElement_in_program7330);
sourceElement358=sourceElement();
_fsp--;
adaptor.addChild(root_0, sourceElement358.getTree());
pushFollow(FOLLOW_sourceElementSync_in_program7332);
sourceElementSync359=sourceElementSync();
_fsp--;
adaptor.addChild(root_0, sourceElementSync359.getTree());
}
break;
default :
break loop89;
}
} while (true);
EOF360=(Token)input.LT(1);
match(input,EOF,FOLLOW_EOF_in_program7336);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
finally {
}
return retval;
}
// $ANTLR end program
public static class sourceElementSync_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start sourceElementSync
// JS.g:1773:1: sourceElementSync : ;
public final sourceElementSync_return sourceElementSync() throws RecognitionException {
sourceElementSync_return retval = new sourceElementSync_return();
retval.start = input.LT(1);
Object root_0 = null;
syncToSet();
try {
// JS.g:1777:2: ()
// JS.g:1778:3:
{
root_0 = (Object)adaptor.nil();
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
finally {
}
return retval;
}
// $ANTLR end sourceElementSync
public static class sourceElement_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start sourceElement
// JS.g:1785: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 functionDeclaration361 = null;
statement_return statement362 = null;
try {
// JS.g:1790:2: ({...}? functionDeclaration | statement )
int alt90=2;
int LA90_0 = input.LA(1);
if ( (LA90_0==FUNCTION) ) {
int LA90_1 = input.LA(2);
if ( ( input.LA(1) == FUNCTION ) ) {
alt90=1;
}
else if ( (true) ) {
alt90=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("1785:1: sourceElement options {k=1; } : ({...}? functionDeclaration | statement );", 90, 1, input);
throw nvae;
}
}
else if ( ((LA90_0>=NULL && LA90_0<=FALSE)||LA90_0==EACH||LA90_0==THIS||LA90_0==VAR||(LA90_0>=GET && LA90_0<=SET)||(LA90_0>=WXML && LA90_0<=CLASS)||(LA90_0>=DEBUGGER && LA90_0<=LBRACE)||LA90_0==SEMIC||LA90_0==AT||LA90_0==StringLiteral||(LA90_0>=Identifier && LA90_0<=RegularExpressionLiteral)||(LA90_0>=DecimalLiteral && LA90_0<=HexIntegerLiteral)) ) {
alt90=2;
}
else if ( ((LA90_0>=XMLFragment && LA90_0<=XMLFragmentEnd)) && ( isXmlEnabled() )) {
alt90=2;
}
else if ( (LA90_0==BREAK||LA90_0==CONTINUE||(LA90_0>=DELETE && LA90_0<=DO)||LA90_0==FOR||LA90_0==IF||(LA90_0>=NEW && LA90_0<=SWITCH)||(LA90_0>=THROW && LA90_0<=TYPEOF)||(LA90_0>=VOID && LA90_0<=WITH)||LA90_0==YIELD||LA90_0==CONST||LA90_0==LPAREN||LA90_0==LBRACK||(LA90_0>=ADD && LA90_0<=SUB)||(LA90_0>=INC && LA90_0<=DEC)||(LA90_0>=NOT && LA90_0<=INV)) ) {
alt90=2;
}
else if ( (LA90_0==DEFAULT) && ( isXmlEnabled() )) {
alt90=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("1785:1: sourceElement options {k=1; } : ({...}? functionDeclaration | statement );", 90, 0, input);
throw nvae;
}
switch (alt90) {
case 1 :
// JS.g:1790: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_sourceElement7381);
functionDeclaration361=functionDeclaration();
_fsp--;
adaptor.addChild(root_0, functionDeclaration361.getTree());
}
break;
case 2 :
// JS.g:1791:4: statement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_statement_in_sourceElement7386);
statement362=statement();
_fsp--;
adaptor.addChild(root_0, statement362.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) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
finally {
}
return retval;
}
// $ANTLR end sourceElement
public static class standaloneExpression_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start standaloneExpression
// JS.g:1796:1: standaloneExpression : expression EOF ;
public final standaloneExpression_return standaloneExpression() throws RecognitionException {
standaloneExpression_return retval = new standaloneExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EOF364=null;
expression_return expression363 = null;
Object EOF364_tree=null;
pushState(JSParserRule.EXPRESSION);
try {
// JS.g:1798:2: ( expression EOF )
// JS.g:1798:4: expression EOF
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_expression_in_standaloneExpression7404);
expression363=expression();
_fsp--;
adaptor.addChild(root_0, expression363.getTree());
EOF364=(Token)input.LT(1);
match(input,EOF,FOLLOW_EOF_in_standaloneExpression7406);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportRuleError(re);
}
catch (RuntimeException e) {
reportFailure(e);
}
finally {
}
return retval;
}
// $ANTLR end standaloneExpression
public static final BitSet FOLLOW_reservedWord_in_token1981 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_token1986 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_XMLFragment_in_token1991 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_XMLFragmentEnd_in_token1996 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_punctuator_in_token2001 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NULL_in_token2006 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_booleanLiteral_in_token2011 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_numericLiteral_in_token2016 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_StringLiteral_in_token2021 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_xmlAttribute_in_token2026 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_keyword_in_reservedWord2039 = 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_WXML_in_identifier2493 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_GET_in_identifier2499 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SET_in_identifier2505 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EACH_in_identifier2511 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NAMESPACE_in_identifier2517 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_futureReservedWord_in_identifier2525 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_Identifier_in_identifier2538 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AT_in_xmlAttribute2549 = new BitSet(new long[]{0xFFFFF7F600020000L,0x000000000000001FL,0x0008000000000000L});
public static final BitSet FOLLOW_identifier_in_xmlAttribute2551 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AT_in_xmlAttribute2567 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L});
public static final BitSet FOLLOW_MUL_in_xmlAttribute2569 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AT_in_xmlAttribute2585 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LBRACK_in_xmlAttribute2587 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_expression_in_xmlAttribute2589 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
public static final BitSet FOLLOW_RBRACK_in_xmlAttribute2591 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_propertySelector2613 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MUL_in_propertySelector2618 = 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_literal2893 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_booleanLiteral_in_literal2898 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_numericLiteral_in_literal2903 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_StringLiteral_in_literal2908 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RegularExpressionLiteral_in_literal2913 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_xmlLiteral_in_literal2921 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_XMLFragment_in_xmlLiteral2939 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
public static final BitSet FOLLOW_LBRACE_in_xmlLiteral2956 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_expression_in_xmlLiteral2958 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
public static final BitSet FOLLOW_RBRACE_in_xmlLiteral2960 = new BitSet(new long[]{0x0000000000000000L,0x0300000000000000L});
public static final BitSet FOLLOW_XMLFragmentEnd_in_xmlLiteral2976 = 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_primaryExpression3766 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_primaryExpression3771 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_xmlAttribute_in_primaryExpression3776 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_literal_in_primaryExpression3781 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_arrayLiteral_in_primaryExpression3786 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_objectLiteral_in_primaryExpression3791 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_parenExpression_in_primaryExpression3796 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_parenExpression3812 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_expression_in_parenExpression3814 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_RPAREN_in_parenExpression3816 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LBRACK_in_arrayLiteral3843 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC026BFL,0x0718200000000000L});
public static final BitSet FOLLOW_arrayItem_in_arrayLiteral3847 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002400L});
public static final BitSet FOLLOW_COMMA_in_arrayLiteral3851 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC026BFL,0x0718200000000000L});
public static final BitSet FOLLOW_arrayItem_in_arrayLiteral3853 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002400L});
public static final BitSet FOLLOW_RBRACK_in_arrayLiteral3864 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assignmentExpression_in_arrayItem3894 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LBRACE_in_objectLiteral3926 = new BitSet(new long[]{0xFFFFF7FFFFFFFF80L,0x000000000000005FL,0x0708200000000000L});
public static final BitSet FOLLOW_objectPropertyInitializer_in_objectLiteral3930 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002040L});
public static final BitSet FOLLOW_COMMA_in_objectLiteral3934 = new BitSet(new long[]{0xFFFFF7FFFFFFFF80L,0x000000000000001FL,0x0708200000000000L});
public static final BitSet FOLLOW_objectPropertyInitializer_in_objectLiteral3936 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002040L});
public static final BitSet FOLLOW_COMMA_in_objectLiteral3941 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
public static final BitSet FOLLOW_RBRACE_in_objectLiteral3946 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_nameValuePair_in_objectPropertyInitializer3973 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_getMethodDeclaration_in_objectPropertyInitializer3979 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_setMethodDeclaration_in_objectPropertyInitializer3985 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_propertyName_in_nameValuePair3997 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_COLON_in_nameValuePair3999 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_assignmentExpression_in_nameValuePair4001 = new BitSet(new long[]{0xFFFFF7F600020002L,0x000000800000001FL,0x0008000000000000L});
public static final BitSet FOLLOW_nameValuePairFix_in_nameValuePair4003 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COLON_in_nameValuePairFix4033 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_assignmentExpression_in_nameValuePairFix4035 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_nameValuePairFix4056 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_COLON_in_nameValuePairFix4058 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_assignmentExpression_in_nameValuePairFix4060 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_propertyName4087 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_reservedWord_in_propertyName4094 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_StringLiteral_in_propertyName4104 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_numericLiteral_in_propertyName4109 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_primaryExpression_in_memberExpression4127 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_functionExpression_in_memberExpression4132 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_newExpression_in_memberExpression4137 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NEW_in_newExpression4148 = new BitSet(new long[]{0xFFFFF7F602460070L,0x03200000000002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_newExpressionTail_in_newExpression4151 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_arguments4164 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC003BFL,0x0718200000000000L});
public static final BitSet FOLLOW_assignmentExpression_in_arguments4168 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002100L});
public static final BitSet FOLLOW_COMMA_in_arguments4172 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_assignmentExpression_in_arguments4174 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002100L});
public static final BitSet FOLLOW_RPAREN_in_arguments4182 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_memberExpression_in_leftHandSideExpression4220 = new BitSet(new long[]{0x0000000000000002L,0x00C0000000000A80L});
public static final BitSet FOLLOW_arguments_in_leftHandSideExpression4241 = new BitSet(new long[]{0x0000000000000002L,0x00C0000000000A80L});
public static final BitSet FOLLOW_LBRACK_in_leftHandSideExpression4268 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_expression_in_leftHandSideExpression4270 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
public static final BitSet FOLLOW_RBRACK_in_leftHandSideExpression4272 = new BitSet(new long[]{0x0000000000000002L,0x00C0000000000A80L});
public static final BitSet FOLLOW_DOT_in_leftHandSideExpression4295 = new BitSet(new long[]{0xFFFFF7FFFFFFFF80L,0x002000000100009FL,0x0008000000000000L});
public static final BitSet FOLLOW_rightHandSideExpression_in_leftHandSideExpression4299 = new BitSet(new long[]{0x0000000000000002L,0x00C0000000000A80L});
public static final BitSet FOLLOW_DOTDOT_in_leftHandSideExpression4327 = new BitSet(new long[]{0xFFFFF7F600020000L,0x002000000100001FL,0x0008000000000000L});
public static final BitSet FOLLOW_rightHandSideExpression2_in_leftHandSideExpression4331 = new BitSet(new long[]{0x0000000000000002L,0x00C0000000000A80L});
public static final BitSet FOLLOW_COLONCOLON_in_leftHandSideExpression4354 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LBRACK_in_leftHandSideExpression4356 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_expression_in_leftHandSideExpression4358 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
public static final BitSet FOLLOW_RBRACK_in_leftHandSideExpression4360 = new BitSet(new long[]{0x0000000000000002L,0x00C0000000000A80L});
public static final BitSet FOLLOW_COLONCOLON_in_leftHandSideExpression4382 = new BitSet(new long[]{0xFFFFF7F600020000L,0x000000000100001FL,0x0008000000000000L});
public static final BitSet FOLLOW_propertySelector_in_leftHandSideExpression4386 = new BitSet(new long[]{0x0000000000000002L,0x00C0000000000A80L});
public static final BitSet FOLLOW_memberExpression_in_newExpressionTail4447 = new BitSet(new long[]{0x0000000000000002L,0x00C0000000000A80L});
public static final BitSet FOLLOW_LBRACK_in_newExpressionTail4470 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_expression_in_newExpressionTail4472 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
public static final BitSet FOLLOW_RBRACK_in_newExpressionTail4474 = new BitSet(new long[]{0x0000000000000002L,0x00C0000000000A80L});
public static final BitSet FOLLOW_DOT_in_newExpressionTail4497 = new BitSet(new long[]{0xFFFFF7FFFFFFFF80L,0x002000000100009FL,0x0008000000000000L});
public static final BitSet FOLLOW_rightHandSideExpression_in_newExpressionTail4501 = new BitSet(new long[]{0x0000000000000002L,0x00C0000000000A80L});
public static final BitSet FOLLOW_DOTDOT_in_newExpressionTail4529 = new BitSet(new long[]{0xFFFFF7F600020000L,0x002000000100001FL,0x0008000000000000L});
public static final BitSet FOLLOW_rightHandSideExpression2_in_newExpressionTail4533 = new BitSet(new long[]{0x0000000000000002L,0x00C0000000000A80L});
public static final BitSet FOLLOW_COLONCOLON_in_newExpressionTail4556 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LBRACK_in_newExpressionTail4558 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_expression_in_newExpressionTail4560 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
public static final BitSet FOLLOW_RBRACK_in_newExpressionTail4562 = new BitSet(new long[]{0x0000000000000002L,0x00C0000000000A80L});
public static final BitSet FOLLOW_COLONCOLON_in_newExpressionTail4584 = new BitSet(new long[]{0xFFFFF7F600020000L,0x000000000100001FL,0x0008000000000000L});
public static final BitSet FOLLOW_propertySelector_in_newExpressionTail4588 = new BitSet(new long[]{0x0000000000000002L,0x00C0000000000A80L});
public static final BitSet FOLLOW_arguments_in_newExpressionTail4616 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_rightHandSideExpression4651 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_reservedWord_in_rightHandSideExpression4659 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_parenExpression_in_rightHandSideExpression4673 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_xmlAttribute_in_rightHandSideExpression4683 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MUL_in_rightHandSideExpression4692 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_rightHandSideExpression24704 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_xmlAttribute_in_rightHandSideExpression24710 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MUL_in_rightHandSideExpression24716 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_leftHandSideExpression_in_postfixExpression4732 = new BitSet(new long[]{0x0000000000000002L,0x000000000C000000L});
public static final BitSet FOLLOW_postfixOperator_in_postfixExpression4738 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INC_in_postfixOperator4756 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DEC_in_postfixOperator4765 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_postfixExpression_in_unaryExpression4782 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unaryOperator_in_unaryExpression4787 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_unaryExpression_in_unaryExpression4790 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DELETE_in_unaryOperator4802 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_VOID_in_unaryOperator4807 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TYPEOF_in_unaryOperator4812 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INC_in_unaryOperator4817 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DEC_in_unaryOperator4822 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ADD_in_unaryOperator4829 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SUB_in_unaryOperator4838 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INV_in_unaryOperator4845 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NOT_in_unaryOperator4850 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_YIELD_in_unaryOperator4855 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DEFAULT_in_namespaceStatement4872 = new BitSet(new long[]{0x0000001000000000L});
public static final BitSet FOLLOW_WXML_in_namespaceStatement4874 = new BitSet(new long[]{0x0000002000000000L});
public static final BitSet FOLLOW_NAMESPACE_in_namespaceStatement4876 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
public static final BitSet FOLLOW_ASSIGN_in_namespaceStatement4878 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_expression_in_namespaceStatement4880 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001040L,0x00000C0000000000L});
public static final BitSet FOLLOW_semic_in_namespaceStatement4882 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unaryExpression_in_multiplicativeExpression4914 = new BitSet(new long[]{0x0000000000000002L,0x0008000003000000L});
public static final BitSet FOLLOW_set_in_multiplicativeExpression4918 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_unaryExpression_in_multiplicativeExpression4933 = new BitSet(new long[]{0x0000000000000002L,0x0008000003000000L});
public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression4951 = new BitSet(new long[]{0x0000000000000002L,0x0000000000C00000L});
public static final BitSet FOLLOW_set_in_additiveExpression4955 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression4966 = new BitSet(new long[]{0x0000000000000002L,0x0000000000C00000L});
public static final BitSet FOLLOW_additiveExpression_in_shiftExpression4985 = new BitSet(new long[]{0x0000000000000002L,0x0000000070000000L});
public static final BitSet FOLLOW_set_in_shiftExpression4989 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_additiveExpression_in_shiftExpression5004 = new BitSet(new long[]{0x0000000000000002L,0x0000000070000000L});
public static final BitSet FOLLOW_shiftExpression_in_relationalExpression5023 = new BitSet(new long[]{0x0000000000300002L,0x000000000003C000L});
public static final BitSet FOLLOW_set_in_relationalExpression5027 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_shiftExpression_in_relationalExpression5054 = new BitSet(new long[]{0x0000000000300002L,0x000000000003C000L});
public static final BitSet FOLLOW_shiftExpression_in_relationalExpressionNoIn5068 = new BitSet(new long[]{0x0000000000200002L,0x000000000003C000L});
public static final BitSet FOLLOW_set_in_relationalExpressionNoIn5072 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_shiftExpression_in_relationalExpressionNoIn5095 = new BitSet(new long[]{0x0000000000200002L,0x000000000003C000L});
public static final BitSet FOLLOW_relationalExpression_in_equalityExpression5114 = new BitSet(new long[]{0x0000000000000002L,0x00000000003C0000L});
public static final BitSet FOLLOW_set_in_equalityExpression5118 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_relationalExpression_in_equalityExpression5137 = new BitSet(new long[]{0x0000000000000002L,0x00000000003C0000L});
public static final BitSet FOLLOW_relationalExpressionNoIn_in_equalityExpressionNoIn5151 = new BitSet(new long[]{0x0000000000000002L,0x00000000003C0000L});
public static final BitSet FOLLOW_set_in_equalityExpressionNoIn5155 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_relationalExpressionNoIn_in_equalityExpressionNoIn5174 = new BitSet(new long[]{0x0000000000000002L,0x00000000003C0000L});
public static final BitSet FOLLOW_equalityExpression_in_bitwiseANDExpression5194 = new BitSet(new long[]{0x0000000000000002L,0x0000000080000000L});
public static final BitSet FOLLOW_AND_in_bitwiseANDExpression5198 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_equalityExpression_in_bitwiseANDExpression5201 = new BitSet(new long[]{0x0000000000000002L,0x0000000080000000L});
public static final BitSet FOLLOW_equalityExpressionNoIn_in_bitwiseANDExpressionNoIn5215 = new BitSet(new long[]{0x0000000000000002L,0x0000000080000000L});
public static final BitSet FOLLOW_AND_in_bitwiseANDExpressionNoIn5219 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_equalityExpressionNoIn_in_bitwiseANDExpressionNoIn5222 = new BitSet(new long[]{0x0000000000000002L,0x0000000080000000L});
public static final BitSet FOLLOW_bitwiseANDExpression_in_bitwiseXORExpression5238 = new BitSet(new long[]{0x0000000000000002L,0x0000000200000000L});
public static final BitSet FOLLOW_XOR_in_bitwiseXORExpression5242 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_bitwiseANDExpression_in_bitwiseXORExpression5245 = new BitSet(new long[]{0x0000000000000002L,0x0000000200000000L});
public static final BitSet FOLLOW_bitwiseANDExpressionNoIn_in_bitwiseXORExpressionNoIn5261 = new BitSet(new long[]{0x0000000000000002L,0x0000000200000000L});
public static final BitSet FOLLOW_XOR_in_bitwiseXORExpressionNoIn5265 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_bitwiseANDExpressionNoIn_in_bitwiseXORExpressionNoIn5268 = new BitSet(new long[]{0x0000000000000002L,0x0000000200000000L});
public static final BitSet FOLLOW_bitwiseXORExpression_in_bitwiseORExpression5283 = new BitSet(new long[]{0x0000000000000002L,0x0000000100000000L});
public static final BitSet FOLLOW_OR_in_bitwiseORExpression5287 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_bitwiseXORExpression_in_bitwiseORExpression5290 = new BitSet(new long[]{0x0000000000000002L,0x0000000100000000L});
public static final BitSet FOLLOW_bitwiseXORExpressionNoIn_in_bitwiseORExpressionNoIn5305 = new BitSet(new long[]{0x0000000000000002L,0x0000000100000000L});
public static final BitSet FOLLOW_OR_in_bitwiseORExpressionNoIn5309 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_bitwiseXORExpressionNoIn_in_bitwiseORExpressionNoIn5312 = new BitSet(new long[]{0x0000000000000002L,0x0000000100000000L});
public static final BitSet FOLLOW_bitwiseORExpression_in_logicalANDExpression5331 = new BitSet(new long[]{0x0000000000000002L,0x0000001000000000L});
public static final BitSet FOLLOW_LAND_in_logicalANDExpression5335 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_bitwiseORExpression_in_logicalANDExpression5338 = new BitSet(new long[]{0x0000000000000002L,0x0000001000000000L});
public static final BitSet FOLLOW_bitwiseORExpressionNoIn_in_logicalANDExpressionNoIn5352 = new BitSet(new long[]{0x0000000000000002L,0x0000001000000000L});
public static final BitSet FOLLOW_LAND_in_logicalANDExpressionNoIn5356 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_bitwiseORExpressionNoIn_in_logicalANDExpressionNoIn5359 = new BitSet(new long[]{0x0000000000000002L,0x0000001000000000L});
public static final BitSet FOLLOW_logicalANDExpression_in_logicalORExpression5374 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L});
public static final BitSet FOLLOW_LOR_in_logicalORExpression5378 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_logicalANDExpression_in_logicalORExpression5381 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L});
public static final BitSet FOLLOW_logicalANDExpressionNoIn_in_logicalORExpressionNoIn5396 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L});
public static final BitSet FOLLOW_LOR_in_logicalORExpressionNoIn5400 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_logicalANDExpressionNoIn_in_logicalORExpressionNoIn5403 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L});
public static final BitSet FOLLOW_logicalORExpression_in_conditionalExpression5422 = new BitSet(new long[]{0x0000000000000002L,0x0000004000000000L});
public static final BitSet FOLLOW_QUE_in_conditionalExpression5426 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_assignmentExpression_in_conditionalExpression5429 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_COLON_in_conditionalExpression5431 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_assignmentExpression_in_conditionalExpression5434 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_logicalORExpressionNoIn_in_conditionalExpressionNoIn5448 = new BitSet(new long[]{0x0000000000000002L,0x0000004000000000L});
public static final BitSet FOLLOW_QUE_in_conditionalExpressionNoIn5452 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_assignmentExpressionNoIn_in_conditionalExpressionNoIn5455 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_COLON_in_conditionalExpressionNoIn5457 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_assignmentExpressionNoIn_in_conditionalExpressionNoIn5460 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_conditionalExpression_in_assignmentExpression5488 = new BitSet(new long[]{0x0000000000000002L,0x0017FF0000000000L});
public static final BitSet FOLLOW_assignmentOperator_in_assignmentExpression5495 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_assignmentExpression_in_assignmentExpression5498 = 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_assignmentExpressionNoIn5576 = new BitSet(new long[]{0x0000000000000002L,0x0017FF0000000000L});
public static final BitSet FOLLOW_assignmentOperator_in_assignmentExpressionNoIn5583 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_assignmentExpressionNoIn_in_assignmentExpressionNoIn5586 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assignmentExpression_in_expression5608 = new BitSet(new long[]{0x0000000000000002L,0x0000000000002000L});
public static final BitSet FOLLOW_COMMA_in_expression5612 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_assignmentExpression_in_expression5616 = new BitSet(new long[]{0x0000000000000002L,0x0000000000002000L});
public static final BitSet FOLLOW_assignmentExpressionNoIn_in_expressionNoIn5653 = new BitSet(new long[]{0x0000000000000002L,0x0000000000002000L});
public static final BitSet FOLLOW_COMMA_in_expressionNoIn5657 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_assignmentExpressionNoIn_in_expressionNoIn5661 = new BitSet(new long[]{0x0000000000000002L,0x0000000000002000L});
public static final BitSet FOLLOW_SEMIC_in_semic5712 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EOF_in_semic5717 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RBRACE_in_semic5722 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EOL_in_semic5729 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MultiLineComment_in_semic5733 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_block_in_statement5762 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_statementTail_in_statement5767 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_variableStatement_in_statementTail5779 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_emptyStatement_in_statementTail5784 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expressionStatement_in_statementTail5789 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ifStatement_in_statementTail5794 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_iterationStatement_in_statementTail5799 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_continueStatement_in_statementTail5804 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_breakStatement_in_statementTail5809 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_returnStatement_in_statementTail5814 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_withStatement_in_statementTail5819 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_labelledStatement_in_statementTail5824 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_switchStatement_in_statementTail5829 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_throwStatement_in_statementTail5834 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_tryStatement_in_statementTail5839 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_constStatement_in_statementTail5844 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_namespaceStatement_in_statementTail5849 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LBRACE_in_block5864 = new BitSet(new long[]{0xFFFFFFFFFFCF3CF0L,0x0320000C0CC012FFL,0x0718200000000000L});
public static final BitSet FOLLOW_sourceElement_in_block5866 = new BitSet(new long[]{0xFFFFFFFFFFCF3CF0L,0x0320000C0CC012FFL,0x0718200000000000L});
public static final BitSet FOLLOW_RBRACE_in_block5869 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_VAR_in_variableStatement5898 = new BitSet(new long[]{0xFFFFF7F600020000L,0x000000000000001FL,0x0008000000000000L});
public static final BitSet FOLLOW_variableDeclaration_in_variableStatement5900 = new BitSet(new long[]{0x0000000000000000L,0x0000000000003040L,0x00000C0000000000L});
public static final BitSet FOLLOW_COMMA_in_variableStatement5904 = new BitSet(new long[]{0xFFFFF7F600020000L,0x000000000000001FL,0x0008000000000000L});
public static final BitSet FOLLOW_variableDeclaration_in_variableStatement5906 = new BitSet(new long[]{0x0000000000000000L,0x0000000000003040L,0x00000C0000000000L});
public static final BitSet FOLLOW_semic_in_variableStatement5911 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_variableDeclaration5934 = new BitSet(new long[]{0x0000000000000002L,0x0000010000000000L});
public static final BitSet FOLLOW_ASSIGN_in_variableDeclaration5939 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_assignmentExpression_in_variableDeclaration5941 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_variableDeclarationNoIn5956 = new BitSet(new long[]{0x0000000000000002L,0x0000010000000000L});
public static final BitSet FOLLOW_ASSIGN_in_variableDeclarationNoIn5961 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_assignmentExpressionNoIn_in_variableDeclarationNoIn5963 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CONST_in_constStatement5978 = new BitSet(new long[]{0xFFFFF7F600020000L,0x000000000000001FL,0x0008000000000000L});
public static final BitSet FOLLOW_variableDeclaration_in_constStatement5980 = new BitSet(new long[]{0x0000000000000000L,0x0000000000003040L,0x00000C0000000000L});
public static final BitSet FOLLOW_COMMA_in_constStatement5984 = new BitSet(new long[]{0xFFFFF7F600020000L,0x000000000000001FL,0x0008000000000000L});
public static final BitSet FOLLOW_variableDeclaration_in_constStatement5986 = new BitSet(new long[]{0x0000000000000000L,0x0000000000003040L,0x00000C0000000000L});
public static final BitSet FOLLOW_semic_in_constStatement5991 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SEMIC_in_emptyStatement6021 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expression_in_expressionStatement6044 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001040L,0x00000C0000000000L});
public static final BitSet FOLLOW_semic_in_expressionStatement6046 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IF_in_ifStatement6064 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_ifStatement6066 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_expression_in_ifStatement6068 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_RPAREN_in_ifStatement6070 = new BitSet(new long[]{0xFFFFFFFFFFCF3CF0L,0x0320000C0CC012BFL,0x0718200000000000L});
public static final BitSet FOLLOW_statement_in_ifStatement6072 = new BitSet(new long[]{0x0000000000004002L});
public static final BitSet FOLLOW_ELSE_in_ifStatement6078 = new BitSet(new long[]{0xFFFFFFFFFFCF3CF0L,0x0320000C0CC012BFL,0x0718200000000000L});
public static final BitSet FOLLOW_statement_in_ifStatement6080 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_doStatement_in_iterationStatement6113 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_whileStatement_in_iterationStatement6118 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_forEachStatement_in_iterationStatement6123 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_forStatement_in_iterationStatement6128 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DO_in_doStatement6140 = new BitSet(new long[]{0xFFFFFFFFFFCF3CF0L,0x0320000C0CC012BFL,0x0718200000000000L});
public static final BitSet FOLLOW_statement_in_doStatement6142 = new BitSet(new long[]{0x0000000080000000L});
public static final BitSet FOLLOW_WHILE_in_doStatement6144 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_doStatement6146 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_expression_in_doStatement6148 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_RPAREN_in_doStatement6150 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001040L,0x00000C0000000000L});
public static final BitSet FOLLOW_semic_in_doStatement6152 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_WHILE_in_whileStatement6177 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_whileStatement6180 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_expression_in_whileStatement6183 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_RPAREN_in_whileStatement6185 = new BitSet(new long[]{0xFFFFFFFFFFCF3CF0L,0x0320000C0CC012BFL,0x0718200000000000L});
public static final BitSet FOLLOW_statement_in_whileStatement6188 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FOR_in_forEachStatement6205 = new BitSet(new long[]{0x0000000000020000L});
public static final BitSet FOLLOW_EACH_in_forEachStatement6207 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_forEachStatement6209 = new BitSet(new long[]{0xFFFFF7FE72461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_forEachControl_in_forEachStatement6211 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_RPAREN_in_forEachStatement6213 = new BitSet(new long[]{0xFFFFFFFFFFCF3CF0L,0x0320000C0CC012BFL,0x0718200000000000L});
public static final BitSet FOLLOW_statement_in_forEachStatement6215 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_forControlVar_in_forEachControl6243 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_forControlExpression_in_forEachControl6249 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FOR_in_forStatement6261 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_forStatement6264 = new BitSet(new long[]{0xFFFFF7FE72461070L,0x0320000C0CC012BFL,0x0718200000000000L});
public static final BitSet FOLLOW_forControl_in_forStatement6267 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_RPAREN_in_forStatement6269 = new BitSet(new long[]{0xFFFFFFFFFFCF3CF0L,0x0320000C0CC012BFL,0x0718200000000000L});
public static final BitSet FOLLOW_statement_in_forStatement6272 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_forControlVar_in_forControl6283 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_forControlExpression_in_forControl6288 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_forControlSemic_in_forControl6293 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_VAR_in_forControlVar6304 = new BitSet(new long[]{0xFFFFF7F600020000L,0x000000000000001FL,0x0008000000000000L});
public static final BitSet FOLLOW_variableDeclarationNoIn_in_forControlVar6306 = new BitSet(new long[]{0x0000000000100000L,0x0000000000003000L});
public static final BitSet FOLLOW_IN_in_forControlVar6318 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_expression_in_forControlVar6320 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COMMA_in_forControlVar6366 = new BitSet(new long[]{0xFFFFF7F600020000L,0x000000000000001FL,0x0008000000000000L});
public static final BitSet FOLLOW_variableDeclarationNoIn_in_forControlVar6368 = new BitSet(new long[]{0x0000000000000000L,0x0000000000003000L});
public static final BitSet FOLLOW_SEMIC_in_forControlVar6375 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC012BFL,0x0718200000000000L});
public static final BitSet FOLLOW_expression_in_forControlVar6379 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_SEMIC_in_forControlVar6384 = new BitSet(new long[]{0xFFFFF7FE52461072L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_expression_in_forControlVar6388 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expressionNoIn_in_forControlExpression6468 = new BitSet(new long[]{0x0000000000100000L,0x0000000000001000L});
public static final BitSet FOLLOW_IN_in_forControlExpression6483 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_expression_in_forControlExpression6487 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SEMIC_in_forControlExpression6535 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC012BFL,0x0718200000000000L});
public static final BitSet FOLLOW_expression_in_forControlExpression6539 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_SEMIC_in_forControlExpression6544 = new BitSet(new long[]{0xFFFFF7FE52461072L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_expression_in_forControlExpression6548 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SEMIC_in_forControlSemic6623 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC012BFL,0x0718200000000000L});
public static final BitSet FOLLOW_expression_in_forControlSemic6627 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_SEMIC_in_forControlSemic6632 = new BitSet(new long[]{0xFFFFF7FE52461072L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_expression_in_forControlSemic6636 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CONTINUE_in_continueStatement6704 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001040L,0x00080C0000000000L});
public static final BitSet FOLLOW_Identifier_in_continueStatement6709 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001040L,0x00000C0000000000L});
public static final BitSet FOLLOW_semic_in_continueStatement6712 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_BREAK_in_breakStatement6731 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001040L,0x00080C0000000000L});
public static final BitSet FOLLOW_Identifier_in_breakStatement6736 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001040L,0x00000C0000000000L});
public static final BitSet FOLLOW_semic_in_breakStatement6739 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RETURN_in_returnStatement6758 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC012FFL,0x07182C0000000000L});
public static final BitSet FOLLOW_expression_in_returnStatement6763 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001040L,0x00000C0000000000L});
public static final BitSet FOLLOW_semic_in_returnStatement6766 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_WITH_in_withStatement6783 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_withStatement6786 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_expression_in_withStatement6789 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_RPAREN_in_withStatement6791 = new BitSet(new long[]{0xFFFFFFFFFFCF3CF0L,0x0320000C0CC012BFL,0x0718200000000000L});
public static final BitSet FOLLOW_statement_in_withStatement6794 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SWITCH_in_switchStatement6810 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_switchStatement6812 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_expression_in_switchStatement6814 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_RPAREN_in_switchStatement6816 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
public static final BitSet FOLLOW_LBRACE_in_switchStatement6818 = new BitSet(new long[]{0x0000000000000900L,0x0000000000000040L});
public static final BitSet FOLLOW_defaultClause_in_switchStatement6822 = new BitSet(new long[]{0x0000000000000900L,0x0000000000000040L});
public static final BitSet FOLLOW_caseClause_in_switchStatement6826 = new BitSet(new long[]{0x0000000000000900L,0x0000000000000040L});
public static final BitSet FOLLOW_RBRACE_in_switchStatement6831 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CASE_in_caseClause6859 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_expression_in_caseClause6862 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_COLON_in_caseClause6864 = new BitSet(new long[]{0xFFFFFFFFFFCF3CF2L,0x0320000C0CC012BFL,0x0718200000000000L});
public static final BitSet FOLLOW_statement_in_caseClause6867 = new BitSet(new long[]{0xFFFFFFFFFFCF3CF2L,0x0320000C0CC012BFL,0x0718200000000000L});
public static final BitSet FOLLOW_DEFAULT_in_defaultClause6880 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_COLON_in_defaultClause6883 = new BitSet(new long[]{0xFFFFFFFFFFCF3CF2L,0x0320000C0CC012BFL,0x0718200000000000L});
public static final BitSet FOLLOW_statement_in_defaultClause6886 = new BitSet(new long[]{0xFFFFFFFFFFCF3CF2L,0x0320000C0CC012BFL,0x0718200000000000L});
public static final BitSet FOLLOW_identifier_in_labelledStatement6903 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_COLON_in_labelledStatement6905 = new BitSet(new long[]{0xFFFFFFFFFFCF3CF0L,0x0320000C0CC012BFL,0x0718200000000000L});
public static final BitSet FOLLOW_sourceElement_in_labelledStatement6907 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_THROW_in_throwStatement6938 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_expression_in_throwStatement6943 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001040L,0x00000C0000000000L});
public static final BitSet FOLLOW_semic_in_throwStatement6945 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TRY_in_tryStatement6962 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
public static final BitSet FOLLOW_block_in_tryStatement6965 = new BitSet(new long[]{0x0000000000008200L});
public static final BitSet FOLLOW_catchClause_in_tryStatement6969 = new BitSet(new long[]{0x0000000000008202L});
public static final BitSet FOLLOW_finallyClause_in_tryStatement6972 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_finallyClause_in_tryStatement6977 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CATCH_in_catchClause6991 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_catchClause6994 = new BitSet(new long[]{0xFFFFF7F600020000L,0x000000000000001FL,0x0008000000000000L});
public static final BitSet FOLLOW_identifier_in_catchClause6997 = new BitSet(new long[]{0x0000000000080000L,0x0000000000000100L});
public static final BitSet FOLLOW_catchFilter_in_catchClause6999 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_RPAREN_in_catchClause7002 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
public static final BitSet FOLLOW_block_in_catchClause7005 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IF_in_catchFilter7016 = new BitSet(new long[]{0xFFFFF7FE52461070L,0x0320000C0CC002BFL,0x0718200000000000L});
public static final BitSet FOLLOW_expression_in_catchFilter7018 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FINALLY_in_finallyClause7030 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
public static final BitSet FOLLOW_block_in_finallyClause7033 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FUNCTION_in_functionDeclaration7056 = new BitSet(new long[]{0xFFFFF7F600020000L,0x000000000000001FL,0x0008000000000000L});
public static final BitSet FOLLOW_identifier_in_functionDeclaration7060 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_formalParameterList_in_functionDeclaration7062 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
public static final BitSet FOLLOW_functionBody_in_functionDeclaration7064 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FUNCTION_in_functionExpression7092 = new BitSet(new long[]{0xFFFFF7F600020000L,0x000000000000009FL,0x0008000000000000L});
public static final BitSet FOLLOW_identifier_in_functionExpression7096 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_formalParameterList_in_functionExpression7099 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
public static final BitSet FOLLOW_functionBody_in_functionExpression7101 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_formalParameter7129 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_formalParameterList7141 = new BitSet(new long[]{0xFFFFF7F600020000L,0x000000000000011FL,0x0008000000000000L});
public static final BitSet FOLLOW_formalParameter_in_formalParameterList7145 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002100L});
public static final BitSet FOLLOW_COMMA_in_formalParameterList7149 = new BitSet(new long[]{0xFFFFF7F600020000L,0x000000000000001FL,0x0008000000000000L});
public static final BitSet FOLLOW_formalParameter_in_formalParameterList7151 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002100L});
public static final BitSet FOLLOW_RPAREN_in_formalParameterList7159 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LBRACE_in_functionBody7189 = new BitSet(new long[]{0xFFFFFFFFFFCF3CF0L,0x0320000C0CC012FFL,0x0718200000000000L});
public static final BitSet FOLLOW_sourceElement_in_functionBody7191 = new BitSet(new long[]{0xFFFFFFFFFFCF3CF0L,0x0320000C0CC012FFL,0x0718200000000000L});
public static final BitSet FOLLOW_RBRACE_in_functionBody7194 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_GET_in_getMethodDeclaration7231 = new BitSet(new long[]{0xFFFFF7F600020000L,0x000000000000001FL,0x0008000000000000L});
public static final BitSet FOLLOW_identifier_in_getMethodDeclaration7235 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_getMethodDeclaration7237 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_RPAREN_in_getMethodDeclaration7239 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
public static final BitSet FOLLOW_functionBody_in_getMethodDeclaration7241 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SET_in_setMethodDeclaration7272 = new BitSet(new long[]{0xFFFFF7F600020000L,0x000000000000001FL,0x0008000000000000L});
public static final BitSet FOLLOW_identifier_in_setMethodDeclaration7276 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_setMethodDeclaration7278 = new BitSet(new long[]{0xFFFFF7F600020000L,0x000000000000001FL,0x0008000000000000L});
public static final BitSet FOLLOW_identifier_in_setMethodDeclaration7282 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_RPAREN_in_setMethodDeclaration7284 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
public static final BitSet FOLLOW_functionBody_in_setMethodDeclaration7286 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_sourceElementSync_in_program7327 = new BitSet(new long[]{0xFFFFFFFFFFCF3CF0L,0x0320000C0CC012BFL,0x0718200000000000L});
public static final BitSet FOLLOW_sourceElement_in_program7330 = new BitSet(new long[]{0xFFFFFFFFFFCF3CF0L,0x0320000C0CC012BFL,0x0718200000000000L});
public static final BitSet FOLLOW_sourceElementSync_in_program7332 = new BitSet(new long[]{0xFFFFFFFFFFCF3CF0L,0x0320000C0CC012BFL,0x0718200000000000L});
public static final BitSet FOLLOW_EOF_in_program7336 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_functionDeclaration_in_sourceElement7381 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_statement_in_sourceElement7386 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expression_in_standaloneExpression7404 = new BitSet(new long[]{0x0000000000000000L});
public static final BitSet FOLLOW_EOF_in_standaloneExpression7406 = new BitSet(new long[]{0x0000000000000002L});
}