blob: 606529c47333457ab6d521afca23589e7480f1bd [file] [log] [blame]
// $ANTLR 3.2 Sep 23, 2009 12:02:23 src/org/eclipse/internal/xtend/xtend/parser/Xtend.g 2015-11-18 22:41:57
package org.eclipse.internal.xtend.xtend.parser;
import java.util.List;
import org.antlr.runtime.BaseRecognizer;
import org.antlr.runtime.BitSet;
import org.antlr.runtime.CommonToken;
import org.antlr.runtime.DFA;
import org.antlr.runtime.IntStream;
import org.antlr.runtime.MismatchedSetException;
import org.antlr.runtime.NoViableAltException;
import org.antlr.runtime.Parser;
import org.antlr.runtime.RecognitionException;
import org.antlr.runtime.RecognizerSharedState;
import org.antlr.runtime.Token;
import org.antlr.runtime.TokenStream;
import org.eclipse.emf.common.util.BasicEList;
import org.eclipse.internal.xtend.expression.ast.Case;
import org.eclipse.internal.xtend.expression.ast.DeclaredParameter;
import org.eclipse.internal.xtend.expression.ast.Expression;
import org.eclipse.internal.xtend.expression.ast.FeatureCall;
import org.eclipse.internal.xtend.expression.ast.GlobalVarExpression;
import org.eclipse.internal.xtend.expression.ast.Identifier;
import org.eclipse.internal.xtend.expression.ast.SyntaxElement;
import org.eclipse.internal.xtend.xtend.ast.AbstractExtension;
import org.eclipse.internal.xtend.xtend.ast.Around;
import org.eclipse.internal.xtend.xtend.ast.Check;
import org.eclipse.internal.xtend.xtend.ast.Extension;
import org.eclipse.internal.xtend.xtend.ast.ExtensionFile;
import org.eclipse.internal.xtend.xtend.ast.ExtensionImportStatement;
import org.eclipse.internal.xtend.xtend.ast.NamespaceImportStatement;
@SuppressWarnings("all")
public class XtendParser extends Parser {
public static final String[] tokenNames = new String[] { "<invalid>", "<EOR>", "<DOWN>", "<UP>", "StringLiteral", "IntLiteral", "Identifier",
"EscapeSequence", "UnicodeEscape", "OctalEscape", "HexDigit", "Letter", "JavaIDDigit", "WS", "COMMENT", "LINE_COMMENT", "XPAND_TAG_OPEN",
"XPAND_TAG_CLOSE", "'import'", "';'", "'extension'", "'reexport'", "'context'", "'#'", "'if'", "'ERROR'", "'WARNING'", "':'", "'around'",
"'('", "','", "'*'", "')'", "'::'", "'private'", "'cached'", "'JAVA'", "'.'", "'create'", "'Collection'", "'List'", "'Set'", "'let'",
"'='", "'->'", "'?'", "'then'", "'else'", "'switch'", "'{'", "'case'", "'default'", "'}'", "'||'", "'&&'", "'implies'", "'=='", "'!='",
"'>='", "'<='", "'>'", "'<'", "'+'", "'-'", "'/'", "'!'", "'GLOBALVAR'", "'new'", "'false'", "'true'", "'null'", "'typeSelect'",
"'collect'", "'select'", "'selectFirst'", "'reject'", "'exists'", "'notExists'", "'sortBy'", "'forAll'", "'|'", "'['", "']'" };
public static final int T__50 = 50;
public static final int T__19 = 19;
public static final int Identifier = 6;
public static final int T__59 = 59;
public static final int T__18 = 18;
public static final int T__55 = 55;
public static final int T__56 = 56;
public static final int T__57 = 57;
public static final int IntLiteral = 5;
public static final int T__58 = 58;
public static final int T__51 = 51;
public static final int T__52 = 52;
public static final int T__53 = 53;
public static final int T__54 = 54;
public static final int T__60 = 60;
public static final int T__61 = 61;
public static final int HexDigit = 10;
public static final int Letter = 11;
public static final int LINE_COMMENT = 15;
public static final int T__26 = 26;
public static final int StringLiteral = 4;
public static final int T__27 = 27;
public static final int T__28 = 28;
public static final int T__29 = 29;
public static final int T__22 = 22;
public static final int T__66 = 66;
public static final int T__23 = 23;
public static final int T__67 = 67;
public static final int T__24 = 24;
public static final int T__68 = 68;
public static final int T__25 = 25;
public static final int T__69 = 69;
public static final int T__62 = 62;
public static final int OctalEscape = 9;
public static final int JavaIDDigit = 12;
public static final int T__63 = 63;
public static final int T__20 = 20;
public static final int T__64 = 64;
public static final int T__21 = 21;
public static final int T__65 = 65;
public static final int T__70 = 70;
public static final int T__71 = 71;
public static final int T__72 = 72;
public static final int COMMENT = 14;
public static final int XPAND_TAG_OPEN = 16;
public static final int T__37 = 37;
public static final int T__38 = 38;
public static final int T__39 = 39;
public static final int T__33 = 33;
public static final int T__77 = 77;
public static final int T__34 = 34;
public static final int T__78 = 78;
public static final int T__35 = 35;
public static final int T__79 = 79;
public static final int T__36 = 36;
public static final int T__73 = 73;
public static final int UnicodeEscape = 8;
public static final int WS = 13;
public static final int EOF = -1;
public static final int T__30 = 30;
public static final int T__74 = 74;
public static final int T__31 = 31;
public static final int T__75 = 75;
public static final int T__32 = 32;
public static final int T__76 = 76;
public static final int XPAND_TAG_CLOSE = 17;
public static final int T__80 = 80;
public static final int T__81 = 81;
public static final int T__82 = 82;
public static final int EscapeSequence = 7;
public static final int T__48 = 48;
public static final int T__49 = 49;
public static final int T__44 = 44;
public static final int T__45 = 45;
public static final int T__46 = 46;
public static final int T__47 = 47;
public static final int T__40 = 40;
public static final int T__41 = 41;
public static final int T__42 = 42;
public static final int T__43 = 43;
// delegates
// delegators
public XtendParser(TokenStream input) {
this(input, new RecognizerSharedState());
}
public XtendParser(TokenStream input, RecognizerSharedState state) {
super(input, state);
}
public String[] getTokenNames() {
return XtendParser.tokenNames;
}
public String getGrammarFileName() {
return "src/org/eclipse/internal/xtend/xtend/parser/Xtend.g";
}
private ExtensionFactory factory = new ExtensionFactory();
public XtendParser(TokenStream stream, ExtensionFactory factory) {
this(stream);
if (factory != null) {
this.factory = factory;
}
}
protected Identifier id(final Token t) {
if (t == null)
return null;
final CommonToken ct = (CommonToken) t;
final Identifier id = new Identifier(t.getText());
id.setStart(ct.getStartIndex());
id.setEnd(ct.getStopIndex());
id.setLine(ct.getLine());
return id;
}
private static final <T extends SyntaxElement> void addLocation(final T ele, final CommonToken start, final CommonToken end) {
if (ele != null) {
ele.setStart(start != null ? start.getStartIndex() : 0);
ele.setLine(start != null ? start.getLine() : 0);
ele.setEnd(end != null ? (end.getStopIndex() + 1) : -1);
}
}
@Override
public void reportError(RecognitionException e) {
System.err.println(super.getErrorMessage(e, tokenNames));
throw new RuntimeException(e);
}
// $ANTLR start "file"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:57:1: file returns [ExtensionFile r] : (nsi= nsImport )* (exti= extImport )* (ext=
// extension | a= around | c= check )* EOF ;
public final ExtensionFile file() throws RecognitionException {
ExtensionFile r = null;
NamespaceImportStatement nsi = null;
ExtensionImportStatement exti = null;
Extension ext = null;
Around a = null;
Check c = null;
final CommonToken startToken = (CommonToken) input.LT(1);
final List<NamespaceImportStatement> nsimports = new BasicEList<NamespaceImportStatement>();
final List<ExtensionImportStatement> extimports = new BasicEList<ExtensionImportStatement>();
final List<Extension> extensions = new BasicEList<Extension>();
final List<Around> arounds = new BasicEList<Around>();
final List<Check> checks = new BasicEList<Check>();
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:65:1: ( (nsi= nsImport )* (exti= extImport )* (ext= extension | a= around | c=
// check )* EOF )
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:66:2: (nsi= nsImport )* (exti= extImport )* (ext= extension | a= around | c= check
// )* EOF
{
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:66:2: (nsi= nsImport )*
loop1: do {
int alt1 = 2;
int LA1_0 = input.LA(1);
if ((LA1_0 == 18)) {
alt1 = 1;
}
switch (alt1) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:66:3: nsi= nsImport
{
pushFollow(FOLLOW_nsImport_in_file55);
nsi = nsImport();
state._fsp--;
if (state.failed)
return r;
if (state.backtracking == 0) {
if (nsi != null)
nsimports.add(nsi);
}
}
break;
default:
break loop1;
}
} while (true);
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:67:2: (exti= extImport )*
loop2: do {
int alt2 = 2;
int LA2_0 = input.LA(1);
if ((LA2_0 == 20)) {
alt2 = 1;
}
switch (alt2) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:67:3: exti= extImport
{
pushFollow(FOLLOW_extImport_in_file65);
exti = extImport();
state._fsp--;
if (state.failed)
return r;
if (state.backtracking == 0) {
if (exti != null)
extimports.add(exti);
}
}
break;
default:
break loop2;
}
} while (true);
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:68:2: (ext= extension | a= around | c= check )*
loop3: do {
int alt3 = 4;
switch (input.LA(1)) {
case Identifier:
case 34:
case 35:
case 38:
case 39:
case 40:
case 41: {
alt3 = 1;
}
break;
case 28: {
alt3 = 2;
}
break;
case 22: {
alt3 = 3;
}
break;
}
switch (alt3) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:68:3: ext= extension
{
pushFollow(FOLLOW_extension_in_file75);
ext = extension();
state._fsp--;
if (state.failed)
return r;
if (state.backtracking == 0) {
if (ext != null)
extensions.add(ext);
}
}
break;
case 2:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:68:56: a= around
{
pushFollow(FOLLOW_around_in_file85);
a = around();
state._fsp--;
if (state.failed)
return r;
if (state.backtracking == 0) {
if (a != null)
arounds.add(a);
}
}
break;
case 3:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:68:100: c= check
{
pushFollow(FOLLOW_check_in_file95);
c = check();
state._fsp--;
if (state.failed)
return r;
if (state.backtracking == 0) {
if (c != null)
checks.add(c);
}
}
break;
default:
break loop3;
}
} while (true);
match(input, EOF, FOLLOW_EOF_in_file103);
if (state.failed)
return r;
if (state.backtracking == 0) {
r = factory.createExtensionFile(nsimports, extimports, extensions, arounds, checks);
}
}
if (state.backtracking == 0) {
addLocation(r, startToken, /* endToken */(CommonToken) input.LT(-1));
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return r;
}
// $ANTLR end "file"
// $ANTLR start "nsImport"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:74:1: nsImport returns [NamespaceImportStatement r] : 'import' t= type ';' ;
public final NamespaceImportStatement nsImport() throws RecognitionException {
NamespaceImportStatement r = null;
Identifier t = null;
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:77:1: ( 'import' t= type ';' )
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:78:2: 'import' t= type ';'
{
match(input, 18, FOLLOW_18_in_nsImport131);
if (state.failed)
return r;
pushFollow(FOLLOW_type_in_nsImport135);
t = type();
state._fsp--;
if (state.failed)
return r;
if (state.backtracking == 0) {
r = factory.createNsImport(t);
}
match(input, 19, FOLLOW_19_in_nsImport139);
if (state.failed)
return r;
}
if (state.backtracking == 0) {
addLocation(r, startToken, /* endToken */(CommonToken) input.LT(-1));
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return r;
}
// $ANTLR end "nsImport"
// $ANTLR start "extImport"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:82:1: extImport returns [ExtensionImportStatement r] : 'extension' t= type (exported=
// 'reexport' )? ';' ;
public final ExtensionImportStatement extImport() throws RecognitionException {
ExtensionImportStatement r = null;
Token exported = null;
Identifier t = null;
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:85:1: ( 'extension' t= type (exported= 'reexport' )? ';' )
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:86:2: 'extension' t= type (exported= 'reexport' )? ';'
{
match(input, 20, FOLLOW_20_in_extImport164);
if (state.failed)
return r;
pushFollow(FOLLOW_type_in_extImport168);
t = type();
state._fsp--;
if (state.failed)
return r;
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:86:21: (exported= 'reexport' )?
int alt4 = 2;
int LA4_0 = input.LA(1);
if ((LA4_0 == 21)) {
alt4 = 1;
}
switch (alt4) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:86:22: exported= 'reexport'
{
exported = (Token) match(input, 21, FOLLOW_21_in_extImport173);
if (state.failed)
return r;
}
break;
}
match(input, 19, FOLLOW_19_in_extImport177);
if (state.failed)
return r;
if (state.backtracking == 0) {
r = factory.createExtensionFileImport(t, id(exported));
}
}
if (state.backtracking == 0) {
addLocation(r, startToken, /* endToken */(CommonToken) input.LT(-1));
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return r;
}
// $ANTLR end "extImport"
// $ANTLR start "check"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:90:1: check returns [Check ext] : 'context' t= type ( '#' f= identifier )? ( 'if' guard=
// expression )? (sev1= 'ERROR' | 'WARNING' ) msg= expression ':' expr= expression ';' ;
public final Check check() throws RecognitionException {
Check ext = null;
Token sev1 = null;
Identifier t = null;
Identifier f = null;
Expression guard = null;
Expression msg = null;
Expression expr = null;
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:93:1: ( 'context' t= type ( '#' f= identifier )? ( 'if' guard= expression )? (sev1=
// 'ERROR' | 'WARNING' ) msg= expression ':' expr= expression ';' )
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:94:2: 'context' t= type ( '#' f= identifier )? ( 'if' guard= expression )? (sev1=
// 'ERROR' | 'WARNING' ) msg= expression ':' expr= expression ';'
{
match(input, 22, FOLLOW_22_in_check202);
if (state.failed)
return ext;
pushFollow(FOLLOW_type_in_check206);
t = type();
state._fsp--;
if (state.failed)
return ext;
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:94:18: ( '#' f= identifier )?
int alt5 = 2;
int LA5_0 = input.LA(1);
if ((LA5_0 == 23)) {
alt5 = 1;
}
switch (alt5) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:94:19: '#' f= identifier
{
match(input, 23, FOLLOW_23_in_check208);
if (state.failed)
return ext;
pushFollow(FOLLOW_identifier_in_check211);
f = identifier();
state._fsp--;
if (state.failed)
return ext;
}
break;
}
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:94:37: ( 'if' guard= expression )?
int alt6 = 2;
int LA6_0 = input.LA(1);
if ((LA6_0 == 24)) {
alt6 = 1;
}
switch (alt6) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:94:38: 'if' guard= expression
{
match(input, 24, FOLLOW_24_in_check216);
if (state.failed)
return ext;
pushFollow(FOLLOW_expression_in_check220);
guard = expression();
state._fsp--;
if (state.failed)
return ext;
}
break;
}
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:94:62: (sev1= 'ERROR' | 'WARNING' )
int alt7 = 2;
int LA7_0 = input.LA(1);
if ((LA7_0 == 25)) {
alt7 = 1;
} else if ((LA7_0 == 26)) {
alt7 = 2;
} else {
if (state.backtracking > 0) {
state.failed = true;
return ext;
}
NoViableAltException nvae = new NoViableAltException("", 7, 0, input);
throw nvae;
}
switch (alt7) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:94:63: sev1= 'ERROR'
{
sev1 = (Token) match(input, 25, FOLLOW_25_in_check227);
if (state.failed)
return ext;
}
break;
case 2:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:94:76: 'WARNING'
{
match(input, 26, FOLLOW_26_in_check229);
if (state.failed)
return ext;
}
break;
}
pushFollow(FOLLOW_expression_in_check234);
msg = expression();
state._fsp--;
if (state.failed)
return ext;
match(input, 27, FOLLOW_27_in_check236);
if (state.failed)
return ext;
pushFollow(FOLLOW_expression_in_check241);
expr = expression();
state._fsp--;
if (state.failed)
return ext;
match(input, 19, FOLLOW_19_in_check243);
if (state.failed)
return ext;
if (state.backtracking == 0) {
ext = factory.createCheck(t, f, guard, sev1 != null, msg, expr);
}
}
if (state.backtracking == 0) {
addLocation(ext, startToken, /* endToken */(CommonToken) input.LT(-1));
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return ext;
}
// $ANTLR end "check"
// $ANTLR start "around"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:99:1: around returns [Around r] : 'around' pc= pointcut '(' (p= declaredParameterList ( (
// ',' )? wildparams= '*' )? | wildparams= '*' )? ')' ':' expr= expression ';' ;
public final Around around() throws RecognitionException {
Around r = null;
Token wildparams = null;
Identifier pc = null;
List<DeclaredParameter> p = null;
Expression expr = null;
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:102:1: ( 'around' pc= pointcut '(' (p= declaredParameterList ( ( ',' )? wildparams=
// '*' )? | wildparams= '*' )? ')' ':' expr= expression ';' )
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:103:5: 'around' pc= pointcut '(' (p= declaredParameterList ( ( ',' )? wildparams=
// '*' )? | wildparams= '*' )? ')' ':' expr= expression ';'
{
match(input, 28, FOLLOW_28_in_around272);
if (state.failed)
return r;
pushFollow(FOLLOW_pointcut_in_around276);
pc = pointcut();
state._fsp--;
if (state.failed)
return r;
match(input, 29, FOLLOW_29_in_around278);
if (state.failed)
return r;
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:103:30: (p= declaredParameterList ( ( ',' )? wildparams= '*' )? | wildparams=
// '*' )?
int alt10 = 3;
int LA10_0 = input.LA(1);
if ((LA10_0 == Identifier || (LA10_0 >= 39 && LA10_0 <= 41))) {
alt10 = 1;
} else if ((LA10_0 == 31)) {
alt10 = 2;
}
switch (alt10) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:103:31: p= declaredParameterList ( ( ',' )? wildparams= '*' )?
{
pushFollow(FOLLOW_declaredParameterList_in_around283);
p = declaredParameterList();
state._fsp--;
if (state.failed)
return r;
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:103:55: ( ( ',' )? wildparams= '*' )?
int alt9 = 2;
int LA9_0 = input.LA(1);
if (((LA9_0 >= 30 && LA9_0 <= 31))) {
alt9 = 1;
}
switch (alt9) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:103:56: ( ',' )? wildparams= '*'
{
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:103:56: ( ',' )?
int alt8 = 2;
int LA8_0 = input.LA(1);
if ((LA8_0 == 30)) {
alt8 = 1;
}
switch (alt8) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:103:56: ','
{
match(input, 30, FOLLOW_30_in_around286);
if (state.failed)
return r;
}
break;
}
wildparams = (Token) match(input, 31, FOLLOW_31_in_around291);
if (state.failed)
return r;
}
break;
}
}
break;
case 2:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:103:80: wildparams= '*'
{
wildparams = (Token) match(input, 31, FOLLOW_31_in_around299);
if (state.failed)
return r;
}
break;
}
match(input, 32, FOLLOW_32_in_around303);
if (state.failed)
return r;
match(input, 27, FOLLOW_27_in_around305);
if (state.failed)
return r;
pushFollow(FOLLOW_expression_in_around314);
expr = expression();
state._fsp--;
if (state.failed)
return r;
match(input, 19, FOLLOW_19_in_around316);
if (state.failed)
return r;
if (state.backtracking == 0) {
r = factory.createAround(pc, p, wildparams != null, expr);
}
}
if (state.backtracking == 0) {
addLocation(r, startToken, /* endToken */(CommonToken) input.LT(-1));
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return r;
}
// $ANTLR end "around"
// $ANTLR start "pointcut"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:108:1: pointcut returns [Identifier r] : (a= '*' | b= identifier ) (a1= '*' | b1=
// identifier | c1= '::' )* ;
public final Identifier pointcut() throws RecognitionException {
Identifier r = null;
Token a = null;
Token a1 = null;
Token c1 = null;
Identifier b = null;
Identifier b1 = null;
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:111:1: ( (a= '*' | b= identifier ) (a1= '*' | b1= identifier | c1= '::' )* )
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:112:2: (a= '*' | b= identifier ) (a1= '*' | b1= identifier | c1= '::' )*
{
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:112:2: (a= '*' | b= identifier )
int alt11 = 2;
int LA11_0 = input.LA(1);
if ((LA11_0 == 31)) {
alt11 = 1;
} else if ((LA11_0 == Identifier)) {
alt11 = 2;
} else {
if (state.backtracking > 0) {
state.failed = true;
return r;
}
NoViableAltException nvae = new NoViableAltException("", 11, 0, input);
throw nvae;
}
switch (alt11) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:112:4: a= '*'
{
a = (Token) match(input, 31, FOLLOW_31_in_pointcut352);
if (state.failed)
return r;
if (state.backtracking == 0) {
r = id(a);
}
}
break;
case 2:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:113:4: b= identifier
{
pushFollow(FOLLOW_identifier_in_pointcut361);
b = identifier();
state._fsp--;
if (state.failed)
return r;
if (state.backtracking == 0) {
r = b;
}
}
break;
}
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:114:4: (a1= '*' | b1= identifier | c1= '::' )*
loop12: do {
int alt12 = 4;
switch (input.LA(1)) {
case 31: {
alt12 = 1;
}
break;
case Identifier: {
alt12 = 2;
}
break;
case 33: {
alt12 = 3;
}
break;
}
switch (alt12) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:114:6: a1= '*'
{
a1 = (Token) match(input, 31, FOLLOW_31_in_pointcut372);
if (state.failed)
return r;
if (state.backtracking == 0) {
if (r != null)
r.append(id(a1));
}
}
break;
case 2:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:115:6: b1= identifier
{
pushFollow(FOLLOW_identifier_in_pointcut383);
b1 = identifier();
state._fsp--;
if (state.failed)
return r;
if (state.backtracking == 0) {
if (r != null)
r.append(b1);
}
}
break;
case 3:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:116:6: c1= '::'
{
c1 = (Token) match(input, 33, FOLLOW_33_in_pointcut394);
if (state.failed)
return r;
if (state.backtracking == 0) {
if (r != null)
r.append(id(c1));
}
}
break;
default:
break loop12;
}
} while (true);
}
if (state.backtracking == 0) {
addLocation(r, startToken, /* endToken */(CommonToken) input.LT(-1));
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return r;
}
// $ANTLR end "pointcut"
// $ANTLR start "extension"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:121:1: extension returns [Extension r] : ( (priv= 'private' )? (cached= 'cached' )? (rType=
// type )? name= identifier '(' (params= declaredParameterList )? ')' ':' ( 'JAVA' jt= javaType '.' m= identifier '(' (pt= javaType ( ',' pt=
// javaType )* )? ')' ';' | expr= expression ';' ) | (priv= 'private' )? create= 'create' rType= type (rtn= identifier )? name= identifier '('
// (params= declaredParameterList )? ')' ':' expr= expression ';' );
public final Extension extension() throws RecognitionException {
Extension r = null;
Token priv = null;
Token cached = null;
Token create = null;
Identifier rType = null;
Identifier name = null;
List<DeclaredParameter> params = null;
Identifier jt = null;
Identifier m = null;
Identifier pt = null;
Expression expr = null;
Identifier rtn = null;
final CommonToken startToken = (CommonToken) input.LT(1);
final List<Identifier> javaParamTypes = new BasicEList<Identifier>();
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:125:1: ( (priv= 'private' )? (cached= 'cached' )? (rType= type )? name= identifier
// '(' (params= declaredParameterList )? ')' ':' ( 'JAVA' jt= javaType '.' m= identifier '(' (pt= javaType ( ',' pt= javaType )* )? ')'
// ';' | expr= expression ';' ) | (priv= 'private' )? create= 'create' rType= type (rtn= identifier )? name= identifier '(' (params=
// declaredParameterList )? ')' ':' expr= expression ';' )
int alt23 = 2;
switch (input.LA(1)) {
case 34: {
int LA23_1 = input.LA(2);
if ((LA23_1 == 38)) {
alt23 = 2;
} else if ((LA23_1 == Identifier || LA23_1 == 35 || (LA23_1 >= 39 && LA23_1 <= 41))) {
alt23 = 1;
} else {
if (state.backtracking > 0) {
state.failed = true;
return r;
}
NoViableAltException nvae = new NoViableAltException("", 23, 1, input);
throw nvae;
}
}
break;
case Identifier:
case 35:
case 39:
case 40:
case 41: {
alt23 = 1;
}
break;
case 38: {
alt23 = 2;
}
break;
default:
if (state.backtracking > 0) {
state.failed = true;
return r;
}
NoViableAltException nvae = new NoViableAltException("", 23, 0, input);
throw nvae;
}
switch (alt23) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:126:2: (priv= 'private' )? (cached= 'cached' )? (rType= type )? name= identifier
// '(' (params= declaredParameterList )? ')' ':' ( 'JAVA' jt= javaType '.' m= identifier '(' (pt= javaType ( ',' pt= javaType )* )? ')'
// ';' | expr= expression ';' )
{
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:126:2: (priv= 'private' )?
int alt13 = 2;
int LA13_0 = input.LA(1);
if ((LA13_0 == 34)) {
alt13 = 1;
}
switch (alt13) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:126:3: priv= 'private'
{
priv = (Token) match(input, 34, FOLLOW_34_in_extension426);
if (state.failed)
return r;
}
break;
}
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:126:20: (cached= 'cached' )?
int alt14 = 2;
int LA14_0 = input.LA(1);
if ((LA14_0 == 35)) {
alt14 = 1;
}
switch (alt14) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:126:21: cached= 'cached'
{
cached = (Token) match(input, 35, FOLLOW_35_in_extension433);
if (state.failed)
return r;
}
break;
}
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:126:39: (rType= type )?
int alt15 = 2;
int LA15_0 = input.LA(1);
if (((LA15_0 >= 39 && LA15_0 <= 41))) {
alt15 = 1;
} else if ((LA15_0 == Identifier)) {
int LA15_2 = input.LA(2);
if ((LA15_2 == Identifier || LA15_2 == 33)) {
alt15 = 1;
}
}
switch (alt15) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:126:40: rType= type
{
pushFollow(FOLLOW_type_in_extension440);
rType = type();
state._fsp--;
if (state.failed)
return r;
}
break;
}
pushFollow(FOLLOW_identifier_in_extension446);
name = identifier();
state._fsp--;
if (state.failed)
return r;
match(input, 29, FOLLOW_29_in_extension448);
if (state.failed)
return r;
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:126:73: (params= declaredParameterList )?
int alt16 = 2;
int LA16_0 = input.LA(1);
if ((LA16_0 == Identifier || (LA16_0 >= 39 && LA16_0 <= 41))) {
alt16 = 1;
}
switch (alt16) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:126:74: params= declaredParameterList
{
pushFollow(FOLLOW_declaredParameterList_in_extension453);
params = declaredParameterList();
state._fsp--;
if (state.failed)
return r;
}
break;
}
match(input, 32, FOLLOW_32_in_extension457);
if (state.failed)
return r;
match(input, 27, FOLLOW_27_in_extension459);
if (state.failed)
return r;
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:128:2: ( 'JAVA' jt= javaType '.' m= identifier '(' (pt= javaType ( ',' pt=
// javaType )* )? ')' ';' | expr= expression ';' )
int alt19 = 2;
int LA19_0 = input.LA(1);
if ((LA19_0 == 36)) {
alt19 = 1;
} else if (((LA19_0 >= StringLiteral && LA19_0 <= Identifier) || LA19_0 == 24 || LA19_0 == 29 || (LA19_0 >= 39 && LA19_0 <= 42)
|| (LA19_0 >= 48 && LA19_0 <= 49) || LA19_0 == 63 || (LA19_0 >= 65 && LA19_0 <= 79))) {
alt19 = 2;
} else {
if (state.backtracking > 0) {
state.failed = true;
return r;
}
NoViableAltException nvae = new NoViableAltException("", 19, 0, input);
throw nvae;
}
switch (alt19) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:128:4: 'JAVA' jt= javaType '.' m= identifier '(' (pt= javaType ( ',' pt=
// javaType )* )? ')' ';'
{
match(input, 36, FOLLOW_36_in_extension466);
if (state.failed)
return r;
pushFollow(FOLLOW_javaType_in_extension470);
jt = javaType();
state._fsp--;
if (state.failed)
return r;
match(input, 37, FOLLOW_37_in_extension472);
if (state.failed)
return r;
pushFollow(FOLLOW_identifier_in_extension476);
m = identifier();
state._fsp--;
if (state.failed)
return r;
match(input, 29, FOLLOW_29_in_extension478);
if (state.failed)
return r;
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:128:43: (pt= javaType ( ',' pt= javaType )* )?
int alt18 = 2;
int LA18_0 = input.LA(1);
if ((LA18_0 == Identifier)) {
alt18 = 1;
}
switch (alt18) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:128:44: pt= javaType ( ',' pt= javaType )*
{
pushFollow(FOLLOW_javaType_in_extension482);
pt = javaType();
state._fsp--;
if (state.failed)
return r;
if (state.backtracking == 0) {
if (pt != null)
javaParamTypes.add(pt);
}
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:128:95: ( ',' pt= javaType )*
loop17: do {
int alt17 = 2;
int LA17_0 = input.LA(1);
if ((LA17_0 == 30)) {
alt17 = 1;
}
switch (alt17) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:128:96: ',' pt= javaType
{
match(input, 30, FOLLOW_30_in_extension486);
if (state.failed)
return r;
pushFollow(FOLLOW_javaType_in_extension490);
pt = javaType();
state._fsp--;
if (state.failed)
return r;
if (state.backtracking == 0) {
if (pt != null)
javaParamTypes.add(pt);
}
}
break;
default:
break loop17;
}
} while (true);
}
break;
}
match(input, 32, FOLLOW_32_in_extension498);
if (state.failed)
return r;
match(input, 19, FOLLOW_19_in_extension500);
if (state.failed)
return r;
if (state.backtracking == 0) {
r = factory.createJavaExtension(name, rType, params, jt, m, javaParamTypes, id(cached), id(priv));
}
}
break;
case 2:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:130:4: expr= expression ';'
{
pushFollow(FOLLOW_expression_in_extension510);
expr = expression();
state._fsp--;
if (state.failed)
return r;
match(input, 19, FOLLOW_19_in_extension512);
if (state.failed)
return r;
if (state.backtracking == 0) {
r = factory.createExpressionExtension(name, rType, params, expr, id(cached), id(priv));
}
}
break;
}
}
break;
case 2:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:134:3: (priv= 'private' )? create= 'create' rType= type (rtn= identifier )? name=
// identifier '(' (params= declaredParameterList )? ')' ':' expr= expression ';'
{
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:134:3: (priv= 'private' )?
int alt20 = 2;
int LA20_0 = input.LA(1);
if ((LA20_0 == 34)) {
alt20 = 1;
}
switch (alt20) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:134:4: priv= 'private'
{
priv = (Token) match(input, 34, FOLLOW_34_in_extension526);
if (state.failed)
return r;
}
break;
}
create = (Token) match(input, 38, FOLLOW_38_in_extension532);
if (state.failed)
return r;
pushFollow(FOLLOW_type_in_extension536);
rType = type();
state._fsp--;
if (state.failed)
return r;
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:134:48: (rtn= identifier )?
int alt21 = 2;
int LA21_0 = input.LA(1);
if ((LA21_0 == Identifier)) {
int LA21_1 = input.LA(2);
if ((LA21_1 == Identifier)) {
alt21 = 1;
}
}
switch (alt21) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:134:49: rtn= identifier
{
pushFollow(FOLLOW_identifier_in_extension541);
rtn = identifier();
state._fsp--;
if (state.failed)
return r;
}
break;
}
pushFollow(FOLLOW_identifier_in_extension547);
name = identifier();
state._fsp--;
if (state.failed)
return r;
match(input, 29, FOLLOW_29_in_extension549);
if (state.failed)
return r;
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:134:86: (params= declaredParameterList )?
int alt22 = 2;
int LA22_0 = input.LA(1);
if ((LA22_0 == Identifier || (LA22_0 >= 39 && LA22_0 <= 41))) {
alt22 = 1;
}
switch (alt22) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:134:87: params= declaredParameterList
{
pushFollow(FOLLOW_declaredParameterList_in_extension554);
params = declaredParameterList();
state._fsp--;
if (state.failed)
return r;
}
break;
}
match(input, 32, FOLLOW_32_in_extension558);
if (state.failed)
return r;
match(input, 27, FOLLOW_27_in_extension560);
if (state.failed)
return r;
pushFollow(FOLLOW_expression_in_extension566);
expr = expression();
state._fsp--;
if (state.failed)
return r;
match(input, 19, FOLLOW_19_in_extension568);
if (state.failed)
return r;
if (state.backtracking == 0) {
r = factory.createCreateExtension(id(create), rType, rtn, name, params, expr, id(priv));
}
}
break;
}
if (state.backtracking == 0) {
addLocation((AbstractExtension) r, startToken, /* endToken */(CommonToken) input.LT(-1));
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return r;
}
// $ANTLR end "extension"
// $ANTLR start "javaType"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:140:1: javaType returns [Identifier r] : i= identifier (d= '.' (i1= identifier | i2=
// 'Collection' | i3= 'List' | i4= 'Set' ) )* ;
public final Identifier javaType() throws RecognitionException {
Identifier r = null;
Token d = null;
Token i2 = null;
Token i3 = null;
Token i4 = null;
Identifier i = null;
Identifier i1 = null;
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:143:1: (i= identifier (d= '.' (i1= identifier | i2= 'Collection' | i3= 'List' | i4=
// 'Set' ) )* )
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:144:2: i= identifier (d= '.' (i1= identifier | i2= 'Collection' | i3= 'List' | i4=
// 'Set' ) )*
{
pushFollow(FOLLOW_identifier_in_javaType598);
i = identifier();
state._fsp--;
if (state.failed)
return r;
if (state.backtracking == 0) {
r = i;
}
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:145:2: (d= '.' (i1= identifier | i2= 'Collection' | i3= 'List' | i4= 'Set' ) )*
loop25: do {
int alt25 = 2;
int LA25_0 = input.LA(1);
if ((LA25_0 == 37)) {
int LA25_1 = input.LA(2);
if ((LA25_1 == Identifier)) {
int LA25_3 = input.LA(3);
if ((LA25_3 == 30 || LA25_3 == 32 || LA25_3 == 37)) {
alt25 = 1;
}
} else if (((LA25_1 >= 39 && LA25_1 <= 41))) {
alt25 = 1;
}
}
switch (alt25) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:145:3: d= '.' (i1= identifier | i2= 'Collection' | i3= 'List' | i4= 'Set' )
{
d = (Token) match(input, 37, FOLLOW_37_in_javaType607);
if (state.failed)
return r;
if (state.backtracking == 0) {
if (r != null)
r.append(id(d));
}
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:145:41: (i1= identifier | i2= 'Collection' | i3= 'List' | i4= 'Set' )
int alt24 = 4;
switch (input.LA(1)) {
case Identifier: {
alt24 = 1;
}
break;
case 39: {
alt24 = 2;
}
break;
case 40: {
alt24 = 3;
}
break;
case 41: {
alt24 = 4;
}
break;
default:
if (state.backtracking > 0) {
state.failed = true;
return r;
}
NoViableAltException nvae = new NoViableAltException("", 24, 0, input);
throw nvae;
}
switch (alt24) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:145:42: i1= identifier
{
pushFollow(FOLLOW_identifier_in_javaType613);
i1 = identifier();
state._fsp--;
if (state.failed)
return r;
if (state.backtracking == 0) {
if (r != null)
r.append(i1);
}
}
break;
case 2:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:145:86: i2= 'Collection'
{
i2 = (Token) match(input, 39, FOLLOW_39_in_javaType619);
if (state.failed)
return r;
if (state.backtracking == 0) {
r.append(id(i2));
}
}
break;
case 3:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:146:2: i3= 'List'
{
i3 = (Token) match(input, 40, FOLLOW_40_in_javaType628);
if (state.failed)
return r;
if (state.backtracking == 0) {
if (r != null)
r.append(id(i3));
}
}
break;
case 4:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:146:46: i4= 'Set'
{
i4 = (Token) match(input, 41, FOLLOW_41_in_javaType634);
if (state.failed)
return r;
if (state.backtracking == 0) {
if (r != null)
r.append(id(i4));
}
}
break;
}
}
break;
default:
break loop25;
}
} while (true);
}
if (state.backtracking == 0) {
addLocation(r, startToken, /* endToken */(CommonToken) input.LT(-1));
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return r;
}
// $ANTLR end "javaType"
// $ANTLR start "expression"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:152:1: expression returns [Expression e] : x= letExpression ;
public final Expression expression() throws RecognitionException {
Expression e = null;
Expression x = null;
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:155:1: (x= letExpression )
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:156:2: x= letExpression
{
pushFollow(FOLLOW_letExpression_in_expression665);
x = letExpression();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = x;
}
}
if (state.backtracking == 0) {
addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return e;
}
// $ANTLR end "expression"
// $ANTLR start "letExpression"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:160:1: letExpression returns [Expression e] : ( 'let' v= identifier '=' varExpr=
// castedExpression ':' target= expression | x= castedExpression );
public final Expression letExpression() throws RecognitionException {
Expression e = null;
Identifier v = null;
Expression varExpr = null;
Expression target = null;
Expression x = null;
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:163:1: ( 'let' v= identifier '=' varExpr= castedExpression ':' target= expression |
// x= castedExpression )
int alt26 = 2;
int LA26_0 = input.LA(1);
if ((LA26_0 == 42)) {
alt26 = 1;
} else if (((LA26_0 >= StringLiteral && LA26_0 <= Identifier) || LA26_0 == 24 || LA26_0 == 29 || (LA26_0 >= 39 && LA26_0 <= 41)
|| (LA26_0 >= 48 && LA26_0 <= 49) || LA26_0 == 63 || (LA26_0 >= 65 && LA26_0 <= 79))) {
alt26 = 2;
} else {
if (state.backtracking > 0) {
state.failed = true;
return e;
}
NoViableAltException nvae = new NoViableAltException("", 26, 0, input);
throw nvae;
}
switch (alt26) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:164:4: 'let' v= identifier '=' varExpr= castedExpression ':' target= expression
{
match(input, 42, FOLLOW_42_in_letExpression693);
if (state.failed)
return e;
pushFollow(FOLLOW_identifier_in_letExpression697);
v = identifier();
state._fsp--;
if (state.failed)
return e;
match(input, 43, FOLLOW_43_in_letExpression699);
if (state.failed)
return e;
pushFollow(FOLLOW_castedExpression_in_letExpression703);
varExpr = castedExpression();
state._fsp--;
if (state.failed)
return e;
match(input, 27, FOLLOW_27_in_letExpression705);
if (state.failed)
return e;
pushFollow(FOLLOW_expression_in_letExpression709);
target = expression();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = factory.createLetExpression(v, varExpr, target);
}
}
break;
case 2:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:166:4: x= castedExpression
{
pushFollow(FOLLOW_castedExpression_in_letExpression722);
x = castedExpression();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = x;
}
}
break;
}
if (state.backtracking == 0) {
addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return e;
}
// $ANTLR end "letExpression"
// $ANTLR start "castedExpression"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:170:1: castedExpression returns [Expression e] : ( ( '(' type ')' castedExpression )=> '('
// t= type ')' x= chainExpression | x= chainExpression );
public final Expression castedExpression() throws RecognitionException {
Expression e = null;
Identifier t = null;
Expression x = null;
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:173:1: ( ( '(' type ')' castedExpression )=> '(' t= type ')' x= chainExpression |
// x= chainExpression )
int alt27 = 2;
alt27 = dfa27.predict(input);
switch (alt27) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:174:5: ( '(' type ')' castedExpression )=> '(' t= type ')' x= chainExpression
{
match(input, 29, FOLLOW_29_in_castedExpression762);
if (state.failed)
return e;
pushFollow(FOLLOW_type_in_castedExpression766);
t = type();
state._fsp--;
if (state.failed)
return e;
match(input, 32, FOLLOW_32_in_castedExpression768);
if (state.failed)
return e;
pushFollow(FOLLOW_chainExpression_in_castedExpression772);
x = chainExpression();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = factory.createCast(t, x);
}
}
break;
case 2:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:176:4: x= chainExpression
{
pushFollow(FOLLOW_chainExpression_in_castedExpression781);
x = chainExpression();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = x;
}
}
break;
}
if (state.backtracking == 0) {
addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return e;
}
// $ANTLR end "castedExpression"
// $ANTLR start "chainExpression"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:180:1: chainExpression returns [Expression e] : x= ifExpression ( '->' right= ifExpression
// )* ;
public final Expression chainExpression() throws RecognitionException {
Expression e = null;
Expression x = null;
Expression right = null;
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:182:1: (x= ifExpression ( '->' right= ifExpression )* )
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:183:2: x= ifExpression ( '->' right= ifExpression )*
{
pushFollow(FOLLOW_ifExpression_in_chainExpression805);
x = ifExpression();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = x;
}
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:183:25: ( '->' right= ifExpression )*
loop28: do {
int alt28 = 2;
int LA28_0 = input.LA(1);
if ((LA28_0 == 44)) {
alt28 = 1;
}
switch (alt28) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:183:27: '->' right= ifExpression
{
match(input, 44, FOLLOW_44_in_chainExpression811);
if (state.failed)
return e;
pushFollow(FOLLOW_ifExpression_in_chainExpression815);
right = ifExpression();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = factory.createChainExpression(e, right);
addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
}
}
break;
default:
break loop28;
}
} while (true);
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return e;
}
// $ANTLR end "chainExpression"
// $ANTLR start "ifExpression"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:187:1: ifExpression returns [Expression e] : (x= switchExpression ( '?' thenPart=
// switchExpression ':' elsePart= switchExpression )? | 'if' condition= switchExpression 'then' thenPart= switchExpression ( 'else' elsePart=
// expression )? );
public final Expression ifExpression() throws RecognitionException {
Expression e = null;
Expression x = null;
Expression thenPart = null;
Expression elsePart = null;
Expression condition = null;
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:190:1: (x= switchExpression ( '?' thenPart= switchExpression ':' elsePart=
// switchExpression )? | 'if' condition= switchExpression 'then' thenPart= switchExpression ( 'else' elsePart= expression )? )
int alt31 = 2;
int LA31_0 = input.LA(1);
if (((LA31_0 >= StringLiteral && LA31_0 <= Identifier) || LA31_0 == 29 || (LA31_0 >= 39 && LA31_0 <= 41)
|| (LA31_0 >= 48 && LA31_0 <= 49) || LA31_0 == 63 || (LA31_0 >= 65 && LA31_0 <= 79))) {
alt31 = 1;
} else if ((LA31_0 == 24)) {
alt31 = 2;
} else {
if (state.backtracking > 0) {
state.failed = true;
return e;
}
NoViableAltException nvae = new NoViableAltException("", 31, 0, input);
throw nvae;
}
switch (alt31) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:191:2: x= switchExpression ( '?' thenPart= switchExpression ':' elsePart=
// switchExpression )?
{
pushFollow(FOLLOW_switchExpression_in_ifExpression845);
x = switchExpression();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = x;
}
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:191:28: ( '?' thenPart= switchExpression ':' elsePart= switchExpression )?
int alt29 = 2;
int LA29_0 = input.LA(1);
if ((LA29_0 == 45)) {
alt29 = 1;
}
switch (alt29) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:191:29: '?' thenPart= switchExpression ':' elsePart= switchExpression
{
match(input, 45, FOLLOW_45_in_ifExpression849);
if (state.failed)
return e;
pushFollow(FOLLOW_switchExpression_in_ifExpression853);
thenPart = switchExpression();
state._fsp--;
if (state.failed)
return e;
match(input, 27, FOLLOW_27_in_ifExpression855);
if (state.failed)
return e;
pushFollow(FOLLOW_switchExpression_in_ifExpression859);
elsePart = switchExpression();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = factory.createIf(e, thenPart, elsePart);
}
}
break;
}
}
break;
case 2:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:192:3: 'if' condition= switchExpression 'then' thenPart= switchExpression ( 'else'
// elsePart= expression )?
{
match(input, 24, FOLLOW_24_in_ifExpression867);
if (state.failed)
return e;
pushFollow(FOLLOW_switchExpression_in_ifExpression871);
condition = switchExpression();
state._fsp--;
if (state.failed)
return e;
match(input, 46, FOLLOW_46_in_ifExpression873);
if (state.failed)
return e;
pushFollow(FOLLOW_switchExpression_in_ifExpression877);
thenPart = switchExpression();
state._fsp--;
if (state.failed)
return e;
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:192:68: ( 'else' elsePart= expression )?
int alt30 = 2;
int LA30_0 = input.LA(1);
if ((LA30_0 == 47)) {
alt30 = 1;
}
switch (alt30) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:192:69: 'else' elsePart= expression
{
match(input, 47, FOLLOW_47_in_ifExpression880);
if (state.failed)
return e;
pushFollow(FOLLOW_expression_in_ifExpression884);
elsePart = expression();
state._fsp--;
if (state.failed)
return e;
}
break;
}
if (state.backtracking == 0) {
e = factory.createIf(condition, thenPart, elsePart);
}
}
break;
}
if (state.backtracking == 0) {
addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return e;
}
// $ANTLR end "ifExpression"
// $ANTLR start "switchExpression"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:196:1: switchExpression returns [Expression e=null] : ( 'switch' ( '(' pred= orExpression
// ')' )? '{' ( 'case' c= orExpression ':' v= orExpression )* 'default' ':' def= orExpression '}' | x= orExpression );
public final Expression switchExpression() throws RecognitionException {
Expression e = null;
Expression pred = null;
Expression c = null;
Expression v = null;
Expression def = null;
Expression x = null;
final CommonToken startToken = (CommonToken) input.LT(1);
final List<Case> cases = new BasicEList<Case>();
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:199:1: ( 'switch' ( '(' pred= orExpression ')' )? '{' ( 'case' c= orExpression ':'
// v= orExpression )* 'default' ':' def= orExpression '}' | x= orExpression )
int alt34 = 2;
int LA34_0 = input.LA(1);
if ((LA34_0 == 48)) {
alt34 = 1;
} else if (((LA34_0 >= StringLiteral && LA34_0 <= Identifier) || LA34_0 == 29 || (LA34_0 >= 39 && LA34_0 <= 41) || LA34_0 == 49
|| LA34_0 == 63 || (LA34_0 >= 65 && LA34_0 <= 79))) {
alt34 = 2;
} else {
if (state.backtracking > 0) {
state.failed = true;
return e;
}
NoViableAltException nvae = new NoViableAltException("", 34, 0, input);
throw nvae;
}
switch (alt34) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:200:4: 'switch' ( '(' pred= orExpression ')' )? '{' ( 'case' c= orExpression ':' v=
// orExpression )* 'default' ':' def= orExpression '}'
{
match(input, 48, FOLLOW_48_in_switchExpression914);
if (state.failed)
return e;
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:200:13: ( '(' pred= orExpression ')' )?
int alt32 = 2;
int LA32_0 = input.LA(1);
if ((LA32_0 == 29)) {
alt32 = 1;
}
switch (alt32) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:200:14: '(' pred= orExpression ')'
{
match(input, 29, FOLLOW_29_in_switchExpression917);
if (state.failed)
return e;
pushFollow(FOLLOW_orExpression_in_switchExpression923);
pred = orExpression();
state._fsp--;
if (state.failed)
return e;
match(input, 32, FOLLOW_32_in_switchExpression925);
if (state.failed)
return e;
}
break;
}
match(input, 49, FOLLOW_49_in_switchExpression932);
if (state.failed)
return e;
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:202:4: ( 'case' c= orExpression ':' v= orExpression )*
loop33: do {
int alt33 = 2;
int LA33_0 = input.LA(1);
if ((LA33_0 == 50)) {
alt33 = 1;
}
switch (alt33) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:203:6: 'case' c= orExpression ':' v= orExpression
{
match(input, 50, FOLLOW_50_in_switchExpression945);
if (state.failed)
return e;
pushFollow(FOLLOW_orExpression_in_switchExpression949);
c = orExpression();
state._fsp--;
if (state.failed)
return e;
match(input, 27, FOLLOW_27_in_switchExpression952);
if (state.failed)
return e;
pushFollow(FOLLOW_orExpression_in_switchExpression957);
v = orExpression();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
Case _case = factory.createCase(c, v);
if (_case != null)
cases.add(_case);
}
}
break;
default:
break loop33;
}
} while (true);
match(input, 51, FOLLOW_51_in_switchExpression975);
if (state.failed)
return e;
match(input, 27, FOLLOW_27_in_switchExpression977);
if (state.failed)
return e;
pushFollow(FOLLOW_orExpression_in_switchExpression983);
def = orExpression();
state._fsp--;
if (state.failed)
return e;
match(input, 52, FOLLOW_52_in_switchExpression988);
if (state.failed)
return e;
if (state.backtracking == 0) {
e = factory.createSwitchExpression(pred, cases, def);
}
}
break;
case 2:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:209:4: x= orExpression
{
pushFollow(FOLLOW_orExpression_in_switchExpression1000);
x = orExpression();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = x;
}
}
break;
}
if (state.backtracking == 0) {
addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return e;
}
// $ANTLR end "switchExpression"
// $ANTLR start "orExpression"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:213:1: orExpression returns [Expression e] : x= andExpression (name= '||' r= andExpression
// )* ;
public final Expression orExpression() throws RecognitionException {
Expression e = null;
Token name = null;
Expression x = null;
Expression r = null;
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:215:1: (x= andExpression (name= '||' r= andExpression )* )
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:216:4: x= andExpression (name= '||' r= andExpression )*
{
pushFollow(FOLLOW_andExpression_in_orExpression1025);
x = andExpression();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = x;
}
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:216:28: (name= '||' r= andExpression )*
loop35: do {
int alt35 = 2;
int LA35_0 = input.LA(1);
if ((LA35_0 == 53)) {
alt35 = 1;
}
switch (alt35) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:216:29: name= '||' r= andExpression
{
name = (Token) match(input, 53, FOLLOW_53_in_orExpression1032);
if (state.failed)
return e;
pushFollow(FOLLOW_andExpression_in_orExpression1036);
r = andExpression();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = factory.createBooleanOperation(id(name), e, r);
addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
}
}
break;
default:
break loop35;
}
} while (true);
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return e;
}
// $ANTLR end "orExpression"
// $ANTLR start "andExpression"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:220:1: andExpression returns [Expression e] : x= impliesExpression (name= '&&' r=
// impliesExpression )* ;
public final Expression andExpression() throws RecognitionException {
Expression e = null;
Token name = null;
Expression x = null;
Expression r = null;
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:222:1: (x= impliesExpression (name= '&&' r= impliesExpression )* )
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:223:2: x= impliesExpression (name= '&&' r= impliesExpression )*
{
pushFollow(FOLLOW_impliesExpression_in_andExpression1064);
x = impliesExpression();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = x;
}
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:223:30: (name= '&&' r= impliesExpression )*
loop36: do {
int alt36 = 2;
int LA36_0 = input.LA(1);
if ((LA36_0 == 54)) {
alt36 = 1;
}
switch (alt36) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:223:31: name= '&&' r= impliesExpression
{
name = (Token) match(input, 54, FOLLOW_54_in_andExpression1071);
if (state.failed)
return e;
pushFollow(FOLLOW_impliesExpression_in_andExpression1075);
r = impliesExpression();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = factory.createBooleanOperation(id(name), e, r);
addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
}
}
break;
default:
break loop36;
}
} while (true);
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return e;
}
// $ANTLR end "andExpression"
// $ANTLR start "impliesExpression"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:227:1: impliesExpression returns [Expression e] : x= relationalExpression (name= 'implies'
// r= relationalExpression )* ;
public final Expression impliesExpression() throws RecognitionException {
Expression e = null;
Token name = null;
Expression x = null;
Expression r = null;
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:229:1: (x= relationalExpression (name= 'implies' r= relationalExpression )* )
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:230:2: x= relationalExpression (name= 'implies' r= relationalExpression )*
{
pushFollow(FOLLOW_relationalExpression_in_impliesExpression1102);
x = relationalExpression();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = x;
}
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:230:33: (name= 'implies' r= relationalExpression )*
loop37: do {
int alt37 = 2;
int LA37_0 = input.LA(1);
if ((LA37_0 == 55)) {
alt37 = 1;
}
switch (alt37) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:230:34: name= 'implies' r= relationalExpression
{
name = (Token) match(input, 55, FOLLOW_55_in_impliesExpression1109);
if (state.failed)
return e;
pushFollow(FOLLOW_relationalExpression_in_impliesExpression1113);
r = relationalExpression();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = factory.createBooleanOperation(id(name), e, r);
addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
}
}
break;
default:
break loop37;
}
} while (true);
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return e;
}
// $ANTLR end "impliesExpression"
// $ANTLR start "relationalExpression"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:234:1: relationalExpression returns [Expression e] : x= additiveExpression (name= ( '==' |
// '!=' | '>=' | '<=' | '>' | '<' ) r= additiveExpression )* ;
public final Expression relationalExpression() throws RecognitionException {
Expression e = null;
Token name = null;
Expression x = null;
Expression r = null;
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:236:1: (x= additiveExpression (name= ( '==' | '!=' | '>=' | '<=' | '>' | '<' ) r=
// additiveExpression )* )
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:237:2: x= additiveExpression (name= ( '==' | '!=' | '>=' | '<=' | '>' | '<' ) r=
// additiveExpression )*
{
pushFollow(FOLLOW_additiveExpression_in_relationalExpression1141);
x = additiveExpression();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = x;
}
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:238:2: (name= ( '==' | '!=' | '>=' | '<=' | '>' | '<' ) r= additiveExpression
// )*
loop38: do {
int alt38 = 2;
int LA38_0 = input.LA(1);
if (((LA38_0 >= 56 && LA38_0 <= 61))) {
alt38 = 1;
}
switch (alt38) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:238:3: name= ( '==' | '!=' | '>=' | '<=' | '>' | '<' ) r=
// additiveExpression
{
name = (Token) input.LT(1);
if ((input.LA(1) >= 56 && input.LA(1) <= 61)) {
input.consume();
state.errorRecovery = false;
state.failed = false;
} else {
if (state.backtracking > 0) {
state.failed = true;
return e;
}
MismatchedSetException mse = new MismatchedSetException(null, input);
throw mse;
}
pushFollow(FOLLOW_additiveExpression_in_relationalExpression1175);
r = additiveExpression();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = factory.createBinaryOperation(id(name), e, r);
addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
}
}
break;
default:
break loop38;
}
} while (true);
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return e;
}
// $ANTLR end "relationalExpression"
// $ANTLR start "additiveExpression"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:242:1: additiveExpression returns [Expression e] : x= multiplicativeExpression (name= ( '+'
// | '-' ) r= multiplicativeExpression )* ;
public final Expression additiveExpression() throws RecognitionException {
Expression e = null;
Token name = null;
Expression x = null;
Expression r = null;
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:244:1: (x= multiplicativeExpression (name= ( '+' | '-' ) r=
// multiplicativeExpression )* )
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:245:2: x= multiplicativeExpression (name= ( '+' | '-' ) r= multiplicativeExpression
// )*
{
pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression1200);
x = multiplicativeExpression();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = x;
}
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:246:4: (name= ( '+' | '-' ) r= multiplicativeExpression )*
loop39: do {
int alt39 = 2;
int LA39_0 = input.LA(1);
if (((LA39_0 >= 62 && LA39_0 <= 63))) {
alt39 = 1;
}
switch (alt39) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:246:5: name= ( '+' | '-' ) r= multiplicativeExpression
{
name = (Token) input.LT(1);
if ((input.LA(1) >= 62 && input.LA(1) <= 63)) {
input.consume();
state.errorRecovery = false;
state.failed = false;
} else {
if (state.backtracking > 0) {
state.failed = true;
return e;
}
MismatchedSetException mse = new MismatchedSetException(null, input);
throw mse;
}
pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression1219);
r = multiplicativeExpression();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = factory.createBinaryOperation(id(name), e, r);
addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
}
}
break;
default:
break loop39;
}
} while (true);
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return e;
}
// $ANTLR end "additiveExpression"
// $ANTLR start "multiplicativeExpression"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:250:1: multiplicativeExpression returns [Expression e] : x= unaryExpression (name= ( '*' |
// '/' ) r= unaryExpression )* ;
public final Expression multiplicativeExpression() throws RecognitionException {
Expression e = null;
Token name = null;
Expression x = null;
Expression r = null;
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:252:1: (x= unaryExpression (name= ( '*' | '/' ) r= unaryExpression )* )
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:253:2: x= unaryExpression (name= ( '*' | '/' ) r= unaryExpression )*
{
pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression1244);
x = unaryExpression();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = x;
}
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:254:2: (name= ( '*' | '/' ) r= unaryExpression )*
loop40: do {
int alt40 = 2;
int LA40_0 = input.LA(1);
if ((LA40_0 == 31 || LA40_0 == 64)) {
alt40 = 1;
}
switch (alt40) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:254:3: name= ( '*' | '/' ) r= unaryExpression
{
name = (Token) input.LT(1);
if (input.LA(1) == 31 || input.LA(1) == 64) {
input.consume();
state.errorRecovery = false;
state.failed = false;
} else {
if (state.backtracking > 0) {
state.failed = true;
return e;
}
MismatchedSetException mse = new MismatchedSetException(null, input);
throw mse;
}
pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression1262);
r = unaryExpression();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = factory.createBinaryOperation(id(name), e, r);
addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
}
}
break;
default:
break loop40;
}
} while (true);
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return e;
}
// $ANTLR end "multiplicativeExpression"
// $ANTLR start "unaryExpression"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:258:1: unaryExpression returns [Expression e] : (x= infixExpression | name= '!' x=
// infixExpression | name= '-' x= infixExpression );
public final Expression unaryExpression() throws RecognitionException {
Expression e = null;
Token name = null;
Expression x = null;
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:261:1: (x= infixExpression | name= '!' x= infixExpression | name= '-' x=
// infixExpression )
int alt41 = 3;
switch (input.LA(1)) {
case StringLiteral:
case IntLiteral:
case Identifier:
case 29:
case 39:
case 40:
case 41:
case 49:
case 66:
case 67:
case 68:
case 69:
case 70:
case 71:
case 72:
case 73:
case 74:
case 75:
case 76:
case 77:
case 78:
case 79: {
alt41 = 1;
}
break;
case 65: {
alt41 = 2;
}
break;
case 63: {
alt41 = 3;
}
break;
default:
if (state.backtracking > 0) {
state.failed = true;
return e;
}
NoViableAltException nvae = new NoViableAltException("", 41, 0, input);
throw nvae;
}
switch (alt41) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:262:2: x= infixExpression
{
pushFollow(FOLLOW_infixExpression_in_unaryExpression1291);
x = infixExpression();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = x;
}
}
break;
case 2:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:263:3: name= '!' x= infixExpression
{
name = (Token) match(input, 65, FOLLOW_65_in_unaryExpression1299);
if (state.failed)
return e;
pushFollow(FOLLOW_infixExpression_in_unaryExpression1303);
x = infixExpression();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = factory.createOperationCall(id(name), x);
}
}
break;
case 3:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:264:3: name= '-' x= infixExpression
{
name = (Token) match(input, 63, FOLLOW_63_in_unaryExpression1311);
if (state.failed)
return e;
pushFollow(FOLLOW_infixExpression_in_unaryExpression1315);
x = infixExpression();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = factory.createOperationCall(id(name), x);
}
}
break;
}
if (state.backtracking == 0) {
addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return e;
}
// $ANTLR end "unaryExpression"
// $ANTLR start "infixExpression"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:268:1: infixExpression returns [Expression e] : x= primaryExpression ( '.' op= featureCall
// )* ;
public final Expression infixExpression() throws RecognitionException {
Expression e = null;
Expression x = null;
FeatureCall op = null;
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:271:1: (x= primaryExpression ( '.' op= featureCall )* )
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:272:2: x= primaryExpression ( '.' op= featureCall )*
{
pushFollow(FOLLOW_primaryExpression_in_infixExpression1342);
x = primaryExpression();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = x;
}
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:272:30: ( '.' op= featureCall )*
loop42: do {
int alt42 = 2;
int LA42_0 = input.LA(1);
if ((LA42_0 == 37)) {
alt42 = 1;
}
switch (alt42) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:272:32: '.' op= featureCall
{
match(input, 37, FOLLOW_37_in_infixExpression1348);
if (state.failed)
return e;
pushFollow(FOLLOW_featureCall_in_infixExpression1352);
op = featureCall();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
if (op != null) {
op.setTarget(e);
e = op;
}
}
}
break;
default:
break loop42;
}
} while (true);
}
if (state.backtracking == 0) {
addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return e;
}
// $ANTLR end "infixExpression"
// $ANTLR start "primaryExpression"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:276:1: primaryExpression returns [Expression e] : (c= StringLiteral | x= featureCall | x=
// booleanLiteral | x= numberLiteral | x= nullLiteral | x= listLiteral | x= constructorCall | x= globalVarExpression | x= paranthesizedExpression
// );
public final Expression primaryExpression() throws RecognitionException {
Expression e = null;
Token c = null;
Expression x = null;
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:279:1: (c= StringLiteral | x= featureCall | x= booleanLiteral | x= numberLiteral |
// x= nullLiteral | x= listLiteral | x= constructorCall | x= globalVarExpression | x= paranthesizedExpression )
int alt43 = 9;
switch (input.LA(1)) {
case StringLiteral: {
alt43 = 1;
}
break;
case Identifier:
case 39:
case 40:
case 41:
case 71:
case 72:
case 73:
case 74:
case 75:
case 76:
case 77:
case 78:
case 79: {
alt43 = 2;
}
break;
case 68:
case 69: {
alt43 = 3;
}
break;
case IntLiteral: {
alt43 = 4;
}
break;
case 70: {
alt43 = 5;
}
break;
case 49: {
alt43 = 6;
}
break;
case 67: {
alt43 = 7;
}
break;
case 66: {
alt43 = 8;
}
break;
case 29: {
alt43 = 9;
}
break;
default:
if (state.backtracking > 0) {
state.failed = true;
return e;
}
NoViableAltException nvae = new NoViableAltException("", 43, 0, input);
throw nvae;
}
switch (alt43) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:280:4: c= StringLiteral
{
c = (Token) match(input, StringLiteral, FOLLOW_StringLiteral_in_primaryExpression1387);
if (state.failed)
return e;
if (state.backtracking == 0) {
e = factory.createStringLiteral(id(c));
}
}
break;
case 2:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:281:5: x= featureCall
{
pushFollow(FOLLOW_featureCall_in_primaryExpression1398);
x = featureCall();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = x;
}
}
break;
case 3:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:282:5: x= booleanLiteral
{
pushFollow(FOLLOW_booleanLiteral_in_primaryExpression1408);
x = booleanLiteral();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = x;
}
}
break;
case 4:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:283:5: x= numberLiteral
{
pushFollow(FOLLOW_numberLiteral_in_primaryExpression1418);
x = numberLiteral();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = x;
}
}
break;
case 5:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:284:5: x= nullLiteral
{
pushFollow(FOLLOW_nullLiteral_in_primaryExpression1428);
x = nullLiteral();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = x;
}
}
break;
case 6:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:285:5: x= listLiteral
{
pushFollow(FOLLOW_listLiteral_in_primaryExpression1438);
x = listLiteral();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = x;
}
}
break;
case 7:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:286:5: x= constructorCall
{
pushFollow(FOLLOW_constructorCall_in_primaryExpression1448);
x = constructorCall();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = x;
}
}
break;
case 8:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:287:5: x= globalVarExpression
{
pushFollow(FOLLOW_globalVarExpression_in_primaryExpression1458);
x = globalVarExpression();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = x;
}
}
break;
case 9:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:288:5: x= paranthesizedExpression
{
pushFollow(FOLLOW_paranthesizedExpression_in_primaryExpression1468);
x = paranthesizedExpression();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = x;
}
}
break;
}
if (state.backtracking == 0) {
addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return e;
}
// $ANTLR end "primaryExpression"
// $ANTLR start "paranthesizedExpression"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:291:1: paranthesizedExpression returns [Expression e] : '(' x= expression ')' ;
public final Expression paranthesizedExpression() throws RecognitionException {
Expression e = null;
Expression x = null;
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:294:1: ( '(' x= expression ')' )
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:295:5: '(' x= expression ')'
{
match(input, 29, FOLLOW_29_in_paranthesizedExpression1495);
if (state.failed)
return e;
pushFollow(FOLLOW_expression_in_paranthesizedExpression1499);
x = expression();
state._fsp--;
if (state.failed)
return e;
match(input, 32, FOLLOW_32_in_paranthesizedExpression1501);
if (state.failed)
return e;
if (state.backtracking == 0) {
e = factory.createParanthesizedExpression(x);
}
}
if (state.backtracking == 0) {
addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return e;
}
// $ANTLR end "paranthesizedExpression"
// $ANTLR start "globalVarExpression"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:299:1: globalVarExpression returns [GlobalVarExpression e] : 'GLOBALVAR' name= identifier ;
public final GlobalVarExpression globalVarExpression() throws RecognitionException {
GlobalVarExpression e = null;
Identifier name = null;
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:302:1: ( 'GLOBALVAR' name= identifier )
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:303:5: 'GLOBALVAR' name= identifier
{
match(input, 66, FOLLOW_66_in_globalVarExpression1530);
if (state.failed)
return e;
pushFollow(FOLLOW_identifier_in_globalVarExpression1534);
name = identifier();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = factory.createGlobalVarExpression(name);
}
}
if (state.backtracking == 0) {
addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return e;
}
// $ANTLR end "globalVarExpression"
// $ANTLR start "featureCall"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:306:1: featureCall returns [FeatureCall e] : (id1= identifier '(' (l= parameterList )? ')'
// | t= type | x= collectionExpression );
public final FeatureCall featureCall() throws RecognitionException {
FeatureCall e = null;
Identifier id1 = null;
List<Expression> l = null;
Identifier t = null;
FeatureCall x = null;
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:309:1: (id1= identifier '(' (l= parameterList )? ')' | t= type | x=
// collectionExpression )
int alt45 = 3;
switch (input.LA(1)) {
case Identifier: {
int LA45_1 = input.LA(2);
if ((LA45_1 == EOF || LA45_1 == 19 || (LA45_1 >= 25 && LA45_1 <= 27) || (LA45_1 >= 30 && LA45_1 <= 33) || LA45_1 == 37
|| (LA45_1 >= 44 && LA45_1 <= 47) || (LA45_1 >= 50 && LA45_1 <= 64))) {
alt45 = 2;
} else if ((LA45_1 == 29)) {
alt45 = 1;
} else {
if (state.backtracking > 0) {
state.failed = true;
return e;
}
NoViableAltException nvae = new NoViableAltException("", 45, 1, input);
throw nvae;
}
}
break;
case 39:
case 40:
case 41: {
alt45 = 2;
}
break;
case 71:
case 72:
case 73:
case 74:
case 75:
case 76:
case 77:
case 78:
case 79: {
alt45 = 3;
}
break;
default:
if (state.backtracking > 0) {
state.failed = true;
return e;
}
NoViableAltException nvae = new NoViableAltException("", 45, 0, input);
throw nvae;
}
switch (alt45) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:310:2: id1= identifier '(' (l= parameterList )? ')'
{
pushFollow(FOLLOW_identifier_in_featureCall1561);
id1 = identifier();
state._fsp--;
if (state.failed)
return e;
match(input, 29, FOLLOW_29_in_featureCall1563);
if (state.failed)
return e;
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:310:21: (l= parameterList )?
int alt44 = 2;
int LA44_0 = input.LA(1);
if (((LA44_0 >= StringLiteral && LA44_0 <= Identifier) || LA44_0 == 24 || LA44_0 == 29 || (LA44_0 >= 39 && LA44_0 <= 42)
|| (LA44_0 >= 48 && LA44_0 <= 49) || LA44_0 == 63 || (LA44_0 >= 65 && LA44_0 <= 79))) {
alt44 = 1;
}
switch (alt44) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:310:22: l= parameterList
{
pushFollow(FOLLOW_parameterList_in_featureCall1568);
l = parameterList();
state._fsp--;
if (state.failed)
return e;
}
break;
}
match(input, 32, FOLLOW_32_in_featureCall1572);
if (state.failed)
return e;
if (state.backtracking == 0) {
e = factory.createOperationCall(id1, l);
}
}
break;
case 2:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:311:5: t= type
{
pushFollow(FOLLOW_type_in_featureCall1582);
t = type();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = factory.createFeatureCall(t, null);
}
}
break;
case 3:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:312:5: x= collectionExpression
{
pushFollow(FOLLOW_collectionExpression_in_featureCall1593);
x = collectionExpression();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = x;
}
}
break;
}
if (state.backtracking == 0) {
addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return e;
}
// $ANTLR end "featureCall"
// $ANTLR start "listLiteral"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:316:1: listLiteral returns [Expression e] : '{' (l= parameterList )? '}' ;
public final Expression listLiteral() throws RecognitionException {
Expression e = null;
List<Expression> l = null;
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:319:1: ( '{' (l= parameterList )? '}' )
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:320:2: '{' (l= parameterList )? '}'
{
match(input, 49, FOLLOW_49_in_listLiteral1619);
if (state.failed)
return e;
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:320:6: (l= parameterList )?
int alt46 = 2;
int LA46_0 = input.LA(1);
if (((LA46_0 >= StringLiteral && LA46_0 <= Identifier) || LA46_0 == 24 || LA46_0 == 29 || (LA46_0 >= 39 && LA46_0 <= 42)
|| (LA46_0 >= 48 && LA46_0 <= 49) || LA46_0 == 63 || (LA46_0 >= 65 && LA46_0 <= 79))) {
alt46 = 1;
}
switch (alt46) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:320:7: l= parameterList
{
pushFollow(FOLLOW_parameterList_in_listLiteral1624);
l = parameterList();
state._fsp--;
if (state.failed)
return e;
}
break;
}
match(input, 52, FOLLOW_52_in_listLiteral1628);
if (state.failed)
return e;
if (state.backtracking == 0) {
e = factory.createListLiteral(l);
}
}
if (state.backtracking == 0) {
addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return e;
}
// $ANTLR end "listLiteral"
// $ANTLR start "constructorCall"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:323:1: constructorCall returns [Expression e] : 'new' t= simpleType ;
public final Expression constructorCall() throws RecognitionException {
Expression e = null;
Identifier t = null;
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:326:1: ( 'new' t= simpleType )
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:327:2: 'new' t= simpleType
{
match(input, 67, FOLLOW_67_in_constructorCall1653);
if (state.failed)
return e;
pushFollow(FOLLOW_simpleType_in_constructorCall1657);
t = simpleType();
state._fsp--;
if (state.failed)
return e;
if (state.backtracking == 0) {
e = factory.createConstructorCall(t);
}
}
if (state.backtracking == 0) {
addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return e;
}
// $ANTLR end "constructorCall"
// $ANTLR start "booleanLiteral"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:332:1: booleanLiteral returns [Expression e=factory.createBooleanLiteral(id(input.LT(1)))]
// : ( 'false' | 'true' );
public final Expression booleanLiteral() throws RecognitionException {
Expression e = factory.createBooleanLiteral(id(input.LT(1)));
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:335:1: ( 'false' | 'true' )
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:
{
if ((input.LA(1) >= 68 && input.LA(1) <= 69)) {
input.consume();
state.errorRecovery = false;
state.failed = false;
} else {
if (state.backtracking > 0) {
state.failed = true;
return e;
}
MismatchedSetException mse = new MismatchedSetException(null, input);
throw mse;
}
}
if (state.backtracking == 0) {
addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return e;
}
// $ANTLR end "booleanLiteral"
// $ANTLR start "nullLiteral"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:339:1: nullLiteral returns [Expression e=factory.createNullLiteral(id(input.LT(1)))] :
// 'null' ;
public final Expression nullLiteral() throws RecognitionException {
Expression e = factory.createNullLiteral(id(input.LT(1)));
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:342:1: ( 'null' )
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:343:2: 'null'
{
match(input, 70, FOLLOW_70_in_nullLiteral1709);
if (state.failed)
return e;
}
if (state.backtracking == 0) {
addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return e;
}
// $ANTLR end "nullLiteral"
// $ANTLR start "numberLiteral"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:346:1: numberLiteral returns [Expression e] : (a= IntLiteral | a= IntLiteral b= '.' c=
// IntLiteral );
public final Expression numberLiteral() throws RecognitionException {
Expression e = null;
Token a = null;
Token b = null;
Token c = null;
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:349:1: (a= IntLiteral | a= IntLiteral b= '.' c= IntLiteral )
int alt47 = 2;
int LA47_0 = input.LA(1);
if ((LA47_0 == IntLiteral)) {
int LA47_1 = input.LA(2);
if ((LA47_1 == 37)) {
int LA47_2 = input.LA(3);
if ((LA47_2 == IntLiteral)) {
alt47 = 2;
} else if ((LA47_2 == Identifier || (LA47_2 >= 39 && LA47_2 <= 41) || (LA47_2 >= 71 && LA47_2 <= 79))) {
alt47 = 1;
} else {
if (state.backtracking > 0) {
state.failed = true;
return e;
}
NoViableAltException nvae = new NoViableAltException("", 47, 2, input);
throw nvae;
}
} else if ((LA47_1 == EOF || LA47_1 == 19 || (LA47_1 >= 25 && LA47_1 <= 27) || (LA47_1 >= 30 && LA47_1 <= 32)
|| (LA47_1 >= 44 && LA47_1 <= 47) || (LA47_1 >= 50 && LA47_1 <= 64))) {
alt47 = 1;
} else {
if (state.backtracking > 0) {
state.failed = true;
return e;
}
NoViableAltException nvae = new NoViableAltException("", 47, 1, input);
throw nvae;
}
} else {
if (state.backtracking > 0) {
state.failed = true;
return e;
}
NoViableAltException nvae = new NoViableAltException("", 47, 0, input);
throw nvae;
}
switch (alt47) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:350:4: a= IntLiteral
{
a = (Token) match(input, IntLiteral, FOLLOW_IntLiteral_in_numberLiteral1736);
if (state.failed)
return e;
if (state.backtracking == 0) {
e = factory.createIntegerLiteral(id(a));
}
}
break;
case 2:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:351:4: a= IntLiteral b= '.' c= IntLiteral
{
a = (Token) match(input, IntLiteral, FOLLOW_IntLiteral_in_numberLiteral1745);
if (state.failed)
return e;
b = (Token) match(input, 37, FOLLOW_37_in_numberLiteral1749);
if (state.failed)
return e;
c = (Token) match(input, IntLiteral, FOLLOW_IntLiteral_in_numberLiteral1753);
if (state.failed)
return e;
if (state.backtracking == 0) {
e = factory.createRealLiteral(id(a).append(id(b)).append(id(c)));
}
}
break;
}
if (state.backtracking == 0) {
addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return e;
}
// $ANTLR end "numberLiteral"
// $ANTLR start "collectionExpression"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:355:1: collectionExpression returns [FeatureCall e] : (name= 'typeSelect' '(' t= type ')' |
// name= ( 'collect' | 'select' | 'selectFirst' | 'reject' | 'exists' | 'notExists' | 'sortBy' | 'forAll' ) '(' (var= identifier '|' )? x=
// expression ')' );
public final FeatureCall collectionExpression() throws RecognitionException {
FeatureCall e = null;
Token name = null;
Identifier t = null;
Identifier var = null;
Expression x = null;
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:358:1: (name= 'typeSelect' '(' t= type ')' | name= ( 'collect' | 'select' |
// 'selectFirst' | 'reject' | 'exists' | 'notExists' | 'sortBy' | 'forAll' ) '(' (var= identifier '|' )? x= expression ')' )
int alt49 = 2;
int LA49_0 = input.LA(1);
if ((LA49_0 == 71)) {
alt49 = 1;
} else if (((LA49_0 >= 72 && LA49_0 <= 79))) {
alt49 = 2;
} else {
if (state.backtracking > 0) {
state.failed = true;
return e;
}
NoViableAltException nvae = new NoViableAltException("", 49, 0, input);
throw nvae;
}
switch (alt49) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:359:3: name= 'typeSelect' '(' t= type ')'
{
name = (Token) match(input, 71, FOLLOW_71_in_collectionExpression1782);
if (state.failed)
return e;
match(input, 29, FOLLOW_29_in_collectionExpression1786);
if (state.failed)
return e;
pushFollow(FOLLOW_type_in_collectionExpression1790);
t = type();
state._fsp--;
if (state.failed)
return e;
match(input, 32, FOLLOW_32_in_collectionExpression1792);
if (state.failed)
return e;
if (state.backtracking == 0) {
e = factory.createTypeSelectExpression(id(name), t);
}
}
break;
case 2:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:362:5: name= ( 'collect' | 'select' | 'selectFirst' | 'reject' | 'exists' |
// 'notExists' | 'sortBy' | 'forAll' ) '(' (var= identifier '|' )? x= expression ')'
{
name = (Token) input.LT(1);
if ((input.LA(1) >= 72 && input.LA(1) <= 79)) {
input.consume();
state.errorRecovery = false;
state.failed = false;
} else {
if (state.backtracking > 0) {
state.failed = true;
return e;
}
MismatchedSetException mse = new MismatchedSetException(null, input);
throw mse;
}
match(input, 29, FOLLOW_29_in_collectionExpression1855);
if (state.failed)
return e;
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:369:19: (var= identifier '|' )?
int alt48 = 2;
int LA48_0 = input.LA(1);
if ((LA48_0 == Identifier)) {
int LA48_1 = input.LA(2);
if ((LA48_1 == 80)) {
alt48 = 1;
}
}
switch (alt48) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:369:20: var= identifier '|'
{
pushFollow(FOLLOW_identifier_in_collectionExpression1860);
var = identifier();
state._fsp--;
if (state.failed)
return e;
match(input, 80, FOLLOW_80_in_collectionExpression1862);
if (state.failed)
return e;
}
break;
}
pushFollow(FOLLOW_expression_in_collectionExpression1868);
x = expression();
state._fsp--;
if (state.failed)
return e;
match(input, 32, FOLLOW_32_in_collectionExpression1870);
if (state.failed)
return e;
if (state.backtracking == 0) {
e = factory.createCollectionExpression(id(name), var, x);
}
}
break;
}
if (state.backtracking == 0) {
addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return e;
}
// $ANTLR end "collectionExpression"
// $ANTLR start "declaredParameterList"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:375:1: declaredParameterList returns [List<DeclaredParameter> l = new
// BasicEList<DeclaredParameter>()] : dp= declaredParameter ( ',' dp1= declaredParameter )* ;
public final List<DeclaredParameter> declaredParameterList() throws RecognitionException {
List<DeclaredParameter> l = new BasicEList<DeclaredParameter>();
DeclaredParameter dp = null;
DeclaredParameter dp1 = null;
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:378:1: (dp= declaredParameter ( ',' dp1= declaredParameter )* )
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:379:2: dp= declaredParameter ( ',' dp1= declaredParameter )*
{
pushFollow(FOLLOW_declaredParameter_in_declaredParameterList1902);
dp = declaredParameter();
state._fsp--;
if (state.failed)
return l;
if (state.backtracking == 0) {
if (dp != null)
l.add(dp);
}
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:379:50: ( ',' dp1= declaredParameter )*
loop50: do {
int alt50 = 2;
int LA50_0 = input.LA(1);
if ((LA50_0 == 30)) {
int LA50_1 = input.LA(2);
if ((LA50_1 == Identifier || (LA50_1 >= 39 && LA50_1 <= 41))) {
alt50 = 1;
}
}
switch (alt50) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:379:51: ',' dp1= declaredParameter
{
match(input, 30, FOLLOW_30_in_declaredParameterList1906);
if (state.failed)
return l;
pushFollow(FOLLOW_declaredParameter_in_declaredParameterList1910);
dp1 = declaredParameter();
state._fsp--;
if (state.failed)
return l;
if (state.backtracking == 0) {
if (dp1 != null)
l.add(dp1);
}
}
break;
default:
break loop50;
}
} while (true);
}
if (state.backtracking == 0) {
addLocation(dp, startToken, /* endToken */(CommonToken) input.LT(-1));
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return l;
}
// $ANTLR end "declaredParameterList"
// $ANTLR start "declaredParameter"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:382:1: declaredParameter returns [DeclaredParameter dp] : t= type name= identifier ;
public final DeclaredParameter declaredParameter() throws RecognitionException {
DeclaredParameter dp = null;
Identifier t = null;
Identifier name = null;
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:385:1: (t= type name= identifier )
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:386:2: t= type name= identifier
{
pushFollow(FOLLOW_type_in_declaredParameter1938);
t = type();
state._fsp--;
if (state.failed)
return dp;
pushFollow(FOLLOW_identifier_in_declaredParameter1942);
name = identifier();
state._fsp--;
if (state.failed)
return dp;
if (state.backtracking == 0) {
dp = factory.createDeclaredParameter(t, name);
}
}
if (state.backtracking == 0) {
addLocation(dp, startToken, /* endToken */(CommonToken) input.LT(-1));
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return dp;
}
// $ANTLR end "declaredParameter"
// $ANTLR start "parameterList"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:389:1: parameterList returns [List<Expression> list = new BasicEList<Expression>()] : a=
// expression ( ',' b= expression )* ;
public final List<Expression> parameterList() throws RecognitionException {
List<Expression> list = new BasicEList<Expression>();
Expression a = null;
Expression b = null;
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:389:79: (a= expression ( ',' b= expression )* )
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:390:5: a= expression ( ',' b= expression )*
{
pushFollow(FOLLOW_expression_in_parameterList1964);
a = expression();
state._fsp--;
if (state.failed)
return list;
if (state.backtracking == 0) {
if (a != null)
list.add(a);
}
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:390:47: ( ',' b= expression )*
loop51: do {
int alt51 = 2;
int LA51_0 = input.LA(1);
if ((LA51_0 == 30)) {
alt51 = 1;
}
switch (alt51) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:390:48: ',' b= expression
{
match(input, 30, FOLLOW_30_in_parameterList1969);
if (state.failed)
return list;
pushFollow(FOLLOW_expression_in_parameterList1973);
b = expression();
state._fsp--;
if (state.failed)
return list;
if (state.backtracking == 0) {
if (b != null)
list.add(b);
}
}
break;
default:
break loop51;
}
} while (true);
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return list;
}
// $ANTLR end "parameterList"
// $ANTLR start "type"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:395:1: type returns [Identifier id] : (a= collectionType | b= simpleType );
public final Identifier type() throws RecognitionException {
Identifier id = null;
Identifier a = null;
Identifier b = null;
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:398:1: (a= collectionType | b= simpleType )
int alt52 = 2;
int LA52_0 = input.LA(1);
if (((LA52_0 >= 39 && LA52_0 <= 41))) {
alt52 = 1;
} else if ((LA52_0 == Identifier)) {
alt52 = 2;
} else {
if (state.backtracking > 0) {
state.failed = true;
return id;
}
NoViableAltException nvae = new NoViableAltException("", 52, 0, input);
throw nvae;
}
switch (alt52) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:399:2: a= collectionType
{
pushFollow(FOLLOW_collectionType_in_type2007);
a = collectionType();
state._fsp--;
if (state.failed)
return id;
if (state.backtracking == 0) {
id = a;
}
}
break;
case 2:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:400:2: b= simpleType
{
pushFollow(FOLLOW_simpleType_in_type2017);
b = simpleType();
state._fsp--;
if (state.failed)
return id;
if (state.backtracking == 0) {
id = b;
}
}
break;
}
if (state.backtracking == 0) {
addLocation(id, startToken, /* endToken */(CommonToken) input.LT(-1));
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return id;
}
// $ANTLR end "type"
// $ANTLR start "collectionType"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:403:1: collectionType returns [Identifier id ] : cl= ( 'Collection' | 'List' | 'Set' ) (b=
// '[' id1= simpleType c= ']' )? ;
public final Identifier collectionType() throws RecognitionException {
Identifier id = null;
Token cl = null;
Token b = null;
Token c = null;
Identifier id1 = null;
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:406:1: (cl= ( 'Collection' | 'List' | 'Set' ) (b= '[' id1= simpleType c= ']' )? )
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:407:3: cl= ( 'Collection' | 'List' | 'Set' ) (b= '[' id1= simpleType c= ']' )?
{
cl = (Token) input.LT(1);
if ((input.LA(1) >= 39 && input.LA(1) <= 41)) {
input.consume();
state.errorRecovery = false;
state.failed = false;
} else {
if (state.backtracking > 0) {
state.failed = true;
return id;
}
MismatchedSetException mse = new MismatchedSetException(null, input);
throw mse;
}
if (state.backtracking == 0) {
id = id(cl);
}
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:408:3: (b= '[' id1= simpleType c= ']' )?
int alt53 = 2;
int LA53_0 = input.LA(1);
if ((LA53_0 == 81)) {
alt53 = 1;
}
switch (alt53) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:408:4: b= '[' id1= simpleType c= ']'
{
b = (Token) match(input, 81, FOLLOW_81_in_collectionType2068);
if (state.failed)
return id;
pushFollow(FOLLOW_simpleType_in_collectionType2072);
id1 = simpleType();
state._fsp--;
if (state.failed)
return id;
c = (Token) match(input, 82, FOLLOW_82_in_collectionType2076);
if (state.failed)
return id;
if (state.backtracking == 0) {
id.append(id(b));
id.append(id1);
id.append(id(c));
}
}
break;
}
}
if (state.backtracking == 0) {
addLocation(id, startToken, /* endToken */(CommonToken) input.LT(-1));
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return id;
}
// $ANTLR end "collectionType"
// $ANTLR start "simpleType"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:411:1: simpleType returns [Identifier id] : x= identifier (d= '::' end= identifier )* ;
public final Identifier simpleType() throws RecognitionException {
Identifier id = null;
Token d = null;
Identifier x = null;
Identifier end = null;
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:414:1: (x= identifier (d= '::' end= identifier )* )
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:415:2: x= identifier (d= '::' end= identifier )*
{
pushFollow(FOLLOW_identifier_in_simpleType2104);
x = identifier();
state._fsp--;
if (state.failed)
return id;
if (state.backtracking == 0) {
id = x;
}
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:416:2: (d= '::' end= identifier )*
loop54: do {
int alt54 = 2;
int LA54_0 = input.LA(1);
if ((LA54_0 == 33)) {
alt54 = 1;
}
switch (alt54) {
case 1:
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:416:3: d= '::' end= identifier
{
d = (Token) match(input, 33, FOLLOW_33_in_simpleType2112);
if (state.failed)
return id;
pushFollow(FOLLOW_identifier_in_simpleType2116);
end = identifier();
state._fsp--;
if (state.failed)
return id;
if (state.backtracking == 0) {
id.append(id(d));
id.append(end);
}
}
break;
default:
break loop54;
}
} while (true);
}
if (state.backtracking == 0) {
addLocation(id, startToken, /* endToken */(CommonToken) input.LT(-1));
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return id;
}
// $ANTLR end "simpleType"
// $ANTLR start "identifier"
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:419:1: identifier returns [Identifier r] : x= Identifier ;
public final Identifier identifier() throws RecognitionException {
Identifier r = null;
Token x = null;
final CommonToken startToken = (CommonToken) input.LT(1);
try {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:422:1: (x= Identifier )
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:423:4: x= Identifier
{
x = (Token) match(input, Identifier, FOLLOW_Identifier_in_identifier2147);
if (state.failed)
return r;
if (state.backtracking == 0) {
r = id(x);
}
}
if (state.backtracking == 0) {
addLocation(r, startToken, /* endToken */(CommonToken) input.LT(-1));
}
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return r;
}
// $ANTLR end "identifier"
// $ANTLR start synpred1_Xtend
public final void synpred1_Xtend_fragment() throws RecognitionException {
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:174:5: ( '(' type ')' castedExpression )
// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:174:6: '(' type ')' castedExpression
{
match(input, 29, FOLLOW_29_in_synpred1_Xtend751);
if (state.failed)
return;
pushFollow(FOLLOW_type_in_synpred1_Xtend753);
type();
state._fsp--;
if (state.failed)
return;
match(input, 32, FOLLOW_32_in_synpred1_Xtend755);
if (state.failed)
return;
pushFollow(FOLLOW_castedExpression_in_synpred1_Xtend757);
castedExpression();
state._fsp--;
if (state.failed)
return;
}
}
// $ANTLR end synpred1_Xtend
// Delegated rules
public final boolean synpred1_Xtend() {
state.backtracking++;
int start = input.mark();
try {
synpred1_Xtend_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: " + re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed = false;
return success;
}
protected DFA27 dfa27 = new DFA27(this);
static final String DFA27_eotS = "\22\uffff";
static final String DFA27_eofS = "\22\uffff";
static final String DFA27_minS = "\1\4\1\0\20\uffff";
static final String DFA27_maxS = "\1\117\1\0\20\uffff";
static final String DFA27_acceptS = "\2\uffff\1\2\16\uffff\1\1";
static final String DFA27_specialS = "\1\uffff\1\0\20\uffff}>";
static final String[] DFA27_transitionS = { "\3\2\21\uffff\1\2\4\uffff\1\1\11\uffff\3\2\6\uffff\2\2\15\uffff" + "\1\2\1\uffff\17\2", "\1\uffff",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" };
static final short[] DFA27_eot = DFA.unpackEncodedString(DFA27_eotS);
static final short[] DFA27_eof = DFA.unpackEncodedString(DFA27_eofS);
static final char[] DFA27_min = DFA.unpackEncodedStringToUnsignedChars(DFA27_minS);
static final char[] DFA27_max = DFA.unpackEncodedStringToUnsignedChars(DFA27_maxS);
static final short[] DFA27_accept = DFA.unpackEncodedString(DFA27_acceptS);
static final short[] DFA27_special = DFA.unpackEncodedString(DFA27_specialS);
static final short[][] DFA27_transition;
static {
int numStates = DFA27_transitionS.length;
DFA27_transition = new short[numStates][];
for (int i = 0; i < numStates; i++) {
DFA27_transition[i] = DFA.unpackEncodedString(DFA27_transitionS[i]);
}
}
class DFA27 extends DFA {
public DFA27(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 27;
this.eot = DFA27_eot;
this.eof = DFA27_eof;
this.min = DFA27_min;
this.max = DFA27_max;
this.accept = DFA27_accept;
this.special = DFA27_special;
this.transition = DFA27_transition;
}
public String getDescription() {
return "170:1: castedExpression returns [Expression e] : ( ( '(' type ')' castedExpression )=> '(' t= type ')' x= chainExpression | x= chainExpression );";
}
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream) _input;
int _s = s;
switch (s) {
case 0:
int LA27_1 = input.LA(1);
int index27_1 = input.index();
input.rewind();
s = -1;
if ((synpred1_Xtend())) {
s = 17;
}
else if ((true)) {
s = 2;
}
input.seek(index27_1);
if (s >= 0)
return s;
break;
}
if (state.backtracking > 0) {
state.failed = true;
return -1;
}
NoViableAltException nvae = new NoViableAltException(getDescription(), 27, _s, input);
error(nvae);
throw nvae;
}
}
public static final BitSet FOLLOW_nsImport_in_file55 = new BitSet(new long[] { 0x000003CC10540040L });
public static final BitSet FOLLOW_extImport_in_file65 = new BitSet(new long[] { 0x000003CC10500040L });
public static final BitSet FOLLOW_extension_in_file75 = new BitSet(new long[] { 0x000003CC10400040L });
public static final BitSet FOLLOW_around_in_file85 = new BitSet(new long[] { 0x000003CC10400040L });
public static final BitSet FOLLOW_check_in_file95 = new BitSet(new long[] { 0x000003CC10400040L });
public static final BitSet FOLLOW_EOF_in_file103 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_18_in_nsImport131 = new BitSet(new long[] { 0x0000038000000040L });
public static final BitSet FOLLOW_type_in_nsImport135 = new BitSet(new long[] { 0x0000000000080000L });
public static final BitSet FOLLOW_19_in_nsImport139 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_20_in_extImport164 = new BitSet(new long[] { 0x0000038000000040L });
public static final BitSet FOLLOW_type_in_extImport168 = new BitSet(new long[] { 0x0000000000280000L });
public static final BitSet FOLLOW_21_in_extImport173 = new BitSet(new long[] { 0x0000000000080000L });
public static final BitSet FOLLOW_19_in_extImport177 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_22_in_check202 = new BitSet(new long[] { 0x0000038000000040L });
public static final BitSet FOLLOW_type_in_check206 = new BitSet(new long[] { 0x0000000007800000L });
public static final BitSet FOLLOW_23_in_check208 = new BitSet(new long[] { 0x0000038000000040L });
public static final BitSet FOLLOW_identifier_in_check211 = new BitSet(new long[] { 0x0000000007000000L });
public static final BitSet FOLLOW_24_in_check216 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });
public static final BitSet FOLLOW_expression_in_check220 = new BitSet(new long[] { 0x0000000006000000L });
public static final BitSet FOLLOW_25_in_check227 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });
public static final BitSet FOLLOW_26_in_check229 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });
public static final BitSet FOLLOW_expression_in_check234 = new BitSet(new long[] { 0x0000000008000000L });
public static final BitSet FOLLOW_27_in_check236 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });
public static final BitSet FOLLOW_expression_in_check241 = new BitSet(new long[] { 0x0000000000080000L });
public static final BitSet FOLLOW_19_in_check243 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_28_in_around272 = new BitSet(new long[] { 0x0000038080000040L });
public static final BitSet FOLLOW_pointcut_in_around276 = new BitSet(new long[] { 0x0000000020000000L });
public static final BitSet FOLLOW_29_in_around278 = new BitSet(new long[] { 0x0000038180000040L });
public static final BitSet FOLLOW_declaredParameterList_in_around283 = new BitSet(new long[] { 0x00000001C0000000L });
public static final BitSet FOLLOW_30_in_around286 = new BitSet(new long[] { 0x0000000080000000L });
public static final BitSet FOLLOW_31_in_around291 = new BitSet(new long[] { 0x0000000100000000L });
public static final BitSet FOLLOW_31_in_around299 = new BitSet(new long[] { 0x0000000100000000L });
public static final BitSet FOLLOW_32_in_around303 = new BitSet(new long[] { 0x0000000008000000L });
public static final BitSet FOLLOW_27_in_around305 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });
public static final BitSet FOLLOW_expression_in_around314 = new BitSet(new long[] { 0x0000000000080000L });
public static final BitSet FOLLOW_19_in_around316 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_31_in_pointcut352 = new BitSet(new long[] { 0x0000038280000042L });
public static final BitSet FOLLOW_identifier_in_pointcut361 = new BitSet(new long[] { 0x0000038280000042L });
public static final BitSet FOLLOW_31_in_pointcut372 = new BitSet(new long[] { 0x0000038280000042L });
public static final BitSet FOLLOW_identifier_in_pointcut383 = new BitSet(new long[] { 0x0000038280000042L });
public static final BitSet FOLLOW_33_in_pointcut394 = new BitSet(new long[] { 0x0000038280000042L });
public static final BitSet FOLLOW_34_in_extension426 = new BitSet(new long[] { 0x0000038800000040L });
public static final BitSet FOLLOW_35_in_extension433 = new BitSet(new long[] { 0x0000038000000040L });
public static final BitSet FOLLOW_type_in_extension440 = new BitSet(new long[] { 0x0000038000000040L });
public static final BitSet FOLLOW_identifier_in_extension446 = new BitSet(new long[] { 0x0000000020000000L });
public static final BitSet FOLLOW_29_in_extension448 = new BitSet(new long[] { 0x0000038100000040L });
public static final BitSet FOLLOW_declaredParameterList_in_extension453 = new BitSet(new long[] { 0x0000000100000000L });
public static final BitSet FOLLOW_32_in_extension457 = new BitSet(new long[] { 0x0000000008000000L });
public static final BitSet FOLLOW_27_in_extension459 = new BitSet(new long[] { 0x8003079021000070L, 0x000000000000FFFEL });
public static final BitSet FOLLOW_36_in_extension466 = new BitSet(new long[] { 0x0000038000000040L });
public static final BitSet FOLLOW_javaType_in_extension470 = new BitSet(new long[] { 0x0000002000000000L });
public static final BitSet FOLLOW_37_in_extension472 = new BitSet(new long[] { 0x0000038000000040L });
public static final BitSet FOLLOW_identifier_in_extension476 = new BitSet(new long[] { 0x0000000020000000L });
public static final BitSet FOLLOW_29_in_extension478 = new BitSet(new long[] { 0x0000038100000040L });
public static final BitSet FOLLOW_javaType_in_extension482 = new BitSet(new long[] { 0x0000000140000000L });
public static final BitSet FOLLOW_30_in_extension486 = new BitSet(new long[] { 0x0000038000000040L });
public static final BitSet FOLLOW_javaType_in_extension490 = new BitSet(new long[] { 0x0000000140000000L });
public static final BitSet FOLLOW_32_in_extension498 = new BitSet(new long[] { 0x0000000000080000L });
public static final BitSet FOLLOW_19_in_extension500 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_expression_in_extension510 = new BitSet(new long[] { 0x0000000000080000L });
public static final BitSet FOLLOW_19_in_extension512 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_34_in_extension526 = new BitSet(new long[] { 0x0000004000000000L });
public static final BitSet FOLLOW_38_in_extension532 = new BitSet(new long[] { 0x0000038000000040L });
public static final BitSet FOLLOW_type_in_extension536 = new BitSet(new long[] { 0x0000038000000040L });
public static final BitSet FOLLOW_identifier_in_extension541 = new BitSet(new long[] { 0x0000038000000040L });
public static final BitSet FOLLOW_identifier_in_extension547 = new BitSet(new long[] { 0x0000000020000000L });
public static final BitSet FOLLOW_29_in_extension549 = new BitSet(new long[] { 0x0000038100000040L });
public static final BitSet FOLLOW_declaredParameterList_in_extension554 = new BitSet(new long[] { 0x0000000100000000L });
public static final BitSet FOLLOW_32_in_extension558 = new BitSet(new long[] { 0x0000000008000000L });
public static final BitSet FOLLOW_27_in_extension560 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });
public static final BitSet FOLLOW_expression_in_extension566 = new BitSet(new long[] { 0x0000000000080000L });
public static final BitSet FOLLOW_19_in_extension568 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_identifier_in_javaType598 = new BitSet(new long[] { 0x0000002000000002L });
public static final BitSet FOLLOW_37_in_javaType607 = new BitSet(new long[] { 0x0000038000000040L });
public static final BitSet FOLLOW_identifier_in_javaType613 = new BitSet(new long[] { 0x0000002000000002L });
public static final BitSet FOLLOW_39_in_javaType619 = new BitSet(new long[] { 0x0000002000000002L });
public static final BitSet FOLLOW_40_in_javaType628 = new BitSet(new long[] { 0x0000002000000002L });
public static final BitSet FOLLOW_41_in_javaType634 = new BitSet(new long[] { 0x0000002000000002L });
public static final BitSet FOLLOW_letExpression_in_expression665 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_42_in_letExpression693 = new BitSet(new long[] { 0x0000038000000040L });
public static final BitSet FOLLOW_identifier_in_letExpression697 = new BitSet(new long[] { 0x0000080000000000L });
public static final BitSet FOLLOW_43_in_letExpression699 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });
public static final BitSet FOLLOW_castedExpression_in_letExpression703 = new BitSet(new long[] { 0x0000000008000000L });
public static final BitSet FOLLOW_27_in_letExpression705 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });
public static final BitSet FOLLOW_expression_in_letExpression709 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_castedExpression_in_letExpression722 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_29_in_castedExpression762 = new BitSet(new long[] { 0x0000038000000040L });
public static final BitSet FOLLOW_type_in_castedExpression766 = new BitSet(new long[] { 0x0000000100000000L });
public static final BitSet FOLLOW_32_in_castedExpression768 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });
public static final BitSet FOLLOW_chainExpression_in_castedExpression772 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_chainExpression_in_castedExpression781 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_ifExpression_in_chainExpression805 = new BitSet(new long[] { 0x0000100000000002L });
public static final BitSet FOLLOW_44_in_chainExpression811 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });
public static final BitSet FOLLOW_ifExpression_in_chainExpression815 = new BitSet(new long[] { 0x0000100000000002L });
public static final BitSet FOLLOW_switchExpression_in_ifExpression845 = new BitSet(new long[] { 0x0000200000000002L });
public static final BitSet FOLLOW_45_in_ifExpression849 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });
public static final BitSet FOLLOW_switchExpression_in_ifExpression853 = new BitSet(new long[] { 0x0000000008000000L });
public static final BitSet FOLLOW_27_in_ifExpression855 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });
public static final BitSet FOLLOW_switchExpression_in_ifExpression859 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_24_in_ifExpression867 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });
public static final BitSet FOLLOW_switchExpression_in_ifExpression871 = new BitSet(new long[] { 0x0000400000000000L });
public static final BitSet FOLLOW_46_in_ifExpression873 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });
public static final BitSet FOLLOW_switchExpression_in_ifExpression877 = new BitSet(new long[] { 0x0000800000000002L });
public static final BitSet FOLLOW_47_in_ifExpression880 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });
public static final BitSet FOLLOW_expression_in_ifExpression884 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_48_in_switchExpression914 = new BitSet(new long[] { 0x0002000020000000L });
public static final BitSet FOLLOW_29_in_switchExpression917 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });
public static final BitSet FOLLOW_orExpression_in_switchExpression923 = new BitSet(new long[] { 0x0000000100000000L });
public static final BitSet FOLLOW_32_in_switchExpression925 = new BitSet(new long[] { 0x0002000000000000L });
public static final BitSet FOLLOW_49_in_switchExpression932 = new BitSet(new long[] { 0x000C000000000000L });
public static final BitSet FOLLOW_50_in_switchExpression945 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });
public static final BitSet FOLLOW_orExpression_in_switchExpression949 = new BitSet(new long[] { 0x0000000008000000L });
public static final BitSet FOLLOW_27_in_switchExpression952 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });
public static final BitSet FOLLOW_orExpression_in_switchExpression957 = new BitSet(new long[] { 0x000C000000000000L });
public static final BitSet FOLLOW_51_in_switchExpression975 = new BitSet(new long[] { 0x0000000008000000L });
public static final BitSet FOLLOW_27_in_switchExpression977 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });
public static final BitSet FOLLOW_orExpression_in_switchExpression983 = new BitSet(new long[] { 0x0010000000000000L });
public static final BitSet FOLLOW_52_in_switchExpression988 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_orExpression_in_switchExpression1000 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_andExpression_in_orExpression1025 = new BitSet(new long[] { 0x0020000000000002L });
public static final BitSet FOLLOW_53_in_orExpression1032 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });
public static final BitSet FOLLOW_andExpression_in_orExpression1036 = new BitSet(new long[] { 0x0020000000000002L });
public static final BitSet FOLLOW_impliesExpression_in_andExpression1064 = new BitSet(new long[] { 0x0040000000000002L });
public static final BitSet FOLLOW_54_in_andExpression1071 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });
public static final BitSet FOLLOW_impliesExpression_in_andExpression1075 = new BitSet(new long[] { 0x0040000000000002L });
public static final BitSet FOLLOW_relationalExpression_in_impliesExpression1102 = new BitSet(new long[] { 0x0080000000000002L });
public static final BitSet FOLLOW_55_in_impliesExpression1109 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });
public static final BitSet FOLLOW_relationalExpression_in_impliesExpression1113 = new BitSet(new long[] { 0x0080000000000002L });
public static final BitSet FOLLOW_additiveExpression_in_relationalExpression1141 = new BitSet(new long[] { 0x3F00000000000002L });
public static final BitSet FOLLOW_set_in_relationalExpression1149 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });
public static final BitSet FOLLOW_additiveExpression_in_relationalExpression1175 = new BitSet(new long[] { 0x3F00000000000002L });
public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression1200 = new BitSet(new long[] { 0xC000000000000002L });
public static final BitSet FOLLOW_set_in_additiveExpression1210 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });
public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression1219 = new BitSet(new long[] { 0xC000000000000002L });
public static final BitSet FOLLOW_unaryExpression_in_multiplicativeExpression1244 = new BitSet(new long[] { 0x0000000080000002L,
0x0000000000000001L });
public static final BitSet FOLLOW_set_in_multiplicativeExpression1252 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });
public static final BitSet FOLLOW_unaryExpression_in_multiplicativeExpression1262 = new BitSet(new long[] { 0x0000000080000002L,
0x0000000000000001L });
public static final BitSet FOLLOW_infixExpression_in_unaryExpression1291 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_65_in_unaryExpression1299 = new BitSet(new long[] { 0x0002038020000070L, 0x000000000000FFFCL });
public static final BitSet FOLLOW_infixExpression_in_unaryExpression1303 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_63_in_unaryExpression1311 = new BitSet(new long[] { 0x0002038020000070L, 0x000000000000FFFCL });
public static final BitSet FOLLOW_infixExpression_in_unaryExpression1315 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_primaryExpression_in_infixExpression1342 = new BitSet(new long[] { 0x0000002000000002L });
public static final BitSet FOLLOW_37_in_infixExpression1348 = new BitSet(new long[] { 0x0000038000000040L, 0x000000000000FF80L });
public static final BitSet FOLLOW_featureCall_in_infixExpression1352 = new BitSet(new long[] { 0x0000002000000002L });
public static final BitSet FOLLOW_StringLiteral_in_primaryExpression1387 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_featureCall_in_primaryExpression1398 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_booleanLiteral_in_primaryExpression1408 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_numberLiteral_in_primaryExpression1418 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_nullLiteral_in_primaryExpression1428 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_listLiteral_in_primaryExpression1438 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_constructorCall_in_primaryExpression1448 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_globalVarExpression_in_primaryExpression1458 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_paranthesizedExpression_in_primaryExpression1468 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_29_in_paranthesizedExpression1495 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });
public static final BitSet FOLLOW_expression_in_paranthesizedExpression1499 = new BitSet(new long[] { 0x0000000100000000L });
public static final BitSet FOLLOW_32_in_paranthesizedExpression1501 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_66_in_globalVarExpression1530 = new BitSet(new long[] { 0x0000038000000040L });
public static final BitSet FOLLOW_identifier_in_globalVarExpression1534 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_identifier_in_featureCall1561 = new BitSet(new long[] { 0x0000000020000000L });
public static final BitSet FOLLOW_29_in_featureCall1563 = new BitSet(new long[] { 0x8003078121000070L, 0x000000000000FFFEL });
public static final BitSet FOLLOW_parameterList_in_featureCall1568 = new BitSet(new long[] { 0x0000000100000000L });
public static final BitSet FOLLOW_32_in_featureCall1572 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_type_in_featureCall1582 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_collectionExpression_in_featureCall1593 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_49_in_listLiteral1619 = new BitSet(new long[] { 0x8013078021000070L, 0x000000000000FFFEL });
public static final BitSet FOLLOW_parameterList_in_listLiteral1624 = new BitSet(new long[] { 0x0010000000000000L });
public static final BitSet FOLLOW_52_in_listLiteral1628 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_67_in_constructorCall1653 = new BitSet(new long[] { 0x0000038000000040L });
public static final BitSet FOLLOW_simpleType_in_constructorCall1657 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_set_in_booleanLiteral0 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_70_in_nullLiteral1709 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_IntLiteral_in_numberLiteral1736 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_IntLiteral_in_numberLiteral1745 = new BitSet(new long[] { 0x0000002000000000L });
public static final BitSet FOLLOW_37_in_numberLiteral1749 = new BitSet(new long[] { 0x0000000000000020L });
public static final BitSet FOLLOW_IntLiteral_in_numberLiteral1753 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_71_in_collectionExpression1782 = new BitSet(new long[] { 0x0000000020000000L });
public static final BitSet FOLLOW_29_in_collectionExpression1786 = new BitSet(new long[] { 0x0000038000000040L });
public static final BitSet FOLLOW_type_in_collectionExpression1790 = new BitSet(new long[] { 0x0000000100000000L });
public static final BitSet FOLLOW_32_in_collectionExpression1792 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_set_in_collectionExpression1805 = new BitSet(new long[] { 0x0000000020000000L });
public static final BitSet FOLLOW_29_in_collectionExpression1855 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });
public static final BitSet FOLLOW_identifier_in_collectionExpression1860 = new BitSet(new long[] { 0x0000000000000000L, 0x0000000000010000L });
public static final BitSet FOLLOW_80_in_collectionExpression1862 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });
public static final BitSet FOLLOW_expression_in_collectionExpression1868 = new BitSet(new long[] { 0x0000000100000000L });
public static final BitSet FOLLOW_32_in_collectionExpression1870 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_declaredParameter_in_declaredParameterList1902 = new BitSet(new long[] { 0x0000000040000002L });
public static final BitSet FOLLOW_30_in_declaredParameterList1906 = new BitSet(new long[] { 0x0000038000000040L });
public static final BitSet FOLLOW_declaredParameter_in_declaredParameterList1910 = new BitSet(new long[] { 0x0000000040000002L });
public static final BitSet FOLLOW_type_in_declaredParameter1938 = new BitSet(new long[] { 0x0000038000000040L });
public static final BitSet FOLLOW_identifier_in_declaredParameter1942 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_expression_in_parameterList1964 = new BitSet(new long[] { 0x0000000040000002L });
public static final BitSet FOLLOW_30_in_parameterList1969 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });
public static final BitSet FOLLOW_expression_in_parameterList1973 = new BitSet(new long[] { 0x0000000040000002L });
public static final BitSet FOLLOW_collectionType_in_type2007 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_simpleType_in_type2017 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_set_in_collectionType2047 = new BitSet(new long[] { 0x0000000000000002L, 0x0000000000020000L });
public static final BitSet FOLLOW_81_in_collectionType2068 = new BitSet(new long[] { 0x0000038000000040L });
public static final BitSet FOLLOW_simpleType_in_collectionType2072 = new BitSet(new long[] { 0x0000000000000000L, 0x0000000000040000L });
public static final BitSet FOLLOW_82_in_collectionType2076 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_identifier_in_simpleType2104 = new BitSet(new long[] { 0x0000000200000002L });
public static final BitSet FOLLOW_33_in_simpleType2112 = new BitSet(new long[] { 0x0000038000000040L });
public static final BitSet FOLLOW_identifier_in_simpleType2116 = new BitSet(new long[] { 0x0000000200000002L });
public static final BitSet FOLLOW_Identifier_in_identifier2147 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_29_in_synpred1_Xtend751 = new BitSet(new long[] { 0x0000038000000040L });
public static final BitSet FOLLOW_type_in_synpred1_Xtend753 = new BitSet(new long[] { 0x0000000100000000L });
public static final BitSet FOLLOW_32_in_synpred1_Xtend755 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });
public static final BitSet FOLLOW_castedExpression_in_synpred1_Xtend757 = new BitSet(new long[] { 0x0000000000000002L });
}