blob: bccc5b100fdb5a27bbd9b0f6cd344b354411738a [file] [log] [blame]
// $ANTLR 3.2 Sep 23, 2009 12:02:23 ATL_ANTLR3.g 2019-12-05 18:08:48
package org.eclipse.m2m.atl.dsls.tcs.injector;
import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
public class ATL_ANTLR3Parser extends Parser {
public static final String[] tokenNames = new String[] {
"<invalid>", "<EOR>", "<DOWN>", "<UP>", "NAME", "STRING", "INT", "FLOAT", "SEMI", "COMA", "EQ", "COLON", "LPAREN", "RPAREN", "LCURLY", "RCURLY", "RARROW", "ASSIGNARROW", "LARROW", "EXCL", "PIPE", "SHARP", "POINT", "MINUS", "STAR", "SLASH", "PLUS", "GT", "LT", "GE", "LE", "NE", "NL", "WS", "DIGIT", "ALPHA", "SNAME", "ESC", "LSQUARE", "RSQUARE", "QMARK", "AROBAS", "COMMENT", "'module'", "'create'", "'refining'", "'from'", "'library'", "'query'", "'uses'", "'helper'", "'def'", "'context'", "'nodefault'", "'abstract'", "'rule'", "'extends'", "'using'", "'unique'", "'lazy'", "'entrypoint'", "'endpoint'", "'in'", "'to'", "'mapsTo'", "'distinct'", "'foreach'", "'drop'", "'do'", "'if'", "'else'", "'for'", "'iterate'", "'OclUndefined'", "'true'", "'false'", "'then'", "'endif'", "'super'", "'let'", "'Bag'", "'Set'", "'OrderedSet'", "'Sequence'", "'Map'", "'Tuple'", "'OclType'", "'OclAny'", "'TupleType'", "'Integer'", "'Real'", "'Boolean'", "'String'", "'Collection'", "'not'", "'div'", "'mod'", "'and'", "'or'", "'xor'", "'implies'"
};
public static final int T__50=50;
public static final int QMARK=40;
public static final int MINUS=23;
public static final int RSQUARE=39;
public static final int T__59=59;
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 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 COMA=9;
public static final int T__60=60;
public static final int T__61=61;
public static final int LPAREN=12;
public static final int T__66=66;
public static final int T__67=67;
public static final int T__68=68;
public static final int T__69=69;
public static final int T__62=62;
public static final int T__63=63;
public static final int T__64=64;
public static final int T__65=65;
public static final int SEMI=8;
public static final int COMMENT=42;
public static final int ESC=37;
public static final int RCURLY=15;
public static final int AROBAS=41;
public static final int LCURLY=14;
public static final int RARROW=16;
public static final int T__48=48;
public static final int STAR=24;
public static final int T__49=49;
public static final int LARROW=18;
public static final int T__44=44;
public static final int T__45=45;
public static final int STRING=5;
public static final int SHARP=21;
public static final int LE=30;
public static final int T__46=46;
public static final int T__47=47;
public static final int EXCL=19;
public static final int T__43=43;
public static final int T__91=91;
public static final int T__100=100;
public static final int T__92=92;
public static final int T__93=93;
public static final int T__94=94;
public static final int T__90=90;
public static final int LT=28;
public static final int ALPHA=35;
public static final int PIPE=20;
public static final int T__99=99;
public static final int T__95=95;
public static final int T__96=96;
public static final int T__97=97;
public static final int T__98=98;
public static final int RPAREN=13;
public static final int EQ=10;
public static final int NAME=4;
public static final int ASSIGNARROW=17;
public static final int NE=31;
public static final int NL=32;
public static final int PLUS=26;
public static final int T__70=70;
public static final int T__71=71;
public static final int FLOAT=7;
public static final int T__72=72;
public static final int INT=6;
public static final int T__77=77;
public static final int T__78=78;
public static final int T__79=79;
public static final int T__73=73;
public static final int WS=33;
public static final int EOF=-1;
public static final int T__74=74;
public static final int T__75=75;
public static final int GE=29;
public static final int T__76=76;
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 T__83=83;
public static final int SLASH=25;
public static final int SNAME=36;
public static final int COLON=11;
public static final int GT=27;
public static final int DIGIT=34;
public static final int LSQUARE=38;
public static final int T__88=88;
public static final int T__89=89;
public static final int T__84=84;
public static final int POINT=22;
public static final int T__85=85;
public static final int T__86=86;
public static final int T__87=87;
// delegates
// delegators
public ATL_ANTLR3Parser(TokenStream input) {
this(input, new RecognizerSharedState());
}
public ATL_ANTLR3Parser(TokenStream input, RecognizerSharedState state) {
super(input, state);
}
public String[] getTokenNames() { return ATL_ANTLR3Parser.tokenNames; }
public String getGrammarFileName() { return "ATL_ANTLR3.g"; }
public org.eclipse.m2m.atl.dsls.tcs.injector.TCSRuntime ei = null;
// public void reportError(RecognitionException ex) {
// ei.reportError((Exception)ex);
// }
// public void emitErrorMessage(String s) {
// ei.reportError(s);
// }
public void displayRecognitionError(String[] tokenNames, RecognitionException e) {
ei.reportError((Exception)e);
}
//TODO: what about warnings?
// public void reportWarning(String s) {
// ei.reportWarning(s);
// }
public static void main(String[] args) throws Exception {
CharStream input = new ANTLRFileStream(args[0]);
ATL_ANTLR3Lexer lex = new
ATL_ANTLR3Lexer(input);
CommonTokenStream tokens = new CommonTokenStream(lex);
tokens.discardTokenType(WS);
tokens.discardTokenType(COMMENT);
tokens.discardTokenType(NL);
ATL_ANTLR3Parser parser = new
ATL_ANTLR3Parser(tokens);
parser.main();
}
// $ANTLR start "main"
// ATL_ANTLR3.g:63:1: main returns [Object ret2] : ( (ret= unit ) EOF ) ;
public final Object main() throws RecognitionException {
Object ret2 = null;
Object ret = null;
try {
// ATL_ANTLR3.g:64:2: ( ( (ret= unit ) EOF ) )
// ATL_ANTLR3.g:64:4: ( (ret= unit ) EOF )
{
// ATL_ANTLR3.g:64:4: ( (ret= unit ) EOF )
// ATL_ANTLR3.g:64:5: (ret= unit ) EOF
{
// ATL_ANTLR3.g:64:5: (ret= unit )
// ATL_ANTLR3.g:64:6: ret= unit
{
pushFollow(FOLLOW_unit_in_main61);
ret=unit();
state._fsp--;
if (state.failed) return ret2;
}
match(input,EOF,FOLLOW_EOF_in_main64); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "main"
// $ANTLR start "identifier"
// ATL_ANTLR3.g:71:1: identifier returns [Object ret2] : ast= NAME ;
public final Object identifier() throws RecognitionException {
Object ret2 = null;
Token ast=null;
java.lang.Object ret=null;
try {
// ATL_ANTLR3.g:72:2: (ast= NAME )
// ATL_ANTLR3.g:72:4: ast= NAME
{
ast=(Token)match(input,NAME,FOLLOW_NAME_in_identifier97); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = ast.getText(); ei.setToken((Object)ast);
}
if ( state.backtracking==0 ) {
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "identifier"
// $ANTLR start "identifierOrKeyword"
// ATL_ANTLR3.g:79:1: identifierOrKeyword returns [Object ret2] : (ast= NAME | 'module' | 'create' | 'refining' | 'from' | 'library' | 'query' | 'uses' | 'helper' | 'def' | 'context' | 'nodefault' | 'abstract' | 'rule' | 'extends' | 'using' | 'unique' | 'lazy' | 'entrypoint' | 'endpoint' | 'in' | 'to' | 'mapsTo' | 'distinct' | 'foreach' | 'drop' | 'do' | 'if' | 'else' | 'for' | 'iterate' | 'OclUndefined' | 'true' | 'false' | 'then' | 'endif' | 'super' | 'let' | 'Bag' | 'Set' | 'OrderedSet' | 'Sequence' | 'Map' | 'Tuple' | 'OclType' | 'OclAny' | 'TupleType' | 'Integer' | 'Real' | 'Boolean' | 'String' | 'Collection' | 'not' | 'div' | 'mod' | 'and' | 'or' | 'xor' | 'implies' ) ;
public final Object identifierOrKeyword() throws RecognitionException {
Object ret2 = null;
Token ast=null;
java.lang.Object ret=null;
try {
// ATL_ANTLR3.g:80:2: ( (ast= NAME | 'module' | 'create' | 'refining' | 'from' | 'library' | 'query' | 'uses' | 'helper' | 'def' | 'context' | 'nodefault' | 'abstract' | 'rule' | 'extends' | 'using' | 'unique' | 'lazy' | 'entrypoint' | 'endpoint' | 'in' | 'to' | 'mapsTo' | 'distinct' | 'foreach' | 'drop' | 'do' | 'if' | 'else' | 'for' | 'iterate' | 'OclUndefined' | 'true' | 'false' | 'then' | 'endif' | 'super' | 'let' | 'Bag' | 'Set' | 'OrderedSet' | 'Sequence' | 'Map' | 'Tuple' | 'OclType' | 'OclAny' | 'TupleType' | 'Integer' | 'Real' | 'Boolean' | 'String' | 'Collection' | 'not' | 'div' | 'mod' | 'and' | 'or' | 'xor' | 'implies' ) )
// ATL_ANTLR3.g:80:4: (ast= NAME | 'module' | 'create' | 'refining' | 'from' | 'library' | 'query' | 'uses' | 'helper' | 'def' | 'context' | 'nodefault' | 'abstract' | 'rule' | 'extends' | 'using' | 'unique' | 'lazy' | 'entrypoint' | 'endpoint' | 'in' | 'to' | 'mapsTo' | 'distinct' | 'foreach' | 'drop' | 'do' | 'if' | 'else' | 'for' | 'iterate' | 'OclUndefined' | 'true' | 'false' | 'then' | 'endif' | 'super' | 'let' | 'Bag' | 'Set' | 'OrderedSet' | 'Sequence' | 'Map' | 'Tuple' | 'OclType' | 'OclAny' | 'TupleType' | 'Integer' | 'Real' | 'Boolean' | 'String' | 'Collection' | 'not' | 'div' | 'mod' | 'and' | 'or' | 'xor' | 'implies' )
{
// ATL_ANTLR3.g:80:4: (ast= NAME | 'module' | 'create' | 'refining' | 'from' | 'library' | 'query' | 'uses' | 'helper' | 'def' | 'context' | 'nodefault' | 'abstract' | 'rule' | 'extends' | 'using' | 'unique' | 'lazy' | 'entrypoint' | 'endpoint' | 'in' | 'to' | 'mapsTo' | 'distinct' | 'foreach' | 'drop' | 'do' | 'if' | 'else' | 'for' | 'iterate' | 'OclUndefined' | 'true' | 'false' | 'then' | 'endif' | 'super' | 'let' | 'Bag' | 'Set' | 'OrderedSet' | 'Sequence' | 'Map' | 'Tuple' | 'OclType' | 'OclAny' | 'TupleType' | 'Integer' | 'Real' | 'Boolean' | 'String' | 'Collection' | 'not' | 'div' | 'mod' | 'and' | 'or' | 'xor' | 'implies' )
int alt1=59;
switch ( input.LA(1) ) {
case NAME:
{
alt1=1;
}
break;
case 43:
{
alt1=2;
}
break;
case 44:
{
alt1=3;
}
break;
case 45:
{
alt1=4;
}
break;
case 46:
{
alt1=5;
}
break;
case 47:
{
alt1=6;
}
break;
case 48:
{
alt1=7;
}
break;
case 49:
{
alt1=8;
}
break;
case 50:
{
alt1=9;
}
break;
case 51:
{
alt1=10;
}
break;
case 52:
{
alt1=11;
}
break;
case 53:
{
alt1=12;
}
break;
case 54:
{
alt1=13;
}
break;
case 55:
{
alt1=14;
}
break;
case 56:
{
alt1=15;
}
break;
case 57:
{
alt1=16;
}
break;
case 58:
{
alt1=17;
}
break;
case 59:
{
alt1=18;
}
break;
case 60:
{
alt1=19;
}
break;
case 61:
{
alt1=20;
}
break;
case 62:
{
alt1=21;
}
break;
case 63:
{
alt1=22;
}
break;
case 64:
{
alt1=23;
}
break;
case 65:
{
alt1=24;
}
break;
case 66:
{
alt1=25;
}
break;
case 67:
{
alt1=26;
}
break;
case 68:
{
alt1=27;
}
break;
case 69:
{
alt1=28;
}
break;
case 70:
{
alt1=29;
}
break;
case 71:
{
alt1=30;
}
break;
case 72:
{
alt1=31;
}
break;
case 73:
{
alt1=32;
}
break;
case 74:
{
alt1=33;
}
break;
case 75:
{
alt1=34;
}
break;
case 76:
{
alt1=35;
}
break;
case 77:
{
alt1=36;
}
break;
case 78:
{
alt1=37;
}
break;
case 79:
{
alt1=38;
}
break;
case 80:
{
alt1=39;
}
break;
case 81:
{
alt1=40;
}
break;
case 82:
{
alt1=41;
}
break;
case 83:
{
alt1=42;
}
break;
case 84:
{
alt1=43;
}
break;
case 85:
{
alt1=44;
}
break;
case 86:
{
alt1=45;
}
break;
case 87:
{
alt1=46;
}
break;
case 88:
{
alt1=47;
}
break;
case 89:
{
alt1=48;
}
break;
case 90:
{
alt1=49;
}
break;
case 91:
{
alt1=50;
}
break;
case 92:
{
alt1=51;
}
break;
case 93:
{
alt1=52;
}
break;
case 94:
{
alt1=53;
}
break;
case 95:
{
alt1=54;
}
break;
case 96:
{
alt1=55;
}
break;
case 97:
{
alt1=56;
}
break;
case 98:
{
alt1=57;
}
break;
case 99:
{
alt1=58;
}
break;
case 100:
{
alt1=59;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 1, 0, input);
throw nvae;
}
switch (alt1) {
case 1 :
// ATL_ANTLR3.g:80:5: ast= NAME
{
ast=(Token)match(input,NAME,FOLLOW_NAME_in_identifierOrKeyword132); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = ast.getText(); ei.setToken((Object)ast);
}
}
break;
case 2 :
// ATL_ANTLR3.g:80:64: 'module'
{
match(input,43,FOLLOW_43_in_identifierOrKeyword137); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "module";
}
}
break;
case 3 :
// ATL_ANTLR3.g:80:92: 'create'
{
match(input,44,FOLLOW_44_in_identifierOrKeyword142); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "create";
}
}
break;
case 4 :
// ATL_ANTLR3.g:80:120: 'refining'
{
match(input,45,FOLLOW_45_in_identifierOrKeyword147); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "refining";
}
}
break;
case 5 :
// ATL_ANTLR3.g:80:152: 'from'
{
match(input,46,FOLLOW_46_in_identifierOrKeyword152); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "from";
}
}
break;
case 6 :
// ATL_ANTLR3.g:80:176: 'library'
{
match(input,47,FOLLOW_47_in_identifierOrKeyword157); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "library";
}
}
break;
case 7 :
// ATL_ANTLR3.g:80:206: 'query'
{
match(input,48,FOLLOW_48_in_identifierOrKeyword162); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "query";
}
}
break;
case 8 :
// ATL_ANTLR3.g:80:232: 'uses'
{
match(input,49,FOLLOW_49_in_identifierOrKeyword167); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "uses";
}
}
break;
case 9 :
// ATL_ANTLR3.g:80:256: 'helper'
{
match(input,50,FOLLOW_50_in_identifierOrKeyword172); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "helper";
}
}
break;
case 10 :
// ATL_ANTLR3.g:80:284: 'def'
{
match(input,51,FOLLOW_51_in_identifierOrKeyword177); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "def";
}
}
break;
case 11 :
// ATL_ANTLR3.g:80:306: 'context'
{
match(input,52,FOLLOW_52_in_identifierOrKeyword182); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "context";
}
}
break;
case 12 :
// ATL_ANTLR3.g:80:336: 'nodefault'
{
match(input,53,FOLLOW_53_in_identifierOrKeyword187); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "nodefault";
}
}
break;
case 13 :
// ATL_ANTLR3.g:80:370: 'abstract'
{
match(input,54,FOLLOW_54_in_identifierOrKeyword192); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "abstract";
}
}
break;
case 14 :
// ATL_ANTLR3.g:80:402: 'rule'
{
match(input,55,FOLLOW_55_in_identifierOrKeyword197); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "rule";
}
}
break;
case 15 :
// ATL_ANTLR3.g:80:426: 'extends'
{
match(input,56,FOLLOW_56_in_identifierOrKeyword202); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "extends";
}
}
break;
case 16 :
// ATL_ANTLR3.g:80:456: 'using'
{
match(input,57,FOLLOW_57_in_identifierOrKeyword207); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "using";
}
}
break;
case 17 :
// ATL_ANTLR3.g:80:482: 'unique'
{
match(input,58,FOLLOW_58_in_identifierOrKeyword212); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "unique";
}
}
break;
case 18 :
// ATL_ANTLR3.g:80:510: 'lazy'
{
match(input,59,FOLLOW_59_in_identifierOrKeyword217); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "lazy";
}
}
break;
case 19 :
// ATL_ANTLR3.g:80:534: 'entrypoint'
{
match(input,60,FOLLOW_60_in_identifierOrKeyword222); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "entrypoint";
}
}
break;
case 20 :
// ATL_ANTLR3.g:80:570: 'endpoint'
{
match(input,61,FOLLOW_61_in_identifierOrKeyword227); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "endpoint";
}
}
break;
case 21 :
// ATL_ANTLR3.g:80:602: 'in'
{
match(input,62,FOLLOW_62_in_identifierOrKeyword232); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "in";
}
}
break;
case 22 :
// ATL_ANTLR3.g:80:622: 'to'
{
match(input,63,FOLLOW_63_in_identifierOrKeyword237); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "to";
}
}
break;
case 23 :
// ATL_ANTLR3.g:80:642: 'mapsTo'
{
match(input,64,FOLLOW_64_in_identifierOrKeyword242); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "mapsTo";
}
}
break;
case 24 :
// ATL_ANTLR3.g:80:670: 'distinct'
{
match(input,65,FOLLOW_65_in_identifierOrKeyword247); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "distinct";
}
}
break;
case 25 :
// ATL_ANTLR3.g:80:702: 'foreach'
{
match(input,66,FOLLOW_66_in_identifierOrKeyword252); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "foreach";
}
}
break;
case 26 :
// ATL_ANTLR3.g:80:732: 'drop'
{
match(input,67,FOLLOW_67_in_identifierOrKeyword257); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "drop";
}
}
break;
case 27 :
// ATL_ANTLR3.g:80:756: 'do'
{
match(input,68,FOLLOW_68_in_identifierOrKeyword262); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "do";
}
}
break;
case 28 :
// ATL_ANTLR3.g:80:776: 'if'
{
match(input,69,FOLLOW_69_in_identifierOrKeyword267); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "if";
}
}
break;
case 29 :
// ATL_ANTLR3.g:80:796: 'else'
{
match(input,70,FOLLOW_70_in_identifierOrKeyword272); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "else";
}
}
break;
case 30 :
// ATL_ANTLR3.g:80:820: 'for'
{
match(input,71,FOLLOW_71_in_identifierOrKeyword277); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "for";
}
}
break;
case 31 :
// ATL_ANTLR3.g:80:842: 'iterate'
{
match(input,72,FOLLOW_72_in_identifierOrKeyword282); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "iterate";
}
}
break;
case 32 :
// ATL_ANTLR3.g:80:872: 'OclUndefined'
{
match(input,73,FOLLOW_73_in_identifierOrKeyword287); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "OclUndefined";
}
}
break;
case 33 :
// ATL_ANTLR3.g:80:912: 'true'
{
match(input,74,FOLLOW_74_in_identifierOrKeyword292); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "true";
}
}
break;
case 34 :
// ATL_ANTLR3.g:80:936: 'false'
{
match(input,75,FOLLOW_75_in_identifierOrKeyword297); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "false";
}
}
break;
case 35 :
// ATL_ANTLR3.g:80:962: 'then'
{
match(input,76,FOLLOW_76_in_identifierOrKeyword302); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "then";
}
}
break;
case 36 :
// ATL_ANTLR3.g:80:986: 'endif'
{
match(input,77,FOLLOW_77_in_identifierOrKeyword307); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "endif";
}
}
break;
case 37 :
// ATL_ANTLR3.g:80:1012: 'super'
{
match(input,78,FOLLOW_78_in_identifierOrKeyword312); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "super";
}
}
break;
case 38 :
// ATL_ANTLR3.g:80:1038: 'let'
{
match(input,79,FOLLOW_79_in_identifierOrKeyword317); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "let";
}
}
break;
case 39 :
// ATL_ANTLR3.g:80:1060: 'Bag'
{
match(input,80,FOLLOW_80_in_identifierOrKeyword322); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "Bag";
}
}
break;
case 40 :
// ATL_ANTLR3.g:80:1082: 'Set'
{
match(input,81,FOLLOW_81_in_identifierOrKeyword327); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "Set";
}
}
break;
case 41 :
// ATL_ANTLR3.g:80:1104: 'OrderedSet'
{
match(input,82,FOLLOW_82_in_identifierOrKeyword332); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "OrderedSet";
}
}
break;
case 42 :
// ATL_ANTLR3.g:80:1140: 'Sequence'
{
match(input,83,FOLLOW_83_in_identifierOrKeyword337); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "Sequence";
}
}
break;
case 43 :
// ATL_ANTLR3.g:80:1172: 'Map'
{
match(input,84,FOLLOW_84_in_identifierOrKeyword342); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "Map";
}
}
break;
case 44 :
// ATL_ANTLR3.g:80:1194: 'Tuple'
{
match(input,85,FOLLOW_85_in_identifierOrKeyword347); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "Tuple";
}
}
break;
case 45 :
// ATL_ANTLR3.g:80:1220: 'OclType'
{
match(input,86,FOLLOW_86_in_identifierOrKeyword352); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "OclType";
}
}
break;
case 46 :
// ATL_ANTLR3.g:80:1250: 'OclAny'
{
match(input,87,FOLLOW_87_in_identifierOrKeyword357); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "OclAny";
}
}
break;
case 47 :
// ATL_ANTLR3.g:80:1278: 'TupleType'
{
match(input,88,FOLLOW_88_in_identifierOrKeyword362); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "TupleType";
}
}
break;
case 48 :
// ATL_ANTLR3.g:80:1312: 'Integer'
{
match(input,89,FOLLOW_89_in_identifierOrKeyword367); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "Integer";
}
}
break;
case 49 :
// ATL_ANTLR3.g:80:1342: 'Real'
{
match(input,90,FOLLOW_90_in_identifierOrKeyword372); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "Real";
}
}
break;
case 50 :
// ATL_ANTLR3.g:80:1366: 'Boolean'
{
match(input,91,FOLLOW_91_in_identifierOrKeyword377); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "Boolean";
}
}
break;
case 51 :
// ATL_ANTLR3.g:80:1396: 'String'
{
match(input,92,FOLLOW_92_in_identifierOrKeyword382); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "String";
}
}
break;
case 52 :
// ATL_ANTLR3.g:80:1424: 'Collection'
{
match(input,93,FOLLOW_93_in_identifierOrKeyword387); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "Collection";
}
}
break;
case 53 :
// ATL_ANTLR3.g:80:1460: 'not'
{
match(input,94,FOLLOW_94_in_identifierOrKeyword392); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "not";
}
}
break;
case 54 :
// ATL_ANTLR3.g:80:1482: 'div'
{
match(input,95,FOLLOW_95_in_identifierOrKeyword397); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "div";
}
}
break;
case 55 :
// ATL_ANTLR3.g:80:1504: 'mod'
{
match(input,96,FOLLOW_96_in_identifierOrKeyword402); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "mod";
}
}
break;
case 56 :
// ATL_ANTLR3.g:80:1526: 'and'
{
match(input,97,FOLLOW_97_in_identifierOrKeyword407); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "and";
}
}
break;
case 57 :
// ATL_ANTLR3.g:80:1548: 'or'
{
match(input,98,FOLLOW_98_in_identifierOrKeyword412); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "or";
}
}
break;
case 58 :
// ATL_ANTLR3.g:80:1568: 'xor'
{
match(input,99,FOLLOW_99_in_identifierOrKeyword417); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "xor";
}
}
break;
case 59 :
// ATL_ANTLR3.g:80:1590: 'implies'
{
match(input,100,FOLLOW_100_in_identifierOrKeyword422); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = "implies";
}
}
break;
}
if ( state.backtracking==0 ) {
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "identifierOrKeyword"
// $ANTLR start "stringSymbol"
// ATL_ANTLR3.g:87:1: stringSymbol returns [Object ret2] : ast= STRING ;
public final Object stringSymbol() throws RecognitionException {
Object ret2 = null;
Token ast=null;
java.lang.Object ret=null;
try {
// ATL_ANTLR3.g:88:2: (ast= STRING )
// ATL_ANTLR3.g:88:4: ast= STRING
{
ast=(Token)match(input,STRING,FOLLOW_STRING_in_stringSymbol457); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = ei.unescapeString(ast.getText(), 1); ei.setToken((Object)ast);
}
if ( state.backtracking==0 ) {
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "stringSymbol"
// $ANTLR start "integerSymbol"
// ATL_ANTLR3.g:95:1: integerSymbol returns [Object ret2] : ast= INT ;
public final Object integerSymbol() throws RecognitionException {
Object ret2 = null;
Token ast=null;
java.lang.Object ret=null;
try {
// ATL_ANTLR3.g:96:2: (ast= INT )
// ATL_ANTLR3.g:96:4: ast= INT
{
ast=(Token)match(input,INT,FOLLOW_INT_in_integerSymbol491); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = Integer.valueOf(ast.getText()); ei.setToken((Object)ast);
}
if ( state.backtracking==0 ) {
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "integerSymbol"
// $ANTLR start "floatSymbol"
// ATL_ANTLR3.g:103:1: floatSymbol returns [Object ret2] : ast= FLOAT ;
public final Object floatSymbol() throws RecognitionException {
Object ret2 = null;
Token ast=null;
java.lang.Object ret=null;
try {
// ATL_ANTLR3.g:104:2: (ast= FLOAT )
// ATL_ANTLR3.g:104:4: ast= FLOAT
{
ast=(Token)match(input,FLOAT,FOLLOW_FLOAT_in_floatSymbol525); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = Double.valueOf(ast.getText()); ei.setToken((Object)ast);
}
if ( state.backtracking==0 ) {
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "floatSymbol"
// $ANTLR start "unit"
// ATL_ANTLR3.g:111:1: unit returns [Object ret2] : ( (ret= module | ret= library | ret= query ) ) ;
public final Object unit() throws RecognitionException {
Object ret2 = null;
Object ret = null;
try {
// ATL_ANTLR3.g:112:2: ( ( (ret= module | ret= library | ret= query ) ) )
// ATL_ANTLR3.g:112:4: ( (ret= module | ret= library | ret= query ) )
{
// ATL_ANTLR3.g:112:4: ( (ret= module | ret= library | ret= query ) )
// ATL_ANTLR3.g:112:5: (ret= module | ret= library | ret= query )
{
// ATL_ANTLR3.g:112:5: (ret= module | ret= library | ret= query )
int alt2=3;
switch ( input.LA(1) ) {
case 43:
{
alt2=1;
}
break;
case 47:
{
alt2=2;
}
break;
case 48:
{
alt2=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 2, 0, input);
throw nvae;
}
switch (alt2) {
case 1 :
// ATL_ANTLR3.g:112:6: ret= module
{
pushFollow(FOLLOW_module_in_unit561);
ret=module();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 2 :
// ATL_ANTLR3.g:112:18: ret= library
{
pushFollow(FOLLOW_library_in_unit566);
ret=library();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 3 :
// ATL_ANTLR3.g:112:31: ret= query
{
pushFollow(FOLLOW_query_in_unit571);
ret=query();
state._fsp--;
if (state.failed) return ret2;
}
break;
}
}
if ( state.backtracking==0 ) {
ei.addToContext(ret, false);
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "unit"
// $ANTLR start "module"
// ATL_ANTLR3.g:120:1: module returns [Object ret2] : ( 'module' temp= identifier SEMI 'create' ( (temp= oclModel ( ( ( COMA ) temp= oclModel ) )* ) ) ( ( 'refining' ) | ( 'from' ) ) ( (temp= oclModel ( ( ( COMA ) temp= oclModel ) )* ) ) SEMI ( ( ( (temp= libraryRef ( (temp= libraryRef ) )* ) )? ( (temp= moduleElement ( (temp= moduleElement ) )* ) )? ) ) ) ;
public final Object module() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("Module", true, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:121:2: ( ( 'module' temp= identifier SEMI 'create' ( (temp= oclModel ( ( ( COMA ) temp= oclModel ) )* ) ) ( ( 'refining' ) | ( 'from' ) ) ( (temp= oclModel ( ( ( COMA ) temp= oclModel ) )* ) ) SEMI ( ( ( (temp= libraryRef ( (temp= libraryRef ) )* ) )? ( (temp= moduleElement ( (temp= moduleElement ) )* ) )? ) ) ) )
// ATL_ANTLR3.g:121:4: ( 'module' temp= identifier SEMI 'create' ( (temp= oclModel ( ( ( COMA ) temp= oclModel ) )* ) ) ( ( 'refining' ) | ( 'from' ) ) ( (temp= oclModel ( ( ( COMA ) temp= oclModel ) )* ) ) SEMI ( ( ( (temp= libraryRef ( (temp= libraryRef ) )* ) )? ( (temp= moduleElement ( (temp= moduleElement ) )* ) )? ) ) )
{
// ATL_ANTLR3.g:121:4: ( 'module' temp= identifier SEMI 'create' ( (temp= oclModel ( ( ( COMA ) temp= oclModel ) )* ) ) ( ( 'refining' ) | ( 'from' ) ) ( (temp= oclModel ( ( ( COMA ) temp= oclModel ) )* ) ) SEMI ( ( ( (temp= libraryRef ( (temp= libraryRef ) )* ) )? ( (temp= moduleElement ( (temp= moduleElement ) )* ) )? ) ) )
// ATL_ANTLR3.g:121:5: 'module' temp= identifier SEMI 'create' ( (temp= oclModel ( ( ( COMA ) temp= oclModel ) )* ) ) ( ( 'refining' ) | ( 'from' ) ) ( (temp= oclModel ( ( ( COMA ) temp= oclModel ) )* ) ) SEMI ( ( ( (temp= libraryRef ( (temp= libraryRef ) )* ) )? ( (temp= moduleElement ( (temp= moduleElement ) )* ) )? ) )
{
match(input,43,FOLLOW_43_in_module604); if (state.failed) return ret2;
pushFollow(FOLLOW_identifier_in_module608);
temp=identifier();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "name", temp);
}
match(input,SEMI,FOLLOW_SEMI_in_module612); if (state.failed) return ret2;
match(input,44,FOLLOW_44_in_module614); if (state.failed) return ret2;
// ATL_ANTLR3.g:121:73: ( (temp= oclModel ( ( ( COMA ) temp= oclModel ) )* ) )
// ATL_ANTLR3.g:121:74: (temp= oclModel ( ( ( COMA ) temp= oclModel ) )* )
{
// ATL_ANTLR3.g:121:74: (temp= oclModel ( ( ( COMA ) temp= oclModel ) )* )
// ATL_ANTLR3.g:121:75: temp= oclModel ( ( ( COMA ) temp= oclModel ) )*
{
pushFollow(FOLLOW_oclModel_in_module620);
temp=oclModel();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "outModels", temp);
}
// ATL_ANTLR3.g:121:123: ( ( ( COMA ) temp= oclModel ) )*
loop3:
do {
int alt3=2;
int LA3_0 = input.LA(1);
if ( (LA3_0==COMA) ) {
alt3=1;
}
switch (alt3) {
case 1 :
// ATL_ANTLR3.g:121:124: ( ( COMA ) temp= oclModel )
{
// ATL_ANTLR3.g:121:124: ( ( COMA ) temp= oclModel )
// ATL_ANTLR3.g:121:125: ( COMA ) temp= oclModel
{
// ATL_ANTLR3.g:121:125: ( COMA )
// ATL_ANTLR3.g:121:126: COMA
{
match(input,COMA,FOLLOW_COMA_in_module627); if (state.failed) return ret2;
}
pushFollow(FOLLOW_oclModel_in_module632);
temp=oclModel();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "outModels", temp);
}
}
}
break;
default :
break loop3;
}
} while (true);
}
}
// ATL_ANTLR3.g:121:185: ( ( 'refining' ) | ( 'from' ) )
int alt4=2;
int LA4_0 = input.LA(1);
if ( (LA4_0==45) ) {
alt4=1;
}
else if ( (LA4_0==46) ) {
alt4=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 4, 0, input);
throw nvae;
}
switch (alt4) {
case 1 :
// ATL_ANTLR3.g:121:186: ( 'refining' )
{
// ATL_ANTLR3.g:121:186: ( 'refining' )
// ATL_ANTLR3.g:121:187: 'refining'
{
match(input,45,FOLLOW_45_in_module643); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.set(ret, "isRefining", java.lang.Boolean.TRUE);
}
}
break;
case 2 :
// ATL_ANTLR3.g:121:253: ( 'from' )
{
// ATL_ANTLR3.g:121:253: ( 'from' )
// ATL_ANTLR3.g:121:254: 'from'
{
match(input,46,FOLLOW_46_in_module650); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.set(ret, "isRefining", java.lang.Boolean.FALSE);
}
}
break;
}
// ATL_ANTLR3.g:121:317: ( (temp= oclModel ( ( ( COMA ) temp= oclModel ) )* ) )
// ATL_ANTLR3.g:121:318: (temp= oclModel ( ( ( COMA ) temp= oclModel ) )* )
{
// ATL_ANTLR3.g:121:318: (temp= oclModel ( ( ( COMA ) temp= oclModel ) )* )
// ATL_ANTLR3.g:121:319: temp= oclModel ( ( ( COMA ) temp= oclModel ) )*
{
pushFollow(FOLLOW_oclModel_in_module660);
temp=oclModel();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "inModels", temp);
}
// ATL_ANTLR3.g:121:366: ( ( ( COMA ) temp= oclModel ) )*
loop5:
do {
int alt5=2;
int LA5_0 = input.LA(1);
if ( (LA5_0==COMA) ) {
alt5=1;
}
switch (alt5) {
case 1 :
// ATL_ANTLR3.g:121:367: ( ( COMA ) temp= oclModel )
{
// ATL_ANTLR3.g:121:367: ( ( COMA ) temp= oclModel )
// ATL_ANTLR3.g:121:368: ( COMA ) temp= oclModel
{
// ATL_ANTLR3.g:121:368: ( COMA )
// ATL_ANTLR3.g:121:369: COMA
{
match(input,COMA,FOLLOW_COMA_in_module667); if (state.failed) return ret2;
}
pushFollow(FOLLOW_oclModel_in_module672);
temp=oclModel();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "inModels", temp);
}
}
}
break;
default :
break loop5;
}
} while (true);
}
}
match(input,SEMI,FOLLOW_SEMI_in_module681); if (state.failed) return ret2;
// ATL_ANTLR3.g:121:432: ( ( ( (temp= libraryRef ( (temp= libraryRef ) )* ) )? ( (temp= moduleElement ( (temp= moduleElement ) )* ) )? ) )
// ATL_ANTLR3.g:121:433: ( ( (temp= libraryRef ( (temp= libraryRef ) )* ) )? ( (temp= moduleElement ( (temp= moduleElement ) )* ) )? )
{
// ATL_ANTLR3.g:121:433: ( ( (temp= libraryRef ( (temp= libraryRef ) )* ) )? ( (temp= moduleElement ( (temp= moduleElement ) )* ) )? )
// ATL_ANTLR3.g:121:434: ( (temp= libraryRef ( (temp= libraryRef ) )* ) )? ( (temp= moduleElement ( (temp= moduleElement ) )* ) )?
{
// ATL_ANTLR3.g:121:434: ( (temp= libraryRef ( (temp= libraryRef ) )* ) )?
int alt7=2;
int LA7_0 = input.LA(1);
if ( (LA7_0==49) ) {
alt7=1;
}
switch (alt7) {
case 1 :
// ATL_ANTLR3.g:121:435: (temp= libraryRef ( (temp= libraryRef ) )* )
{
// ATL_ANTLR3.g:121:435: (temp= libraryRef ( (temp= libraryRef ) )* )
// ATL_ANTLR3.g:121:436: temp= libraryRef ( (temp= libraryRef ) )*
{
pushFollow(FOLLOW_libraryRef_in_module689);
temp=libraryRef();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "libraries", temp);
}
// ATL_ANTLR3.g:121:486: ( (temp= libraryRef ) )*
loop6:
do {
int alt6=2;
int LA6_0 = input.LA(1);
if ( (LA6_0==49) ) {
alt6=1;
}
switch (alt6) {
case 1 :
// ATL_ANTLR3.g:121:487: (temp= libraryRef )
{
// ATL_ANTLR3.g:121:487: (temp= libraryRef )
// ATL_ANTLR3.g:121:488: temp= libraryRef
{
pushFollow(FOLLOW_libraryRef_in_module697);
temp=libraryRef();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "libraries", temp);
}
}
}
break;
default :
break loop6;
}
} while (true);
}
}
break;
}
// ATL_ANTLR3.g:121:544: ( (temp= moduleElement ( (temp= moduleElement ) )* ) )?
int alt9=2;
int LA9_0 = input.LA(1);
if ( (LA9_0==45||LA9_0==50||(LA9_0>=53 && LA9_0<=55)||(LA9_0>=58 && LA9_0<=61)) ) {
alt9=1;
}
switch (alt9) {
case 1 :
// ATL_ANTLR3.g:121:545: (temp= moduleElement ( (temp= moduleElement ) )* )
{
// ATL_ANTLR3.g:121:545: (temp= moduleElement ( (temp= moduleElement ) )* )
// ATL_ANTLR3.g:121:546: temp= moduleElement ( (temp= moduleElement ) )*
{
pushFollow(FOLLOW_moduleElement_in_module711);
temp=moduleElement();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "elements", temp);
}
// ATL_ANTLR3.g:121:598: ( (temp= moduleElement ) )*
loop8:
do {
int alt8=2;
int LA8_0 = input.LA(1);
if ( (LA8_0==45||LA8_0==50||(LA8_0>=53 && LA8_0<=55)||(LA8_0>=58 && LA8_0<=61)) ) {
alt8=1;
}
switch (alt8) {
case 1 :
// ATL_ANTLR3.g:121:599: (temp= moduleElement )
{
// ATL_ANTLR3.g:121:599: (temp= moduleElement )
// ATL_ANTLR3.g:121:600: temp= moduleElement
{
pushFollow(FOLLOW_moduleElement_in_module719);
temp=moduleElement();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "elements", temp);
}
}
}
break;
default :
break loop8;
}
} while (true);
}
}
break;
}
}
}
}
if ( state.backtracking==0 ) {
ei.leaveContext(true);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "module"
// $ANTLR start "library"
// ATL_ANTLR3.g:131:1: library returns [Object ret2] : ( 'library' temp= identifier SEMI ( ( ( (temp= libraryRef ( (temp= libraryRef ) )* ) )? ( (temp= helper ( (temp= helper ) )* ) )? ) ) ) ;
public final Object library() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("Library", true, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:132:2: ( ( 'library' temp= identifier SEMI ( ( ( (temp= libraryRef ( (temp= libraryRef ) )* ) )? ( (temp= helper ( (temp= helper ) )* ) )? ) ) ) )
// ATL_ANTLR3.g:132:4: ( 'library' temp= identifier SEMI ( ( ( (temp= libraryRef ( (temp= libraryRef ) )* ) )? ( (temp= helper ( (temp= helper ) )* ) )? ) ) )
{
// ATL_ANTLR3.g:132:4: ( 'library' temp= identifier SEMI ( ( ( (temp= libraryRef ( (temp= libraryRef ) )* ) )? ( (temp= helper ( (temp= helper ) )* ) )? ) ) )
// ATL_ANTLR3.g:132:5: 'library' temp= identifier SEMI ( ( ( (temp= libraryRef ( (temp= libraryRef ) )* ) )? ( (temp= helper ( (temp= helper ) )* ) )? ) )
{
match(input,47,FOLLOW_47_in_library761); if (state.failed) return ret2;
pushFollow(FOLLOW_identifier_in_library765);
temp=identifier();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "name", temp);
}
match(input,SEMI,FOLLOW_SEMI_in_library769); if (state.failed) return ret2;
// ATL_ANTLR3.g:132:65: ( ( ( (temp= libraryRef ( (temp= libraryRef ) )* ) )? ( (temp= helper ( (temp= helper ) )* ) )? ) )
// ATL_ANTLR3.g:132:66: ( ( (temp= libraryRef ( (temp= libraryRef ) )* ) )? ( (temp= helper ( (temp= helper ) )* ) )? )
{
// ATL_ANTLR3.g:132:66: ( ( (temp= libraryRef ( (temp= libraryRef ) )* ) )? ( (temp= helper ( (temp= helper ) )* ) )? )
// ATL_ANTLR3.g:132:67: ( (temp= libraryRef ( (temp= libraryRef ) )* ) )? ( (temp= helper ( (temp= helper ) )* ) )?
{
// ATL_ANTLR3.g:132:67: ( (temp= libraryRef ( (temp= libraryRef ) )* ) )?
int alt11=2;
int LA11_0 = input.LA(1);
if ( (LA11_0==49) ) {
alt11=1;
}
switch (alt11) {
case 1 :
// ATL_ANTLR3.g:132:68: (temp= libraryRef ( (temp= libraryRef ) )* )
{
// ATL_ANTLR3.g:132:68: (temp= libraryRef ( (temp= libraryRef ) )* )
// ATL_ANTLR3.g:132:69: temp= libraryRef ( (temp= libraryRef ) )*
{
pushFollow(FOLLOW_libraryRef_in_library777);
temp=libraryRef();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "libraries", temp);
}
// ATL_ANTLR3.g:132:119: ( (temp= libraryRef ) )*
loop10:
do {
int alt10=2;
int LA10_0 = input.LA(1);
if ( (LA10_0==49) ) {
alt10=1;
}
switch (alt10) {
case 1 :
// ATL_ANTLR3.g:132:120: (temp= libraryRef )
{
// ATL_ANTLR3.g:132:120: (temp= libraryRef )
// ATL_ANTLR3.g:132:121: temp= libraryRef
{
pushFollow(FOLLOW_libraryRef_in_library785);
temp=libraryRef();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "libraries", temp);
}
}
}
break;
default :
break loop10;
}
} while (true);
}
}
break;
}
// ATL_ANTLR3.g:132:177: ( (temp= helper ( (temp= helper ) )* ) )?
int alt13=2;
int LA13_0 = input.LA(1);
if ( (LA13_0==50) ) {
alt13=1;
}
switch (alt13) {
case 1 :
// ATL_ANTLR3.g:132:178: (temp= helper ( (temp= helper ) )* )
{
// ATL_ANTLR3.g:132:178: (temp= helper ( (temp= helper ) )* )
// ATL_ANTLR3.g:132:179: temp= helper ( (temp= helper ) )*
{
pushFollow(FOLLOW_helper_in_library799);
temp=helper();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "helpers", temp);
}
// ATL_ANTLR3.g:132:223: ( (temp= helper ) )*
loop12:
do {
int alt12=2;
int LA12_0 = input.LA(1);
if ( (LA12_0==50) ) {
alt12=1;
}
switch (alt12) {
case 1 :
// ATL_ANTLR3.g:132:224: (temp= helper )
{
// ATL_ANTLR3.g:132:224: (temp= helper )
// ATL_ANTLR3.g:132:225: temp= helper
{
pushFollow(FOLLOW_helper_in_library807);
temp=helper();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "helpers", temp);
}
}
}
break;
default :
break loop12;
}
} while (true);
}
}
break;
}
}
}
}
if ( state.backtracking==0 ) {
ei.leaveContext(true);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "library"
// $ANTLR start "query"
// ATL_ANTLR3.g:142:1: query returns [Object ret2] : ( 'query' temp= identifier EQ temp= oclExpression SEMI ( ( ( (temp= libraryRef ( (temp= libraryRef ) )* ) )? ( (temp= helper ( (temp= helper ) )* ) )? ) ) ) ;
public final Object query() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("Query", true, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:143:2: ( ( 'query' temp= identifier EQ temp= oclExpression SEMI ( ( ( (temp= libraryRef ( (temp= libraryRef ) )* ) )? ( (temp= helper ( (temp= helper ) )* ) )? ) ) ) )
// ATL_ANTLR3.g:143:4: ( 'query' temp= identifier EQ temp= oclExpression SEMI ( ( ( (temp= libraryRef ( (temp= libraryRef ) )* ) )? ( (temp= helper ( (temp= helper ) )* ) )? ) ) )
{
// ATL_ANTLR3.g:143:4: ( 'query' temp= identifier EQ temp= oclExpression SEMI ( ( ( (temp= libraryRef ( (temp= libraryRef ) )* ) )? ( (temp= helper ( (temp= helper ) )* ) )? ) ) )
// ATL_ANTLR3.g:143:5: 'query' temp= identifier EQ temp= oclExpression SEMI ( ( ( (temp= libraryRef ( (temp= libraryRef ) )* ) )? ( (temp= helper ( (temp= helper ) )* ) )? ) )
{
match(input,48,FOLLOW_48_in_query849); if (state.failed) return ret2;
pushFollow(FOLLOW_identifier_in_query853);
temp=identifier();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "name", temp);
}
match(input,EQ,FOLLOW_EQ_in_query857); if (state.failed) return ret2;
pushFollow(FOLLOW_oclExpression_in_query861);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "body", temp);
}
match(input,SEMI,FOLLOW_SEMI_in_query865); if (state.failed) return ret2;
// ATL_ANTLR3.g:143:114: ( ( ( (temp= libraryRef ( (temp= libraryRef ) )* ) )? ( (temp= helper ( (temp= helper ) )* ) )? ) )
// ATL_ANTLR3.g:143:115: ( ( (temp= libraryRef ( (temp= libraryRef ) )* ) )? ( (temp= helper ( (temp= helper ) )* ) )? )
{
// ATL_ANTLR3.g:143:115: ( ( (temp= libraryRef ( (temp= libraryRef ) )* ) )? ( (temp= helper ( (temp= helper ) )* ) )? )
// ATL_ANTLR3.g:143:116: ( (temp= libraryRef ( (temp= libraryRef ) )* ) )? ( (temp= helper ( (temp= helper ) )* ) )?
{
// ATL_ANTLR3.g:143:116: ( (temp= libraryRef ( (temp= libraryRef ) )* ) )?
int alt15=2;
int LA15_0 = input.LA(1);
if ( (LA15_0==49) ) {
alt15=1;
}
switch (alt15) {
case 1 :
// ATL_ANTLR3.g:143:117: (temp= libraryRef ( (temp= libraryRef ) )* )
{
// ATL_ANTLR3.g:143:117: (temp= libraryRef ( (temp= libraryRef ) )* )
// ATL_ANTLR3.g:143:118: temp= libraryRef ( (temp= libraryRef ) )*
{
pushFollow(FOLLOW_libraryRef_in_query873);
temp=libraryRef();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "libraries", temp);
}
// ATL_ANTLR3.g:143:168: ( (temp= libraryRef ) )*
loop14:
do {
int alt14=2;
int LA14_0 = input.LA(1);
if ( (LA14_0==49) ) {
alt14=1;
}
switch (alt14) {
case 1 :
// ATL_ANTLR3.g:143:169: (temp= libraryRef )
{
// ATL_ANTLR3.g:143:169: (temp= libraryRef )
// ATL_ANTLR3.g:143:170: temp= libraryRef
{
pushFollow(FOLLOW_libraryRef_in_query881);
temp=libraryRef();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "libraries", temp);
}
}
}
break;
default :
break loop14;
}
} while (true);
}
}
break;
}
// ATL_ANTLR3.g:143:226: ( (temp= helper ( (temp= helper ) )* ) )?
int alt17=2;
int LA17_0 = input.LA(1);
if ( (LA17_0==50) ) {
alt17=1;
}
switch (alt17) {
case 1 :
// ATL_ANTLR3.g:143:227: (temp= helper ( (temp= helper ) )* )
{
// ATL_ANTLR3.g:143:227: (temp= helper ( (temp= helper ) )* )
// ATL_ANTLR3.g:143:228: temp= helper ( (temp= helper ) )*
{
pushFollow(FOLLOW_helper_in_query895);
temp=helper();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "helpers", temp);
}
// ATL_ANTLR3.g:143:272: ( (temp= helper ) )*
loop16:
do {
int alt16=2;
int LA16_0 = input.LA(1);
if ( (LA16_0==50) ) {
alt16=1;
}
switch (alt16) {
case 1 :
// ATL_ANTLR3.g:143:273: (temp= helper )
{
// ATL_ANTLR3.g:143:273: (temp= helper )
// ATL_ANTLR3.g:143:274: temp= helper
{
pushFollow(FOLLOW_helper_in_query903);
temp=helper();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "helpers", temp);
}
}
}
break;
default :
break loop16;
}
} while (true);
}
}
break;
}
}
}
}
if ( state.backtracking==0 ) {
ei.leaveContext(true);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "query"
// $ANTLR start "libraryRef"
// ATL_ANTLR3.g:153:1: libraryRef returns [Object ret2] : ( 'uses' temp= identifier SEMI ) ;
public final Object libraryRef() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("LibraryRef", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:154:2: ( ( 'uses' temp= identifier SEMI ) )
// ATL_ANTLR3.g:154:4: ( 'uses' temp= identifier SEMI )
{
// ATL_ANTLR3.g:154:4: ( 'uses' temp= identifier SEMI )
// ATL_ANTLR3.g:154:5: 'uses' temp= identifier SEMI
{
match(input,49,FOLLOW_49_in_libraryRef945); if (state.failed) return ret2;
pushFollow(FOLLOW_identifier_in_libraryRef949);
temp=identifier();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "name", temp);
}
match(input,SEMI,FOLLOW_SEMI_in_libraryRef953); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "libraryRef"
// $ANTLR start "moduleElement"
// ATL_ANTLR3.g:164:1: moduleElement returns [Object ret2] : ( (ret= helper | ret= rule ) ) ;
public final Object moduleElement() throws RecognitionException {
Object ret2 = null;
Object ret = null;
try {
// ATL_ANTLR3.g:165:2: ( ( (ret= helper | ret= rule ) ) )
// ATL_ANTLR3.g:165:4: ( (ret= helper | ret= rule ) )
{
// ATL_ANTLR3.g:165:4: ( (ret= helper | ret= rule ) )
// ATL_ANTLR3.g:165:5: (ret= helper | ret= rule )
{
// ATL_ANTLR3.g:165:5: (ret= helper | ret= rule )
int alt18=2;
int LA18_0 = input.LA(1);
if ( (LA18_0==50) ) {
alt18=1;
}
else if ( (LA18_0==45||(LA18_0>=53 && LA18_0<=55)||(LA18_0>=58 && LA18_0<=61)) ) {
alt18=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 18, 0, input);
throw nvae;
}
switch (alt18) {
case 1 :
// ATL_ANTLR3.g:165:6: ret= helper
{
pushFollow(FOLLOW_helper_in_moduleElement988);
ret=helper();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 2 :
// ATL_ANTLR3.g:165:18: ret= rule
{
pushFollow(FOLLOW_rule_in_moduleElement993);
ret=rule();
state._fsp--;
if (state.failed) return ret2;
}
break;
}
}
if ( state.backtracking==0 ) {
ei.addToContext(ret, false);
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "moduleElement"
// $ANTLR start "helper"
// ATL_ANTLR3.g:173:1: helper returns [Object ret2] : ( 'helper' temp= oclFeatureDefinition SEMI ) ;
public final Object helper() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("Helper", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:174:2: ( ( 'helper' temp= oclFeatureDefinition SEMI ) )
// ATL_ANTLR3.g:174:4: ( 'helper' temp= oclFeatureDefinition SEMI )
{
// ATL_ANTLR3.g:174:4: ( 'helper' temp= oclFeatureDefinition SEMI )
// ATL_ANTLR3.g:174:5: 'helper' temp= oclFeatureDefinition SEMI
{
match(input,50,FOLLOW_50_in_helper1026); if (state.failed) return ret2;
pushFollow(FOLLOW_oclFeatureDefinition_in_helper1030);
temp=oclFeatureDefinition();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "definition", temp);
}
match(input,SEMI,FOLLOW_SEMI_in_helper1034); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "helper"
// $ANTLR start "oclFeatureDefinition"
// ATL_ANTLR3.g:184:1: oclFeatureDefinition returns [Object ret2] : ( ( (temp= oclContextDefinition ) | () ) 'def' COLON temp= oclFeature ) ;
public final Object oclFeatureDefinition() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("OclFeatureDefinition", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:185:2: ( ( ( (temp= oclContextDefinition ) | () ) 'def' COLON temp= oclFeature ) )
// ATL_ANTLR3.g:185:4: ( ( (temp= oclContextDefinition ) | () ) 'def' COLON temp= oclFeature )
{
// ATL_ANTLR3.g:185:4: ( ( (temp= oclContextDefinition ) | () ) 'def' COLON temp= oclFeature )
// ATL_ANTLR3.g:185:5: ( (temp= oclContextDefinition ) | () ) 'def' COLON temp= oclFeature
{
// ATL_ANTLR3.g:185:5: ( (temp= oclContextDefinition ) | () )
int alt19=2;
int LA19_0 = input.LA(1);
if ( (LA19_0==52) ) {
alt19=1;
}
else if ( (LA19_0==51) ) {
alt19=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 19, 0, input);
throw nvae;
}
switch (alt19) {
case 1 :
// ATL_ANTLR3.g:185:6: (temp= oclContextDefinition )
{
// ATL_ANTLR3.g:185:6: (temp= oclContextDefinition )
// ATL_ANTLR3.g:185:7: temp= oclContextDefinition
{
pushFollow(FOLLOW_oclContextDefinition_in_oclFeatureDefinition1070);
temp=oclContextDefinition();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "context_", temp);
}
}
if ( state.backtracking==0 ) {
}
}
break;
case 2 :
// ATL_ANTLR3.g:185:71: ()
{
// ATL_ANTLR3.g:185:71: ()
// ATL_ANTLR3.g:185:72:
{
}
if ( state.backtracking==0 ) {
}
}
break;
}
match(input,51,FOLLOW_51_in_oclFeatureDefinition1084); if (state.failed) return ret2;
match(input,COLON,FOLLOW_COLON_in_oclFeatureDefinition1086); if (state.failed) return ret2;
pushFollow(FOLLOW_oclFeature_in_oclFeatureDefinition1090);
temp=oclFeature();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "feature", temp);
}
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "oclFeatureDefinition"
// $ANTLR start "oclContextDefinition"
// ATL_ANTLR3.g:195:1: oclContextDefinition returns [Object ret2] : ( 'context' temp= oclType ) ;
public final Object oclContextDefinition() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("OclContextDefinition", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:196:2: ( ( 'context' temp= oclType ) )
// ATL_ANTLR3.g:196:4: ( 'context' temp= oclType )
{
// ATL_ANTLR3.g:196:4: ( 'context' temp= oclType )
// ATL_ANTLR3.g:196:5: 'context' temp= oclType
{
match(input,52,FOLLOW_52_in_oclContextDefinition1124); if (state.failed) return ret2;
pushFollow(FOLLOW_oclType_in_oclContextDefinition1128);
temp=oclType();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "context_", temp);
}
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "oclContextDefinition"
// $ANTLR start "oclFeature"
// ATL_ANTLR3.g:206:1: oclFeature returns [Object ret2] : ( (ret= operation | ret= attribute ) ) ;
public final Object oclFeature() throws RecognitionException {
Object ret2 = null;
Object ret = null;
try {
// ATL_ANTLR3.g:207:2: ( ( (ret= operation | ret= attribute ) ) )
// ATL_ANTLR3.g:207:4: ( (ret= operation | ret= attribute ) )
{
// ATL_ANTLR3.g:207:4: ( (ret= operation | ret= attribute ) )
// ATL_ANTLR3.g:207:5: (ret= operation | ret= attribute )
{
// ATL_ANTLR3.g:207:5: (ret= operation | ret= attribute )
int alt20=2;
int LA20_0 = input.LA(1);
if ( (LA20_0==NAME) ) {
int LA20_1 = input.LA(2);
if ( (LA20_1==COLON) ) {
alt20=2;
}
else if ( (LA20_1==LPAREN) ) {
alt20=1;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 20, 1, input);
throw nvae;
}
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 20, 0, input);
throw nvae;
}
switch (alt20) {
case 1 :
// ATL_ANTLR3.g:207:6: ret= operation
{
pushFollow(FOLLOW_operation_in_oclFeature1165);
ret=operation();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 2 :
// ATL_ANTLR3.g:207:21: ret= attribute
{
pushFollow(FOLLOW_attribute_in_oclFeature1170);
ret=attribute();
state._fsp--;
if (state.failed) return ret2;
}
break;
}
}
if ( state.backtracking==0 ) {
ei.addToContext(ret, false);
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "oclFeature"
// $ANTLR start "operation"
// ATL_ANTLR3.g:215:1: operation returns [Object ret2] : (temp= identifier LPAREN ( (temp= parameter ( ( ( COMA ) temp= parameter ) )* ) )? RPAREN COLON temp= oclType EQ ( (temp= oclExpression ) ) ) ;
public final Object operation() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("Operation", true, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:216:2: ( (temp= identifier LPAREN ( (temp= parameter ( ( ( COMA ) temp= parameter ) )* ) )? RPAREN COLON temp= oclType EQ ( (temp= oclExpression ) ) ) )
// ATL_ANTLR3.g:216:4: (temp= identifier LPAREN ( (temp= parameter ( ( ( COMA ) temp= parameter ) )* ) )? RPAREN COLON temp= oclType EQ ( (temp= oclExpression ) ) )
{
// ATL_ANTLR3.g:216:4: (temp= identifier LPAREN ( (temp= parameter ( ( ( COMA ) temp= parameter ) )* ) )? RPAREN COLON temp= oclType EQ ( (temp= oclExpression ) ) )
// ATL_ANTLR3.g:216:5: temp= identifier LPAREN ( (temp= parameter ( ( ( COMA ) temp= parameter ) )* ) )? RPAREN COLON temp= oclType EQ ( (temp= oclExpression ) )
{
pushFollow(FOLLOW_identifier_in_operation1205);
temp=identifier();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "name", temp);
}
match(input,LPAREN,FOLLOW_LPAREN_in_operation1209); if (state.failed) return ret2;
// ATL_ANTLR3.g:216:57: ( (temp= parameter ( ( ( COMA ) temp= parameter ) )* ) )?
int alt22=2;
int LA22_0 = input.LA(1);
if ( (LA22_0==NAME) ) {
alt22=1;
}
switch (alt22) {
case 1 :
// ATL_ANTLR3.g:216:58: (temp= parameter ( ( ( COMA ) temp= parameter ) )* )
{
// ATL_ANTLR3.g:216:58: (temp= parameter ( ( ( COMA ) temp= parameter ) )* )
// ATL_ANTLR3.g:216:59: temp= parameter ( ( ( COMA ) temp= parameter ) )*
{
pushFollow(FOLLOW_parameter_in_operation1215);
temp=parameter();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "parameters", temp);
}
// ATL_ANTLR3.g:216:109: ( ( ( COMA ) temp= parameter ) )*
loop21:
do {
int alt21=2;
int LA21_0 = input.LA(1);
if ( (LA21_0==COMA) ) {
alt21=1;
}
switch (alt21) {
case 1 :
// ATL_ANTLR3.g:216:110: ( ( COMA ) temp= parameter )
{
// ATL_ANTLR3.g:216:110: ( ( COMA ) temp= parameter )
// ATL_ANTLR3.g:216:111: ( COMA ) temp= parameter
{
// ATL_ANTLR3.g:216:111: ( COMA )
// ATL_ANTLR3.g:216:112: COMA
{
match(input,COMA,FOLLOW_COMA_in_operation1222); if (state.failed) return ret2;
}
pushFollow(FOLLOW_parameter_in_operation1227);
temp=parameter();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "parameters", temp);
}
}
}
break;
default :
break loop21;
}
} while (true);
}
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_operation1237); if (state.failed) return ret2;
match(input,COLON,FOLLOW_COLON_in_operation1239); if (state.failed) return ret2;
pushFollow(FOLLOW_oclType_in_operation1243);
temp=oclType();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "returnType", temp);
}
match(input,EQ,FOLLOW_EQ_in_operation1247); if (state.failed) return ret2;
// ATL_ANTLR3.g:216:238: ( (temp= oclExpression ) )
// ATL_ANTLR3.g:216:239: (temp= oclExpression )
{
// ATL_ANTLR3.g:216:239: (temp= oclExpression )
// ATL_ANTLR3.g:216:240: temp= oclExpression
{
pushFollow(FOLLOW_oclExpression_in_operation1253);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "body", temp);
}
}
}
}
if ( state.backtracking==0 ) {
ei.leaveContext(true);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "operation"
// $ANTLR start "parameter"
// ATL_ANTLR3.g:226:1: parameter returns [Object ret2] : (temp= identifier COLON temp= oclType ) ;
public final Object parameter() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("Parameter", false, true) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:227:2: ( (temp= identifier COLON temp= oclType ) )
// ATL_ANTLR3.g:227:4: (temp= identifier COLON temp= oclType )
{
// ATL_ANTLR3.g:227:4: (temp= identifier COLON temp= oclType )
// ATL_ANTLR3.g:227:5: temp= identifier COLON temp= oclType
{
pushFollow(FOLLOW_identifier_in_parameter1291);
temp=identifier();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "varName", temp);
}
match(input,COLON,FOLLOW_COLON_in_parameter1295); if (state.failed) return ret2;
pushFollow(FOLLOW_oclType_in_parameter1299);
temp=oclType();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "type", temp);
}
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "parameter"
// $ANTLR start "attribute"
// ATL_ANTLR3.g:237:1: attribute returns [Object ret2] : (temp= identifier COLON temp= oclType EQ ( (temp= oclExpression ) ) ) ;
public final Object attribute() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("Attribute", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:238:2: ( (temp= identifier COLON temp= oclType EQ ( (temp= oclExpression ) ) ) )
// ATL_ANTLR3.g:238:4: (temp= identifier COLON temp= oclType EQ ( (temp= oclExpression ) ) )
{
// ATL_ANTLR3.g:238:4: (temp= identifier COLON temp= oclType EQ ( (temp= oclExpression ) ) )
// ATL_ANTLR3.g:238:5: temp= identifier COLON temp= oclType EQ ( (temp= oclExpression ) )
{
pushFollow(FOLLOW_identifier_in_attribute1335);
temp=identifier();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "name", temp);
}
match(input,COLON,FOLLOW_COLON_in_attribute1339); if (state.failed) return ret2;
pushFollow(FOLLOW_oclType_in_attribute1343);
temp=oclType();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "type", temp);
}
match(input,EQ,FOLLOW_EQ_in_attribute1347); if (state.failed) return ret2;
// ATL_ANTLR3.g:238:101: ( (temp= oclExpression ) )
// ATL_ANTLR3.g:238:102: (temp= oclExpression )
{
// ATL_ANTLR3.g:238:102: (temp= oclExpression )
// ATL_ANTLR3.g:238:103: temp= oclExpression
{
pushFollow(FOLLOW_oclExpression_in_attribute1353);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "initExpression", temp);
}
}
}
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "attribute"
// $ANTLR start "rule"
// ATL_ANTLR3.g:248:1: rule returns [Object ret2] : ( (ret= calledRule | ret= matchedRule ) ) ;
public final Object rule() throws RecognitionException {
Object ret2 = null;
Object ret = null;
try {
// ATL_ANTLR3.g:249:2: ( ( (ret= calledRule | ret= matchedRule ) ) )
// ATL_ANTLR3.g:249:4: ( (ret= calledRule | ret= matchedRule ) )
{
// ATL_ANTLR3.g:249:4: ( (ret= calledRule | ret= matchedRule ) )
// ATL_ANTLR3.g:249:5: (ret= calledRule | ret= matchedRule )
{
// ATL_ANTLR3.g:249:5: (ret= calledRule | ret= matchedRule )
int alt23=2;
switch ( input.LA(1) ) {
case 60:
case 61:
{
alt23=1;
}
break;
case 55:
{
int LA23_2 = input.LA(2);
if ( (LA23_2==NAME) ) {
int LA23_4 = input.LA(3);
if ( (LA23_4==LPAREN) ) {
alt23=1;
}
else if ( (LA23_4==LCURLY||LA23_4==56) ) {
alt23=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 23, 4, input);
throw nvae;
}
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 23, 2, input);
throw nvae;
}
}
break;
case 45:
case 53:
case 54:
case 58:
case 59:
{
alt23=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 23, 0, input);
throw nvae;
}
switch (alt23) {
case 1 :
// ATL_ANTLR3.g:249:6: ret= calledRule
{
pushFollow(FOLLOW_calledRule_in_rule1392);
ret=calledRule();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 2 :
// ATL_ANTLR3.g:249:22: ret= matchedRule
{
pushFollow(FOLLOW_matchedRule_in_rule1397);
ret=matchedRule();
state._fsp--;
if (state.failed) return ret2;
}
break;
}
}
if ( state.backtracking==0 ) {
ei.addToContext(ret, false);
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "rule"
// $ANTLR start "matchedRule"
// ATL_ANTLR3.g:257:1: matchedRule returns [Object ret2] : ( (ret= lazyMatchedRule | ret= matchedRule_abstractContents ) ) ;
public final Object matchedRule() throws RecognitionException {
Object ret2 = null;
Object ret = null;
try {
// ATL_ANTLR3.g:258:2: ( ( (ret= lazyMatchedRule | ret= matchedRule_abstractContents ) ) )
// ATL_ANTLR3.g:258:4: ( (ret= lazyMatchedRule | ret= matchedRule_abstractContents ) )
{
// ATL_ANTLR3.g:258:4: ( (ret= lazyMatchedRule | ret= matchedRule_abstractContents ) )
// ATL_ANTLR3.g:258:5: (ret= lazyMatchedRule | ret= matchedRule_abstractContents )
{
// ATL_ANTLR3.g:258:5: (ret= lazyMatchedRule | ret= matchedRule_abstractContents )
int alt24=2;
int LA24_0 = input.LA(1);
if ( ((LA24_0>=58 && LA24_0<=59)) ) {
alt24=1;
}
else if ( (LA24_0==45||(LA24_0>=53 && LA24_0<=55)) ) {
alt24=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 24, 0, input);
throw nvae;
}
switch (alt24) {
case 1 :
// ATL_ANTLR3.g:258:6: ret= lazyMatchedRule
{
pushFollow(FOLLOW_lazyMatchedRule_in_matchedRule1433);
ret=lazyMatchedRule();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 2 :
// ATL_ANTLR3.g:258:27: ret= matchedRule_abstractContents
{
pushFollow(FOLLOW_matchedRule_abstractContents_in_matchedRule1438);
ret=matchedRule_abstractContents();
state._fsp--;
if (state.failed) return ret2;
}
break;
}
}
if ( state.backtracking==0 ) {
ei.addToContext(ret, true);
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "matchedRule"
// $ANTLR start "lazyMatchedRule"
// ATL_ANTLR3.g:266:1: lazyMatchedRule returns [Object ret2] : ( ( ( 'unique' ) | () ) 'lazy' ( ( 'abstract' ) | () ) ( ( 'refining' ) | () ) 'rule' temp= identifier ( ( 'extends' temp= identifier ) | () ) LCURLY ( (temp= inPattern ( ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY ) | () ) ( (temp= outPattern ) | () ) ( (temp= actionBlock ) | () ) ) ) RCURLY ) ;
public final Object lazyMatchedRule() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("LazyMatchedRule", true, true) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:267:2: ( ( ( ( 'unique' ) | () ) 'lazy' ( ( 'abstract' ) | () ) ( ( 'refining' ) | () ) 'rule' temp= identifier ( ( 'extends' temp= identifier ) | () ) LCURLY ( (temp= inPattern ( ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY ) | () ) ( (temp= outPattern ) | () ) ( (temp= actionBlock ) | () ) ) ) RCURLY ) )
// ATL_ANTLR3.g:267:4: ( ( ( 'unique' ) | () ) 'lazy' ( ( 'abstract' ) | () ) ( ( 'refining' ) | () ) 'rule' temp= identifier ( ( 'extends' temp= identifier ) | () ) LCURLY ( (temp= inPattern ( ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY ) | () ) ( (temp= outPattern ) | () ) ( (temp= actionBlock ) | () ) ) ) RCURLY )
{
// ATL_ANTLR3.g:267:4: ( ( ( 'unique' ) | () ) 'lazy' ( ( 'abstract' ) | () ) ( ( 'refining' ) | () ) 'rule' temp= identifier ( ( 'extends' temp= identifier ) | () ) LCURLY ( (temp= inPattern ( ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY ) | () ) ( (temp= outPattern ) | () ) ( (temp= actionBlock ) | () ) ) ) RCURLY )
// ATL_ANTLR3.g:267:5: ( ( 'unique' ) | () ) 'lazy' ( ( 'abstract' ) | () ) ( ( 'refining' ) | () ) 'rule' temp= identifier ( ( 'extends' temp= identifier ) | () ) LCURLY ( (temp= inPattern ( ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY ) | () ) ( (temp= outPattern ) | () ) ( (temp= actionBlock ) | () ) ) ) RCURLY
{
// ATL_ANTLR3.g:267:5: ( ( 'unique' ) | () )
int alt25=2;
int LA25_0 = input.LA(1);
if ( (LA25_0==58) ) {
alt25=1;
}
else if ( (LA25_0==59) ) {
alt25=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 25, 0, input);
throw nvae;
}
switch (alt25) {
case 1 :
// ATL_ANTLR3.g:267:6: ( 'unique' )
{
// ATL_ANTLR3.g:267:6: ( 'unique' )
// ATL_ANTLR3.g:267:7: 'unique'
{
match(input,58,FOLLOW_58_in_lazyMatchedRule1473); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.set(ret, "isUnique", java.lang.Boolean.TRUE);
}
}
break;
case 2 :
// ATL_ANTLR3.g:267:69: ()
{
// ATL_ANTLR3.g:267:69: ()
// ATL_ANTLR3.g:267:70:
{
}
if ( state.backtracking==0 ) {
ei.set(ret, "isUnique", java.lang.Boolean.FALSE);
}
}
break;
}
match(input,59,FOLLOW_59_in_lazyMatchedRule1485); if (state.failed) return ret2;
// ATL_ANTLR3.g:267:132: ( ( 'abstract' ) | () )
int alt26=2;
int LA26_0 = input.LA(1);
if ( (LA26_0==54) ) {
alt26=1;
}
else if ( (LA26_0==45||LA26_0==55) ) {
alt26=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 26, 0, input);
throw nvae;
}
switch (alt26) {
case 1 :
// ATL_ANTLR3.g:267:133: ( 'abstract' )
{
// ATL_ANTLR3.g:267:133: ( 'abstract' )
// ATL_ANTLR3.g:267:134: 'abstract'
{
match(input,54,FOLLOW_54_in_lazyMatchedRule1489); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.set(ret, "isAbstract", java.lang.Boolean.TRUE);
}
}
break;
case 2 :
// ATL_ANTLR3.g:267:200: ()
{
// ATL_ANTLR3.g:267:200: ()
// ATL_ANTLR3.g:267:201:
{
}
if ( state.backtracking==0 ) {
ei.set(ret, "isAbstract", java.lang.Boolean.FALSE);
}
}
break;
}
// ATL_ANTLR3.g:267:258: ( ( 'refining' ) | () )
int alt27=2;
int LA27_0 = input.LA(1);
if ( (LA27_0==45) ) {
alt27=1;
}
else if ( (LA27_0==55) ) {
alt27=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 27, 0, input);
throw nvae;
}
switch (alt27) {
case 1 :
// ATL_ANTLR3.g:267:259: ( 'refining' )
{
// ATL_ANTLR3.g:267:259: ( 'refining' )
// ATL_ANTLR3.g:267:260: 'refining'
{
match(input,45,FOLLOW_45_in_lazyMatchedRule1503); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.set(ret, "isRefining", java.lang.Boolean.TRUE);
}
}
break;
case 2 :
// ATL_ANTLR3.g:267:326: ()
{
// ATL_ANTLR3.g:267:326: ()
// ATL_ANTLR3.g:267:327:
{
}
if ( state.backtracking==0 ) {
ei.set(ret, "isRefining", java.lang.Boolean.FALSE);
}
}
break;
}
match(input,55,FOLLOW_55_in_lazyMatchedRule1515); if (state.failed) return ret2;
pushFollow(FOLLOW_identifier_in_lazyMatchedRule1519);
temp=identifier();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "name", temp);
}
// ATL_ANTLR3.g:267:436: ( ( 'extends' temp= identifier ) | () )
int alt28=2;
int LA28_0 = input.LA(1);
if ( (LA28_0==56) ) {
alt28=1;
}
else if ( (LA28_0==LCURLY) ) {
alt28=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 28, 0, input);
throw nvae;
}
switch (alt28) {
case 1 :
// ATL_ANTLR3.g:267:437: ( 'extends' temp= identifier )
{
// ATL_ANTLR3.g:267:437: ( 'extends' temp= identifier )
// ATL_ANTLR3.g:267:438: 'extends' temp= identifier
{
match(input,56,FOLLOW_56_in_lazyMatchedRule1525); if (state.failed) return ret2;
pushFollow(FOLLOW_identifier_in_lazyMatchedRule1529);
temp=identifier();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.setRef(ret, "superRule", "MatchedRule", "name", temp, null, "never", null, true, null);
}
}
if ( state.backtracking==0 ) {
}
}
break;
case 2 :
// ATL_ANTLR3.g:267:562: ()
{
// ATL_ANTLR3.g:267:562: ()
// ATL_ANTLR3.g:267:563:
{
}
if ( state.backtracking==0 ) {
}
}
break;
}
match(input,LCURLY,FOLLOW_LCURLY_in_lazyMatchedRule1543); if (state.failed) return ret2;
// ATL_ANTLR3.g:267:576: ( (temp= inPattern ( ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY ) | () ) ( (temp= outPattern ) | () ) ( (temp= actionBlock ) | () ) ) )
// ATL_ANTLR3.g:267:577: (temp= inPattern ( ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY ) | () ) ( (temp= outPattern ) | () ) ( (temp= actionBlock ) | () ) )
{
// ATL_ANTLR3.g:267:577: (temp= inPattern ( ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY ) | () ) ( (temp= outPattern ) | () ) ( (temp= actionBlock ) | () ) )
// ATL_ANTLR3.g:267:578: temp= inPattern ( ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY ) | () ) ( (temp= outPattern ) | () ) ( (temp= actionBlock ) | () )
{
pushFollow(FOLLOW_inPattern_in_lazyMatchedRule1549);
temp=inPattern();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "inPattern", temp);
}
// ATL_ANTLR3.g:267:627: ( ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY ) | () )
int alt31=2;
int LA31_0 = input.LA(1);
if ( (LA31_0==57) ) {
alt31=1;
}
else if ( (LA31_0==RCURLY||LA31_0==63||LA31_0==68) ) {
alt31=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 31, 0, input);
throw nvae;
}
switch (alt31) {
case 1 :
// ATL_ANTLR3.g:267:628: ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY )
{
// ATL_ANTLR3.g:267:628: ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY )
// ATL_ANTLR3.g:267:629: 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY
{
match(input,57,FOLLOW_57_in_lazyMatchedRule1555); if (state.failed) return ret2;
match(input,LCURLY,FOLLOW_LCURLY_in_lazyMatchedRule1557); if (state.failed) return ret2;
// ATL_ANTLR3.g:267:644: ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) )
// ATL_ANTLR3.g:267:645: ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? )
{
// ATL_ANTLR3.g:267:645: ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? )
// ATL_ANTLR3.g:267:646: ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )?
{
// ATL_ANTLR3.g:267:646: ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )?
int alt30=2;
int LA30_0 = input.LA(1);
if ( (LA30_0==NAME) ) {
alt30=1;
}
switch (alt30) {
case 1 :
// ATL_ANTLR3.g:267:647: (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* )
{
// ATL_ANTLR3.g:267:647: (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* )
// ATL_ANTLR3.g:267:648: temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )*
{
pushFollow(FOLLOW_ruleVariableDeclaration_in_lazyMatchedRule1565);
temp=ruleVariableDeclaration();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "variables", temp);
}
// ATL_ANTLR3.g:267:711: ( (temp= ruleVariableDeclaration ) )*
loop29:
do {
int alt29=2;
int LA29_0 = input.LA(1);
if ( (LA29_0==NAME) ) {
alt29=1;
}
switch (alt29) {
case 1 :
// ATL_ANTLR3.g:267:712: (temp= ruleVariableDeclaration )
{
// ATL_ANTLR3.g:267:712: (temp= ruleVariableDeclaration )
// ATL_ANTLR3.g:267:713: temp= ruleVariableDeclaration
{
pushFollow(FOLLOW_ruleVariableDeclaration_in_lazyMatchedRule1573);
temp=ruleVariableDeclaration();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "variables", temp);
}
}
}
break;
default :
break loop29;
}
} while (true);
}
}
break;
}
}
}
match(input,RCURLY,FOLLOW_RCURLY_in_lazyMatchedRule1585); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
}
}
break;
case 2 :
// ATL_ANTLR3.g:267:796: ()
{
// ATL_ANTLR3.g:267:796: ()
// ATL_ANTLR3.g:267:797:
{
}
if ( state.backtracking==0 ) {
}
}
break;
}
// ATL_ANTLR3.g:267:803: ( (temp= outPattern ) | () )
int alt32=2;
int LA32_0 = input.LA(1);
if ( (LA32_0==63) ) {
alt32=1;
}
else if ( (LA32_0==RCURLY||LA32_0==68) ) {
alt32=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 32, 0, input);
throw nvae;
}
switch (alt32) {
case 1 :
// ATL_ANTLR3.g:267:804: (temp= outPattern )
{
// ATL_ANTLR3.g:267:804: (temp= outPattern )
// ATL_ANTLR3.g:267:805: temp= outPattern
{
pushFollow(FOLLOW_outPattern_in_lazyMatchedRule1601);
temp=outPattern();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "outPattern", temp);
}
}
if ( state.backtracking==0 ) {
}
}
break;
case 2 :
// ATL_ANTLR3.g:267:861: ()
{
// ATL_ANTLR3.g:267:861: ()
// ATL_ANTLR3.g:267:862:
{
}
if ( state.backtracking==0 ) {
}
}
break;
}
// ATL_ANTLR3.g:267:868: ( (temp= actionBlock ) | () )
int alt33=2;
int LA33_0 = input.LA(1);
if ( (LA33_0==68) ) {
alt33=1;
}
else if ( (LA33_0==RCURLY) ) {
alt33=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 33, 0, input);
throw nvae;
}
switch (alt33) {
case 1 :
// ATL_ANTLR3.g:267:869: (temp= actionBlock )
{
// ATL_ANTLR3.g:267:869: (temp= actionBlock )
// ATL_ANTLR3.g:267:870: temp= actionBlock
{
pushFollow(FOLLOW_actionBlock_in_lazyMatchedRule1619);
temp=actionBlock();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "actionBlock", temp);
}
}
if ( state.backtracking==0 ) {
}
}
break;
case 2 :
// ATL_ANTLR3.g:267:928: ()
{
// ATL_ANTLR3.g:267:928: ()
// ATL_ANTLR3.g:267:929:
{
}
if ( state.backtracking==0 ) {
}
}
break;
}
}
}
match(input,RCURLY,FOLLOW_RCURLY_in_lazyMatchedRule1635); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.leaveContext(true);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "lazyMatchedRule"
// $ANTLR start "ruleVariableDeclaration"
// ATL_ANTLR3.g:277:1: ruleVariableDeclaration returns [Object ret2] : (temp= identifier COLON temp= oclType EQ temp= oclExpression SEMI ) ;
public final Object ruleVariableDeclaration() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("RuleVariableDeclaration", false, true) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:278:2: ( (temp= identifier COLON temp= oclType EQ temp= oclExpression SEMI ) )
// ATL_ANTLR3.g:278:4: (temp= identifier COLON temp= oclType EQ temp= oclExpression SEMI )
{
// ATL_ANTLR3.g:278:4: (temp= identifier COLON temp= oclType EQ temp= oclExpression SEMI )
// ATL_ANTLR3.g:278:5: temp= identifier COLON temp= oclType EQ temp= oclExpression SEMI
{
pushFollow(FOLLOW_identifier_in_ruleVariableDeclaration1669);
temp=identifier();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "varName", temp);
}
match(input,COLON,FOLLOW_COLON_in_ruleVariableDeclaration1673); if (state.failed) return ret2;
pushFollow(FOLLOW_oclType_in_ruleVariableDeclaration1677);
temp=oclType();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "type", temp);
}
match(input,EQ,FOLLOW_EQ_in_ruleVariableDeclaration1681); if (state.failed) return ret2;
pushFollow(FOLLOW_oclExpression_in_ruleVariableDeclaration1685);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "initExpression", temp);
}
match(input,SEMI,FOLLOW_SEMI_in_ruleVariableDeclaration1689); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "ruleVariableDeclaration"
// $ANTLR start "calledRule"
// ATL_ANTLR3.g:288:1: calledRule returns [Object ret2] : ( ( ( 'entrypoint' ) | () ) ( ( 'endpoint' ) | () ) 'rule' temp= identifier LPAREN ( (temp= parameter ( ( ( COMA ) temp= parameter ) )* ) )? RPAREN LCURLY ( ( ( ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY ) | () ) ( (temp= outPattern ) | () ) ( (temp= actionBlock ) | () ) ) ) RCURLY ) ;
public final Object calledRule() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("CalledRule", true, true) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:289:2: ( ( ( ( 'entrypoint' ) | () ) ( ( 'endpoint' ) | () ) 'rule' temp= identifier LPAREN ( (temp= parameter ( ( ( COMA ) temp= parameter ) )* ) )? RPAREN LCURLY ( ( ( ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY ) | () ) ( (temp= outPattern ) | () ) ( (temp= actionBlock ) | () ) ) ) RCURLY ) )
// ATL_ANTLR3.g:289:4: ( ( ( 'entrypoint' ) | () ) ( ( 'endpoint' ) | () ) 'rule' temp= identifier LPAREN ( (temp= parameter ( ( ( COMA ) temp= parameter ) )* ) )? RPAREN LCURLY ( ( ( ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY ) | () ) ( (temp= outPattern ) | () ) ( (temp= actionBlock ) | () ) ) ) RCURLY )
{
// ATL_ANTLR3.g:289:4: ( ( ( 'entrypoint' ) | () ) ( ( 'endpoint' ) | () ) 'rule' temp= identifier LPAREN ( (temp= parameter ( ( ( COMA ) temp= parameter ) )* ) )? RPAREN LCURLY ( ( ( ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY ) | () ) ( (temp= outPattern ) | () ) ( (temp= actionBlock ) | () ) ) ) RCURLY )
// ATL_ANTLR3.g:289:5: ( ( 'entrypoint' ) | () ) ( ( 'endpoint' ) | () ) 'rule' temp= identifier LPAREN ( (temp= parameter ( ( ( COMA ) temp= parameter ) )* ) )? RPAREN LCURLY ( ( ( ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY ) | () ) ( (temp= outPattern ) | () ) ( (temp= actionBlock ) | () ) ) ) RCURLY
{
// ATL_ANTLR3.g:289:5: ( ( 'entrypoint' ) | () )
int alt34=2;
int LA34_0 = input.LA(1);
if ( (LA34_0==60) ) {
alt34=1;
}
else if ( (LA34_0==55||LA34_0==61) ) {
alt34=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 34, 0, input);
throw nvae;
}
switch (alt34) {
case 1 :
// ATL_ANTLR3.g:289:6: ( 'entrypoint' )
{
// ATL_ANTLR3.g:289:6: ( 'entrypoint' )
// ATL_ANTLR3.g:289:7: 'entrypoint'
{
match(input,60,FOLLOW_60_in_calledRule1723); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.set(ret, "isEntrypoint", java.lang.Boolean.TRUE);
}
}
break;
case 2 :
// ATL_ANTLR3.g:289:77: ()
{
// ATL_ANTLR3.g:289:77: ()
// ATL_ANTLR3.g:289:78:
{
}
if ( state.backtracking==0 ) {
ei.set(ret, "isEntrypoint", java.lang.Boolean.FALSE);
}
}
break;
}
// ATL_ANTLR3.g:289:137: ( ( 'endpoint' ) | () )
int alt35=2;
int LA35_0 = input.LA(1);
if ( (LA35_0==61) ) {
alt35=1;
}
else if ( (LA35_0==55) ) {
alt35=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 35, 0, input);
throw nvae;
}
switch (alt35) {
case 1 :
// ATL_ANTLR3.g:289:138: ( 'endpoint' )
{
// ATL_ANTLR3.g:289:138: ( 'endpoint' )
// ATL_ANTLR3.g:289:139: 'endpoint'
{
match(input,61,FOLLOW_61_in_calledRule1737); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.set(ret, "isEndpoint", java.lang.Boolean.TRUE);
}
}
break;
case 2 :
// ATL_ANTLR3.g:289:205: ()
{
// ATL_ANTLR3.g:289:205: ()
// ATL_ANTLR3.g:289:206:
{
}
if ( state.backtracking==0 ) {
ei.set(ret, "isEndpoint", java.lang.Boolean.FALSE);
}
}
break;
}
match(input,55,FOLLOW_55_in_calledRule1749); if (state.failed) return ret2;
pushFollow(FOLLOW_identifier_in_calledRule1753);
temp=identifier();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "name", temp);
}
match(input,LPAREN,FOLLOW_LPAREN_in_calledRule1757); if (state.failed) return ret2;
// ATL_ANTLR3.g:289:322: ( (temp= parameter ( ( ( COMA ) temp= parameter ) )* ) )?
int alt37=2;
int LA37_0 = input.LA(1);
if ( (LA37_0==NAME) ) {
alt37=1;
}
switch (alt37) {
case 1 :
// ATL_ANTLR3.g:289:323: (temp= parameter ( ( ( COMA ) temp= parameter ) )* )
{
// ATL_ANTLR3.g:289:323: (temp= parameter ( ( ( COMA ) temp= parameter ) )* )
// ATL_ANTLR3.g:289:324: temp= parameter ( ( ( COMA ) temp= parameter ) )*
{
pushFollow(FOLLOW_parameter_in_calledRule1763);
temp=parameter();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "parameters", temp);
}
// ATL_ANTLR3.g:289:374: ( ( ( COMA ) temp= parameter ) )*
loop36:
do {
int alt36=2;
int LA36_0 = input.LA(1);
if ( (LA36_0==COMA) ) {
alt36=1;
}
switch (alt36) {
case 1 :
// ATL_ANTLR3.g:289:375: ( ( COMA ) temp= parameter )
{
// ATL_ANTLR3.g:289:375: ( ( COMA ) temp= parameter )
// ATL_ANTLR3.g:289:376: ( COMA ) temp= parameter
{
// ATL_ANTLR3.g:289:376: ( COMA )
// ATL_ANTLR3.g:289:377: COMA
{
match(input,COMA,FOLLOW_COMA_in_calledRule1770); if (state.failed) return ret2;
}
pushFollow(FOLLOW_parameter_in_calledRule1775);
temp=parameter();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "parameters", temp);
}
}
}
break;
default :
break loop36;
}
} while (true);
}
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_calledRule1785); if (state.failed) return ret2;
match(input,LCURLY,FOLLOW_LCURLY_in_calledRule1787); if (state.failed) return ret2;
// ATL_ANTLR3.g:289:453: ( ( ( ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY ) | () ) ( (temp= outPattern ) | () ) ( (temp= actionBlock ) | () ) ) )
// ATL_ANTLR3.g:289:454: ( ( ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY ) | () ) ( (temp= outPattern ) | () ) ( (temp= actionBlock ) | () ) )
{
// ATL_ANTLR3.g:289:454: ( ( ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY ) | () ) ( (temp= outPattern ) | () ) ( (temp= actionBlock ) | () ) )
// ATL_ANTLR3.g:289:455: ( ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY ) | () ) ( (temp= outPattern ) | () ) ( (temp= actionBlock ) | () )
{
// ATL_ANTLR3.g:289:455: ( ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY ) | () )
int alt40=2;
int LA40_0 = input.LA(1);
if ( (LA40_0==57) ) {
alt40=1;
}
else if ( (LA40_0==RCURLY||LA40_0==63||LA40_0==68) ) {
alt40=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 40, 0, input);
throw nvae;
}
switch (alt40) {
case 1 :
// ATL_ANTLR3.g:289:456: ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY )
{
// ATL_ANTLR3.g:289:456: ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY )
// ATL_ANTLR3.g:289:457: 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY
{
match(input,57,FOLLOW_57_in_calledRule1793); if (state.failed) return ret2;
match(input,LCURLY,FOLLOW_LCURLY_in_calledRule1795); if (state.failed) return ret2;
// ATL_ANTLR3.g:289:472: ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) )
// ATL_ANTLR3.g:289:473: ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? )
{
// ATL_ANTLR3.g:289:473: ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? )
// ATL_ANTLR3.g:289:474: ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )?
{
// ATL_ANTLR3.g:289:474: ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )?
int alt39=2;
int LA39_0 = input.LA(1);
if ( (LA39_0==NAME) ) {
alt39=1;
}
switch (alt39) {
case 1 :
// ATL_ANTLR3.g:289:475: (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* )
{
// ATL_ANTLR3.g:289:475: (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* )
// ATL_ANTLR3.g:289:476: temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )*
{
pushFollow(FOLLOW_ruleVariableDeclaration_in_calledRule1803);
temp=ruleVariableDeclaration();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "variables", temp);
}
// ATL_ANTLR3.g:289:539: ( (temp= ruleVariableDeclaration ) )*
loop38:
do {
int alt38=2;
int LA38_0 = input.LA(1);
if ( (LA38_0==NAME) ) {
alt38=1;
}
switch (alt38) {
case 1 :
// ATL_ANTLR3.g:289:540: (temp= ruleVariableDeclaration )
{
// ATL_ANTLR3.g:289:540: (temp= ruleVariableDeclaration )
// ATL_ANTLR3.g:289:541: temp= ruleVariableDeclaration
{
pushFollow(FOLLOW_ruleVariableDeclaration_in_calledRule1811);
temp=ruleVariableDeclaration();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "variables", temp);
}
}
}
break;
default :
break loop38;
}
} while (true);
}
}
break;
}
}
}
match(input,RCURLY,FOLLOW_RCURLY_in_calledRule1823); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
}
}
break;
case 2 :
// ATL_ANTLR3.g:289:624: ()
{
// ATL_ANTLR3.g:289:624: ()
// ATL_ANTLR3.g:289:625:
{
}
if ( state.backtracking==0 ) {
}
}
break;
}
// ATL_ANTLR3.g:289:631: ( (temp= outPattern ) | () )
int alt41=2;
int LA41_0 = input.LA(1);
if ( (LA41_0==63) ) {
alt41=1;
}
else if ( (LA41_0==RCURLY||LA41_0==68) ) {
alt41=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 41, 0, input);
throw nvae;
}
switch (alt41) {
case 1 :
// ATL_ANTLR3.g:289:632: (temp= outPattern )
{
// ATL_ANTLR3.g:289:632: (temp= outPattern )
// ATL_ANTLR3.g:289:633: temp= outPattern
{
pushFollow(FOLLOW_outPattern_in_calledRule1839);
temp=outPattern();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "outPattern", temp);
}
}
if ( state.backtracking==0 ) {
}
}
break;
case 2 :
// ATL_ANTLR3.g:289:689: ()
{
// ATL_ANTLR3.g:289:689: ()
// ATL_ANTLR3.g:289:690:
{
}
if ( state.backtracking==0 ) {
}
}
break;
}
// ATL_ANTLR3.g:289:696: ( (temp= actionBlock ) | () )
int alt42=2;
int LA42_0 = input.LA(1);
if ( (LA42_0==68) ) {
alt42=1;
}
else if ( (LA42_0==RCURLY) ) {
alt42=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 42, 0, input);
throw nvae;
}
switch (alt42) {
case 1 :
// ATL_ANTLR3.g:289:697: (temp= actionBlock )
{
// ATL_ANTLR3.g:289:697: (temp= actionBlock )
// ATL_ANTLR3.g:289:698: temp= actionBlock
{
pushFollow(FOLLOW_actionBlock_in_calledRule1857);
temp=actionBlock();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "actionBlock", temp);
}
}
if ( state.backtracking==0 ) {
}
}
break;
case 2 :
// ATL_ANTLR3.g:289:756: ()
{
// ATL_ANTLR3.g:289:756: ()
// ATL_ANTLR3.g:289:757:
{
}
if ( state.backtracking==0 ) {
}
}
break;
}
}
}
match(input,RCURLY,FOLLOW_RCURLY_in_calledRule1873); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.leaveContext(true);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "calledRule"
// $ANTLR start "inPattern"
// ATL_ANTLR3.g:299:1: inPattern returns [Object ret2] : ( 'from' ( ( ( (temp= inPatternElement ( ( ( COMA ) temp= inPatternElement ) )* ) ) ( ( LPAREN ( (temp= oclExpression ) ) RPAREN ) | () ) ) ) ) ;
public final Object inPattern() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("InPattern", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:300:2: ( ( 'from' ( ( ( (temp= inPatternElement ( ( ( COMA ) temp= inPatternElement ) )* ) ) ( ( LPAREN ( (temp= oclExpression ) ) RPAREN ) | () ) ) ) ) )
// ATL_ANTLR3.g:300:4: ( 'from' ( ( ( (temp= inPatternElement ( ( ( COMA ) temp= inPatternElement ) )* ) ) ( ( LPAREN ( (temp= oclExpression ) ) RPAREN ) | () ) ) ) )
{
// ATL_ANTLR3.g:300:4: ( 'from' ( ( ( (temp= inPatternElement ( ( ( COMA ) temp= inPatternElement ) )* ) ) ( ( LPAREN ( (temp= oclExpression ) ) RPAREN ) | () ) ) ) )
// ATL_ANTLR3.g:300:5: 'from' ( ( ( (temp= inPatternElement ( ( ( COMA ) temp= inPatternElement ) )* ) ) ( ( LPAREN ( (temp= oclExpression ) ) RPAREN ) | () ) ) )
{
match(input,46,FOLLOW_46_in_inPattern1905); if (state.failed) return ret2;
// ATL_ANTLR3.g:300:12: ( ( ( (temp= inPatternElement ( ( ( COMA ) temp= inPatternElement ) )* ) ) ( ( LPAREN ( (temp= oclExpression ) ) RPAREN ) | () ) ) )
// ATL_ANTLR3.g:300:13: ( ( (temp= inPatternElement ( ( ( COMA ) temp= inPatternElement ) )* ) ) ( ( LPAREN ( (temp= oclExpression ) ) RPAREN ) | () ) )
{
// ATL_ANTLR3.g:300:13: ( ( (temp= inPatternElement ( ( ( COMA ) temp= inPatternElement ) )* ) ) ( ( LPAREN ( (temp= oclExpression ) ) RPAREN ) | () ) )
// ATL_ANTLR3.g:300:14: ( (temp= inPatternElement ( ( ( COMA ) temp= inPatternElement ) )* ) ) ( ( LPAREN ( (temp= oclExpression ) ) RPAREN ) | () )
{
// ATL_ANTLR3.g:300:14: ( (temp= inPatternElement ( ( ( COMA ) temp= inPatternElement ) )* ) )
// ATL_ANTLR3.g:300:15: (temp= inPatternElement ( ( ( COMA ) temp= inPatternElement ) )* )
{
// ATL_ANTLR3.g:300:15: (temp= inPatternElement ( ( ( COMA ) temp= inPatternElement ) )* )
// ATL_ANTLR3.g:300:16: temp= inPatternElement ( ( ( COMA ) temp= inPatternElement ) )*
{
pushFollow(FOLLOW_inPatternElement_in_inPattern1913);
temp=inPatternElement();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "elements", temp);
}
// ATL_ANTLR3.g:300:71: ( ( ( COMA ) temp= inPatternElement ) )*
loop43:
do {
int alt43=2;
int LA43_0 = input.LA(1);
if ( (LA43_0==COMA) ) {
alt43=1;
}
switch (alt43) {
case 1 :
// ATL_ANTLR3.g:300:72: ( ( COMA ) temp= inPatternElement )
{
// ATL_ANTLR3.g:300:72: ( ( COMA ) temp= inPatternElement )
// ATL_ANTLR3.g:300:73: ( COMA ) temp= inPatternElement
{
// ATL_ANTLR3.g:300:73: ( COMA )
// ATL_ANTLR3.g:300:74: COMA
{
match(input,COMA,FOLLOW_COMA_in_inPattern1920); if (state.failed) return ret2;
}
pushFollow(FOLLOW_inPatternElement_in_inPattern1925);
temp=inPatternElement();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "elements", temp);
}
}
}
break;
default :
break loop43;
}
} while (true);
}
}
// ATL_ANTLR3.g:300:140: ( ( LPAREN ( (temp= oclExpression ) ) RPAREN ) | () )
int alt44=2;
int LA44_0 = input.LA(1);
if ( (LA44_0==LPAREN) ) {
alt44=1;
}
else if ( (LA44_0==RCURLY||LA44_0==57||LA44_0==63||LA44_0==68) ) {
alt44=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 44, 0, input);
throw nvae;
}
switch (alt44) {
case 1 :
// ATL_ANTLR3.g:300:141: ( LPAREN ( (temp= oclExpression ) ) RPAREN )
{
// ATL_ANTLR3.g:300:141: ( LPAREN ( (temp= oclExpression ) ) RPAREN )
// ATL_ANTLR3.g:300:142: LPAREN ( (temp= oclExpression ) ) RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_inPattern1936); if (state.failed) return ret2;
// ATL_ANTLR3.g:300:149: ( (temp= oclExpression ) )
// ATL_ANTLR3.g:300:150: (temp= oclExpression )
{
// ATL_ANTLR3.g:300:150: (temp= oclExpression )
// ATL_ANTLR3.g:300:151: temp= oclExpression
{
pushFollow(FOLLOW_oclExpression_in_inPattern1942);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "filter", temp);
}
}
}
match(input,RPAREN,FOLLOW_RPAREN_in_inPattern1948); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
}
}
break;
case 2 :
// ATL_ANTLR3.g:300:215: ()
{
// ATL_ANTLR3.g:300:215: ()
// ATL_ANTLR3.g:300:216:
{
}
if ( state.backtracking==0 ) {
}
}
break;
}
}
}
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "inPattern"
// $ANTLR start "inPatternElement"
// ATL_ANTLR3.g:310:1: inPatternElement returns [Object ret2] : (ret= simpleInPatternElement ) ;
public final Object inPatternElement() throws RecognitionException {
Object ret2 = null;
Object ret = null;
try {
// ATL_ANTLR3.g:311:2: ( (ret= simpleInPatternElement ) )
// ATL_ANTLR3.g:311:4: (ret= simpleInPatternElement )
{
// ATL_ANTLR3.g:311:4: (ret= simpleInPatternElement )
// ATL_ANTLR3.g:311:5: ret= simpleInPatternElement
{
pushFollow(FOLLOW_simpleInPatternElement_in_inPatternElement1994);
ret=simpleInPatternElement();
state._fsp--;
if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.addToContext(ret, true);
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "inPatternElement"
// $ANTLR start "simpleInPatternElement"
// ATL_ANTLR3.g:319:1: simpleInPatternElement returns [Object ret2] : (temp= identifier COLON temp= oclType ( ( 'in' ( (temp= identifier ( ( ( COMA ) temp= identifier ) )* ) )? ) | () ) ) ;
public final Object simpleInPatternElement() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("SimpleInPatternElement", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:320:2: ( (temp= identifier COLON temp= oclType ( ( 'in' ( (temp= identifier ( ( ( COMA ) temp= identifier ) )* ) )? ) | () ) ) )
// ATL_ANTLR3.g:320:4: (temp= identifier COLON temp= oclType ( ( 'in' ( (temp= identifier ( ( ( COMA ) temp= identifier ) )* ) )? ) | () ) )
{
// ATL_ANTLR3.g:320:4: (temp= identifier COLON temp= oclType ( ( 'in' ( (temp= identifier ( ( ( COMA ) temp= identifier ) )* ) )? ) | () ) )
// ATL_ANTLR3.g:320:5: temp= identifier COLON temp= oclType ( ( 'in' ( (temp= identifier ( ( ( COMA ) temp= identifier ) )* ) )? ) | () )
{
pushFollow(FOLLOW_identifier_in_simpleInPatternElement2028);
temp=identifier();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "varName", temp);
}
match(input,COLON,FOLLOW_COLON_in_simpleInPatternElement2032); if (state.failed) return ret2;
pushFollow(FOLLOW_oclType_in_simpleInPatternElement2036);
temp=oclType();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "type", temp);
}
// ATL_ANTLR3.g:320:101: ( ( 'in' ( (temp= identifier ( ( ( COMA ) temp= identifier ) )* ) )? ) | () )
int alt47=2;
int LA47_0 = input.LA(1);
if ( (LA47_0==62) ) {
alt47=1;
}
else if ( (LA47_0==EOF||LA47_0==COMA||LA47_0==LPAREN||LA47_0==RCURLY||LA47_0==57||LA47_0==63||LA47_0==68) ) {
alt47=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 47, 0, input);
throw nvae;
}
switch (alt47) {
case 1 :
// ATL_ANTLR3.g:320:102: ( 'in' ( (temp= identifier ( ( ( COMA ) temp= identifier ) )* ) )? )
{
// ATL_ANTLR3.g:320:102: ( 'in' ( (temp= identifier ( ( ( COMA ) temp= identifier ) )* ) )? )
// ATL_ANTLR3.g:320:103: 'in' ( (temp= identifier ( ( ( COMA ) temp= identifier ) )* ) )?
{
match(input,62,FOLLOW_62_in_simpleInPatternElement2042); if (state.failed) return ret2;
// ATL_ANTLR3.g:320:108: ( (temp= identifier ( ( ( COMA ) temp= identifier ) )* ) )?
int alt46=2;
int LA46_0 = input.LA(1);
if ( (LA46_0==NAME) ) {
alt46=1;
}
switch (alt46) {
case 1 :
// ATL_ANTLR3.g:320:109: (temp= identifier ( ( ( COMA ) temp= identifier ) )* )
{
// ATL_ANTLR3.g:320:109: (temp= identifier ( ( ( COMA ) temp= identifier ) )* )
// ATL_ANTLR3.g:320:110: temp= identifier ( ( ( COMA ) temp= identifier ) )*
{
pushFollow(FOLLOW_identifier_in_simpleInPatternElement2048);
temp=identifier();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.setRef(ret, "models", "OclModel", "name", temp, "#all", "never", null, false, null);
}
// ATL_ANTLR3.g:320:216: ( ( ( COMA ) temp= identifier ) )*
loop45:
do {
int alt45=2;
int LA45_0 = input.LA(1);
if ( (LA45_0==COMA) ) {
int LA45_1 = input.LA(2);
if ( (LA45_1==NAME) ) {
int LA45_3 = input.LA(3);
if ( (LA45_3==EOF||LA45_3==COMA||LA45_3==LPAREN||LA45_3==RCURLY||LA45_3==57||LA45_3==63||LA45_3==68) ) {
alt45=1;
}
}
}
switch (alt45) {
case 1 :
// ATL_ANTLR3.g:320:217: ( ( COMA ) temp= identifier )
{
// ATL_ANTLR3.g:320:217: ( ( COMA ) temp= identifier )
// ATL_ANTLR3.g:320:218: ( COMA ) temp= identifier
{
// ATL_ANTLR3.g:320:218: ( COMA )
// ATL_ANTLR3.g:320:219: COMA
{
match(input,COMA,FOLLOW_COMA_in_simpleInPatternElement2055); if (state.failed) return ret2;
}
pushFollow(FOLLOW_identifier_in_simpleInPatternElement2060);
temp=identifier();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.setRef(ret, "models", "OclModel", "name", temp, "#all", "never", null, false, null);
}
}
}
break;
default :
break loop45;
}
} while (true);
}
}
break;
}
}
if ( state.backtracking==0 ) {
}
}
break;
case 2 :
// ATL_ANTLR3.g:320:342: ()
{
// ATL_ANTLR3.g:320:342: ()
// ATL_ANTLR3.g:320:343:
{
}
if ( state.backtracking==0 ) {
}
}
break;
}
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "simpleInPatternElement"
// $ANTLR start "outPattern"
// ATL_ANTLR3.g:330:1: outPattern returns [Object ret2] : ( 'to' ( (temp= dropPattern ) | () ) ( ( ( ( ( (temp= outPatternElement ( ( ( COMA ) temp= outPatternElement ) )* ) ) ) | () ) ) ) ) ;
public final Object outPattern() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("OutPattern", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:331:2: ( ( 'to' ( (temp= dropPattern ) | () ) ( ( ( ( ( (temp= outPatternElement ( ( ( COMA ) temp= outPatternElement ) )* ) ) ) | () ) ) ) ) )
// ATL_ANTLR3.g:331:4: ( 'to' ( (temp= dropPattern ) | () ) ( ( ( ( ( (temp= outPatternElement ( ( ( COMA ) temp= outPatternElement ) )* ) ) ) | () ) ) ) )
{
// ATL_ANTLR3.g:331:4: ( 'to' ( (temp= dropPattern ) | () ) ( ( ( ( ( (temp= outPatternElement ( ( ( COMA ) temp= outPatternElement ) )* ) ) ) | () ) ) ) )
// ATL_ANTLR3.g:331:5: 'to' ( (temp= dropPattern ) | () ) ( ( ( ( ( (temp= outPatternElement ( ( ( COMA ) temp= outPatternElement ) )* ) ) ) | () ) ) )
{
match(input,63,FOLLOW_63_in_outPattern2110); if (state.failed) return ret2;
// ATL_ANTLR3.g:331:10: ( (temp= dropPattern ) | () )
int alt48=2;
int LA48_0 = input.LA(1);
if ( (LA48_0==67) ) {
alt48=1;
}
else if ( (LA48_0==EOF||LA48_0==NAME||LA48_0==RCURLY||LA48_0==68) ) {
alt48=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 48, 0, input);
throw nvae;
}
switch (alt48) {
case 1 :
// ATL_ANTLR3.g:331:11: (temp= dropPattern )
{
// ATL_ANTLR3.g:331:11: (temp= dropPattern )
// ATL_ANTLR3.g:331:12: temp= dropPattern
{
pushFollow(FOLLOW_dropPattern_in_outPattern2116);
temp=dropPattern();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "dropPattern", temp);
}
}
if ( state.backtracking==0 ) {
}
}
break;
case 2 :
// ATL_ANTLR3.g:331:70: ()
{
// ATL_ANTLR3.g:331:70: ()
// ATL_ANTLR3.g:331:71:
{
}
if ( state.backtracking==0 ) {
}
}
break;
}
// ATL_ANTLR3.g:331:77: ( ( ( ( ( (temp= outPatternElement ( ( ( COMA ) temp= outPatternElement ) )* ) ) ) | () ) ) )
// ATL_ANTLR3.g:331:78: ( ( ( ( (temp= outPatternElement ( ( ( COMA ) temp= outPatternElement ) )* ) ) ) | () ) )
{
// ATL_ANTLR3.g:331:78: ( ( ( ( (temp= outPatternElement ( ( ( COMA ) temp= outPatternElement ) )* ) ) ) | () ) )
// ATL_ANTLR3.g:331:79: ( ( ( (temp= outPatternElement ( ( ( COMA ) temp= outPatternElement ) )* ) ) ) | () )
{
// ATL_ANTLR3.g:331:79: ( ( ( (temp= outPatternElement ( ( ( COMA ) temp= outPatternElement ) )* ) ) ) | () )
int alt50=2;
int LA50_0 = input.LA(1);
if ( (LA50_0==NAME) ) {
alt50=1;
}
else if ( (LA50_0==EOF||LA50_0==RCURLY||LA50_0==68) ) {
alt50=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 50, 0, input);
throw nvae;
}
switch (alt50) {
case 1 :
// ATL_ANTLR3.g:331:80: ( ( (temp= outPatternElement ( ( ( COMA ) temp= outPatternElement ) )* ) ) )
{
// ATL_ANTLR3.g:331:80: ( ( (temp= outPatternElement ( ( ( COMA ) temp= outPatternElement ) )* ) ) )
// ATL_ANTLR3.g:331:81: ( (temp= outPatternElement ( ( ( COMA ) temp= outPatternElement ) )* ) )
{
// ATL_ANTLR3.g:331:81: ( (temp= outPatternElement ( ( ( COMA ) temp= outPatternElement ) )* ) )
// ATL_ANTLR3.g:331:82: (temp= outPatternElement ( ( ( COMA ) temp= outPatternElement ) )* )
{
// ATL_ANTLR3.g:331:82: (temp= outPatternElement ( ( ( COMA ) temp= outPatternElement ) )* )
// ATL_ANTLR3.g:331:83: temp= outPatternElement ( ( ( COMA ) temp= outPatternElement ) )*
{
pushFollow(FOLLOW_outPatternElement_in_outPattern2138);
temp=outPatternElement();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "elements", temp);
}
// ATL_ANTLR3.g:331:139: ( ( ( COMA ) temp= outPatternElement ) )*
loop49:
do {
int alt49=2;
int LA49_0 = input.LA(1);
if ( (LA49_0==COMA) ) {
alt49=1;
}
switch (alt49) {
case 1 :
// ATL_ANTLR3.g:331:140: ( ( COMA ) temp= outPatternElement )
{
// ATL_ANTLR3.g:331:140: ( ( COMA ) temp= outPatternElement )
// ATL_ANTLR3.g:331:141: ( COMA ) temp= outPatternElement
{
// ATL_ANTLR3.g:331:141: ( COMA )
// ATL_ANTLR3.g:331:142: COMA
{
match(input,COMA,FOLLOW_COMA_in_outPattern2145); if (state.failed) return ret2;
}
pushFollow(FOLLOW_outPatternElement_in_outPattern2150);
temp=outPatternElement();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "elements", temp);
}
}
}
break;
default :
break loop49;
}
} while (true);
}
}
}
if ( state.backtracking==0 ) {
}
}
break;
case 2 :
// ATL_ANTLR3.g:331:214: ()
{
// ATL_ANTLR3.g:331:214: ()
// ATL_ANTLR3.g:331:215:
{
}
if ( state.backtracking==0 ) {
}
}
break;
}
}
}
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "outPattern"
// $ANTLR start "outPatternElement"
// ATL_ANTLR3.g:341:1: outPatternElement returns [Object ret2] : ( (ret= simpleOutPatternElement | ret= forEachOutPatternElement ) ) ;
public final Object outPatternElement() throws RecognitionException {
Object ret2 = null;
Object ret = null;
try {
// ATL_ANTLR3.g:342:2: ( ( (ret= simpleOutPatternElement | ret= forEachOutPatternElement ) ) )
// ATL_ANTLR3.g:342:4: ( (ret= simpleOutPatternElement | ret= forEachOutPatternElement ) )
{
// ATL_ANTLR3.g:342:4: ( (ret= simpleOutPatternElement | ret= forEachOutPatternElement ) )
// ATL_ANTLR3.g:342:5: (ret= simpleOutPatternElement | ret= forEachOutPatternElement )
{
// ATL_ANTLR3.g:342:5: (ret= simpleOutPatternElement | ret= forEachOutPatternElement )
int alt51=2;
int LA51_0 = input.LA(1);
if ( (LA51_0==NAME) ) {
int LA51_1 = input.LA(2);
if ( (LA51_1==COLON) ) {
int LA51_2 = input.LA(3);
if ( (LA51_2==65) ) {
alt51=2;
}
else if ( (LA51_2==NAME||(LA51_2>=80 && LA51_2<=84)||(LA51_2>=86 && LA51_2<=93)) ) {
alt51=1;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 51, 2, input);
throw nvae;
}
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 51, 1, input);
throw nvae;
}
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 51, 0, input);
throw nvae;
}
switch (alt51) {
case 1 :
// ATL_ANTLR3.g:342:6: ret= simpleOutPatternElement
{
pushFollow(FOLLOW_simpleOutPatternElement_in_outPatternElement2204);
ret=simpleOutPatternElement();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 2 :
// ATL_ANTLR3.g:342:35: ret= forEachOutPatternElement
{
pushFollow(FOLLOW_forEachOutPatternElement_in_outPatternElement2209);
ret=forEachOutPatternElement();
state._fsp--;
if (state.failed) return ret2;
}
break;
}
}
if ( state.backtracking==0 ) {
ei.addToContext(ret, true);
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "outPatternElement"
// $ANTLR start "simpleOutPatternElement"
// ATL_ANTLR3.g:350:1: simpleOutPatternElement returns [Object ret2] : (temp= identifier COLON temp= oclType ( ( 'in' temp= identifier ) | () ) ( ( 'mapsTo' temp= identifier ) | () ) ( ( RARROW LPAREN ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RPAREN ) | () ) ( ( LPAREN ( ( ( (temp= binding ( ( ( COMA ) temp= binding ) )* ) )? ) ) RPAREN ) | () ) ) ;
public final Object simpleOutPatternElement() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("SimpleOutPatternElement", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:351:2: ( (temp= identifier COLON temp= oclType ( ( 'in' temp= identifier ) | () ) ( ( 'mapsTo' temp= identifier ) | () ) ( ( RARROW LPAREN ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RPAREN ) | () ) ( ( LPAREN ( ( ( (temp= binding ( ( ( COMA ) temp= binding ) )* ) )? ) ) RPAREN ) | () ) ) )
// ATL_ANTLR3.g:351:4: (temp= identifier COLON temp= oclType ( ( 'in' temp= identifier ) | () ) ( ( 'mapsTo' temp= identifier ) | () ) ( ( RARROW LPAREN ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RPAREN ) | () ) ( ( LPAREN ( ( ( (temp= binding ( ( ( COMA ) temp= binding ) )* ) )? ) ) RPAREN ) | () ) )
{
// ATL_ANTLR3.g:351:4: (temp= identifier COLON temp= oclType ( ( 'in' temp= identifier ) | () ) ( ( 'mapsTo' temp= identifier ) | () ) ( ( RARROW LPAREN ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RPAREN ) | () ) ( ( LPAREN ( ( ( (temp= binding ( ( ( COMA ) temp= binding ) )* ) )? ) ) RPAREN ) | () ) )
// ATL_ANTLR3.g:351:5: temp= identifier COLON temp= oclType ( ( 'in' temp= identifier ) | () ) ( ( 'mapsTo' temp= identifier ) | () ) ( ( RARROW LPAREN ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RPAREN ) | () ) ( ( LPAREN ( ( ( (temp= binding ( ( ( COMA ) temp= binding ) )* ) )? ) ) RPAREN ) | () )
{
pushFollow(FOLLOW_identifier_in_simpleOutPatternElement2244);
temp=identifier();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "varName", temp);
}
match(input,COLON,FOLLOW_COLON_in_simpleOutPatternElement2248); if (state.failed) return ret2;
pushFollow(FOLLOW_oclType_in_simpleOutPatternElement2252);
temp=oclType();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "type", temp);
}
// ATL_ANTLR3.g:351:101: ( ( 'in' temp= identifier ) | () )
int alt52=2;
int LA52_0 = input.LA(1);
if ( (LA52_0==62) ) {
alt52=1;
}
else if ( (LA52_0==EOF||LA52_0==COMA||LA52_0==LPAREN||(LA52_0>=RCURLY && LA52_0<=RARROW)||LA52_0==64||LA52_0==68) ) {
alt52=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 52, 0, input);
throw nvae;
}
switch (alt52) {
case 1 :
// ATL_ANTLR3.g:351:102: ( 'in' temp= identifier )
{
// ATL_ANTLR3.g:351:102: ( 'in' temp= identifier )
// ATL_ANTLR3.g:351:103: 'in' temp= identifier
{
match(input,62,FOLLOW_62_in_simpleOutPatternElement2258); if (state.failed) return ret2;
pushFollow(FOLLOW_identifier_in_simpleOutPatternElement2262);
temp=identifier();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.setRef(ret, "model", "OclModel", "name", temp, "#all", "never", null, false, null);
}
}
if ( state.backtracking==0 ) {
}
}
break;
case 2 :
// ATL_ANTLR3.g:351:218: ()
{
// ATL_ANTLR3.g:351:218: ()
// ATL_ANTLR3.g:351:219:
{
}
if ( state.backtracking==0 ) {
}
}
break;
}
// ATL_ANTLR3.g:351:225: ( ( 'mapsTo' temp= identifier ) | () )
int alt53=2;
int LA53_0 = input.LA(1);
if ( (LA53_0==64) ) {
alt53=1;
}
else if ( (LA53_0==EOF||LA53_0==COMA||LA53_0==LPAREN||(LA53_0>=RCURLY && LA53_0<=RARROW)||LA53_0==68) ) {
alt53=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 53, 0, input);
throw nvae;
}
switch (alt53) {
case 1 :
// ATL_ANTLR3.g:351:226: ( 'mapsTo' temp= identifier )
{
// ATL_ANTLR3.g:351:226: ( 'mapsTo' temp= identifier )
// ATL_ANTLR3.g:351:227: 'mapsTo' temp= identifier
{
match(input,64,FOLLOW_64_in_simpleOutPatternElement2278); if (state.failed) return ret2;
pushFollow(FOLLOW_identifier_in_simpleOutPatternElement2282);
temp=identifier();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.setRef(ret, "sourceElement", "InPatternElement", "varName", temp, null, "never", null, false, null);
}
}
if ( state.backtracking==0 ) {
}
}
break;
case 2 :
// ATL_ANTLR3.g:351:363: ()
{
// ATL_ANTLR3.g:351:363: ()
// ATL_ANTLR3.g:351:364:
{
}
if ( state.backtracking==0 ) {
}
}
break;
}
// ATL_ANTLR3.g:351:370: ( ( RARROW LPAREN ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RPAREN ) | () )
int alt56=2;
int LA56_0 = input.LA(1);
if ( (LA56_0==RARROW) ) {
alt56=1;
}
else if ( (LA56_0==EOF||LA56_0==COMA||LA56_0==LPAREN||LA56_0==RCURLY||LA56_0==68) ) {
alt56=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 56, 0, input);
throw nvae;
}
switch (alt56) {
case 1 :
// ATL_ANTLR3.g:351:371: ( RARROW LPAREN ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RPAREN )
{
// ATL_ANTLR3.g:351:371: ( RARROW LPAREN ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RPAREN )
// ATL_ANTLR3.g:351:372: RARROW LPAREN ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RPAREN
{
match(input,RARROW,FOLLOW_RARROW_in_simpleOutPatternElement2298); if (state.failed) return ret2;
match(input,LPAREN,FOLLOW_LPAREN_in_simpleOutPatternElement2300); if (state.failed) return ret2;
// ATL_ANTLR3.g:351:386: ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )?
int alt55=2;
int LA55_0 = input.LA(1);
if ( ((LA55_0>=NAME && LA55_0<=FLOAT)||LA55_0==LPAREN||LA55_0==SHARP||LA55_0==MINUS||LA55_0==69||(LA55_0>=73 && LA55_0<=75)||(LA55_0>=78 && LA55_0<=94)) ) {
alt55=1;
}
switch (alt55) {
case 1 :
// ATL_ANTLR3.g:351:387: (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* )
{
// ATL_ANTLR3.g:351:387: (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* )
// ATL_ANTLR3.g:351:388: temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )*
{
pushFollow(FOLLOW_oclExpression_in_simpleOutPatternElement2306);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "reverseBindings", temp);
}
// ATL_ANTLR3.g:351:447: ( ( ( COMA ) temp= oclExpression ) )*
loop54:
do {
int alt54=2;
int LA54_0 = input.LA(1);
if ( (LA54_0==COMA) ) {
alt54=1;
}
switch (alt54) {
case 1 :
// ATL_ANTLR3.g:351:448: ( ( COMA ) temp= oclExpression )
{
// ATL_ANTLR3.g:351:448: ( ( COMA ) temp= oclExpression )
// ATL_ANTLR3.g:351:449: ( COMA ) temp= oclExpression
{
// ATL_ANTLR3.g:351:449: ( COMA )
// ATL_ANTLR3.g:351:450: COMA
{
match(input,COMA,FOLLOW_COMA_in_simpleOutPatternElement2313); if (state.failed) return ret2;
}
pushFollow(FOLLOW_oclExpression_in_simpleOutPatternElement2318);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "reverseBindings", temp);
}
}
}
break;
default :
break loop54;
}
} while (true);
}
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_simpleOutPatternElement2328); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
}
}
break;
case 2 :
// ATL_ANTLR3.g:351:533: ()
{
// ATL_ANTLR3.g:351:533: ()
// ATL_ANTLR3.g:351:534:
{
}
if ( state.backtracking==0 ) {
}
}
break;
}
// ATL_ANTLR3.g:351:540: ( ( LPAREN ( ( ( (temp= binding ( ( ( COMA ) temp= binding ) )* ) )? ) ) RPAREN ) | () )
int alt59=2;
int LA59_0 = input.LA(1);
if ( (LA59_0==LPAREN) ) {
alt59=1;
}
else if ( (LA59_0==EOF||LA59_0==COMA||LA59_0==RCURLY||LA59_0==68) ) {
alt59=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 59, 0, input);
throw nvae;
}
switch (alt59) {
case 1 :
// ATL_ANTLR3.g:351:541: ( LPAREN ( ( ( (temp= binding ( ( ( COMA ) temp= binding ) )* ) )? ) ) RPAREN )
{
// ATL_ANTLR3.g:351:541: ( LPAREN ( ( ( (temp= binding ( ( ( COMA ) temp= binding ) )* ) )? ) ) RPAREN )
// ATL_ANTLR3.g:351:542: LPAREN ( ( ( (temp= binding ( ( ( COMA ) temp= binding ) )* ) )? ) ) RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_simpleOutPatternElement2342); if (state.failed) return ret2;
// ATL_ANTLR3.g:351:549: ( ( ( (temp= binding ( ( ( COMA ) temp= binding ) )* ) )? ) )
// ATL_ANTLR3.g:351:550: ( ( (temp= binding ( ( ( COMA ) temp= binding ) )* ) )? )
{
// ATL_ANTLR3.g:351:550: ( ( (temp= binding ( ( ( COMA ) temp= binding ) )* ) )? )
// ATL_ANTLR3.g:351:551: ( (temp= binding ( ( ( COMA ) temp= binding ) )* ) )?
{
// ATL_ANTLR3.g:351:551: ( (temp= binding ( ( ( COMA ) temp= binding ) )* ) )?
int alt58=2;
int LA58_0 = input.LA(1);
if ( (LA58_0==NAME||(LA58_0>=43 && LA58_0<=100)) ) {
alt58=1;
}
switch (alt58) {
case 1 :
// ATL_ANTLR3.g:351:552: (temp= binding ( ( ( COMA ) temp= binding ) )* )
{
// ATL_ANTLR3.g:351:552: (temp= binding ( ( ( COMA ) temp= binding ) )* )
// ATL_ANTLR3.g:351:553: temp= binding ( ( ( COMA ) temp= binding ) )*
{
pushFollow(FOLLOW_binding_in_simpleOutPatternElement2350);
temp=binding();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "bindings", temp);
}
// ATL_ANTLR3.g:351:599: ( ( ( COMA ) temp= binding ) )*
loop57:
do {
int alt57=2;
int LA57_0 = input.LA(1);
if ( (LA57_0==COMA) ) {
alt57=1;
}
switch (alt57) {
case 1 :
// ATL_ANTLR3.g:351:600: ( ( COMA ) temp= binding )
{
// ATL_ANTLR3.g:351:600: ( ( COMA ) temp= binding )
// ATL_ANTLR3.g:351:601: ( COMA ) temp= binding
{
// ATL_ANTLR3.g:351:601: ( COMA )
// ATL_ANTLR3.g:351:602: COMA
{
match(input,COMA,FOLLOW_COMA_in_simpleOutPatternElement2357); if (state.failed) return ret2;
}
pushFollow(FOLLOW_binding_in_simpleOutPatternElement2362);
temp=binding();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "bindings", temp);
}
}
}
break;
default :
break loop57;
}
} while (true);
}
}
break;
}
}
}
match(input,RPAREN,FOLLOW_RPAREN_in_simpleOutPatternElement2374); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
}
}
break;
case 2 :
// ATL_ANTLR3.g:351:674: ()
{
// ATL_ANTLR3.g:351:674: ()
// ATL_ANTLR3.g:351:675:
{
}
if ( state.backtracking==0 ) {
}
}
break;
}
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "simpleOutPatternElement"
// $ANTLR start "forEachOutPatternElement"
// ATL_ANTLR3.g:361:1: forEachOutPatternElement returns [Object ret2] : (temp= identifier COLON 'distinct' temp= oclType 'foreach' LPAREN temp= iterator 'in' temp= oclExpression RPAREN ( ( 'mapsTo' temp= identifier ) | () ) ( ( LPAREN ( ( ( (temp= binding ( ( ( COMA ) temp= binding ) )* ) )? ) ) RPAREN ) | () ) ) ;
public final Object forEachOutPatternElement() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("ForEachOutPatternElement", true, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:362:2: ( (temp= identifier COLON 'distinct' temp= oclType 'foreach' LPAREN temp= iterator 'in' temp= oclExpression RPAREN ( ( 'mapsTo' temp= identifier ) | () ) ( ( LPAREN ( ( ( (temp= binding ( ( ( COMA ) temp= binding ) )* ) )? ) ) RPAREN ) | () ) ) )
// ATL_ANTLR3.g:362:4: (temp= identifier COLON 'distinct' temp= oclType 'foreach' LPAREN temp= iterator 'in' temp= oclExpression RPAREN ( ( 'mapsTo' temp= identifier ) | () ) ( ( LPAREN ( ( ( (temp= binding ( ( ( COMA ) temp= binding ) )* ) )? ) ) RPAREN ) | () ) )
{
// ATL_ANTLR3.g:362:4: (temp= identifier COLON 'distinct' temp= oclType 'foreach' LPAREN temp= iterator 'in' temp= oclExpression RPAREN ( ( 'mapsTo' temp= identifier ) | () ) ( ( LPAREN ( ( ( (temp= binding ( ( ( COMA ) temp= binding ) )* ) )? ) ) RPAREN ) | () ) )
// ATL_ANTLR3.g:362:5: temp= identifier COLON 'distinct' temp= oclType 'foreach' LPAREN temp= iterator 'in' temp= oclExpression RPAREN ( ( 'mapsTo' temp= identifier ) | () ) ( ( LPAREN ( ( ( (temp= binding ( ( ( COMA ) temp= binding ) )* ) )? ) ) RPAREN ) | () )
{
pushFollow(FOLLOW_identifier_in_forEachOutPatternElement2418);
temp=identifier();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "varName", temp);
}
match(input,COLON,FOLLOW_COLON_in_forEachOutPatternElement2422); if (state.failed) return ret2;
match(input,65,FOLLOW_65_in_forEachOutPatternElement2424); if (state.failed) return ret2;
pushFollow(FOLLOW_oclType_in_forEachOutPatternElement2428);
temp=oclType();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "type", temp);
}
match(input,66,FOLLOW_66_in_forEachOutPatternElement2432); if (state.failed) return ret2;
match(input,LPAREN,FOLLOW_LPAREN_in_forEachOutPatternElement2434); if (state.failed) return ret2;
pushFollow(FOLLOW_iterator_in_forEachOutPatternElement2438);
temp=iterator();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "iterator", temp);
}
match(input,62,FOLLOW_62_in_forEachOutPatternElement2442); if (state.failed) return ret2;
pushFollow(FOLLOW_oclExpression_in_forEachOutPatternElement2446);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "collection", temp);
}
match(input,RPAREN,FOLLOW_RPAREN_in_forEachOutPatternElement2450); if (state.failed) return ret2;
// ATL_ANTLR3.g:362:242: ( ( 'mapsTo' temp= identifier ) | () )
int alt60=2;
int LA60_0 = input.LA(1);
if ( (LA60_0==64) ) {
alt60=1;
}
else if ( (LA60_0==EOF||LA60_0==COMA||LA60_0==LPAREN||LA60_0==RCURLY||LA60_0==68) ) {
alt60=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 60, 0, input);
throw nvae;
}
switch (alt60) {
case 1 :
// ATL_ANTLR3.g:362:243: ( 'mapsTo' temp= identifier )
{
// ATL_ANTLR3.g:362:243: ( 'mapsTo' temp= identifier )
// ATL_ANTLR3.g:362:244: 'mapsTo' temp= identifier
{
match(input,64,FOLLOW_64_in_forEachOutPatternElement2454); if (state.failed) return ret2;
pushFollow(FOLLOW_identifier_in_forEachOutPatternElement2458);
temp=identifier();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.setRef(ret, "sourceElement", "InPatternElement", "varName", temp, null, "never", null, false, null);
}
}
if ( state.backtracking==0 ) {
}
}
break;
case 2 :
// ATL_ANTLR3.g:362:380: ()
{
// ATL_ANTLR3.g:362:380: ()
// ATL_ANTLR3.g:362:381:
{
}
if ( state.backtracking==0 ) {
}
}
break;
}
// ATL_ANTLR3.g:362:387: ( ( LPAREN ( ( ( (temp= binding ( ( ( COMA ) temp= binding ) )* ) )? ) ) RPAREN ) | () )
int alt63=2;
int LA63_0 = input.LA(1);
if ( (LA63_0==LPAREN) ) {
alt63=1;
}
else if ( (LA63_0==EOF||LA63_0==COMA||LA63_0==RCURLY||LA63_0==68) ) {
alt63=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 63, 0, input);
throw nvae;
}
switch (alt63) {
case 1 :
// ATL_ANTLR3.g:362:388: ( LPAREN ( ( ( (temp= binding ( ( ( COMA ) temp= binding ) )* ) )? ) ) RPAREN )
{
// ATL_ANTLR3.g:362:388: ( LPAREN ( ( ( (temp= binding ( ( ( COMA ) temp= binding ) )* ) )? ) ) RPAREN )
// ATL_ANTLR3.g:362:389: LPAREN ( ( ( (temp= binding ( ( ( COMA ) temp= binding ) )* ) )? ) ) RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_forEachOutPatternElement2474); if (state.failed) return ret2;
// ATL_ANTLR3.g:362:396: ( ( ( (temp= binding ( ( ( COMA ) temp= binding ) )* ) )? ) )
// ATL_ANTLR3.g:362:397: ( ( (temp= binding ( ( ( COMA ) temp= binding ) )* ) )? )
{
// ATL_ANTLR3.g:362:397: ( ( (temp= binding ( ( ( COMA ) temp= binding ) )* ) )? )
// ATL_ANTLR3.g:362:398: ( (temp= binding ( ( ( COMA ) temp= binding ) )* ) )?
{
// ATL_ANTLR3.g:362:398: ( (temp= binding ( ( ( COMA ) temp= binding ) )* ) )?
int alt62=2;
int LA62_0 = input.LA(1);
if ( (LA62_0==NAME||(LA62_0>=43 && LA62_0<=100)) ) {
alt62=1;
}
switch (alt62) {
case 1 :
// ATL_ANTLR3.g:362:399: (temp= binding ( ( ( COMA ) temp= binding ) )* )
{
// ATL_ANTLR3.g:362:399: (temp= binding ( ( ( COMA ) temp= binding ) )* )
// ATL_ANTLR3.g:362:400: temp= binding ( ( ( COMA ) temp= binding ) )*
{
pushFollow(FOLLOW_binding_in_forEachOutPatternElement2482);
temp=binding();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "bindings", temp);
}
// ATL_ANTLR3.g:362:446: ( ( ( COMA ) temp= binding ) )*
loop61:
do {
int alt61=2;
int LA61_0 = input.LA(1);
if ( (LA61_0==COMA) ) {
alt61=1;
}
switch (alt61) {
case 1 :
// ATL_ANTLR3.g:362:447: ( ( COMA ) temp= binding )
{
// ATL_ANTLR3.g:362:447: ( ( COMA ) temp= binding )
// ATL_ANTLR3.g:362:448: ( COMA ) temp= binding
{
// ATL_ANTLR3.g:362:448: ( COMA )
// ATL_ANTLR3.g:362:449: COMA
{
match(input,COMA,FOLLOW_COMA_in_forEachOutPatternElement2489); if (state.failed) return ret2;
}
pushFollow(FOLLOW_binding_in_forEachOutPatternElement2494);
temp=binding();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "bindings", temp);
}
}
}
break;
default :
break loop61;
}
} while (true);
}
}
break;
}
}
}
match(input,RPAREN,FOLLOW_RPAREN_in_forEachOutPatternElement2506); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
}
}
break;
case 2 :
// ATL_ANTLR3.g:362:521: ()
{
// ATL_ANTLR3.g:362:521: ()
// ATL_ANTLR3.g:362:522:
{
}
if ( state.backtracking==0 ) {
}
}
break;
}
}
if ( state.backtracking==0 ) {
ei.leaveContext(true);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "forEachOutPatternElement"
// $ANTLR start "binding"
// ATL_ANTLR3.g:372:1: binding returns [Object ret2] : (temp= identifierOrKeyword ( ( ASSIGNARROW ) | ( LARROW ) ) temp= oclExpression ) ;
public final Object binding() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("Binding", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:373:2: ( (temp= identifierOrKeyword ( ( ASSIGNARROW ) | ( LARROW ) ) temp= oclExpression ) )
// ATL_ANTLR3.g:373:4: (temp= identifierOrKeyword ( ( ASSIGNARROW ) | ( LARROW ) ) temp= oclExpression )
{
// ATL_ANTLR3.g:373:4: (temp= identifierOrKeyword ( ( ASSIGNARROW ) | ( LARROW ) ) temp= oclExpression )
// ATL_ANTLR3.g:373:5: temp= identifierOrKeyword ( ( ASSIGNARROW ) | ( LARROW ) ) temp= oclExpression
{
pushFollow(FOLLOW_identifierOrKeyword_in_binding2550);
temp=identifierOrKeyword();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "propertyName", temp);
}
// ATL_ANTLR3.g:373:67: ( ( ASSIGNARROW ) | ( LARROW ) )
int alt64=2;
int LA64_0 = input.LA(1);
if ( (LA64_0==ASSIGNARROW) ) {
alt64=1;
}
else if ( (LA64_0==LARROW) ) {
alt64=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 64, 0, input);
throw nvae;
}
switch (alt64) {
case 1 :
// ATL_ANTLR3.g:373:68: ( ASSIGNARROW )
{
// ATL_ANTLR3.g:373:68: ( ASSIGNARROW )
// ATL_ANTLR3.g:373:69: ASSIGNARROW
{
match(input,ASSIGNARROW,FOLLOW_ASSIGNARROW_in_binding2556); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.set(ret, "isAssignment", java.lang.Boolean.TRUE);
}
}
break;
case 2 :
// ATL_ANTLR3.g:373:138: ( LARROW )
{
// ATL_ANTLR3.g:373:138: ( LARROW )
// ATL_ANTLR3.g:373:139: LARROW
{
match(input,LARROW,FOLLOW_LARROW_in_binding2563); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.set(ret, "isAssignment", java.lang.Boolean.FALSE);
}
}
break;
}
pushFollow(FOLLOW_oclExpression_in_binding2571);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "value", temp);
}
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "binding"
// $ANTLR start "dropPattern"
// ATL_ANTLR3.g:383:1: dropPattern returns [Object ret2] : ( 'drop' ) ;
public final Object dropPattern() throws RecognitionException {
Object ret2 = null;
Object ret=(state.backtracking==0) ? ei.create("DropPattern", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:384:2: ( ( 'drop' ) )
// ATL_ANTLR3.g:384:4: ( 'drop' )
{
// ATL_ANTLR3.g:384:4: ( 'drop' )
// ATL_ANTLR3.g:384:5: 'drop'
{
match(input,67,FOLLOW_67_in_dropPattern2605); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "dropPattern"
// $ANTLR start "actionBlock"
// ATL_ANTLR3.g:394:1: actionBlock returns [Object ret2] : ( 'do' LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY ) ;
public final Object actionBlock() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("ActionBlock", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:395:2: ( ( 'do' LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY ) )
// ATL_ANTLR3.g:395:4: ( 'do' LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY )
{
// ATL_ANTLR3.g:395:4: ( 'do' LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY )
// ATL_ANTLR3.g:395:5: 'do' LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY
{
match(input,68,FOLLOW_68_in_actionBlock2637); if (state.failed) return ret2;
match(input,LCURLY,FOLLOW_LCURLY_in_actionBlock2639); if (state.failed) return ret2;
// ATL_ANTLR3.g:395:17: ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) )
// ATL_ANTLR3.g:395:18: ( ( (temp= statement ( (temp= statement ) )* ) )? )
{
// ATL_ANTLR3.g:395:18: ( ( (temp= statement ( (temp= statement ) )* ) )? )
// ATL_ANTLR3.g:395:19: ( (temp= statement ( (temp= statement ) )* ) )?
{
// ATL_ANTLR3.g:395:19: ( (temp= statement ( (temp= statement ) )* ) )?
int alt66=2;
int LA66_0 = input.LA(1);
if ( ((LA66_0>=NAME && LA66_0<=FLOAT)||LA66_0==LPAREN||LA66_0==SHARP||LA66_0==MINUS||LA66_0==69||LA66_0==71||(LA66_0>=73 && LA66_0<=75)||(LA66_0>=78 && LA66_0<=94)) ) {
alt66=1;
}
switch (alt66) {
case 1 :
// ATL_ANTLR3.g:395:20: (temp= statement ( (temp= statement ) )* )
{
// ATL_ANTLR3.g:395:20: (temp= statement ( (temp= statement ) )* )
// ATL_ANTLR3.g:395:21: temp= statement ( (temp= statement ) )*
{
pushFollow(FOLLOW_statement_in_actionBlock2647);
temp=statement();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "statements", temp);
}
// ATL_ANTLR3.g:395:71: ( (temp= statement ) )*
loop65:
do {
int alt65=2;
int LA65_0 = input.LA(1);
if ( ((LA65_0>=NAME && LA65_0<=FLOAT)||LA65_0==LPAREN||LA65_0==SHARP||LA65_0==MINUS||LA65_0==69||LA65_0==71||(LA65_0>=73 && LA65_0<=75)||(LA65_0>=78 && LA65_0<=94)) ) {
alt65=1;
}
switch (alt65) {
case 1 :
// ATL_ANTLR3.g:395:72: (temp= statement )
{
// ATL_ANTLR3.g:395:72: (temp= statement )
// ATL_ANTLR3.g:395:73: temp= statement
{
pushFollow(FOLLOW_statement_in_actionBlock2655);
temp=statement();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "statements", temp);
}
}
}
break;
default :
break loop65;
}
} while (true);
}
}
break;
}
}
}
match(input,RCURLY,FOLLOW_RCURLY_in_actionBlock2667); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "actionBlock"
// $ANTLR start "statement"
// ATL_ANTLR3.g:405:1: statement returns [Object ret2] : ( (ret= ifStat | ret= expressionStat | ret= bindingStat | ret= forStat ) ) ;
public final Object statement() throws RecognitionException {
Object ret2 = null;
Object ret = null;
try {
// ATL_ANTLR3.g:406:2: ( ( (ret= ifStat | ret= expressionStat | ret= bindingStat | ret= forStat ) ) )
// ATL_ANTLR3.g:406:4: ( (ret= ifStat | ret= expressionStat | ret= bindingStat | ret= forStat ) )
{
// ATL_ANTLR3.g:406:4: ( (ret= ifStat | ret= expressionStat | ret= bindingStat | ret= forStat ) )
// ATL_ANTLR3.g:406:5: (ret= ifStat | ret= expressionStat | ret= bindingStat | ret= forStat )
{
// ATL_ANTLR3.g:406:5: (ret= ifStat | ret= expressionStat | ret= bindingStat | ret= forStat )
int alt67=4;
alt67 = dfa67.predict(input);
switch (alt67) {
case 1 :
// ATL_ANTLR3.g:406:6: ret= ifStat
{
pushFollow(FOLLOW_ifStat_in_statement2702);
ret=ifStat();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 2 :
// ATL_ANTLR3.g:406:18: ret= expressionStat
{
pushFollow(FOLLOW_expressionStat_in_statement2707);
ret=expressionStat();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 3 :
// ATL_ANTLR3.g:406:38: ret= bindingStat
{
pushFollow(FOLLOW_bindingStat_in_statement2712);
ret=bindingStat();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 4 :
// ATL_ANTLR3.g:406:55: ret= forStat
{
pushFollow(FOLLOW_forStat_in_statement2717);
ret=forStat();
state._fsp--;
if (state.failed) return ret2;
}
break;
}
}
if ( state.backtracking==0 ) {
ei.addToContext(ret, false);
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "statement"
// $ANTLR start "bindingStat"
// ATL_ANTLR3.g:414:1: bindingStat returns [Object ret2] : (temp= oclExpression ( ( ASSIGNARROW ) | ( LARROW ) ) temp= oclExpression SEMI ) ;
public final Object bindingStat() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("BindingStat", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:415:2: ( (temp= oclExpression ( ( ASSIGNARROW ) | ( LARROW ) ) temp= oclExpression SEMI ) )
// ATL_ANTLR3.g:415:4: (temp= oclExpression ( ( ASSIGNARROW ) | ( LARROW ) ) temp= oclExpression SEMI )
{
// ATL_ANTLR3.g:415:4: (temp= oclExpression ( ( ASSIGNARROW ) | ( LARROW ) ) temp= oclExpression SEMI )
// ATL_ANTLR3.g:415:5: temp= oclExpression ( ( ASSIGNARROW ) | ( LARROW ) ) temp= oclExpression SEMI
{
pushFollow(FOLLOW_oclExpression_in_bindingStat2752);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "source", temp);
}
// ATL_ANTLR3.g:415:55: ( ( ASSIGNARROW ) | ( LARROW ) )
int alt68=2;
int LA68_0 = input.LA(1);
if ( (LA68_0==ASSIGNARROW) ) {
alt68=1;
}
else if ( (LA68_0==LARROW) ) {
alt68=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 68, 0, input);
throw nvae;
}
switch (alt68) {
case 1 :
// ATL_ANTLR3.g:415:56: ( ASSIGNARROW )
{
// ATL_ANTLR3.g:415:56: ( ASSIGNARROW )
// ATL_ANTLR3.g:415:57: ASSIGNARROW
{
match(input,ASSIGNARROW,FOLLOW_ASSIGNARROW_in_bindingStat2758); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.set(ret, "isAssignment", java.lang.Boolean.TRUE);
}
}
break;
case 2 :
// ATL_ANTLR3.g:415:126: ( LARROW )
{
// ATL_ANTLR3.g:415:126: ( LARROW )
// ATL_ANTLR3.g:415:127: LARROW
{
match(input,LARROW,FOLLOW_LARROW_in_bindingStat2765); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.set(ret, "isAssignment", java.lang.Boolean.FALSE);
}
}
break;
}
pushFollow(FOLLOW_oclExpression_in_bindingStat2773);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "value", temp);
}
match(input,SEMI,FOLLOW_SEMI_in_bindingStat2777); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "bindingStat"
// $ANTLR start "expressionStat"
// ATL_ANTLR3.g:425:1: expressionStat returns [Object ret2] : (temp= oclExpression SEMI ) ;
public final Object expressionStat() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("ExpressionStat", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:426:2: ( (temp= oclExpression SEMI ) )
// ATL_ANTLR3.g:426:4: (temp= oclExpression SEMI )
{
// ATL_ANTLR3.g:426:4: (temp= oclExpression SEMI )
// ATL_ANTLR3.g:426:5: temp= oclExpression SEMI
{
pushFollow(FOLLOW_oclExpression_in_expressionStat2811);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "expression", temp);
}
match(input,SEMI,FOLLOW_SEMI_in_expressionStat2815); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "expressionStat"
// $ANTLR start "ifStat"
// ATL_ANTLR3.g:436:1: ifStat returns [Object ret2] : ( 'if' LPAREN temp= oclExpression RPAREN ( ( ( (temp= statement ) ) ) | ( LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY ) ) ( ( 'else' ( ( ( (temp= statement ) ) ) | ( LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY ) ) ) | () ) ) ;
public final Object ifStat() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("IfStat", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:437:2: ( ( 'if' LPAREN temp= oclExpression RPAREN ( ( ( (temp= statement ) ) ) | ( LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY ) ) ( ( 'else' ( ( ( (temp= statement ) ) ) | ( LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY ) ) ) | () ) ) )
// ATL_ANTLR3.g:437:4: ( 'if' LPAREN temp= oclExpression RPAREN ( ( ( (temp= statement ) ) ) | ( LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY ) ) ( ( 'else' ( ( ( (temp= statement ) ) ) | ( LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY ) ) ) | () ) )
{
// ATL_ANTLR3.g:437:4: ( 'if' LPAREN temp= oclExpression RPAREN ( ( ( (temp= statement ) ) ) | ( LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY ) ) ( ( 'else' ( ( ( (temp= statement ) ) ) | ( LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY ) ) ) | () ) )
// ATL_ANTLR3.g:437:5: 'if' LPAREN temp= oclExpression RPAREN ( ( ( (temp= statement ) ) ) | ( LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY ) ) ( ( 'else' ( ( ( (temp= statement ) ) ) | ( LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY ) ) ) | () )
{
match(input,69,FOLLOW_69_in_ifStat2847); if (state.failed) return ret2;
match(input,LPAREN,FOLLOW_LPAREN_in_ifStat2849); if (state.failed) return ret2;
pushFollow(FOLLOW_oclExpression_in_ifStat2853);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "condition", temp);
}
match(input,RPAREN,FOLLOW_RPAREN_in_ifStat2857); if (state.failed) return ret2;
// ATL_ANTLR3.g:437:77: ( ( ( (temp= statement ) ) ) | ( LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY ) )
int alt71=2;
int LA71_0 = input.LA(1);
if ( ((LA71_0>=NAME && LA71_0<=FLOAT)||LA71_0==LPAREN||LA71_0==SHARP||LA71_0==MINUS||LA71_0==69||LA71_0==71||(LA71_0>=73 && LA71_0<=75)||(LA71_0>=78 && LA71_0<=94)) ) {
alt71=1;
}
else if ( (LA71_0==LCURLY) ) {
alt71=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 71, 0, input);
throw nvae;
}
switch (alt71) {
case 1 :
// ATL_ANTLR3.g:437:78: ( ( (temp= statement ) ) )
{
// ATL_ANTLR3.g:437:78: ( ( (temp= statement ) ) )
// ATL_ANTLR3.g:437:79: ( (temp= statement ) )
{
// ATL_ANTLR3.g:437:79: ( (temp= statement ) )
// ATL_ANTLR3.g:437:80: (temp= statement )
{
// ATL_ANTLR3.g:437:80: (temp= statement )
// ATL_ANTLR3.g:437:81: temp= statement
{
pushFollow(FOLLOW_statement_in_ifStat2865);
temp=statement();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "thenStatements", temp);
}
}
}
}
if ( state.backtracking==0 ) {
}
}
break;
case 2 :
// ATL_ANTLR3.g:437:142: ( LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY )
{
// ATL_ANTLR3.g:437:142: ( LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY )
// ATL_ANTLR3.g:437:143: LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY
{
match(input,LCURLY,FOLLOW_LCURLY_in_ifStat2876); if (state.failed) return ret2;
// ATL_ANTLR3.g:437:150: ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) )
// ATL_ANTLR3.g:437:151: ( ( (temp= statement ( (temp= statement ) )* ) )? )
{
// ATL_ANTLR3.g:437:151: ( ( (temp= statement ( (temp= statement ) )* ) )? )
// ATL_ANTLR3.g:437:152: ( (temp= statement ( (temp= statement ) )* ) )?
{
// ATL_ANTLR3.g:437:152: ( (temp= statement ( (temp= statement ) )* ) )?
int alt70=2;
int LA70_0 = input.LA(1);
if ( ((LA70_0>=NAME && LA70_0<=FLOAT)||LA70_0==LPAREN||LA70_0==SHARP||LA70_0==MINUS||LA70_0==69||LA70_0==71||(LA70_0>=73 && LA70_0<=75)||(LA70_0>=78 && LA70_0<=94)) ) {
alt70=1;
}
switch (alt70) {
case 1 :
// ATL_ANTLR3.g:437:153: (temp= statement ( (temp= statement ) )* )
{
// ATL_ANTLR3.g:437:153: (temp= statement ( (temp= statement ) )* )
// ATL_ANTLR3.g:437:154: temp= statement ( (temp= statement ) )*
{
pushFollow(FOLLOW_statement_in_ifStat2884);
temp=statement();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "thenStatements", temp);
}
// ATL_ANTLR3.g:437:208: ( (temp= statement ) )*
loop69:
do {
int alt69=2;
int LA69_0 = input.LA(1);
if ( ((LA69_0>=NAME && LA69_0<=FLOAT)||LA69_0==LPAREN||LA69_0==SHARP||LA69_0==MINUS||LA69_0==69||LA69_0==71||(LA69_0>=73 && LA69_0<=75)||(LA69_0>=78 && LA69_0<=94)) ) {
alt69=1;
}
switch (alt69) {
case 1 :
// ATL_ANTLR3.g:437:209: (temp= statement )
{
// ATL_ANTLR3.g:437:209: (temp= statement )
// ATL_ANTLR3.g:437:210: temp= statement
{
pushFollow(FOLLOW_statement_in_ifStat2892);
temp=statement();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "thenStatements", temp);
}
}
}
break;
default :
break loop69;
}
} while (true);
}
}
break;
}
}
}
match(input,RCURLY,FOLLOW_RCURLY_in_ifStat2904); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
}
}
break;
}
// ATL_ANTLR3.g:437:284: ( ( 'else' ( ( ( (temp= statement ) ) ) | ( LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY ) ) ) | () )
int alt75=2;
int LA75_0 = input.LA(1);
if ( (LA75_0==70) ) {
int LA75_1 = input.LA(2);
if ( (synpred135_ATL_ANTLR3()) ) {
alt75=1;
}
else if ( (true) ) {
alt75=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 75, 1, input);
throw nvae;
}
}
else if ( (LA75_0==EOF||(LA75_0>=NAME && LA75_0<=FLOAT)||LA75_0==LPAREN||LA75_0==RCURLY||LA75_0==SHARP||LA75_0==MINUS||LA75_0==69||LA75_0==71||(LA75_0>=73 && LA75_0<=75)||(LA75_0>=78 && LA75_0<=94)) ) {
alt75=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 75, 0, input);
throw nvae;
}
switch (alt75) {
case 1 :
// ATL_ANTLR3.g:437:285: ( 'else' ( ( ( (temp= statement ) ) ) | ( LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY ) ) )
{
// ATL_ANTLR3.g:437:285: ( 'else' ( ( ( (temp= statement ) ) ) | ( LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY ) ) )
// ATL_ANTLR3.g:437:286: 'else' ( ( ( (temp= statement ) ) ) | ( LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY ) )
{
match(input,70,FOLLOW_70_in_ifStat2912); if (state.failed) return ret2;
// ATL_ANTLR3.g:437:293: ( ( ( (temp= statement ) ) ) | ( LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY ) )
int alt74=2;
int LA74_0 = input.LA(1);
if ( ((LA74_0>=NAME && LA74_0<=FLOAT)||LA74_0==LPAREN||LA74_0==SHARP||LA74_0==MINUS||LA74_0==69||LA74_0==71||(LA74_0>=73 && LA74_0<=75)||(LA74_0>=78 && LA74_0<=94)) ) {
alt74=1;
}
else if ( (LA74_0==LCURLY) ) {
alt74=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 74, 0, input);
throw nvae;
}
switch (alt74) {
case 1 :
// ATL_ANTLR3.g:437:294: ( ( (temp= statement ) ) )
{
// ATL_ANTLR3.g:437:294: ( ( (temp= statement ) ) )
// ATL_ANTLR3.g:437:295: ( (temp= statement ) )
{
// ATL_ANTLR3.g:437:295: ( (temp= statement ) )
// ATL_ANTLR3.g:437:296: (temp= statement )
{
// ATL_ANTLR3.g:437:296: (temp= statement )
// ATL_ANTLR3.g:437:297: temp= statement
{
pushFollow(FOLLOW_statement_in_ifStat2920);
temp=statement();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "elseStatements", temp);
}
}
}
}
if ( state.backtracking==0 ) {
}
}
break;
case 2 :
// ATL_ANTLR3.g:437:358: ( LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY )
{
// ATL_ANTLR3.g:437:358: ( LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY )
// ATL_ANTLR3.g:437:359: LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY
{
match(input,LCURLY,FOLLOW_LCURLY_in_ifStat2931); if (state.failed) return ret2;
// ATL_ANTLR3.g:437:366: ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) )
// ATL_ANTLR3.g:437:367: ( ( (temp= statement ( (temp= statement ) )* ) )? )
{
// ATL_ANTLR3.g:437:367: ( ( (temp= statement ( (temp= statement ) )* ) )? )
// ATL_ANTLR3.g:437:368: ( (temp= statement ( (temp= statement ) )* ) )?
{
// ATL_ANTLR3.g:437:368: ( (temp= statement ( (temp= statement ) )* ) )?
int alt73=2;
int LA73_0 = input.LA(1);
if ( ((LA73_0>=NAME && LA73_0<=FLOAT)||LA73_0==LPAREN||LA73_0==SHARP||LA73_0==MINUS||LA73_0==69||LA73_0==71||(LA73_0>=73 && LA73_0<=75)||(LA73_0>=78 && LA73_0<=94)) ) {
alt73=1;
}
switch (alt73) {
case 1 :
// ATL_ANTLR3.g:437:369: (temp= statement ( (temp= statement ) )* )
{
// ATL_ANTLR3.g:437:369: (temp= statement ( (temp= statement ) )* )
// ATL_ANTLR3.g:437:370: temp= statement ( (temp= statement ) )*
{
pushFollow(FOLLOW_statement_in_ifStat2939);
temp=statement();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "elseStatements", temp);
}
// ATL_ANTLR3.g:437:424: ( (temp= statement ) )*
loop72:
do {
int alt72=2;
int LA72_0 = input.LA(1);
if ( ((LA72_0>=NAME && LA72_0<=FLOAT)||LA72_0==LPAREN||LA72_0==SHARP||LA72_0==MINUS||LA72_0==69||LA72_0==71||(LA72_0>=73 && LA72_0<=75)||(LA72_0>=78 && LA72_0<=94)) ) {
alt72=1;
}
switch (alt72) {
case 1 :
// ATL_ANTLR3.g:437:425: (temp= statement )
{
// ATL_ANTLR3.g:437:425: (temp= statement )
// ATL_ANTLR3.g:437:426: temp= statement
{
pushFollow(FOLLOW_statement_in_ifStat2947);
temp=statement();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "elseStatements", temp);
}
}
}
break;
default :
break loop72;
}
} while (true);
}
}
break;
}
}
}
match(input,RCURLY,FOLLOW_RCURLY_in_ifStat2959); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
}
}
break;
}
}
if ( state.backtracking==0 ) {
}
}
break;
case 2 :
// ATL_ANTLR3.g:437:505: ()
{
// ATL_ANTLR3.g:437:505: ()
// ATL_ANTLR3.g:437:506:
{
}
if ( state.backtracking==0 ) {
}
}
break;
}
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "ifStat"
// $ANTLR start "forStat"
// ATL_ANTLR3.g:447:1: forStat returns [Object ret2] : ( 'for' LPAREN temp= iterator 'in' temp= oclExpression RPAREN LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY ) ;
public final Object forStat() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("ForStat", true, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:448:2: ( ( 'for' LPAREN temp= iterator 'in' temp= oclExpression RPAREN LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY ) )
// ATL_ANTLR3.g:448:4: ( 'for' LPAREN temp= iterator 'in' temp= oclExpression RPAREN LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY )
{
// ATL_ANTLR3.g:448:4: ( 'for' LPAREN temp= iterator 'in' temp= oclExpression RPAREN LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY )
// ATL_ANTLR3.g:448:5: 'for' LPAREN temp= iterator 'in' temp= oclExpression RPAREN LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY
{
match(input,71,FOLLOW_71_in_forStat3005); if (state.failed) return ret2;
match(input,LPAREN,FOLLOW_LPAREN_in_forStat3007); if (state.failed) return ret2;
pushFollow(FOLLOW_iterator_in_forStat3011);
temp=iterator();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "iterator", temp);
}
match(input,62,FOLLOW_62_in_forStat3015); if (state.failed) return ret2;
pushFollow(FOLLOW_oclExpression_in_forStat3019);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "collection", temp);
}
match(input,RPAREN,FOLLOW_RPAREN_in_forStat3023); if (state.failed) return ret2;
match(input,LCURLY,FOLLOW_LCURLY_in_forStat3025); if (state.failed) return ret2;
// ATL_ANTLR3.g:448:138: ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) )
// ATL_ANTLR3.g:448:139: ( ( (temp= statement ( (temp= statement ) )* ) )? )
{
// ATL_ANTLR3.g:448:139: ( ( (temp= statement ( (temp= statement ) )* ) )? )
// ATL_ANTLR3.g:448:140: ( (temp= statement ( (temp= statement ) )* ) )?
{
// ATL_ANTLR3.g:448:140: ( (temp= statement ( (temp= statement ) )* ) )?
int alt77=2;
int LA77_0 = input.LA(1);
if ( ((LA77_0>=NAME && LA77_0<=FLOAT)||LA77_0==LPAREN||LA77_0==SHARP||LA77_0==MINUS||LA77_0==69||LA77_0==71||(LA77_0>=73 && LA77_0<=75)||(LA77_0>=78 && LA77_0<=94)) ) {
alt77=1;
}
switch (alt77) {
case 1 :
// ATL_ANTLR3.g:448:141: (temp= statement ( (temp= statement ) )* )
{
// ATL_ANTLR3.g:448:141: (temp= statement ( (temp= statement ) )* )
// ATL_ANTLR3.g:448:142: temp= statement ( (temp= statement ) )*
{
pushFollow(FOLLOW_statement_in_forStat3033);
temp=statement();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "statements", temp);
}
// ATL_ANTLR3.g:448:192: ( (temp= statement ) )*
loop76:
do {
int alt76=2;
int LA76_0 = input.LA(1);
if ( ((LA76_0>=NAME && LA76_0<=FLOAT)||LA76_0==LPAREN||LA76_0==SHARP||LA76_0==MINUS||LA76_0==69||LA76_0==71||(LA76_0>=73 && LA76_0<=75)||(LA76_0>=78 && LA76_0<=94)) ) {
alt76=1;
}
switch (alt76) {
case 1 :
// ATL_ANTLR3.g:448:193: (temp= statement )
{
// ATL_ANTLR3.g:448:193: (temp= statement )
// ATL_ANTLR3.g:448:194: temp= statement
{
pushFollow(FOLLOW_statement_in_forStat3041);
temp=statement();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "statements", temp);
}
}
}
break;
default :
break loop76;
}
} while (true);
}
}
break;
}
}
}
match(input,RCURLY,FOLLOW_RCURLY_in_forStat3053); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.leaveContext(true);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "forStat"
// $ANTLR start "oclModel"
// ATL_ANTLR3.g:458:1: oclModel returns [Object ret2] : (temp= identifier COLON temp= identifier ) ;
public final Object oclModel() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("OclModel", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:459:2: ( (temp= identifier COLON temp= identifier ) )
// ATL_ANTLR3.g:459:4: (temp= identifier COLON temp= identifier )
{
// ATL_ANTLR3.g:459:4: (temp= identifier COLON temp= identifier )
// ATL_ANTLR3.g:459:5: temp= identifier COLON temp= identifier
{
pushFollow(FOLLOW_identifier_in_oclModel3087);
temp=identifier();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "name", temp);
}
match(input,COLON,FOLLOW_COLON_in_oclModel3091); if (state.failed) return ret2;
pushFollow(FOLLOW_identifier_in_oclModel3095);
temp=identifier();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.setRef(ret, "metamodel", "OclModel", "name", temp, "#all", "ifmissing", null, false, null);
}
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "oclModel"
// $ANTLR start "oclModelElement"
// ATL_ANTLR3.g:469:1: oclModelElement returns [Object ret2] : (temp= identifier EXCL temp= identifier ) ;
public final Object oclModelElement() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("OclModelElement", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:470:2: ( (temp= identifier EXCL temp= identifier ) )
// ATL_ANTLR3.g:470:4: (temp= identifier EXCL temp= identifier )
{
// ATL_ANTLR3.g:470:4: (temp= identifier EXCL temp= identifier )
// ATL_ANTLR3.g:470:5: temp= identifier EXCL temp= identifier
{
pushFollow(FOLLOW_identifier_in_oclModelElement3131);
temp=identifier();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.setRef(ret, "model", "OclModel", "name", temp, "#all", "ifmissing", null, false, null);
}
match(input,EXCL,FOLLOW_EXCL_in_oclModelElement3135); if (state.failed) return ret2;
pushFollow(FOLLOW_identifier_in_oclModelElement3139);
temp=identifier();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "name", temp);
}
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "oclModelElement"
// $ANTLR start "oclExpression"
// ATL_ANTLR3.g:480:1: oclExpression returns [Object ret2] : (ret= priority_5 | ret= letExp ) ;
public final Object oclExpression() throws RecognitionException {
Object ret2 = null;
Object ret = null;
try {
// ATL_ANTLR3.g:481:2: ( (ret= priority_5 | ret= letExp ) )
// ATL_ANTLR3.g:481:4: (ret= priority_5 | ret= letExp )
{
// ATL_ANTLR3.g:481:4: (ret= priority_5 | ret= letExp )
int alt78=2;
int LA78_0 = input.LA(1);
if ( ((LA78_0>=NAME && LA78_0<=FLOAT)||LA78_0==LPAREN||LA78_0==SHARP||LA78_0==MINUS||LA78_0==69||(LA78_0>=73 && LA78_0<=75)||LA78_0==78||(LA78_0>=80 && LA78_0<=94)) ) {
alt78=1;
}
else if ( (LA78_0==79) ) {
alt78=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 78, 0, input);
throw nvae;
}
switch (alt78) {
case 1 :
// ATL_ANTLR3.g:481:5: ret= priority_5
{
pushFollow(FOLLOW_priority_5_in_oclExpression3175);
ret=priority_5();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 2 :
// ATL_ANTLR3.g:481:21: ret= letExp
{
pushFollow(FOLLOW_letExp_in_oclExpression3180);
ret=letExp();
state._fsp--;
if (state.failed) return ret2;
}
break;
}
if ( state.backtracking==0 ) {
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "oclExpression"
// $ANTLR start "iteratorExp"
// ATL_ANTLR3.g:488:1: iteratorExp[java.lang.String opName, Object left, org.antlr.runtime.Token firstToken] returns [Object ret2] : (temp= identifier LPAREN ( (temp= iterator ( ( ( COMA ) temp= iterator ) )* ) ) PIPE ( (temp= oclExpression ) ) RPAREN ) ;
public final Object iteratorExp(java.lang.String opName, Object left, org.antlr.runtime.Token firstToken) throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("IteratorExp", true, false) : null;
try {
// ATL_ANTLR3.g:489:2: ( (temp= identifier LPAREN ( (temp= iterator ( ( ( COMA ) temp= iterator ) )* ) ) PIPE ( (temp= oclExpression ) ) RPAREN ) )
// ATL_ANTLR3.g:489:4: (temp= identifier LPAREN ( (temp= iterator ( ( ( COMA ) temp= iterator ) )* ) ) PIPE ( (temp= oclExpression ) ) RPAREN )
{
// ATL_ANTLR3.g:489:4: (temp= identifier LPAREN ( (temp= iterator ( ( ( COMA ) temp= iterator ) )* ) ) PIPE ( (temp= oclExpression ) ) RPAREN )
// ATL_ANTLR3.g:489:5: temp= identifier LPAREN ( (temp= iterator ( ( ( COMA ) temp= iterator ) )* ) ) PIPE ( (temp= oclExpression ) ) RPAREN
{
pushFollow(FOLLOW_identifier_in_iteratorExp3215);
temp=identifier();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "name", temp);
}
match(input,LPAREN,FOLLOW_LPAREN_in_iteratorExp3219); if (state.failed) return ret2;
// ATL_ANTLR3.g:489:57: ( (temp= iterator ( ( ( COMA ) temp= iterator ) )* ) )
// ATL_ANTLR3.g:489:58: (temp= iterator ( ( ( COMA ) temp= iterator ) )* )
{
// ATL_ANTLR3.g:489:58: (temp= iterator ( ( ( COMA ) temp= iterator ) )* )
// ATL_ANTLR3.g:489:59: temp= iterator ( ( ( COMA ) temp= iterator ) )*
{
pushFollow(FOLLOW_iterator_in_iteratorExp3225);
temp=iterator();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "iterators", temp);
}
// ATL_ANTLR3.g:489:107: ( ( ( COMA ) temp= iterator ) )*
loop79:
do {
int alt79=2;
int LA79_0 = input.LA(1);
if ( (LA79_0==COMA) ) {
alt79=1;
}
switch (alt79) {
case 1 :
// ATL_ANTLR3.g:489:108: ( ( COMA ) temp= iterator )
{
// ATL_ANTLR3.g:489:108: ( ( COMA ) temp= iterator )
// ATL_ANTLR3.g:489:109: ( COMA ) temp= iterator
{
// ATL_ANTLR3.g:489:109: ( COMA )
// ATL_ANTLR3.g:489:110: COMA
{
match(input,COMA,FOLLOW_COMA_in_iteratorExp3232); if (state.failed) return ret2;
}
pushFollow(FOLLOW_iterator_in_iteratorExp3237);
temp=iterator();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "iterators", temp);
}
}
}
break;
default :
break loop79;
}
} while (true);
}
}
match(input,PIPE,FOLLOW_PIPE_in_iteratorExp3246); if (state.failed) return ret2;
// ATL_ANTLR3.g:489:174: ( (temp= oclExpression ) )
// ATL_ANTLR3.g:489:175: (temp= oclExpression )
{
// ATL_ANTLR3.g:489:175: (temp= oclExpression )
// ATL_ANTLR3.g:489:176: temp= oclExpression
{
pushFollow(FOLLOW_oclExpression_in_iteratorExp3252);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "body", temp);
}
}
}
match(input,RPAREN,FOLLOW_RPAREN_in_iteratorExp3258); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
// discard operator name
ei.set(ret, "source", left);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ei.leaveContext(true);
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "iteratorExp"
// $ANTLR start "iterateExp"
// ATL_ANTLR3.g:501:1: iterateExp[java.lang.String opName, Object left, org.antlr.runtime.Token firstToken] returns [Object ret2] : ( 'iterate' LPAREN ( (temp= iterator ( ( ( COMA ) temp= iterator ) )* ) ) SEMI temp= variableDeclaration PIPE ( (temp= oclExpression ) ) RPAREN ) ;
public final Object iterateExp(java.lang.String opName, Object left, org.antlr.runtime.Token firstToken) throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("IterateExp", true, false) : null;
try {
// ATL_ANTLR3.g:502:2: ( ( 'iterate' LPAREN ( (temp= iterator ( ( ( COMA ) temp= iterator ) )* ) ) SEMI temp= variableDeclaration PIPE ( (temp= oclExpression ) ) RPAREN ) )
// ATL_ANTLR3.g:502:4: ( 'iterate' LPAREN ( (temp= iterator ( ( ( COMA ) temp= iterator ) )* ) ) SEMI temp= variableDeclaration PIPE ( (temp= oclExpression ) ) RPAREN )
{
// ATL_ANTLR3.g:502:4: ( 'iterate' LPAREN ( (temp= iterator ( ( ( COMA ) temp= iterator ) )* ) ) SEMI temp= variableDeclaration PIPE ( (temp= oclExpression ) ) RPAREN )
// ATL_ANTLR3.g:502:5: 'iterate' LPAREN ( (temp= iterator ( ( ( COMA ) temp= iterator ) )* ) ) SEMI temp= variableDeclaration PIPE ( (temp= oclExpression ) ) RPAREN
{
match(input,72,FOLLOW_72_in_iterateExp3291); if (state.failed) return ret2;
match(input,LPAREN,FOLLOW_LPAREN_in_iterateExp3293); if (state.failed) return ret2;
// ATL_ANTLR3.g:502:22: ( (temp= iterator ( ( ( COMA ) temp= iterator ) )* ) )
// ATL_ANTLR3.g:502:23: (temp= iterator ( ( ( COMA ) temp= iterator ) )* )
{
// ATL_ANTLR3.g:502:23: (temp= iterator ( ( ( COMA ) temp= iterator ) )* )
// ATL_ANTLR3.g:502:24: temp= iterator ( ( ( COMA ) temp= iterator ) )*
{
pushFollow(FOLLOW_iterator_in_iterateExp3299);
temp=iterator();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "iterators", temp);
}
// ATL_ANTLR3.g:502:72: ( ( ( COMA ) temp= iterator ) )*
loop80:
do {
int alt80=2;
int LA80_0 = input.LA(1);
if ( (LA80_0==COMA) ) {
alt80=1;
}
switch (alt80) {
case 1 :
// ATL_ANTLR3.g:502:73: ( ( COMA ) temp= iterator )
{
// ATL_ANTLR3.g:502:73: ( ( COMA ) temp= iterator )
// ATL_ANTLR3.g:502:74: ( COMA ) temp= iterator
{
// ATL_ANTLR3.g:502:74: ( COMA )
// ATL_ANTLR3.g:502:75: COMA
{
match(input,COMA,FOLLOW_COMA_in_iterateExp3306); if (state.failed) return ret2;
}
pushFollow(FOLLOW_iterator_in_iterateExp3311);
temp=iterator();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "iterators", temp);
}
}
}
break;
default :
break loop80;
}
} while (true);
}
}
match(input,SEMI,FOLLOW_SEMI_in_iterateExp3320); if (state.failed) return ret2;
pushFollow(FOLLOW_variableDeclaration_in_iterateExp3324);
temp=variableDeclaration();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "result", temp);
}
match(input,PIPE,FOLLOW_PIPE_in_iterateExp3328); if (state.failed) return ret2;
// ATL_ANTLR3.g:502:200: ( (temp= oclExpression ) )
// ATL_ANTLR3.g:502:201: (temp= oclExpression )
{
// ATL_ANTLR3.g:502:201: (temp= oclExpression )
// ATL_ANTLR3.g:502:202: temp= oclExpression
{
pushFollow(FOLLOW_oclExpression_in_iterateExp3334);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "body", temp);
}
}
}
match(input,RPAREN,FOLLOW_RPAREN_in_iterateExp3340); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
// discard operator name
ei.set(ret, "source", left);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ei.leaveContext(true);
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "iterateExp"
// $ANTLR start "collectionOperationCallExp"
// ATL_ANTLR3.g:514:1: collectionOperationCallExp[java.lang.String opName, Object left, org.antlr.runtime.Token firstToken] returns [Object ret2] : (temp= identifier LPAREN ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RPAREN ) ;
public final Object collectionOperationCallExp(java.lang.String opName, Object left, org.antlr.runtime.Token firstToken) throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("CollectionOperationCallExp", false, false) : null;
try {
// ATL_ANTLR3.g:515:2: ( (temp= identifier LPAREN ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RPAREN ) )
// ATL_ANTLR3.g:515:4: (temp= identifier LPAREN ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RPAREN )
{
// ATL_ANTLR3.g:515:4: (temp= identifier LPAREN ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RPAREN )
// ATL_ANTLR3.g:515:5: temp= identifier LPAREN ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RPAREN
{
pushFollow(FOLLOW_identifier_in_collectionOperationCallExp3375);
temp=identifier();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "operationName", temp);
}
match(input,LPAREN,FOLLOW_LPAREN_in_collectionOperationCallExp3379); if (state.failed) return ret2;
// ATL_ANTLR3.g:515:66: ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )?
int alt82=2;
int LA82_0 = input.LA(1);
if ( ((LA82_0>=NAME && LA82_0<=FLOAT)||LA82_0==LPAREN||LA82_0==SHARP||LA82_0==MINUS||LA82_0==69||(LA82_0>=73 && LA82_0<=75)||(LA82_0>=78 && LA82_0<=94)) ) {
alt82=1;
}
switch (alt82) {
case 1 :
// ATL_ANTLR3.g:515:67: (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* )
{
// ATL_ANTLR3.g:515:67: (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* )
// ATL_ANTLR3.g:515:68: temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )*
{
pushFollow(FOLLOW_oclExpression_in_collectionOperationCallExp3385);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "arguments", temp);
}
// ATL_ANTLR3.g:515:121: ( ( ( COMA ) temp= oclExpression ) )*
loop81:
do {
int alt81=2;
int LA81_0 = input.LA(1);
if ( (LA81_0==COMA) ) {
alt81=1;
}
switch (alt81) {
case 1 :
// ATL_ANTLR3.g:515:122: ( ( COMA ) temp= oclExpression )
{
// ATL_ANTLR3.g:515:122: ( ( COMA ) temp= oclExpression )
// ATL_ANTLR3.g:515:123: ( COMA ) temp= oclExpression
{
// ATL_ANTLR3.g:515:123: ( COMA )
// ATL_ANTLR3.g:515:124: COMA
{
match(input,COMA,FOLLOW_COMA_in_collectionOperationCallExp3392); if (state.failed) return ret2;
}
pushFollow(FOLLOW_oclExpression_in_collectionOperationCallExp3397);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "arguments", temp);
}
}
}
break;
default :
break loop81;
}
} while (true);
}
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_collectionOperationCallExp3407); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
// discard operator name
ei.set(ret, "source", left);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ei.leaveContext(false);
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "collectionOperationCallExp"
// $ANTLR start "operationCallExp"
// ATL_ANTLR3.g:527:1: operationCallExp[java.lang.String opName, Object left, org.antlr.runtime.Token firstToken] returns [Object ret2] : (temp= identifierOrKeyword LPAREN ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RPAREN ) ;
public final Object operationCallExp(java.lang.String opName, Object left, org.antlr.runtime.Token firstToken) throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("OperationCallExp", false, false) : null;
try {
// ATL_ANTLR3.g:528:2: ( (temp= identifierOrKeyword LPAREN ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RPAREN ) )
// ATL_ANTLR3.g:528:4: (temp= identifierOrKeyword LPAREN ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RPAREN )
{
// ATL_ANTLR3.g:528:4: (temp= identifierOrKeyword LPAREN ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RPAREN )
// ATL_ANTLR3.g:528:5: temp= identifierOrKeyword LPAREN ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RPAREN
{
pushFollow(FOLLOW_identifierOrKeyword_in_operationCallExp3442);
temp=identifierOrKeyword();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "operationName", temp);
}
match(input,LPAREN,FOLLOW_LPAREN_in_operationCallExp3446); if (state.failed) return ret2;
// ATL_ANTLR3.g:528:75: ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )?
int alt84=2;
int LA84_0 = input.LA(1);
if ( ((LA84_0>=NAME && LA84_0<=FLOAT)||LA84_0==LPAREN||LA84_0==SHARP||LA84_0==MINUS||LA84_0==69||(LA84_0>=73 && LA84_0<=75)||(LA84_0>=78 && LA84_0<=94)) ) {
alt84=1;
}
switch (alt84) {
case 1 :
// ATL_ANTLR3.g:528:76: (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* )
{
// ATL_ANTLR3.g:528:76: (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* )
// ATL_ANTLR3.g:528:77: temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )*
{
pushFollow(FOLLOW_oclExpression_in_operationCallExp3452);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "arguments", temp);
}
// ATL_ANTLR3.g:528:130: ( ( ( COMA ) temp= oclExpression ) )*
loop83:
do {
int alt83=2;
int LA83_0 = input.LA(1);
if ( (LA83_0==COMA) ) {
alt83=1;
}
switch (alt83) {
case 1 :
// ATL_ANTLR3.g:528:131: ( ( COMA ) temp= oclExpression )
{
// ATL_ANTLR3.g:528:131: ( ( COMA ) temp= oclExpression )
// ATL_ANTLR3.g:528:132: ( COMA ) temp= oclExpression
{
// ATL_ANTLR3.g:528:132: ( COMA )
// ATL_ANTLR3.g:528:133: COMA
{
match(input,COMA,FOLLOW_COMA_in_operationCallExp3459); if (state.failed) return ret2;
}
pushFollow(FOLLOW_oclExpression_in_operationCallExp3464);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "arguments", temp);
}
}
}
break;
default :
break loop83;
}
} while (true);
}
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_operationCallExp3474); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
// discard operator name
ei.set(ret, "source", left);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ei.leaveContext(false);
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "operationCallExp"
// $ANTLR start "navigationOrAttributeCallExp"
// ATL_ANTLR3.g:540:1: navigationOrAttributeCallExp[java.lang.String opName, Object left, org.antlr.runtime.Token firstToken] returns [Object ret2] : (temp= identifierOrKeyword ) ;
public final Object navigationOrAttributeCallExp(java.lang.String opName, Object left, org.antlr.runtime.Token firstToken) throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("NavigationOrAttributeCallExp", false, false) : null;
try {
// ATL_ANTLR3.g:541:2: ( (temp= identifierOrKeyword ) )
// ATL_ANTLR3.g:541:4: (temp= identifierOrKeyword )
{
// ATL_ANTLR3.g:541:4: (temp= identifierOrKeyword )
// ATL_ANTLR3.g:541:5: temp= identifierOrKeyword
{
pushFollow(FOLLOW_identifierOrKeyword_in_navigationOrAttributeCallExp3509);
temp=identifierOrKeyword();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "name", temp);
}
}
if ( state.backtracking==0 ) {
// discard operator name
ei.set(ret, "source", left);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ei.leaveContext(false);
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "navigationOrAttributeCallExp"
// $ANTLR start "operatorCallExp"
// ATL_ANTLR3.g:553:1: operatorCallExp[java.lang.String opName, Object left, org.antlr.runtime.Token firstToken] returns [Object ret2] : ;
public final Object operatorCallExp(java.lang.String opName, Object left, org.antlr.runtime.Token firstToken) throws RecognitionException {
Object ret2 = null;
Object ret=(state.backtracking==0) ? ei.create("OperatorCallExp", false, false) : null;
try {
// ATL_ANTLR3.g:554:2: ()
// ATL_ANTLR3.g:555:9:
{
if ( state.backtracking==0 ) {
ei.set(ret, "operationName", opName);
ei.set(ret, "source", left);
// post actions performed in calling rule (i.e., priority_<n>)
ei.leaveContext(false);
ret2=ret;
}
}
}
finally {
}
return ret2;
}
// $ANTLR end "operatorCallExp"
// $ANTLR start "iterator"
// ATL_ANTLR3.g:565:1: iterator returns [Object ret2] : (temp= identifier ) ;
public final Object iterator() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("Iterator", false, true) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:566:2: ( (temp= identifier ) )
// ATL_ANTLR3.g:566:4: (temp= identifier )
{
// ATL_ANTLR3.g:566:4: (temp= identifier )
// ATL_ANTLR3.g:566:5: temp= identifier
{
pushFollow(FOLLOW_identifier_in_iterator3574);
temp=identifier();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "varName", temp);
}
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "iterator"
// $ANTLR start "oclUndefinedExp"
// ATL_ANTLR3.g:576:1: oclUndefinedExp returns [Object ret2] : ( 'OclUndefined' ) ;
public final Object oclUndefinedExp() throws RecognitionException {
Object ret2 = null;
Object ret=(state.backtracking==0) ? ei.create("OclUndefinedExp", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:577:2: ( ( 'OclUndefined' ) )
// ATL_ANTLR3.g:577:4: ( 'OclUndefined' )
{
// ATL_ANTLR3.g:577:4: ( 'OclUndefined' )
// ATL_ANTLR3.g:577:5: 'OclUndefined'
{
match(input,73,FOLLOW_73_in_oclUndefinedExp3608); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "oclUndefinedExp"
// $ANTLR start "primitiveExp"
// ATL_ANTLR3.g:587:1: primitiveExp returns [Object ret2] : ( (ret= numericExp | ret= booleanExp | ret= stringExp ) ) ;
public final Object primitiveExp() throws RecognitionException {
Object ret2 = null;
Object ret = null;
try {
// ATL_ANTLR3.g:588:2: ( ( (ret= numericExp | ret= booleanExp | ret= stringExp ) ) )
// ATL_ANTLR3.g:588:4: ( (ret= numericExp | ret= booleanExp | ret= stringExp ) )
{
// ATL_ANTLR3.g:588:4: ( (ret= numericExp | ret= booleanExp | ret= stringExp ) )
// ATL_ANTLR3.g:588:5: (ret= numericExp | ret= booleanExp | ret= stringExp )
{
// ATL_ANTLR3.g:588:5: (ret= numericExp | ret= booleanExp | ret= stringExp )
int alt85=3;
switch ( input.LA(1) ) {
case INT:
case FLOAT:
{
alt85=1;
}
break;
case 74:
case 75:
{
alt85=2;
}
break;
case STRING:
{
alt85=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 85, 0, input);
throw nvae;
}
switch (alt85) {
case 1 :
// ATL_ANTLR3.g:588:6: ret= numericExp
{
pushFollow(FOLLOW_numericExp_in_primitiveExp3643);
ret=numericExp();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 2 :
// ATL_ANTLR3.g:588:22: ret= booleanExp
{
pushFollow(FOLLOW_booleanExp_in_primitiveExp3648);
ret=booleanExp();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 3 :
// ATL_ANTLR3.g:588:38: ret= stringExp
{
pushFollow(FOLLOW_stringExp_in_primitiveExp3653);
ret=stringExp();
state._fsp--;
if (state.failed) return ret2;
}
break;
}
}
if ( state.backtracking==0 ) {
ei.addToContext(ret, false);
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "primitiveExp"
// $ANTLR start "numericExp"
// ATL_ANTLR3.g:596:1: numericExp returns [Object ret2] : ( (ret= integerExp | ret= realExp ) ) ;
public final Object numericExp() throws RecognitionException {
Object ret2 = null;
Object ret = null;
try {
// ATL_ANTLR3.g:597:2: ( ( (ret= integerExp | ret= realExp ) ) )
// ATL_ANTLR3.g:597:4: ( (ret= integerExp | ret= realExp ) )
{
// ATL_ANTLR3.g:597:4: ( (ret= integerExp | ret= realExp ) )
// ATL_ANTLR3.g:597:5: (ret= integerExp | ret= realExp )
{
// ATL_ANTLR3.g:597:5: (ret= integerExp | ret= realExp )
int alt86=2;
int LA86_0 = input.LA(1);
if ( (LA86_0==INT) ) {
alt86=1;
}
else if ( (LA86_0==FLOAT) ) {
alt86=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 86, 0, input);
throw nvae;
}
switch (alt86) {
case 1 :
// ATL_ANTLR3.g:597:6: ret= integerExp
{
pushFollow(FOLLOW_integerExp_in_numericExp3689);
ret=integerExp();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 2 :
// ATL_ANTLR3.g:597:22: ret= realExp
{
pushFollow(FOLLOW_realExp_in_numericExp3694);
ret=realExp();
state._fsp--;
if (state.failed) return ret2;
}
break;
}
}
if ( state.backtracking==0 ) {
ei.addToContext(ret, false);
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "numericExp"
// $ANTLR start "booleanExp"
// ATL_ANTLR3.g:605:1: booleanExp returns [Object ret2] : ( ( ( 'true' ) | ( 'false' ) ) ) ;
public final Object booleanExp() throws RecognitionException {
Object ret2 = null;
Object ret=(state.backtracking==0) ? ei.create("BooleanExp", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:606:2: ( ( ( ( 'true' ) | ( 'false' ) ) ) )
// ATL_ANTLR3.g:606:4: ( ( ( 'true' ) | ( 'false' ) ) )
{
// ATL_ANTLR3.g:606:4: ( ( ( 'true' ) | ( 'false' ) ) )
// ATL_ANTLR3.g:606:5: ( ( 'true' ) | ( 'false' ) )
{
// ATL_ANTLR3.g:606:5: ( ( 'true' ) | ( 'false' ) )
int alt87=2;
int LA87_0 = input.LA(1);
if ( (LA87_0==74) ) {
alt87=1;
}
else if ( (LA87_0==75) ) {
alt87=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 87, 0, input);
throw nvae;
}
switch (alt87) {
case 1 :
// ATL_ANTLR3.g:606:6: ( 'true' )
{
// ATL_ANTLR3.g:606:6: ( 'true' )
// ATL_ANTLR3.g:606:7: 'true'
{
match(input,74,FOLLOW_74_in_booleanExp3729); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.set(ret, "booleanSymbol", java.lang.Boolean.TRUE);
}
}
break;
case 2 :
// ATL_ANTLR3.g:606:72: ( 'false' )
{
// ATL_ANTLR3.g:606:72: ( 'false' )
// ATL_ANTLR3.g:606:73: 'false'
{
match(input,75,FOLLOW_75_in_booleanExp3736); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.set(ret, "booleanSymbol", java.lang.Boolean.FALSE);
}
}
break;
}
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "booleanExp"
// $ANTLR start "integerExp"
// ATL_ANTLR3.g:616:1: integerExp returns [Object ret2] : (temp= integerSymbol ) ;
public final Object integerExp() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("IntegerExp", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:617:2: ( (temp= integerSymbol ) )
// ATL_ANTLR3.g:617:4: (temp= integerSymbol )
{
// ATL_ANTLR3.g:617:4: (temp= integerSymbol )
// ATL_ANTLR3.g:617:5: temp= integerSymbol
{
pushFollow(FOLLOW_integerSymbol_in_integerExp3774);
temp=integerSymbol();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "integerSymbol", temp);
}
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "integerExp"
// $ANTLR start "realExp"
// ATL_ANTLR3.g:627:1: realExp returns [Object ret2] : (temp= floatSymbol ) ;
public final Object realExp() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("RealExp", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:628:2: ( (temp= floatSymbol ) )
// ATL_ANTLR3.g:628:4: (temp= floatSymbol )
{
// ATL_ANTLR3.g:628:4: (temp= floatSymbol )
// ATL_ANTLR3.g:628:5: temp= floatSymbol
{
pushFollow(FOLLOW_floatSymbol_in_realExp3810);
temp=floatSymbol();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "realSymbol", temp);
}
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "realExp"
// $ANTLR start "stringExp"
// ATL_ANTLR3.g:638:1: stringExp returns [Object ret2] : (temp= stringSymbol ) ;
public final Object stringExp() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("StringExp", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:639:2: ( (temp= stringSymbol ) )
// ATL_ANTLR3.g:639:4: (temp= stringSymbol )
{
// ATL_ANTLR3.g:639:4: (temp= stringSymbol )
// ATL_ANTLR3.g:639:5: temp= stringSymbol
{
pushFollow(FOLLOW_stringSymbol_in_stringExp3846);
temp=stringSymbol();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "stringSymbol", temp);
}
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "stringExp"
// $ANTLR start "ifExp"
// ATL_ANTLR3.g:649:1: ifExp returns [Object ret2] : ( 'if' temp= oclExpression 'then' ( (temp= oclExpression ) ) 'else' ( (temp= oclExpression ) ) 'endif' ) ;
public final Object ifExp() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("IfExp", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:650:2: ( ( 'if' temp= oclExpression 'then' ( (temp= oclExpression ) ) 'else' ( (temp= oclExpression ) ) 'endif' ) )
// ATL_ANTLR3.g:650:4: ( 'if' temp= oclExpression 'then' ( (temp= oclExpression ) ) 'else' ( (temp= oclExpression ) ) 'endif' )
{
// ATL_ANTLR3.g:650:4: ( 'if' temp= oclExpression 'then' ( (temp= oclExpression ) ) 'else' ( (temp= oclExpression ) ) 'endif' )
// ATL_ANTLR3.g:650:5: 'if' temp= oclExpression 'then' ( (temp= oclExpression ) ) 'else' ( (temp= oclExpression ) ) 'endif'
{
match(input,69,FOLLOW_69_in_ifExp3880); if (state.failed) return ret2;
pushFollow(FOLLOW_oclExpression_in_ifExp3884);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "condition", temp);
}
match(input,76,FOLLOW_76_in_ifExp3888); if (state.failed) return ret2;
// ATL_ANTLR3.g:650:70: ( (temp= oclExpression ) )
// ATL_ANTLR3.g:650:71: (temp= oclExpression )
{
// ATL_ANTLR3.g:650:71: (temp= oclExpression )
// ATL_ANTLR3.g:650:72: temp= oclExpression
{
pushFollow(FOLLOW_oclExpression_in_ifExp3894);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "thenExpression", temp);
}
}
}
match(input,70,FOLLOW_70_in_ifExp3900); if (state.failed) return ret2;
// ATL_ANTLR3.g:650:139: ( (temp= oclExpression ) )
// ATL_ANTLR3.g:650:140: (temp= oclExpression )
{
// ATL_ANTLR3.g:650:140: (temp= oclExpression )
// ATL_ANTLR3.g:650:141: temp= oclExpression
{
pushFollow(FOLLOW_oclExpression_in_ifExp3906);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "elseExpression", temp);
}
}
}
match(input,77,FOLLOW_77_in_ifExp3912); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "ifExp"
// $ANTLR start "variableExp"
// ATL_ANTLR3.g:660:1: variableExp returns [Object ret2] : (temp= identifier ) ;
public final Object variableExp() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("VariableExp", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:661:2: ( (temp= identifier ) )
// ATL_ANTLR3.g:661:4: (temp= identifier )
{
// ATL_ANTLR3.g:661:4: (temp= identifier )
// ATL_ANTLR3.g:661:5: temp= identifier
{
pushFollow(FOLLOW_identifier_in_variableExp3946);
temp=identifier();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.setRef(ret, "referredVariable", "VariableDeclaration", "varName", temp, null, "ifmissing", null, false, null);
}
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "variableExp"
// $ANTLR start "superExp"
// ATL_ANTLR3.g:671:1: superExp returns [Object ret2] : ( 'super' ) ;
public final Object superExp() throws RecognitionException {
Object ret2 = null;
Object ret=(state.backtracking==0) ? ei.create("SuperExp", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:672:2: ( ( 'super' ) )
// ATL_ANTLR3.g:672:4: ( 'super' )
{
// ATL_ANTLR3.g:672:4: ( 'super' )
// ATL_ANTLR3.g:672:5: 'super'
{
match(input,78,FOLLOW_78_in_superExp3980); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "superExp"
// $ANTLR start "letExp"
// ATL_ANTLR3.g:682:1: letExp returns [Object ret2] : ( 'let' temp= variableDeclaration 'in' ( (temp= oclExpression ) ) ) ;
public final Object letExp() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("LetExp", true, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:683:2: ( ( 'let' temp= variableDeclaration 'in' ( (temp= oclExpression ) ) ) )
// ATL_ANTLR3.g:683:4: ( 'let' temp= variableDeclaration 'in' ( (temp= oclExpression ) ) )
{
// ATL_ANTLR3.g:683:4: ( 'let' temp= variableDeclaration 'in' ( (temp= oclExpression ) ) )
// ATL_ANTLR3.g:683:5: 'let' temp= variableDeclaration 'in' ( (temp= oclExpression ) )
{
match(input,79,FOLLOW_79_in_letExp4012); if (state.failed) return ret2;
pushFollow(FOLLOW_variableDeclaration_in_letExp4016);
temp=variableDeclaration();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "variable", temp);
}
match(input,62,FOLLOW_62_in_letExp4020); if (state.failed) return ret2;
// ATL_ANTLR3.g:683:74: ( (temp= oclExpression ) )
// ATL_ANTLR3.g:683:75: (temp= oclExpression )
{
// ATL_ANTLR3.g:683:75: (temp= oclExpression )
// ATL_ANTLR3.g:683:76: temp= oclExpression
{
pushFollow(FOLLOW_oclExpression_in_letExp4026);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "in_", temp);
}
}
}
}
if ( state.backtracking==0 ) {
ei.leaveContext(true);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "letExp"
// $ANTLR start "variableDeclaration"
// ATL_ANTLR3.g:693:1: variableDeclaration returns [Object ret2] : (temp= identifier COLON temp= oclType EQ temp= oclExpression ) ;
public final Object variableDeclaration() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("VariableDeclaration", false, true) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:694:2: ( (temp= identifier COLON temp= oclType EQ temp= oclExpression ) )
// ATL_ANTLR3.g:694:4: (temp= identifier COLON temp= oclType EQ temp= oclExpression )
{
// ATL_ANTLR3.g:694:4: (temp= identifier COLON temp= oclType EQ temp= oclExpression )
// ATL_ANTLR3.g:694:5: temp= identifier COLON temp= oclType EQ temp= oclExpression
{
pushFollow(FOLLOW_identifier_in_variableDeclaration4064);
temp=identifier();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "varName", temp);
}
match(input,COLON,FOLLOW_COLON_in_variableDeclaration4068); if (state.failed) return ret2;
pushFollow(FOLLOW_oclType_in_variableDeclaration4072);
temp=oclType();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "type", temp);
}
match(input,EQ,FOLLOW_EQ_in_variableDeclaration4076); if (state.failed) return ret2;
pushFollow(FOLLOW_oclExpression_in_variableDeclaration4080);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "initExpression", temp);
}
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "variableDeclaration"
// $ANTLR start "enumLiteralExp"
// ATL_ANTLR3.g:704:1: enumLiteralExp returns [Object ret2] : ( SHARP temp= identifier ) ;
public final Object enumLiteralExp() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("EnumLiteralExp", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:705:2: ( ( SHARP temp= identifier ) )
// ATL_ANTLR3.g:705:4: ( SHARP temp= identifier )
{
// ATL_ANTLR3.g:705:4: ( SHARP temp= identifier )
// ATL_ANTLR3.g:705:5: SHARP temp= identifier
{
match(input,SHARP,FOLLOW_SHARP_in_enumLiteralExp4114); if (state.failed) return ret2;
pushFollow(FOLLOW_identifier_in_enumLiteralExp4118);
temp=identifier();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "name", temp);
}
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "enumLiteralExp"
// $ANTLR start "collectionExp"
// ATL_ANTLR3.g:715:1: collectionExp returns [Object ret2] : ( (ret= bagExp | ret= setExp | ret= orderedSetExp | ret= sequenceExp ) ) ;
public final Object collectionExp() throws RecognitionException {
Object ret2 = null;
Object ret = null;
try {
// ATL_ANTLR3.g:716:2: ( ( (ret= bagExp | ret= setExp | ret= orderedSetExp | ret= sequenceExp ) ) )
// ATL_ANTLR3.g:716:4: ( (ret= bagExp | ret= setExp | ret= orderedSetExp | ret= sequenceExp ) )
{
// ATL_ANTLR3.g:716:4: ( (ret= bagExp | ret= setExp | ret= orderedSetExp | ret= sequenceExp ) )
// ATL_ANTLR3.g:716:5: (ret= bagExp | ret= setExp | ret= orderedSetExp | ret= sequenceExp )
{
// ATL_ANTLR3.g:716:5: (ret= bagExp | ret= setExp | ret= orderedSetExp | ret= sequenceExp )
int alt88=4;
switch ( input.LA(1) ) {
case 80:
{
alt88=1;
}
break;
case 81:
{
alt88=2;
}
break;
case 82:
{
alt88=3;
}
break;
case 83:
{
alt88=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 88, 0, input);
throw nvae;
}
switch (alt88) {
case 1 :
// ATL_ANTLR3.g:716:6: ret= bagExp
{
pushFollow(FOLLOW_bagExp_in_collectionExp4155);
ret=bagExp();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 2 :
// ATL_ANTLR3.g:716:18: ret= setExp
{
pushFollow(FOLLOW_setExp_in_collectionExp4160);
ret=setExp();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 3 :
// ATL_ANTLR3.g:716:30: ret= orderedSetExp
{
pushFollow(FOLLOW_orderedSetExp_in_collectionExp4165);
ret=orderedSetExp();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 4 :
// ATL_ANTLR3.g:716:49: ret= sequenceExp
{
pushFollow(FOLLOW_sequenceExp_in_collectionExp4170);
ret=sequenceExp();
state._fsp--;
if (state.failed) return ret2;
}
break;
}
}
if ( state.backtracking==0 ) {
ei.addToContext(ret, false);
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "collectionExp"
// $ANTLR start "bagExp"
// ATL_ANTLR3.g:724:1: bagExp returns [Object ret2] : ( 'Bag' LCURLY ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RCURLY ) ;
public final Object bagExp() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("BagExp", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:725:2: ( ( 'Bag' LCURLY ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RCURLY ) )
// ATL_ANTLR3.g:725:4: ( 'Bag' LCURLY ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RCURLY )
{
// ATL_ANTLR3.g:725:4: ( 'Bag' LCURLY ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RCURLY )
// ATL_ANTLR3.g:725:5: 'Bag' LCURLY ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RCURLY
{
match(input,80,FOLLOW_80_in_bagExp4203); if (state.failed) return ret2;
match(input,LCURLY,FOLLOW_LCURLY_in_bagExp4205); if (state.failed) return ret2;
// ATL_ANTLR3.g:725:18: ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )?
int alt90=2;
int LA90_0 = input.LA(1);
if ( ((LA90_0>=NAME && LA90_0<=FLOAT)||LA90_0==LPAREN||LA90_0==SHARP||LA90_0==MINUS||LA90_0==69||(LA90_0>=73 && LA90_0<=75)||(LA90_0>=78 && LA90_0<=94)) ) {
alt90=1;
}
switch (alt90) {
case 1 :
// ATL_ANTLR3.g:725:19: (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* )
{
// ATL_ANTLR3.g:725:19: (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* )
// ATL_ANTLR3.g:725:20: temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )*
{
pushFollow(FOLLOW_oclExpression_in_bagExp4211);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "elements", temp);
}
// ATL_ANTLR3.g:725:72: ( ( ( COMA ) temp= oclExpression ) )*
loop89:
do {
int alt89=2;
int LA89_0 = input.LA(1);
if ( (LA89_0==COMA) ) {
alt89=1;
}
switch (alt89) {
case 1 :
// ATL_ANTLR3.g:725:73: ( ( COMA ) temp= oclExpression )
{
// ATL_ANTLR3.g:725:73: ( ( COMA ) temp= oclExpression )
// ATL_ANTLR3.g:725:74: ( COMA ) temp= oclExpression
{
// ATL_ANTLR3.g:725:74: ( COMA )
// ATL_ANTLR3.g:725:75: COMA
{
match(input,COMA,FOLLOW_COMA_in_bagExp4218); if (state.failed) return ret2;
}
pushFollow(FOLLOW_oclExpression_in_bagExp4223);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "elements", temp);
}
}
}
break;
default :
break loop89;
}
} while (true);
}
}
break;
}
match(input,RCURLY,FOLLOW_RCURLY_in_bagExp4233); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "bagExp"
// $ANTLR start "setExp"
// ATL_ANTLR3.g:735:1: setExp returns [Object ret2] : ( 'Set' LCURLY ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RCURLY ) ;
public final Object setExp() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("SetExp", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:736:2: ( ( 'Set' LCURLY ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RCURLY ) )
// ATL_ANTLR3.g:736:4: ( 'Set' LCURLY ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RCURLY )
{
// ATL_ANTLR3.g:736:4: ( 'Set' LCURLY ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RCURLY )
// ATL_ANTLR3.g:736:5: 'Set' LCURLY ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RCURLY
{
match(input,81,FOLLOW_81_in_setExp4265); if (state.failed) return ret2;
match(input,LCURLY,FOLLOW_LCURLY_in_setExp4267); if (state.failed) return ret2;
// ATL_ANTLR3.g:736:18: ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )?
int alt92=2;
int LA92_0 = input.LA(1);
if ( ((LA92_0>=NAME && LA92_0<=FLOAT)||LA92_0==LPAREN||LA92_0==SHARP||LA92_0==MINUS||LA92_0==69||(LA92_0>=73 && LA92_0<=75)||(LA92_0>=78 && LA92_0<=94)) ) {
alt92=1;
}
switch (alt92) {
case 1 :
// ATL_ANTLR3.g:736:19: (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* )
{
// ATL_ANTLR3.g:736:19: (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* )
// ATL_ANTLR3.g:736:20: temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )*
{
pushFollow(FOLLOW_oclExpression_in_setExp4273);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "elements", temp);
}
// ATL_ANTLR3.g:736:72: ( ( ( COMA ) temp= oclExpression ) )*
loop91:
do {
int alt91=2;
int LA91_0 = input.LA(1);
if ( (LA91_0==COMA) ) {
alt91=1;
}
switch (alt91) {
case 1 :
// ATL_ANTLR3.g:736:73: ( ( COMA ) temp= oclExpression )
{
// ATL_ANTLR3.g:736:73: ( ( COMA ) temp= oclExpression )
// ATL_ANTLR3.g:736:74: ( COMA ) temp= oclExpression
{
// ATL_ANTLR3.g:736:74: ( COMA )
// ATL_ANTLR3.g:736:75: COMA
{
match(input,COMA,FOLLOW_COMA_in_setExp4280); if (state.failed) return ret2;
}
pushFollow(FOLLOW_oclExpression_in_setExp4285);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "elements", temp);
}
}
}
break;
default :
break loop91;
}
} while (true);
}
}
break;
}
match(input,RCURLY,FOLLOW_RCURLY_in_setExp4295); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "setExp"
// $ANTLR start "orderedSetExp"
// ATL_ANTLR3.g:746:1: orderedSetExp returns [Object ret2] : ( 'OrderedSet' LCURLY ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RCURLY ) ;
public final Object orderedSetExp() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("OrderedSetExp", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:747:2: ( ( 'OrderedSet' LCURLY ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RCURLY ) )
// ATL_ANTLR3.g:747:4: ( 'OrderedSet' LCURLY ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RCURLY )
{
// ATL_ANTLR3.g:747:4: ( 'OrderedSet' LCURLY ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RCURLY )
// ATL_ANTLR3.g:747:5: 'OrderedSet' LCURLY ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RCURLY
{
match(input,82,FOLLOW_82_in_orderedSetExp4327); if (state.failed) return ret2;
match(input,LCURLY,FOLLOW_LCURLY_in_orderedSetExp4329); if (state.failed) return ret2;
// ATL_ANTLR3.g:747:25: ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )?
int alt94=2;
int LA94_0 = input.LA(1);
if ( ((LA94_0>=NAME && LA94_0<=FLOAT)||LA94_0==LPAREN||LA94_0==SHARP||LA94_0==MINUS||LA94_0==69||(LA94_0>=73 && LA94_0<=75)||(LA94_0>=78 && LA94_0<=94)) ) {
alt94=1;
}
switch (alt94) {
case 1 :
// ATL_ANTLR3.g:747:26: (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* )
{
// ATL_ANTLR3.g:747:26: (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* )
// ATL_ANTLR3.g:747:27: temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )*
{
pushFollow(FOLLOW_oclExpression_in_orderedSetExp4335);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "elements", temp);
}
// ATL_ANTLR3.g:747:79: ( ( ( COMA ) temp= oclExpression ) )*
loop93:
do {
int alt93=2;
int LA93_0 = input.LA(1);
if ( (LA93_0==COMA) ) {
alt93=1;
}
switch (alt93) {
case 1 :
// ATL_ANTLR3.g:747:80: ( ( COMA ) temp= oclExpression )
{
// ATL_ANTLR3.g:747:80: ( ( COMA ) temp= oclExpression )
// ATL_ANTLR3.g:747:81: ( COMA ) temp= oclExpression
{
// ATL_ANTLR3.g:747:81: ( COMA )
// ATL_ANTLR3.g:747:82: COMA
{
match(input,COMA,FOLLOW_COMA_in_orderedSetExp4342); if (state.failed) return ret2;
}
pushFollow(FOLLOW_oclExpression_in_orderedSetExp4347);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "elements", temp);
}
}
}
break;
default :
break loop93;
}
} while (true);
}
}
break;
}
match(input,RCURLY,FOLLOW_RCURLY_in_orderedSetExp4357); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "orderedSetExp"
// $ANTLR start "sequenceExp"
// ATL_ANTLR3.g:757:1: sequenceExp returns [Object ret2] : ( 'Sequence' LCURLY ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RCURLY ) ;
public final Object sequenceExp() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("SequenceExp", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:758:2: ( ( 'Sequence' LCURLY ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RCURLY ) )
// ATL_ANTLR3.g:758:4: ( 'Sequence' LCURLY ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RCURLY )
{
// ATL_ANTLR3.g:758:4: ( 'Sequence' LCURLY ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RCURLY )
// ATL_ANTLR3.g:758:5: 'Sequence' LCURLY ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )? RCURLY
{
match(input,83,FOLLOW_83_in_sequenceExp4389); if (state.failed) return ret2;
match(input,LCURLY,FOLLOW_LCURLY_in_sequenceExp4391); if (state.failed) return ret2;
// ATL_ANTLR3.g:758:23: ( (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* ) )?
int alt96=2;
int LA96_0 = input.LA(1);
if ( ((LA96_0>=NAME && LA96_0<=FLOAT)||LA96_0==LPAREN||LA96_0==SHARP||LA96_0==MINUS||LA96_0==69||(LA96_0>=73 && LA96_0<=75)||(LA96_0>=78 && LA96_0<=94)) ) {
alt96=1;
}
switch (alt96) {
case 1 :
// ATL_ANTLR3.g:758:24: (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* )
{
// ATL_ANTLR3.g:758:24: (temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )* )
// ATL_ANTLR3.g:758:25: temp= oclExpression ( ( ( COMA ) temp= oclExpression ) )*
{
pushFollow(FOLLOW_oclExpression_in_sequenceExp4397);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "elements", temp);
}
// ATL_ANTLR3.g:758:77: ( ( ( COMA ) temp= oclExpression ) )*
loop95:
do {
int alt95=2;
int LA95_0 = input.LA(1);
if ( (LA95_0==COMA) ) {
alt95=1;
}
switch (alt95) {
case 1 :
// ATL_ANTLR3.g:758:78: ( ( COMA ) temp= oclExpression )
{
// ATL_ANTLR3.g:758:78: ( ( COMA ) temp= oclExpression )
// ATL_ANTLR3.g:758:79: ( COMA ) temp= oclExpression
{
// ATL_ANTLR3.g:758:79: ( COMA )
// ATL_ANTLR3.g:758:80: COMA
{
match(input,COMA,FOLLOW_COMA_in_sequenceExp4404); if (state.failed) return ret2;
}
pushFollow(FOLLOW_oclExpression_in_sequenceExp4409);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "elements", temp);
}
}
}
break;
default :
break loop95;
}
} while (true);
}
}
break;
}
match(input,RCURLY,FOLLOW_RCURLY_in_sequenceExp4419); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "sequenceExp"
// $ANTLR start "mapExp"
// ATL_ANTLR3.g:768:1: mapExp returns [Object ret2] : ( 'Map' LCURLY ( (temp= mapElement ( ( ( COMA ) temp= mapElement ) )* ) )? RCURLY ) ;
public final Object mapExp() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("MapExp", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:769:2: ( ( 'Map' LCURLY ( (temp= mapElement ( ( ( COMA ) temp= mapElement ) )* ) )? RCURLY ) )
// ATL_ANTLR3.g:769:4: ( 'Map' LCURLY ( (temp= mapElement ( ( ( COMA ) temp= mapElement ) )* ) )? RCURLY )
{
// ATL_ANTLR3.g:769:4: ( 'Map' LCURLY ( (temp= mapElement ( ( ( COMA ) temp= mapElement ) )* ) )? RCURLY )
// ATL_ANTLR3.g:769:5: 'Map' LCURLY ( (temp= mapElement ( ( ( COMA ) temp= mapElement ) )* ) )? RCURLY
{
match(input,84,FOLLOW_84_in_mapExp4451); if (state.failed) return ret2;
match(input,LCURLY,FOLLOW_LCURLY_in_mapExp4453); if (state.failed) return ret2;
// ATL_ANTLR3.g:769:18: ( (temp= mapElement ( ( ( COMA ) temp= mapElement ) )* ) )?
int alt98=2;
int LA98_0 = input.LA(1);
if ( (LA98_0==LPAREN) ) {
alt98=1;
}
switch (alt98) {
case 1 :
// ATL_ANTLR3.g:769:19: (temp= mapElement ( ( ( COMA ) temp= mapElement ) )* )
{
// ATL_ANTLR3.g:769:19: (temp= mapElement ( ( ( COMA ) temp= mapElement ) )* )
// ATL_ANTLR3.g:769:20: temp= mapElement ( ( ( COMA ) temp= mapElement ) )*
{
pushFollow(FOLLOW_mapElement_in_mapExp4459);
temp=mapElement();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "elements", temp);
}
// ATL_ANTLR3.g:769:69: ( ( ( COMA ) temp= mapElement ) )*
loop97:
do {
int alt97=2;
int LA97_0 = input.LA(1);
if ( (LA97_0==COMA) ) {
alt97=1;
}
switch (alt97) {
case 1 :
// ATL_ANTLR3.g:769:70: ( ( COMA ) temp= mapElement )
{
// ATL_ANTLR3.g:769:70: ( ( COMA ) temp= mapElement )
// ATL_ANTLR3.g:769:71: ( COMA ) temp= mapElement
{
// ATL_ANTLR3.g:769:71: ( COMA )
// ATL_ANTLR3.g:769:72: COMA
{
match(input,COMA,FOLLOW_COMA_in_mapExp4466); if (state.failed) return ret2;
}
pushFollow(FOLLOW_mapElement_in_mapExp4471);
temp=mapElement();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "elements", temp);
}
}
}
break;
default :
break loop97;
}
} while (true);
}
}
break;
}
match(input,RCURLY,FOLLOW_RCURLY_in_mapExp4481); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "mapExp"
// $ANTLR start "mapElement"
// ATL_ANTLR3.g:779:1: mapElement returns [Object ret2] : ( LPAREN temp= oclExpression COMA temp= oclExpression RPAREN ) ;
public final Object mapElement() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("MapElement", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:780:2: ( ( LPAREN temp= oclExpression COMA temp= oclExpression RPAREN ) )
// ATL_ANTLR3.g:780:4: ( LPAREN temp= oclExpression COMA temp= oclExpression RPAREN )
{
// ATL_ANTLR3.g:780:4: ( LPAREN temp= oclExpression COMA temp= oclExpression RPAREN )
// ATL_ANTLR3.g:780:5: LPAREN temp= oclExpression COMA temp= oclExpression RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_mapElement4513); if (state.failed) return ret2;
pushFollow(FOLLOW_oclExpression_in_mapElement4517);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "key", temp);
}
match(input,COMA,FOLLOW_COMA_in_mapElement4521); if (state.failed) return ret2;
pushFollow(FOLLOW_oclExpression_in_mapElement4525);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "value", temp);
}
match(input,RPAREN,FOLLOW_RPAREN_in_mapElement4529); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "mapElement"
// $ANTLR start "tupleExp"
// ATL_ANTLR3.g:790:1: tupleExp returns [Object ret2] : ( 'Tuple' LCURLY ( (temp= tuplePart ( ( ( COMA ) temp= tuplePart ) )* ) )? RCURLY ) ;
public final Object tupleExp() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("TupleExp", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:791:2: ( ( 'Tuple' LCURLY ( (temp= tuplePart ( ( ( COMA ) temp= tuplePart ) )* ) )? RCURLY ) )
// ATL_ANTLR3.g:791:4: ( 'Tuple' LCURLY ( (temp= tuplePart ( ( ( COMA ) temp= tuplePart ) )* ) )? RCURLY )
{
// ATL_ANTLR3.g:791:4: ( 'Tuple' LCURLY ( (temp= tuplePart ( ( ( COMA ) temp= tuplePart ) )* ) )? RCURLY )
// ATL_ANTLR3.g:791:5: 'Tuple' LCURLY ( (temp= tuplePart ( ( ( COMA ) temp= tuplePart ) )* ) )? RCURLY
{
match(input,85,FOLLOW_85_in_tupleExp4561); if (state.failed) return ret2;
match(input,LCURLY,FOLLOW_LCURLY_in_tupleExp4563); if (state.failed) return ret2;
// ATL_ANTLR3.g:791:20: ( (temp= tuplePart ( ( ( COMA ) temp= tuplePart ) )* ) )?
int alt100=2;
int LA100_0 = input.LA(1);
if ( (LA100_0==NAME||(LA100_0>=43 && LA100_0<=100)) ) {
alt100=1;
}
switch (alt100) {
case 1 :
// ATL_ANTLR3.g:791:21: (temp= tuplePart ( ( ( COMA ) temp= tuplePart ) )* )
{
// ATL_ANTLR3.g:791:21: (temp= tuplePart ( ( ( COMA ) temp= tuplePart ) )* )
// ATL_ANTLR3.g:791:22: temp= tuplePart ( ( ( COMA ) temp= tuplePart ) )*
{
pushFollow(FOLLOW_tuplePart_in_tupleExp4569);
temp=tuplePart();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "tuplePart", temp);
}
// ATL_ANTLR3.g:791:71: ( ( ( COMA ) temp= tuplePart ) )*
loop99:
do {
int alt99=2;
int LA99_0 = input.LA(1);
if ( (LA99_0==COMA) ) {
alt99=1;
}
switch (alt99) {
case 1 :
// ATL_ANTLR3.g:791:72: ( ( COMA ) temp= tuplePart )
{
// ATL_ANTLR3.g:791:72: ( ( COMA ) temp= tuplePart )
// ATL_ANTLR3.g:791:73: ( COMA ) temp= tuplePart
{
// ATL_ANTLR3.g:791:73: ( COMA )
// ATL_ANTLR3.g:791:74: COMA
{
match(input,COMA,FOLLOW_COMA_in_tupleExp4576); if (state.failed) return ret2;
}
pushFollow(FOLLOW_tuplePart_in_tupleExp4581);
temp=tuplePart();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "tuplePart", temp);
}
}
}
break;
default :
break loop99;
}
} while (true);
}
}
break;
}
match(input,RCURLY,FOLLOW_RCURLY_in_tupleExp4591); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "tupleExp"
// $ANTLR start "tuplePart"
// ATL_ANTLR3.g:801:1: tuplePart returns [Object ret2] : (temp= identifierOrKeyword ( ( COLON temp= oclType ) | () ) EQ temp= oclExpression ) ;
public final Object tuplePart() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("TuplePart", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:802:2: ( (temp= identifierOrKeyword ( ( COLON temp= oclType ) | () ) EQ temp= oclExpression ) )
// ATL_ANTLR3.g:802:4: (temp= identifierOrKeyword ( ( COLON temp= oclType ) | () ) EQ temp= oclExpression )
{
// ATL_ANTLR3.g:802:4: (temp= identifierOrKeyword ( ( COLON temp= oclType ) | () ) EQ temp= oclExpression )
// ATL_ANTLR3.g:802:5: temp= identifierOrKeyword ( ( COLON temp= oclType ) | () ) EQ temp= oclExpression
{
pushFollow(FOLLOW_identifierOrKeyword_in_tuplePart4625);
temp=identifierOrKeyword();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "varName", temp);
}
// ATL_ANTLR3.g:802:62: ( ( COLON temp= oclType ) | () )
int alt101=2;
int LA101_0 = input.LA(1);
if ( (LA101_0==COLON) ) {
alt101=1;
}
else if ( (LA101_0==EQ) ) {
alt101=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 101, 0, input);
throw nvae;
}
switch (alt101) {
case 1 :
// ATL_ANTLR3.g:802:63: ( COLON temp= oclType )
{
// ATL_ANTLR3.g:802:63: ( COLON temp= oclType )
// ATL_ANTLR3.g:802:64: COLON temp= oclType
{
match(input,COLON,FOLLOW_COLON_in_tuplePart4631); if (state.failed) return ret2;
pushFollow(FOLLOW_oclType_in_tuplePart4635);
temp=oclType();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "type", temp);
}
}
if ( state.backtracking==0 ) {
}
}
break;
case 2 :
// ATL_ANTLR3.g:802:117: ()
{
// ATL_ANTLR3.g:802:117: ()
// ATL_ANTLR3.g:802:118:
{
}
if ( state.backtracking==0 ) {
}
}
break;
}
match(input,EQ,FOLLOW_EQ_in_tuplePart4649); if (state.failed) return ret2;
pushFollow(FOLLOW_oclExpression_in_tuplePart4653);
temp=oclExpression();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "initExpression", temp);
}
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "tuplePart"
// $ANTLR start "oclType"
// ATL_ANTLR3.g:812:1: oclType returns [Object ret2] : ( (ret= oclModelElement | ret= oclAnyType | ret= tupleType | ret= mapType | ret= primitive | ret= collectionType | ret= oclType_abstractContents ) ) ;
public final Object oclType() throws RecognitionException {
Object ret2 = null;
Object ret = null;
try {
// ATL_ANTLR3.g:813:2: ( ( (ret= oclModelElement | ret= oclAnyType | ret= tupleType | ret= mapType | ret= primitive | ret= collectionType | ret= oclType_abstractContents ) ) )
// ATL_ANTLR3.g:813:4: ( (ret= oclModelElement | ret= oclAnyType | ret= tupleType | ret= mapType | ret= primitive | ret= collectionType | ret= oclType_abstractContents ) )
{
// ATL_ANTLR3.g:813:4: ( (ret= oclModelElement | ret= oclAnyType | ret= tupleType | ret= mapType | ret= primitive | ret= collectionType | ret= oclType_abstractContents ) )
// ATL_ANTLR3.g:813:5: (ret= oclModelElement | ret= oclAnyType | ret= tupleType | ret= mapType | ret= primitive | ret= collectionType | ret= oclType_abstractContents )
{
// ATL_ANTLR3.g:813:5: (ret= oclModelElement | ret= oclAnyType | ret= tupleType | ret= mapType | ret= primitive | ret= collectionType | ret= oclType_abstractContents )
int alt102=7;
switch ( input.LA(1) ) {
case NAME:
{
alt102=1;
}
break;
case 87:
{
alt102=2;
}
break;
case 88:
{
alt102=3;
}
break;
case 84:
{
alt102=4;
}
break;
case 89:
case 90:
case 91:
case 92:
{
alt102=5;
}
break;
case 80:
case 81:
case 82:
case 83:
case 93:
{
alt102=6;
}
break;
case 86:
{
alt102=7;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 102, 0, input);
throw nvae;
}
switch (alt102) {
case 1 :
// ATL_ANTLR3.g:813:6: ret= oclModelElement
{
pushFollow(FOLLOW_oclModelElement_in_oclType4690);
ret=oclModelElement();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 2 :
// ATL_ANTLR3.g:813:27: ret= oclAnyType
{
pushFollow(FOLLOW_oclAnyType_in_oclType4695);
ret=oclAnyType();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 3 :
// ATL_ANTLR3.g:813:43: ret= tupleType
{
pushFollow(FOLLOW_tupleType_in_oclType4700);
ret=tupleType();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 4 :
// ATL_ANTLR3.g:813:58: ret= mapType
{
pushFollow(FOLLOW_mapType_in_oclType4705);
ret=mapType();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 5 :
// ATL_ANTLR3.g:813:71: ret= primitive
{
pushFollow(FOLLOW_primitive_in_oclType4710);
ret=primitive();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 6 :
// ATL_ANTLR3.g:813:86: ret= collectionType
{
pushFollow(FOLLOW_collectionType_in_oclType4715);
ret=collectionType();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 7 :
// ATL_ANTLR3.g:813:106: ret= oclType_abstractContents
{
pushFollow(FOLLOW_oclType_abstractContents_in_oclType4720);
ret=oclType_abstractContents();
state._fsp--;
if (state.failed) return ret2;
}
break;
}
}
if ( state.backtracking==0 ) {
ei.addToContext(ret, false);
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "oclType"
// $ANTLR start "oclAnyType"
// ATL_ANTLR3.g:821:1: oclAnyType returns [Object ret2] : ( 'OclAny' ) ;
public final Object oclAnyType() throws RecognitionException {
Object ret2 = null;
Object ret=(state.backtracking==0) ? ei.create("OclAnyType", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:822:2: ( ( 'OclAny' ) )
// ATL_ANTLR3.g:822:4: ( 'OclAny' )
{
// ATL_ANTLR3.g:822:4: ( 'OclAny' )
// ATL_ANTLR3.g:822:5: 'OclAny'
{
match(input,87,FOLLOW_87_in_oclAnyType4753); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "oclAnyType"
// $ANTLR start "tupleType"
// ATL_ANTLR3.g:832:1: tupleType returns [Object ret2] : ( 'TupleType' LPAREN ( (temp= tupleTypeAttribute ( ( ( COMA ) temp= tupleTypeAttribute ) )* ) )? RPAREN ) ;
public final Object tupleType() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("TupleType", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:833:2: ( ( 'TupleType' LPAREN ( (temp= tupleTypeAttribute ( ( ( COMA ) temp= tupleTypeAttribute ) )* ) )? RPAREN ) )
// ATL_ANTLR3.g:833:4: ( 'TupleType' LPAREN ( (temp= tupleTypeAttribute ( ( ( COMA ) temp= tupleTypeAttribute ) )* ) )? RPAREN )
{
// ATL_ANTLR3.g:833:4: ( 'TupleType' LPAREN ( (temp= tupleTypeAttribute ( ( ( COMA ) temp= tupleTypeAttribute ) )* ) )? RPAREN )
// ATL_ANTLR3.g:833:5: 'TupleType' LPAREN ( (temp= tupleTypeAttribute ( ( ( COMA ) temp= tupleTypeAttribute ) )* ) )? RPAREN
{
match(input,88,FOLLOW_88_in_tupleType4785); if (state.failed) return ret2;
match(input,LPAREN,FOLLOW_LPAREN_in_tupleType4787); if (state.failed) return ret2;
// ATL_ANTLR3.g:833:24: ( (temp= tupleTypeAttribute ( ( ( COMA ) temp= tupleTypeAttribute ) )* ) )?
int alt104=2;
int LA104_0 = input.LA(1);
if ( (LA104_0==NAME) ) {
alt104=1;
}
switch (alt104) {
case 1 :
// ATL_ANTLR3.g:833:25: (temp= tupleTypeAttribute ( ( ( COMA ) temp= tupleTypeAttribute ) )* )
{
// ATL_ANTLR3.g:833:25: (temp= tupleTypeAttribute ( ( ( COMA ) temp= tupleTypeAttribute ) )* )
// ATL_ANTLR3.g:833:26: temp= tupleTypeAttribute ( ( ( COMA ) temp= tupleTypeAttribute ) )*
{
pushFollow(FOLLOW_tupleTypeAttribute_in_tupleType4793);
temp=tupleTypeAttribute();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "attributes", temp);
}
// ATL_ANTLR3.g:833:85: ( ( ( COMA ) temp= tupleTypeAttribute ) )*
loop103:
do {
int alt103=2;
int LA103_0 = input.LA(1);
if ( (LA103_0==COMA) ) {
alt103=1;
}
switch (alt103) {
case 1 :
// ATL_ANTLR3.g:833:86: ( ( COMA ) temp= tupleTypeAttribute )
{
// ATL_ANTLR3.g:833:86: ( ( COMA ) temp= tupleTypeAttribute )
// ATL_ANTLR3.g:833:87: ( COMA ) temp= tupleTypeAttribute
{
// ATL_ANTLR3.g:833:87: ( COMA )
// ATL_ANTLR3.g:833:88: COMA
{
match(input,COMA,FOLLOW_COMA_in_tupleType4800); if (state.failed) return ret2;
}
pushFollow(FOLLOW_tupleTypeAttribute_in_tupleType4805);
temp=tupleTypeAttribute();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "attributes", temp);
}
}
}
break;
default :
break loop103;
}
} while (true);
}
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_tupleType4815); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "tupleType"
// $ANTLR start "tupleTypeAttribute"
// ATL_ANTLR3.g:843:1: tupleTypeAttribute returns [Object ret2] : (temp= identifier COLON temp= oclType ) ;
public final Object tupleTypeAttribute() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("TupleTypeAttribute", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:844:2: ( (temp= identifier COLON temp= oclType ) )
// ATL_ANTLR3.g:844:4: (temp= identifier COLON temp= oclType )
{
// ATL_ANTLR3.g:844:4: (temp= identifier COLON temp= oclType )
// ATL_ANTLR3.g:844:5: temp= identifier COLON temp= oclType
{
pushFollow(FOLLOW_identifier_in_tupleTypeAttribute4849);
temp=identifier();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "name", temp);
}
match(input,COLON,FOLLOW_COLON_in_tupleTypeAttribute4853); if (state.failed) return ret2;
pushFollow(FOLLOW_oclType_in_tupleTypeAttribute4857);
temp=oclType();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "type", temp);
}
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "tupleTypeAttribute"
// $ANTLR start "mapType"
// ATL_ANTLR3.g:854:1: mapType returns [Object ret2] : ( 'Map' LPAREN temp= oclType COMA temp= oclType RPAREN ) ;
public final Object mapType() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("MapType", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:855:2: ( ( 'Map' LPAREN temp= oclType COMA temp= oclType RPAREN ) )
// ATL_ANTLR3.g:855:4: ( 'Map' LPAREN temp= oclType COMA temp= oclType RPAREN )
{
// ATL_ANTLR3.g:855:4: ( 'Map' LPAREN temp= oclType COMA temp= oclType RPAREN )
// ATL_ANTLR3.g:855:5: 'Map' LPAREN temp= oclType COMA temp= oclType RPAREN
{
match(input,84,FOLLOW_84_in_mapType4891); if (state.failed) return ret2;
match(input,LPAREN,FOLLOW_LPAREN_in_mapType4893); if (state.failed) return ret2;
pushFollow(FOLLOW_oclType_in_mapType4897);
temp=oclType();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "keyType", temp);
}
match(input,COMA,FOLLOW_COMA_in_mapType4901); if (state.failed) return ret2;
pushFollow(FOLLOW_oclType_in_mapType4905);
temp=oclType();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "valueType", temp);
}
match(input,RPAREN,FOLLOW_RPAREN_in_mapType4909); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "mapType"
// $ANTLR start "primitive"
// ATL_ANTLR3.g:865:1: primitive returns [Object ret2] : ( (ret= numericType | ret= booleanType | ret= stringType ) ) ;
public final Object primitive() throws RecognitionException {
Object ret2 = null;
Object ret = null;
try {
// ATL_ANTLR3.g:866:2: ( ( (ret= numericType | ret= booleanType | ret= stringType ) ) )
// ATL_ANTLR3.g:866:4: ( (ret= numericType | ret= booleanType | ret= stringType ) )
{
// ATL_ANTLR3.g:866:4: ( (ret= numericType | ret= booleanType | ret= stringType ) )
// ATL_ANTLR3.g:866:5: (ret= numericType | ret= booleanType | ret= stringType )
{
// ATL_ANTLR3.g:866:5: (ret= numericType | ret= booleanType | ret= stringType )
int alt105=3;
switch ( input.LA(1) ) {
case 89:
case 90:
{
alt105=1;
}
break;
case 91:
{
alt105=2;
}
break;
case 92:
{
alt105=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 105, 0, input);
throw nvae;
}
switch (alt105) {
case 1 :
// ATL_ANTLR3.g:866:6: ret= numericType
{
pushFollow(FOLLOW_numericType_in_primitive4944);
ret=numericType();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 2 :
// ATL_ANTLR3.g:866:23: ret= booleanType
{
pushFollow(FOLLOW_booleanType_in_primitive4949);
ret=booleanType();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 3 :
// ATL_ANTLR3.g:866:40: ret= stringType
{
pushFollow(FOLLOW_stringType_in_primitive4954);
ret=stringType();
state._fsp--;
if (state.failed) return ret2;
}
break;
}
}
if ( state.backtracking==0 ) {
ei.addToContext(ret, false);
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "primitive"
// $ANTLR start "numericType"
// ATL_ANTLR3.g:874:1: numericType returns [Object ret2] : ( (ret= integerType | ret= realType ) ) ;
public final Object numericType() throws RecognitionException {
Object ret2 = null;
Object ret = null;
try {
// ATL_ANTLR3.g:875:2: ( ( (ret= integerType | ret= realType ) ) )
// ATL_ANTLR3.g:875:4: ( (ret= integerType | ret= realType ) )
{
// ATL_ANTLR3.g:875:4: ( (ret= integerType | ret= realType ) )
// ATL_ANTLR3.g:875:5: (ret= integerType | ret= realType )
{
// ATL_ANTLR3.g:875:5: (ret= integerType | ret= realType )
int alt106=2;
int LA106_0 = input.LA(1);
if ( (LA106_0==89) ) {
alt106=1;
}
else if ( (LA106_0==90) ) {
alt106=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 106, 0, input);
throw nvae;
}
switch (alt106) {
case 1 :
// ATL_ANTLR3.g:875:6: ret= integerType
{
pushFollow(FOLLOW_integerType_in_numericType4990);
ret=integerType();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 2 :
// ATL_ANTLR3.g:875:23: ret= realType
{
pushFollow(FOLLOW_realType_in_numericType4995);
ret=realType();
state._fsp--;
if (state.failed) return ret2;
}
break;
}
}
if ( state.backtracking==0 ) {
ei.addToContext(ret, false);
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "numericType"
// $ANTLR start "integerType"
// ATL_ANTLR3.g:883:1: integerType returns [Object ret2] : ( 'Integer' ) ;
public final Object integerType() throws RecognitionException {
Object ret2 = null;
Object ret=(state.backtracking==0) ? ei.create("IntegerType", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:884:2: ( ( 'Integer' ) )
// ATL_ANTLR3.g:884:4: ( 'Integer' )
{
// ATL_ANTLR3.g:884:4: ( 'Integer' )
// ATL_ANTLR3.g:884:5: 'Integer'
{
match(input,89,FOLLOW_89_in_integerType5028); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "integerType"
// $ANTLR start "realType"
// ATL_ANTLR3.g:894:1: realType returns [Object ret2] : ( 'Real' ) ;
public final Object realType() throws RecognitionException {
Object ret2 = null;
Object ret=(state.backtracking==0) ? ei.create("RealType", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:895:2: ( ( 'Real' ) )
// ATL_ANTLR3.g:895:4: ( 'Real' )
{
// ATL_ANTLR3.g:895:4: ( 'Real' )
// ATL_ANTLR3.g:895:5: 'Real'
{
match(input,90,FOLLOW_90_in_realType5060); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "realType"
// $ANTLR start "booleanType"
// ATL_ANTLR3.g:905:1: booleanType returns [Object ret2] : ( 'Boolean' ) ;
public final Object booleanType() throws RecognitionException {
Object ret2 = null;
Object ret=(state.backtracking==0) ? ei.create("BooleanType", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:906:2: ( ( 'Boolean' ) )
// ATL_ANTLR3.g:906:4: ( 'Boolean' )
{
// ATL_ANTLR3.g:906:4: ( 'Boolean' )
// ATL_ANTLR3.g:906:5: 'Boolean'
{
match(input,91,FOLLOW_91_in_booleanType5092); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "booleanType"
// $ANTLR start "stringType"
// ATL_ANTLR3.g:916:1: stringType returns [Object ret2] : ( 'String' ) ;
public final Object stringType() throws RecognitionException {
Object ret2 = null;
Object ret=(state.backtracking==0) ? ei.create("StringType", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:917:2: ( ( 'String' ) )
// ATL_ANTLR3.g:917:4: ( 'String' )
{
// ATL_ANTLR3.g:917:4: ( 'String' )
// ATL_ANTLR3.g:917:5: 'String'
{
match(input,92,FOLLOW_92_in_stringType5124); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "stringType"
// $ANTLR start "collectionType"
// ATL_ANTLR3.g:927:1: collectionType returns [Object ret2] : ( (ret= bagType | ret= setType | ret= orderedSetType | ret= sequenceType | ret= collectionType_abstractContents ) ) ;
public final Object collectionType() throws RecognitionException {
Object ret2 = null;
Object ret = null;
try {
// ATL_ANTLR3.g:928:2: ( ( (ret= bagType | ret= setType | ret= orderedSetType | ret= sequenceType | ret= collectionType_abstractContents ) ) )
// ATL_ANTLR3.g:928:4: ( (ret= bagType | ret= setType | ret= orderedSetType | ret= sequenceType | ret= collectionType_abstractContents ) )
{
// ATL_ANTLR3.g:928:4: ( (ret= bagType | ret= setType | ret= orderedSetType | ret= sequenceType | ret= collectionType_abstractContents ) )
// ATL_ANTLR3.g:928:5: (ret= bagType | ret= setType | ret= orderedSetType | ret= sequenceType | ret= collectionType_abstractContents )
{
// ATL_ANTLR3.g:928:5: (ret= bagType | ret= setType | ret= orderedSetType | ret= sequenceType | ret= collectionType_abstractContents )
int alt107=5;
switch ( input.LA(1) ) {
case 80:
{
alt107=1;
}
break;
case 81:
{
alt107=2;
}
break;
case 82:
{
alt107=3;
}
break;
case 83:
{
alt107=4;
}
break;
case 93:
{
alt107=5;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 107, 0, input);
throw nvae;
}
switch (alt107) {
case 1 :
// ATL_ANTLR3.g:928:6: ret= bagType
{
pushFollow(FOLLOW_bagType_in_collectionType5159);
ret=bagType();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 2 :
// ATL_ANTLR3.g:928:19: ret= setType
{
pushFollow(FOLLOW_setType_in_collectionType5164);
ret=setType();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 3 :
// ATL_ANTLR3.g:928:32: ret= orderedSetType
{
pushFollow(FOLLOW_orderedSetType_in_collectionType5169);
ret=orderedSetType();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 4 :
// ATL_ANTLR3.g:928:52: ret= sequenceType
{
pushFollow(FOLLOW_sequenceType_in_collectionType5174);
ret=sequenceType();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 5 :
// ATL_ANTLR3.g:928:70: ret= collectionType_abstractContents
{
pushFollow(FOLLOW_collectionType_abstractContents_in_collectionType5179);
ret=collectionType_abstractContents();
state._fsp--;
if (state.failed) return ret2;
}
break;
}
}
if ( state.backtracking==0 ) {
ei.addToContext(ret, false);
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "collectionType"
// $ANTLR start "bagType"
// ATL_ANTLR3.g:936:1: bagType returns [Object ret2] : ( 'Bag' LPAREN temp= oclType RPAREN ) ;
public final Object bagType() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("BagType", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:937:2: ( ( 'Bag' LPAREN temp= oclType RPAREN ) )
// ATL_ANTLR3.g:937:4: ( 'Bag' LPAREN temp= oclType RPAREN )
{
// ATL_ANTLR3.g:937:4: ( 'Bag' LPAREN temp= oclType RPAREN )
// ATL_ANTLR3.g:937:5: 'Bag' LPAREN temp= oclType RPAREN
{
match(input,80,FOLLOW_80_in_bagType5212); if (state.failed) return ret2;
match(input,LPAREN,FOLLOW_LPAREN_in_bagType5214); if (state.failed) return ret2;
pushFollow(FOLLOW_oclType_in_bagType5218);
temp=oclType();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "elementType", temp);
}
match(input,RPAREN,FOLLOW_RPAREN_in_bagType5222); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "bagType"
// $ANTLR start "setType"
// ATL_ANTLR3.g:947:1: setType returns [Object ret2] : ( 'Set' LPAREN temp= oclType RPAREN ) ;
public final Object setType() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("SetType", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:948:2: ( ( 'Set' LPAREN temp= oclType RPAREN ) )
// ATL_ANTLR3.g:948:4: ( 'Set' LPAREN temp= oclType RPAREN )
{
// ATL_ANTLR3.g:948:4: ( 'Set' LPAREN temp= oclType RPAREN )
// ATL_ANTLR3.g:948:5: 'Set' LPAREN temp= oclType RPAREN
{
match(input,81,FOLLOW_81_in_setType5254); if (state.failed) return ret2;
match(input,LPAREN,FOLLOW_LPAREN_in_setType5256); if (state.failed) return ret2;
pushFollow(FOLLOW_oclType_in_setType5260);
temp=oclType();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "elementType", temp);
}
match(input,RPAREN,FOLLOW_RPAREN_in_setType5264); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "setType"
// $ANTLR start "orderedSetType"
// ATL_ANTLR3.g:958:1: orderedSetType returns [Object ret2] : ( 'OrderedSet' LPAREN temp= oclType RPAREN ) ;
public final Object orderedSetType() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("OrderedSetType", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:959:2: ( ( 'OrderedSet' LPAREN temp= oclType RPAREN ) )
// ATL_ANTLR3.g:959:4: ( 'OrderedSet' LPAREN temp= oclType RPAREN )
{
// ATL_ANTLR3.g:959:4: ( 'OrderedSet' LPAREN temp= oclType RPAREN )
// ATL_ANTLR3.g:959:5: 'OrderedSet' LPAREN temp= oclType RPAREN
{
match(input,82,FOLLOW_82_in_orderedSetType5296); if (state.failed) return ret2;
match(input,LPAREN,FOLLOW_LPAREN_in_orderedSetType5298); if (state.failed) return ret2;
pushFollow(FOLLOW_oclType_in_orderedSetType5302);
temp=oclType();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "elementType", temp);
}
match(input,RPAREN,FOLLOW_RPAREN_in_orderedSetType5306); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "orderedSetType"
// $ANTLR start "sequenceType"
// ATL_ANTLR3.g:969:1: sequenceType returns [Object ret2] : ( 'Sequence' LPAREN temp= oclType RPAREN ) ;
public final Object sequenceType() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("SequenceType", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:970:2: ( ( 'Sequence' LPAREN temp= oclType RPAREN ) )
// ATL_ANTLR3.g:970:4: ( 'Sequence' LPAREN temp= oclType RPAREN )
{
// ATL_ANTLR3.g:970:4: ( 'Sequence' LPAREN temp= oclType RPAREN )
// ATL_ANTLR3.g:970:5: 'Sequence' LPAREN temp= oclType RPAREN
{
match(input,83,FOLLOW_83_in_sequenceType5338); if (state.failed) return ret2;
match(input,LPAREN,FOLLOW_LPAREN_in_sequenceType5340); if (state.failed) return ret2;
pushFollow(FOLLOW_oclType_in_sequenceType5344);
temp=oclType();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "elementType", temp);
}
match(input,RPAREN,FOLLOW_RPAREN_in_sequenceType5348); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "sequenceType"
// $ANTLR start "priority_0"
// ATL_ANTLR3.g:980:1: priority_0 returns [Object ret2] : (ret= primary_oclExpression ( ( ( POINT (ret= operationCallExp[opName, ret, firstToken] | ret= navigationOrAttributeCallExp[opName, ret, firstToken] ) ) | ( RARROW (ret= iteratorExp[opName, ret, firstToken] | ret= iterateExp[opName, ret, firstToken] | ret= collectionOperationCallExp[opName, ret, firstToken] ) ) ) )* ) ;
public final Object priority_0() throws RecognitionException {
Object ret2 = null;
Object ret = null;
java.lang.String opName=null; org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:981:2: ( (ret= primary_oclExpression ( ( ( POINT (ret= operationCallExp[opName, ret, firstToken] | ret= navigationOrAttributeCallExp[opName, ret, firstToken] ) ) | ( RARROW (ret= iteratorExp[opName, ret, firstToken] | ret= iterateExp[opName, ret, firstToken] | ret= collectionOperationCallExp[opName, ret, firstToken] ) ) ) )* ) )
// ATL_ANTLR3.g:981:4: (ret= primary_oclExpression ( ( ( POINT (ret= operationCallExp[opName, ret, firstToken] | ret= navigationOrAttributeCallExp[opName, ret, firstToken] ) ) | ( RARROW (ret= iteratorExp[opName, ret, firstToken] | ret= iterateExp[opName, ret, firstToken] | ret= collectionOperationCallExp[opName, ret, firstToken] ) ) ) )* )
{
// ATL_ANTLR3.g:981:4: (ret= primary_oclExpression ( ( ( POINT (ret= operationCallExp[opName, ret, firstToken] | ret= navigationOrAttributeCallExp[opName, ret, firstToken] ) ) | ( RARROW (ret= iteratorExp[opName, ret, firstToken] | ret= iterateExp[opName, ret, firstToken] | ret= collectionOperationCallExp[opName, ret, firstToken] ) ) ) )* )
// ATL_ANTLR3.g:981:5: ret= primary_oclExpression ( ( ( POINT (ret= operationCallExp[opName, ret, firstToken] | ret= navigationOrAttributeCallExp[opName, ret, firstToken] ) ) | ( RARROW (ret= iteratorExp[opName, ret, firstToken] | ret= iterateExp[opName, ret, firstToken] | ret= collectionOperationCallExp[opName, ret, firstToken] ) ) ) )*
{
pushFollow(FOLLOW_primary_oclExpression_in_priority_05382);
ret=primary_oclExpression();
state._fsp--;
if (state.failed) return ret2;
// ATL_ANTLR3.g:981:31: ( ( ( POINT (ret= operationCallExp[opName, ret, firstToken] | ret= navigationOrAttributeCallExp[opName, ret, firstToken] ) ) | ( RARROW (ret= iteratorExp[opName, ret, firstToken] | ret= iterateExp[opName, ret, firstToken] | ret= collectionOperationCallExp[opName, ret, firstToken] ) ) ) )*
loop111:
do {
int alt111=2;
int LA111_0 = input.LA(1);
if ( (LA111_0==RARROW||LA111_0==POINT) ) {
alt111=1;
}
switch (alt111) {
case 1 :
// ATL_ANTLR3.g:981:32: ( ( POINT (ret= operationCallExp[opName, ret, firstToken] | ret= navigationOrAttributeCallExp[opName, ret, firstToken] ) ) | ( RARROW (ret= iteratorExp[opName, ret, firstToken] | ret= iterateExp[opName, ret, firstToken] | ret= collectionOperationCallExp[opName, ret, firstToken] ) ) )
{
// ATL_ANTLR3.g:981:32: ( ( POINT (ret= operationCallExp[opName, ret, firstToken] | ret= navigationOrAttributeCallExp[opName, ret, firstToken] ) ) | ( RARROW (ret= iteratorExp[opName, ret, firstToken] | ret= iterateExp[opName, ret, firstToken] | ret= collectionOperationCallExp[opName, ret, firstToken] ) ) )
int alt110=2;
int LA110_0 = input.LA(1);
if ( (LA110_0==POINT) ) {
alt110=1;
}
else if ( (LA110_0==RARROW) ) {
alt110=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 110, 0, input);
throw nvae;
}
switch (alt110) {
case 1 :
// ATL_ANTLR3.g:981:33: ( POINT (ret= operationCallExp[opName, ret, firstToken] | ret= navigationOrAttributeCallExp[opName, ret, firstToken] ) )
{
// ATL_ANTLR3.g:981:33: ( POINT (ret= operationCallExp[opName, ret, firstToken] | ret= navigationOrAttributeCallExp[opName, ret, firstToken] ) )
// ATL_ANTLR3.g:981:34: POINT (ret= operationCallExp[opName, ret, firstToken] | ret= navigationOrAttributeCallExp[opName, ret, firstToken] )
{
match(input,POINT,FOLLOW_POINT_in_priority_05387); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
opName = ".";
}
// ATL_ANTLR3.g:981:56: (ret= operationCallExp[opName, ret, firstToken] | ret= navigationOrAttributeCallExp[opName, ret, firstToken] )
int alt108=2;
alt108 = dfa108.predict(input);
switch (alt108) {
case 1 :
// ATL_ANTLR3.g:981:57: ret= operationCallExp[opName, ret, firstToken]
{
pushFollow(FOLLOW_operationCallExp_in_priority_05394);
ret=operationCallExp(opName, ret, firstToken);
state._fsp--;
if (state.failed) return ret2;
}
break;
case 2 :
// ATL_ANTLR3.g:981:105: ret= navigationOrAttributeCallExp[opName, ret, firstToken]
{
pushFollow(FOLLOW_navigationOrAttributeCallExp_in_priority_05401);
ret=navigationOrAttributeCallExp(opName, ret, firstToken);
state._fsp--;
if (state.failed) return ret2;
}
break;
}
}
}
break;
case 2 :
// ATL_ANTLR3.g:981:167: ( RARROW (ret= iteratorExp[opName, ret, firstToken] | ret= iterateExp[opName, ret, firstToken] | ret= collectionOperationCallExp[opName, ret, firstToken] ) )
{
// ATL_ANTLR3.g:981:167: ( RARROW (ret= iteratorExp[opName, ret, firstToken] | ret= iterateExp[opName, ret, firstToken] | ret= collectionOperationCallExp[opName, ret, firstToken] ) )
// ATL_ANTLR3.g:981:168: RARROW (ret= iteratorExp[opName, ret, firstToken] | ret= iterateExp[opName, ret, firstToken] | ret= collectionOperationCallExp[opName, ret, firstToken] )
{
match(input,RARROW,FOLLOW_RARROW_in_priority_05409); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
opName = "->";
}
// ATL_ANTLR3.g:981:192: (ret= iteratorExp[opName, ret, firstToken] | ret= iterateExp[opName, ret, firstToken] | ret= collectionOperationCallExp[opName, ret, firstToken] )
int alt109=3;
alt109 = dfa109.predict(input);
switch (alt109) {
case 1 :
// ATL_ANTLR3.g:981:193: ret= iteratorExp[opName, ret, firstToken]
{
pushFollow(FOLLOW_iteratorExp_in_priority_05416);
ret=iteratorExp(opName, ret, firstToken);
state._fsp--;
if (state.failed) return ret2;
}
break;
case 2 :
// ATL_ANTLR3.g:981:236: ret= iterateExp[opName, ret, firstToken]
{
pushFollow(FOLLOW_iterateExp_in_priority_05423);
ret=iterateExp(opName, ret, firstToken);
state._fsp--;
if (state.failed) return ret2;
}
break;
case 3 :
// ATL_ANTLR3.g:981:278: ret= collectionOperationCallExp[opName, ret, firstToken]
{
pushFollow(FOLLOW_collectionOperationCallExp_in_priority_05430);
ret=collectionOperationCallExp(opName, ret, firstToken);
state._fsp--;
if (state.failed) return ret2;
}
break;
}
}
}
break;
}
}
break;
default :
break loop111;
}
} while (true);
}
if ( state.backtracking==0 ) {
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "priority_0"
// $ANTLR start "priority_1"
// ATL_ANTLR3.g:988:1: priority_1 returns [Object ret2] : ( ( 'not' (ret= operatorCallExp[opName, right, firstToken] right= priority_0 ) ) | ( MINUS (ret= operatorCallExp[opName, right, firstToken] right= priority_0 ) ) | (ret= priority_0 ) ) ;
public final Object priority_1() throws RecognitionException {
Object ret2 = null;
Object ret = null;
Object right = null;
java.lang.String opName=null; org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:989:2: ( ( ( 'not' (ret= operatorCallExp[opName, right, firstToken] right= priority_0 ) ) | ( MINUS (ret= operatorCallExp[opName, right, firstToken] right= priority_0 ) ) | (ret= priority_0 ) ) )
// ATL_ANTLR3.g:989:4: ( ( 'not' (ret= operatorCallExp[opName, right, firstToken] right= priority_0 ) ) | ( MINUS (ret= operatorCallExp[opName, right, firstToken] right= priority_0 ) ) | (ret= priority_0 ) )
{
// ATL_ANTLR3.g:989:4: ( ( 'not' (ret= operatorCallExp[opName, right, firstToken] right= priority_0 ) ) | ( MINUS (ret= operatorCallExp[opName, right, firstToken] right= priority_0 ) ) | (ret= priority_0 ) )
int alt112=3;
switch ( input.LA(1) ) {
case 94:
{
alt112=1;
}
break;
case MINUS:
{
alt112=2;
}
break;
case NAME:
case STRING:
case INT:
case FLOAT:
case LPAREN:
case SHARP:
case 69:
case 73:
case 74:
case 75:
case 78:
case 80:
case 81:
case 82:
case 83:
case 84:
case 85:
case 86:
case 87:
case 88:
case 89:
case 90:
case 91:
case 92:
case 93:
{
alt112=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 112, 0, input);
throw nvae;
}
switch (alt112) {
case 1 :
// ATL_ANTLR3.g:989:5: ( 'not' (ret= operatorCallExp[opName, right, firstToken] right= priority_0 ) )
{
// ATL_ANTLR3.g:989:5: ( 'not' (ret= operatorCallExp[opName, right, firstToken] right= priority_0 ) )
// ATL_ANTLR3.g:989:6: 'not' (ret= operatorCallExp[opName, right, firstToken] right= priority_0 )
{
match(input,94,FOLLOW_94_in_priority_15470); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
opName = "not";
}
// ATL_ANTLR3.g:989:30: (ret= operatorCallExp[opName, right, firstToken] right= priority_0 )
// ATL_ANTLR3.g:989:31: ret= operatorCallExp[opName, right, firstToken] right= priority_0
{
pushFollow(FOLLOW_operatorCallExp_in_priority_15477);
ret=operatorCallExp(opName, right, firstToken);
state._fsp--;
if (state.failed) return ret2;
pushFollow(FOLLOW_priority_0_in_priority_15482);
right=priority_0();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "source", right);if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
}
}
}
}
break;
case 2 :
// ATL_ANTLR3.g:990:71: ( MINUS (ret= operatorCallExp[opName, right, firstToken] right= priority_0 ) )
{
// ATL_ANTLR3.g:990:71: ( MINUS (ret= operatorCallExp[opName, right, firstToken] right= priority_0 ) )
// ATL_ANTLR3.g:990:72: MINUS (ret= operatorCallExp[opName, right, firstToken] right= priority_0 )
{
match(input,MINUS,FOLLOW_MINUS_in_priority_15490); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
opName = "-";
}
// ATL_ANTLR3.g:990:94: (ret= operatorCallExp[opName, right, firstToken] right= priority_0 )
// ATL_ANTLR3.g:990:95: ret= operatorCallExp[opName, right, firstToken] right= priority_0
{
pushFollow(FOLLOW_operatorCallExp_in_priority_15497);
ret=operatorCallExp(opName, right, firstToken);
state._fsp--;
if (state.failed) return ret2;
pushFollow(FOLLOW_priority_0_in_priority_15502);
right=priority_0();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "source", right);if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
}
}
}
}
break;
case 3 :
// ATL_ANTLR3.g:991:71: (ret= priority_0 )
{
// ATL_ANTLR3.g:991:71: (ret= priority_0 )
// ATL_ANTLR3.g:991:72: ret= priority_0
{
pushFollow(FOLLOW_priority_0_in_priority_15512);
ret=priority_0();
state._fsp--;
if (state.failed) return ret2;
}
}
break;
}
if ( state.backtracking==0 ) {
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "priority_1"
// $ANTLR start "priority_2"
// ATL_ANTLR3.g:998:1: priority_2 returns [Object ret2] : (ret= priority_1 ( ( ( STAR (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) ) | ( SLASH (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) ) | ( 'div' (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) ) | ( 'mod' (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) ) ) )* ) ;
public final Object priority_2() throws RecognitionException {
Object ret2 = null;
Object ret = null;
Object right = null;
java.lang.String opName=null; org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:999:2: ( (ret= priority_1 ( ( ( STAR (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) ) | ( SLASH (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) ) | ( 'div' (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) ) | ( 'mod' (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) ) ) )* ) )
// ATL_ANTLR3.g:999:4: (ret= priority_1 ( ( ( STAR (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) ) | ( SLASH (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) ) | ( 'div' (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) ) | ( 'mod' (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) ) ) )* )
{
// ATL_ANTLR3.g:999:4: (ret= priority_1 ( ( ( STAR (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) ) | ( SLASH (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) ) | ( 'div' (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) ) | ( 'mod' (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) ) ) )* )
// ATL_ANTLR3.g:999:5: ret= priority_1 ( ( ( STAR (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) ) | ( SLASH (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) ) | ( 'div' (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) ) | ( 'mod' (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) ) ) )*
{
pushFollow(FOLLOW_priority_1_in_priority_25547);
ret=priority_1();
state._fsp--;
if (state.failed) return ret2;
// ATL_ANTLR3.g:999:20: ( ( ( STAR (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) ) | ( SLASH (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) ) | ( 'div' (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) ) | ( 'mod' (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) ) ) )*
loop114:
do {
int alt114=2;
int LA114_0 = input.LA(1);
if ( ((LA114_0>=STAR && LA114_0<=SLASH)||(LA114_0>=95 && LA114_0<=96)) ) {
alt114=1;
}
switch (alt114) {
case 1 :
// ATL_ANTLR3.g:999:21: ( ( STAR (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) ) | ( SLASH (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) ) | ( 'div' (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) ) | ( 'mod' (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) ) )
{
// ATL_ANTLR3.g:999:21: ( ( STAR (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) ) | ( SLASH (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) ) | ( 'div' (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) ) | ( 'mod' (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) ) )
int alt113=4;
switch ( input.LA(1) ) {
case STAR:
{
alt113=1;
}
break;
case SLASH:
{
alt113=2;
}
break;
case 95:
{
alt113=3;
}
break;
case 96:
{
alt113=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 113, 0, input);
throw nvae;
}
switch (alt113) {
case 1 :
// ATL_ANTLR3.g:999:22: ( STAR (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) )
{
// ATL_ANTLR3.g:999:22: ( STAR (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) )
// ATL_ANTLR3.g:999:23: STAR (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 )
{
match(input,STAR,FOLLOW_STAR_in_priority_25552); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
opName = "*";
}
// ATL_ANTLR3.g:999:44: (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 )
// ATL_ANTLR3.g:999:45: ret= operatorCallExp[opName, ret, firstToken] right= priority_1
{
pushFollow(FOLLOW_operatorCallExp_in_priority_25559);
ret=operatorCallExp(opName, ret, firstToken);
state._fsp--;
if (state.failed) return ret2;
pushFollow(FOLLOW_priority_1_in_priority_25564);
right=priority_1();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "arguments", right);if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
}
}
}
}
break;
case 2 :
// ATL_ANTLR3.g:1000:71: ( SLASH (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) )
{
// ATL_ANTLR3.g:1000:71: ( SLASH (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) )
// ATL_ANTLR3.g:1000:72: SLASH (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 )
{
match(input,SLASH,FOLLOW_SLASH_in_priority_25572); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
opName = "/";
}
// ATL_ANTLR3.g:1000:94: (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 )
// ATL_ANTLR3.g:1000:95: ret= operatorCallExp[opName, ret, firstToken] right= priority_1
{
pushFollow(FOLLOW_operatorCallExp_in_priority_25579);
ret=operatorCallExp(opName, ret, firstToken);
state._fsp--;
if (state.failed) return ret2;
pushFollow(FOLLOW_priority_1_in_priority_25584);
right=priority_1();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "arguments", right);if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
}
}
}
}
break;
case 3 :
// ATL_ANTLR3.g:1001:71: ( 'div' (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) )
{
// ATL_ANTLR3.g:1001:71: ( 'div' (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) )
// ATL_ANTLR3.g:1001:72: 'div' (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 )
{
match(input,95,FOLLOW_95_in_priority_25592); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
opName = "div";
}
// ATL_ANTLR3.g:1001:96: (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 )
// ATL_ANTLR3.g:1001:97: ret= operatorCallExp[opName, ret, firstToken] right= priority_1
{
pushFollow(FOLLOW_operatorCallExp_in_priority_25599);
ret=operatorCallExp(opName, ret, firstToken);
state._fsp--;
if (state.failed) return ret2;
pushFollow(FOLLOW_priority_1_in_priority_25604);
right=priority_1();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "arguments", right);if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
}
}
}
}
break;
case 4 :
// ATL_ANTLR3.g:1002:71: ( 'mod' (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) )
{
// ATL_ANTLR3.g:1002:71: ( 'mod' (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 ) )
// ATL_ANTLR3.g:1002:72: 'mod' (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 )
{
match(input,96,FOLLOW_96_in_priority_25612); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
opName = "mod";
}
// ATL_ANTLR3.g:1002:96: (ret= operatorCallExp[opName, ret, firstToken] right= priority_1 )
// ATL_ANTLR3.g:1002:97: ret= operatorCallExp[opName, ret, firstToken] right= priority_1
{
pushFollow(FOLLOW_operatorCallExp_in_priority_25619);
ret=operatorCallExp(opName, ret, firstToken);
state._fsp--;
if (state.failed) return ret2;
pushFollow(FOLLOW_priority_1_in_priority_25624);
right=priority_1();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "arguments", right);if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
}
}
}
}
break;
}
}
break;
default :
break loop114;
}
} while (true);
}
if ( state.backtracking==0 ) {
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "priority_2"
// $ANTLR start "priority_3"
// ATL_ANTLR3.g:1010:1: priority_3 returns [Object ret2] : (ret= priority_2 ( ( ( PLUS (ret= operatorCallExp[opName, ret, firstToken] right= priority_2 ) ) | ( MINUS (ret= operatorCallExp[opName, ret, firstToken] right= priority_2 ) ) ) )* ) ;
public final Object priority_3() throws RecognitionException {
Object ret2 = null;
Object ret = null;
Object right = null;
java.lang.String opName=null; org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:1011:2: ( (ret= priority_2 ( ( ( PLUS (ret= operatorCallExp[opName, ret, firstToken] right= priority_2 ) ) | ( MINUS (ret= operatorCallExp[opName, ret, firstToken] right= priority_2 ) ) ) )* ) )
// ATL_ANTLR3.g:1011:4: (ret= priority_2 ( ( ( PLUS (ret= operatorCallExp[opName, ret, firstToken] right= priority_2 ) ) | ( MINUS (ret= operatorCallExp[opName, ret, firstToken] right= priority_2 ) ) ) )* )
{
// ATL_ANTLR3.g:1011:4: (ret= priority_2 ( ( ( PLUS (ret= operatorCallExp[opName, ret, firstToken] right= priority_2 ) ) | ( MINUS (ret= operatorCallExp[opName, ret, firstToken] right= priority_2 ) ) ) )* )
// ATL_ANTLR3.g:1011:5: ret= priority_2 ( ( ( PLUS (ret= operatorCallExp[opName, ret, firstToken] right= priority_2 ) ) | ( MINUS (ret= operatorCallExp[opName, ret, firstToken] right= priority_2 ) ) ) )*
{
pushFollow(FOLLOW_priority_2_in_priority_35665);
ret=priority_2();
state._fsp--;
if (state.failed) return ret2;
// ATL_ANTLR3.g:1011:20: ( ( ( PLUS (ret= operatorCallExp[opName, ret, firstToken] right= priority_2 ) ) | ( MINUS (ret= operatorCallExp[opName, ret, firstToken] right= priority_2 ) ) ) )*
loop116:
do {
int alt116=2;
int LA116_0 = input.LA(1);
if ( (LA116_0==MINUS||LA116_0==PLUS) ) {
alt116=1;
}
switch (alt116) {
case 1 :
// ATL_ANTLR3.g:1011:21: ( ( PLUS (ret= operatorCallExp[opName, ret, firstToken] right= priority_2 ) ) | ( MINUS (ret= operatorCallExp[opName, ret, firstToken] right= priority_2 ) ) )
{
// ATL_ANTLR3.g:1011:21: ( ( PLUS (ret= operatorCallExp[opName, ret, firstToken] right= priority_2 ) ) | ( MINUS (ret= operatorCallExp[opName, ret, firstToken] right= priority_2 ) ) )
int alt115=2;
int LA115_0 = input.LA(1);
if ( (LA115_0==PLUS) ) {
alt115=1;
}
else if ( (LA115_0==MINUS) ) {
alt115=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 115, 0, input);
throw nvae;
}
switch (alt115) {
case 1 :
// ATL_ANTLR3.g:1011:22: ( PLUS (ret= operatorCallExp[opName, ret, firstToken] right= priority_2 ) )
{
// ATL_ANTLR3.g:1011:22: ( PLUS (ret= operatorCallExp[opName, ret, firstToken] right= priority_2 ) )
// ATL_ANTLR3.g:1011:23: PLUS (ret= operatorCallExp[opName, ret, firstToken] right= priority_2 )
{
match(input,PLUS,FOLLOW_PLUS_in_priority_35670); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
opName = "+";
}
// ATL_ANTLR3.g:1011:44: (ret= operatorCallExp[opName, ret, firstToken] right= priority_2 )
// ATL_ANTLR3.g:1011:45: ret= operatorCallExp[opName, ret, firstToken] right= priority_2
{
pushFollow(FOLLOW_operatorCallExp_in_priority_35677);
ret=operatorCallExp(opName, ret, firstToken);
state._fsp--;
if (state.failed) return ret2;
pushFollow(FOLLOW_priority_2_in_priority_35682);
right=priority_2();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "arguments", right);if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
}
}
}
}
break;
case 2 :
// ATL_ANTLR3.g:1012:71: ( MINUS (ret= operatorCallExp[opName, ret, firstToken] right= priority_2 ) )
{
// ATL_ANTLR3.g:1012:71: ( MINUS (ret= operatorCallExp[opName, ret, firstToken] right= priority_2 ) )
// ATL_ANTLR3.g:1012:72: MINUS (ret= operatorCallExp[opName, ret, firstToken] right= priority_2 )
{
match(input,MINUS,FOLLOW_MINUS_in_priority_35690); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
opName = "-";
}
// ATL_ANTLR3.g:1012:94: (ret= operatorCallExp[opName, ret, firstToken] right= priority_2 )
// ATL_ANTLR3.g:1012:95: ret= operatorCallExp[opName, ret, firstToken] right= priority_2
{
pushFollow(FOLLOW_operatorCallExp_in_priority_35697);
ret=operatorCallExp(opName, ret, firstToken);
state._fsp--;
if (state.failed) return ret2;
pushFollow(FOLLOW_priority_2_in_priority_35702);
right=priority_2();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "arguments", right);if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
}
}
}
}
break;
}
}
break;
default :
break loop116;
}
} while (true);
}
if ( state.backtracking==0 ) {
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "priority_3"
// $ANTLR start "priority_4"
// ATL_ANTLR3.g:1020:1: priority_4 returns [Object ret2] : (ret= priority_3 ( ( ( EQ (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( GT (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( LT (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( GE (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( LE (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( NE (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) ) )* ) ;
public final Object priority_4() throws RecognitionException {
Object ret2 = null;
Object ret = null;
Object right = null;
java.lang.String opName=null; org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:1021:2: ( (ret= priority_3 ( ( ( EQ (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( GT (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( LT (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( GE (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( LE (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( NE (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) ) )* ) )
// ATL_ANTLR3.g:1021:4: (ret= priority_3 ( ( ( EQ (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( GT (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( LT (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( GE (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( LE (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( NE (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) ) )* )
{
// ATL_ANTLR3.g:1021:4: (ret= priority_3 ( ( ( EQ (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( GT (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( LT (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( GE (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( LE (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( NE (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) ) )* )
// ATL_ANTLR3.g:1021:5: ret= priority_3 ( ( ( EQ (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( GT (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( LT (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( GE (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( LE (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( NE (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) ) )*
{
pushFollow(FOLLOW_priority_3_in_priority_45743);
ret=priority_3();
state._fsp--;
if (state.failed) return ret2;
// ATL_ANTLR3.g:1021:20: ( ( ( EQ (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( GT (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( LT (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( GE (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( LE (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( NE (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) ) )*
loop118:
do {
int alt118=2;
int LA118_0 = input.LA(1);
if ( (LA118_0==EQ||(LA118_0>=GT && LA118_0<=NE)) ) {
alt118=1;
}
switch (alt118) {
case 1 :
// ATL_ANTLR3.g:1021:21: ( ( EQ (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( GT (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( LT (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( GE (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( LE (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( NE (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) )
{
// ATL_ANTLR3.g:1021:21: ( ( EQ (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( GT (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( LT (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( GE (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( LE (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) | ( NE (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) ) )
int alt117=6;
switch ( input.LA(1) ) {
case EQ:
{
alt117=1;
}
break;
case GT:
{
alt117=2;
}
break;
case LT:
{
alt117=3;
}
break;
case GE:
{
alt117=4;
}
break;
case LE:
{
alt117=5;
}
break;
case NE:
{
alt117=6;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 117, 0, input);
throw nvae;
}
switch (alt117) {
case 1 :
// ATL_ANTLR3.g:1021:22: ( EQ (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) )
{
// ATL_ANTLR3.g:1021:22: ( EQ (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) )
// ATL_ANTLR3.g:1021:23: EQ (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 )
{
match(input,EQ,FOLLOW_EQ_in_priority_45748); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
opName = "=";
}
// ATL_ANTLR3.g:1021:42: (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 )
// ATL_ANTLR3.g:1021:43: ret= operatorCallExp[opName, ret, firstToken] right= priority_3
{
pushFollow(FOLLOW_operatorCallExp_in_priority_45755);
ret=operatorCallExp(opName, ret, firstToken);
state._fsp--;
if (state.failed) return ret2;
pushFollow(FOLLOW_priority_3_in_priority_45760);
right=priority_3();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "arguments", right);if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
}
}
}
}
break;
case 2 :
// ATL_ANTLR3.g:1022:71: ( GT (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) )
{
// ATL_ANTLR3.g:1022:71: ( GT (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) )
// ATL_ANTLR3.g:1022:72: GT (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 )
{
match(input,GT,FOLLOW_GT_in_priority_45768); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
opName = ">";
}
// ATL_ANTLR3.g:1022:91: (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 )
// ATL_ANTLR3.g:1022:92: ret= operatorCallExp[opName, ret, firstToken] right= priority_3
{
pushFollow(FOLLOW_operatorCallExp_in_priority_45775);
ret=operatorCallExp(opName, ret, firstToken);
state._fsp--;
if (state.failed) return ret2;
pushFollow(FOLLOW_priority_3_in_priority_45780);
right=priority_3();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "arguments", right);if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
}
}
}
}
break;
case 3 :
// ATL_ANTLR3.g:1023:71: ( LT (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) )
{
// ATL_ANTLR3.g:1023:71: ( LT (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) )
// ATL_ANTLR3.g:1023:72: LT (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 )
{
match(input,LT,FOLLOW_LT_in_priority_45788); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
opName = "<";
}
// ATL_ANTLR3.g:1023:91: (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 )
// ATL_ANTLR3.g:1023:92: ret= operatorCallExp[opName, ret, firstToken] right= priority_3
{
pushFollow(FOLLOW_operatorCallExp_in_priority_45795);
ret=operatorCallExp(opName, ret, firstToken);
state._fsp--;
if (state.failed) return ret2;
pushFollow(FOLLOW_priority_3_in_priority_45800);
right=priority_3();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "arguments", right);if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
}
}
}
}
break;
case 4 :
// ATL_ANTLR3.g:1024:71: ( GE (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) )
{
// ATL_ANTLR3.g:1024:71: ( GE (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) )
// ATL_ANTLR3.g:1024:72: GE (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 )
{
match(input,GE,FOLLOW_GE_in_priority_45808); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
opName = ">=";
}
// ATL_ANTLR3.g:1024:92: (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 )
// ATL_ANTLR3.g:1024:93: ret= operatorCallExp[opName, ret, firstToken] right= priority_3
{
pushFollow(FOLLOW_operatorCallExp_in_priority_45815);
ret=operatorCallExp(opName, ret, firstToken);
state._fsp--;
if (state.failed) return ret2;
pushFollow(FOLLOW_priority_3_in_priority_45820);
right=priority_3();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "arguments", right);if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
}
}
}
}
break;
case 5 :
// ATL_ANTLR3.g:1025:71: ( LE (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) )
{
// ATL_ANTLR3.g:1025:71: ( LE (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) )
// ATL_ANTLR3.g:1025:72: LE (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 )
{
match(input,LE,FOLLOW_LE_in_priority_45828); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
opName = "<=";
}
// ATL_ANTLR3.g:1025:92: (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 )
// ATL_ANTLR3.g:1025:93: ret= operatorCallExp[opName, ret, firstToken] right= priority_3
{
pushFollow(FOLLOW_operatorCallExp_in_priority_45835);
ret=operatorCallExp(opName, ret, firstToken);
state._fsp--;
if (state.failed) return ret2;
pushFollow(FOLLOW_priority_3_in_priority_45840);
right=priority_3();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "arguments", right);if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
}
}
}
}
break;
case 6 :
// ATL_ANTLR3.g:1026:71: ( NE (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) )
{
// ATL_ANTLR3.g:1026:71: ( NE (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 ) )
// ATL_ANTLR3.g:1026:72: NE (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 )
{
match(input,NE,FOLLOW_NE_in_priority_45848); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
opName = "<>";
}
// ATL_ANTLR3.g:1026:92: (ret= operatorCallExp[opName, ret, firstToken] right= priority_3 )
// ATL_ANTLR3.g:1026:93: ret= operatorCallExp[opName, ret, firstToken] right= priority_3
{
pushFollow(FOLLOW_operatorCallExp_in_priority_45855);
ret=operatorCallExp(opName, ret, firstToken);
state._fsp--;
if (state.failed) return ret2;
pushFollow(FOLLOW_priority_3_in_priority_45860);
right=priority_3();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "arguments", right);if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
}
}
}
}
break;
}
}
break;
default :
break loop118;
}
} while (true);
}
if ( state.backtracking==0 ) {
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "priority_4"
// $ANTLR start "priority_5"
// ATL_ANTLR3.g:1034:1: priority_5 returns [Object ret2] : (ret= priority_4 ( ( ( 'and' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) ) | ( 'or' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) ) | ( 'xor' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) ) | ( 'implies' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) ) ) )* ) ;
public final Object priority_5() throws RecognitionException {
Object ret2 = null;
Object ret = null;
Object right = null;
java.lang.String opName=null; org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:1035:2: ( (ret= priority_4 ( ( ( 'and' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) ) | ( 'or' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) ) | ( 'xor' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) ) | ( 'implies' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) ) ) )* ) )
// ATL_ANTLR3.g:1035:4: (ret= priority_4 ( ( ( 'and' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) ) | ( 'or' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) ) | ( 'xor' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) ) | ( 'implies' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) ) ) )* )
{
// ATL_ANTLR3.g:1035:4: (ret= priority_4 ( ( ( 'and' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) ) | ( 'or' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) ) | ( 'xor' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) ) | ( 'implies' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) ) ) )* )
// ATL_ANTLR3.g:1035:5: ret= priority_4 ( ( ( 'and' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) ) | ( 'or' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) ) | ( 'xor' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) ) | ( 'implies' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) ) ) )*
{
pushFollow(FOLLOW_priority_4_in_priority_55901);
ret=priority_4();
state._fsp--;
if (state.failed) return ret2;
// ATL_ANTLR3.g:1035:20: ( ( ( 'and' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) ) | ( 'or' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) ) | ( 'xor' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) ) | ( 'implies' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) ) ) )*
loop120:
do {
int alt120=2;
int LA120_0 = input.LA(1);
if ( ((LA120_0>=97 && LA120_0<=100)) ) {
alt120=1;
}
switch (alt120) {
case 1 :
// ATL_ANTLR3.g:1035:21: ( ( 'and' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) ) | ( 'or' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) ) | ( 'xor' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) ) | ( 'implies' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) ) )
{
// ATL_ANTLR3.g:1035:21: ( ( 'and' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) ) | ( 'or' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) ) | ( 'xor' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) ) | ( 'implies' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) ) )
int alt119=4;
switch ( input.LA(1) ) {
case 97:
{
alt119=1;
}
break;
case 98:
{
alt119=2;
}
break;
case 99:
{
alt119=3;
}
break;
case 100:
{
alt119=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 119, 0, input);
throw nvae;
}
switch (alt119) {
case 1 :
// ATL_ANTLR3.g:1035:22: ( 'and' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) )
{
// ATL_ANTLR3.g:1035:22: ( 'and' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) )
// ATL_ANTLR3.g:1035:23: 'and' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 )
{
match(input,97,FOLLOW_97_in_priority_55906); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
opName = "and";
}
// ATL_ANTLR3.g:1035:47: (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 )
// ATL_ANTLR3.g:1035:48: ret= operatorCallExp[opName, ret, firstToken] right= priority_4
{
pushFollow(FOLLOW_operatorCallExp_in_priority_55913);
ret=operatorCallExp(opName, ret, firstToken);
state._fsp--;
if (state.failed) return ret2;
pushFollow(FOLLOW_priority_4_in_priority_55918);
right=priority_4();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "arguments", right);if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
}
}
}
}
break;
case 2 :
// ATL_ANTLR3.g:1036:71: ( 'or' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) )
{
// ATL_ANTLR3.g:1036:71: ( 'or' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) )
// ATL_ANTLR3.g:1036:72: 'or' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 )
{
match(input,98,FOLLOW_98_in_priority_55926); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
opName = "or";
}
// ATL_ANTLR3.g:1036:94: (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 )
// ATL_ANTLR3.g:1036:95: ret= operatorCallExp[opName, ret, firstToken] right= priority_4
{
pushFollow(FOLLOW_operatorCallExp_in_priority_55933);
ret=operatorCallExp(opName, ret, firstToken);
state._fsp--;
if (state.failed) return ret2;
pushFollow(FOLLOW_priority_4_in_priority_55938);
right=priority_4();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "arguments", right);if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
}
}
}
}
break;
case 3 :
// ATL_ANTLR3.g:1037:71: ( 'xor' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) )
{
// ATL_ANTLR3.g:1037:71: ( 'xor' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) )
// ATL_ANTLR3.g:1037:72: 'xor' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 )
{
match(input,99,FOLLOW_99_in_priority_55946); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
opName = "xor";
}
// ATL_ANTLR3.g:1037:96: (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 )
// ATL_ANTLR3.g:1037:97: ret= operatorCallExp[opName, ret, firstToken] right= priority_4
{
pushFollow(FOLLOW_operatorCallExp_in_priority_55953);
ret=operatorCallExp(opName, ret, firstToken);
state._fsp--;
if (state.failed) return ret2;
pushFollow(FOLLOW_priority_4_in_priority_55958);
right=priority_4();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "arguments", right);if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
}
}
}
}
break;
case 4 :
// ATL_ANTLR3.g:1038:71: ( 'implies' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) )
{
// ATL_ANTLR3.g:1038:71: ( 'implies' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 ) )
// ATL_ANTLR3.g:1038:72: 'implies' (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 )
{
match(input,100,FOLLOW_100_in_priority_55966); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
opName = "implies";
}
// ATL_ANTLR3.g:1038:104: (ret= operatorCallExp[opName, ret, firstToken] right= priority_4 )
// ATL_ANTLR3.g:1038:105: ret= operatorCallExp[opName, ret, firstToken] right= priority_4
{
pushFollow(FOLLOW_operatorCallExp_in_priority_55973);
ret=operatorCallExp(opName, ret, firstToken);
state._fsp--;
if (state.failed) return ret2;
pushFollow(FOLLOW_priority_4_in_priority_55978);
right=priority_4();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "arguments", right);if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
}
}
}
}
break;
}
}
break;
default :
break loop120;
}
} while (true);
}
if ( state.backtracking==0 ) {
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "priority_5"
// $ANTLR start "matchedRule_abstractContents"
// ATL_ANTLR3.g:1046:1: matchedRule_abstractContents returns [Object ret2] : ( ( ( 'nodefault' ) | () ) ( ( 'abstract' ) | () ) ( ( 'refining' ) | () ) 'rule' temp= identifier ( ( 'extends' temp= identifier ) | () ) LCURLY ( (temp= inPattern ( ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY ) | () ) ( (temp= outPattern ) | () ) ( (temp= actionBlock ) | () ) ) ) RCURLY ) ;
public final Object matchedRule_abstractContents() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("MatchedRule", true, true) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:1047:2: ( ( ( ( 'nodefault' ) | () ) ( ( 'abstract' ) | () ) ( ( 'refining' ) | () ) 'rule' temp= identifier ( ( 'extends' temp= identifier ) | () ) LCURLY ( (temp= inPattern ( ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY ) | () ) ( (temp= outPattern ) | () ) ( (temp= actionBlock ) | () ) ) ) RCURLY ) )
// ATL_ANTLR3.g:1047:4: ( ( ( 'nodefault' ) | () ) ( ( 'abstract' ) | () ) ( ( 'refining' ) | () ) 'rule' temp= identifier ( ( 'extends' temp= identifier ) | () ) LCURLY ( (temp= inPattern ( ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY ) | () ) ( (temp= outPattern ) | () ) ( (temp= actionBlock ) | () ) ) ) RCURLY )
{
// ATL_ANTLR3.g:1047:4: ( ( ( 'nodefault' ) | () ) ( ( 'abstract' ) | () ) ( ( 'refining' ) | () ) 'rule' temp= identifier ( ( 'extends' temp= identifier ) | () ) LCURLY ( (temp= inPattern ( ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY ) | () ) ( (temp= outPattern ) | () ) ( (temp= actionBlock ) | () ) ) ) RCURLY )
// ATL_ANTLR3.g:1047:5: ( ( 'nodefault' ) | () ) ( ( 'abstract' ) | () ) ( ( 'refining' ) | () ) 'rule' temp= identifier ( ( 'extends' temp= identifier ) | () ) LCURLY ( (temp= inPattern ( ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY ) | () ) ( (temp= outPattern ) | () ) ( (temp= actionBlock ) | () ) ) ) RCURLY
{
// ATL_ANTLR3.g:1047:5: ( ( 'nodefault' ) | () )
int alt121=2;
int LA121_0 = input.LA(1);
if ( (LA121_0==53) ) {
alt121=1;
}
else if ( (LA121_0==45||(LA121_0>=54 && LA121_0<=55)) ) {
alt121=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 121, 0, input);
throw nvae;
}
switch (alt121) {
case 1 :
// ATL_ANTLR3.g:1047:6: ( 'nodefault' )
{
// ATL_ANTLR3.g:1047:6: ( 'nodefault' )
// ATL_ANTLR3.g:1047:7: 'nodefault'
{
match(input,53,FOLLOW_53_in_matchedRule_abstractContents6019); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.set(ret, "isNoDefault", java.lang.Boolean.TRUE);
}
}
break;
case 2 :
// ATL_ANTLR3.g:1047:75: ()
{
// ATL_ANTLR3.g:1047:75: ()
// ATL_ANTLR3.g:1047:76:
{
}
if ( state.backtracking==0 ) {
ei.set(ret, "isNoDefault", java.lang.Boolean.FALSE);
}
}
break;
}
// ATL_ANTLR3.g:1047:134: ( ( 'abstract' ) | () )
int alt122=2;
int LA122_0 = input.LA(1);
if ( (LA122_0==54) ) {
alt122=1;
}
else if ( (LA122_0==45||LA122_0==55) ) {
alt122=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 122, 0, input);
throw nvae;
}
switch (alt122) {
case 1 :
// ATL_ANTLR3.g:1047:135: ( 'abstract' )
{
// ATL_ANTLR3.g:1047:135: ( 'abstract' )
// ATL_ANTLR3.g:1047:136: 'abstract'
{
match(input,54,FOLLOW_54_in_matchedRule_abstractContents6033); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.set(ret, "isAbstract", java.lang.Boolean.TRUE);
}
}
break;
case 2 :
// ATL_ANTLR3.g:1047:202: ()
{
// ATL_ANTLR3.g:1047:202: ()
// ATL_ANTLR3.g:1047:203:
{
}
if ( state.backtracking==0 ) {
ei.set(ret, "isAbstract", java.lang.Boolean.FALSE);
}
}
break;
}
// ATL_ANTLR3.g:1047:260: ( ( 'refining' ) | () )
int alt123=2;
int LA123_0 = input.LA(1);
if ( (LA123_0==45) ) {
alt123=1;
}
else if ( (LA123_0==55) ) {
alt123=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 123, 0, input);
throw nvae;
}
switch (alt123) {
case 1 :
// ATL_ANTLR3.g:1047:261: ( 'refining' )
{
// ATL_ANTLR3.g:1047:261: ( 'refining' )
// ATL_ANTLR3.g:1047:262: 'refining'
{
match(input,45,FOLLOW_45_in_matchedRule_abstractContents6047); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.set(ret, "isRefining", java.lang.Boolean.TRUE);
}
}
break;
case 2 :
// ATL_ANTLR3.g:1047:328: ()
{
// ATL_ANTLR3.g:1047:328: ()
// ATL_ANTLR3.g:1047:329:
{
}
if ( state.backtracking==0 ) {
ei.set(ret, "isRefining", java.lang.Boolean.FALSE);
}
}
break;
}
match(input,55,FOLLOW_55_in_matchedRule_abstractContents6059); if (state.failed) return ret2;
pushFollow(FOLLOW_identifier_in_matchedRule_abstractContents6063);
temp=identifier();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "name", temp);
}
// ATL_ANTLR3.g:1047:438: ( ( 'extends' temp= identifier ) | () )
int alt124=2;
int LA124_0 = input.LA(1);
if ( (LA124_0==56) ) {
alt124=1;
}
else if ( (LA124_0==LCURLY) ) {
alt124=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 124, 0, input);
throw nvae;
}
switch (alt124) {
case 1 :
// ATL_ANTLR3.g:1047:439: ( 'extends' temp= identifier )
{
// ATL_ANTLR3.g:1047:439: ( 'extends' temp= identifier )
// ATL_ANTLR3.g:1047:440: 'extends' temp= identifier
{
match(input,56,FOLLOW_56_in_matchedRule_abstractContents6069); if (state.failed) return ret2;
pushFollow(FOLLOW_identifier_in_matchedRule_abstractContents6073);
temp=identifier();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.setRef(ret, "superRule", "MatchedRule", "name", temp, null, "never", null, true, null);
}
}
if ( state.backtracking==0 ) {
}
}
break;
case 2 :
// ATL_ANTLR3.g:1047:564: ()
{
// ATL_ANTLR3.g:1047:564: ()
// ATL_ANTLR3.g:1047:565:
{
}
if ( state.backtracking==0 ) {
}
}
break;
}
match(input,LCURLY,FOLLOW_LCURLY_in_matchedRule_abstractContents6087); if (state.failed) return ret2;
// ATL_ANTLR3.g:1047:578: ( (temp= inPattern ( ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY ) | () ) ( (temp= outPattern ) | () ) ( (temp= actionBlock ) | () ) ) )
// ATL_ANTLR3.g:1047:579: (temp= inPattern ( ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY ) | () ) ( (temp= outPattern ) | () ) ( (temp= actionBlock ) | () ) )
{
// ATL_ANTLR3.g:1047:579: (temp= inPattern ( ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY ) | () ) ( (temp= outPattern ) | () ) ( (temp= actionBlock ) | () ) )
// ATL_ANTLR3.g:1047:580: temp= inPattern ( ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY ) | () ) ( (temp= outPattern ) | () ) ( (temp= actionBlock ) | () )
{
pushFollow(FOLLOW_inPattern_in_matchedRule_abstractContents6093);
temp=inPattern();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "inPattern", temp);
}
// ATL_ANTLR3.g:1047:629: ( ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY ) | () )
int alt127=2;
int LA127_0 = input.LA(1);
if ( (LA127_0==57) ) {
alt127=1;
}
else if ( (LA127_0==RCURLY||LA127_0==63||LA127_0==68) ) {
alt127=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 127, 0, input);
throw nvae;
}
switch (alt127) {
case 1 :
// ATL_ANTLR3.g:1047:630: ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY )
{
// ATL_ANTLR3.g:1047:630: ( 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY )
// ATL_ANTLR3.g:1047:631: 'using' LCURLY ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) ) RCURLY
{
match(input,57,FOLLOW_57_in_matchedRule_abstractContents6099); if (state.failed) return ret2;
match(input,LCURLY,FOLLOW_LCURLY_in_matchedRule_abstractContents6101); if (state.failed) return ret2;
// ATL_ANTLR3.g:1047:646: ( ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? ) )
// ATL_ANTLR3.g:1047:647: ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? )
{
// ATL_ANTLR3.g:1047:647: ( ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )? )
// ATL_ANTLR3.g:1047:648: ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )?
{
// ATL_ANTLR3.g:1047:648: ( (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* ) )?
int alt126=2;
int LA126_0 = input.LA(1);
if ( (LA126_0==NAME) ) {
alt126=1;
}
switch (alt126) {
case 1 :
// ATL_ANTLR3.g:1047:649: (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* )
{
// ATL_ANTLR3.g:1047:649: (temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )* )
// ATL_ANTLR3.g:1047:650: temp= ruleVariableDeclaration ( (temp= ruleVariableDeclaration ) )*
{
pushFollow(FOLLOW_ruleVariableDeclaration_in_matchedRule_abstractContents6109);
temp=ruleVariableDeclaration();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "variables", temp);
}
// ATL_ANTLR3.g:1047:713: ( (temp= ruleVariableDeclaration ) )*
loop125:
do {
int alt125=2;
int LA125_0 = input.LA(1);
if ( (LA125_0==NAME) ) {
alt125=1;
}
switch (alt125) {
case 1 :
// ATL_ANTLR3.g:1047:714: (temp= ruleVariableDeclaration )
{
// ATL_ANTLR3.g:1047:714: (temp= ruleVariableDeclaration )
// ATL_ANTLR3.g:1047:715: temp= ruleVariableDeclaration
{
pushFollow(FOLLOW_ruleVariableDeclaration_in_matchedRule_abstractContents6117);
temp=ruleVariableDeclaration();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "variables", temp);
}
}
}
break;
default :
break loop125;
}
} while (true);
}
}
break;
}
}
}
match(input,RCURLY,FOLLOW_RCURLY_in_matchedRule_abstractContents6129); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
}
}
break;
case 2 :
// ATL_ANTLR3.g:1047:798: ()
{
// ATL_ANTLR3.g:1047:798: ()
// ATL_ANTLR3.g:1047:799:
{
}
if ( state.backtracking==0 ) {
}
}
break;
}
// ATL_ANTLR3.g:1047:805: ( (temp= outPattern ) | () )
int alt128=2;
int LA128_0 = input.LA(1);
if ( (LA128_0==63) ) {
alt128=1;
}
else if ( (LA128_0==RCURLY||LA128_0==68) ) {
alt128=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 128, 0, input);
throw nvae;
}
switch (alt128) {
case 1 :
// ATL_ANTLR3.g:1047:806: (temp= outPattern )
{
// ATL_ANTLR3.g:1047:806: (temp= outPattern )
// ATL_ANTLR3.g:1047:807: temp= outPattern
{
pushFollow(FOLLOW_outPattern_in_matchedRule_abstractContents6145);
temp=outPattern();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "outPattern", temp);
}
}
if ( state.backtracking==0 ) {
}
}
break;
case 2 :
// ATL_ANTLR3.g:1047:863: ()
{
// ATL_ANTLR3.g:1047:863: ()
// ATL_ANTLR3.g:1047:864:
{
}
if ( state.backtracking==0 ) {
}
}
break;
}
// ATL_ANTLR3.g:1047:870: ( (temp= actionBlock ) | () )
int alt129=2;
int LA129_0 = input.LA(1);
if ( (LA129_0==68) ) {
alt129=1;
}
else if ( (LA129_0==RCURLY) ) {
alt129=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret2;}
NoViableAltException nvae =
new NoViableAltException("", 129, 0, input);
throw nvae;
}
switch (alt129) {
case 1 :
// ATL_ANTLR3.g:1047:871: (temp= actionBlock )
{
// ATL_ANTLR3.g:1047:871: (temp= actionBlock )
// ATL_ANTLR3.g:1047:872: temp= actionBlock
{
pushFollow(FOLLOW_actionBlock_in_matchedRule_abstractContents6163);
temp=actionBlock();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "actionBlock", temp);
}
}
if ( state.backtracking==0 ) {
}
}
break;
case 2 :
// ATL_ANTLR3.g:1047:930: ()
{
// ATL_ANTLR3.g:1047:930: ()
// ATL_ANTLR3.g:1047:931:
{
}
if ( state.backtracking==0 ) {
}
}
break;
}
}
}
match(input,RCURLY,FOLLOW_RCURLY_in_matchedRule_abstractContents6179); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.leaveContext(true);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "matchedRule_abstractContents"
// $ANTLR start "oclType_abstractContents"
// ATL_ANTLR3.g:1057:1: oclType_abstractContents returns [Object ret2] : ( 'OclType' ) ;
public final Object oclType_abstractContents() throws RecognitionException {
Object ret2 = null;
Object ret=(state.backtracking==0) ? ei.create("OclType", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:1058:2: ( ( 'OclType' ) )
// ATL_ANTLR3.g:1058:4: ( 'OclType' )
{
// ATL_ANTLR3.g:1058:4: ( 'OclType' )
// ATL_ANTLR3.g:1058:5: 'OclType'
{
match(input,86,FOLLOW_86_in_oclType_abstractContents6211); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "oclType_abstractContents"
// $ANTLR start "collectionType_abstractContents"
// ATL_ANTLR3.g:1068:1: collectionType_abstractContents returns [Object ret2] : ( 'Collection' LPAREN temp= oclType RPAREN ) ;
public final Object collectionType_abstractContents() throws RecognitionException {
Object ret2 = null;
Object temp = null;
Object ret=(state.backtracking==0) ? ei.create("CollectionType", false, false) : null;org.antlr.runtime.Token firstToken=input.LT(1);
try {
// ATL_ANTLR3.g:1069:2: ( ( 'Collection' LPAREN temp= oclType RPAREN ) )
// ATL_ANTLR3.g:1069:4: ( 'Collection' LPAREN temp= oclType RPAREN )
{
// ATL_ANTLR3.g:1069:4: ( 'Collection' LPAREN temp= oclType RPAREN )
// ATL_ANTLR3.g:1069:5: 'Collection' LPAREN temp= oclType RPAREN
{
match(input,93,FOLLOW_93_in_collectionType_abstractContents6243); if (state.failed) return ret2;
match(input,LPAREN,FOLLOW_LPAREN_in_collectionType_abstractContents6245); if (state.failed) return ret2;
pushFollow(FOLLOW_oclType_in_collectionType_abstractContents6249);
temp=oclType();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ei.set(ret, "elementType", temp);
}
match(input,RPAREN,FOLLOW_RPAREN_in_collectionType_abstractContents6253); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ei.leaveContext(false);
if(input.LT(-1) != null) ei.setLocation(ret, firstToken.getLine() + ":" + (firstToken.getCharPositionInLine() + 1) + "-" + ((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndLine() + ":" + (((org.eclipse.m2m.atl.dsls.tcs.injector.wrappers.antlr3.ANTLR3LocationToken)input.LT(-1)).getEndColumn() + 1));ei.setCommentsBefore(ret, new Object[] {input, firstToken});
ei.setCommentsAfter(ret, new Object[] {input, input.LT(-1)});
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "collectionType_abstractContents"
// $ANTLR start "primary_oclExpression"
// ATL_ANTLR3.g:1079:1: primary_oclExpression returns [Object ret2] : ( ( LPAREN ret= oclExpression RPAREN ) | ret= variableExp | ret= oclUndefinedExp | ret= primitiveExp | ret= ifExp | ret= superExp | ret= enumLiteralExp | ret= collectionExp | ret= mapExp | ret= tupleExp | ret= oclType ) ;
public final Object primary_oclExpression() throws RecognitionException {
Object ret2 = null;
Object ret = null;
try {
// ATL_ANTLR3.g:1080:2: ( ( ( LPAREN ret= oclExpression RPAREN ) | ret= variableExp | ret= oclUndefinedExp | ret= primitiveExp | ret= ifExp | ret= superExp | ret= enumLiteralExp | ret= collectionExp | ret= mapExp | ret= tupleExp | ret= oclType ) )
// ATL_ANTLR3.g:1080:4: ( ( LPAREN ret= oclExpression RPAREN ) | ret= variableExp | ret= oclUndefinedExp | ret= primitiveExp | ret= ifExp | ret= superExp | ret= enumLiteralExp | ret= collectionExp | ret= mapExp | ret= tupleExp | ret= oclType )
{
// ATL_ANTLR3.g:1080:4: ( ( LPAREN ret= oclExpression RPAREN ) | ret= variableExp | ret= oclUndefinedExp | ret= primitiveExp | ret= ifExp | ret= superExp | ret= enumLiteralExp | ret= collectionExp | ret= mapExp | ret= tupleExp | ret= oclType )
int alt130=11;
alt130 = dfa130.predict(input);
switch (alt130) {
case 1 :
// ATL_ANTLR3.g:1080:5: ( LPAREN ret= oclExpression RPAREN )
{
// ATL_ANTLR3.g:1080:5: ( LPAREN ret= oclExpression RPAREN )
// ATL_ANTLR3.g:1080:6: LPAREN ret= oclExpression RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_primary_oclExpression6286); if (state.failed) return ret2;
pushFollow(FOLLOW_oclExpression_in_primary_oclExpression6290);
ret=oclExpression();
state._fsp--;
if (state.failed) return ret2;
match(input,RPAREN,FOLLOW_RPAREN_in_primary_oclExpression6292); if (state.failed) return ret2;
}
}
break;
case 2 :
// ATL_ANTLR3.g:1080:40: ret= variableExp
{
pushFollow(FOLLOW_variableExp_in_primary_oclExpression6298);
ret=variableExp();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 3 :
// ATL_ANTLR3.g:1080:57: ret= oclUndefinedExp
{
pushFollow(FOLLOW_oclUndefinedExp_in_primary_oclExpression6303);
ret=oclUndefinedExp();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 4 :
// ATL_ANTLR3.g:1080:78: ret= primitiveExp
{
pushFollow(FOLLOW_primitiveExp_in_primary_oclExpression6308);
ret=primitiveExp();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 5 :
// ATL_ANTLR3.g:1080:96: ret= ifExp
{
pushFollow(FOLLOW_ifExp_in_primary_oclExpression6313);
ret=ifExp();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 6 :
// ATL_ANTLR3.g:1080:107: ret= superExp
{
pushFollow(FOLLOW_superExp_in_primary_oclExpression6318);
ret=superExp();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 7 :
// ATL_ANTLR3.g:1080:121: ret= enumLiteralExp
{
pushFollow(FOLLOW_enumLiteralExp_in_primary_oclExpression6323);
ret=enumLiteralExp();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 8 :
// ATL_ANTLR3.g:1080:141: ret= collectionExp
{
pushFollow(FOLLOW_collectionExp_in_primary_oclExpression6328);
ret=collectionExp();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 9 :
// ATL_ANTLR3.g:1080:160: ret= mapExp
{
pushFollow(FOLLOW_mapExp_in_primary_oclExpression6333);
ret=mapExp();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 10 :
// ATL_ANTLR3.g:1080:172: ret= tupleExp
{
pushFollow(FOLLOW_tupleExp_in_primary_oclExpression6338);
ret=tupleExp();
state._fsp--;
if (state.failed) return ret2;
}
break;
case 11 :
// ATL_ANTLR3.g:1080:186: ret= oclType
{
pushFollow(FOLLOW_oclType_in_primary_oclExpression6343);
ret=oclType();
state._fsp--;
if (state.failed) return ret2;
}
break;
}
if ( state.backtracking==0 ) {
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "primary_oclExpression"
// $ANTLR start synpred125_ATL_ANTLR3
public final void synpred125_ATL_ANTLR3_fragment() throws RecognitionException {
Object ret = null;
// ATL_ANTLR3.g:406:6: (ret= ifStat )
// ATL_ANTLR3.g:406:6: ret= ifStat
{
pushFollow(FOLLOW_ifStat_in_synpred125_ATL_ANTLR32702);
ret=ifStat();
state._fsp--;
if (state.failed) return ;
}
}
// $ANTLR end synpred125_ATL_ANTLR3
// $ANTLR start synpred126_ATL_ANTLR3
public final void synpred126_ATL_ANTLR3_fragment() throws RecognitionException {
Object ret = null;
// ATL_ANTLR3.g:406:18: (ret= expressionStat )
// ATL_ANTLR3.g:406:18: ret= expressionStat
{
pushFollow(FOLLOW_expressionStat_in_synpred126_ATL_ANTLR32707);
ret=expressionStat();
state._fsp--;
if (state.failed) return ;
}
}
// $ANTLR end synpred126_ATL_ANTLR3
// $ANTLR start synpred127_ATL_ANTLR3
public final void synpred127_ATL_ANTLR3_fragment() throws RecognitionException {
Object ret = null;
// ATL_ANTLR3.g:406:38: (ret= bindingStat )
// ATL_ANTLR3.g:406:38: ret= bindingStat
{
pushFollow(FOLLOW_bindingStat_in_synpred127_ATL_ANTLR32712);
ret=bindingStat();
state._fsp--;
if (state.failed) return ;
}
}
// $ANTLR end synpred127_ATL_ANTLR3
// $ANTLR start synpred135_ATL_ANTLR3
public final void synpred135_ATL_ANTLR3_fragment() throws RecognitionException {
Object temp = null;
// ATL_ANTLR3.g:437:285: ( ( 'else' ( ( ( (temp= statement ) ) ) | ( LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY ) ) ) )
// ATL_ANTLR3.g:437:285: ( 'else' ( ( ( (temp= statement ) ) ) | ( LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY ) ) )
{
// ATL_ANTLR3.g:437:285: ( 'else' ( ( ( (temp= statement ) ) ) | ( LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY ) ) )
// ATL_ANTLR3.g:437:286: 'else' ( ( ( (temp= statement ) ) ) | ( LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY ) )
{
match(input,70,FOLLOW_70_in_synpred135_ATL_ANTLR32912); if (state.failed) return ;
// ATL_ANTLR3.g:437:293: ( ( ( (temp= statement ) ) ) | ( LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY ) )
int alt163=2;
int LA163_0 = input.LA(1);
if ( ((LA163_0>=NAME && LA163_0<=FLOAT)||LA163_0==LPAREN||LA163_0==SHARP||LA163_0==MINUS||LA163_0==69||LA163_0==71||(LA163_0>=73 && LA163_0<=75)||(LA163_0>=78 && LA163_0<=94)) ) {
alt163=1;
}
else if ( (LA163_0==LCURLY) ) {
alt163=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ;}
NoViableAltException nvae =
new NoViableAltException("", 163, 0, input);
throw nvae;
}
switch (alt163) {
case 1 :
// ATL_ANTLR3.g:437:294: ( ( (temp= statement ) ) )
{
// ATL_ANTLR3.g:437:294: ( ( (temp= statement ) ) )
// ATL_ANTLR3.g:437:295: ( (temp= statement ) )
{
// ATL_ANTLR3.g:437:295: ( (temp= statement ) )
// ATL_ANTLR3.g:437:296: (temp= statement )
{
// ATL_ANTLR3.g:437:296: (temp= statement )
// ATL_ANTLR3.g:437:297: temp= statement
{
pushFollow(FOLLOW_statement_in_synpred135_ATL_ANTLR32920);
temp=statement();
state._fsp--;
if (state.failed) return ;
}
}
}
}
break;
case 2 :
// ATL_ANTLR3.g:437:358: ( LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY )
{
// ATL_ANTLR3.g:437:358: ( LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY )
// ATL_ANTLR3.g:437:359: LCURLY ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) ) RCURLY
{
match(input,LCURLY,FOLLOW_LCURLY_in_synpred135_ATL_ANTLR32931); if (state.failed) return ;
// ATL_ANTLR3.g:437:366: ( ( ( (temp= statement ( (temp= statement ) )* ) )? ) )
// ATL_ANTLR3.g:437:367: ( ( (temp= statement ( (temp= statement ) )* ) )? )
{
// ATL_ANTLR3.g:437:367: ( ( (temp= statement ( (temp= statement ) )* ) )? )
// ATL_ANTLR3.g:437:368: ( (temp= statement ( (temp= statement ) )* ) )?
{
// ATL_ANTLR3.g:437:368: ( (temp= statement ( (temp= statement ) )* ) )?
int alt162=2;
int LA162_0 = input.LA(1);
if ( ((LA162_0>=NAME && LA162_0<=FLOAT)||LA162_0==LPAREN||LA162_0==SHARP||LA162_0==MINUS||LA162_0==69||LA162_0==71||(LA162_0>=73 && LA162_0<=75)||(LA162_0>=78 && LA162_0<=94)) ) {
alt162=1;
}
switch (alt162) {
case 1 :
// ATL_ANTLR3.g:437:369: (temp= statement ( (temp= statement ) )* )
{
// ATL_ANTLR3.g:437:369: (temp= statement ( (temp= statement ) )* )
// ATL_ANTLR3.g:437:370: temp= statement ( (temp= statement ) )*
{
pushFollow(FOLLOW_statement_in_synpred135_ATL_ANTLR32939);
temp=statement();
state._fsp--;
if (state.failed) return ;
// ATL_ANTLR3.g:437:424: ( (temp= statement ) )*
loop161:
do {
int alt161=2;
int LA161_0 = input.LA(1);
if ( ((LA161_0>=NAME && LA161_0<=FLOAT)||LA161_0==LPAREN||LA161_0==SHARP||LA161_0==MINUS||LA161_0==69||LA161_0==71||(LA161_0>=73 && LA161_0<=75)||(LA161_0>=78 && LA161_0<=94)) ) {
alt161=1;
}
switch (alt161) {
case 1 :
// ATL_ANTLR3.g:437:425: (temp= statement )
{
// ATL_ANTLR3.g:437:425: (temp= statement )
// ATL_ANTLR3.g:437:426: temp= statement
{
pushFollow(FOLLOW_statement_in_synpred135_ATL_ANTLR32947);
temp=statement();
state._fsp--;
if (state.failed) return ;
}
}
break;
default :
break loop161;
}
} while (true);
}
}
break;
}
}
}
match(input,RCURLY,FOLLOW_RCURLY_in_synpred135_ATL_ANTLR32959); if (state.failed) return ;
}
}
break;
}
}
}
}
// $ANTLR end synpred135_ATL_ANTLR3
// Delegated rules
public final boolean synpred125_ATL_ANTLR3() {
state.backtracking++;
int start = input.mark();
try {
synpred125_ATL_ANTLR3_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;
}
public final boolean synpred127_ATL_ANTLR3() {
state.backtracking++;
int start = input.mark();
try {
synpred127_ATL_ANTLR3_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;
}
public final boolean synpred126_ATL_ANTLR3() {
state.backtracking++;
int start = input.mark();
try {
synpred126_ATL_ANTLR3_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;
}
public final boolean synpred135_ATL_ANTLR3() {
state.backtracking++;
int start = input.mark();
try {
synpred135_ATL_ANTLR3_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 DFA67 dfa67 = new DFA67(this);
protected DFA108 dfa108 = new DFA108(this);
protected DFA109 dfa109 = new DFA109(this);
protected DFA130 dfa130 = new DFA130(this);
static final String DFA67_eotS =
"\41\uffff";
static final String DFA67_eofS =
"\41\uffff";
static final String DFA67_minS =
"\1\4\34\0\4\uffff";
static final String DFA67_maxS =
"\1\136\34\0\4\uffff";
static final String DFA67_acceptS =
"\35\uffff\1\4\1\1\1\2\1\3";
static final String DFA67_specialS =
"\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14"+
"\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31"+
"\1\32\1\33\4\uffff}>";
static final String[] DFA67_transitionS = {
"\1\5\1\13\1\7\1\10\4\uffff\1\4\10\uffff\1\15\1\uffff\1\3\55"+
"\uffff\1\1\1\uffff\1\35\1\uffff\1\6\1\11\1\12\2\uffff\1\14\1"+
"\34\1\16\1\17\1\20\1\21\1\22\1\23\1\33\1\24\1\25\1\26\1\27\1"+
"\30\1\31\1\32\1\2",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"",
"",
"",
""
};
static final short[] DFA67_eot = DFA.unpackEncodedString(DFA67_eotS);
static final short[] DFA67_eof = DFA.unpackEncodedString(DFA67_eofS);
static final char[] DFA67_min = DFA.unpackEncodedStringToUnsignedChars(DFA67_minS);
static final char[] DFA67_max = DFA.unpackEncodedStringToUnsignedChars(DFA67_maxS);
static final short[] DFA67_accept = DFA.unpackEncodedString(DFA67_acceptS);
static final short[] DFA67_special = DFA.unpackEncodedString(DFA67_specialS);
static final short[][] DFA67_transition;
static {
int numStates = DFA67_transitionS.length;
DFA67_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA67_transition[i] = DFA.unpackEncodedString(DFA67_transitionS[i]);
}
}
class DFA67 extends DFA {
public DFA67(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 67;
this.eot = DFA67_eot;
this.eof = DFA67_eof;
this.min = DFA67_min;
this.max = DFA67_max;
this.accept = DFA67_accept;
this.special = DFA67_special;
this.transition = DFA67_transition;
}
public String getDescription() {
return "406:5: (ret= ifStat | ret= expressionStat | ret= bindingStat | ret= forStat )";
}
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA67_1 = input.LA(1);
int index67_1 = input.index();
input.rewind();
s = -1;
if ( (synpred125_ATL_ANTLR3()) ) {s = 30;}
else if ( (synpred126_ATL_ANTLR3()) ) {s = 31;}
else if ( (synpred127_ATL_ANTLR3()) ) {s = 32;}
input.seek(index67_1);
if ( s>=0 ) return s;
break;
case 1 :
int LA67_2 = input.LA(1);
int index67_2 = input.index();
input.rewind();
s = -1;
if ( (synpred126_ATL_ANTLR3()) ) {s = 31;}
else if ( (synpred127_ATL_ANTLR3()) ) {s = 32;}
input.seek(index67_2);
if ( s>=0 ) return s;
break;
case 2 :
int LA67_3 = input.LA(1);
int index67_3 = input.index();
input.rewind();
s = -1;
if ( (synpred126_ATL_ANTLR3()) ) {s = 31;}
else if ( (synpred127_ATL_ANTLR3()) ) {s = 32;}
input.seek(index67_3);
if ( s>=0 ) return s;
break;
case 3 :
int LA67_4 = input.LA(1);
int index67_4 = input.index();
input.rewind();
s = -1;
if ( (synpred126_ATL_ANTLR3()) ) {s = 31;}
else if ( (synpred127_ATL_ANTLR3()) ) {s = 32;}
input.seek(index67_4);
if ( s>=0 ) return s;
break;
case 4 :
int LA67_5 = input.LA(1);
int index67_5 = input.index();
input.rewind();
s = -1;
if ( (synpred126_ATL_ANTLR3()) ) {s = 31;}
else if ( (synpred127_ATL_ANTLR3()) ) {s = 32;}
input.seek(index67_5);
if ( s>=0 ) return s;
break;
case 5 :
int LA67_6 = input.LA(1);
int index67_6 = input.index();
input.rewind();
s = -1;
if ( (synpred126_ATL_ANTLR3()) ) {s = 31;}
else if ( (synpred127_ATL_ANTLR3()) ) {s = 32;}
input.seek(index67_6);
if ( s>=0 ) return s;
break;
case 6 :
int LA67_7 = input.LA(1);
int index67_7 = input.index();
input.rewind();
s = -1;
if ( (synpred126_ATL_ANTLR3()) ) {s = 31;}
else if ( (synpred127_ATL_ANTLR3()) ) {s = 32;}
input.seek(index67_7);
if ( s>=0 ) return s;
break;
case 7 :
int LA67_8 = input.LA(1);
int index67_8 = input.index();
input.rewind();
s = -1;
if ( (synpred126_ATL_ANTLR3()) ) {s = 31;}
else if ( (synpred127_ATL_ANTLR3()) ) {s = 32;}
input.seek(index67_8);
if ( s>=0 ) return s;
break;
case 8 :
int LA67_9 = input.LA(1);
int index67_9 = input.index();
input.rewind();
s = -1;
if ( (synpred126_ATL_ANTLR3()) ) {s = 31;}
else if ( (synpred127_ATL_ANTLR3()) ) {s = 32;}
input.seek(index67_9);
if ( s>=0 ) return s;
break;
case 9 :
int LA67_10 = input.LA(1);
int index67_10 = input.index();
input.rewind();
s = -1;
if ( (synpred126_ATL_ANTLR3()) ) {s = 31;}
else if ( (synpred127_ATL_ANTLR3()) ) {s = 32;}
input.seek(index67_10);
if ( s>=0 ) return s;
break;
case 10 :
int LA67_11 = input.LA(1);
int index67_11 = input.index();
input.rewind();
s = -1;
if ( (synpred126_ATL_ANTLR3()) ) {s = 31;}
else if ( (synpred127_ATL_ANTLR3()) ) {s = 32;}
input.seek(index67_11);
if ( s>=0 ) return s;
break;
case 11 :
int LA67_12 = input.LA(1);
int index67_12 = input.index();
input.rewind();
s = -1;
if ( (synpred126_ATL_ANTLR3()) ) {s = 31;}
else if ( (synpred127_ATL_ANTLR3()) ) {s = 32;}
input.seek(index67_12);
if ( s>=0 ) return s;
break;
case 12 :
int LA67_13 = input.LA(1);
int index67_13 = input.index();
input.rewind();
s = -1;
if ( (synpred126_ATL_ANTLR3()) ) {s = 31;}
else if ( (synpred127_ATL_ANTLR3()) ) {s = 32;}
input.seek(index67_13);
if ( s>=0 ) return s;
break;
case 13 :
int LA67_14 = input.LA(1);
int index67_14 = input.index();
input.rewind();
s = -1;
if ( (synpred126_ATL_ANTLR3()) ) {s = 31;}
else if ( (synpred127_ATL_ANTLR3()) ) {s = 32;}
input.seek(index67_14);
if ( s>=0 ) return s;
break;
case 14 :
int LA67_15 = input.LA(1);
int index67_15 = input.index();
input.rewind();
s = -1;
if ( (synpred126_ATL_ANTLR3()) ) {s = 31;}
else if ( (synpred127_ATL_ANTLR3()) ) {s = 32;}
input.seek(index67_15);
if ( s>=0 ) return s;
break;
case 15 :
int LA67_16 = input.LA(1);
int index67_16 = input.index();
input.rewind();
s = -1;
if ( (synpred126_ATL_ANTLR3()) ) {s = 31;}
else if ( (synpred127_ATL_ANTLR3()) ) {s = 32;}
input.seek(index67_16);
if ( s>=0 ) return s;
break;
case 16 :
int LA67_17 = input.LA(1);
int index67_17 = input.index();
input.rewind();
s = -1;
if ( (synpred126_ATL_ANTLR3()) ) {s = 31;}
else if ( (synpred127_ATL_ANTLR3()) ) {s = 32;}
input.seek(index67_17);
if ( s>=0 ) return s;
break;
case 17 :
int LA67_18 = input.LA(1);
int index67_18 = input.index();
input.rewind();
s = -1;
if ( (synpred126_ATL_ANTLR3()) ) {s = 31;}
else if ( (synpred127_ATL_ANTLR3()) ) {s = 32;}
input.seek(index67_18);
if ( s>=0 ) return s;
break;
case 18 :
int LA67_19 = input.LA(1);
int index67_19 = input.index();
input.rewind();
s = -1;
if ( (synpred126_ATL_ANTLR3()) ) {s = 31;}
else if ( (synpred127_ATL_ANTLR3()) ) {s = 32;}
input.seek(index67_19);
if ( s>=0 ) return s;
break;
case 19 :
int LA67_20 = input.LA(1);
int index67_20 = input.index();
input.rewind();
s = -1;
if ( (synpred126_ATL_ANTLR3()) ) {s = 31;}
else if ( (synpred127_ATL_ANTLR3()) ) {s = 32;}
input.seek(index67_20);
if ( s>=0 ) return s;
break;
case 20 :
int LA67_21 = input.LA(1);
int index67_21 = input.index();
input.rewind();
s = -1;
if ( (synpred126_ATL_ANTLR3()) ) {s = 31;}
else if ( (synpred127_ATL_ANTLR3()) ) {s = 32;}
input.seek(index67_21);
if ( s>=0 ) return s;
break;
case 21 :
int LA67_22 = input.LA(1);
int index67_22 = input.index();
input.rewind();
s = -1;
if ( (synpred126_ATL_ANTLR3()) ) {s = 31;}
else if ( (synpred127_ATL_ANTLR3()) ) {s = 32;}
input.seek(index67_22);
if ( s>=0 ) return s;
break;
case 22 :
int LA67_23 = input.LA(1);
int index67_23 = input.index();
input.rewind();
s = -1;
if ( (synpred126_ATL_ANTLR3()) ) {s = 31;}
else if ( (synpred127_ATL_ANTLR3()) ) {s = 32;}
input.seek(index67_23);
if ( s>=0 ) return s;
break;
case 23 :
int LA67_24 = input.LA(1);
int index67_24 = input.index();
input.rewind();
s = -1;
if ( (synpred126_ATL_ANTLR3()) ) {s = 31;}
else if ( (synpred127_ATL_ANTLR3()) ) {s = 32;}
input.seek(index67_24);
if ( s>=0 ) return s;
break;
case 24 :
int LA67_25 = input.LA(1);
int index67_25 = input.index();
input.rewind();
s = -1;
if ( (synpred126_ATL_ANTLR3()) ) {s = 31;}
else if ( (synpred127_ATL_ANTLR3()) ) {s = 32;}
input.seek(index67_25);
if ( s>=0 ) return s;
break;
case 25 :
int LA67_26 = input.LA(1);
int index67_26 = input.index();
input.rewind();
s = -1;
if ( (synpred126_ATL_ANTLR3()) ) {s = 31;}
else if ( (synpred127_ATL_ANTLR3()) ) {s = 32;}
input.seek(index67_26);
if ( s>=0 ) return s;
break;
case 26 :
int LA67_27 = input.LA(1);
int index67_27 = input.index();
input.rewind();
s = -1;
if ( (synpred126_ATL_ANTLR3()) ) {s = 31;}
else if ( (synpred127_ATL_ANTLR3()) ) {s = 32;}
input.seek(index67_27);
if ( s>=0 ) return s;
break;
case 27 :
int LA67_28 = input.LA(1);
int index67_28 = input.index();
input.rewind();
s = -1;
if ( (synpred126_ATL_ANTLR3()) ) {s = 31;}
else if ( (synpred127_ATL_ANTLR3()) ) {s = 32;}
input.seek(index67_28);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 67, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA108_eotS =
"\76\uffff";
static final String DFA108_eofS =
"\1\uffff\73\74\2\uffff";
static final String DFA108_minS =
"\1\4\73\10\2\uffff";
static final String DFA108_maxS =
"\74\144\2\uffff";
static final String DFA108_acceptS =
"\74\uffff\1\2\1\1";
static final String DFA108_specialS =
"\76\uffff}>";
static final String[] DFA108_transitionS = {
"\1\1\46\uffff\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1"+
"\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1"+
"\30\1\31\1\32\1\33\1\34\1\35\1\36\1\37\1\40\1\41\1\42\1\43\1"+
"\44\1\45\1\46\1\47\1\50\1\51\1\52\1\53\1\54\1\55\1\56\1\57\1"+
"\60\1\61\1\62\1\63\1\64\1\65\1\66\1\67\1\70\1\71\1\72\1\73",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"\3\74\1\uffff\1\75\1\74\1\uffff\4\74\1\uffff\1\74\1\uffff\12"+
"\74\36\uffff\1\74\7\uffff\1\74\5\uffff\2\74\21\uffff\6\74",
"",
""
};
static final short[] DFA108_eot = DFA.unpackEncodedString(DFA108_eotS);
static final short[] DFA108_eof = DFA.unpackEncodedString(DFA108_eofS);
static final char[] DFA108_min = DFA.unpackEncodedStringToUnsignedChars(DFA108_minS);
static final char[] DFA108_max = DFA.unpackEncodedStringToUnsignedChars(DFA108_maxS);
static final short[] DFA108_accept = DFA.unpackEncodedString(DFA108_acceptS);
static final short[] DFA108_special = DFA.unpackEncodedString(DFA108_specialS);
static final short[][] DFA108_transition;
static {
int numStates = DFA108_transitionS.length;
DFA108_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA108_transition[i] = DFA.unpackEncodedString(DFA108_transitionS[i]);
}
}
class DFA108 extends DFA {
public DFA108(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 108;
this.eot = DFA108_eot;
this.eof = DFA108_eof;
this.min = DFA108_min;
this.max = DFA108_max;
this.accept = DFA108_accept;
this.special = DFA108_special;
this.transition = DFA108_transition;
}
public String getDescription() {
return "981:56: (ret= operationCallExp[opName, ret, firstToken] | ret= navigationOrAttributeCallExp[opName, ret, firstToken] )";
}
}
static final String DFA109_eotS =
"\11\uffff";
static final String DFA109_eofS =
"\11\uffff";
static final String DFA109_minS =
"\1\4\1\14\1\uffff\1\4\1\uffff\1\11\1\4\1\uffff\1\11";
static final String DFA109_maxS =
"\1\110\1\14\1\uffff\1\136\1\uffff\1\144\1\136\1\uffff\1\144";
static final String DFA109_acceptS =
"\2\uffff\1\2\1\uffff\1\3\2\uffff\1\1\1\uffff";
static final String DFA109_specialS =
"\11\uffff}>";
static final String[] DFA109_transitionS = {
"\1\1\103\uffff\1\2",
"\1\3",
"",
"\1\5\3\4\4\uffff\2\4\7\uffff\1\4\1\uffff\1\4\55\uffff\1\4\3"+
"\uffff\3\4\2\uffff\21\4",
"",
"\1\6\1\4\2\uffff\1\4\2\uffff\1\4\2\uffff\1\4\1\7\1\uffff\12"+
"\4\77\uffff\6\4",
"\1\10\3\4\4\uffff\1\4\10\uffff\1\4\1\uffff\1\4\55\uffff\1\4"+
"\3\uffff\3\4\2\uffff\21\4",
"",
"\1\6\1\4\2\uffff\1\4\2\uffff\1\4\2\uffff\1\4\1\7\1\uffff\12"+
"\4\77\uffff\6\4"
};
static final short[] DFA109_eot = DFA.unpackEncodedString(DFA109_eotS);
static final short[] DFA109_eof = DFA.unpackEncodedString(DFA109_eofS);
static final char[] DFA109_min = DFA.unpackEncodedStringToUnsignedChars(DFA109_minS);
static final char[] DFA109_max = DFA.unpackEncodedStringToUnsignedChars(DFA109_maxS);
static final short[] DFA109_accept = DFA.unpackEncodedString(DFA109_acceptS);
static final short[] DFA109_special = DFA.unpackEncodedString(DFA109_specialS);
static final short[][] DFA109_transition;
static {
int numStates = DFA109_transitionS.length;
DFA109_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA109_transition[i] = DFA.unpackEncodedString(DFA109_transitionS[i]);
}
}
class DFA109 extends DFA {
public DFA109(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 109;
this.eot = DFA109_eot;
this.eof = DFA109_eof;
this.min = DFA109_min;
this.max = DFA109_max;
this.accept = DFA109_accept;
this.special = DFA109_special;
this.transition = DFA109_transition;
}
public String getDescription() {
return "981:192: (ret= iteratorExp[opName, ret, firstToken] | ret= iterateExp[opName, ret, firstToken] | ret= collectionOperationCallExp[opName, ret, firstToken] )";
}
}
static final String DFA130_eotS =
"\22\uffff";
static final String DFA130_eofS =
"\2\uffff\1\17\17\uffff";
static final String DFA130_minS =
"\1\4\1\uffff\1\10\5\uffff\5\14\5\uffff";
static final String DFA130_maxS =
"\1\135\1\uffff\1\144\5\uffff\5\16\5\uffff";
static final String DFA130_acceptS =
"\1\uffff\1\1\1\uffff\1\3\1\4\1\5\1\6\1\7\5\uffff\1\12\1\13\1\2\1"+
"\10\1\11";
static final String DFA130_specialS =
"\22\uffff}>";
static final String[] DFA130_transitionS = {
"\1\2\3\4\4\uffff\1\1\10\uffff\1\7\57\uffff\1\5\3\uffff\1\3\2"+
"\4\2\uffff\1\6\1\uffff\1\10\1\11\1\12\1\13\1\14\1\15\10\16",
"",
"\3\17\2\uffff\1\17\1\uffff\4\17\1\16\1\17\1\uffff\12\17\36"+
"\uffff\1\17\7\uffff\1\17\5\uffff\2\17\21\uffff\6\17",
"",
"",
"",
"",
"",
"\1\16\1\uffff\1\20",
"\1\16\1\uffff\1\20",
"\1\16\1\uffff\1\20",
"\1\16\1\uffff\1\20",
"\1\16\1\uffff\1\21",
"",
"",
"",
"",
""
};
static final short[] DFA130_eot = DFA.unpackEncodedString(DFA130_eotS);
static final short[] DFA130_eof = DFA.unpackEncodedString(DFA130_eofS);
static final char[] DFA130_min = DFA.unpackEncodedStringToUnsignedChars(DFA130_minS);
static final char[] DFA130_max = DFA.unpackEncodedStringToUnsignedChars(DFA130_maxS);
static final short[] DFA130_accept = DFA.unpackEncodedString(DFA130_acceptS);
static final short[] DFA130_special = DFA.unpackEncodedString(DFA130_specialS);
static final short[][] DFA130_transition;
static {
int numStates = DFA130_transitionS.length;
DFA130_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA130_transition[i] = DFA.unpackEncodedString(DFA130_transitionS[i]);
}
}
class DFA130 extends DFA {
public DFA130(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 130;
this.eot = DFA130_eot;
this.eof = DFA130_eof;
this.min = DFA130_min;
this.max = DFA130_max;
this.accept = DFA130_accept;
this.special = DFA130_special;
this.transition = DFA130_transition;
}
public String getDescription() {
return "1080:4: ( ( LPAREN ret= oclExpression RPAREN ) | ret= variableExp | ret= oclUndefinedExp | ret= primitiveExp | ret= ifExp | ret= superExp | ret= enumLiteralExp | ret= collectionExp | ret= mapExp | ret= tupleExp | ret= oclType )";
}
}
public static final BitSet FOLLOW_unit_in_main61 = new BitSet(new long[]{0x0000000000000000L});
public static final BitSet FOLLOW_EOF_in_main64 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NAME_in_identifier97 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NAME_in_identifierOrKeyword132 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_43_in_identifierOrKeyword137 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_44_in_identifierOrKeyword142 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_45_in_identifierOrKeyword147 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_46_in_identifierOrKeyword152 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_47_in_identifierOrKeyword157 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_48_in_identifierOrKeyword162 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_49_in_identifierOrKeyword167 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_50_in_identifierOrKeyword172 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_51_in_identifierOrKeyword177 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_52_in_identifierOrKeyword182 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_53_in_identifierOrKeyword187 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_54_in_identifierOrKeyword192 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_55_in_identifierOrKeyword197 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_56_in_identifierOrKeyword202 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_57_in_identifierOrKeyword207 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_58_in_identifierOrKeyword212 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_59_in_identifierOrKeyword217 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_60_in_identifierOrKeyword222 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_61_in_identifierOrKeyword227 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_62_in_identifierOrKeyword232 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_63_in_identifierOrKeyword237 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_64_in_identifierOrKeyword242 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_65_in_identifierOrKeyword247 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_66_in_identifierOrKeyword252 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_67_in_identifierOrKeyword257 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_68_in_identifierOrKeyword262 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_69_in_identifierOrKeyword267 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_70_in_identifierOrKeyword272 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_71_in_identifierOrKeyword277 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_72_in_identifierOrKeyword282 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_73_in_identifierOrKeyword287 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_74_in_identifierOrKeyword292 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_75_in_identifierOrKeyword297 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_76_in_identifierOrKeyword302 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_77_in_identifierOrKeyword307 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_78_in_identifierOrKeyword312 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_79_in_identifierOrKeyword317 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_80_in_identifierOrKeyword322 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_81_in_identifierOrKeyword327 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_82_in_identifierOrKeyword332 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_83_in_identifierOrKeyword337 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_84_in_identifierOrKeyword342 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_85_in_identifierOrKeyword347 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_86_in_identifierOrKeyword352 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_87_in_identifierOrKeyword357 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_88_in_identifierOrKeyword362 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_89_in_identifierOrKeyword367 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_90_in_identifierOrKeyword372 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_91_in_identifierOrKeyword377 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_92_in_identifierOrKeyword382 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_93_in_identifierOrKeyword387 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_94_in_identifierOrKeyword392 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_95_in_identifierOrKeyword397 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_96_in_identifierOrKeyword402 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_97_in_identifierOrKeyword407 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_98_in_identifierOrKeyword412 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_99_in_identifierOrKeyword417 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_100_in_identifierOrKeyword422 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STRING_in_stringSymbol457 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INT_in_integerSymbol491 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FLOAT_in_floatSymbol525 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_module_in_unit561 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_library_in_unit566 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_query_in_unit571 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_43_in_module604 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_identifier_in_module608 = new BitSet(new long[]{0x0000000000000100L});
public static final BitSet FOLLOW_SEMI_in_module612 = new BitSet(new long[]{0x0000100000000000L});
public static final BitSet FOLLOW_44_in_module614 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_oclModel_in_module620 = new BitSet(new long[]{0x0000600000000200L});
public static final BitSet FOLLOW_COMA_in_module627 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_oclModel_in_module632 = new BitSet(new long[]{0x0000600000000200L});
public static final BitSet FOLLOW_45_in_module643 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_46_in_module650 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_oclModel_in_module660 = new BitSet(new long[]{0x0000000000000300L});
public static final BitSet FOLLOW_COMA_in_module667 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_oclModel_in_module672 = new BitSet(new long[]{0x0000000000000300L});
public static final BitSet FOLLOW_SEMI_in_module681 = new BitSet(new long[]{0x3CE6200000000002L});
public static final BitSet FOLLOW_libraryRef_in_module689 = new BitSet(new long[]{0x3CE6200000000002L});
public static final BitSet FOLLOW_libraryRef_in_module697 = new BitSet(new long[]{0x3CE6200000000002L});
public static final BitSet FOLLOW_moduleElement_in_module711 = new BitSet(new long[]{0x3CE4200000000002L});
public static final BitSet FOLLOW_moduleElement_in_module719 = new BitSet(new long[]{0x3CE4200000000002L});
public static final BitSet FOLLOW_47_in_library761 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_identifier_in_library765 = new BitSet(new long[]{0x0000000000000100L});
public static final BitSet FOLLOW_SEMI_in_library769 = new BitSet(new long[]{0x0006000000000002L});
public static final BitSet FOLLOW_libraryRef_in_library777 = new BitSet(new long[]{0x0006000000000002L});
public static final BitSet FOLLOW_libraryRef_in_library785 = new BitSet(new long[]{0x0006000000000002L});
public static final BitSet FOLLOW_helper_in_library799 = new BitSet(new long[]{0x0004000000000002L});
public static final BitSet FOLLOW_helper_in_library807 = new BitSet(new long[]{0x0004000000000002L});
public static final BitSet FOLLOW_48_in_query849 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_identifier_in_query853 = new BitSet(new long[]{0x0000000000000400L});
public static final BitSet FOLLOW_EQ_in_query857 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_query861 = new BitSet(new long[]{0x0000000000000100L});
public static final BitSet FOLLOW_SEMI_in_query865 = new BitSet(new long[]{0x0006000000000002L});
public static final BitSet FOLLOW_libraryRef_in_query873 = new BitSet(new long[]{0x0006000000000002L});
public static final BitSet FOLLOW_libraryRef_in_query881 = new BitSet(new long[]{0x0006000000000002L});
public static final BitSet FOLLOW_helper_in_query895 = new BitSet(new long[]{0x0004000000000002L});
public static final BitSet FOLLOW_helper_in_query903 = new BitSet(new long[]{0x0004000000000002L});
public static final BitSet FOLLOW_49_in_libraryRef945 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_identifier_in_libraryRef949 = new BitSet(new long[]{0x0000000000000100L});
public static final BitSet FOLLOW_SEMI_in_libraryRef953 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_helper_in_moduleElement988 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_rule_in_moduleElement993 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_50_in_helper1026 = new BitSet(new long[]{0x0018000000000000L});
public static final BitSet FOLLOW_oclFeatureDefinition_in_helper1030 = new BitSet(new long[]{0x0000000000000100L});
public static final BitSet FOLLOW_SEMI_in_helper1034 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_oclContextDefinition_in_oclFeatureDefinition1070 = new BitSet(new long[]{0x0008000000000000L});
public static final BitSet FOLLOW_51_in_oclFeatureDefinition1084 = new BitSet(new long[]{0x0000000000000800L});
public static final BitSet FOLLOW_COLON_in_oclFeatureDefinition1086 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_oclFeature_in_oclFeatureDefinition1090 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_52_in_oclContextDefinition1124 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_oclType_in_oclContextDefinition1128 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_operation_in_oclFeature1165 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_attribute_in_oclFeature1170 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_operation1205 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_LPAREN_in_operation1209 = new BitSet(new long[]{0x0000000000002010L});
public static final BitSet FOLLOW_parameter_in_operation1215 = new BitSet(new long[]{0x0000000000002200L});
public static final BitSet FOLLOW_COMA_in_operation1222 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_parameter_in_operation1227 = new BitSet(new long[]{0x0000000000002200L});
public static final BitSet FOLLOW_RPAREN_in_operation1237 = new BitSet(new long[]{0x0000000000000800L});
public static final BitSet FOLLOW_COLON_in_operation1239 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_oclType_in_operation1243 = new BitSet(new long[]{0x0000000000000400L});
public static final BitSet FOLLOW_EQ_in_operation1247 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_operation1253 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_parameter1291 = new BitSet(new long[]{0x0000000000000800L});
public static final BitSet FOLLOW_COLON_in_parameter1295 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_oclType_in_parameter1299 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_attribute1335 = new BitSet(new long[]{0x0000000000000800L});
public static final BitSet FOLLOW_COLON_in_attribute1339 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_oclType_in_attribute1343 = new BitSet(new long[]{0x0000000000000400L});
public static final BitSet FOLLOW_EQ_in_attribute1347 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_attribute1353 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_calledRule_in_rule1392 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_matchedRule_in_rule1397 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_lazyMatchedRule_in_matchedRule1433 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_matchedRule_abstractContents_in_matchedRule1438 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_58_in_lazyMatchedRule1473 = new BitSet(new long[]{0x0800000000000000L});
public static final BitSet FOLLOW_59_in_lazyMatchedRule1485 = new BitSet(new long[]{0x00C0200000000000L});
public static final BitSet FOLLOW_54_in_lazyMatchedRule1489 = new BitSet(new long[]{0x0080200000000000L});
public static final BitSet FOLLOW_45_in_lazyMatchedRule1503 = new BitSet(new long[]{0x0080000000000000L});
public static final BitSet FOLLOW_55_in_lazyMatchedRule1515 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_identifier_in_lazyMatchedRule1519 = new BitSet(new long[]{0x0100000000004000L});
public static final BitSet FOLLOW_56_in_lazyMatchedRule1525 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_identifier_in_lazyMatchedRule1529 = new BitSet(new long[]{0x0000000000004000L});
public static final BitSet FOLLOW_LCURLY_in_lazyMatchedRule1543 = new BitSet(new long[]{0x0000400000000000L});
public static final BitSet FOLLOW_inPattern_in_lazyMatchedRule1549 = new BitSet(new long[]{0x8200000000008000L,0x0000000000000010L});
public static final BitSet FOLLOW_57_in_lazyMatchedRule1555 = new BitSet(new long[]{0x0000000000004000L});
public static final BitSet FOLLOW_LCURLY_in_lazyMatchedRule1557 = new BitSet(new long[]{0x0000000000008010L});
public static final BitSet FOLLOW_ruleVariableDeclaration_in_lazyMatchedRule1565 = new BitSet(new long[]{0x0000000000008010L});
public static final BitSet FOLLOW_ruleVariableDeclaration_in_lazyMatchedRule1573 = new BitSet(new long[]{0x0000000000008010L});
public static final BitSet FOLLOW_RCURLY_in_lazyMatchedRule1585 = new BitSet(new long[]{0x8000000000008000L,0x0000000000000010L});
public static final BitSet FOLLOW_outPattern_in_lazyMatchedRule1601 = new BitSet(new long[]{0x0000000000008000L,0x0000000000000010L});
public static final BitSet FOLLOW_actionBlock_in_lazyMatchedRule1619 = new BitSet(new long[]{0x0000000000008000L});
public static final BitSet FOLLOW_RCURLY_in_lazyMatchedRule1635 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_ruleVariableDeclaration1669 = new BitSet(new long[]{0x0000000000000800L});
public static final BitSet FOLLOW_COLON_in_ruleVariableDeclaration1673 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_oclType_in_ruleVariableDeclaration1677 = new BitSet(new long[]{0x0000000000000400L});
public static final BitSet FOLLOW_EQ_in_ruleVariableDeclaration1681 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_ruleVariableDeclaration1685 = new BitSet(new long[]{0x0000000000000100L});
public static final BitSet FOLLOW_SEMI_in_ruleVariableDeclaration1689 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_60_in_calledRule1723 = new BitSet(new long[]{0x2080000000000000L});
public static final BitSet FOLLOW_61_in_calledRule1737 = new BitSet(new long[]{0x0080000000000000L});
public static final BitSet FOLLOW_55_in_calledRule1749 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_identifier_in_calledRule1753 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_LPAREN_in_calledRule1757 = new BitSet(new long[]{0x0000000000002010L});
public static final BitSet FOLLOW_parameter_in_calledRule1763 = new BitSet(new long[]{0x0000000000002200L});
public static final BitSet FOLLOW_COMA_in_calledRule1770 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_parameter_in_calledRule1775 = new BitSet(new long[]{0x0000000000002200L});
public static final BitSet FOLLOW_RPAREN_in_calledRule1785 = new BitSet(new long[]{0x0000000000004000L});
public static final BitSet FOLLOW_LCURLY_in_calledRule1787 = new BitSet(new long[]{0x8200000000008000L,0x0000000000000010L});
public static final BitSet FOLLOW_57_in_calledRule1793 = new BitSet(new long[]{0x0000000000004000L});
public static final BitSet FOLLOW_LCURLY_in_calledRule1795 = new BitSet(new long[]{0x0000000000008010L});
public static final BitSet FOLLOW_ruleVariableDeclaration_in_calledRule1803 = new BitSet(new long[]{0x0000000000008010L});
public static final BitSet FOLLOW_ruleVariableDeclaration_in_calledRule1811 = new BitSet(new long[]{0x0000000000008010L});
public static final BitSet FOLLOW_RCURLY_in_calledRule1823 = new BitSet(new long[]{0x8000000000008000L,0x0000000000000010L});
public static final BitSet FOLLOW_outPattern_in_calledRule1839 = new BitSet(new long[]{0x0000000000008000L,0x0000000000000010L});
public static final BitSet FOLLOW_actionBlock_in_calledRule1857 = new BitSet(new long[]{0x0000000000008000L});
public static final BitSet FOLLOW_RCURLY_in_calledRule1873 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_46_in_inPattern1905 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_inPatternElement_in_inPattern1913 = new BitSet(new long[]{0x0000000000001202L});
public static final BitSet FOLLOW_COMA_in_inPattern1920 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_inPatternElement_in_inPattern1925 = new BitSet(new long[]{0x0000000000001202L});
public static final BitSet FOLLOW_LPAREN_in_inPattern1936 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_inPattern1942 = new BitSet(new long[]{0x0000000000002000L});
public static final BitSet FOLLOW_RPAREN_in_inPattern1948 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_simpleInPatternElement_in_inPatternElement1994 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_simpleInPatternElement2028 = new BitSet(new long[]{0x0000000000000800L});
public static final BitSet FOLLOW_COLON_in_simpleInPatternElement2032 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_oclType_in_simpleInPatternElement2036 = new BitSet(new long[]{0x4000000000000002L});
public static final BitSet FOLLOW_62_in_simpleInPatternElement2042 = new BitSet(new long[]{0x0000000000000012L});
public static final BitSet FOLLOW_identifier_in_simpleInPatternElement2048 = new BitSet(new long[]{0x0000000000000202L});
public static final BitSet FOLLOW_COMA_in_simpleInPatternElement2055 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_identifier_in_simpleInPatternElement2060 = new BitSet(new long[]{0x0000000000000202L});
public static final BitSet FOLLOW_63_in_outPattern2110 = new BitSet(new long[]{0x0000000000000012L,0x0000000000000008L});
public static final BitSet FOLLOW_dropPattern_in_outPattern2116 = new BitSet(new long[]{0x0000000000000012L});
public static final BitSet FOLLOW_outPatternElement_in_outPattern2138 = new BitSet(new long[]{0x0000000000000202L});
public static final BitSet FOLLOW_COMA_in_outPattern2145 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_outPatternElement_in_outPattern2150 = new BitSet(new long[]{0x0000000000000202L});
public static final BitSet FOLLOW_simpleOutPatternElement_in_outPatternElement2204 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_forEachOutPatternElement_in_outPatternElement2209 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_simpleOutPatternElement2244 = new BitSet(new long[]{0x0000000000000800L});
public static final BitSet FOLLOW_COLON_in_simpleOutPatternElement2248 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_oclType_in_simpleOutPatternElement2252 = new BitSet(new long[]{0x4000000000011002L,0x0000000000000001L});
public static final BitSet FOLLOW_62_in_simpleOutPatternElement2258 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_identifier_in_simpleOutPatternElement2262 = new BitSet(new long[]{0x0000000000011002L,0x0000000000000001L});
public static final BitSet FOLLOW_64_in_simpleOutPatternElement2278 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_identifier_in_simpleOutPatternElement2282 = new BitSet(new long[]{0x0000000000011002L});
public static final BitSet FOLLOW_RARROW_in_simpleOutPatternElement2298 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_LPAREN_in_simpleOutPatternElement2300 = new BitSet(new long[]{0x0000000000A030F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_simpleOutPatternElement2306 = new BitSet(new long[]{0x0000000000002200L});
public static final BitSet FOLLOW_COMA_in_simpleOutPatternElement2313 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_simpleOutPatternElement2318 = new BitSet(new long[]{0x0000000000002200L});
public static final BitSet FOLLOW_RPAREN_in_simpleOutPatternElement2328 = new BitSet(new long[]{0x0000000000001002L});
public static final BitSet FOLLOW_LPAREN_in_simpleOutPatternElement2342 = new BitSet(new long[]{0xFFFFF80000002010L,0x0000001FFFFFFFFFL});
public static final BitSet FOLLOW_binding_in_simpleOutPatternElement2350 = new BitSet(new long[]{0x0000000000002200L});
public static final BitSet FOLLOW_COMA_in_simpleOutPatternElement2357 = new BitSet(new long[]{0xFFFFF80000000010L,0x0000001FFFFFFFFFL});
public static final BitSet FOLLOW_binding_in_simpleOutPatternElement2362 = new BitSet(new long[]{0x0000000000002200L});
public static final BitSet FOLLOW_RPAREN_in_simpleOutPatternElement2374 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_forEachOutPatternElement2418 = new BitSet(new long[]{0x0000000000000800L});
public static final BitSet FOLLOW_COLON_in_forEachOutPatternElement2422 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_65_in_forEachOutPatternElement2424 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_oclType_in_forEachOutPatternElement2428 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_66_in_forEachOutPatternElement2432 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_LPAREN_in_forEachOutPatternElement2434 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_iterator_in_forEachOutPatternElement2438 = new BitSet(new long[]{0x4000000000000000L});
public static final BitSet FOLLOW_62_in_forEachOutPatternElement2442 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_forEachOutPatternElement2446 = new BitSet(new long[]{0x0000000000002000L});
public static final BitSet FOLLOW_RPAREN_in_forEachOutPatternElement2450 = new BitSet(new long[]{0x0000000000001002L,0x0000000000000001L});
public static final BitSet FOLLOW_64_in_forEachOutPatternElement2454 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_identifier_in_forEachOutPatternElement2458 = new BitSet(new long[]{0x0000000000001002L});
public static final BitSet FOLLOW_LPAREN_in_forEachOutPatternElement2474 = new BitSet(new long[]{0xFFFFF80000002010L,0x0000001FFFFFFFFFL});
public static final BitSet FOLLOW_binding_in_forEachOutPatternElement2482 = new BitSet(new long[]{0x0000000000002200L});
public static final BitSet FOLLOW_COMA_in_forEachOutPatternElement2489 = new BitSet(new long[]{0xFFFFF80000000010L,0x0000001FFFFFFFFFL});
public static final BitSet FOLLOW_binding_in_forEachOutPatternElement2494 = new BitSet(new long[]{0x0000000000002200L});
public static final BitSet FOLLOW_RPAREN_in_forEachOutPatternElement2506 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifierOrKeyword_in_binding2550 = new BitSet(new long[]{0x0000000000060000L});
public static final BitSet FOLLOW_ASSIGNARROW_in_binding2556 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_LARROW_in_binding2563 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_binding2571 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_67_in_dropPattern2605 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_68_in_actionBlock2637 = new BitSet(new long[]{0x0000000000004000L});
public static final BitSet FOLLOW_LCURLY_in_actionBlock2639 = new BitSet(new long[]{0x0000000000A090F0L,0x000000007FFFCEA0L});
public static final BitSet FOLLOW_statement_in_actionBlock2647 = new BitSet(new long[]{0x0000000000A090F0L,0x000000007FFFCEA0L});
public static final BitSet FOLLOW_statement_in_actionBlock2655 = new BitSet(new long[]{0x0000000000A090F0L,0x000000007FFFCEA0L});
public static final BitSet FOLLOW_RCURLY_in_actionBlock2667 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ifStat_in_statement2702 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expressionStat_in_statement2707 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_bindingStat_in_statement2712 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_forStat_in_statement2717 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_oclExpression_in_bindingStat2752 = new BitSet(new long[]{0x0000000000060000L});
public static final BitSet FOLLOW_ASSIGNARROW_in_bindingStat2758 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_LARROW_in_bindingStat2765 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_bindingStat2773 = new BitSet(new long[]{0x0000000000000100L});
public static final BitSet FOLLOW_SEMI_in_bindingStat2777 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_oclExpression_in_expressionStat2811 = new BitSet(new long[]{0x0000000000000100L});
public static final BitSet FOLLOW_SEMI_in_expressionStat2815 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_69_in_ifStat2847 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_LPAREN_in_ifStat2849 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_ifStat2853 = new BitSet(new long[]{0x0000000000002000L});
public static final BitSet FOLLOW_RPAREN_in_ifStat2857 = new BitSet(new long[]{0x0000000000A050F0L,0x000000007FFFCEA0L});
public static final BitSet FOLLOW_statement_in_ifStat2865 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000040L});
public static final BitSet FOLLOW_LCURLY_in_ifStat2876 = new BitSet(new long[]{0x0000000000A090F0L,0x000000007FFFCEA0L});
public static final BitSet FOLLOW_statement_in_ifStat2884 = new BitSet(new long[]{0x0000000000A090F0L,0x000000007FFFCEA0L});
public static final BitSet FOLLOW_statement_in_ifStat2892 = new BitSet(new long[]{0x0000000000A090F0L,0x000000007FFFCEA0L});
public static final BitSet FOLLOW_RCURLY_in_ifStat2904 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000040L});
public static final BitSet FOLLOW_70_in_ifStat2912 = new BitSet(new long[]{0x0000000000A050F0L,0x000000007FFFCEA0L});
public static final BitSet FOLLOW_statement_in_ifStat2920 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LCURLY_in_ifStat2931 = new BitSet(new long[]{0x0000000000A090F0L,0x000000007FFFCEA0L});
public static final BitSet FOLLOW_statement_in_ifStat2939 = new BitSet(new long[]{0x0000000000A090F0L,0x000000007FFFCEA0L});
public static final BitSet FOLLOW_statement_in_ifStat2947 = new BitSet(new long[]{0x0000000000A090F0L,0x000000007FFFCEA0L});
public static final BitSet FOLLOW_RCURLY_in_ifStat2959 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_71_in_forStat3005 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_LPAREN_in_forStat3007 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_iterator_in_forStat3011 = new BitSet(new long[]{0x4000000000000000L});
public static final BitSet FOLLOW_62_in_forStat3015 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_forStat3019 = new BitSet(new long[]{0x0000000000002000L});
public static final BitSet FOLLOW_RPAREN_in_forStat3023 = new BitSet(new long[]{0x0000000000004000L});
public static final BitSet FOLLOW_LCURLY_in_forStat3025 = new BitSet(new long[]{0x0000000000A090F0L,0x000000007FFFCEA0L});
public static final BitSet FOLLOW_statement_in_forStat3033 = new BitSet(new long[]{0x0000000000A090F0L,0x000000007FFFCEA0L});
public static final BitSet FOLLOW_statement_in_forStat3041 = new BitSet(new long[]{0x0000000000A090F0L,0x000000007FFFCEA0L});
public static final BitSet FOLLOW_RCURLY_in_forStat3053 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_oclModel3087 = new BitSet(new long[]{0x0000000000000800L});
public static final BitSet FOLLOW_COLON_in_oclModel3091 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_identifier_in_oclModel3095 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_oclModelElement3131 = new BitSet(new long[]{0x0000000000080000L});
public static final BitSet FOLLOW_EXCL_in_oclModelElement3135 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_identifier_in_oclModelElement3139 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_priority_5_in_oclExpression3175 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_letExp_in_oclExpression3180 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_iteratorExp3215 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_LPAREN_in_iteratorExp3219 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_iterator_in_iteratorExp3225 = new BitSet(new long[]{0x0000000000100200L});
public static final BitSet FOLLOW_COMA_in_iteratorExp3232 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_iterator_in_iteratorExp3237 = new BitSet(new long[]{0x0000000000100200L});
public static final BitSet FOLLOW_PIPE_in_iteratorExp3246 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_iteratorExp3252 = new BitSet(new long[]{0x0000000000002000L});
public static final BitSet FOLLOW_RPAREN_in_iteratorExp3258 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_72_in_iterateExp3291 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_LPAREN_in_iterateExp3293 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_iterator_in_iterateExp3299 = new BitSet(new long[]{0x0000000000000300L});
public static final BitSet FOLLOW_COMA_in_iterateExp3306 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_iterator_in_iterateExp3311 = new BitSet(new long[]{0x0000000000000300L});
public static final BitSet FOLLOW_SEMI_in_iterateExp3320 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_variableDeclaration_in_iterateExp3324 = new BitSet(new long[]{0x0000000000100000L});
public static final BitSet FOLLOW_PIPE_in_iterateExp3328 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_iterateExp3334 = new BitSet(new long[]{0x0000000000002000L});
public static final BitSet FOLLOW_RPAREN_in_iterateExp3340 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_collectionOperationCallExp3375 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_LPAREN_in_collectionOperationCallExp3379 = new BitSet(new long[]{0x0000000000A030F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_collectionOperationCallExp3385 = new BitSet(new long[]{0x0000000000002200L});
public static final BitSet FOLLOW_COMA_in_collectionOperationCallExp3392 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_collectionOperationCallExp3397 = new BitSet(new long[]{0x0000000000002200L});
public static final BitSet FOLLOW_RPAREN_in_collectionOperationCallExp3407 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifierOrKeyword_in_operationCallExp3442 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_LPAREN_in_operationCallExp3446 = new BitSet(new long[]{0x0000000000A030F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_operationCallExp3452 = new BitSet(new long[]{0x0000000000002200L});
public static final BitSet FOLLOW_COMA_in_operationCallExp3459 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_operationCallExp3464 = new BitSet(new long[]{0x0000000000002200L});
public static final BitSet FOLLOW_RPAREN_in_operationCallExp3474 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifierOrKeyword_in_navigationOrAttributeCallExp3509 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_iterator3574 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_73_in_oclUndefinedExp3608 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_numericExp_in_primitiveExp3643 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_booleanExp_in_primitiveExp3648 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_stringExp_in_primitiveExp3653 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_integerExp_in_numericExp3689 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_realExp_in_numericExp3694 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_74_in_booleanExp3729 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_75_in_booleanExp3736 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_integerSymbol_in_integerExp3774 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_floatSymbol_in_realExp3810 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_stringSymbol_in_stringExp3846 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_69_in_ifExp3880 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_ifExp3884 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_76_in_ifExp3888 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_ifExp3894 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
public static final BitSet FOLLOW_70_in_ifExp3900 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_ifExp3906 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
public static final BitSet FOLLOW_77_in_ifExp3912 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_variableExp3946 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_78_in_superExp3980 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_79_in_letExp4012 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_variableDeclaration_in_letExp4016 = new BitSet(new long[]{0x4000000000000000L});
public static final BitSet FOLLOW_62_in_letExp4020 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_letExp4026 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_variableDeclaration4064 = new BitSet(new long[]{0x0000000000000800L});
public static final BitSet FOLLOW_COLON_in_variableDeclaration4068 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_oclType_in_variableDeclaration4072 = new BitSet(new long[]{0x0000000000000400L});
public static final BitSet FOLLOW_EQ_in_variableDeclaration4076 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_variableDeclaration4080 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SHARP_in_enumLiteralExp4114 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_identifier_in_enumLiteralExp4118 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_bagExp_in_collectionExp4155 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_setExp_in_collectionExp4160 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_orderedSetExp_in_collectionExp4165 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_sequenceExp_in_collectionExp4170 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_80_in_bagExp4203 = new BitSet(new long[]{0x0000000000004000L});
public static final BitSet FOLLOW_LCURLY_in_bagExp4205 = new BitSet(new long[]{0x0000000000A090F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_bagExp4211 = new BitSet(new long[]{0x0000000000008200L});
public static final BitSet FOLLOW_COMA_in_bagExp4218 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_bagExp4223 = new BitSet(new long[]{0x0000000000008200L});
public static final BitSet FOLLOW_RCURLY_in_bagExp4233 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_81_in_setExp4265 = new BitSet(new long[]{0x0000000000004000L});
public static final BitSet FOLLOW_LCURLY_in_setExp4267 = new BitSet(new long[]{0x0000000000A090F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_setExp4273 = new BitSet(new long[]{0x0000000000008200L});
public static final BitSet FOLLOW_COMA_in_setExp4280 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_setExp4285 = new BitSet(new long[]{0x0000000000008200L});
public static final BitSet FOLLOW_RCURLY_in_setExp4295 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_82_in_orderedSetExp4327 = new BitSet(new long[]{0x0000000000004000L});
public static final BitSet FOLLOW_LCURLY_in_orderedSetExp4329 = new BitSet(new long[]{0x0000000000A090F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_orderedSetExp4335 = new BitSet(new long[]{0x0000000000008200L});
public static final BitSet FOLLOW_COMA_in_orderedSetExp4342 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_orderedSetExp4347 = new BitSet(new long[]{0x0000000000008200L});
public static final BitSet FOLLOW_RCURLY_in_orderedSetExp4357 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_83_in_sequenceExp4389 = new BitSet(new long[]{0x0000000000004000L});
public static final BitSet FOLLOW_LCURLY_in_sequenceExp4391 = new BitSet(new long[]{0x0000000000A090F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_sequenceExp4397 = new BitSet(new long[]{0x0000000000008200L});
public static final BitSet FOLLOW_COMA_in_sequenceExp4404 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_sequenceExp4409 = new BitSet(new long[]{0x0000000000008200L});
public static final BitSet FOLLOW_RCURLY_in_sequenceExp4419 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_84_in_mapExp4451 = new BitSet(new long[]{0x0000000000004000L});
public static final BitSet FOLLOW_LCURLY_in_mapExp4453 = new BitSet(new long[]{0x0000000000009000L});
public static final BitSet FOLLOW_mapElement_in_mapExp4459 = new BitSet(new long[]{0x0000000000008200L});
public static final BitSet FOLLOW_COMA_in_mapExp4466 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_mapElement_in_mapExp4471 = new BitSet(new long[]{0x0000000000008200L});
public static final BitSet FOLLOW_RCURLY_in_mapExp4481 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_mapElement4513 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_mapElement4517 = new BitSet(new long[]{0x0000000000000200L});
public static final BitSet FOLLOW_COMA_in_mapElement4521 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_mapElement4525 = new BitSet(new long[]{0x0000000000002000L});
public static final BitSet FOLLOW_RPAREN_in_mapElement4529 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_85_in_tupleExp4561 = new BitSet(new long[]{0x0000000000004000L});
public static final BitSet FOLLOW_LCURLY_in_tupleExp4563 = new BitSet(new long[]{0xFFFFF80000008010L,0x0000001FFFFFFFFFL});
public static final BitSet FOLLOW_tuplePart_in_tupleExp4569 = new BitSet(new long[]{0x0000000000008200L});
public static final BitSet FOLLOW_COMA_in_tupleExp4576 = new BitSet(new long[]{0xFFFFF80000000010L,0x0000001FFFFFFFFFL});
public static final BitSet FOLLOW_tuplePart_in_tupleExp4581 = new BitSet(new long[]{0x0000000000008200L});
public static final BitSet FOLLOW_RCURLY_in_tupleExp4591 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifierOrKeyword_in_tuplePart4625 = new BitSet(new long[]{0x0000000000000C00L});
public static final BitSet FOLLOW_COLON_in_tuplePart4631 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_oclType_in_tuplePart4635 = new BitSet(new long[]{0x0000000000000400L});
public static final BitSet FOLLOW_EQ_in_tuplePart4649 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_tuplePart4653 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_oclModelElement_in_oclType4690 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_oclAnyType_in_oclType4695 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_tupleType_in_oclType4700 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_mapType_in_oclType4705 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_primitive_in_oclType4710 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_collectionType_in_oclType4715 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_oclType_abstractContents_in_oclType4720 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_87_in_oclAnyType4753 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_88_in_tupleType4785 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_LPAREN_in_tupleType4787 = new BitSet(new long[]{0x0000000000002010L});
public static final BitSet FOLLOW_tupleTypeAttribute_in_tupleType4793 = new BitSet(new long[]{0x0000000000002200L});
public static final BitSet FOLLOW_COMA_in_tupleType4800 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_tupleTypeAttribute_in_tupleType4805 = new BitSet(new long[]{0x0000000000002200L});
public static final BitSet FOLLOW_RPAREN_in_tupleType4815 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_tupleTypeAttribute4849 = new BitSet(new long[]{0x0000000000000800L});
public static final BitSet FOLLOW_COLON_in_tupleTypeAttribute4853 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_oclType_in_tupleTypeAttribute4857 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_84_in_mapType4891 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_LPAREN_in_mapType4893 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_oclType_in_mapType4897 = new BitSet(new long[]{0x0000000000000200L});
public static final BitSet FOLLOW_COMA_in_mapType4901 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_oclType_in_mapType4905 = new BitSet(new long[]{0x0000000000002000L});
public static final BitSet FOLLOW_RPAREN_in_mapType4909 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_numericType_in_primitive4944 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_booleanType_in_primitive4949 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_stringType_in_primitive4954 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_integerType_in_numericType4990 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_realType_in_numericType4995 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_89_in_integerType5028 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_90_in_realType5060 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_91_in_booleanType5092 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_92_in_stringType5124 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_bagType_in_collectionType5159 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_setType_in_collectionType5164 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_orderedSetType_in_collectionType5169 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_sequenceType_in_collectionType5174 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_collectionType_abstractContents_in_collectionType5179 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_80_in_bagType5212 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_LPAREN_in_bagType5214 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_oclType_in_bagType5218 = new BitSet(new long[]{0x0000000000002000L});
public static final BitSet FOLLOW_RPAREN_in_bagType5222 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_81_in_setType5254 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_LPAREN_in_setType5256 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_oclType_in_setType5260 = new BitSet(new long[]{0x0000000000002000L});
public static final BitSet FOLLOW_RPAREN_in_setType5264 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_82_in_orderedSetType5296 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_LPAREN_in_orderedSetType5298 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_oclType_in_orderedSetType5302 = new BitSet(new long[]{0x0000000000002000L});
public static final BitSet FOLLOW_RPAREN_in_orderedSetType5306 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_83_in_sequenceType5338 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_LPAREN_in_sequenceType5340 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_oclType_in_sequenceType5344 = new BitSet(new long[]{0x0000000000002000L});
public static final BitSet FOLLOW_RPAREN_in_sequenceType5348 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_primary_oclExpression_in_priority_05382 = new BitSet(new long[]{0x0000000000410002L});
public static final BitSet FOLLOW_POINT_in_priority_05387 = new BitSet(new long[]{0xFFFFF80000000010L,0x0000001FFFFFFFFFL});
public static final BitSet FOLLOW_operationCallExp_in_priority_05394 = new BitSet(new long[]{0x0000000000410002L});
public static final BitSet FOLLOW_navigationOrAttributeCallExp_in_priority_05401 = new BitSet(new long[]{0x0000000000410002L});
public static final BitSet FOLLOW_RARROW_in_priority_05409 = new BitSet(new long[]{0x0000000000000010L,0x0000000000000100L});
public static final BitSet FOLLOW_iteratorExp_in_priority_05416 = new BitSet(new long[]{0x0000000000410002L});
public static final BitSet FOLLOW_iterateExp_in_priority_05423 = new BitSet(new long[]{0x0000000000410002L});
public static final BitSet FOLLOW_collectionOperationCallExp_in_priority_05430 = new BitSet(new long[]{0x0000000000410002L});
public static final BitSet FOLLOW_94_in_priority_15470 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_operatorCallExp_in_priority_15477 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_priority_0_in_priority_15482 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MINUS_in_priority_15490 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_operatorCallExp_in_priority_15497 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_priority_0_in_priority_15502 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_priority_0_in_priority_15512 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_priority_1_in_priority_25547 = new BitSet(new long[]{0x0000000003000002L,0x0000000180000000L});
public static final BitSet FOLLOW_STAR_in_priority_25552 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_operatorCallExp_in_priority_25559 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_priority_1_in_priority_25564 = new BitSet(new long[]{0x0000000003000002L,0x0000000180000000L});
public static final BitSet FOLLOW_SLASH_in_priority_25572 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_operatorCallExp_in_priority_25579 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_priority_1_in_priority_25584 = new BitSet(new long[]{0x0000000003000002L,0x0000000180000000L});
public static final BitSet FOLLOW_95_in_priority_25592 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_operatorCallExp_in_priority_25599 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_priority_1_in_priority_25604 = new BitSet(new long[]{0x0000000003000002L,0x0000000180000000L});
public static final BitSet FOLLOW_96_in_priority_25612 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_operatorCallExp_in_priority_25619 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_priority_1_in_priority_25624 = new BitSet(new long[]{0x0000000003000002L,0x0000000180000000L});
public static final BitSet FOLLOW_priority_2_in_priority_35665 = new BitSet(new long[]{0x0000000004800002L});
public static final BitSet FOLLOW_PLUS_in_priority_35670 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_operatorCallExp_in_priority_35677 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_priority_2_in_priority_35682 = new BitSet(new long[]{0x0000000004800002L});
public static final BitSet FOLLOW_MINUS_in_priority_35690 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_operatorCallExp_in_priority_35697 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_priority_2_in_priority_35702 = new BitSet(new long[]{0x0000000004800002L});
public static final BitSet FOLLOW_priority_3_in_priority_45743 = new BitSet(new long[]{0x00000000F8000402L});
public static final BitSet FOLLOW_EQ_in_priority_45748 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_operatorCallExp_in_priority_45755 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_priority_3_in_priority_45760 = new BitSet(new long[]{0x00000000F8000402L});
public static final BitSet FOLLOW_GT_in_priority_45768 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_operatorCallExp_in_priority_45775 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_priority_3_in_priority_45780 = new BitSet(new long[]{0x00000000F8000402L});
public static final BitSet FOLLOW_LT_in_priority_45788 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_operatorCallExp_in_priority_45795 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_priority_3_in_priority_45800 = new BitSet(new long[]{0x00000000F8000402L});
public static final BitSet FOLLOW_GE_in_priority_45808 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_operatorCallExp_in_priority_45815 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_priority_3_in_priority_45820 = new BitSet(new long[]{0x00000000F8000402L});
public static final BitSet FOLLOW_LE_in_priority_45828 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_operatorCallExp_in_priority_45835 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_priority_3_in_priority_45840 = new BitSet(new long[]{0x00000000F8000402L});
public static final BitSet FOLLOW_NE_in_priority_45848 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_operatorCallExp_in_priority_45855 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_priority_3_in_priority_45860 = new BitSet(new long[]{0x00000000F8000402L});
public static final BitSet FOLLOW_priority_4_in_priority_55901 = new BitSet(new long[]{0x0000000000000002L,0x0000001E00000000L});
public static final BitSet FOLLOW_97_in_priority_55906 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_operatorCallExp_in_priority_55913 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_priority_4_in_priority_55918 = new BitSet(new long[]{0x0000000000000002L,0x0000001E00000000L});
public static final BitSet FOLLOW_98_in_priority_55926 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_operatorCallExp_in_priority_55933 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_priority_4_in_priority_55938 = new BitSet(new long[]{0x0000000000000002L,0x0000001E00000000L});
public static final BitSet FOLLOW_99_in_priority_55946 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_operatorCallExp_in_priority_55953 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_priority_4_in_priority_55958 = new BitSet(new long[]{0x0000000000000002L,0x0000001E00000000L});
public static final BitSet FOLLOW_100_in_priority_55966 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_operatorCallExp_in_priority_55973 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_priority_4_in_priority_55978 = new BitSet(new long[]{0x0000000000000002L,0x0000001E00000000L});
public static final BitSet FOLLOW_53_in_matchedRule_abstractContents6019 = new BitSet(new long[]{0x00C0200000000000L});
public static final BitSet FOLLOW_54_in_matchedRule_abstractContents6033 = new BitSet(new long[]{0x0080200000000000L});
public static final BitSet FOLLOW_45_in_matchedRule_abstractContents6047 = new BitSet(new long[]{0x0080000000000000L});
public static final BitSet FOLLOW_55_in_matchedRule_abstractContents6059 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_identifier_in_matchedRule_abstractContents6063 = new BitSet(new long[]{0x0100000000004000L});
public static final BitSet FOLLOW_56_in_matchedRule_abstractContents6069 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_identifier_in_matchedRule_abstractContents6073 = new BitSet(new long[]{0x0000000000004000L});
public static final BitSet FOLLOW_LCURLY_in_matchedRule_abstractContents6087 = new BitSet(new long[]{0x0000400000000000L});
public static final BitSet FOLLOW_inPattern_in_matchedRule_abstractContents6093 = new BitSet(new long[]{0x8200000000008000L,0x0000000000000010L});
public static final BitSet FOLLOW_57_in_matchedRule_abstractContents6099 = new BitSet(new long[]{0x0000000000004000L});
public static final BitSet FOLLOW_LCURLY_in_matchedRule_abstractContents6101 = new BitSet(new long[]{0x0000000000008010L});
public static final BitSet FOLLOW_ruleVariableDeclaration_in_matchedRule_abstractContents6109 = new BitSet(new long[]{0x0000000000008010L});
public static final BitSet FOLLOW_ruleVariableDeclaration_in_matchedRule_abstractContents6117 = new BitSet(new long[]{0x0000000000008010L});
public static final BitSet FOLLOW_RCURLY_in_matchedRule_abstractContents6129 = new BitSet(new long[]{0x8000000000008000L,0x0000000000000010L});
public static final BitSet FOLLOW_outPattern_in_matchedRule_abstractContents6145 = new BitSet(new long[]{0x0000000000008000L,0x0000000000000010L});
public static final BitSet FOLLOW_actionBlock_in_matchedRule_abstractContents6163 = new BitSet(new long[]{0x0000000000008000L});
public static final BitSet FOLLOW_RCURLY_in_matchedRule_abstractContents6179 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_86_in_oclType_abstractContents6211 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_93_in_collectionType_abstractContents6243 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_LPAREN_in_collectionType_abstractContents6245 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFF4E20L});
public static final BitSet FOLLOW_oclType_in_collectionType_abstractContents6249 = new BitSet(new long[]{0x0000000000002000L});
public static final BitSet FOLLOW_RPAREN_in_collectionType_abstractContents6253 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_primary_oclExpression6286 = new BitSet(new long[]{0x0000000000A010F0L,0x000000007FFFCE20L});
public static final BitSet FOLLOW_oclExpression_in_primary_oclExpression6290 = new BitSet(new long[]{0x0000000000002000L});
public static final BitSet FOLLOW_RPAREN_in_primary_oclExpression6292 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_variableExp_in_primary_oclExpression6298 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_oclUndefinedExp_in_primary_oclExpression6303 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_primitiveExp_in_primary_oclExpression6308 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ifExp_in_primary_oclExpression6313 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_superExp_in_primary_oclExpression6318 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_enumLiteralExp_in_primary_oclExpression6323 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_collectionExp_in_primary_oclExpression6328 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_mapExp_in_primary_oclExpression6333 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_tupleExp_in_primary_oclExpression6338 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_oclType_in_primary_oclExpression6343 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ifStat_in_synpred125_ATL_ANTLR32702 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expressionStat_in_synpred126_ATL_ANTLR32707 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_bindingStat_in_synpred127_ATL_ANTLR32712 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_70_in_synpred135_ATL_ANTLR32912 = new BitSet(new long[]{0x0000000000A050F0L,0x000000007FFFCEA0L});
public static final BitSet FOLLOW_statement_in_synpred135_ATL_ANTLR32920 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LCURLY_in_synpred135_ATL_ANTLR32931 = new BitSet(new long[]{0x0000000000A090F0L,0x000000007FFFCEA0L});
public static final BitSet FOLLOW_statement_in_synpred135_ATL_ANTLR32939 = new BitSet(new long[]{0x0000000000A090F0L,0x000000007FFFCEA0L});
public static final BitSet FOLLOW_statement_in_synpred135_ATL_ANTLR32947 = new BitSet(new long[]{0x0000000000A090F0L,0x000000007FFFCEA0L});
public static final BitSet FOLLOW_RCURLY_in_synpred135_ATL_ANTLR32959 = new BitSet(new long[]{0x0000000000000002L});
}