Project

General

Profile

root / trunk / compiler / ooasCompiler / src / org / momut / ooas / parser / ooaParser.java @ 9

1
// $ANTLR 3.4 /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g 2015-08-31 13:32:37
2

    
3
 /*
4
    Ulysses OO-Action System Parser
5

6
    Copyright Graz University of Technology 2009
7
    Copyright AIT Austrian Institute of Technology 2013
8
 */
9
 package org.momut.ooas.parser;
10

    
11
 import org.momut.ooas.ast.expressions.*;
12
 import org.momut.ooas.ast.statements.*;
13
 import org.momut.ooas.ast.identifiers.*;
14
 import org.momut.ooas.ast.types.*;
15
 import org.momut.ooas.ast.types.FunctionType.FunctionTypeEnum;
16

    
17

    
18
import org.antlr.runtime.*;
19
import java.util.ArrayList;
20

    
21
@SuppressWarnings({"all", "warnings", "unchecked"})
22
public class ooaParser extends ooaCustomParser {
23
    public static final String[] tokenNames = new String[] {
24
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "FLOAT_OR_INT_OR_RANGE", "LINE_COMMENT", "T_ABORT", "T_ABS", "T_ACTIONS", "T_AND", "T_ASSIGNMENT", "T_AUTOCONS", "T_BAR", "T_BIIMPLIES", "T_BOOL", "T_BREAK", "T_CARD", "T_CBRL", "T_CBRR", "T_CHAR", "T_COLON", "T_COMMA", "T_COMMENT", "T_CONC", "T_CONSTS", "T_CTRL", "T_DCONC", "T_DERIV", "T_DIFF", "T_DIGIT", "T_DINTER", "T_DIV", "T_DO", "T_DOM", "T_DOMRESBY", "T_DOMRESTO", "T_DUNION", "T_ELEMS", "T_ELSE", "T_END", "T_EQUAL", "T_EXISTS", "T_FALSE", "T_FLOAT", "T_FLOATNUMBER", "T_FOLDLR", "T_FOLDRL", "T_FORALL", "T_GREATER", "T_GREATEREQUAL", "T_HEAD", "T_IDENTIFIER", "T_IDIV", "T_IF", "T_IMPLIES", "T_IN", "T_INDS", "T_INFTY", "T_INT", "T_INTER", "T_INTNUMBER", "T_KILL", "T_LEN", "T_LESS", "T_LESSEQUAL", "T_LETTER", "T_LIST", "T_LPAREN", "T_LSQPAREN", "T_MAP", "T_MAPS", "T_MERGE", "T_METHODS", "T_MINUS", "T_MOD", "T_MUNION", "T_NEW", "T_NIL", "T_NONDET", "T_NOT", "T_NOTEQUAL", "T_OBS", "T_OD", "T_OF", "T_OR", "T_POINT", "T_POW", "T_PRIMED", "T_PRIO", "T_PROD", "T_RANGETO", "T_REQUIRES", "T_RNG", "T_RNGRESBY", "T_RNGRESTO", "T_RPAREN", "T_RSQPAREN", "T_SELF", "T_SEMICOLON", "T_SEQMOD_MAPOVERRIDE", "T_SET", "T_SKIP", "T_STATIC", "T_STRINGLITERAL", "T_SUBSET", "T_SUM", "T_SYSTEM", "T_TAIL", "T_THEN", "T_TO", "T_TRUE", "T_TYPES", "T_UNION", "T_VAR", "T_WITH", "T_WS", "'&'", "'::'", "']|'", "'as'", "'begin'", "'|['"
25
    };
26

    
27
    public static final int EOF=-1;
28
    public static final int T__116=116;
29
    public static final int T__117=117;
30
    public static final int T__118=118;
31
    public static final int T__119=119;
32
    public static final int T__120=120;
33
    public static final int T__121=121;
34
    public static final int FLOAT_OR_INT_OR_RANGE=4;
35
    public static final int LINE_COMMENT=5;
36
    public static final int T_ABORT=6;
37
    public static final int T_ABS=7;
38
    public static final int T_ACTIONS=8;
39
    public static final int T_AND=9;
40
    public static final int T_ASSIGNMENT=10;
41
    public static final int T_AUTOCONS=11;
42
    public static final int T_BAR=12;
43
    public static final int T_BIIMPLIES=13;
44
    public static final int T_BOOL=14;
45
    public static final int T_BREAK=15;
46
    public static final int T_CARD=16;
47
    public static final int T_CBRL=17;
48
    public static final int T_CBRR=18;
49
    public static final int T_CHAR=19;
50
    public static final int T_COLON=20;
51
    public static final int T_COMMA=21;
52
    public static final int T_COMMENT=22;
53
    public static final int T_CONC=23;
54
    public static final int T_CONSTS=24;
55
    public static final int T_CTRL=25;
56
    public static final int T_DCONC=26;
57
    public static final int T_DERIV=27;
58
    public static final int T_DIFF=28;
59
    public static final int T_DIGIT=29;
60
    public static final int T_DINTER=30;
61
    public static final int T_DIV=31;
62
    public static final int T_DO=32;
63
    public static final int T_DOM=33;
64
    public static final int T_DOMRESBY=34;
65
    public static final int T_DOMRESTO=35;
66
    public static final int T_DUNION=36;
67
    public static final int T_ELEMS=37;
68
    public static final int T_ELSE=38;
69
    public static final int T_END=39;
70
    public static final int T_EQUAL=40;
71
    public static final int T_EXISTS=41;
72
    public static final int T_FALSE=42;
73
    public static final int T_FLOAT=43;
74
    public static final int T_FLOATNUMBER=44;
75
    public static final int T_FOLDLR=45;
76
    public static final int T_FOLDRL=46;
77
    public static final int T_FORALL=47;
78
    public static final int T_GREATER=48;
79
    public static final int T_GREATEREQUAL=49;
80
    public static final int T_HEAD=50;
81
    public static final int T_IDENTIFIER=51;
82
    public static final int T_IDIV=52;
83
    public static final int T_IF=53;
84
    public static final int T_IMPLIES=54;
85
    public static final int T_IN=55;
86
    public static final int T_INDS=56;
87
    public static final int T_INFTY=57;
88
    public static final int T_INT=58;
89
    public static final int T_INTER=59;
90
    public static final int T_INTNUMBER=60;
91
    public static final int T_KILL=61;
92
    public static final int T_LEN=62;
93
    public static final int T_LESS=63;
94
    public static final int T_LESSEQUAL=64;
95
    public static final int T_LETTER=65;
96
    public static final int T_LIST=66;
97
    public static final int T_LPAREN=67;
98
    public static final int T_LSQPAREN=68;
99
    public static final int T_MAP=69;
100
    public static final int T_MAPS=70;
101
    public static final int T_MERGE=71;
102
    public static final int T_METHODS=72;
103
    public static final int T_MINUS=73;
104
    public static final int T_MOD=74;
105
    public static final int T_MUNION=75;
106
    public static final int T_NEW=76;
107
    public static final int T_NIL=77;
108
    public static final int T_NONDET=78;
109
    public static final int T_NOT=79;
110
    public static final int T_NOTEQUAL=80;
111
    public static final int T_OBS=81;
112
    public static final int T_OD=82;
113
    public static final int T_OF=83;
114
    public static final int T_OR=84;
115
    public static final int T_POINT=85;
116
    public static final int T_POW=86;
117
    public static final int T_PRIMED=87;
118
    public static final int T_PRIO=88;
119
    public static final int T_PROD=89;
120
    public static final int T_RANGETO=90;
121
    public static final int T_REQUIRES=91;
122
    public static final int T_RNG=92;
123
    public static final int T_RNGRESBY=93;
124
    public static final int T_RNGRESTO=94;
125
    public static final int T_RPAREN=95;
126
    public static final int T_RSQPAREN=96;
127
    public static final int T_SELF=97;
128
    public static final int T_SEMICOLON=98;
129
    public static final int T_SEQMOD_MAPOVERRIDE=99;
130
    public static final int T_SET=100;
131
    public static final int T_SKIP=101;
132
    public static final int T_STATIC=102;
133
    public static final int T_STRINGLITERAL=103;
134
    public static final int T_SUBSET=104;
135
    public static final int T_SUM=105;
136
    public static final int T_SYSTEM=106;
137
    public static final int T_TAIL=107;
138
    public static final int T_THEN=108;
139
    public static final int T_TO=109;
140
    public static final int T_TRUE=110;
141
    public static final int T_TYPES=111;
142
    public static final int T_UNION=112;
143
    public static final int T_VAR=113;
144
    public static final int T_WITH=114;
145
    public static final int T_WS=115;
146

    
147
    // delegates
148
    public ooaCustomParser[] getDelegates() {
149
        return new ooaCustomParser[] {};
150
    }
151

    
152
    // delegators
153

    
154

    
155
    public ooaParser(TokenStream input) {
156
        this(input, new RecognizerSharedState());
157
    }
158
    public ooaParser(TokenStream input, RecognizerSharedState state) {
159
        super(input, state);
160
    }
161

    
162
    @Override
163
        public String[] getTokenNames() { return ooaParser.tokenNames; }
164
    @Override
165
        public String getGrammarFileName() { return "/home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g"; }
166

    
167

    
168

    
169
    // $ANTLR start "ooActionSystems"
170
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:154:1: ooActionSystems : ( T_CONSTS namedConstList )? T_TYPES namedTypeList T_SYSTEM comp= asTypeComposition[null] ;
171
    public final void ooActionSystems() {
172
        IdentifierList comp =null;
173

    
174

    
175
        try {
176
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:155:2: ( ( T_CONSTS namedConstList )? T_TYPES namedTypeList T_SYSTEM comp= asTypeComposition[null] )
177
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:155:4: ( T_CONSTS namedConstList )? T_TYPES namedTypeList T_SYSTEM comp= asTypeComposition[null]
178
            {
179
            initializeTopLevelParserState();
180

    
181
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:157:11: ( T_CONSTS namedConstList )?
182
            int alt1=2;
183
            final int LA1_0 = input.LA(1);
184

    
185
            if ( (LA1_0==T_CONSTS) ) {
186
                alt1=1;
187
            }
188
            switch (alt1) {
189
                case 1 :
190
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:157:12: T_CONSTS namedConstList
191
                    {
192
                    match(input,T_CONSTS,FOLLOW_T_CONSTS_in_ooActionSystems74);
193

    
194
                    pushFollow(FOLLOW_namedConstList_in_ooActionSystems76);
195
                    namedConstList();
196

    
197
                    state._fsp--;
198

    
199

    
200
                    }
201
                    break;
202

    
203
            }
204

    
205

    
206
            match(input,T_TYPES,FOLLOW_T_TYPES_in_ooActionSystems86);
207

    
208
            pushFollow(FOLLOW_namedTypeList_in_ooActionSystems94);
209
            namedTypeList();
210

    
211
            state._fsp--;
212

    
213

    
214
            match(input,T_SYSTEM,FOLLOW_T_SYSTEM_in_ooActionSystems99);
215

    
216
            pushFollow(FOLLOW_asTypeComposition_in_ooActionSystems106);
217
            comp=asTypeComposition(null);
218

    
219
            state._fsp--;
220

    
221

    
222
            fixUpRun(comp);
223

    
224
            }
225

    
226
        }
227
        catch (final RecognitionException re) {
228
            reportError(re);
229
            recover(input,re);
230
        }
231

    
232
        finally {
233
                // do for sure before leaving
234
        }
235
        return ;
236
    }
237
    // $ANTLR end "ooActionSystems"
238

    
239

    
240

    
241
    // $ANTLR start "namedConstList"
242
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:172:1: namedConstList : namedConst ( T_SEMICOLON namedConst )* ;
243
    public final void namedConstList() throws RecognitionException {
244
        try {
245
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:173:2: ( namedConst ( T_SEMICOLON namedConst )* )
246
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:173:4: namedConst ( T_SEMICOLON namedConst )*
247
            {
248
            pushFollow(FOLLOW_namedConst_in_namedConstList129);
249
            namedConst();
250

    
251
            state._fsp--;
252

    
253

    
254
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:173:15: ( T_SEMICOLON namedConst )*
255
            loop2:
256
            do {
257
                int alt2=2;
258
                final int LA2_0 = input.LA(1);
259

    
260
                if ( (LA2_0==T_SEMICOLON) ) {
261
                    alt2=1;
262
                }
263

    
264

    
265
                switch (alt2) {
266
                    case 1 :
267
                        // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:173:16: T_SEMICOLON namedConst
268
                        {
269
                        match(input,T_SEMICOLON,FOLLOW_T_SEMICOLON_in_namedConstList132);
270

    
271
                        pushFollow(FOLLOW_namedConst_in_namedConstList134);
272
                        namedConst();
273

    
274
                        state._fsp--;
275

    
276

    
277
                        }
278
                        break;
279

    
280
                    default :
281
                        break loop2;
282
                }
283
            } while (true);
284

    
285

    
286
            }
287

    
288
        }
289
        catch (final RecognitionException re) {
290
            reportError(re);
291
            recover(input,re);
292
        }
293

    
294
        finally {
295
                // do for sure before leaving
296
        }
297
        return ;
298
    }
299
    // $ANTLR end "namedConstList"
300

    
301

    
302

    
303
    // $ANTLR start "namedConst"
304
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:176:1: namedConst : aName= T_IDENTIFIER T_EQUAL anExpr= expression ;
305
    public final void namedConst() throws RecognitionException {
306
        Token aName=null;
307
        Expression anExpr =null;
308

    
309

    
310
        try {
311
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:177:2: (aName= T_IDENTIFIER T_EQUAL anExpr= expression )
312
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:177:4: aName= T_IDENTIFIER T_EQUAL anExpr= expression
313
            {
314
            aName=(Token)match(input,T_IDENTIFIER,FOLLOW_T_IDENTIFIER_in_namedConst150);
315

    
316
            match(input,T_EQUAL,FOLLOW_T_EQUAL_in_namedConst154);
317

    
318
            pushFollow(FOLLOW_expression_in_namedConst160);
319
            anExpr=expression();
320

    
321
            state._fsp--;
322

    
323

    
324
            addNamedConst(aName,anExpr);
325

    
326
            }
327

    
328
        }
329
        catch (final RecognitionException re) {
330
            reportError(re);
331
            recover(input,re);
332
        }
333

    
334
        finally {
335
                // do for sure before leaving
336
        }
337
        return ;
338
    }
339
    // $ANTLR end "namedConst"
340

    
341

    
342

    
343
    // $ANTLR start "namedTypeList"
344
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:187:1: namedTypeList : namedType ( T_SEMICOLON namedType )* ;
345
    public final void namedTypeList() throws RecognitionException {
346
        try {
347
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:188:2: ( namedType ( T_SEMICOLON namedType )* )
348
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:188:4: namedType ( T_SEMICOLON namedType )*
349
            {
350
            pushFollow(FOLLOW_namedType_in_namedTypeList180);
351
            namedType();
352

    
353
            state._fsp--;
354

    
355

    
356
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:188:14: ( T_SEMICOLON namedType )*
357
            loop3:
358
            do {
359
                int alt3=2;
360
                final int LA3_0 = input.LA(1);
361

    
362
                if ( (LA3_0==T_SEMICOLON) ) {
363
                    alt3=1;
364
                }
365

    
366

    
367
                switch (alt3) {
368
                    case 1 :
369
                        // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:188:15: T_SEMICOLON namedType
370
                        {
371
                        match(input,T_SEMICOLON,FOLLOW_T_SEMICOLON_in_namedTypeList183);
372

    
373
                        pushFollow(FOLLOW_namedType_in_namedTypeList185);
374
                        namedType();
375

    
376
                        state._fsp--;
377

    
378

    
379
                        }
380
                        break;
381

    
382
                    default :
383
                        break loop3;
384
                }
385
            } while (true);
386

    
387

    
388
            }
389

    
390
        }
391
        catch (final RecognitionException re) {
392
            reportError(re);
393
            recover(input,re);
394
        }
395

    
396
        finally {
397
                // do for sure before leaving
398
        }
399
        return ;
400
    }
401
    // $ANTLR end "namedTypeList"
402

    
403

    
404

    
405
    // $ANTLR start "namedType"
406
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:191:1: namedType : aName= T_IDENTIFIER T_EQUAL (aType= complexType |anOoaType= ooActionSystem ) ;
407
    public final void namedType() throws RecognitionException {
408
        Token aName=null;
409
        Type aType =null;
410

    
411
        OoActionSystemType anOoaType =null;
412

    
413

    
414
        try {
415
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:192:2: (aName= T_IDENTIFIER T_EQUAL (aType= complexType |anOoaType= ooActionSystem ) )
416
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:192:4: aName= T_IDENTIFIER T_EQUAL (aType= complexType |anOoaType= ooActionSystem )
417
            {
418
            aName=(Token)match(input,T_IDENTIFIER,FOLLOW_T_IDENTIFIER_in_namedType201);
419

    
420
            match(input,T_EQUAL,FOLLOW_T_EQUAL_in_namedType206);
421

    
422
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:194:3: (aType= complexType |anOoaType= ooActionSystem )
423
            int alt4=2;
424
            final int LA4_0 = input.LA(1);
425

    
426
            if ( (LA4_0==T_BOOL||LA4_0==T_CBRL||LA4_0==T_CHAR||LA4_0==T_FLOAT||LA4_0==T_IDENTIFIER||LA4_0==T_INT||(LA4_0 >= T_LIST && LA4_0 <= T_MAP)) ) {
427
                alt4=1;
428
            }
429
            else if ( (LA4_0==T_AUTOCONS||LA4_0==T_SYSTEM) ) {
430
                alt4=2;
431
            }
432
            else {
433
                final NoViableAltException nvae =
434
                    new NoViableAltException("", 4, 0, input);
435

    
436
                throw nvae;
437

    
438
            }
439
            switch (alt4) {
440
                case 1 :
441
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:195:4: aType= complexType
442
                    {
443
                    pushFollow(FOLLOW_complexType_in_namedType218);
444
                    aType=complexType();
445

    
446
                    state._fsp--;
447

    
448

    
449
                    createNamedType(aName,aType);
450

    
451
                    }
452
                    break;
453
                case 2 :
454
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:196:5: anOoaType= ooActionSystem
455
                    {
456
                    pushFollow(FOLLOW_ooActionSystem_in_namedType230);
457
                    anOoaType=ooActionSystem();
458

    
459
                    state._fsp--;
460

    
461

    
462
                    createNamedType(aName,anOoaType);
463

    
464
                    }
465
                    break;
466

    
467
            }
468

    
469

    
470
            }
471

    
472
        }
473
        catch (final RecognitionException re) {
474
            reportError(re);
475
            recover(input,re);
476
        }
477

    
478
        finally {
479
                // do for sure before leaving
480
        }
481
        return ;
482
    }
483
    // $ANTLR end "namedType"
484

    
485

    
486

    
487
    // $ANTLR start "asTypeComposition"
488
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:202:1: asTypeComposition[IdentifierList top] returns [IdentifierList prioList] : asTypeCompositionParallel[prioList] ( T_PRIO asTypeCompositionParallel[prioList] )* ;
489
    public final IdentifierList asTypeComposition(IdentifierList top) throws RecognitionException {
490
        IdentifierList prioList = null;
491

    
492

    
493
        try {
494
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:204:2: ( asTypeCompositionParallel[prioList] ( T_PRIO asTypeCompositionParallel[prioList] )* )
495
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:204:6: asTypeCompositionParallel[prioList] ( T_PRIO asTypeCompositionParallel[prioList] )*
496
            {
497
            prioList = new PrioIdentifierList(top);
498

    
499
            pushFollow(FOLLOW_asTypeCompositionParallel_in_asTypeComposition266);
500
            asTypeCompositionParallel(prioList);
501

    
502
            state._fsp--;
503

    
504

    
505
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:205:40: ( T_PRIO asTypeCompositionParallel[prioList] )*
506
            loop5:
507
            do {
508
                int alt5=2;
509
                final int LA5_0 = input.LA(1);
510

    
511
                if ( (LA5_0==T_PRIO) ) {
512
                    alt5=1;
513
                }
514

    
515

    
516
                switch (alt5) {
517
                    case 1 :
518
                        // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:205:41: T_PRIO asTypeCompositionParallel[prioList]
519
                        {
520
                        match(input,T_PRIO,FOLLOW_T_PRIO_in_asTypeComposition271);
521

    
522
                        pushFollow(FOLLOW_asTypeCompositionParallel_in_asTypeComposition273);
523
                        asTypeCompositionParallel(prioList);
524

    
525
                        state._fsp--;
526

    
527

    
528
                        }
529
                        break;
530

    
531
                    default :
532
                        break loop5;
533
                }
534
            } while (true);
535

    
536

    
537
            }
538

    
539
        }
540
        catch (final RecognitionException re) {
541
            reportError(re);
542
            recover(input,re);
543
        }
544

    
545
        finally {
546
                // do for sure before leaving
547
        }
548
        return prioList;
549
    }
550
    // $ANTLR end "asTypeComposition"
551

    
552

    
553

    
554
    // $ANTLR start "asTypeCompositionParallel"
555
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:208:1: asTypeCompositionParallel[IdentifierList top] : asTypeCompositionSequential[parList] ( T_NONDET asTypeCompositionSequential[parList] )* ;
556
    public final void asTypeCompositionParallel(IdentifierList top) throws RecognitionException {
557
        try {
558
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:209:2: ( asTypeCompositionSequential[parList] ( T_NONDET asTypeCompositionSequential[parList] )* )
559
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:209:6: asTypeCompositionSequential[parList] ( T_NONDET asTypeCompositionSequential[parList] )*
560
            {
561
            final IdentifierList parList = new NondetIdentifierList(top);
562

    
563
            pushFollow(FOLLOW_asTypeCompositionSequential_in_asTypeCompositionParallel296);
564
            asTypeCompositionSequential(parList);
565

    
566
            state._fsp--;
567

    
568

    
569
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:210:40: ( T_NONDET asTypeCompositionSequential[parList] )*
570
            loop6:
571
            do {
572
                int alt6=2;
573
                final int LA6_0 = input.LA(1);
574

    
575
                if ( (LA6_0==T_NONDET) ) {
576
                    alt6=1;
577
                }
578

    
579

    
580
                switch (alt6) {
581
                    case 1 :
582
                        // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:210:41: T_NONDET asTypeCompositionSequential[parList]
583
                        {
584
                        match(input,T_NONDET,FOLLOW_T_NONDET_in_asTypeCompositionParallel300);
585

    
586
                        pushFollow(FOLLOW_asTypeCompositionSequential_in_asTypeCompositionParallel302);
587
                        asTypeCompositionSequential(parList);
588

    
589
                        state._fsp--;
590

    
591

    
592
                        }
593
                        break;
594

    
595
                    default :
596
                        break loop6;
597
                }
598
            } while (true);
599

    
600

    
601
            }
602

    
603
        }
604
        catch (final RecognitionException re) {
605
            reportError(re);
606
            recover(input,re);
607
        }
608

    
609
        finally {
610
                // do for sure before leaving
611
        }
612
        return ;
613
    }
614
    // $ANTLR end "asTypeCompositionParallel"
615

    
616

    
617

    
618
    // $ANTLR start "asTypeCompositionSequential"
619
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:213:1: asTypeCompositionSequential[IdentifierList top] : asTypeCompositionBlockParen[seqList] ;
620
    public final void asTypeCompositionSequential(IdentifierList top) throws RecognitionException {
621
        try {
622
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:214:2: ( asTypeCompositionBlockParen[seqList] )
623
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:214:6: asTypeCompositionBlockParen[seqList]
624
            {
625
            final IdentifierList seqList = new SeqIdentifierList(top);
626

    
627
            pushFollow(FOLLOW_asTypeCompositionBlockParen_in_asTypeCompositionSequential324);
628
            asTypeCompositionBlockParen(seqList);
629

    
630
            state._fsp--;
631

    
632

    
633
            }
634

    
635
        }
636
        catch (final RecognitionException re) {
637
            reportError(re);
638
            recover(input,re);
639
        }
640

    
641
        finally {
642
                // do for sure before leaving
643
        }
644
        return ;
645
    }
646
    // $ANTLR end "asTypeCompositionSequential"
647

    
648

    
649

    
650
    // $ANTLR start "asTypeCompositionBlockParen"
651
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:218:1: asTypeCompositionBlockParen[IdentifierList top] : ( T_LPAREN asTypeComposition[top] T_RPAREN |aName= T_IDENTIFIER );
652
    public final void asTypeCompositionBlockParen(IdentifierList top) throws RecognitionException {
653
        Token aName=null;
654

    
655
        try {
656
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:219:2: ( T_LPAREN asTypeComposition[top] T_RPAREN |aName= T_IDENTIFIER )
657
            int alt7=2;
658
            final int LA7_0 = input.LA(1);
659

    
660
            if ( (LA7_0==T_LPAREN) ) {
661
                alt7=1;
662
            }
663
            else if ( (LA7_0==T_IDENTIFIER) ) {
664
                alt7=2;
665
            }
666
            else {
667
                final NoViableAltException nvae =
668
                    new NoViableAltException("", 7, 0, input);
669

    
670
                throw nvae;
671

    
672
            }
673
            switch (alt7) {
674
                case 1 :
675
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:219:4: T_LPAREN asTypeComposition[top] T_RPAREN
676
                    {
677
                    match(input,T_LPAREN,FOLLOW_T_LPAREN_in_asTypeCompositionBlockParen339);
678

    
679
                    pushFollow(FOLLOW_asTypeComposition_in_asTypeCompositionBlockParen341);
680
                    asTypeComposition(top);
681

    
682
                    state._fsp--;
683

    
684

    
685
                    match(input,T_RPAREN,FOLLOW_T_RPAREN_in_asTypeCompositionBlockParen344);
686

    
687
                    }
688
                    break;
689
                case 2 :
690
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:220:4: aName= T_IDENTIFIER
691
                    {
692
                    aName=(Token)match(input,T_IDENTIFIER,FOLLOW_T_IDENTIFIER_in_asTypeCompositionBlockParen351);
693

    
694
                    addToIdentifierList(top,aName);
695

    
696
                    }
697
                    break;
698

    
699
            }
700
        }
701
        catch (final RecognitionException re) {
702
            reportError(re);
703
            recover(input,re);
704
        }
705

    
706
        finally {
707
                // do for sure before leaving
708
        }
709
        return ;
710
    }
711
    // $ANTLR end "asTypeCompositionBlockParen"
712

    
713

    
714

    
715
    // $ANTLR start "complexType"
716
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:228:1: complexType returns [Type aTypeSymbol] : ( T_LIST T_LSQPAREN numOfElements= ( T_INTNUMBER | T_IDENTIFIER ) T_RSQPAREN T_OF innertype= complexType | T_LSQPAREN alistelem= T_IDENTIFIER ( T_COMMA otherlistelem= T_IDENTIFIER )* T_RSQPAREN | T_MAP ( T_LSQPAREN numOfElements= ( T_INTNUMBER | T_IDENTIFIER ) T_RSQPAREN )? mapfromtype= simpleType T_TO maptotype= complexType | T_LPAREN aType= complexType ( T_COMMA anotherType= complexType )* T_RPAREN |r= simpleType );
717
    public final Type complexType() throws RecognitionException {
718
        Type aTypeSymbol = null;
719

    
720

    
721
        Token numOfElements=null;
722
        Token alistelem=null;
723
        Token otherlistelem=null;
724
        Type innertype =null;
725

    
726
        Type mapfromtype =null;
727

    
728
        Type maptotype =null;
729

    
730
        Type aType =null;
731

    
732
        Type anotherType =null;
733

    
734
        Type r =null;
735

    
736

    
737

    
738
                        aTypeSymbol = null;
739

    
740
        try {
741
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:233:2: ( T_LIST T_LSQPAREN numOfElements= ( T_INTNUMBER | T_IDENTIFIER ) T_RSQPAREN T_OF innertype= complexType | T_LSQPAREN alistelem= T_IDENTIFIER ( T_COMMA otherlistelem= T_IDENTIFIER )* T_RSQPAREN | T_MAP ( T_LSQPAREN numOfElements= ( T_INTNUMBER | T_IDENTIFIER ) T_RSQPAREN )? mapfromtype= simpleType T_TO maptotype= complexType | T_LPAREN aType= complexType ( T_COMMA anotherType= complexType )* T_RPAREN |r= simpleType )
742
            int alt11=5;
743
            switch ( input.LA(1) ) {
744
            case T_LIST:
745
                {
746
                alt11=1;
747
                }
748
                break;
749
            case T_LSQPAREN:
750
                {
751
                alt11=2;
752
                }
753
                break;
754
            case T_MAP:
755
                {
756
                alt11=3;
757
                }
758
                break;
759
            case T_LPAREN:
760
                {
761
                alt11=4;
762
                }
763
                break;
764
            case T_BOOL:
765
            case T_CBRL:
766
            case T_CHAR:
767
            case T_FLOAT:
768
            case T_IDENTIFIER:
769
            case T_INT:
770
                {
771
                alt11=5;
772
                }
773
                break;
774
            default:
775
                final NoViableAltException nvae =
776
                    new NoViableAltException("", 11, 0, input);
777

    
778
                throw nvae;
779

    
780
            }
781

    
782
            switch (alt11) {
783
                case 1 :
784
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:233:4: T_LIST T_LSQPAREN numOfElements= ( T_INTNUMBER | T_IDENTIFIER ) T_RSQPAREN T_OF innertype= complexType
785
                    {
786
                    match(input,T_LIST,FOLLOW_T_LIST_in_complexType382);
787

    
788
                    match(input,T_LSQPAREN,FOLLOW_T_LSQPAREN_in_complexType385);
789

    
790
                    numOfElements=input.LT(1);
791

    
792
                    if ( input.LA(1)==T_IDENTIFIER||input.LA(1)==T_INTNUMBER ) {
793
                        input.consume();
794
                        state.errorRecovery=false;
795
                    }
796
                    else {
797
                        final MismatchedSetException mse = new MismatchedSetException(null,input);
798
                        throw mse;
799
                    }
800

    
801

    
802
                    match(input,T_RSQPAREN,FOLLOW_T_RSQPAREN_in_complexType395);
803

    
804
                    match(input,T_OF,FOLLOW_T_OF_in_complexType397);
805

    
806
                    pushFollow(FOLLOW_complexType_in_complexType402);
807
                    innertype=complexType();
808

    
809
                    state._fsp--;
810

    
811

    
812
                    aTypeSymbol = createListType(numOfElements,innertype);
813

    
814
                    }
815
                    break;
816
                case 2 :
817
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:237:4: T_LSQPAREN alistelem= T_IDENTIFIER ( T_COMMA otherlistelem= T_IDENTIFIER )* T_RSQPAREN
818
                    {
819
                    match(input,T_LSQPAREN,FOLLOW_T_LSQPAREN_in_complexType417);
820

    
821
                    alistelem=(Token)match(input,T_IDENTIFIER,FOLLOW_T_IDENTIFIER_in_complexType421);
822

    
823
                    aTypeSymbol = createListEnumType(alistelem);
824

    
825
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:238:4: ( T_COMMA otherlistelem= T_IDENTIFIER )*
826
                    loop8:
827
                    do {
828
                        int alt8=2;
829
                        final int LA8_0 = input.LA(1);
830

    
831
                        if ( (LA8_0==T_COMMA) ) {
832
                            alt8=1;
833
                        }
834

    
835

    
836
                        switch (alt8) {
837
                            case 1 :
838
                                // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:238:5: T_COMMA otherlistelem= T_IDENTIFIER
839
                                {
840
                                match(input,T_COMMA,FOLLOW_T_COMMA_in_complexType430);
841

    
842
                                otherlistelem=(Token)match(input,T_IDENTIFIER,FOLLOW_T_IDENTIFIER_in_complexType434);
843

    
844
                                addToListEnumType(aTypeSymbol,otherlistelem);
845

    
846
                                }
847
                                break;
848

    
849
                            default :
850
                                break loop8;
851
                        }
852
                    } while (true);
853

    
854

    
855
                    match(input,T_RSQPAREN,FOLLOW_T_RSQPAREN_in_complexType440);
856

    
857
                    }
858
                    break;
859
                case 3 :
860
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:241:4: T_MAP ( T_LSQPAREN numOfElements= ( T_INTNUMBER | T_IDENTIFIER ) T_RSQPAREN )? mapfromtype= simpleType T_TO maptotype= complexType
861
                    {
862
                    match(input,T_MAP,FOLLOW_T_MAP_in_complexType450);
863

    
864
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:241:12: ( T_LSQPAREN numOfElements= ( T_INTNUMBER | T_IDENTIFIER ) T_RSQPAREN )?
865
                    int alt9=2;
866
                    final int LA9_0 = input.LA(1);
867

    
868
                    if ( (LA9_0==T_LSQPAREN) ) {
869
                        alt9=1;
870
                    }
871
                    switch (alt9) {
872
                        case 1 :
873
                            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:241:13: T_LSQPAREN numOfElements= ( T_INTNUMBER | T_IDENTIFIER ) T_RSQPAREN
874
                            {
875
                            match(input,T_LSQPAREN,FOLLOW_T_LSQPAREN_in_complexType455);
876

    
877
                            numOfElements=input.LT(1);
878

    
879
                            if ( input.LA(1)==T_IDENTIFIER||input.LA(1)==T_INTNUMBER ) {
880
                                input.consume();
881
                                state.errorRecovery=false;
882
                            }
883
                            else {
884
                                final MismatchedSetException mse = new MismatchedSetException(null,input);
885
                                throw mse;
886
                            }
887

    
888

    
889
                            match(input,T_RSQPAREN,FOLLOW_T_RSQPAREN_in_complexType465);
890

    
891
                            }
892
                            break;
893

    
894
                    }
895

    
896

    
897
                    pushFollow(FOLLOW_simpleType_in_complexType471);
898
                    mapfromtype=simpleType();
899

    
900
                    state._fsp--;
901

    
902

    
903
                    match(input,T_TO,FOLLOW_T_TO_in_complexType473);
904

    
905
                    pushFollow(FOLLOW_complexType_in_complexType477);
906
                    maptotype=complexType();
907

    
908
                    state._fsp--;
909

    
910

    
911
                    aTypeSymbol = createMapType(numOfElements,mapfromtype,maptotype);
912

    
913
                    }
914
                    break;
915
                case 4 :
916
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:244:5: T_LPAREN aType= complexType ( T_COMMA anotherType= complexType )* T_RPAREN
917
                    {
918
                    match(input,T_LPAREN,FOLLOW_T_LPAREN_in_complexType492);
919

    
920
                    pushFollow(FOLLOW_complexType_in_complexType496);
921
                    aType=complexType();
922

    
923
                    state._fsp--;
924

    
925

    
926
                    aTypeSymbol = createTupleType(aType);
927

    
928
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:245:4: ( T_COMMA anotherType= complexType )*
929
                    loop10:
930
                    do {
931
                        int alt10=2;
932
                        final int LA10_0 = input.LA(1);
933

    
934
                        if ( (LA10_0==T_COMMA) ) {
935
                            alt10=1;
936
                        }
937

    
938

    
939
                        switch (alt10) {
940
                            case 1 :
941
                                // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:245:5: T_COMMA anotherType= complexType
942
                                {
943
                                match(input,T_COMMA,FOLLOW_T_COMMA_in_complexType505);
944

    
945
                                pushFollow(FOLLOW_complexType_in_complexType509);
946
                                anotherType=complexType();
947

    
948
                                state._fsp--;
949

    
950

    
951
                                addToTupleType(aTypeSymbol,anotherType);
952

    
953
                                }
954
                                break;
955

    
956
                            default :
957
                                break loop10;
958
                        }
959
                    } while (true);
960

    
961

    
962
                    match(input,T_RPAREN,FOLLOW_T_RPAREN_in_complexType516);
963

    
964
                    }
965
                    break;
966
                case 5 :
967
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:248:4: r= simpleType
968
                    {
969
                    pushFollow(FOLLOW_simpleType_in_complexType529);
970
                    r=simpleType();
971

    
972
                    state._fsp--;
973

    
974

    
975
                    aTypeSymbol = r;
976

    
977
                    }
978
                    break;
979

    
980
            }
981
        }
982
        catch (final RecognitionException re) {
983
            reportError(re);
984
            recover(input,re);
985
        }
986

    
987
        finally {
988
                // do for sure before leaving
989
            fixupComplexType(aTypeSymbol);
990
        }
991
        return aTypeSymbol;
992
    }
993
    // $ANTLR end "complexType"
994

    
995

    
996

    
997
    // $ANTLR start "simpleType"
998
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:254:1: simpleType returns [Type aTypeSymbol] : ( T_BOOL | T_INT T_LSQPAREN rangeLow= ( T_INTNUMBER | T_INFTY | T_IDENTIFIER ) T_RANGETO rangeHigh= ( T_INTNUMBER | T_INFTY | T_IDENTIFIER ) T_RSQPAREN | T_FLOAT T_LSQPAREN rangeLow= ( T_FLOATNUMBER | T_INFTY | T_IDENTIFIER ) T_RANGETO rangeHigh= ( T_FLOATNUMBER | T_INFTY | T_IDENTIFIER ) T_RSQPAREN | T_CHAR | T_CBRL aRangeValue= T_IDENTIFIER ( T_EQUAL optVal= T_INTNUMBER )? ( T_COMMA otherRangeValue= T_IDENTIFIER ( T_EQUAL otherOptVal= T_INTNUMBER )? )* T_CBRR |aType= T_IDENTIFIER );
999
    public final Type simpleType() throws RecognitionException {
1000
        Type aTypeSymbol = null;
1001

    
1002

    
1003
        Token rangeLow=null;
1004
        Token rangeHigh=null;
1005
        Token aRangeValue=null;
1006
        Token optVal=null;
1007
        Token otherRangeValue=null;
1008
        Token otherOptVal=null;
1009
        Token aType=null;
1010

    
1011

    
1012
                        aTypeSymbol = null;
1013

    
1014
        try {
1015
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:259:2: ( T_BOOL | T_INT T_LSQPAREN rangeLow= ( T_INTNUMBER | T_INFTY | T_IDENTIFIER ) T_RANGETO rangeHigh= ( T_INTNUMBER | T_INFTY | T_IDENTIFIER ) T_RSQPAREN | T_FLOAT T_LSQPAREN rangeLow= ( T_FLOATNUMBER | T_INFTY | T_IDENTIFIER ) T_RANGETO rangeHigh= ( T_FLOATNUMBER | T_INFTY | T_IDENTIFIER ) T_RSQPAREN | T_CHAR | T_CBRL aRangeValue= T_IDENTIFIER ( T_EQUAL optVal= T_INTNUMBER )? ( T_COMMA otherRangeValue= T_IDENTIFIER ( T_EQUAL otherOptVal= T_INTNUMBER )? )* T_CBRR |aType= T_IDENTIFIER )
1016
            int alt15=6;
1017
            switch ( input.LA(1) ) {
1018
            case T_BOOL:
1019
                {
1020
                alt15=1;
1021
                }
1022
                break;
1023
            case T_INT:
1024
                {
1025
                alt15=2;
1026
                }
1027
                break;
1028
            case T_FLOAT:
1029
                {
1030
                alt15=3;
1031
                }
1032
                break;
1033
            case T_CHAR:
1034
                {
1035
                alt15=4;
1036
                }
1037
                break;
1038
            case T_CBRL:
1039
                {
1040
                alt15=5;
1041
                }
1042
                break;
1043
            case T_IDENTIFIER:
1044
                {
1045
                alt15=6;
1046
                }
1047
                break;
1048
            default:
1049
                final NoViableAltException nvae =
1050
                    new NoViableAltException("", 15, 0, input);
1051

    
1052
                throw nvae;
1053

    
1054
            }
1055

    
1056
            switch (alt15) {
1057
                case 1 :
1058
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:259:4: T_BOOL
1059
                    {
1060
                    match(input,T_BOOL,FOLLOW_T_BOOL_in_simpleType562);
1061

    
1062
                    aTypeSymbol = createBoolType();
1063

    
1064
                    }
1065
                    break;
1066
                case 2 :
1067
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:262:4: T_INT T_LSQPAREN rangeLow= ( T_INTNUMBER | T_INFTY | T_IDENTIFIER ) T_RANGETO rangeHigh= ( T_INTNUMBER | T_INFTY | T_IDENTIFIER ) T_RSQPAREN
1068
                    {
1069
                    match(input,T_INT,FOLLOW_T_INT_in_simpleType575);
1070

    
1071
                    match(input,T_LSQPAREN,FOLLOW_T_LSQPAREN_in_simpleType577);
1072

    
1073
                    rangeLow=input.LT(1);
1074

    
1075
                    if ( input.LA(1)==T_IDENTIFIER||input.LA(1)==T_INFTY||input.LA(1)==T_INTNUMBER ) {
1076
                        input.consume();
1077
                        state.errorRecovery=false;
1078
                    }
1079
                    else {
1080
                        final MismatchedSetException mse = new MismatchedSetException(null,input);
1081
                        throw mse;
1082
                    }
1083

    
1084

    
1085
                    match(input,T_RANGETO,FOLLOW_T_RANGETO_in_simpleType589);
1086

    
1087
                    rangeHigh=input.LT(1);
1088

    
1089
                    if ( input.LA(1)==T_IDENTIFIER||input.LA(1)==T_INFTY||input.LA(1)==T_INTNUMBER ) {
1090
                        input.consume();
1091
                        state.errorRecovery=false;
1092
                    }
1093
                    else {
1094
                        final MismatchedSetException mse = new MismatchedSetException(null,input);
1095
                        throw mse;
1096
                    }
1097

    
1098

    
1099
                    match(input,T_RSQPAREN,FOLLOW_T_RSQPAREN_in_simpleType601);
1100

    
1101
                    aTypeSymbol = createIntType(rangeLow,rangeHigh);
1102

    
1103
                    }
1104
                    break;
1105
                case 3 :
1106
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:266:4: T_FLOAT T_LSQPAREN rangeLow= ( T_FLOATNUMBER | T_INFTY | T_IDENTIFIER ) T_RANGETO rangeHigh= ( T_FLOATNUMBER | T_INFTY | T_IDENTIFIER ) T_RSQPAREN
1107
                    {
1108
                    match(input,T_FLOAT,FOLLOW_T_FLOAT_in_simpleType620);
1109

    
1110
                    match(input,T_LSQPAREN,FOLLOW_T_LSQPAREN_in_simpleType623);
1111

    
1112
                    rangeLow=input.LT(1);
1113

    
1114
                    if ( input.LA(1)==T_FLOATNUMBER||input.LA(1)==T_IDENTIFIER||input.LA(1)==T_INFTY ) {
1115
                        input.consume();
1116
                        state.errorRecovery=false;
1117
                    }
1118
                    else {
1119
                        final MismatchedSetException mse = new MismatchedSetException(null,input);
1120
                        throw mse;
1121
                    }
1122

    
1123

    
1124
                    match(input,T_RANGETO,FOLLOW_T_RANGETO_in_simpleType635);
1125

    
1126
                    rangeHigh=input.LT(1);
1127

    
1128
                    if ( input.LA(1)==T_FLOATNUMBER||input.LA(1)==T_IDENTIFIER||input.LA(1)==T_INFTY ) {
1129
                        input.consume();
1130
                        state.errorRecovery=false;
1131
                    }
1132
                    else {
1133
                        final MismatchedSetException mse = new MismatchedSetException(null,input);
1134
                        throw mse;
1135
                    }
1136

    
1137

    
1138
                    match(input,T_RSQPAREN,FOLLOW_T_RSQPAREN_in_simpleType647);
1139

    
1140
                    aTypeSymbol = createFloatType(rangeLow,rangeHigh);
1141

    
1142
                    }
1143
                    break;
1144
                case 4 :
1145
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:270:4: T_CHAR
1146
                    {
1147
                    match(input,T_CHAR,FOLLOW_T_CHAR_in_simpleType665);
1148

    
1149
                    aTypeSymbol = createCharType();
1150

    
1151
                    }
1152
                    break;
1153
                case 5 :
1154
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:274:4: T_CBRL aRangeValue= T_IDENTIFIER ( T_EQUAL optVal= T_INTNUMBER )? ( T_COMMA otherRangeValue= T_IDENTIFIER ( T_EQUAL otherOptVal= T_INTNUMBER )? )* T_CBRR
1155
                    {
1156
                    match(input,T_CBRL,FOLLOW_T_CBRL_in_simpleType681);
1157

    
1158
                    aRangeValue=(Token)match(input,T_IDENTIFIER,FOLLOW_T_IDENTIFIER_in_simpleType685);
1159

    
1160
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:274:36: ( T_EQUAL optVal= T_INTNUMBER )?
1161
                    int alt12=2;
1162
                    final int LA12_0 = input.LA(1);
1163

    
1164
                    if ( (LA12_0==T_EQUAL) ) {
1165
                        alt12=1;
1166
                    }
1167
                    switch (alt12) {
1168
                        case 1 :
1169
                            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:274:37: T_EQUAL optVal= T_INTNUMBER
1170
                            {
1171
                            match(input,T_EQUAL,FOLLOW_T_EQUAL_in_simpleType688);
1172

    
1173
                            optVal=(Token)match(input,T_INTNUMBER,FOLLOW_T_INTNUMBER_in_simpleType692);
1174

    
1175
                            }
1176
                            break;
1177

    
1178
                    }
1179

    
1180

    
1181
                    aTypeSymbol = createEnumType(aRangeValue, optVal);
1182

    
1183
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:275:4: ( T_COMMA otherRangeValue= T_IDENTIFIER ( T_EQUAL otherOptVal= T_INTNUMBER )? )*
1184
                    loop14:
1185
                    do {
1186
                        int alt14=2;
1187
                        final int LA14_0 = input.LA(1);
1188

    
1189
                        if ( (LA14_0==T_COMMA) ) {
1190
                            alt14=1;
1191
                        }
1192

    
1193

    
1194
                        switch (alt14) {
1195
                            case 1 :
1196
                                // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:275:5: T_COMMA otherRangeValue= T_IDENTIFIER ( T_EQUAL otherOptVal= T_INTNUMBER )?
1197
                                {
1198
                                match(input,T_COMMA,FOLLOW_T_COMMA_in_simpleType703);
1199

    
1200
                                otherRangeValue=(Token)match(input,T_IDENTIFIER,FOLLOW_T_IDENTIFIER_in_simpleType707);
1201

    
1202
                                // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:275:42: ( T_EQUAL otherOptVal= T_INTNUMBER )?
1203
                                int alt13=2;
1204
                                final int LA13_0 = input.LA(1);
1205

    
1206
                                if ( (LA13_0==T_EQUAL) ) {
1207
                                    alt13=1;
1208
                                }
1209
                                switch (alt13) {
1210
                                    case 1 :
1211
                                        // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:275:43: T_EQUAL otherOptVal= T_INTNUMBER
1212
                                        {
1213
                                        match(input,T_EQUAL,FOLLOW_T_EQUAL_in_simpleType710);
1214

    
1215
                                        otherOptVal=(Token)match(input,T_INTNUMBER,FOLLOW_T_INTNUMBER_in_simpleType714);
1216

    
1217
                                        }
1218
                                        break;
1219

    
1220
                                }
1221

    
1222

    
1223
                                addToEnumType(aTypeSymbol,otherRangeValue,otherOptVal); otherOptVal=null;
1224

    
1225
                                }
1226
                                break;
1227

    
1228
                            default :
1229
                                break loop14;
1230
                        }
1231
                    } while (true);
1232

    
1233

    
1234
                    match(input,T_CBRR,FOLLOW_T_CBRR_in_simpleType722);
1235

    
1236
                    }
1237
                    break;
1238
                case 6 :
1239
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:277:4: aType= T_IDENTIFIER
1240
                    {
1241
                    aType=(Token)match(input,T_IDENTIFIER,FOLLOW_T_IDENTIFIER_in_simpleType733);
1242

    
1243
                    aTypeSymbol = getNamedType(aType);
1244

    
1245
                    }
1246
                    break;
1247

    
1248
            }
1249
        }
1250
        catch (final RecognitionException re) {
1251
            reportError(re);
1252
            recover(input,re);
1253
        }
1254

    
1255
        finally {
1256
                // do for sure before leaving
1257
            fixupSimpleType(aTypeSymbol);
1258
        }
1259
        return aTypeSymbol;
1260
    }
1261
    // $ANTLR end "simpleType"
1262

    
1263

    
1264

    
1265
    // $ANTLR start "ooActionSystem"
1266
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:287:1: ooActionSystem returns [OoActionSystemType aTypeSymbol] : ( T_AUTOCONS )? T_SYSTEM ( T_LPAREN refinesSystemName= T_IDENTIFIER T_RPAREN )? '|[' ( T_VAR attrList )? ( T_METHODS methodList )? ( T_ACTIONS namedActionList )? ( T_DO (bl= actionBlock[null] )? T_OD )? ']|' ;
1267
    public final OoActionSystemType ooActionSystem() throws RecognitionException {
1268
        OoActionSystemType aTypeSymbol = null;
1269

    
1270

    
1271
        Token refinesSystemName=null;
1272
        Block bl =null;
1273

    
1274

    
1275

    
1276
                        boolean autoCons = false;
1277
                        aTypeSymbol = null;
1278
                        refinesSystemName = null;
1279

    
1280
        try {
1281
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:294:2: ( ( T_AUTOCONS )? T_SYSTEM ( T_LPAREN refinesSystemName= T_IDENTIFIER T_RPAREN )? '|[' ( T_VAR attrList )? ( T_METHODS methodList )? ( T_ACTIONS namedActionList )? ( T_DO (bl= actionBlock[null] )? T_OD )? ']|' )
1282
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:294:9: ( T_AUTOCONS )? T_SYSTEM ( T_LPAREN refinesSystemName= T_IDENTIFIER T_RPAREN )? '|[' ( T_VAR attrList )? ( T_METHODS methodList )? ( T_ACTIONS namedActionList )? ( T_DO (bl= actionBlock[null] )? T_OD )? ']|'
1283
            {
1284
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:294:9: ( T_AUTOCONS )?
1285
            int alt16=2;
1286
            final int LA16_0 = input.LA(1);
1287

    
1288
            if ( (LA16_0==T_AUTOCONS) ) {
1289
                alt16=1;
1290
            }
1291
            switch (alt16) {
1292
                case 1 :
1293
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:294:10: T_AUTOCONS
1294
                    {
1295
                    match(input,T_AUTOCONS,FOLLOW_T_AUTOCONS_in_ooActionSystem776);
1296

    
1297
                    autoCons = true;
1298

    
1299
                    }
1300
                    break;
1301

    
1302
            }
1303

    
1304

    
1305
            match(input,T_SYSTEM,FOLLOW_T_SYSTEM_in_ooActionSystem785);
1306

    
1307
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:295:12: ( T_LPAREN refinesSystemName= T_IDENTIFIER T_RPAREN )?
1308
            int alt17=2;
1309
            final int LA17_0 = input.LA(1);
1310

    
1311
            if ( (LA17_0==T_LPAREN) ) {
1312
                alt17=1;
1313
            }
1314
            switch (alt17) {
1315
                case 1 :
1316
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:295:13: T_LPAREN refinesSystemName= T_IDENTIFIER T_RPAREN
1317
                    {
1318
                    match(input,T_LPAREN,FOLLOW_T_LPAREN_in_ooActionSystem788);
1319

    
1320
                    refinesSystemName=(Token)match(input,T_IDENTIFIER,FOLLOW_T_IDENTIFIER_in_ooActionSystem792);
1321

    
1322
                    match(input,T_RPAREN,FOLLOW_T_RPAREN_in_ooActionSystem794);
1323

    
1324
                    }
1325
                    break;
1326

    
1327
            }
1328

    
1329

    
1330
            aTypeSymbol = createOoaType(refinesSystemName,autoCons);
1331

    
1332
            match(input,121,FOLLOW_121_in_ooActionSystem807);
1333

    
1334
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:298:4: ( T_VAR attrList )?
1335
            int alt18=2;
1336
            final int LA18_0 = input.LA(1);
1337

    
1338
            if ( (LA18_0==T_VAR) ) {
1339
                alt18=1;
1340
            }
1341
            switch (alt18) {
1342
                case 1 :
1343
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:298:5: T_VAR attrList
1344
                    {
1345
                    match(input,T_VAR,FOLLOW_T_VAR_in_ooActionSystem813);
1346

    
1347
                    pushFollow(FOLLOW_attrList_in_ooActionSystem815);
1348
                    attrList();
1349

    
1350
                    state._fsp--;
1351

    
1352

    
1353
                    }
1354
                    break;
1355

    
1356
            }
1357

    
1358

    
1359
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:299:4: ( T_METHODS methodList )?
1360
            int alt19=2;
1361
            final int LA19_0 = input.LA(1);
1362

    
1363
            if ( (LA19_0==T_METHODS) ) {
1364
                alt19=1;
1365
            }
1366
            switch (alt19) {
1367
                case 1 :
1368
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:299:5: T_METHODS methodList
1369
                    {
1370
                    match(input,T_METHODS,FOLLOW_T_METHODS_in_ooActionSystem823);
1371

    
1372
                    pushFollow(FOLLOW_methodList_in_ooActionSystem825);
1373
                    methodList();
1374

    
1375
                    state._fsp--;
1376

    
1377

    
1378
                    }
1379
                    break;
1380

    
1381
            }
1382

    
1383

    
1384
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:300:4: ( T_ACTIONS namedActionList )?
1385
            int alt20=2;
1386
            final int LA20_0 = input.LA(1);
1387

    
1388
            if ( (LA20_0==T_ACTIONS) ) {
1389
                alt20=1;
1390
            }
1391
            switch (alt20) {
1392
                case 1 :
1393
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:300:5: T_ACTIONS namedActionList
1394
                    {
1395
                    match(input,T_ACTIONS,FOLLOW_T_ACTIONS_in_ooActionSystem833);
1396

    
1397
                    pushFollow(FOLLOW_namedActionList_in_ooActionSystem835);
1398
                    namedActionList();
1399

    
1400
                    state._fsp--;
1401

    
1402

    
1403
                    }
1404
                    break;
1405

    
1406
            }
1407

    
1408

    
1409
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:301:4: ( T_DO (bl= actionBlock[null] )? T_OD )?
1410
            int alt22=2;
1411
            final int LA22_0 = input.LA(1);
1412

    
1413
            if ( (LA22_0==T_DO) ) {
1414
                alt22=1;
1415
            }
1416
            switch (alt22) {
1417
                case 1 :
1418
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:301:5: T_DO (bl= actionBlock[null] )? T_OD
1419
                    {
1420
                    match(input,T_DO,FOLLOW_T_DO_in_ooActionSystem843);
1421

    
1422
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:301:10: (bl= actionBlock[null] )?
1423
                    int alt21=2;
1424
                    final int LA21_0 = input.LA(1);
1425

    
1426
                    if ( (LA21_0==T_IDENTIFIER||LA21_0==T_LPAREN||LA21_0==T_REQUIRES||LA21_0==T_SKIP||LA21_0==T_VAR) ) {
1427
                        alt21=1;
1428
                    }
1429
                    switch (alt21) {
1430
                        case 1 :
1431
                            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:301:11: bl= actionBlock[null]
1432
                            {
1433
                            pushFollow(FOLLOW_actionBlock_in_ooActionSystem848);
1434
                            bl=actionBlock(null);
1435

    
1436
                            state._fsp--;
1437

    
1438

    
1439
                            addActionBlock(aTypeSymbol,bl);
1440

    
1441
                            }
1442
                            break;
1443

    
1444
                    }
1445

    
1446

    
1447
                    match(input,T_OD,FOLLOW_T_OD_in_ooActionSystem855);
1448

    
1449
                    }
1450
                    break;
1451

    
1452
            }
1453

    
1454

    
1455
            match(input,118,FOLLOW_118_in_ooActionSystem861);
1456

    
1457
            }
1458

    
1459
        }
1460
        catch (final RecognitionException re) {
1461
            reportError(re);
1462
            recover(input,re);
1463
        }
1464

    
1465
        finally {
1466
                // do for sure before leaving
1467
            fixupOoaType(aTypeSymbol);
1468
        }
1469
        return aTypeSymbol;
1470
    }
1471
    // $ANTLR end "ooActionSystem"
1472

    
1473

    
1474

    
1475
    // $ANTLR start "attrList"
1476
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:313:1: attrList : attr ( T_SEMICOLON attr )* ;
1477
    public final void attrList() throws RecognitionException {
1478
        try {
1479
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:314:2: ( attr ( T_SEMICOLON attr )* )
1480
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:314:4: attr ( T_SEMICOLON attr )*
1481
            {
1482
            BeginParsingAttributes();
1483

    
1484
            pushFollow(FOLLOW_attr_in_attrList892);
1485
            attr();
1486

    
1487
            state._fsp--;
1488

    
1489

    
1490
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:315:9: ( T_SEMICOLON attr )*
1491
            loop23:
1492
            do {
1493
                int alt23=2;
1494
                final int LA23_0 = input.LA(1);
1495

    
1496
                if ( (LA23_0==T_SEMICOLON) ) {
1497
                    alt23=1;
1498
                }
1499

    
1500

    
1501
                switch (alt23) {
1502
                    case 1 :
1503
                        // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:315:10: T_SEMICOLON attr
1504
                        {
1505
                        match(input,T_SEMICOLON,FOLLOW_T_SEMICOLON_in_attrList895);
1506

    
1507
                        pushFollow(FOLLOW_attr_in_attrList897);
1508
                        attr();
1509

    
1510
                        state._fsp--;
1511

    
1512

    
1513
                        }
1514
                        break;
1515

    
1516
                    default :
1517
                        break loop23;
1518
                }
1519
            } while (true);
1520

    
1521

    
1522
            }
1523

    
1524
        }
1525
        catch (final RecognitionException re) {
1526
            reportError(re);
1527
            recover(input,re);
1528
        }
1529

    
1530
        finally {
1531
                // do for sure before leaving
1532

    
1533
                            EndParsingAttributes();
1534

    
1535
        }
1536
        return ;
1537
    }
1538
    // $ANTLR end "attrList"
1539

    
1540

    
1541

    
1542
    // $ANTLR start "attr"
1543
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:321:1: attr : ( T_STATIC )? ( T_OBS | T_CTRL )? varname= T_IDENTIFIER T_COLON aType= complexType ( T_EQUAL anExpr= expression )? ;
1544
    public final void attr() throws RecognitionException {
1545
        Token varname=null;
1546
        Type aType =null;
1547

    
1548
        Expression anExpr =null;
1549

    
1550

    
1551

    
1552
                        boolean isStatic = false;
1553
                        boolean isCtr = false;
1554
                        boolean isObs = false;
1555

    
1556

    
1557
        try {
1558
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:328:2: ( ( T_STATIC )? ( T_OBS | T_CTRL )? varname= T_IDENTIFIER T_COLON aType= complexType ( T_EQUAL anExpr= expression )? )
1559
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:328:5: ( T_STATIC )? ( T_OBS | T_CTRL )? varname= T_IDENTIFIER T_COLON aType= complexType ( T_EQUAL anExpr= expression )?
1560
            {
1561
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:328:5: ( T_STATIC )?
1562
            int alt24=2;
1563
            final int LA24_0 = input.LA(1);
1564

    
1565
            if ( (LA24_0==T_STATIC) ) {
1566
                alt24=1;
1567
            }
1568
            switch (alt24) {
1569
                case 1 :
1570
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:328:6: T_STATIC
1571
                    {
1572
                    match(input,T_STATIC,FOLLOW_T_STATIC_in_attr922);
1573

    
1574
                    isStatic = true;
1575

    
1576
                    }
1577
                    break;
1578

    
1579
            }
1580

    
1581

    
1582
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:328:36: ( T_OBS | T_CTRL )?
1583
            int alt25=3;
1584
            final int LA25_0 = input.LA(1);
1585

    
1586
            if ( (LA25_0==T_OBS) ) {
1587
                alt25=1;
1588
            }
1589
            else if ( (LA25_0==T_CTRL) ) {
1590
                alt25=2;
1591
            }
1592
            switch (alt25) {
1593
                case 1 :
1594
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:328:37: T_OBS
1595
                    {
1596
                    match(input,T_OBS,FOLLOW_T_OBS_in_attr929);
1597

    
1598
                    isObs = true;
1599

    
1600
                    }
1601
                    break;
1602
                case 2 :
1603
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:328:61: T_CTRL
1604
                    {
1605
                    match(input,T_CTRL,FOLLOW_T_CTRL_in_attr935);
1606

    
1607
                    isCtr = true;
1608

    
1609
                    }
1610
                    break;
1611

    
1612
            }
1613

    
1614

    
1615
            varname=(Token)match(input,T_IDENTIFIER,FOLLOW_T_IDENTIFIER_in_attr946);
1616

    
1617
            match(input,T_COLON,FOLLOW_T_COLON_in_attr949);
1618

    
1619
            pushFollow(FOLLOW_complexType_in_attr953);
1620
            aType=complexType();
1621

    
1622
            state._fsp--;
1623

    
1624

    
1625
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:329:51: ( T_EQUAL anExpr= expression )?
1626
            int alt26=2;
1627
            final int LA26_0 = input.LA(1);
1628

    
1629
            if ( (LA26_0==T_EQUAL) ) {
1630
                alt26=1;
1631
            }
1632
            switch (alt26) {
1633
                case 1 :
1634
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:329:52: T_EQUAL anExpr= expression
1635
                    {
1636
                    match(input,T_EQUAL,FOLLOW_T_EQUAL_in_attr956);
1637

    
1638
                    pushFollow(FOLLOW_expression_in_attr960);
1639
                    anExpr=expression();
1640

    
1641
                    state._fsp--;
1642

    
1643

    
1644
                    }
1645
                    break;
1646

    
1647
            }
1648

    
1649

    
1650
            createAttribute(varname, isStatic, isObs, isCtr, aType, anExpr);
1651

    
1652
            }
1653

    
1654
        }
1655
        catch (final RecognitionException re) {
1656
            reportError(re);
1657
            recover(input,re);
1658
        }
1659

    
1660
        finally {
1661
                // do for sure before leaving
1662
        }
1663
        return ;
1664
    }
1665
    // $ANTLR end "attr"
1666

    
1667

    
1668

    
1669
    // $ANTLR start "methodList"
1670
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:336:1: methodList : method ( T_SEMICOLON method )* ;
1671
    public final void methodList() throws RecognitionException {
1672
        try {
1673
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:337:2: ( method ( T_SEMICOLON method )* )
1674
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:337:5: method ( T_SEMICOLON method )*
1675
            {
1676
            pushFollow(FOLLOW_method_in_methodList982);
1677
            method();
1678

    
1679
            state._fsp--;
1680

    
1681

    
1682
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:337:12: ( T_SEMICOLON method )*
1683
            loop27:
1684
            do {
1685
                int alt27=2;
1686
                final int LA27_0 = input.LA(1);
1687

    
1688
                if ( (LA27_0==T_SEMICOLON) ) {
1689
                    alt27=1;
1690
                }
1691

    
1692

    
1693
                switch (alt27) {
1694
                    case 1 :
1695
                        // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:337:13: T_SEMICOLON method
1696
                        {
1697
                        match(input,T_SEMICOLON,FOLLOW_T_SEMICOLON_in_methodList985);
1698

    
1699
                        pushFollow(FOLLOW_method_in_methodList987);
1700
                        method();
1701

    
1702
                        state._fsp--;
1703

    
1704

    
1705
                        }
1706
                        break;
1707

    
1708
                    default :
1709
                        break loop27;
1710
                }
1711
            } while (true);
1712

    
1713

    
1714
            }
1715

    
1716
        }
1717
        catch (final RecognitionException re) {
1718
            reportError(re);
1719
            recover(input,re);
1720
        }
1721

    
1722
        finally {
1723
                // do for sure before leaving
1724
        }
1725
        return ;
1726
    }
1727
    // $ANTLR end "methodList"
1728

    
1729

    
1730

    
1731
    // $ANTLR start "method"
1732
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:340:1: method : mname= T_IDENTIFIER ( T_LPAREN methodParameterList[newMethod] T_RPAREN )? ( T_COLON rt= complexType )? T_EQUAL ( T_VAR localActionVars[newMethod] 'begin' )? statements= actionBody[null] T_END ;
1733
    public final void method() throws RecognitionException {
1734
        Token mname=null;
1735
        Type rt =null;
1736

    
1737
        Block statements =null;
1738

    
1739

    
1740

    
1741
                        FunctionIdentifier newMethod = null;
1742

    
1743
        try {
1744
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:344:2: (mname= T_IDENTIFIER ( T_LPAREN methodParameterList[newMethod] T_RPAREN )? ( T_COLON rt= complexType )? T_EQUAL ( T_VAR localActionVars[newMethod] 'begin' )? statements= actionBody[null] T_END )
1745
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:344:4: mname= T_IDENTIFIER ( T_LPAREN methodParameterList[newMethod] T_RPAREN )? ( T_COLON rt= complexType )? T_EQUAL ( T_VAR localActionVars[newMethod] 'begin' )? statements= actionBody[null] T_END
1746
            {
1747
            mname=(Token)match(input,T_IDENTIFIER,FOLLOW_T_IDENTIFIER_in_method1009);
1748

    
1749
            newMethod = createMethodSymbol(mname);
1750

    
1751
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:345:3: ( T_LPAREN methodParameterList[newMethod] T_RPAREN )?
1752
            int alt28=2;
1753
            final int LA28_0 = input.LA(1);
1754

    
1755
            if ( (LA28_0==T_LPAREN) ) {
1756
                alt28=1;
1757
            }
1758
            switch (alt28) {
1759
                case 1 :
1760
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:345:4: T_LPAREN methodParameterList[newMethod] T_RPAREN
1761
                    {
1762
                    match(input,T_LPAREN,FOLLOW_T_LPAREN_in_method1017);
1763

    
1764
                    pushFollow(FOLLOW_methodParameterList_in_method1019);
1765
                    methodParameterList(newMethod);
1766

    
1767
                    state._fsp--;
1768

    
1769

    
1770
                    match(input,T_RPAREN,FOLLOW_T_RPAREN_in_method1023);
1771

    
1772
                    }
1773
                    break;
1774

    
1775
            }
1776

    
1777

    
1778
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:346:3: ( T_COLON rt= complexType )?
1779
            int alt29=2;
1780
            final int LA29_0 = input.LA(1);
1781

    
1782
            if ( (LA29_0==T_COLON) ) {
1783
                alt29=1;
1784
            }
1785
            switch (alt29) {
1786
                case 1 :
1787
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:346:4: T_COLON rt= complexType
1788
                    {
1789
                    match(input,T_COLON,FOLLOW_T_COLON_in_method1031);
1790

    
1791
                    pushFollow(FOLLOW_complexType_in_method1035);
1792
                    rt=complexType();
1793

    
1794
                    state._fsp--;
1795

    
1796

    
1797
                    setMethodReturnType(newMethod,rt);
1798

    
1799
                    }
1800
                    break;
1801

    
1802
            }
1803

    
1804

    
1805
            match(input,T_EQUAL,FOLLOW_T_EQUAL_in_method1045);
1806

    
1807
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:348:4: ( T_VAR localActionVars[newMethod] 'begin' )?
1808
            int alt30=2;
1809
            final int LA30_0 = input.LA(1);
1810

    
1811
            if ( (LA30_0==T_VAR) ) {
1812
                final int LA30_1 = input.LA(2);
1813

    
1814
                if ( (LA30_1==T_IDENTIFIER) ) {
1815
                    alt30=1;
1816
                }
1817
            }
1818
            switch (alt30) {
1819
                case 1 :
1820
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:348:6: T_VAR localActionVars[newMethod] 'begin'
1821
                    {
1822
                    match(input,T_VAR,FOLLOW_T_VAR_in_method1053);
1823

    
1824
                    pushFollow(FOLLOW_localActionVars_in_method1055);
1825
                    localActionVars(newMethod);
1826

    
1827
                    state._fsp--;
1828

    
1829

    
1830
                    match(input,120,FOLLOW_120_in_method1058);
1831

    
1832
                    }
1833
                    break;
1834

    
1835
            }
1836

    
1837

    
1838
            pushFollow(FOLLOW_actionBody_in_method1333);
1839
            statements=actionBody(null);
1840

    
1841
            state._fsp--;
1842

    
1843

    
1844
            addMethodBody(newMethod,statements);
1845

    
1846
            match(input,T_END,FOLLOW_T_END_in_method1341);
1847

    
1848
            }
1849

    
1850
        }
1851
        catch (final RecognitionException re) {
1852
            reportError(re);
1853
            recover(input,re);
1854
        }
1855

    
1856
        finally {
1857
                // do for sure before leaving
1858
            popResolveStack(newMethod);
1859
        }
1860
        return ;
1861
    }
1862
    // $ANTLR end "method"
1863

    
1864

    
1865

    
1866
    // $ANTLR start "methodParameterList"
1867
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:357:1: methodParameterList[FunctionIdentifier newMethod] : paramName= T_IDENTIFIER T_COLON atype= complexType ( T_COMMA otherparam= T_IDENTIFIER T_COLON othertype= complexType )* ;
1868
    public final void methodParameterList(FunctionIdentifier newMethod) throws RecognitionException {
1869
        Token paramName=null;
1870
        Token otherparam=null;
1871
        Type atype =null;
1872

    
1873
        Type othertype =null;
1874

    
1875

    
1876
        try {
1877
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:358:2: (paramName= T_IDENTIFIER T_COLON atype= complexType ( T_COMMA otherparam= T_IDENTIFIER T_COLON othertype= complexType )* )
1878
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:358:5: paramName= T_IDENTIFIER T_COLON atype= complexType ( T_COMMA otherparam= T_IDENTIFIER T_COLON othertype= complexType )*
1879
            {
1880
            paramName=(Token)match(input,T_IDENTIFIER,FOLLOW_T_IDENTIFIER_in_methodParameterList1365);
1881

    
1882
            match(input,T_COLON,FOLLOW_T_COLON_in_methodParameterList1367);
1883

    
1884
            pushFollow(FOLLOW_complexType_in_methodParameterList1371);
1885
            atype=complexType();
1886

    
1887
            state._fsp--;
1888

    
1889

    
1890
            addMethodParameter(newMethod,paramName,atype);
1891

    
1892
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:359:4: ( T_COMMA otherparam= T_IDENTIFIER T_COLON othertype= complexType )*
1893
            loop31:
1894
            do {
1895
                int alt31=2;
1896
                final int LA31_0 = input.LA(1);
1897

    
1898
                if ( (LA31_0==T_COMMA) ) {
1899
                    alt31=1;
1900
                }
1901

    
1902

    
1903
                switch (alt31) {
1904
                    case 1 :
1905
                        // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:359:5: T_COMMA otherparam= T_IDENTIFIER T_COLON othertype= complexType
1906
                        {
1907
                        match(input,T_COMMA,FOLLOW_T_COMMA_in_methodParameterList1379);
1908

    
1909
                        otherparam=(Token)match(input,T_IDENTIFIER,FOLLOW_T_IDENTIFIER_in_methodParameterList1383);
1910

    
1911
                        match(input,T_COLON,FOLLOW_T_COLON_in_methodParameterList1385);
1912

    
1913
                        pushFollow(FOLLOW_complexType_in_methodParameterList1389);
1914
                        othertype=complexType();
1915

    
1916
                        state._fsp--;
1917

    
1918

    
1919
                        addMethodParameter(newMethod,otherparam,othertype);
1920

    
1921
                        }
1922
                        break;
1923

    
1924
                    default :
1925
                        break loop31;
1926
                }
1927
            } while (true);
1928

    
1929

    
1930
            }
1931

    
1932
        }
1933
        catch (final RecognitionException re) {
1934
            reportError(re);
1935
            recover(input,re);
1936
        }
1937

    
1938
        finally {
1939
                // do for sure before leaving
1940
        }
1941
        return ;
1942
    }
1943
    // $ANTLR end "methodParameterList"
1944

    
1945

    
1946

    
1947
    // $ANTLR start "namedActionList"
1948
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:368:1: namedActionList : namedAction ( T_SEMICOLON namedAction )* ;
1949
    public final void namedActionList() throws RecognitionException {
1950
        try {
1951
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:369:2: ( namedAction ( T_SEMICOLON namedAction )* )
1952
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:369:4: namedAction ( T_SEMICOLON namedAction )*
1953
            {
1954
            pushFollow(FOLLOW_namedAction_in_namedActionList1416);
1955
            namedAction();
1956

    
1957
            state._fsp--;
1958

    
1959

    
1960
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:369:16: ( T_SEMICOLON namedAction )*
1961
            loop32:
1962
            do {
1963
                int alt32=2;
1964
                final int LA32_0 = input.LA(1);
1965

    
1966
                if ( (LA32_0==T_SEMICOLON) ) {
1967
                    alt32=1;
1968
                }
1969

    
1970

    
1971
                switch (alt32) {
1972
                    case 1 :
1973
                        // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:369:17: T_SEMICOLON namedAction
1974
                        {
1975
                        match(input,T_SEMICOLON,FOLLOW_T_SEMICOLON_in_namedActionList1419);
1976

    
1977
                        pushFollow(FOLLOW_namedAction_in_namedActionList1421);
1978
                        namedAction();
1979

    
1980
                        state._fsp--;
1981

    
1982

    
1983
                        }
1984
                        break;
1985

    
1986
                    default :
1987
                        break loop32;
1988
                }
1989
            } while (true);
1990

    
1991

    
1992
            }
1993

    
1994
        }
1995
        catch (final RecognitionException re) {
1996
            reportError(re);
1997
            recover(input,re);
1998
        }
1999

    
2000
        finally {
2001
                // do for sure before leaving
2002
        }
2003
        return ;
2004
    }
2005
    // $ANTLR end "namedActionList"
2006

    
2007

    
2008

    
2009
    // $ANTLR start "namedAction"
2010
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:372:1: namedAction : ( T_CTRL | T_OBS |) actionname= T_IDENTIFIER ( T_LPAREN methodParameterList[newAction] T_RPAREN )? T_EQUAL ( T_VAR localActionVars[newAction] )? body= discreteActionBody ;
2011
    public final void namedAction() throws RecognitionException {
2012
        Token actionname=null;
2013
        GuardedCommand body =null;
2014

    
2015

    
2016

    
2017
                        FunctionTypeEnum actionType;
2018
                        FunctionIdentifier newAction = null;
2019

    
2020
        try {
2021
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:377:2: ( ( T_CTRL | T_OBS |) actionname= T_IDENTIFIER ( T_LPAREN methodParameterList[newAction] T_RPAREN )? T_EQUAL ( T_VAR localActionVars[newAction] )? body= discreteActionBody )
2022
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:377:4: ( T_CTRL | T_OBS |) actionname= T_IDENTIFIER ( T_LPAREN methodParameterList[newAction] T_RPAREN )? T_EQUAL ( T_VAR localActionVars[newAction] )? body= discreteActionBody
2023
            {
2024
            actionType = FunctionTypeEnum.Internal;
2025

    
2026
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:378:3: ( T_CTRL | T_OBS |)
2027
            int alt33=3;
2028
            switch ( input.LA(1) ) {
2029
            case T_CTRL:
2030
                {
2031
                alt33=1;
2032
                }
2033
                break;
2034
            case T_OBS:
2035
                {
2036
                alt33=2;
2037
                }
2038
                break;
2039
            case T_IDENTIFIER:
2040
                {
2041
                alt33=3;
2042
                }
2043
                break;
2044
            default:
2045
                final NoViableAltException nvae =
2046
                    new NoViableAltException("", 33, 0, input);
2047

    
2048
                throw nvae;
2049

    
2050
            }
2051

    
2052
            switch (alt33) {
2053
                case 1 :
2054
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:378:4: T_CTRL
2055
                    {
2056
                    match(input,T_CTRL,FOLLOW_T_CTRL_in_namedAction1446);
2057

    
2058
                    actionType = FunctionTypeEnum.Controllable;
2059

    
2060
                    }
2061
                    break;
2062
                case 2 :
2063
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:378:58: T_OBS
2064
                    {
2065
                    match(input,T_OBS,FOLLOW_T_OBS_in_namedAction1451);
2066

    
2067
                    actionType = FunctionTypeEnum.Observable;
2068

    
2069
                    }
2070
                    break;
2071
                case 3 :
2072
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:378:109:
2073
                    {
2074
                    }
2075
                    break;
2076

    
2077
            }
2078

    
2079

    
2080
            actionname=(Token)match(input,T_IDENTIFIER,FOLLOW_T_IDENTIFIER_in_namedAction1463);
2081

    
2082
            newAction = createNamedAction(actionname,actionType);
2083

    
2084
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:380:3: ( T_LPAREN methodParameterList[newAction] T_RPAREN )?
2085
            int alt34=2;
2086
            final int LA34_0 = input.LA(1);
2087

    
2088
            if ( (LA34_0==T_LPAREN) ) {
2089
                alt34=1;
2090
            }
2091
            switch (alt34) {
2092
                case 1 :
2093
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:380:4: T_LPAREN methodParameterList[newAction] T_RPAREN
2094
                    {
2095
                    match(input,T_LPAREN,FOLLOW_T_LPAREN_in_namedAction1471);
2096

    
2097
                    pushFollow(FOLLOW_methodParameterList_in_namedAction1473);
2098
                    methodParameterList(newAction);
2099

    
2100
                    state._fsp--;
2101

    
2102

    
2103
                    match(input,T_RPAREN,FOLLOW_T_RPAREN_in_namedAction1477);
2104

    
2105
                    }
2106
                    break;
2107

    
2108
            }
2109

    
2110

    
2111
            match(input,T_EQUAL,FOLLOW_T_EQUAL_in_namedAction1484);
2112

    
2113
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:382:3: ( T_VAR localActionVars[newAction] )?
2114
            int alt35=2;
2115
            final int LA35_0 = input.LA(1);
2116

    
2117
            if ( (LA35_0==T_VAR) ) {
2118
                alt35=1;
2119
            }
2120
            switch (alt35) {
2121
                case 1 :
2122
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:382:4: T_VAR localActionVars[newAction]
2123
                    {
2124
                    match(input,T_VAR,FOLLOW_T_VAR_in_namedAction1490);
2125

    
2126
                    pushFollow(FOLLOW_localActionVars_in_namedAction1492);
2127
                    localActionVars(newAction);
2128

    
2129
                    state._fsp--;
2130

    
2131

    
2132
                    }
2133
                    break;
2134

    
2135
            }
2136

    
2137

    
2138
            pushFollow(FOLLOW_discreteActionBody_in_namedAction1503);
2139
            body=discreteActionBody();
2140

    
2141
            state._fsp--;
2142

    
2143

    
2144
            addActionBody(newAction,body);
2145

    
2146
            }
2147

    
2148
        }
2149
        catch (final RecognitionException re) {
2150
            reportError(re);
2151
            recover(input,re);
2152
        }
2153

    
2154
        finally {
2155
                // do for sure before leaving
2156
            popResolveStack(newAction);
2157
        }
2158
        return ;
2159
    }
2160
    // $ANTLR end "namedAction"
2161

    
2162

    
2163

    
2164
    // $ANTLR start "localActionVars"
2165
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:390:1: localActionVars[FunctionIdentifier newMethod] : id1= T_IDENTIFIER T_COLON t1= complexType ( T_SEMICOLON id2= T_IDENTIFIER T_COLON t2= complexType )* ;
2166
    public final void localActionVars(FunctionIdentifier newMethod) throws RecognitionException {
2167
        Token id1=null;
2168
        Token id2=null;
2169
        Type t1 =null;
2170

    
2171
        Type t2 =null;
2172

    
2173

    
2174
        try {
2175
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:391:2: (id1= T_IDENTIFIER T_COLON t1= complexType ( T_SEMICOLON id2= T_IDENTIFIER T_COLON t2= complexType )* )
2176
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:392:3: id1= T_IDENTIFIER T_COLON t1= complexType ( T_SEMICOLON id2= T_IDENTIFIER T_COLON t2= complexType )*
2177
            {
2178
            id1=(Token)match(input,T_IDENTIFIER,FOLLOW_T_IDENTIFIER_in_localActionVars1535);
2179

    
2180
            match(input,T_COLON,FOLLOW_T_COLON_in_localActionVars1537);
2181

    
2182
            pushFollow(FOLLOW_complexType_in_localActionVars1541);
2183
            t1=complexType();
2184

    
2185
            state._fsp--;
2186

    
2187

    
2188
            addLocalVariableToNamedAction(newMethod,id1,t1);
2189

    
2190
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:393:4: ( T_SEMICOLON id2= T_IDENTIFIER T_COLON t2= complexType )*
2191
            loop36:
2192
            do {
2193
                int alt36=2;
2194
                final int LA36_0 = input.LA(1);
2195

    
2196
                if ( (LA36_0==T_SEMICOLON) ) {
2197
                    alt36=1;
2198
                }
2199

    
2200

    
2201
                switch (alt36) {
2202
                    case 1 :
2203
                        // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:393:5: T_SEMICOLON id2= T_IDENTIFIER T_COLON t2= complexType
2204
                        {
2205
                        match(input,T_SEMICOLON,FOLLOW_T_SEMICOLON_in_localActionVars1550);
2206

    
2207
                        id2=(Token)match(input,T_IDENTIFIER,FOLLOW_T_IDENTIFIER_in_localActionVars1554);
2208

    
2209
                        match(input,T_COLON,FOLLOW_T_COLON_in_localActionVars1556);
2210

    
2211
                        pushFollow(FOLLOW_complexType_in_localActionVars1560);
2212
                        t2=complexType();
2213

    
2214
                        state._fsp--;
2215

    
2216

    
2217
                        addLocalVariableToNamedAction(newMethod,id2,t2);
2218

    
2219
                        }
2220
                        break;
2221

    
2222
                    default :
2223
                        break loop36;
2224
                }
2225
            } while (true);
2226

    
2227

    
2228
            }
2229

    
2230
        }
2231
        catch (final RecognitionException re) {
2232
            reportError(re);
2233
            recover(input,re);
2234
        }
2235

    
2236
        finally {
2237
                // do for sure before leaving
2238
        }
2239
        return ;
2240
    }
2241
    // $ANTLR end "localActionVars"
2242

    
2243

    
2244

    
2245
    // $ANTLR start "anonymousAction"
2246
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:399:1: anonymousAction returns [GuardedCommand result] : b= discreteActionBody ;
2247
    public final GuardedCommand anonymousAction() throws RecognitionException {
2248
        GuardedCommand result = null;
2249

    
2250

    
2251
        GuardedCommand b =null;
2252

    
2253

    
2254
        try {
2255
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:401:2: (b= discreteActionBody )
2256
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:402:3: b= discreteActionBody
2257
            {
2258
            pushFollow(FOLLOW_discreteActionBody_in_anonymousAction1593);
2259
            b=discreteActionBody();
2260

    
2261
            state._fsp--;
2262

    
2263

    
2264
            result = b;
2265

    
2266
            }
2267

    
2268
        }
2269
        catch (final RecognitionException re) {
2270
            reportError(re);
2271
            recover(input,re);
2272
        }
2273

    
2274
        finally {
2275
                // do for sure before leaving
2276
        }
2277
        return result;
2278
    }
2279
    // $ANTLR end "anonymousAction"
2280

    
2281

    
2282

    
2283
    // $ANTLR start "discreteActionBody"
2284
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:405:1: discreteActionBody returns [GuardedCommand result] : T_REQUIRES expr= expression T_COLON bdy= actionBody[null] T_END ;
2285
    public final GuardedCommand discreteActionBody() throws RecognitionException {
2286
        GuardedCommand result = null;
2287

    
2288

    
2289
        Expression expr =null;
2290

    
2291
        Block bdy =null;
2292

    
2293

    
2294

    
2295
                        result = null;
2296

    
2297
        try {
2298
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:410:2: ( T_REQUIRES expr= expression T_COLON bdy= actionBody[null] T_END )
2299
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:411:3: T_REQUIRES expr= expression T_COLON bdy= actionBody[null] T_END
2300
            {
2301
            result = createGuardedCommandStatement(); pushBlockToResolveStack(result);
2302

    
2303
            match(input,T_REQUIRES,FOLLOW_T_REQUIRES_in_discreteActionBody1624);
2304

    
2305
            pushFollow(FOLLOW_expression_in_discreteActionBody1628);
2306
            expr=expression();
2307

    
2308
            state._fsp--;
2309

    
2310

    
2311
            match(input,T_COLON,FOLLOW_T_COLON_in_discreteActionBody1630);
2312

    
2313
            pushFollow(FOLLOW_actionBody_in_discreteActionBody1637);
2314
            bdy=actionBody(null);
2315

    
2316
            state._fsp--;
2317

    
2318

    
2319
            match(input,T_END,FOLLOW_T_END_in_discreteActionBody1642);
2320

    
2321
            addExprAndBlockToGuardedCommand(result,expr,bdy);
2322

    
2323
            }
2324

    
2325
        }
2326
        catch (final RecognitionException re) {
2327
            reportError(re);
2328
            recover(input,re);
2329
        }
2330

    
2331
        finally {
2332
                // do for sure before leaving
2333
            popBlockFromResolveStack(result);
2334
        }
2335
        return result;
2336
    }
2337
    // $ANTLR end "discreteActionBody"
2338

    
2339

    
2340

    
2341
    // $ANTLR start "actionBlock"
2342
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:425:1: actionBlock[Block top] returns [Block prioList] : actionBlockParallel[prioList] ( T_PRIO actionBlockParallel[prioList] )* ;
2343
    public final Block actionBlock(Block top) throws RecognitionException {
2344
        Block prioList = null;
2345

    
2346

    
2347
        try {
2348
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:427:2: ( actionBlockParallel[prioList] ( T_PRIO actionBlockParallel[prioList] )* )
2349
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:427:6: actionBlockParallel[prioList] ( T_PRIO actionBlockParallel[prioList] )*
2350
            {
2351
            prioList = createPrioBlock(top);  pushBlockToResolveStack(prioList);
2352

    
2353
            pushFollow(FOLLOW_actionBlockParallel_in_actionBlock1685);
2354
            actionBlockParallel(prioList);
2355

    
2356
            state._fsp--;
2357

    
2358

    
2359
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:428:34: ( T_PRIO actionBlockParallel[prioList] )*
2360
            loop37:
2361
            do {
2362
                int alt37=2;
2363
                final int LA37_0 = input.LA(1);
2364

    
2365
                if ( (LA37_0==T_PRIO) ) {
2366
                    alt37=1;
2367
                }
2368

    
2369

    
2370
                switch (alt37) {
2371
                    case 1 :
2372
                        // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:428:35: T_PRIO actionBlockParallel[prioList]
2373
                        {
2374
                        match(input,T_PRIO,FOLLOW_T_PRIO_in_actionBlock1689);
2375

    
2376
                        pushFollow(FOLLOW_actionBlockParallel_in_actionBlock1691);
2377
                        actionBlockParallel(prioList);
2378

    
2379
                        state._fsp--;
2380

    
2381

    
2382
                        }
2383
                        break;
2384

    
2385
                    default :
2386
                        break loop37;
2387
                }
2388
            } while (true);
2389

    
2390

    
2391
            }
2392

    
2393
        }
2394
        catch (final RecognitionException re) {
2395
            reportError(re);
2396
            recover(input,re);
2397
        }
2398

    
2399
        finally {
2400
                // do for sure before leaving
2401
            popBlockFromResolveStack(prioList);
2402
        }
2403
        return prioList;
2404
    }
2405
    // $ANTLR end "actionBlock"
2406

    
2407

    
2408

    
2409
    // $ANTLR start "actionBlockParallel"
2410
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:433:1: actionBlockParallel[Block top] : actionBlockSequential[parList] ( T_NONDET actionBlockSequential[parList] )* ;
2411
    public final void actionBlockParallel(Block top) throws RecognitionException {
2412
                final Block parList = createNondetBlock(top);
2413
                                 pushBlockToResolveStack(parList);
2414

    
2415
        try {
2416
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:437:2: ( actionBlockSequential[parList] ( T_NONDET actionBlockSequential[parList] )* )
2417
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:437:4: actionBlockSequential[parList] ( T_NONDET actionBlockSequential[parList] )*
2418
            {
2419
            pushFollow(FOLLOW_actionBlockSequential_in_actionBlockParallel1724);
2420
            actionBlockSequential(parList);
2421

    
2422
            state._fsp--;
2423

    
2424

    
2425
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:437:35: ( T_NONDET actionBlockSequential[parList] )*
2426
            loop38:
2427
            do {
2428
                int alt38=2;
2429
                final int LA38_0 = input.LA(1);
2430

    
2431
                if ( (LA38_0==T_NONDET) ) {
2432
                    alt38=1;
2433
                }
2434

    
2435

    
2436
                switch (alt38) {
2437
                    case 1 :
2438
                        // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:437:36: T_NONDET actionBlockSequential[parList]
2439
                        {
2440
                        match(input,T_NONDET,FOLLOW_T_NONDET_in_actionBlockParallel1728);
2441

    
2442
                        pushFollow(FOLLOW_actionBlockSequential_in_actionBlockParallel1730);
2443
                        actionBlockSequential(parList);
2444

    
2445
                        state._fsp--;
2446

    
2447

    
2448
                        }
2449
                        break;
2450

    
2451
                    default :
2452
                        break loop38;
2453
                }
2454
            } while (true);
2455

    
2456

    
2457
            }
2458

    
2459
        }
2460
        catch (final RecognitionException re) {
2461
            reportError(re);
2462
            recover(input,re);
2463
        }
2464

    
2465
        finally {
2466
                // do for sure before leaving
2467
            popBlockFromResolveStack(parList);
2468
        }
2469
        return ;
2470
    }
2471
    // $ANTLR end "actionBlockParallel"
2472

    
2473

    
2474

    
2475
    // $ANTLR start "actionBlockSequential"
2476
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:442:1: actionBlockSequential[Block top] : ( T_VAR syms= blockvarlist[seqList] ( '&' sexpr= expression )? T_COLON )? actionBlockParen[seqList] ( T_SEMICOLON actionBlockParen[seqList] )* ;
2477
    public final void actionBlockSequential(Block top) throws RecognitionException {
2478
        Expression sexpr =null;
2479

    
2480

    
2481

    
2482
                                final Block seqList = createSeqBlock(top);
2483
                                pushBlockToResolveStack(seqList);
2484

    
2485
        try {
2486
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:447:2: ( ( T_VAR syms= blockvarlist[seqList] ( '&' sexpr= expression )? T_COLON )? actionBlockParen[seqList] ( T_SEMICOLON actionBlockParen[seqList] )* )
2487
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:447:5: ( T_VAR syms= blockvarlist[seqList] ( '&' sexpr= expression )? T_COLON )? actionBlockParen[seqList] ( T_SEMICOLON actionBlockParen[seqList] )*
2488
            {
2489
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:447:5: ( T_VAR syms= blockvarlist[seqList] ( '&' sexpr= expression )? T_COLON )?
2490
            int alt40=2;
2491
            final int LA40_0 = input.LA(1);
2492

    
2493
            if ( (LA40_0==T_VAR) ) {
2494
                alt40=1;
2495
            }
2496
            switch (alt40) {
2497
                case 1 :
2498
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:447:6: T_VAR syms= blockvarlist[seqList] ( '&' sexpr= expression )? T_COLON
2499
                    {
2500
                    match(input,T_VAR,FOLLOW_T_VAR_in_actionBlockSequential1764);
2501

    
2502
                    pushFollow(FOLLOW_blockvarlist_in_actionBlockSequential1768);
2503
                    blockvarlist(seqList);
2504

    
2505
                    state._fsp--;
2506

    
2507

    
2508
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:447:39: ( '&' sexpr= expression )?
2509
                    int alt39=2;
2510
                    final int LA39_0 = input.LA(1);
2511

    
2512
                    if ( (LA39_0==116) ) {
2513
                        alt39=1;
2514
                    }
2515
                    switch (alt39) {
2516
                        case 1 :
2517
                            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:447:40: '&' sexpr= expression
2518
                            {
2519
                            match(input,116,FOLLOW_116_in_actionBlockSequential1772);
2520

    
2521
                            pushFollow(FOLLOW_expression_in_actionBlockSequential1776);
2522
                            sexpr=expression();
2523

    
2524
                            state._fsp--;
2525

    
2526

    
2527
                            addSeqBlockExpression(seqList,sexpr);
2528

    
2529
                            }
2530
                            break;
2531

    
2532
                    }
2533

    
2534

    
2535
                    match(input,T_COLON,FOLLOW_T_COLON_in_actionBlockSequential1783);
2536

    
2537
                    }
2538
                    break;
2539

    
2540
            }
2541

    
2542

    
2543
            pushFollow(FOLLOW_actionBlockParen_in_actionBlockSequential1792);
2544
            actionBlockParen(seqList);
2545

    
2546
            state._fsp--;
2547

    
2548

    
2549
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:448:30: ( T_SEMICOLON actionBlockParen[seqList] )*
2550
            loop41:
2551
            do {
2552
                int alt41=2;
2553
                final int LA41_0 = input.LA(1);
2554

    
2555
                if ( (LA41_0==T_SEMICOLON) ) {
2556
                    alt41=1;
2557
                }
2558

    
2559

    
2560
                switch (alt41) {
2561
                    case 1 :
2562
                        // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:448:31: T_SEMICOLON actionBlockParen[seqList]
2563
                        {
2564
                        match(input,T_SEMICOLON,FOLLOW_T_SEMICOLON_in_actionBlockSequential1796);
2565

    
2566
                        pushFollow(FOLLOW_actionBlockParen_in_actionBlockSequential1798);
2567
                        actionBlockParen(seqList);
2568

    
2569
                        state._fsp--;
2570

    
2571

    
2572
                        }
2573
                        break;
2574

    
2575
                    default :
2576
                        break loop41;
2577
                }
2578
            } while (true);
2579

    
2580

    
2581
            }
2582

    
2583
        }
2584
        catch (final RecognitionException re) {
2585
            reportError(re);
2586
            recover(input,re);
2587
        }
2588

    
2589
        finally {
2590
                // do for sure before leaving
2591
            popBlockFromResolveStack(seqList);
2592
        }
2593
        return ;
2594
    }
2595
    // $ANTLR end "actionBlockSequential"
2596

    
2597

    
2598

    
2599
    // $ANTLR start "actionBlockParen"
2600
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:453:1: actionBlockParen[Block top] : ( T_LPAREN actionBlock[top] T_RPAREN | anonymousOrNamedAction[top] );
2601
    public final void actionBlockParen(Block top) throws RecognitionException {
2602
        try {
2603
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:454:2: ( T_LPAREN actionBlock[top] T_RPAREN | anonymousOrNamedAction[top] )
2604
            int alt42=2;
2605
            final int LA42_0 = input.LA(1);
2606

    
2607
            if ( (LA42_0==T_LPAREN) ) {
2608
                alt42=1;
2609
            }
2610
            else if ( (LA42_0==T_IDENTIFIER||LA42_0==T_REQUIRES||LA42_0==T_SKIP) ) {
2611
                alt42=2;
2612
            }
2613
            else {
2614
                final NoViableAltException nvae =
2615
                    new NoViableAltException("", 42, 0, input);
2616

    
2617
                throw nvae;
2618

    
2619
            }
2620
            switch (alt42) {
2621
                case 1 :
2622
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:454:4: T_LPAREN actionBlock[top] T_RPAREN
2623
                    {
2624
                    match(input,T_LPAREN,FOLLOW_T_LPAREN_in_actionBlockParen1822);
2625

    
2626
                    pushFollow(FOLLOW_actionBlock_in_actionBlockParen1824);
2627
                    actionBlock(top);
2628

    
2629
                    state._fsp--;
2630

    
2631

    
2632
                    match(input,T_RPAREN,FOLLOW_T_RPAREN_in_actionBlockParen1827);
2633

    
2634
                    }
2635
                    break;
2636
                case 2 :
2637
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:455:4: anonymousOrNamedAction[top]
2638
                    {
2639
                    pushFollow(FOLLOW_anonymousOrNamedAction_in_actionBlockParen1832);
2640
                    anonymousOrNamedAction(top);
2641

    
2642
                    state._fsp--;
2643

    
2644

    
2645
                    }
2646
                    break;
2647

    
2648
            }
2649
        }
2650
        catch (final RecognitionException re) {
2651
            reportError(re);
2652
            recover(input,re);
2653
        }
2654

    
2655
        finally {
2656
                // do for sure before leaving
2657
        }
2658
        return ;
2659
    }
2660
    // $ANTLR end "actionBlockParen"
2661

    
2662

    
2663

    
2664
    // $ANTLR start "anonymousOrNamedAction"
2665
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:458:1: anonymousOrNamedAction[Block top] : (gcmd= anonymousAction |aname= T_IDENTIFIER ( T_LPAREN m_params= methodCallParams T_RPAREN )? (amap= ( T_FOLDLR | T_FOLDRL ) '(' amapexpr= expression ')' )? | T_SKIP );
2666
    public final void anonymousOrNamedAction(Block top) throws RecognitionException {
2667
        Token aname=null;
2668
        Token amap=null;
2669
        GuardedCommand gcmd =null;
2670

    
2671
        ArrayList<Expression> m_params =null;
2672

    
2673
        Expression amapexpr =null;
2674

    
2675

    
2676
        try {
2677
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:459:2: (gcmd= anonymousAction |aname= T_IDENTIFIER ( T_LPAREN m_params= methodCallParams T_RPAREN )? (amap= ( T_FOLDLR | T_FOLDRL ) '(' amapexpr= expression ')' )? | T_SKIP )
2678
            int alt45=3;
2679
            switch ( input.LA(1) ) {
2680
            case T_REQUIRES:
2681
                {
2682
                alt45=1;
2683
                }
2684
                break;
2685
            case T_IDENTIFIER:
2686
                {
2687
                alt45=2;
2688
                }
2689
                break;
2690
            case T_SKIP:
2691
                {
2692
                alt45=3;
2693
                }
2694
                break;
2695
            default:
2696
                final NoViableAltException nvae =
2697
                    new NoViableAltException("", 45, 0, input);
2698

    
2699
                throw nvae;
2700

    
2701
            }
2702

    
2703
            switch (alt45) {
2704
                case 1 :
2705
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:459:4: gcmd= anonymousAction
2706
                    {
2707
                    pushFollow(FOLLOW_anonymousAction_in_anonymousOrNamedAction1849);
2708
                    gcmd=anonymousAction();
2709

    
2710
                    state._fsp--;
2711

    
2712

    
2713
                    addToBlockList(top,gcmd);
2714

    
2715
                    }
2716
                    break;
2717
                case 2 :
2718
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:460:4: aname= T_IDENTIFIER ( T_LPAREN m_params= methodCallParams T_RPAREN )? (amap= ( T_FOLDLR | T_FOLDRL ) '(' amapexpr= expression ')' )?
2719
                    {
2720
                    aname=(Token)match(input,T_IDENTIFIER,FOLLOW_T_IDENTIFIER_in_anonymousOrNamedAction1858);
2721

    
2722
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:461:11: ( T_LPAREN m_params= methodCallParams T_RPAREN )?
2723
                    int alt43=2;
2724
                    final int LA43_0 = input.LA(1);
2725

    
2726
                    if ( (LA43_0==T_LPAREN) ) {
2727
                        alt43=1;
2728
                    }
2729
                    switch (alt43) {
2730
                        case 1 :
2731
                            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:461:12: T_LPAREN m_params= methodCallParams T_RPAREN
2732
                            {
2733
                            match(input,T_LPAREN,FOLLOW_T_LPAREN_in_anonymousOrNamedAction1872);
2734

    
2735
                            pushFollow(FOLLOW_methodCallParams_in_anonymousOrNamedAction1877);
2736
                            m_params=methodCallParams();
2737

    
2738
                            state._fsp--;
2739

    
2740

    
2741
                            match(input,T_RPAREN,FOLLOW_T_RPAREN_in_anonymousOrNamedAction1879);
2742

    
2743
                            }
2744
                            break;
2745

    
2746
                    }
2747

    
2748

    
2749
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:462:11: (amap= ( T_FOLDLR | T_FOLDRL ) '(' amapexpr= expression ')' )?
2750
                    int alt44=2;
2751
                    final int LA44_0 = input.LA(1);
2752

    
2753
                    if ( ((LA44_0 >= T_FOLDLR && LA44_0 <= T_FOLDRL)) ) {
2754
                        alt44=1;
2755
                    }
2756
                    switch (alt44) {
2757
                        case 1 :
2758
                            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:462:12: amap= ( T_FOLDLR | T_FOLDRL ) '(' amapexpr= expression ')'
2759
                            {
2760
                            amap=input.LT(1);
2761

    
2762
                            if ( (input.LA(1) >= T_FOLDLR && input.LA(1) <= T_FOLDRL) ) {
2763
                                input.consume();
2764
                                state.errorRecovery=false;
2765
                            }
2766
                            else {
2767
                                final MismatchedSetException mse = new MismatchedSetException(null,input);
2768
                                throw mse;
2769
                            }
2770

    
2771

    
2772
                            match(input,T_LPAREN,FOLLOW_T_LPAREN_in_anonymousOrNamedAction1903);
2773

    
2774
                            pushFollow(FOLLOW_expression_in_anonymousOrNamedAction1907);
2775
                            amapexpr=expression();
2776

    
2777
                            state._fsp--;
2778

    
2779

    
2780
                            match(input,T_RPAREN,FOLLOW_T_RPAREN_in_anonymousOrNamedAction1909);
2781

    
2782
                            }
2783
                            break;
2784

    
2785
                    }
2786

    
2787

    
2788
                    addNamedActionCallToBlockList(top,aname,m_params,amap,amapexpr);
2789

    
2790
                    }
2791
                    break;
2792
                case 3 :
2793
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:464:4: T_SKIP
2794
                    {
2795
                    match(input,T_SKIP,FOLLOW_T_SKIP_in_anonymousOrNamedAction1920);
2796

    
2797
                    addSkipStatementToBlockList(top);
2798

    
2799
                    }
2800
                    break;
2801

    
2802
            }
2803
        }
2804
        catch (final RecognitionException re) {
2805
            reportError(re);
2806
            recover(input,re);
2807
        }
2808

    
2809
        finally {
2810
                // do for sure before leaving
2811
        }
2812
        return ;
2813
    }
2814
    // $ANTLR end "anonymousOrNamedAction"
2815

    
2816

    
2817

    
2818
    // $ANTLR start "blockvarlist"
2819
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:468:1: blockvarlist[Block seqList] : blockvar[seqList] ( T_SEMICOLON blockvar[seqList] )* ;
2820
    public final void blockvarlist(Block seqList) throws RecognitionException {
2821
        try {
2822
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:469:2: ( blockvar[seqList] ( T_SEMICOLON blockvar[seqList] )* )
2823
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:469:4: blockvar[seqList] ( T_SEMICOLON blockvar[seqList] )*
2824
            {
2825
            pushFollow(FOLLOW_blockvar_in_blockvarlist1936);
2826
            blockvar(seqList);
2827

    
2828
            state._fsp--;
2829

    
2830

    
2831
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:469:23: ( T_SEMICOLON blockvar[seqList] )*
2832
            loop46:
2833
            do {
2834
                int alt46=2;
2835
                final int LA46_0 = input.LA(1);
2836

    
2837
                if ( (LA46_0==T_SEMICOLON) ) {
2838
                    alt46=1;
2839
                }
2840

    
2841

    
2842
                switch (alt46) {
2843
                    case 1 :
2844
                        // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:469:24: T_SEMICOLON blockvar[seqList]
2845
                        {
2846
                        match(input,T_SEMICOLON,FOLLOW_T_SEMICOLON_in_blockvarlist1941);
2847

    
2848
                        pushFollow(FOLLOW_blockvar_in_blockvarlist1943);
2849
                        blockvar(seqList);
2850

    
2851
                        state._fsp--;
2852

    
2853

    
2854
                        }
2855
                        break;
2856

    
2857
                    default :
2858
                        break loop46;
2859
                }
2860
            } while (true);
2861

    
2862

    
2863
            }
2864

    
2865
        }
2866
        catch (final RecognitionException re) {
2867
            reportError(re);
2868
            recover(input,re);
2869
        }
2870

    
2871
        finally {
2872
                // do for sure before leaving
2873
        }
2874
        return ;
2875
    }
2876
    // $ANTLR end "blockvarlist"
2877

    
2878

    
2879

    
2880
    // $ANTLR start "blockvar"
2881
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:472:1: blockvar[Block seqList] : varname= T_IDENTIFIER T_COLON aType= complexType ;
2882
    public final void blockvar(Block seqList) throws RecognitionException {
2883
        Token varname=null;
2884
        Type aType =null;
2885

    
2886

    
2887
        try {
2888
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:473:2: (varname= T_IDENTIFIER T_COLON aType= complexType )
2889
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:473:5: varname= T_IDENTIFIER T_COLON aType= complexType
2890
            {
2891
            varname=(Token)match(input,T_IDENTIFIER,FOLLOW_T_IDENTIFIER_in_blockvar1963);
2892

    
2893
            match(input,T_COLON,FOLLOW_T_COLON_in_blockvar1966);
2894

    
2895
            pushFollow(FOLLOW_complexType_in_blockvar1970);
2896
            aType=complexType();
2897

    
2898
            state._fsp--;
2899

    
2900

    
2901
            addBlockVariable(seqList,varname,aType);
2902

    
2903
            }
2904

    
2905
        }
2906
        catch (final RecognitionException re) {
2907
            reportError(re);
2908
            recover(input,re);
2909
        }
2910

    
2911
        finally {
2912
                // do for sure before leaving
2913
        }
2914
        return ;
2915
    }
2916
    // $ANTLR end "blockvar"
2917

    
2918

    
2919

    
2920
    // $ANTLR start "actionBody"
2921
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:483:1: actionBody[Block top] returns [Block result] : actionBodyParallel[result] ( T_PRIO actionBodyParallel[result] )? ;
2922
    public final Block actionBody(Block top) throws RecognitionException {
2923
        Block result = null;
2924

    
2925

    
2926
        try {
2927
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:485:2: ( actionBodyParallel[result] ( T_PRIO actionBodyParallel[result] )? )
2928
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:485:4: actionBodyParallel[result] ( T_PRIO actionBodyParallel[result] )?
2929
            {
2930
            result = createPrioBlock(top); pushBlockToResolveStack(result);
2931

    
2932
            pushFollow(FOLLOW_actionBodyParallel_in_actionBody2005);
2933
            actionBodyParallel(result);
2934

    
2935
            state._fsp--;
2936

    
2937

    
2938
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:486:30: ( T_PRIO actionBodyParallel[result] )?
2939
            int alt47=2;
2940
            final int LA47_0 = input.LA(1);
2941

    
2942
            if ( (LA47_0==T_PRIO) ) {
2943
                alt47=1;
2944
            }
2945
            switch (alt47) {
2946
                case 1 :
2947
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:486:31: T_PRIO actionBodyParallel[result]
2948
                    {
2949
                    match(input,T_PRIO,FOLLOW_T_PRIO_in_actionBody2009);
2950

    
2951
                    pushFollow(FOLLOW_actionBodyParallel_in_actionBody2011);
2952
                    actionBodyParallel(result);
2953

    
2954
                    state._fsp--;
2955

    
2956

    
2957
                    }
2958
                    break;
2959

    
2960
            }
2961

    
2962

    
2963
            }
2964

    
2965
        }
2966
        catch (final RecognitionException re) {
2967
            reportError(re);
2968
            recover(input,re);
2969
        }
2970

    
2971
        finally {
2972
                // do for sure before leaving
2973
            popBlockFromResolveStack(result);
2974
        }
2975
        return result;
2976
    }
2977
    // $ANTLR end "actionBody"
2978

    
2979

    
2980

    
2981
    // $ANTLR start "actionBodyParallel"
2982
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:491:1: actionBodyParallel[Block top] returns [Block result] : actionBodySequential[result] ( T_NONDET olst= actionBodySequential[result] )* ;
2983
    public final Block actionBodyParallel(Block top) throws RecognitionException {
2984
        Block result = null;
2985

    
2986

    
2987
        SeqBlock olst =null;
2988

    
2989

    
2990
        try {
2991
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:493:2: ( actionBodySequential[result] ( T_NONDET olst= actionBodySequential[result] )* )
2992
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:493:4: actionBodySequential[result] ( T_NONDET olst= actionBodySequential[result] )*
2993
            {
2994
            result = createNondetBlock(top); pushBlockToResolveStack(result);
2995

    
2996
            pushFollow(FOLLOW_actionBodySequential_in_actionBodyParallel2046);
2997
            actionBodySequential(result);
2998

    
2999
            state._fsp--;
3000

    
3001

    
3002
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:495:3: ( T_NONDET olst= actionBodySequential[result] )*
3003
            loop48:
3004
            do {
3005
                int alt48=2;
3006
                final int LA48_0 = input.LA(1);
3007

    
3008
                if ( (LA48_0==T_NONDET) ) {
3009
                    alt48=1;
3010
                }
3011

    
3012

    
3013
                switch (alt48) {
3014
                    case 1 :
3015
                        // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:495:4: T_NONDET olst= actionBodySequential[result]
3016
                        {
3017
                        match(input,T_NONDET,FOLLOW_T_NONDET_in_actionBodyParallel2052);
3018

    
3019
                        pushFollow(FOLLOW_actionBodySequential_in_actionBodyParallel2056);
3020
                        olst=actionBodySequential(result);
3021

    
3022
                        state._fsp--;
3023

    
3024

    
3025
                        }
3026
                        break;
3027

    
3028
                    default :
3029
                        break loop48;
3030
                }
3031
            } while (true);
3032

    
3033

    
3034
            }
3035

    
3036
        }
3037
        catch (final RecognitionException re) {
3038
            reportError(re);
3039
            recover(input,re);
3040
        }
3041

    
3042
        finally {
3043
                // do for sure before leaving
3044
            popBlockFromResolveStack(result);
3045
        }
3046
        return result;
3047
    }
3048
    // $ANTLR end "actionBodyParallel"
3049

    
3050

    
3051

    
3052
    // $ANTLR start "actionBodySequential"
3053
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:502:1: actionBodySequential[Block top] returns [SeqBlock result] : ( T_VAR syms= blockvarlist[result] ( '&' sexpr= expression )? T_COLON )? actionBodyParen[result] ( T_SEMICOLON actionBodyParen[result] )* ;
3054
    public final SeqBlock actionBodySequential(Block top) throws RecognitionException {
3055
        SeqBlock result = null;
3056

    
3057

    
3058
        Expression sexpr =null;
3059

    
3060

    
3061
        try {
3062
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:504:2: ( ( T_VAR syms= blockvarlist[result] ( '&' sexpr= expression )? T_COLON )? actionBodyParen[result] ( T_SEMICOLON actionBodyParen[result] )* )
3063
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:504:4: ( T_VAR syms= blockvarlist[result] ( '&' sexpr= expression )? T_COLON )? actionBodyParen[result] ( T_SEMICOLON actionBodyParen[result] )*
3064
            {
3065
            result = createSeqBlock(top); pushBlockToResolveStack(result);
3066

    
3067
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:505:3: ( T_VAR syms= blockvarlist[result] ( '&' sexpr= expression )? T_COLON )?
3068
            int alt50=2;
3069
            final int LA50_0 = input.LA(1);
3070

    
3071
            if ( (LA50_0==T_VAR) ) {
3072
                alt50=1;
3073
            }
3074
            switch (alt50) {
3075
                case 1 :
3076
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:505:4: T_VAR syms= blockvarlist[result] ( '&' sexpr= expression )? T_COLON
3077
                    {
3078
                    match(input,T_VAR,FOLLOW_T_VAR_in_actionBodySequential2092);
3079

    
3080
                    pushFollow(FOLLOW_blockvarlist_in_actionBodySequential2096);
3081
                    blockvarlist(result);
3082

    
3083
                    state._fsp--;
3084

    
3085

    
3086
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:505:36: ( '&' sexpr= expression )?
3087
                    int alt49=2;
3088
                    final int LA49_0 = input.LA(1);
3089

    
3090
                    if ( (LA49_0==116) ) {
3091
                        alt49=1;
3092
                    }
3093
                    switch (alt49) {
3094
                        case 1 :
3095
                            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:505:37: '&' sexpr= expression
3096
                            {
3097
                            match(input,116,FOLLOW_116_in_actionBodySequential2100);
3098

    
3099
                            pushFollow(FOLLOW_expression_in_actionBodySequential2104);
3100
                            sexpr=expression();
3101

    
3102
                            state._fsp--;
3103

    
3104

    
3105
                            addSeqBlockExpression(result,sexpr);
3106

    
3107
                            }
3108
                            break;
3109

    
3110
                    }
3111

    
3112

    
3113
                    match(input,T_COLON,FOLLOW_T_COLON_in_actionBodySequential2111);
3114

    
3115
                    }
3116
                    break;
3117

    
3118
            }
3119

    
3120

    
3121
            pushFollow(FOLLOW_actionBodyParen_in_actionBodySequential2119);
3122
            actionBodyParen(result);
3123

    
3124
            state._fsp--;
3125

    
3126

    
3127
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:506:28: ( T_SEMICOLON actionBodyParen[result] )*
3128
            loop51:
3129
            do {
3130
                int alt51=2;
3131
                final int LA51_0 = input.LA(1);
3132

    
3133
                if ( (LA51_0==T_SEMICOLON) ) {
3134
                    alt51=1;
3135
                }
3136

    
3137

    
3138
                switch (alt51) {
3139
                    case 1 :
3140
                        // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:506:29: T_SEMICOLON actionBodyParen[result]
3141
                        {
3142
                        match(input,T_SEMICOLON,FOLLOW_T_SEMICOLON_in_actionBodySequential2123);
3143

    
3144
                        pushFollow(FOLLOW_actionBodyParen_in_actionBodySequential2125);
3145
                        actionBodyParen(result);
3146

    
3147
                        state._fsp--;
3148

    
3149

    
3150
                        }
3151
                        break;
3152

    
3153
                    default :
3154
                        break loop51;
3155
                }
3156
            } while (true);
3157

    
3158

    
3159
            }
3160

    
3161
        }
3162
        catch (final RecognitionException re) {
3163
            reportError(re);
3164
            recover(input,re);
3165
        }
3166

    
3167
        finally {
3168
                // do for sure before leaving
3169
            popBlockFromResolveStack(result);
3170
        }
3171
        return result;
3172
    }
3173
    // $ANTLR end "actionBodySequential"
3174

    
3175

    
3176

    
3177
    // $ANTLR start "actionBodyParen"
3178
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:512:1: actionBodyParen[SeqBlock top] : ( T_LPAREN actionBody[top] T_RPAREN |stmt= statement );
3179
    public final void actionBodyParen(SeqBlock top) throws RecognitionException {
3180
        Statement stmt =null;
3181

    
3182

    
3183
        try {
3184
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:513:2: ( T_LPAREN actionBody[top] T_RPAREN |stmt= statement )
3185
            int alt52=2;
3186
            final int LA52_0 = input.LA(1);
3187

    
3188
            if ( (LA52_0==T_LPAREN) ) {
3189
                alt52=1;
3190
            }
3191
            else if ( (LA52_0==T_ABORT||LA52_0==T_BREAK||LA52_0==T_IDENTIFIER||LA52_0==T_KILL||LA52_0==T_REQUIRES||LA52_0==T_SELF||LA52_0==T_SKIP) ) {
3192
                alt52=2;
3193
            }
3194
            else {
3195
                final NoViableAltException nvae =
3196
                    new NoViableAltException("", 52, 0, input);
3197

    
3198
                throw nvae;
3199

    
3200
            }
3201
            switch (alt52) {
3202
                case 1 :
3203
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:513:5: T_LPAREN actionBody[top] T_RPAREN
3204
                    {
3205
                    match(input,T_LPAREN,FOLLOW_T_LPAREN_in_actionBodyParen2153);
3206

    
3207
                    pushFollow(FOLLOW_actionBody_in_actionBodyParen2155);
3208
                    actionBody(top);
3209

    
3210
                    state._fsp--;
3211

    
3212

    
3213
                    match(input,T_RPAREN,FOLLOW_T_RPAREN_in_actionBodyParen2159);
3214

    
3215
                    }
3216
                    break;
3217
                case 2 :
3218
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:514:4: stmt= statement
3219
                    {
3220
                    pushFollow(FOLLOW_statement_in_actionBodyParen2166);
3221
                    stmt=statement();
3222

    
3223
                    state._fsp--;
3224

    
3225

    
3226
                    addToStatementList(top,stmt);
3227

    
3228
                    }
3229
                    break;
3230

    
3231
            }
3232
        }
3233
        catch (final RecognitionException re) {
3234
            reportError(re);
3235
            recover(input,re);
3236
        }
3237

    
3238
        finally {
3239
                // do for sure before leaving
3240
        }
3241
        return ;
3242
    }
3243
    // $ANTLR end "actionBodyParen"
3244

    
3245

    
3246

    
3247
    // $ANTLR start "statement"
3248
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:519:1: statement returns [Statement result] : ( T_ABORT | T_SKIP | T_BREAK | T_KILL T_LPAREN aname= ( T_IDENTIFIER | T_SELF ) T_RPAREN |gc= discreteActionBody |aqname= reference ( T_ASSIGNMENT aexp= expression ( T_WITH ndexp= expression )? | ( T_COMMA malhs= reference )+ T_ASSIGNMENT mexp= expression ( T_COMMA mexp2= expression )+ ( T_WITH ndex2= expression )? |) );
3249
    public final Statement statement() throws RecognitionException {
3250
        Statement result = null;
3251

    
3252

    
3253
        Token aname=null;
3254
        GuardedCommand gc =null;
3255

    
3256
        Expression aqname =null;
3257

    
3258
        Expression aexp =null;
3259

    
3260
        Expression ndexp =null;
3261

    
3262
        Expression malhs =null;
3263

    
3264
        Expression mexp =null;
3265

    
3266
        Expression mexp2 =null;
3267

    
3268
        Expression ndex2 =null;
3269

    
3270

    
3271

    
3272
                        boolean popFromResolveStack = false;
3273
                        result = null;
3274

    
3275
        try {
3276
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:525:2: ( T_ABORT | T_SKIP | T_BREAK | T_KILL T_LPAREN aname= ( T_IDENTIFIER | T_SELF ) T_RPAREN |gc= discreteActionBody |aqname= reference ( T_ASSIGNMENT aexp= expression ( T_WITH ndexp= expression )? | ( T_COMMA malhs= reference )+ T_ASSIGNMENT mexp= expression ( T_COMMA mexp2= expression )+ ( T_WITH ndex2= expression )? |) )
3277
            int alt58=6;
3278
            switch ( input.LA(1) ) {
3279
            case T_ABORT:
3280
                {
3281
                alt58=1;
3282
                }
3283
                break;
3284
            case T_SKIP:
3285
                {
3286
                alt58=2;
3287
                }
3288
                break;
3289
            case T_BREAK:
3290
                {
3291
                alt58=3;
3292
                }
3293
                break;
3294
            case T_KILL:
3295
                {
3296
                alt58=4;
3297
                }
3298
                break;
3299
            case T_REQUIRES:
3300
                {
3301
                alt58=5;
3302
                }
3303
                break;
3304
            case T_IDENTIFIER:
3305
            case T_SELF:
3306
                {
3307
                alt58=6;
3308
                }
3309
                break;
3310
            default:
3311
                final NoViableAltException nvae =
3312
                    new NoViableAltException("", 58, 0, input);
3313

    
3314
                throw nvae;
3315

    
3316
            }
3317

    
3318
            switch (alt58) {
3319
                case 1 :
3320
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:525:4: T_ABORT
3321
                    {
3322
                    match(input,T_ABORT,FOLLOW_T_ABORT_in_statement2194);
3323

    
3324
                    result = createAbortStatement();
3325

    
3326
                    }
3327
                    break;
3328
                case 2 :
3329
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:526:4: T_SKIP
3330
                    {
3331
                    match(input,T_SKIP,FOLLOW_T_SKIP_in_statement2201);
3332

    
3333
                    result = createSkipStatement();
3334

    
3335
                    }
3336
                    break;
3337
                case 3 :
3338
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:527:4: T_BREAK
3339
                    {
3340
                    match(input,T_BREAK,FOLLOW_T_BREAK_in_statement2208);
3341

    
3342
                    result = createBreakStatement();
3343

    
3344
                    }
3345
                    break;
3346
                case 4 :
3347
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:528:4: T_KILL T_LPAREN aname= ( T_IDENTIFIER | T_SELF ) T_RPAREN
3348
                    {
3349
                    match(input,T_KILL,FOLLOW_T_KILL_in_statement2215);
3350

    
3351
                    match(input,T_LPAREN,FOLLOW_T_LPAREN_in_statement2217);
3352

    
3353
                    aname=input.LT(1);
3354

    
3355
                    if ( input.LA(1)==T_IDENTIFIER||input.LA(1)==T_SELF ) {
3356
                        input.consume();
3357
                        state.errorRecovery=false;
3358
                    }
3359
                    else {
3360
                        final MismatchedSetException mse = new MismatchedSetException(null,input);
3361
                        throw mse;
3362
                    }
3363

    
3364

    
3365
                    match(input,T_RPAREN,FOLLOW_T_RPAREN_in_statement2229);
3366

    
3367
                    result = createKillStatement(aname);
3368

    
3369
                    }
3370
                    break;
3371
                case 5 :
3372
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:529:5: gc= discreteActionBody
3373
                    {
3374
                    pushFollow(FOLLOW_discreteActionBody_in_statement2239);
3375
                    gc=discreteActionBody();
3376

    
3377
                    state._fsp--;
3378

    
3379

    
3380
                    result = gc;
3381

    
3382
                    }
3383
                    break;
3384
                case 6 :
3385
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:530:4: aqname= reference ( T_ASSIGNMENT aexp= expression ( T_WITH ndexp= expression )? | ( T_COMMA malhs= reference )+ T_ASSIGNMENT mexp= expression ( T_COMMA mexp2= expression )+ ( T_WITH ndex2= expression )? |)
3386
                    {
3387
                    pushFollow(FOLLOW_reference_in_statement2248);
3388
                    aqname=reference();
3389

    
3390
                    state._fsp--;
3391

    
3392

    
3393
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:531:7: ( T_ASSIGNMENT aexp= expression ( T_WITH ndexp= expression )? | ( T_COMMA malhs= reference )+ T_ASSIGNMENT mexp= expression ( T_COMMA mexp2= expression )+ ( T_WITH ndex2= expression )? |)
3394
                    int alt57=3;
3395
                    switch ( input.LA(1) ) {
3396
                    case T_ASSIGNMENT:
3397
                        {
3398
                        alt57=1;
3399
                        }
3400
                        break;
3401
                    case T_COMMA:
3402
                        {
3403
                        alt57=2;
3404
                        }
3405
                        break;
3406
                    case T_END:
3407
                    case T_NONDET:
3408
                    case T_PRIO:
3409
                    case T_RPAREN:
3410
                    case T_SEMICOLON:
3411
                        {
3412
                        alt57=3;
3413
                        }
3414
                        break;
3415
                    default:
3416
                        final NoViableAltException nvae =
3417
                            new NoViableAltException("", 57, 0, input);
3418

    
3419
                        throw nvae;
3420

    
3421
                    }
3422

    
3423
                    switch (alt57) {
3424
                        case 1 :
3425
                            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:532:12: T_ASSIGNMENT aexp= expression ( T_WITH ndexp= expression )?
3426
                            {
3427
                            match(input,T_ASSIGNMENT,FOLLOW_T_ASSIGNMENT_in_statement2276);
3428

    
3429
                            pushFollow(FOLLOW_expression_in_statement2281);
3430
                            aexp=expression();
3431

    
3432
                            state._fsp--;
3433

    
3434

    
3435
                            result = createSingleAssignmentStatement(aqname,aexp);
3436

    
3437
                            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:533:15: ( T_WITH ndexp= expression )?
3438
                            int alt53=2;
3439
                            final int LA53_0 = input.LA(1);
3440

    
3441
                            if ( (LA53_0==T_WITH) ) {
3442
                                alt53=1;
3443
                            }
3444
                            switch (alt53) {
3445
                                case 1 :
3446
                                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:533:16: T_WITH ndexp= expression
3447
                                    {
3448
                                    match(input,T_WITH,FOLLOW_T_WITH_in_statement2301);
3449

    
3450
                                    pushFollow(FOLLOW_expression_in_statement2305);
3451
                                    ndexp=expression();
3452

    
3453
                                    state._fsp--;
3454

    
3455

    
3456
                                    addConstraintToAssignment(result,ndexp);
3457

    
3458
                                    }
3459
                                    break;
3460

    
3461
                            }
3462

    
3463

    
3464
                            }
3465
                            break;
3466
                        case 2 :
3467
                            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:536:8: ( T_COMMA malhs= reference )+ T_ASSIGNMENT mexp= expression ( T_COMMA mexp2= expression )+ ( T_WITH ndex2= expression )?
3468
                            {
3469
                            result = createMultipleAssignmentStatementLHS(aqname);
3470

    
3471
                            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:537:7: ( T_COMMA malhs= reference )+
3472
                            int cnt54=0;
3473
                            loop54:
3474
                            do {
3475
                                int alt54=2;
3476
                                final int LA54_0 = input.LA(1);
3477

    
3478
                                if ( (LA54_0==T_COMMA) ) {
3479
                                    alt54=1;
3480
                                }
3481

    
3482

    
3483
                                switch (alt54) {
3484
                                    case 1 :
3485
                                        // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:537:8: T_COMMA malhs= reference
3486
                                        {
3487
                                        match(input,T_COMMA,FOLLOW_T_COMMA_in_statement2358);
3488

    
3489
                                        pushFollow(FOLLOW_reference_in_statement2362);
3490
                                        malhs=reference();
3491

    
3492
                                        state._fsp--;
3493

    
3494

    
3495
                                        addMultipleAssignmentStatementLHS(result,malhs);
3496

    
3497
                                        }
3498
                                        break;
3499

    
3500
                                    default :
3501
                                        if ( cnt54 >= 1 ) break loop54;
3502
                                        final EarlyExitException eee =
3503
                                            new EarlyExitException(54, input);
3504
                                        throw eee;
3505
                                }
3506
                                cnt54++;
3507
                            } while (true);
3508

    
3509

    
3510
                            match(input,T_ASSIGNMENT,FOLLOW_T_ASSIGNMENT_in_statement2377);
3511

    
3512
                            pushAssignmentOnResolveStack(result); popFromResolveStack = true;
3513

    
3514
                            pushFollow(FOLLOW_expression_in_statement2399);
3515
                            mexp=expression();
3516

    
3517
                            state._fsp--;
3518

    
3519

    
3520
                            addMutlipleAssignmentStatementRHS(result,mexp);
3521

    
3522
                            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:542:8: ( T_COMMA mexp2= expression )+
3523
                            int cnt55=0;
3524
                            loop55:
3525
                            do {
3526
                                int alt55=2;
3527
                                final int LA55_0 = input.LA(1);
3528

    
3529
                                if ( (LA55_0==T_COMMA) ) {
3530
                                    alt55=1;
3531
                                }
3532

    
3533

    
3534
                                switch (alt55) {
3535
                                    case 1 :
3536
                                        // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:542:9: T_COMMA mexp2= expression
3537
                                        {
3538
                                        match(input,T_COMMA,FOLLOW_T_COMMA_in_statement2418);
3539

    
3540
                                        pushFollow(FOLLOW_expression_in_statement2422);
3541
                                        mexp2=expression();
3542

    
3543
                                        state._fsp--;
3544

    
3545

    
3546
                                        addMutlipleAssignmentStatementRHS(result,mexp2);
3547

    
3548
                                        }
3549
                                        break;
3550

    
3551
                                    default :
3552
                                        if ( cnt55 >= 1 ) break loop55;
3553
                                        final EarlyExitException eee =
3554
                                            new EarlyExitException(55, input);
3555
                                        throw eee;
3556
                                }
3557
                                cnt55++;
3558
                            } while (true);
3559

    
3560

    
3561
                            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:543:8: ( T_WITH ndex2= expression )?
3562
                            int alt56=2;
3563
                            final int LA56_0 = input.LA(1);
3564

    
3565
                            if ( (LA56_0==T_WITH) ) {
3566
                                alt56=1;
3567
                            }
3568
                            switch (alt56) {
3569
                                case 1 :
3570
                                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:543:9: T_WITH ndex2= expression
3571
                                    {
3572
                                    match(input,T_WITH,FOLLOW_T_WITH_in_statement2436);
3573

    
3574
                                    pushFollow(FOLLOW_expression_in_statement2440);
3575
                                    ndex2=expression();
3576

    
3577
                                    state._fsp--;
3578

    
3579

    
3580
                                    addConstraintToAssignment(result,ndex2);
3581

    
3582
                                    }
3583
                                    break;
3584

    
3585
                            }
3586

    
3587

    
3588
                            }
3589
                            break;
3590
                        case 3 :
3591
                            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:546:7:
3592
                            {
3593
                            result = createCallStatement(aqname);
3594

    
3595
                            }
3596
                            break;
3597

    
3598
                    }
3599

    
3600

    
3601
                    }
3602
                    break;
3603

    
3604
            }
3605
        }
3606
        catch (final RecognitionException re) {
3607
            reportError(re);
3608
            recover(input,re);
3609
        }
3610

    
3611
        finally {
3612
                // do for sure before leaving
3613

    
3614
                           if (popFromResolveStack == true)
3615
                                popAssignmentOffResolveStack(result);
3616

    
3617
        }
3618
        return result;
3619
    }
3620
    // $ANTLR end "statement"
3621

    
3622

    
3623

    
3624
    // $ANTLR start "expression"
3625
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:557:1: expression returns [Expression expr] : left= atomExpression (op= binoperator right= atomExpression )* ;
3626
    public final Expression expression() throws RecognitionException {
3627
        Expression expr = null;
3628

    
3629

    
3630
        Expression left =null;
3631

    
3632
        BinaryOperator op =null;
3633

    
3634
        Expression right =null;
3635

    
3636

    
3637

    
3638
                        final ArrayList<BinaryOperator> operators = new ArrayList<BinaryOperator>();
3639
                        final ArrayList<Expression> expressions = new ArrayList<Expression>();
3640

    
3641
        try {
3642
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:563:2: (left= atomExpression (op= binoperator right= atomExpression )* )
3643
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:563:4: left= atomExpression (op= binoperator right= atomExpression )*
3644
            {
3645
            pushFollow(FOLLOW_atomExpression_in_expression2515);
3646
            left=atomExpression();
3647

    
3648
            state._fsp--;
3649

    
3650

    
3651
            expressions.add(left);
3652

    
3653
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:565:3: (op= binoperator right= atomExpression )*
3654
            loop59:
3655
            do {
3656
                int alt59=2;
3657
                final int LA59_0 = input.LA(1);
3658

    
3659
                if ( (LA59_0==T_AND||LA59_0==T_BIIMPLIES||LA59_0==T_CONC||LA59_0==T_DIFF||LA59_0==T_DIV||(LA59_0 >= T_DOMRESBY && LA59_0 <= T_DOMRESTO)||LA59_0==T_EQUAL||(LA59_0 >= T_GREATER && LA59_0 <= T_GREATEREQUAL)||LA59_0==T_IDIV||(LA59_0 >= T_IMPLIES && LA59_0 <= T_IN)||LA59_0==T_INTER||(LA59_0 >= T_LESS && LA59_0 <= T_LESSEQUAL)||(LA59_0 >= T_MINUS && LA59_0 <= T_MUNION)||(LA59_0 >= T_NOT && LA59_0 <= T_NOTEQUAL)||LA59_0==T_OR||LA59_0==T_POW||LA59_0==T_PROD||(LA59_0 >= T_RNGRESBY && LA59_0 <= T_RNGRESTO)||LA59_0==T_SEQMOD_MAPOVERRIDE||(LA59_0 >= T_SUBSET && LA59_0 <= T_SUM)||LA59_0==T_UNION) ) {
3660
                    alt59=1;
3661
                }
3662

    
3663

    
3664
                switch (alt59) {
3665
                    case 1 :
3666
                        // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:565:5: op= binoperator right= atomExpression
3667
                        {
3668
                        pushFollow(FOLLOW_binoperator_in_expression2528);
3669
                        op=binoperator();
3670

    
3671
                        state._fsp--;
3672

    
3673

    
3674
                        pushFollow(FOLLOW_atomExpression_in_expression2536);
3675
                        right=atomExpression();
3676

    
3677
                        state._fsp--;
3678

    
3679

    
3680

    
3681
                                                  if (op != null) {
3682
                                                          operators.add(op);
3683
                                                          expressions.add(right);
3684
                                                  }
3685

    
3686

    
3687
                        }
3688
                        break;
3689

    
3690
                    default :
3691
                        break loop59;
3692
                }
3693
            } while (true);
3694

    
3695

    
3696
            expr = createPrecedenceTree(expressions,operators);
3697

    
3698
            }
3699

    
3700
        }
3701
        catch (final RecognitionException re) {
3702
            reportError(re);
3703
            recover(input,re);
3704
        }
3705

    
3706
        finally {
3707
                // do for sure before leaving
3708
        }
3709
        return expr;
3710
    }
3711
    // $ANTLR end "expression"
3712

    
3713

    
3714

    
3715
    // $ANTLR start "binoperator"
3716
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:578:1: binoperator returns [BinaryOperator binop] : ( T_BIIMPLIES | T_GREATER | T_GREATEREQUAL | T_LESS | T_LESSEQUAL | T_EQUAL | T_NOTEQUAL | T_IMPLIES | T_MINUS | T_SUM | T_IN ( T_SET )? | T_NOT T_IN ( T_SET )? | T_SUBSET | T_OR | T_DIV | T_PROD | T_IDIV | T_MOD | T_UNION | T_DIFF | T_INTER | T_AND | T_POW | T_CONC | T_DOMRESBY | T_DOMRESTO | T_RNGRESBY | T_RNGRESTO | T_MUNION | T_SEQMOD_MAPOVERRIDE );
3717
    public final BinaryOperator binoperator() throws RecognitionException {
3718
        BinaryOperator binop = null;
3719

    
3720

    
3721
        try {
3722
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:580:2: ( T_BIIMPLIES | T_GREATER | T_GREATEREQUAL | T_LESS | T_LESSEQUAL | T_EQUAL | T_NOTEQUAL | T_IMPLIES | T_MINUS | T_SUM | T_IN ( T_SET )? | T_NOT T_IN ( T_SET )? | T_SUBSET | T_OR | T_DIV | T_PROD | T_IDIV | T_MOD | T_UNION | T_DIFF | T_INTER | T_AND | T_POW | T_CONC | T_DOMRESBY | T_DOMRESTO | T_RNGRESBY | T_RNGRESTO | T_MUNION | T_SEQMOD_MAPOVERRIDE )
3723
            int alt62=30;
3724
            switch ( input.LA(1) ) {
3725
            case T_BIIMPLIES:
3726
                {
3727
                alt62=1;
3728
                }
3729
                break;
3730
            case T_GREATER:
3731
                {
3732
                alt62=2;
3733
                }
3734
                break;
3735
            case T_GREATEREQUAL:
3736
                {
3737
                alt62=3;
3738
                }
3739
                break;
3740
            case T_LESS:
3741
                {
3742
                alt62=4;
3743
                }
3744
                break;
3745
            case T_LESSEQUAL:
3746
                {
3747
                alt62=5;
3748
                }
3749
                break;
3750
            case T_EQUAL:
3751
                {
3752
                alt62=6;
3753
                }
3754
                break;
3755
            case T_NOTEQUAL:
3756
                {
3757
                alt62=7;
3758
                }
3759
                break;
3760
            case T_IMPLIES:
3761
                {
3762
                alt62=8;
3763
                }
3764
                break;
3765
            case T_MINUS:
3766
                {
3767
                alt62=9;
3768
                }
3769
                break;
3770
            case T_SUM:
3771
                {
3772
                alt62=10;
3773
                }
3774
                break;
3775
            case T_IN:
3776
                {
3777
                alt62=11;
3778
                }
3779
                break;
3780
            case T_NOT:
3781
                {
3782
                alt62=12;
3783
                }
3784
                break;
3785
            case T_SUBSET:
3786
                {
3787
                alt62=13;
3788
                }
3789
                break;
3790
            case T_OR:
3791
                {
3792
                alt62=14;
3793
                }
3794
                break;
3795
            case T_DIV:
3796
                {
3797
                alt62=15;
3798
                }
3799
                break;
3800
            case T_PROD:
3801
                {
3802
                alt62=16;
3803
                }
3804
                break;
3805
            case T_IDIV:
3806
                {
3807
                alt62=17;
3808
                }
3809
                break;
3810
            case T_MOD:
3811
                {
3812
                alt62=18;
3813
                }
3814
                break;
3815
            case T_UNION:
3816
                {
3817
                alt62=19;
3818
                }
3819
                break;
3820
            case T_DIFF:
3821
                {
3822
                alt62=20;
3823
                }
3824
                break;
3825
            case T_INTER:
3826
                {
3827
                alt62=21;
3828
                }
3829
                break;
3830
            case T_AND:
3831
                {
3832
                alt62=22;
3833
                }
3834
                break;
3835
            case T_POW:
3836
                {
3837
                alt62=23;
3838
                }
3839
                break;
3840
            case T_CONC:
3841
                {
3842
                alt62=24;
3843
                }
3844
                break;
3845
            case T_DOMRESBY:
3846
                {
3847
                alt62=25;
3848
                }
3849
                break;
3850
            case T_DOMRESTO:
3851
                {
3852
                alt62=26;
3853
                }
3854
                break;
3855
            case T_RNGRESBY:
3856
                {
3857
                alt62=27;
3858
                }
3859
                break;
3860
            case T_RNGRESTO:
3861
                {
3862
                alt62=28;
3863
                }
3864
                break;
3865
            case T_MUNION:
3866
                {
3867
                alt62=29;
3868
                }
3869
                break;
3870
            case T_SEQMOD_MAPOVERRIDE:
3871
                {
3872
                alt62=30;
3873
                }
3874
                break;
3875
            default:
3876
                final NoViableAltException nvae =
3877
                    new NoViableAltException("", 62, 0, input);
3878

    
3879
                throw nvae;
3880

    
3881
            }
3882

    
3883
            switch (alt62) {
3884
                case 1 :
3885
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:580:4: T_BIIMPLIES
3886
                    {
3887
                    match(input,T_BIIMPLIES,FOLLOW_T_BIIMPLIES_in_binoperator2569);
3888

    
3889
                    binop = createBinaryOperator(ExpressionKind.biimplies);
3890

    
3891
                    }
3892
                    break;
3893
                case 2 :
3894
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:582:4: T_GREATER
3895
                    {
3896
                    match(input,T_GREATER,FOLLOW_T_GREATER_in_binoperator2578);
3897

    
3898
                    binop = createBinaryOperator(ExpressionKind.greater);
3899

    
3900
                    }
3901
                    break;
3902
                case 3 :
3903
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:584:4: T_GREATEREQUAL
3904
                    {
3905
                    match(input,T_GREATEREQUAL,FOLLOW_T_GREATEREQUAL_in_binoperator2588);
3906

    
3907
                    binop = createBinaryOperator(ExpressionKind.greaterequal);
3908

    
3909
                    }
3910
                    break;
3911
                case 4 :
3912
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:586:4: T_LESS
3913
                    {
3914
                    match(input,T_LESS,FOLLOW_T_LESS_in_binoperator2597);
3915

    
3916
                    binop = createBinaryOperator(ExpressionKind.less);
3917

    
3918
                    }
3919
                    break;
3920
                case 5 :
3921
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:588:4: T_LESSEQUAL
3922
                    {
3923
                    match(input,T_LESSEQUAL,FOLLOW_T_LESSEQUAL_in_binoperator2607);
3924

    
3925
                    binop = createBinaryOperator(ExpressionKind.lessequal);
3926

    
3927
                    }
3928
                    break;
3929
                case 6 :
3930
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:590:4: T_EQUAL
3931
                    {
3932
                    match(input,T_EQUAL,FOLLOW_T_EQUAL_in_binoperator2616);
3933

    
3934
                    binop = createBinaryOperator(ExpressionKind.equal);
3935

    
3936
                    }
3937
                    break;
3938
                case 7 :
3939
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:592:4: T_NOTEQUAL
3940
                    {
3941
                    match(input,T_NOTEQUAL,FOLLOW_T_NOTEQUAL_in_binoperator2628);
3942

    
3943
                    binop = createBinaryOperator(ExpressionKind.notequal);
3944

    
3945
                    }
3946
                    break;
3947
                case 8 :
3948
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:594:4: T_IMPLIES
3949
                    {
3950
                    match(input,T_IMPLIES,FOLLOW_T_IMPLIES_in_binoperator2639);
3951

    
3952
                    binop = createBinaryOperator(ExpressionKind.implies);
3953

    
3954
                    }
3955
                    break;
3956
                case 9 :
3957
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:596:4: T_MINUS
3958
                    {
3959
                    match(input,T_MINUS,FOLLOW_T_MINUS_in_binoperator2648);
3960

    
3961
                    binop = createBinaryOperator(ExpressionKind.minus);
3962

    
3963
                    }
3964
                    break;
3965
                case 10 :
3966
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:598:4: T_SUM
3967
                    {
3968
                    match(input,T_SUM,FOLLOW_T_SUM_in_binoperator2658);
3969

    
3970
                    binop = createBinaryOperator(ExpressionKind.sum);
3971

    
3972
                    }
3973
                    break;
3974
                case 11 :
3975
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:600:4: T_IN ( T_SET )?
3976
                    {
3977
                    match(input,T_IN,FOLLOW_T_IN_in_binoperator2668);
3978

    
3979
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:600:9: ( T_SET )?
3980
                    int alt60=2;
3981
                    final int LA60_0 = input.LA(1);
3982

    
3983
                    if ( (LA60_0==T_SET) ) {
3984
                        alt60=1;
3985
                    }
3986
                    switch (alt60) {
3987
                        case 1 :
3988
                            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:600:9: T_SET
3989
                            {
3990
                            match(input,T_SET,FOLLOW_T_SET_in_binoperator2670);
3991

    
3992
                            }
3993
                            break;
3994

    
3995
                    }
3996

    
3997

    
3998
                    binop = createBinaryOperator(ExpressionKind.elemin);
3999

    
4000
                    }
4001
                    break;
4002
                case 12 :
4003
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:602:4: T_NOT T_IN ( T_SET )?
4004
                    {
4005
                    match(input,T_NOT,FOLLOW_T_NOT_in_binoperator2681);
4006

    
4007
                    match(input,T_IN,FOLLOW_T_IN_in_binoperator2683);
4008

    
4009
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:602:15: ( T_SET )?
4010
                    int alt61=2;
4011
                    final int LA61_0 = input.LA(1);
4012

    
4013
                    if ( (LA61_0==T_SET) ) {
4014
                        alt61=1;
4015
                    }
4016
                    switch (alt61) {
4017
                        case 1 :
4018
                            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:602:15: T_SET
4019
                            {
4020
                            match(input,T_SET,FOLLOW_T_SET_in_binoperator2685);
4021

    
4022
                            }
4023
                            break;
4024

    
4025
                    }
4026

    
4027

    
4028
                    binop = createBinaryOperator(ExpressionKind.notelemin);
4029

    
4030
                    }
4031
                    break;
4032
                case 13 :
4033
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:604:4: T_SUBSET
4034
                    {
4035
                    match(input,T_SUBSET,FOLLOW_T_SUBSET_in_binoperator2696);
4036

    
4037
                    binop = createBinaryOperator(ExpressionKind.subset);
4038

    
4039
                    }
4040
                    break;
4041
                case 14 :
4042
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:606:4: T_OR
4043
                    {
4044
                    match(input,T_OR,FOLLOW_T_OR_in_binoperator2706);
4045

    
4046
                    binop = createBinaryOperator(ExpressionKind.or);
4047

    
4048
                    }
4049
                    break;
4050
                case 15 :
4051
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:608:4: T_DIV
4052
                    {
4053
                    match(input,T_DIV,FOLLOW_T_DIV_in_binoperator2715);
4054

    
4055
                    binop = createBinaryOperator(ExpressionKind.div);
4056

    
4057
                    }
4058
                    break;
4059
                case 16 :
4060
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:610:4: T_PROD
4061
                    {
4062
                    match(input,T_PROD,FOLLOW_T_PROD_in_binoperator2724);
4063

    
4064
                    binop = createBinaryOperator(ExpressionKind.prod);
4065

    
4066
                    }
4067
                    break;
4068
                case 17 :
4069
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:612:4: T_IDIV
4070
                    {
4071
                    match(input,T_IDIV,FOLLOW_T_IDIV_in_binoperator2734);
4072

    
4073
                    binop = createBinaryOperator(ExpressionKind.idiv);
4074

    
4075
                    }
4076
                    break;
4077
                case 18 :
4078
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:614:4: T_MOD
4079
                    {
4080
                    match(input,T_MOD,FOLLOW_T_MOD_in_binoperator2744);
4081

    
4082
                    binop = createBinaryOperator(ExpressionKind.mod);
4083

    
4084
                    }
4085
                    break;
4086
                case 19 :
4087
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:616:4: T_UNION
4088
                    {
4089
                    match(input,T_UNION,FOLLOW_T_UNION_in_binoperator2754);
4090

    
4091
                    binop = createBinaryOperator(ExpressionKind.union);
4092

    
4093
                    }
4094
                    break;
4095
                case 20 :
4096
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:618:4: T_DIFF
4097
                    {
4098
                    match(input,T_DIFF,FOLLOW_T_DIFF_in_binoperator2765);
4099

    
4100
                    binop = createBinaryOperator(ExpressionKind.diff);
4101

    
4102
                    }
4103
                    break;
4104
                case 21 :
4105
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:620:4: T_INTER
4106
                    {
4107
                    match(input,T_INTER,FOLLOW_T_INTER_in_binoperator2776);
4108

    
4109
                    binop = createBinaryOperator(ExpressionKind.inter);
4110

    
4111
                    }
4112
                    break;
4113
                case 22 :
4114
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:622:4: T_AND
4115
                    {
4116
                    match(input,T_AND,FOLLOW_T_AND_in_binoperator2787);
4117

    
4118
                    binop = createBinaryOperator(ExpressionKind.and);
4119

    
4120
                    }
4121
                    break;
4122
                case 23 :
4123
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:624:4: T_POW
4124
                    {
4125
                    match(input,T_POW,FOLLOW_T_POW_in_binoperator2802);
4126

    
4127
                    binop = createBinaryOperator(ExpressionKind.pow);
4128

    
4129
                    }
4130
                    break;
4131
                case 24 :
4132
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:626:4: T_CONC
4133
                    {
4134
                    match(input,T_CONC,FOLLOW_T_CONC_in_binoperator2817);
4135

    
4136
                    binop = createBinaryOperator(ExpressionKind.conc);
4137

    
4138
                    }
4139
                    break;
4140
                case 25 :
4141
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:628:4: T_DOMRESBY
4142
                    {
4143
                    match(input,T_DOMRESBY,FOLLOW_T_DOMRESBY_in_binoperator2830);
4144

    
4145
                    binop = createBinaryOperator(ExpressionKind.domresby);
4146

    
4147
                    }
4148
                    break;
4149
                case 26 :
4150
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:630:4: T_DOMRESTO
4151
                    {
4152
                    match(input,T_DOMRESTO,FOLLOW_T_DOMRESTO_in_binoperator2840);
4153

    
4154
                    binop = createBinaryOperator(ExpressionKind.domresto);
4155

    
4156
                    }
4157
                    break;
4158
                case 27 :
4159
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:632:4: T_RNGRESBY
4160
                    {
4161
                    match(input,T_RNGRESBY,FOLLOW_T_RNGRESBY_in_binoperator2850);
4162

    
4163
                    binop = createBinaryOperator(ExpressionKind.rngresby);
4164

    
4165
                    }
4166
                    break;
4167
                case 28 :
4168
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:634:4: T_RNGRESTO
4169
                    {
4170
                    match(input,T_RNGRESTO,FOLLOW_T_RNGRESTO_in_binoperator2860);
4171

    
4172
                    binop = createBinaryOperator(ExpressionKind.rngresto);
4173

    
4174
                    }
4175
                    break;
4176
                case 29 :
4177
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:636:4: T_MUNION
4178
                    {
4179
                    match(input,T_MUNION,FOLLOW_T_MUNION_in_binoperator2870);
4180

    
4181
                    binop = createBinaryOperator(ExpressionKind.munion);
4182

    
4183
                    }
4184
                    break;
4185
                case 30 :
4186
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:638:4: T_SEQMOD_MAPOVERRIDE
4187
                    {
4188
                    match(input,T_SEQMOD_MAPOVERRIDE,FOLLOW_T_SEQMOD_MAPOVERRIDE_in_binoperator2880);
4189

    
4190
                    binop = createBinaryOperator(ExpressionKind.seqmod_mapoverride);
4191

    
4192
                    }
4193
                    break;
4194

    
4195
            }
4196
        }
4197
        catch (final RecognitionException re) {
4198
            reportError(re);
4199
            recover(input,re);
4200
        }
4201

    
4202
        finally {
4203
                // do for sure before leaving
4204
        }
4205
        return binop;
4206
    }
4207
    // $ANTLR end "binoperator"
4208

    
4209

    
4210

    
4211
    // $ANTLR start "atomExpression"
4212
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:644:1: atomExpression returns [Expression expr] : ( ( (unexpr= op_un )? (e= identifierExpression |e= constant |e= initializedComplexType |e= quantifierExpression | T_LPAREN e= expression T_RPAREN ( ( T_POINT idn= T_IDENTIFIER )+ (res= accessExpression[e] )? |e= accessExpression[e] )? ) ( 'as' cid= T_IDENTIFIER )? ) |ie= T_IF ce= expression T_THEN te= expression T_ELSE ee= expression T_END );
4213
    public final Expression atomExpression() throws RecognitionException {
4214
        Expression expr = null;
4215

    
4216

    
4217
        Token idn=null;
4218
        Token cid=null;
4219
        Token ie=null;
4220
        UnaryOperator unexpr =null;
4221

    
4222
        Expression e =null;
4223

    
4224
        Expression res =null;
4225

    
4226
        Expression ce =null;
4227

    
4228
        Expression te =null;
4229

    
4230
        Expression ee =null;
4231

    
4232

    
4233

    
4234
                        expr = null;
4235

    
4236
        try {
4237
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:649:2: ( ( (unexpr= op_un )? (e= identifierExpression |e= constant |e= initializedComplexType |e= quantifierExpression | T_LPAREN e= expression T_RPAREN ( ( T_POINT idn= T_IDENTIFIER )+ (res= accessExpression[e] )? |e= accessExpression[e] )? ) ( 'as' cid= T_IDENTIFIER )? ) |ie= T_IF ce= expression T_THEN te= expression T_ELSE ee= expression T_END )
4238
            int alt69=2;
4239
            final int LA69_0 = input.LA(1);
4240

    
4241
            if ( (LA69_0==T_ABS||(LA69_0 >= T_CARD && LA69_0 <= T_CBRL)||LA69_0==T_DCONC||LA69_0==T_DINTER||LA69_0==T_DOM||(LA69_0 >= T_DUNION && LA69_0 <= T_ELEMS)||(LA69_0 >= T_EXISTS && LA69_0 <= T_FALSE)||LA69_0==T_FLOATNUMBER||LA69_0==T_FORALL||(LA69_0 >= T_HEAD && LA69_0 <= T_IDENTIFIER)||LA69_0==T_INDS||LA69_0==T_INTNUMBER||LA69_0==T_LEN||(LA69_0 >= T_LPAREN && LA69_0 <= T_LSQPAREN)||LA69_0==T_MERGE||LA69_0==T_MINUS||(LA69_0 >= T_NEW && LA69_0 <= T_NIL)||LA69_0==T_NOT||LA69_0==T_RNG||LA69_0==T_SELF||LA69_0==T_STRINGLITERAL||LA69_0==T_TAIL||LA69_0==T_TRUE) ) {
4242
                alt69=1;
4243
            }
4244
            else if ( (LA69_0==T_IF) ) {
4245
                alt69=2;
4246
            }
4247
            else {
4248
                final NoViableAltException nvae =
4249
                    new NoViableAltException("", 69, 0, input);
4250

    
4251
                throw nvae;
4252

    
4253
            }
4254
            switch (alt69) {
4255
                case 1 :
4256
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:649:4: ( (unexpr= op_un )? (e= identifierExpression |e= constant |e= initializedComplexType |e= quantifierExpression | T_LPAREN e= expression T_RPAREN ( ( T_POINT idn= T_IDENTIFIER )+ (res= accessExpression[e] )? |e= accessExpression[e] )? ) ( 'as' cid= T_IDENTIFIER )? )
4257
                    {
4258
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:649:4: ( (unexpr= op_un )? (e= identifierExpression |e= constant |e= initializedComplexType |e= quantifierExpression | T_LPAREN e= expression T_RPAREN ( ( T_POINT idn= T_IDENTIFIER )+ (res= accessExpression[e] )? |e= accessExpression[e] )? ) ( 'as' cid= T_IDENTIFIER )? )
4259
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:649:5: (unexpr= op_un )? (e= identifierExpression |e= constant |e= initializedComplexType |e= quantifierExpression | T_LPAREN e= expression T_RPAREN ( ( T_POINT idn= T_IDENTIFIER )+ (res= accessExpression[e] )? |e= accessExpression[e] )? ) ( 'as' cid= T_IDENTIFIER )?
4260
                    {
4261
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:649:11: (unexpr= op_un )?
4262
                    int alt63=2;
4263
                    final int LA63_0 = input.LA(1);
4264

    
4265
                    if ( (LA63_0==T_ABS||LA63_0==T_CARD||LA63_0==T_DCONC||LA63_0==T_DINTER||LA63_0==T_DOM||(LA63_0 >= T_DUNION && LA63_0 <= T_ELEMS)||LA63_0==T_HEAD||LA63_0==T_INDS||LA63_0==T_LEN||LA63_0==T_MERGE||LA63_0==T_MINUS||LA63_0==T_NOT||LA63_0==T_RNG||LA63_0==T_TAIL) ) {
4266
                        alt63=1;
4267
                    }
4268
                    switch (alt63) {
4269
                        case 1 :
4270
                            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:649:11: unexpr= op_un
4271
                            {
4272
                            pushFollow(FOLLOW_op_un_in_atomExpression2918);
4273
                            unexpr=op_un();
4274

    
4275
                            state._fsp--;
4276

    
4277

    
4278
                            }
4279
                            break;
4280

    
4281
                    }
4282

    
4283

    
4284
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:649:19: (e= identifierExpression |e= constant |e= initializedComplexType |e= quantifierExpression | T_LPAREN e= expression T_RPAREN ( ( T_POINT idn= T_IDENTIFIER )+ (res= accessExpression[e] )? |e= accessExpression[e] )? )
4285
                    int alt67=5;
4286
                    alt67 = dfa67.predict(input);
4287
                    switch (alt67) {
4288
                        case 1 :
4289
                            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:650:8: e= identifierExpression
4290
                            {
4291
                            pushFollow(FOLLOW_identifierExpression_in_atomExpression2935);
4292
                            e=identifierExpression();
4293

    
4294
                            state._fsp--;
4295

    
4296

    
4297
                            }
4298
                            break;
4299
                        case 2 :
4300
                            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:651:8: e= constant
4301
                            {
4302
                            pushFollow(FOLLOW_constant_in_atomExpression2946);
4303
                            e=constant();
4304

    
4305
                            state._fsp--;
4306

    
4307

    
4308
                            }
4309
                            break;
4310
                        case 3 :
4311
                            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:652:8: e= initializedComplexType
4312
                            {
4313
                            pushFollow(FOLLOW_initializedComplexType_in_atomExpression2957);
4314
                            e=initializedComplexType();
4315

    
4316
                            state._fsp--;
4317

    
4318

    
4319
                            }
4320
                            break;
4321
                        case 4 :
4322
                            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:653:8: e= quantifierExpression
4323
                            {
4324
                            pushFollow(FOLLOW_quantifierExpression_in_atomExpression2969);
4325
                            e=quantifierExpression();
4326

    
4327
                            state._fsp--;
4328

    
4329

    
4330
                            }
4331
                            break;
4332
                        case 5 :
4333
                            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:654:8: T_LPAREN e= expression T_RPAREN ( ( T_POINT idn= T_IDENTIFIER )+ (res= accessExpression[e] )? |e= accessExpression[e] )?
4334
                            {
4335
                            match(input,T_LPAREN,FOLLOW_T_LPAREN_in_atomExpression2978);
4336

    
4337
                            pushFollow(FOLLOW_expression_in_atomExpression2982);
4338
                            e=expression();
4339

    
4340
                            state._fsp--;
4341

    
4342

    
4343
                            match(input,T_RPAREN,FOLLOW_T_RPAREN_in_atomExpression2984);
4344

    
4345
                            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:655:8: ( ( T_POINT idn= T_IDENTIFIER )+ (res= accessExpression[e] )? |e= accessExpression[e] )?
4346
                            int alt66=3;
4347
                            final int LA66_0 = input.LA(1);
4348

    
4349
                            if ( (LA66_0==T_POINT) ) {
4350
                                alt66=1;
4351
                            }
4352
                            else if ( ((LA66_0 >= T_LPAREN && LA66_0 <= T_LSQPAREN)) ) {
4353
                                alt66=2;
4354
                            }
4355
                            switch (alt66) {
4356
                                case 1 :
4357
                                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:656:6: ( T_POINT idn= T_IDENTIFIER )+ (res= accessExpression[e] )?
4358
                                    {
4359
                                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:656:6: ( T_POINT idn= T_IDENTIFIER )+
4360
                                    int cnt64=0;
4361
                                    loop64:
4362
                                    do {
4363
                                        int alt64=2;
4364
                                        final int LA64_0 = input.LA(1);
4365

    
4366
                                        if ( (LA64_0==T_POINT) ) {
4367
                                            alt64=1;
4368
                                        }
4369

    
4370

    
4371
                                        switch (alt64) {
4372
                                            case 1 :
4373
                                                // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:656:7: T_POINT idn= T_IDENTIFIER
4374
                                                {
4375
                                                match(input,T_POINT,FOLLOW_T_POINT_in_atomExpression3007);
4376

    
4377
                                                idn=(Token)match(input,T_IDENTIFIER,FOLLOW_T_IDENTIFIER_in_atomExpression3019);
4378

    
4379
                                                e = addIdentifierAccessExpression(e,idn);
4380

    
4381
                                                }
4382
                                                break;
4383

    
4384
                                            default :
4385
                                                if ( cnt64 >= 1 ) break loop64;
4386
                                                final EarlyExitException eee =
4387
                                                    new EarlyExitException(64, input);
4388
                                                throw eee;
4389
                                        }
4390
                                        cnt64++;
4391
                                    } while (true);
4392

    
4393

    
4394
                                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:659:8: (res= accessExpression[e] )?
4395
                                    int alt65=2;
4396
                                    final int LA65_0 = input.LA(1);
4397

    
4398
                                    if ( ((LA65_0 >= T_LPAREN && LA65_0 <= T_LSQPAREN)) ) {
4399
                                        alt65=1;
4400
                                    }
4401
                                    switch (alt65) {
4402
                                        case 1 :
4403
                                            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:659:9: res= accessExpression[e]
4404
                                            {
4405
                                            pushFollow(FOLLOW_accessExpression_in_atomExpression3043);
4406
                                            res=accessExpression(e);
4407

    
4408
                                            state._fsp--;
4409

    
4410

    
4411
                                            e=res;
4412

    
4413
                                            }
4414
                                            break;
4415

    
4416
                                    }
4417

    
4418

    
4419
                                    }
4420
                                    break;
4421
                                case 2 :
4422
                                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:661:6: e= accessExpression[e]
4423
                                    {
4424
                                    pushFollow(FOLLOW_accessExpression_in_atomExpression3063);
4425
                                    e=accessExpression(e);
4426

    
4427
                                    state._fsp--;
4428

    
4429

    
4430
                                    }
4431
                                    break;
4432

    
4433
                            }
4434

    
4435

    
4436
                            }
4437
                            break;
4438

    
4439
                    }
4440

    
4441

    
4442
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:663:5: ( 'as' cid= T_IDENTIFIER )?
4443
                    int alt68=2;
4444
                    final int LA68_0 = input.LA(1);
4445

    
4446
                    if ( (LA68_0==119) ) {
4447
                        alt68=1;
4448
                    }
4449
                    switch (alt68) {
4450
                        case 1 :
4451
                            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:663:6: 'as' cid= T_IDENTIFIER
4452
                            {
4453
                            match(input,119,FOLLOW_119_in_atomExpression3082);
4454

    
4455
                            cid=(Token)match(input,T_IDENTIFIER,FOLLOW_T_IDENTIFIER_in_atomExpression3086);
4456

    
4457
                            e=addCastExpression(e,cid);
4458

    
4459
                            }
4460
                            break;
4461

    
4462
                    }
4463

    
4464

    
4465
                    expr = addUnaryExpression(unexpr,e);
4466

    
4467
                    }
4468

    
4469

    
4470
                    }
4471
                    break;
4472
                case 2 :
4473
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:666:6: ie= T_IF ce= expression T_THEN te= expression T_ELSE ee= expression T_END
4474
                    {
4475
                    ie=(Token)match(input,T_IF,FOLLOW_T_IF_in_atomExpression3107);
4476

    
4477
                    pushFollow(FOLLOW_expression_in_atomExpression3111);
4478
                    ce=expression();
4479

    
4480
                    state._fsp--;
4481

    
4482

    
4483
                    match(input,T_THEN,FOLLOW_T_THEN_in_atomExpression3113);
4484

    
4485
                    pushFollow(FOLLOW_expression_in_atomExpression3117);
4486
                    te=expression();
4487

    
4488
                    state._fsp--;
4489

    
4490

    
4491
                    match(input,T_ELSE,FOLLOW_T_ELSE_in_atomExpression3119);
4492

    
4493
                    pushFollow(FOLLOW_expression_in_atomExpression3123);
4494
                    ee=expression();
4495

    
4496
                    state._fsp--;
4497

    
4498

    
4499
                    match(input,T_END,FOLLOW_T_END_in_atomExpression3125);
4500

    
4501
                    expr = createConditionalExpression(ce,te,ee,ie);
4502

    
4503
                    }
4504
                    break;
4505

    
4506
            }
4507
        }
4508
        catch (final RecognitionException re) {
4509
            reportError(re);
4510
            recover(input,re);
4511
        }
4512

    
4513
        finally {
4514
                // do for sure before leaving
4515
        }
4516
        return expr;
4517
    }
4518
    // $ANTLR end "atomExpression"
4519

    
4520

    
4521

    
4522
    // $ANTLR start "quantifierExpression"
4523
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:671:1: quantifierExpression returns [Quantifier result] : t= ( T_FORALL | T_EXISTS ) (id= T_IDENTIFIER ( T_COLON id_type= simpleType ) ( T_COMMA id2= T_IDENTIFIER ( T_COLON id_type2= simpleType ) )* ) T_COLON T_LPAREN e= expression T_RPAREN ;
4524
    public final Quantifier quantifierExpression() throws RecognitionException {
4525
        Quantifier result = null;
4526

    
4527

    
4528
        Token t=null;
4529
        Token id=null;
4530
        Token id2=null;
4531
        Type id_type =null;
4532

    
4533
        Type id_type2 =null;
4534

    
4535
        Expression e =null;
4536

    
4537

    
4538

    
4539
                        result = null;
4540

    
4541
        try {
4542
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:676:2: (t= ( T_FORALL | T_EXISTS ) (id= T_IDENTIFIER ( T_COLON id_type= simpleType ) ( T_COMMA id2= T_IDENTIFIER ( T_COLON id_type2= simpleType ) )* ) T_COLON T_LPAREN e= expression T_RPAREN )
4543
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:676:5: t= ( T_FORALL | T_EXISTS ) (id= T_IDENTIFIER ( T_COLON id_type= simpleType ) ( T_COMMA id2= T_IDENTIFIER ( T_COLON id_type2= simpleType ) )* ) T_COLON T_LPAREN e= expression T_RPAREN
4544
            {
4545
            t=input.LT(1);
4546

    
4547
            if ( input.LA(1)==T_EXISTS||input.LA(1)==T_FORALL ) {
4548
                input.consume();
4549
                state.errorRecovery=false;
4550
            }
4551
            else {
4552
                final MismatchedSetException mse = new MismatchedSetException(null,input);
4553
                throw mse;
4554
            }
4555

    
4556

    
4557
            result = createQuantifierExpression(t);
4558

    
4559
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:678:3: (id= T_IDENTIFIER ( T_COLON id_type= simpleType ) ( T_COMMA id2= T_IDENTIFIER ( T_COLON id_type2= simpleType ) )* )
4560
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:678:4: id= T_IDENTIFIER ( T_COLON id_type= simpleType ) ( T_COMMA id2= T_IDENTIFIER ( T_COLON id_type2= simpleType ) )*
4561
            {
4562
            id=(Token)match(input,T_IDENTIFIER,FOLLOW_T_IDENTIFIER_in_quantifierExpression3174);
4563

    
4564
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:678:20: ( T_COLON id_type= simpleType )
4565
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:678:21: T_COLON id_type= simpleType
4566
            {
4567
            match(input,T_COLON,FOLLOW_T_COLON_in_quantifierExpression3177);
4568

    
4569
            pushFollow(FOLLOW_simpleType_in_quantifierExpression3181);
4570
            id_type=simpleType();
4571

    
4572
            state._fsp--;
4573

    
4574

    
4575
            addBoundVarToQuantifierExpression(result,id,id_type);
4576

    
4577
            }
4578

    
4579

    
4580
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:679:5: ( T_COMMA id2= T_IDENTIFIER ( T_COLON id_type2= simpleType ) )*
4581
            loop70:
4582
            do {
4583
                int alt70=2;
4584
                final int LA70_0 = input.LA(1);
4585

    
4586
                if ( (LA70_0==T_COMMA) ) {
4587
                    alt70=1;
4588
                }
4589

    
4590

    
4591
                switch (alt70) {
4592
                    case 1 :
4593
                        // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:679:6: T_COMMA id2= T_IDENTIFIER ( T_COLON id_type2= simpleType )
4594
                        {
4595
                        match(input,T_COMMA,FOLLOW_T_COMMA_in_quantifierExpression3192);
4596

    
4597
                        id2=(Token)match(input,T_IDENTIFIER,FOLLOW_T_IDENTIFIER_in_quantifierExpression3196);
4598

    
4599
                        // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:679:31: ( T_COLON id_type2= simpleType )
4600
                        // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:679:32: T_COLON id_type2= simpleType
4601
                        {
4602
                        match(input,T_COLON,FOLLOW_T_COLON_in_quantifierExpression3199);
4603

    
4604
                        pushFollow(FOLLOW_simpleType_in_quantifierExpression3203);
4605
                        id_type2=simpleType();
4606

    
4607
                        state._fsp--;
4608

    
4609

    
4610
                        }
4611

    
4612

    
4613
                        addBoundVarToQuantifierExpression(result,id2,id_type2);
4614

    
4615
                        }
4616
                        break;
4617

    
4618
                    default :
4619
                        break loop70;
4620
                }
4621
            } while (true);
4622

    
4623

    
4624
            }
4625

    
4626

    
4627
            match(input,T_COLON,FOLLOW_T_COLON_in_quantifierExpression3213);
4628

    
4629
            match(input,T_LPAREN,FOLLOW_T_LPAREN_in_quantifierExpression3215);
4630

    
4631
            pushFollow(FOLLOW_expression_in_quantifierExpression3219);
4632
            e=expression();
4633

    
4634
            state._fsp--;
4635

    
4636

    
4637
            match(input,T_RPAREN,FOLLOW_T_RPAREN_in_quantifierExpression3221);
4638

    
4639
            addExpressionToQuantifier(result,e);
4640

    
4641
            }
4642

    
4643
        }
4644
        catch (final RecognitionException re) {
4645
            reportError(re);
4646
            recover(input,re);
4647
        }
4648

    
4649
        finally {
4650
                // do for sure before leaving
4651
            removeBoundVarsFromResolveStack(result);
4652
        }
4653
        return result;
4654
    }
4655
    // $ANTLR end "quantifierExpression"
4656

    
4657

    
4658

    
4659
    // $ANTLR start "constant"
4660
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:686:1: constant returns [LeafExpression result] : ( T_TRUE | T_FALSE | T_NIL | T_SELF |t_fl= T_FLOATNUMBER |t_in= T_INTNUMBER |t_l= T_STRINGLITERAL );
4661
    public final LeafExpression constant() throws RecognitionException {
4662
        LeafExpression result = null;
4663

    
4664

    
4665
        Token t_fl=null;
4666
        Token t_in=null;
4667
        Token t_l=null;
4668

    
4669

    
4670
                        result = null;
4671

    
4672
        try {
4673
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:691:2: ( T_TRUE | T_FALSE | T_NIL | T_SELF |t_fl= T_FLOATNUMBER |t_in= T_INTNUMBER |t_l= T_STRINGLITERAL )
4674
            int alt71=7;
4675
            switch ( input.LA(1) ) {
4676
            case T_TRUE:
4677
                {
4678
                alt71=1;
4679
                }
4680
                break;
4681
            case T_FALSE:
4682
                {
4683
                alt71=2;
4684
                }
4685
                break;
4686
            case T_NIL:
4687
                {
4688
                alt71=3;
4689
                }
4690
                break;
4691
            case T_SELF:
4692
                {
4693
                alt71=4;
4694
                }
4695
                break;
4696
            case T_FLOATNUMBER:
4697
                {
4698
                alt71=5;
4699
                }
4700
                break;
4701
            case T_INTNUMBER:
4702
                {
4703
                alt71=6;
4704
                }
4705
                break;
4706
            case T_STRINGLITERAL:
4707
                {
4708
                alt71=7;
4709
                }
4710
                break;
4711
            default:
4712
                final NoViableAltException nvae =
4713
                    new NoViableAltException("", 71, 0, input);
4714

    
4715
                throw nvae;
4716

    
4717
            }
4718

    
4719
            switch (alt71) {
4720
                case 1 :
4721
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:691:5: T_TRUE
4722
                    {
4723
                    match(input,T_TRUE,FOLLOW_T_TRUE_in_constant3255);
4724

    
4725
                    result = createBoolConstant(true);
4726

    
4727
                    }
4728
                    break;
4729
                case 2 :
4730
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:692:4: T_FALSE
4731
                    {
4732
                    match(input,T_FALSE,FOLLOW_T_FALSE_in_constant3263);
4733

    
4734
                    result = createBoolConstant(false);
4735

    
4736
                    }
4737
                    break;
4738
                case 3 :
4739
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:693:4: T_NIL
4740
                    {
4741
                    match(input,T_NIL,FOLLOW_T_NIL_in_constant3270);
4742

    
4743
                    result = createNullPointerConstant();
4744

    
4745
                    }
4746
                    break;
4747
                case 4 :
4748
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:694:4: T_SELF
4749
                    {
4750
                    match(input,T_SELF,FOLLOW_T_SELF_in_constant3278);
4751

    
4752
                    result = createSelfPointer();
4753

    
4754
                    }
4755
                    break;
4756
                case 5 :
4757
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:695:5: t_fl= T_FLOATNUMBER
4758
                    {
4759
                    t_fl=(Token)match(input,T_FLOATNUMBER,FOLLOW_T_FLOATNUMBER_in_constant3289);
4760

    
4761
                    result = createFloatConstant(t_fl);
4762

    
4763
                    }
4764
                    break;
4765
                case 6 :
4766
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:696:4: t_in= T_INTNUMBER
4767
                    {
4768
                    t_in=(Token)match(input,T_INTNUMBER,FOLLOW_T_INTNUMBER_in_constant3298);
4769

    
4770
                    result = createIntConstant(t_in);
4771

    
4772
                    }
4773
                    break;
4774
                case 7 :
4775
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:697:4: t_l= T_STRINGLITERAL
4776
                    {
4777
                    t_l=(Token)match(input,T_STRINGLITERAL,FOLLOW_T_STRINGLITERAL_in_constant3307);
4778

    
4779
                    result = createStringConstant(t_l);
4780

    
4781
                    }
4782
                    break;
4783

    
4784
            }
4785
        }
4786
        catch (final RecognitionException re) {
4787
            reportError(re);
4788
            recover(input,re);
4789
        }
4790

    
4791
        finally {
4792
                // do for sure before leaving
4793
        }
4794
        return result;
4795
    }
4796
    // $ANTLR end "constant"
4797

    
4798

    
4799

    
4800
    // $ANTLR start "initializedComplexType"
4801
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:700:1: initializedComplexType returns [Expression result] : (res= initializedListType |res= initializedSetType | T_NEW T_LPAREN anid= T_IDENTIFIER ( T_COMMA aname= T_STRINGLITERAL T_RPAREN | T_RPAREN ) );
4802
    public final Expression initializedComplexType() throws RecognitionException {
4803
        Expression result = null;
4804

    
4805

    
4806
        Token anid=null;
4807
        Token aname=null;
4808
        Expression res =null;
4809

    
4810

    
4811

    
4812
                        result = null;
4813

    
4814
        try {
4815
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:705:2: (res= initializedListType |res= initializedSetType | T_NEW T_LPAREN anid= T_IDENTIFIER ( T_COMMA aname= T_STRINGLITERAL T_RPAREN | T_RPAREN ) )
4816
            int alt73=3;
4817
            switch ( input.LA(1) ) {
4818
            case T_LSQPAREN:
4819
                {
4820
                alt73=1;
4821
                }
4822
                break;
4823
            case T_CBRL:
4824
                {
4825
                alt73=2;
4826
                }
4827
                break;
4828
            case T_NEW:
4829
                {
4830
                alt73=3;
4831
                }
4832
                break;
4833
            default:
4834
                final NoViableAltException nvae =
4835
                    new NoViableAltException("", 73, 0, input);
4836

    
4837
                throw nvae;
4838

    
4839
            }
4840

    
4841
            switch (alt73) {
4842
                case 1 :
4843
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:705:4: res= initializedListType
4844
                    {
4845
                    pushFollow(FOLLOW_initializedListType_in_initializedComplexType3334);
4846
                    res=initializedListType();
4847

    
4848
                    state._fsp--;
4849

    
4850

    
4851
                    result = res;
4852

    
4853
                    }
4854
                    break;
4855
                case 2 :
4856
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:706:4: res= initializedSetType
4857
                    {
4858
                    pushFollow(FOLLOW_initializedSetType_in_initializedComplexType3343);
4859
                    res=initializedSetType();
4860

    
4861
                    state._fsp--;
4862

    
4863

    
4864
                    result = res;
4865

    
4866
                    }
4867
                    break;
4868
                case 3 :
4869
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:707:5: T_NEW T_LPAREN anid= T_IDENTIFIER ( T_COMMA aname= T_STRINGLITERAL T_RPAREN | T_RPAREN )
4870
                    {
4871
                    match(input,T_NEW,FOLLOW_T_NEW_in_initializedComplexType3351);
4872

    
4873
                    match(input,T_LPAREN,FOLLOW_T_LPAREN_in_initializedComplexType3353);
4874

    
4875
                    anid=(Token)match(input,T_IDENTIFIER,FOLLOW_T_IDENTIFIER_in_initializedComplexType3357);
4876

    
4877
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:708:4: ( T_COMMA aname= T_STRINGLITERAL T_RPAREN | T_RPAREN )
4878
                    int alt72=2;
4879
                    final int LA72_0 = input.LA(1);
4880

    
4881
                    if ( (LA72_0==T_COMMA) ) {
4882
                        alt72=1;
4883
                    }
4884
                    else if ( (LA72_0==T_RPAREN) ) {
4885
                        alt72=2;
4886
                    }
4887
                    else {
4888
                        final NoViableAltException nvae =
4889
                            new NoViableAltException("", 72, 0, input);
4890

    
4891
                        throw nvae;
4892

    
4893
                    }
4894
                    switch (alt72) {
4895
                        case 1 :
4896
                            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:709:5: T_COMMA aname= T_STRINGLITERAL T_RPAREN
4897
                            {
4898
                            match(input,T_COMMA,FOLLOW_T_COMMA_in_initializedComplexType3369);
4899

    
4900
                            aname=(Token)match(input,T_STRINGLITERAL,FOLLOW_T_STRINGLITERAL_in_initializedComplexType3374);
4901

    
4902
                            match(input,T_RPAREN,FOLLOW_T_RPAREN_in_initializedComplexType3376);
4903

    
4904
                            result = createNamedObject(anid, aname);
4905

    
4906
                            }
4907
                            break;
4908
                        case 2 :
4909
                            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:710:6: T_RPAREN
4910
                            {
4911
                            match(input,T_RPAREN,FOLLOW_T_RPAREN_in_initializedComplexType3385);
4912

    
4913
                            result = createObject(anid);
4914

    
4915
                            }
4916
                            break;
4917

    
4918
                    }
4919

    
4920

    
4921
                    }
4922
                    break;
4923

    
4924
            }
4925
        }
4926
        catch (final RecognitionException re) {
4927
            reportError(re);
4928
            recover(input,re);
4929
        }
4930

    
4931
        finally {
4932
                // do for sure before leaving
4933
        }
4934
        return result;
4935
    }
4936
    // $ANTLR end "initializedComplexType"
4937

    
4938

    
4939

    
4940
    // $ANTLR start "initializedListType"
4941
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:714:1: initializedListType returns [ListConstructor result] : T_LSQPAREN e= expression ( ( T_COMMA e2= expression )+ | listComprehension[result] )? T_RSQPAREN ;
4942
    public final ListConstructor initializedListType() throws RecognitionException {
4943
        ListConstructor result = null;
4944

    
4945

    
4946
        Expression e =null;
4947

    
4948
        Expression e2 =null;
4949

    
4950

    
4951

    
4952
                        result = createInitializedList();
4953
                        pushListVarsOnResolveStack(result); // need this here for list comprehension
4954

    
4955
        try {
4956
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:720:2: ( T_LSQPAREN e= expression ( ( T_COMMA e2= expression )+ | listComprehension[result] )? T_RSQPAREN )
4957
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:720:4: T_LSQPAREN e= expression ( ( T_COMMA e2= expression )+ | listComprehension[result] )? T_RSQPAREN
4958
            {
4959
            match(input,T_LSQPAREN,FOLLOW_T_LSQPAREN_in_initializedListType3416);
4960

    
4961
            pushFollow(FOLLOW_expression_in_initializedListType3420);
4962
            e=expression();
4963

    
4964
            state._fsp--;
4965

    
4966

    
4967
            addListElement(result,e);
4968

    
4969
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:720:56: ( ( T_COMMA e2= expression )+ | listComprehension[result] )?
4970
            int alt75=3;
4971
            final int LA75_0 = input.LA(1);
4972

    
4973
            if ( (LA75_0==T_COMMA) ) {
4974
                alt75=1;
4975
            }
4976
            else if ( (LA75_0==T_BAR) ) {
4977
                alt75=2;
4978
            }
4979
            switch (alt75) {
4980
                case 1 :
4981
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:721:4: ( T_COMMA e2= expression )+
4982
                    {
4983
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:721:4: ( T_COMMA e2= expression )+
4984
                    int cnt74=0;
4985
                    loop74:
4986
                    do {
4987
                        int alt74=2;
4988
                        final int LA74_0 = input.LA(1);
4989

    
4990
                        if ( (LA74_0==T_COMMA) ) {
4991
                            alt74=1;
4992
                        }
4993

    
4994

    
4995
                        switch (alt74) {
4996
                            case 1 :
4997
                                // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:721:5: T_COMMA e2= expression
4998
                                {
4999
                                match(input,T_COMMA,FOLLOW_T_COMMA_in_initializedListType3431);
5000

    
5001
                                pushFollow(FOLLOW_expression_in_initializedListType3435);
5002
                                e2=expression();
5003

    
5004
                                state._fsp--;
5005

    
5006

    
5007
                                addListElement(result,e2);
5008

    
5009
                                }
5010
                                break;
5011

    
5012
                            default :
5013
                                if ( cnt74 >= 1 ) break loop74;
5014
                                final EarlyExitException eee =
5015
                                    new EarlyExitException(74, input);
5016
                                throw eee;
5017
                        }
5018
                        cnt74++;
5019
                    } while (true);
5020

    
5021

    
5022
                    }
5023
                    break;
5024
                case 2 :
5025
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:722:6: listComprehension[result]
5026
                    {
5027
                    pushFollow(FOLLOW_listComprehension_in_initializedListType3447);
5028
                    listComprehension(result);
5029

    
5030
                    state._fsp--;
5031

    
5032

    
5033
                    }
5034
                    break;
5035

    
5036
            }
5037

    
5038

    
5039
            match(input,T_RSQPAREN,FOLLOW_T_RSQPAREN_in_initializedListType3455);
5040

    
5041
            }
5042

    
5043
        }
5044
        catch (final RecognitionException re) {
5045
            reportError(re);
5046
            recover(input,re);
5047
        }
5048

    
5049
        finally {
5050
                // do for sure before leaving
5051
            popListVarsFromResolveStack(result);
5052
        }
5053
        return result;
5054
    }
5055
    // $ANTLR end "initializedListType"
5056

    
5057

    
5058

    
5059
    // $ANTLR start "listComprehension"
5060
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:728:1: listComprehension[ListConstructor result] : T_BAR T_VAR id= T_IDENTIFIER T_COLON t1= complexType ( T_SEMICOLON id2= T_IDENTIFIER t2= complexType )* ( '&' e= expression )? ;
5061
    public final void listComprehension(ListConstructor result) throws RecognitionException {
5062
        Token id=null;
5063
        Token id2=null;
5064
        Type t1 =null;
5065

    
5066
        Type t2 =null;
5067

    
5068
        Expression e =null;
5069

    
5070

    
5071

    
5072
                        result.SetHasComprehension(true);
5073

    
5074
        try {
5075
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:732:2: ( T_BAR T_VAR id= T_IDENTIFIER T_COLON t1= complexType ( T_SEMICOLON id2= T_IDENTIFIER t2= complexType )* ( '&' e= expression )? )
5076
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:733:3: T_BAR T_VAR id= T_IDENTIFIER T_COLON t1= complexType ( T_SEMICOLON id2= T_IDENTIFIER t2= complexType )* ( '&' e= expression )?
5077
            {
5078
            match(input,T_BAR,FOLLOW_T_BAR_in_listComprehension3486);
5079

    
5080
            match(input,T_VAR,FOLLOW_T_VAR_in_listComprehension3488);
5081

    
5082
            id=(Token)match(input,T_IDENTIFIER,FOLLOW_T_IDENTIFIER_in_listComprehension3494);
5083

    
5084
            match(input,T_COLON,FOLLOW_T_COLON_in_listComprehension3497);
5085

    
5086
            pushFollow(FOLLOW_complexType_in_listComprehension3501);
5087
            t1=complexType();
5088

    
5089
            state._fsp--;
5090

    
5091

    
5092
            addListComprVar(result,id,t1);
5093

    
5094
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:735:4: ( T_SEMICOLON id2= T_IDENTIFIER t2= complexType )*
5095
            loop76:
5096
            do {
5097
                int alt76=2;
5098
                final int LA76_0 = input.LA(1);
5099

    
5100
                if ( (LA76_0==T_SEMICOLON) ) {
5101
                    alt76=1;
5102
                }
5103

    
5104

    
5105
                switch (alt76) {
5106
                    case 1 :
5107
                        // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:735:5: T_SEMICOLON id2= T_IDENTIFIER t2= complexType
5108
                        {
5109
                        match(input,T_SEMICOLON,FOLLOW_T_SEMICOLON_in_listComprehension3510);
5110

    
5111
                        id2=(Token)match(input,T_IDENTIFIER,FOLLOW_T_IDENTIFIER_in_listComprehension3514);
5112

    
5113
                        pushFollow(FOLLOW_complexType_in_listComprehension3519);
5114
                        t2=complexType();
5115

    
5116
                        state._fsp--;
5117

    
5118

    
5119
                        addListComprVar(result,id2,t2);
5120

    
5121
                        }
5122
                        break;
5123

    
5124
                    default :
5125
                        break loop76;
5126
                }
5127
            } while (true);
5128

    
5129

    
5130
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:736:3: ( '&' e= expression )?
5131
            int alt77=2;
5132
            final int LA77_0 = input.LA(1);
5133

    
5134
            if ( (LA77_0==116) ) {
5135
                alt77=1;
5136
            }
5137
            switch (alt77) {
5138
                case 1 :
5139
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:736:4: '&' e= expression
5140
                    {
5141
                    match(input,116,FOLLOW_116_in_listComprehension3529);
5142

    
5143
                    pushFollow(FOLLOW_expression_in_listComprehension3535);
5144
                    e=expression();
5145

    
5146
                    state._fsp--;
5147

    
5148

    
5149
                    addListComprExpr(result,e);
5150

    
5151
                    }
5152
                    break;
5153

    
5154
            }
5155

    
5156

    
5157
            }
5158

    
5159
        }
5160
        catch (final RecognitionException re) {
5161
            reportError(re);
5162
            recover(input,re);
5163
        }
5164

    
5165
        finally {
5166
                // do for sure before leaving
5167
        }
5168
        return ;
5169
    }
5170
    // $ANTLR end "listComprehension"
5171

    
5172

    
5173

    
5174
    // $ANTLR start "initializedSetType"
5175
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:740:1: initializedSetType returns [Expression result] : ( T_CBRL T_MAPS T_CBRR |res= initializedSet );
5176
    public final Expression initializedSetType() throws RecognitionException {
5177
        Expression result = null;
5178

    
5179

    
5180
        Expression res =null;
5181

    
5182

    
5183

    
5184
                        result = null;
5185

    
5186
        try {
5187
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:745:2: ( T_CBRL T_MAPS T_CBRR |res= initializedSet )
5188
            int alt78=2;
5189
            final int LA78_0 = input.LA(1);
5190

    
5191
            if ( (LA78_0==T_CBRL) ) {
5192
                final int LA78_1 = input.LA(2);
5193

    
5194
                if ( (LA78_1==T_MAPS) ) {
5195
                    alt78=1;
5196
                }
5197
                else if ( (LA78_1==T_ABS||(LA78_1 >= T_CARD && LA78_1 <= T_CBRL)||LA78_1==T_DCONC||LA78_1==T_DINTER||LA78_1==T_DOM||(LA78_1 >= T_DUNION && LA78_1 <= T_ELEMS)||(LA78_1 >= T_EXISTS && LA78_1 <= T_FALSE)||LA78_1==T_FLOATNUMBER||LA78_1==T_FORALL||(LA78_1 >= T_HEAD && LA78_1 <= T_IDENTIFIER)||LA78_1==T_IF||LA78_1==T_INDS||LA78_1==T_INTNUMBER||LA78_1==T_LEN||(LA78_1 >= T_LPAREN && LA78_1 <= T_LSQPAREN)||LA78_1==T_MERGE||LA78_1==T_MINUS||(LA78_1 >= T_NEW && LA78_1 <= T_NIL)||LA78_1==T_NOT||LA78_1==T_RNG||LA78_1==T_SELF||LA78_1==T_STRINGLITERAL||LA78_1==T_TAIL||LA78_1==T_TRUE) ) {
5198
                    alt78=2;
5199
                }
5200
                else {
5201
                    final NoViableAltException nvae =
5202
                        new NoViableAltException("", 78, 1, input);
5203

    
5204
                    throw nvae;
5205

    
5206
                }
5207
            }
5208
            else {
5209
                final NoViableAltException nvae =
5210
                    new NoViableAltException("", 78, 0, input);
5211

    
5212
                throw nvae;
5213

    
5214
            }
5215
            switch (alt78) {
5216
                case 1 :
5217
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:745:4: T_CBRL T_MAPS T_CBRR
5218
                    {
5219
                    match(input,T_CBRL,FOLLOW_T_CBRL_in_initializedSetType3561);
5220

    
5221
                    match(input,T_MAPS,FOLLOW_T_MAPS_in_initializedSetType3563);
5222

    
5223
                    match(input,T_CBRR,FOLLOW_T_CBRR_in_initializedSetType3565);
5224

    
5225
                    result = createEmptyMap();
5226

    
5227
                    }
5228
                    break;
5229
                case 2 :
5230
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:746:4: res= initializedSet
5231
                    {
5232
                    pushFollow(FOLLOW_initializedSet_in_initializedSetType3576);
5233
                    res=initializedSet();
5234

    
5235
                    state._fsp--;
5236

    
5237

    
5238
                    result = res;
5239

    
5240
                    }
5241
                    break;
5242

    
5243
            }
5244
        }
5245
        catch (final RecognitionException re) {
5246
            reportError(re);
5247
            recover(input,re);
5248
        }
5249

    
5250
        finally {
5251
                // do for sure before leaving
5252
        }
5253
        return result;
5254
    }
5255
    // $ANTLR end "initializedSetType"
5256

    
5257

    
5258

    
5259
    // $ANTLR start "initializedSet"
5260
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:749:1: initializedSet returns [Expression result] : T_CBRL e1= expression ( ( T_COMMA e2= expression )* |m= map[result, e1] | setComprehension[(SetConstructor)result] ) T_CBRR ;
5261
    public final Expression initializedSet() throws RecognitionException {
5262
        Expression result = null;
5263

    
5264

    
5265
        Expression e1 =null;
5266

    
5267
        Expression e2 =null;
5268

    
5269
        Expression m =null;
5270

    
5271

    
5272

    
5273
                        final SetConstructor theset = createSet();
5274
                        pushSetVarsOnResolveStack(theset); // need this here for set comprehension
5275
                        result = theset;
5276

    
5277
        try {
5278
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:756:2: ( T_CBRL e1= expression ( ( T_COMMA e2= expression )* |m= map[result, e1] | setComprehension[(SetConstructor)result] ) T_CBRR )
5279
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:756:4: T_CBRL e1= expression ( ( T_COMMA e2= expression )* |m= map[result, e1] | setComprehension[(SetConstructor)result] ) T_CBRR
5280
            {
5281
            match(input,T_CBRL,FOLLOW_T_CBRL_in_initializedSet3602);
5282

    
5283
            pushFollow(FOLLOW_expression_in_initializedSet3606);
5284
            e1=expression();
5285

    
5286
            state._fsp--;
5287

    
5288

    
5289
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:757:10: ( ( T_COMMA e2= expression )* |m= map[result, e1] | setComprehension[(SetConstructor)result] )
5290
            int alt80=3;
5291
            switch ( input.LA(1) ) {
5292
            case T_CBRR:
5293
            case T_COMMA:
5294
                {
5295
                alt80=1;
5296
                }
5297
                break;
5298
            case T_MAPS:
5299
                {
5300
                alt80=2;
5301
                }
5302
                break;
5303
            case T_BAR:
5304
                {
5305
                alt80=3;
5306
                }
5307
                break;
5308
            default:
5309
                final NoViableAltException nvae =
5310
                    new NoViableAltException("", 80, 0, input);
5311

    
5312
                throw nvae;
5313

    
5314
            }
5315

    
5316
            switch (alt80) {
5317
                case 1 :
5318
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:758:4: ( T_COMMA e2= expression )*
5319
                    {
5320
                    addToSet(result,e1);
5321

    
5322
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:759:4: ( T_COMMA e2= expression )*
5323
                    loop79:
5324
                    do {
5325
                        int alt79=2;
5326
                        final int LA79_0 = input.LA(1);
5327

    
5328
                        if ( (LA79_0==T_COMMA) ) {
5329
                            alt79=1;
5330
                        }
5331

    
5332

    
5333
                        switch (alt79) {
5334
                            case 1 :
5335
                                // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:759:5: T_COMMA e2= expression
5336
                                {
5337
                                match(input,T_COMMA,FOLLOW_T_COMMA_in_initializedSet3636);
5338

    
5339
                                pushFollow(FOLLOW_expression_in_initializedSet3640);
5340
                                e2=expression();
5341

    
5342
                                state._fsp--;
5343

    
5344

    
5345
                                addToSet(result,e2);
5346

    
5347
                                }
5348
                                break;
5349

    
5350
                            default :
5351
                                break loop79;
5352
                        }
5353
                    } while (true);
5354

    
5355

    
5356
                    }
5357
                    break;
5358
                case 2 :
5359
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:760:6: m= map[result, e1]
5360
                    {
5361
                    pushFollow(FOLLOW_map_in_initializedSet3658);
5362
                    m=map(result, e1);
5363

    
5364
                    state._fsp--;
5365

    
5366

    
5367
                    result = m;
5368

    
5369
                    }
5370
                    break;
5371
                case 3 :
5372
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:761:5: setComprehension[(SetConstructor)result]
5373
                    {
5374
                    addToSet(result,e1);
5375

    
5376
                    pushFollow(FOLLOW_setComprehension_in_initializedSet3671);
5377
                    setComprehension((SetConstructor)result);
5378

    
5379
                    state._fsp--;
5380

    
5381

    
5382
                    }
5383
                    break;
5384

    
5385
            }
5386

    
5387

    
5388
            match(input,T_CBRR,FOLLOW_T_CBRR_in_initializedSet3681);
5389

    
5390
            }
5391

    
5392
        }
5393
        catch (final RecognitionException re) {
5394
            reportError(re);
5395
            recover(input,re);
5396
        }
5397

    
5398
        finally {
5399
                // do for sure before leaving
5400
            popSetVarsFromResolveStack(theset);
5401
        }
5402
        return result;
5403
    }
5404
    // $ANTLR end "initializedSet"
5405

    
5406

    
5407

    
5408
    // $ANTLR start "map"
5409
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:767:1: map[Expression _map, Expression e1] returns [Expression result] : am= T_MAPS e2= expression ( T_COMMA e3= expression T_MAPS e4= expression )* ;
5410
    public final Expression map(Expression _map, Expression e1) throws RecognitionException {
5411
        Expression result = null;
5412

    
5413

    
5414
        Token am=null;
5415
        Expression e2 =null;
5416

    
5417
        Expression e3 =null;
5418

    
5419
        Expression e4 =null;
5420

    
5421

    
5422

    
5423
                        result = null;
5424

    
5425
        try {
5426
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:772:2: (am= T_MAPS e2= expression ( T_COMMA e3= expression T_MAPS e4= expression )* )
5427
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:772:4: am= T_MAPS e2= expression ( T_COMMA e3= expression T_MAPS e4= expression )*
5428
            {
5429
            am=(Token)match(input,T_MAPS,FOLLOW_T_MAPS_in_map3717);
5430

    
5431
            pushFollow(FOLLOW_expression_in_map3721);
5432
            e2=expression();
5433

    
5434
            state._fsp--;
5435

    
5436

    
5437
            result = createMap(e1,e2,am);
5438

    
5439
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:772:63: ( T_COMMA e3= expression T_MAPS e4= expression )*
5440
            loop81:
5441
            do {
5442
                int alt81=2;
5443
                final int LA81_0 = input.LA(1);
5444

    
5445
                if ( (LA81_0==T_COMMA) ) {
5446
                    alt81=1;
5447
                }
5448

    
5449

    
5450
                switch (alt81) {
5451
                    case 1 :
5452
                        // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:772:64: T_COMMA e3= expression T_MAPS e4= expression
5453
                        {
5454
                        match(input,T_COMMA,FOLLOW_T_COMMA_in_map3729);
5455

    
5456
                        pushFollow(FOLLOW_expression_in_map3733);
5457
                        e3=expression();
5458

    
5459
                        state._fsp--;
5460

    
5461

    
5462
                        match(input,T_MAPS,FOLLOW_T_MAPS_in_map3735);
5463

    
5464
                        pushFollow(FOLLOW_expression_in_map3739);
5465
                        e4=expression();
5466

    
5467
                        state._fsp--;
5468

    
5469

    
5470
                        addToMap(result,e3,e4);
5471

    
5472
                        }
5473
                        break;
5474

    
5475
                    default :
5476
                        break loop81;
5477
                }
5478
            } while (true);
5479

    
5480

    
5481
            }
5482

    
5483
        }
5484
        catch (final RecognitionException re) {
5485
            reportError(re);
5486
            recover(input,re);
5487
        }
5488

    
5489
        finally {
5490
                // do for sure before leaving
5491
        }
5492
        return result;
5493
    }
5494
    // $ANTLR end "map"
5495

    
5496

    
5497

    
5498
    // $ANTLR start "setComprehension"
5499
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:775:1: setComprehension[SetConstructor _set] : T_BAR T_VAR id1= T_IDENTIFIER T_COLON t1= complexType ( T_SEMICOLON id2= T_IDENTIFIER T_COLON t2= complexType )* ( '&' epx= expression )? ;
5500
    public final void setComprehension(SetConstructor _set) throws RecognitionException {
5501
        Token id1=null;
5502
        Token id2=null;
5503
        Type t1 =null;
5504

    
5505
        Type t2 =null;
5506

    
5507
        Expression epx =null;
5508

    
5509

    
5510

    
5511
                        _set.SetHasComprehension(true);
5512

    
5513
        try {
5514
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:779:2: ( T_BAR T_VAR id1= T_IDENTIFIER T_COLON t1= complexType ( T_SEMICOLON id2= T_IDENTIFIER T_COLON t2= complexType )* ( '&' epx= expression )? )
5515
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:779:4: T_BAR T_VAR id1= T_IDENTIFIER T_COLON t1= complexType ( T_SEMICOLON id2= T_IDENTIFIER T_COLON t2= complexType )* ( '&' epx= expression )?
5516
            {
5517
            match(input,T_BAR,FOLLOW_T_BAR_in_setComprehension3761);
5518

    
5519
            match(input,T_VAR,FOLLOW_T_VAR_in_setComprehension3763);
5520

    
5521
            id1=(Token)match(input,T_IDENTIFIER,FOLLOW_T_IDENTIFIER_in_setComprehension3767);
5522

    
5523
            match(input,T_COLON,FOLLOW_T_COLON_in_setComprehension3770);
5524

    
5525
            pushFollow(FOLLOW_complexType_in_setComprehension3774);
5526
            t1=complexType();
5527

    
5528
            state._fsp--;
5529

    
5530

    
5531
             addSetComprVar(_set, id1, t1);
5532

    
5533
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:781:3: ( T_SEMICOLON id2= T_IDENTIFIER T_COLON t2= complexType )*
5534
            loop82:
5535
            do {
5536
                int alt82=2;
5537
                final int LA82_0 = input.LA(1);
5538

    
5539
                if ( (LA82_0==T_SEMICOLON) ) {
5540
                    alt82=1;
5541
                }
5542

    
5543

    
5544
                switch (alt82) {
5545
                    case 1 :
5546
                        // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:781:4: T_SEMICOLON id2= T_IDENTIFIER T_COLON t2= complexType
5547
                        {
5548
                        match(input,T_SEMICOLON,FOLLOW_T_SEMICOLON_in_setComprehension3784);
5549

    
5550
                        id2=(Token)match(input,T_IDENTIFIER,FOLLOW_T_IDENTIFIER_in_setComprehension3788);
5551

    
5552
                        match(input,T_COLON,FOLLOW_T_COLON_in_setComprehension3790);
5553

    
5554
                        pushFollow(FOLLOW_complexType_in_setComprehension3794);
5555
                        t2=complexType();
5556

    
5557
                        state._fsp--;
5558

    
5559

    
5560
                         addSetComprVar(_set, id2, t2);
5561

    
5562
                        }
5563
                        break;
5564

    
5565
                    default :
5566
                        break loop82;
5567
                }
5568
            } while (true);
5569

    
5570

    
5571
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:783:3: ( '&' epx= expression )?
5572
            int alt83=2;
5573
            final int LA83_0 = input.LA(1);
5574

    
5575
            if ( (LA83_0==116) ) {
5576
                alt83=1;
5577
            }
5578
            switch (alt83) {
5579
                case 1 :
5580
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:783:4: '&' epx= expression
5581
                    {
5582
                    match(input,116,FOLLOW_116_in_setComprehension3808);
5583

    
5584
                    pushFollow(FOLLOW_expression_in_setComprehension3814);
5585
                    epx=expression();
5586

    
5587
                    state._fsp--;
5588

    
5589

    
5590
                     addSetComprExpr(_set,epx);
5591

    
5592
                    }
5593
                    break;
5594

    
5595
            }
5596

    
5597

    
5598
            }
5599

    
5600
        }
5601
        catch (final RecognitionException re) {
5602
            reportError(re);
5603
            recover(input,re);
5604
        }
5605

    
5606
        finally {
5607
                // do for sure before leaving
5608
        }
5609
        return ;
5610
    }
5611
    // $ANTLR end "setComprehension"
5612

    
5613

    
5614

    
5615
    // $ANTLR start "identifierExpression"
5616
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:788:1: identifierExpression returns [Expression result] : ({...}?aName= T_IDENTIFIER T_LPAREN m_params= methodCallParams T_RPAREN |res= reference );
5617
    public final Expression identifierExpression() throws RecognitionException {
5618
        Expression result = null;
5619

    
5620

    
5621
        Token aName=null;
5622
        ArrayList<Expression> m_params =null;
5623

    
5624
        Expression res =null;
5625

    
5626

    
5627
        try {
5628
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:790:2: ({...}?aName= T_IDENTIFIER T_LPAREN m_params= methodCallParams T_RPAREN |res= reference )
5629
            int alt84=2;
5630
            alt84 = dfa84.predict(input);
5631
            switch (alt84) {
5632
                case 1 :
5633
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:791:3: {...}?aName= T_IDENTIFIER T_LPAREN m_params= methodCallParams T_RPAREN
5634
                    {
5635
                    if ( !((isTuple(input.LT(1).getText()))) ) {
5636
                        throw new FailedPredicateException(input, "identifierExpression", "isTuple(input.LT(1).getText())");
5637
                    }
5638

    
5639
                    aName=(Token)match(input,T_IDENTIFIER,FOLLOW_T_IDENTIFIER_in_identifierExpression3850);
5640

    
5641
                    match(input,T_LPAREN,FOLLOW_T_LPAREN_in_identifierExpression3852);
5642

    
5643
                    pushFollow(FOLLOW_methodCallParams_in_identifierExpression3856);
5644
                    m_params=methodCallParams();
5645

    
5646
                    state._fsp--;
5647

    
5648

    
5649
                    match(input,T_RPAREN,FOLLOW_T_RPAREN_in_identifierExpression3858);
5650

    
5651
                    result = createInitializedTuple(aName,m_params);
5652

    
5653
                    }
5654
                    break;
5655
                case 2 :
5656
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:795:3: res= reference
5657
                    {
5658
                    pushFollow(FOLLOW_reference_in_identifierExpression3873);
5659
                    res=reference();
5660

    
5661
                    state._fsp--;
5662

    
5663

    
5664
                    result = res;
5665

    
5666
                    }
5667
                    break;
5668

    
5669
            }
5670
        }
5671
        catch (final RecognitionException re) {
5672
            reportError(re);
5673
            recover(input,re);
5674
        }
5675

    
5676
        finally {
5677
                // do for sure before leaving
5678
        }
5679
        return result;
5680
    }
5681
    // $ANTLR end "identifierExpression"
5682

    
5683

    
5684

    
5685
    // $ANTLR start "reference"
5686
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:800:1: reference returns [Expression result] :{...}?aName= qualifiedIdentifier (output= accessExpression[result] |) (pr= T_PRIMED | ( '::' T_LPAREN init= expression T_RPAREN )? afold= ( T_FOLDLR | T_FOLDRL ) T_LPAREN anexpr= expression T_RPAREN )? ;
5687
    public final Expression reference() throws RecognitionException {
5688
        Expression result = null;
5689

    
5690

    
5691
        Token pr=null;
5692
        Token afold=null;
5693
        Expression aName =null;
5694

    
5695
        Expression output =null;
5696

    
5697
        Expression init =null;
5698

    
5699
        Expression anexpr =null;
5700

    
5701

    
5702

    
5703
                        result = null;
5704
                        init = null;
5705

    
5706
        try {
5707
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:806:2: ({...}?aName= qualifiedIdentifier (output= accessExpression[result] |) (pr= T_PRIMED | ( '::' T_LPAREN init= expression T_RPAREN )? afold= ( T_FOLDLR | T_FOLDRL ) T_LPAREN anexpr= expression T_RPAREN )? )
5708
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:806:4: {...}?aName= qualifiedIdentifier (output= accessExpression[result] |) (pr= T_PRIMED | ( '::' T_LPAREN init= expression T_RPAREN )? afold= ( T_FOLDLR | T_FOLDRL ) T_LPAREN anexpr= expression T_RPAREN )?
5709
            {
5710
            if ( !((!isTuple(input.LT(1).getText()))) ) {
5711
                throw new FailedPredicateException(input, "reference", "!isTuple(input.LT(1).getText())");
5712
            }
5713

    
5714
            pushFollow(FOLLOW_qualifiedIdentifier_in_reference3911);
5715
            aName=qualifiedIdentifier();
5716

    
5717
            state._fsp--;
5718

    
5719

    
5720
            result = aName;
5721

    
5722
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:808:3: (output= accessExpression[result] |)
5723
            int alt85=2;
5724
            final int LA85_0 = input.LA(1);
5725

    
5726
            if ( ((LA85_0 >= T_LPAREN && LA85_0 <= T_LSQPAREN)) ) {
5727
                alt85=1;
5728
            }
5729
            else if ( ((LA85_0 >= T_ACTIONS && LA85_0 <= T_ASSIGNMENT)||(LA85_0 >= T_BAR && LA85_0 <= T_BIIMPLIES)||LA85_0==T_CBRR||(LA85_0 >= T_COLON && LA85_0 <= T_COMMA)||LA85_0==T_CONC||LA85_0==T_DIFF||(LA85_0 >= T_DIV && LA85_0 <= T_DO)||(LA85_0 >= T_DOMRESBY && LA85_0 <= T_DOMRESTO)||(LA85_0 >= T_ELSE && LA85_0 <= T_EQUAL)||(LA85_0 >= T_FOLDLR && LA85_0 <= T_FOLDRL)||(LA85_0 >= T_GREATER && LA85_0 <= T_GREATEREQUAL)||LA85_0==T_IDIV||(LA85_0 >= T_IMPLIES && LA85_0 <= T_IN)||LA85_0==T_INTER||(LA85_0 >= T_LESS && LA85_0 <= T_LESSEQUAL)||LA85_0==T_MAPS||(LA85_0 >= T_METHODS && LA85_0 <= T_MUNION)||(LA85_0 >= T_NONDET && LA85_0 <= T_NOTEQUAL)||LA85_0==T_OR||(LA85_0 >= T_POW && LA85_0 <= T_PROD)||(LA85_0 >= T_RNGRESBY && LA85_0 <= T_RSQPAREN)||(LA85_0 >= T_SEMICOLON && LA85_0 <= T_SEQMOD_MAPOVERRIDE)||(LA85_0 >= T_SUBSET && LA85_0 <= T_SUM)||LA85_0==T_THEN||(LA85_0 >= T_TYPES && LA85_0 <= T_UNION)||LA85_0==T_WITH||(LA85_0 >= 117 && LA85_0 <= 119)) ) {
5730
                alt85=2;
5731
            }
5732
            else {
5733
                final NoViableAltException nvae =
5734
                    new NoViableAltException("", 85, 0, input);
5735

    
5736
                throw nvae;
5737

    
5738
            }
5739
            switch (alt85) {
5740
                case 1 :
5741
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:808:5: output= accessExpression[result]
5742
                    {
5743
                    pushFollow(FOLLOW_accessExpression_in_reference3923);
5744
                    output=accessExpression(result);
5745

    
5746
                    state._fsp--;
5747

    
5748

    
5749
                    result = output;
5750

    
5751
                    }
5752
                    break;
5753
                case 2 :
5754
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:811:3:
5755
                    {
5756
                    }
5757
                    break;
5758

    
5759
            }
5760

    
5761

    
5762
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:812:3: (pr= T_PRIMED | ( '::' T_LPAREN init= expression T_RPAREN )? afold= ( T_FOLDLR | T_FOLDRL ) T_LPAREN anexpr= expression T_RPAREN )?
5763
            int alt87=3;
5764
            final int LA87_0 = input.LA(1);
5765

    
5766
            if ( (LA87_0==T_PRIMED) ) {
5767
                alt87=1;
5768
            }
5769
            else if ( ((LA87_0 >= T_FOLDLR && LA87_0 <= T_FOLDRL)||LA87_0==117) ) {
5770
                alt87=2;
5771
            }
5772
            switch (alt87) {
5773
                case 1 :
5774
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:812:6: pr= T_PRIMED
5775
                    {
5776
                    pr=(Token)match(input,T_PRIMED,FOLLOW_T_PRIMED_in_reference3948);
5777

    
5778
                    result = setIdentifierExpressionPrimed(result,pr);
5779

    
5780
                    }
5781
                    break;
5782
                case 2 :
5783
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:814:5: ( '::' T_LPAREN init= expression T_RPAREN )? afold= ( T_FOLDLR | T_FOLDRL ) T_LPAREN anexpr= expression T_RPAREN
5784
                    {
5785
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:814:5: ( '::' T_LPAREN init= expression T_RPAREN )?
5786
                    int alt86=2;
5787
                    final int LA86_0 = input.LA(1);
5788

    
5789
                    if ( (LA86_0==117) ) {
5790
                        alt86=1;
5791
                    }
5792
                    switch (alt86) {
5793
                        case 1 :
5794
                            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:814:6: '::' T_LPAREN init= expression T_RPAREN
5795
                            {
5796
                            match(input,117,FOLLOW_117_in_reference3964);
5797

    
5798
                            match(input,T_LPAREN,FOLLOW_T_LPAREN_in_reference3966);
5799

    
5800
                            pushFollow(FOLLOW_expression_in_reference3970);
5801
                            init=expression();
5802

    
5803
                            state._fsp--;
5804

    
5805

    
5806
                            match(input,T_RPAREN,FOLLOW_T_RPAREN_in_reference3972);
5807

    
5808
                            }
5809
                            break;
5810

    
5811
                    }
5812

    
5813

    
5814
                    afold=input.LT(1);
5815

    
5816
                    if ( (input.LA(1) >= T_FOLDLR && input.LA(1) <= T_FOLDRL) ) {
5817
                        input.consume();
5818
                        state.errorRecovery=false;
5819
                    }
5820
                    else {
5821
                        final MismatchedSetException mse = new MismatchedSetException(null,input);
5822
                        throw mse;
5823
                    }
5824

    
5825

    
5826
                    match(input,T_LPAREN,FOLLOW_T_LPAREN_in_reference3984);
5827

    
5828
                    pushFollow(FOLLOW_expression_in_reference3988);
5829
                    anexpr=expression();
5830

    
5831
                    state._fsp--;
5832

    
5833

    
5834
                    match(input,T_RPAREN,FOLLOW_T_RPAREN_in_reference3990);
5835

    
5836
                    result = createFoldExpression(result,afold,init,anexpr);
5837

    
5838
                    }
5839
                    break;
5840

    
5841
            }
5842

    
5843

    
5844
            }
5845

    
5846
        }
5847
        catch (final RecognitionException re) {
5848
            reportError(re);
5849
            recover(input,re);
5850
        }
5851

    
5852
        finally {
5853
                // do for sure before leaving
5854
        }
5855
        return result;
5856
    }
5857
    // $ANTLR end "reference"
5858

    
5859

    
5860

    
5861
    // $ANTLR start "accessExpression"
5862
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:819:1: accessExpression[Expression subexpr] returns [Expression result] : (tcall= T_LSQPAREN ac= expression T_RSQPAREN |bcall= T_LPAREN m_params= methodCallParams T_RPAREN )+ ( ( T_POINT idn= T_IDENTIFIER )+ (res= accessExpression[result] )? )? ;
5863
    public final Expression accessExpression(Expression subexpr) throws RecognitionException {
5864
        Expression result = null;
5865

    
5866

    
5867
        Token tcall=null;
5868
        Token bcall=null;
5869
        Token idn=null;
5870
        Expression ac =null;
5871

    
5872
        ArrayList<Expression> m_params =null;
5873

    
5874
        Expression res =null;
5875

    
5876

    
5877

    
5878
                        final UnaryOperator newExpr = null;
5879
                        result = subexpr;
5880

    
5881
        try {
5882
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:825:2: ( (tcall= T_LSQPAREN ac= expression T_RSQPAREN |bcall= T_LPAREN m_params= methodCallParams T_RPAREN )+ ( ( T_POINT idn= T_IDENTIFIER )+ (res= accessExpression[result] )? )? )
5883
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:826:7: (tcall= T_LSQPAREN ac= expression T_RSQPAREN |bcall= T_LPAREN m_params= methodCallParams T_RPAREN )+ ( ( T_POINT idn= T_IDENTIFIER )+ (res= accessExpression[result] )? )?
5884
            {
5885
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:826:7: (tcall= T_LSQPAREN ac= expression T_RSQPAREN |bcall= T_LPAREN m_params= methodCallParams T_RPAREN )+
5886
            int cnt88=0;
5887
            loop88:
5888
            do {
5889
                int alt88=3;
5890
                final int LA88_0 = input.LA(1);
5891

    
5892
                if ( (LA88_0==T_LSQPAREN) ) {
5893
                    alt88=1;
5894
                }
5895
                else if ( (LA88_0==T_LPAREN) ) {
5896
                    alt88=2;
5897
                }
5898

    
5899

    
5900
                switch (alt88) {
5901
                    case 1 :
5902
                        // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:826:9: tcall= T_LSQPAREN ac= expression T_RSQPAREN
5903
                        {
5904
                        tcall=(Token)match(input,T_LSQPAREN,FOLLOW_T_LSQPAREN_in_accessExpression4035);
5905

    
5906
                        pushFollow(FOLLOW_expression_in_accessExpression4039);
5907
                        ac=expression();
5908

    
5909
                        state._fsp--;
5910

    
5911

    
5912
                        match(input,T_RSQPAREN,FOLLOW_T_RSQPAREN_in_accessExpression4041);
5913

    
5914
                         result = createTupleMapAccessExpression(result,ac,tcall);
5915

    
5916
                        }
5917
                        break;
5918
                    case 2 :
5919
                        // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:828:10: bcall= T_LPAREN m_params= methodCallParams T_RPAREN
5920
                        {
5921
                        bcall=(Token)match(input,T_LPAREN,FOLLOW_T_LPAREN_in_accessExpression4068);
5922

    
5923
                        pushFollow(FOLLOW_methodCallParams_in_accessExpression4072);
5924
                        m_params=methodCallParams();
5925

    
5926
                        state._fsp--;
5927

    
5928

    
5929
                        match(input,T_RPAREN,FOLLOW_T_RPAREN_in_accessExpression4074);
5930

    
5931
                         result = createMethodAccessExpression(result,m_params,bcall);
5932

    
5933
                        }
5934
                        break;
5935

    
5936
                    default :
5937
                        if ( cnt88 >= 1 ) break loop88;
5938
                        final EarlyExitException eee =
5939
                            new EarlyExitException(88, input);
5940
                        throw eee;
5941
                }
5942
                cnt88++;
5943
            } while (true);
5944

    
5945

    
5946
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:831:3: ( ( T_POINT idn= T_IDENTIFIER )+ (res= accessExpression[result] )? )?
5947
            int alt91=2;
5948
            final int LA91_0 = input.LA(1);
5949

    
5950
            if ( (LA91_0==T_POINT) ) {
5951
                alt91=1;
5952
            }
5953
            switch (alt91) {
5954
                case 1 :
5955
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:832:4: ( T_POINT idn= T_IDENTIFIER )+ (res= accessExpression[result] )?
5956
                    {
5957
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:832:4: ( T_POINT idn= T_IDENTIFIER )+
5958
                    int cnt89=0;
5959
                    loop89:
5960
                    do {
5961
                        int alt89=2;
5962
                        final int LA89_0 = input.LA(1);
5963

    
5964
                        if ( (LA89_0==T_POINT) ) {
5965
                            alt89=1;
5966
                        }
5967

    
5968

    
5969
                        switch (alt89) {
5970
                            case 1 :
5971
                                // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:832:5: T_POINT idn= T_IDENTIFIER
5972
                                {
5973
                                match(input,T_POINT,FOLLOW_T_POINT_in_accessExpression4096);
5974

    
5975
                                idn=(Token)match(input,T_IDENTIFIER,FOLLOW_T_IDENTIFIER_in_accessExpression4104);
5976

    
5977
                                result = addIdentifierAccessExpression(result,idn);
5978

    
5979
                                }
5980
                                break;
5981

    
5982
                            default :
5983
                                if ( cnt89 >= 1 ) break loop89;
5984
                                final EarlyExitException eee =
5985
                                    new EarlyExitException(89, input);
5986
                                throw eee;
5987
                        }
5988
                        cnt89++;
5989
                    } while (true);
5990

    
5991

    
5992
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:835:4: (res= accessExpression[result] )?
5993
                    int alt90=2;
5994
                    final int LA90_0 = input.LA(1);
5995

    
5996
                    if ( ((LA90_0 >= T_LPAREN && LA90_0 <= T_LSQPAREN)) ) {
5997
                        alt90=1;
5998
                    }
5999
                    switch (alt90) {
6000
                        case 1 :
6001
                            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:835:5: res= accessExpression[result]
6002
                            {
6003
                            pushFollow(FOLLOW_accessExpression_in_accessExpression4120);
6004
                            res=accessExpression(result);
6005

    
6006
                            state._fsp--;
6007

    
6008

    
6009
                            result=res;
6010

    
6011
                            }
6012
                            break;
6013

    
6014
                    }
6015

    
6016

    
6017
                    }
6018
                    break;
6019

    
6020
            }
6021

    
6022

    
6023
            }
6024

    
6025
        }
6026
        catch (final RecognitionException re) {
6027
            reportError(re);
6028
            recover(input,re);
6029
        }
6030

    
6031
        finally {
6032
                // do for sure before leaving
6033
        }
6034
        return result;
6035
    }
6036
    // $ANTLR end "accessExpression"
6037

    
6038

    
6039

    
6040
    // $ANTLR start "qualifiedIdentifier"
6041
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:839:1: qualifiedIdentifier returns [Expression top] : (self= T_SELF T_POINT )? idb= T_IDENTIFIER ( T_POINT idd= T_IDENTIFIER )* ;
6042
    public final Expression qualifiedIdentifier() throws RecognitionException {
6043
        Expression top = null;
6044

    
6045

    
6046
        Token self=null;
6047
        Token idb=null;
6048
        Token idd=null;
6049

    
6050

    
6051
                        IdentifierExpression selfexpr = null;
6052
                        top = null;
6053

    
6054
        try {
6055
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:845:2: ( (self= T_SELF T_POINT )? idb= T_IDENTIFIER ( T_POINT idd= T_IDENTIFIER )* )
6056
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:846:3: (self= T_SELF T_POINT )? idb= T_IDENTIFIER ( T_POINT idd= T_IDENTIFIER )*
6057
            {
6058
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:846:3: (self= T_SELF T_POINT )?
6059
            int alt92=2;
6060
            final int LA92_0 = input.LA(1);
6061

    
6062
            if ( (LA92_0==T_SELF) ) {
6063
                alt92=1;
6064
            }
6065
            switch (alt92) {
6066
                case 1 :
6067
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:846:4: self= T_SELF T_POINT
6068
                    {
6069
                    self=(Token)match(input,T_SELF,FOLLOW_T_SELF_in_qualifiedIdentifier4159);
6070

    
6071
                    match(input,T_POINT,FOLLOW_T_POINT_in_qualifiedIdentifier4161);
6072

    
6073
                    selfexpr = createSelfIdentifierExpression(self);
6074

    
6075
                    }
6076
                    break;
6077

    
6078
            }
6079

    
6080

    
6081
            idb=(Token)match(input,T_IDENTIFIER,FOLLOW_T_IDENTIFIER_in_qualifiedIdentifier4173);
6082

    
6083
            top = createIdentifierAccessExpression(selfexpr,idb);
6084

    
6085
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:848:3: ( T_POINT idd= T_IDENTIFIER )*
6086
            loop93:
6087
            do {
6088
                int alt93=2;
6089
                final int LA93_0 = input.LA(1);
6090

    
6091
                if ( (LA93_0==T_POINT) ) {
6092
                    alt93=1;
6093
                }
6094

    
6095

    
6096
                switch (alt93) {
6097
                    case 1 :
6098
                        // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:848:4: T_POINT idd= T_IDENTIFIER
6099
                        {
6100
                        match(input,T_POINT,FOLLOW_T_POINT_in_qualifiedIdentifier4182);
6101

    
6102
                        idd=(Token)match(input,T_IDENTIFIER,FOLLOW_T_IDENTIFIER_in_qualifiedIdentifier4186);
6103

    
6104
                        top = addIdentifierAccessExpression(top,idd);
6105

    
6106
                        }
6107
                        break;
6108

    
6109
                    default :
6110
                        break loop93;
6111
                }
6112
            } while (true);
6113

    
6114

    
6115
            }
6116

    
6117
        }
6118
        catch (final RecognitionException re) {
6119
            reportError(re);
6120
            recover(input,re);
6121
        }
6122

    
6123
        finally {
6124
                // do for sure before leaving
6125
        }
6126
        return top;
6127
    }
6128
    // $ANTLR end "qualifiedIdentifier"
6129

    
6130

    
6131

    
6132
    // $ANTLR start "methodCallParams"
6133
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:852:1: methodCallParams returns [ArrayList<Expression> result] : (expa= expression ( T_COMMA expb= expression )* )? ;
6134
    public final ArrayList<Expression> methodCallParams() throws RecognitionException {
6135
        ArrayList<Expression> result = null;
6136

    
6137

    
6138
        Expression expa =null;
6139

    
6140
        Expression expb =null;
6141

    
6142

    
6143

    
6144
                        result = new ArrayList<Expression>();
6145

    
6146
        try {
6147
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:857:2: ( (expa= expression ( T_COMMA expb= expression )* )? )
6148
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:857:4: (expa= expression ( T_COMMA expb= expression )* )?
6149
            {
6150
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:857:4: (expa= expression ( T_COMMA expb= expression )* )?
6151
            int alt95=2;
6152
            final int LA95_0 = input.LA(1);
6153

    
6154
            if ( (LA95_0==T_ABS||(LA95_0 >= T_CARD && LA95_0 <= T_CBRL)||LA95_0==T_DCONC||LA95_0==T_DINTER||LA95_0==T_DOM||(LA95_0 >= T_DUNION && LA95_0 <= T_ELEMS)||(LA95_0 >= T_EXISTS && LA95_0 <= T_FALSE)||LA95_0==T_FLOATNUMBER||LA95_0==T_FORALL||(LA95_0 >= T_HEAD && LA95_0 <= T_IDENTIFIER)||LA95_0==T_IF||LA95_0==T_INDS||LA95_0==T_INTNUMBER||LA95_0==T_LEN||(LA95_0 >= T_LPAREN && LA95_0 <= T_LSQPAREN)||LA95_0==T_MERGE||LA95_0==T_MINUS||(LA95_0 >= T_NEW && LA95_0 <= T_NIL)||LA95_0==T_NOT||LA95_0==T_RNG||LA95_0==T_SELF||LA95_0==T_STRINGLITERAL||LA95_0==T_TAIL||LA95_0==T_TRUE) ) {
6155
                alt95=1;
6156
            }
6157
            switch (alt95) {
6158
                case 1 :
6159
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:857:5: expa= expression ( T_COMMA expb= expression )*
6160
                    {
6161
                    pushFollow(FOLLOW_expression_in_methodCallParams4219);
6162
                    expa=expression();
6163

    
6164
                    state._fsp--;
6165

    
6166

    
6167
                    result.add(expa);
6168

    
6169
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:857:41: ( T_COMMA expb= expression )*
6170
                    loop94:
6171
                    do {
6172
                        int alt94=2;
6173
                        final int LA94_0 = input.LA(1);
6174

    
6175
                        if ( (LA94_0==T_COMMA) ) {
6176
                            alt94=1;
6177
                        }
6178

    
6179

    
6180
                        switch (alt94) {
6181
                            case 1 :
6182
                                // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:857:42: T_COMMA expb= expression
6183
                                {
6184
                                match(input,T_COMMA,FOLLOW_T_COMMA_in_methodCallParams4224);
6185

    
6186
                                pushFollow(FOLLOW_expression_in_methodCallParams4228);
6187
                                expb=expression();
6188

    
6189
                                state._fsp--;
6190

    
6191

    
6192
                                result.add(expb);
6193

    
6194
                                }
6195
                                break;
6196

    
6197
                            default :
6198
                                break loop94;
6199
                        }
6200
                    } while (true);
6201

    
6202

    
6203
                    }
6204
                    break;
6205

    
6206
            }
6207

    
6208

    
6209
            }
6210

    
6211
        }
6212
        catch (final RecognitionException re) {
6213
            reportError(re);
6214
            recover(input,re);
6215
        }
6216

    
6217
        finally {
6218
                // do for sure before leaving
6219
        }
6220
        return result;
6221
    }
6222
    // $ANTLR end "methodCallParams"
6223

    
6224

    
6225

    
6226
    // $ANTLR start "op_un"
6227
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:867:1: op_un returns [UnaryOperator expr] : (r= op_un_set_list |r2= op_un_map | T_MINUS | T_NOT | T_ABS );
6228
    public final UnaryOperator op_un() throws RecognitionException {
6229
        UnaryOperator expr = null;
6230

    
6231

    
6232
        UnaryOperator r =null;
6233

    
6234
        UnaryOperator r2 =null;
6235

    
6236

    
6237

    
6238
                        expr = null;
6239

    
6240
        try {
6241
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:872:2: (r= op_un_set_list |r2= op_un_map | T_MINUS | T_NOT | T_ABS )
6242
            int alt96=5;
6243
            switch ( input.LA(1) ) {
6244
            case T_CARD:
6245
            case T_DCONC:
6246
            case T_DINTER:
6247
            case T_DUNION:
6248
            case T_ELEMS:
6249
            case T_HEAD:
6250
            case T_INDS:
6251
            case T_LEN:
6252
            case T_TAIL:
6253
                {
6254
                alt96=1;
6255
                }
6256
                break;
6257
            case T_DOM:
6258
            case T_MERGE:
6259
            case T_RNG:
6260
                {
6261
                alt96=2;
6262
                }
6263
                break;
6264
            case T_MINUS:
6265
                {
6266
                alt96=3;
6267
                }
6268
                break;
6269
            case T_NOT:
6270
                {
6271
                alt96=4;
6272
                }
6273
                break;
6274
            case T_ABS:
6275
                {
6276
                alt96=5;
6277
                }
6278
                break;
6279
            default:
6280
                final NoViableAltException nvae =
6281
                    new NoViableAltException("", 96, 0, input);
6282

    
6283
                throw nvae;
6284

    
6285
            }
6286

    
6287
            switch (alt96) {
6288
                case 1 :
6289
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:872:4: r= op_un_set_list
6290
                    {
6291
                    pushFollow(FOLLOW_op_un_set_list_in_op_un4267);
6292
                    r=op_un_set_list();
6293

    
6294
                    state._fsp--;
6295

    
6296

    
6297
                    expr = r;
6298

    
6299
                    }
6300
                    break;
6301
                case 2 :
6302
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:873:4: r2= op_un_map
6303
                    {
6304
                    pushFollow(FOLLOW_op_un_map_in_op_un4276);
6305
                    r2=op_un_map();
6306

    
6307
                    state._fsp--;
6308

    
6309

    
6310
                    expr = r2;
6311

    
6312
                    }
6313
                    break;
6314
                case 3 :
6315
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:874:4: T_MINUS
6316
                    {
6317
                    match(input,T_MINUS,FOLLOW_T_MINUS_in_op_un4284);
6318

    
6319
                    expr = createUnaryOperator(ExpressionKind.unminus);
6320

    
6321
                    }
6322
                    break;
6323
                case 4 :
6324
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:875:4: T_NOT
6325
                    {
6326
                    match(input,T_NOT,FOLLOW_T_NOT_in_op_un4292);
6327

    
6328
                    expr = createUnaryOperator(ExpressionKind.not);
6329

    
6330
                    }
6331
                    break;
6332
                case 5 :
6333
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:876:4: T_ABS
6334
                    {
6335
                    match(input,T_ABS,FOLLOW_T_ABS_in_op_un4300);
6336

    
6337
                    expr = createUnaryOperator(ExpressionKind.abs);
6338

    
6339
                    }
6340
                    break;
6341

    
6342
            }
6343
        }
6344
        catch (final RecognitionException re) {
6345
            reportError(re);
6346
            recover(input,re);
6347
        }
6348

    
6349
        finally {
6350
                // do for sure before leaving
6351
        }
6352
        return expr;
6353
    }
6354
    // $ANTLR end "op_un"
6355

    
6356

    
6357

    
6358
    // $ANTLR start "op_un_set_list"
6359
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:880:1: op_un_set_list returns [UnaryOperator expr] : ( T_CARD | T_DCONC | T_DINTER | T_DUNION | T_ELEMS | T_HEAD | T_INDS | T_LEN | T_TAIL );
6360
    public final UnaryOperator op_un_set_list() throws RecognitionException {
6361
        UnaryOperator expr = null;
6362

    
6363

    
6364

    
6365
                        expr = null;
6366

    
6367
        try {
6368
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:885:2: ( T_CARD | T_DCONC | T_DINTER | T_DUNION | T_ELEMS | T_HEAD | T_INDS | T_LEN | T_TAIL )
6369
            int alt97=9;
6370
            switch ( input.LA(1) ) {
6371
            case T_CARD:
6372
                {
6373
                alt97=1;
6374
                }
6375
                break;
6376
            case T_DCONC:
6377
                {
6378
                alt97=2;
6379
                }
6380
                break;
6381
            case T_DINTER:
6382
                {
6383
                alt97=3;
6384
                }
6385
                break;
6386
            case T_DUNION:
6387
                {
6388
                alt97=4;
6389
                }
6390
                break;
6391
            case T_ELEMS:
6392
                {
6393
                alt97=5;
6394
                }
6395
                break;
6396
            case T_HEAD:
6397
                {
6398
                alt97=6;
6399
                }
6400
                break;
6401
            case T_INDS:
6402
                {
6403
                alt97=7;
6404
                }
6405
                break;
6406
            case T_LEN:
6407
                {
6408
                alt97=8;
6409
                }
6410
                break;
6411
            case T_TAIL:
6412
                {
6413
                alt97=9;
6414
                }
6415
                break;
6416
            default:
6417
                final NoViableAltException nvae =
6418
                    new NoViableAltException("", 97, 0, input);
6419

    
6420
                throw nvae;
6421

    
6422
            }
6423

    
6424
            switch (alt97) {
6425
                case 1 :
6426
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:885:4: T_CARD
6427
                    {
6428
                    match(input,T_CARD,FOLLOW_T_CARD_in_op_un_set_list4327);
6429

    
6430
                    expr = createUnaryOperator(ExpressionKind.card);
6431

    
6432
                    }
6433
                    break;
6434
                case 2 :
6435
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:887:4: T_DCONC
6436
                    {
6437
                    match(input,T_DCONC,FOLLOW_T_DCONC_in_op_un_set_list4338);
6438

    
6439
                    expr = createUnaryOperator(ExpressionKind.dconc);
6440

    
6441
                    }
6442
                    break;
6443
                case 3 :
6444
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:889:4: T_DINTER
6445
                    {
6446
                    match(input,T_DINTER,FOLLOW_T_DINTER_in_op_un_set_list4349);
6447

    
6448
                    expr = createUnaryOperator(ExpressionKind.dinter);
6449

    
6450
                    }
6451
                    break;
6452
                case 4 :
6453
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:891:4: T_DUNION
6454
                    {
6455
                    match(input,T_DUNION,FOLLOW_T_DUNION_in_op_un_set_list4359);
6456

    
6457
                    expr = createUnaryOperator(ExpressionKind.dunion);
6458

    
6459
                    }
6460
                    break;
6461
                case 5 :
6462
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:893:4: T_ELEMS
6463
                    {
6464
                    match(input,T_ELEMS,FOLLOW_T_ELEMS_in_op_un_set_list4369);
6465

    
6466
                    expr = createUnaryOperator(ExpressionKind.elems);
6467

    
6468
                    }
6469
                    break;
6470
                case 6 :
6471
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:895:4: T_HEAD
6472
                    {
6473
                    match(input,T_HEAD,FOLLOW_T_HEAD_in_op_un_set_list4380);
6474

    
6475
                    expr = createUnaryOperator(ExpressionKind.head);
6476

    
6477
                    }
6478
                    break;
6479
                case 7 :
6480
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:897:4: T_INDS
6481
                    {
6482
                    match(input,T_INDS,FOLLOW_T_INDS_in_op_un_set_list4391);
6483

    
6484
                    expr = createUnaryOperator(ExpressionKind.inds);
6485

    
6486
                    }
6487
                    break;
6488
                case 8 :
6489
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:899:4: T_LEN
6490
                    {
6491
                    match(input,T_LEN,FOLLOW_T_LEN_in_op_un_set_list4402);
6492

    
6493
                    expr = createUnaryOperator(ExpressionKind.len);
6494

    
6495
                    }
6496
                    break;
6497
                case 9 :
6498
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:901:4: T_TAIL
6499
                    {
6500
                    match(input,T_TAIL,FOLLOW_T_TAIL_in_op_un_set_list4413);
6501

    
6502
                    expr = createUnaryOperator(ExpressionKind.tail);
6503

    
6504
                    }
6505
                    break;
6506

    
6507
            }
6508
        }
6509
        catch (final RecognitionException re) {
6510
            reportError(re);
6511
            recover(input,re);
6512
        }
6513

    
6514
        finally {
6515
                // do for sure before leaving
6516
        }
6517
        return expr;
6518
    }
6519
    // $ANTLR end "op_un_set_list"
6520

    
6521

    
6522

    
6523
    // $ANTLR start "op_un_map"
6524
    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:906:1: op_un_map returns [UnaryOperator expr] : ( T_DOM | T_RNG | T_MERGE );
6525
    public final UnaryOperator op_un_map() throws RecognitionException {
6526
        UnaryOperator expr = null;
6527

    
6528

    
6529

    
6530
                        expr = null;
6531

    
6532
        try {
6533
            // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:911:2: ( T_DOM | T_RNG | T_MERGE )
6534
            int alt98=3;
6535
            switch ( input.LA(1) ) {
6536
            case T_DOM:
6537
                {
6538
                alt98=1;
6539
                }
6540
                break;
6541
            case T_RNG:
6542
                {
6543
                alt98=2;
6544
                }
6545
                break;
6546
            case T_MERGE:
6547
                {
6548
                alt98=3;
6549
                }
6550
                break;
6551
            default:
6552
                final NoViableAltException nvae =
6553
                    new NoViableAltException("", 98, 0, input);
6554

    
6555
                throw nvae;
6556

    
6557
            }
6558

    
6559
            switch (alt98) {
6560
                case 1 :
6561
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:911:4: T_DOM
6562
                    {
6563
                    match(input,T_DOM,FOLLOW_T_DOM_in_op_un_map4442);
6564

    
6565
                    expr = createUnaryOperator(ExpressionKind.dom);
6566

    
6567
                    }
6568
                    break;
6569
                case 2 :
6570
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:913:4: T_RNG
6571
                    {
6572
                    match(input,T_RNG,FOLLOW_T_RNG_in_op_un_map4453);
6573

    
6574
                    expr = createUnaryOperator(ExpressionKind.range);
6575

    
6576
                    }
6577
                    break;
6578
                case 3 :
6579
                    // /home/willibald/svn/branches/1161_dynlistPerformance_willibald/ooascompiler/ooasCompiler/src/org/momut/ooas/parser/ooa.g:915:4: T_MERGE
6580
                    {
6581
                    match(input,T_MERGE,FOLLOW_T_MERGE_in_op_un_map4464);
6582

    
6583
                    expr = createUnaryOperator(ExpressionKind.merge);
6584

    
6585
                    }
6586
                    break;
6587

    
6588
            }
6589
        }
6590
        catch (final RecognitionException re) {
6591
            reportError(re);
6592
            recover(input,re);
6593
        }
6594

    
6595
        finally {
6596
                // do for sure before leaving
6597
        }
6598
        return expr;
6599
    }
6600
    // $ANTLR end "op_un_map"
6601

    
6602
    // Delegated rules
6603

    
6604

    
6605
    protected DFA67 dfa67 = new DFA67(this);
6606
    protected DFA84 dfa84 = new DFA84(this);
6607
    static final String DFA67_eotS =
6608
        "\101\uffff";
6609
    static final String DFA67_eofS =
6610
        "\101\uffff";
6611
    static final String DFA67_minS =
6612
        "\1\21\1\uffff\1\10\76\uffff";
6613
    static final String DFA67_maxS =
6614
        "\1\156\1\uffff\1\167\76\uffff";
6615
    static final String DFA67_acceptS =
6616
        "\1\uffff\1\1\1\uffff\1\2\5\uffff\1\3\2\uffff\1\4\1\5\63\uffff";
6617
    static final String DFA67_specialS =
6618
        "\101\uffff}>";
6619
    static final String[] DFA67_transitionS = {
6620
            "\1\11\27\uffff\1\14\1\3\1\uffff\1\3\2\uffff\1\14\3\uffff\1\1"+
6621
            "\10\uffff\1\3\6\uffff\1\15\1\11\7\uffff\1\11\1\3\23\uffff\1"+
6622
            "\2\5\uffff\1\3\6\uffff\1\3",
6623
            "",
6624
            "\2\3\2\uffff\2\3\4\uffff\1\3\1\uffff\2\3\1\uffff\1\3\4\uffff"+
6625
            "\1\3\2\uffff\2\3\1\uffff\2\3\2\uffff\3\3\7\uffff\2\3\2\uffff"+
6626
            "\1\3\1\uffff\2\3\3\uffff\1\3\3\uffff\2\3\5\uffff\1\3\1\uffff"+
6627
            "\4\3\2\uffff\3\3\3\uffff\1\3\1\1\1\3\1\uffff\2\3\3\uffff\4\3"+
6628
            "\1\uffff\2\3\4\uffff\2\3\2\uffff\1\3\2\uffff\2\3\1\uffff\1\3"+
6629
            "\3\uffff\2\3",
6630
            "",
6631
            "",
6632
            "",
6633
            "",
6634
            "",
6635
            "",
6636
            "",
6637
            "",
6638
            "",
6639
            "",
6640
            "",
6641
            "",
6642
            "",
6643
            "",
6644
            "",
6645
            "",
6646
            "",
6647
            "",
6648
            "",
6649
            "",
6650
            "",
6651
            "",
6652
            "",
6653
            "",
6654
            "",
6655
            "",
6656
            "",
6657
            "",
6658
            "",
6659
            "",
6660
            "",
6661
            "",
6662
            "",
6663
            "",
6664
            "",
6665
            "",
6666
            "",
6667
            "",
6668
            "",
6669
            "",
6670
            "",
6671
            "",
6672
            "",
6673
            "",
6674
            "",
6675
            "",
6676
            "",
6677
            "",
6678
            "",
6679
            "",
6680
            "",
6681
            "",
6682
            "",
6683
            "",
6684
            "",
6685
            "",
6686
            "",
6687
            "",
6688
            "",
6689
            "",
6690
            "",
6691
            ""
6692
    };
6693

    
6694
    static final short[] DFA67_eot = DFA.unpackEncodedString(DFA67_eotS);
6695
    static final short[] DFA67_eof = DFA.unpackEncodedString(DFA67_eofS);
6696
    static final char[] DFA67_min = DFA.unpackEncodedStringToUnsignedChars(DFA67_minS);
6697
    static final char[] DFA67_max = DFA.unpackEncodedStringToUnsignedChars(DFA67_maxS);
6698
    static final short[] DFA67_accept = DFA.unpackEncodedString(DFA67_acceptS);
6699
    static final short[] DFA67_special = DFA.unpackEncodedString(DFA67_specialS);
6700
    static final short[][] DFA67_transition;
6701

    
6702
    static {
6703
        final int numStates = DFA67_transitionS.length;
6704
        DFA67_transition = new short[numStates][];
6705
        for (int i=0; i<numStates; i++) {
6706
            DFA67_transition[i] = DFA.unpackEncodedString(DFA67_transitionS[i]);
6707
        }
6708
    }
6709

    
6710
    class DFA67 extends DFA {
6711

    
6712
        public DFA67(BaseRecognizer recognizer) {
6713
            this.recognizer = recognizer;
6714
            this.decisionNumber = 67;
6715
            this.eot = DFA67_eot;
6716
            this.eof = DFA67_eof;
6717
            this.min = DFA67_min;
6718
            this.max = DFA67_max;
6719
            this.accept = DFA67_accept;
6720
            this.special = DFA67_special;
6721
            this.transition = DFA67_transition;
6722
        }
6723
        @Override
6724
                public String getDescription() {
6725
            return "649:19: (e= identifierExpression |e= constant |e= initializedComplexType |e= quantifierExpression | T_LPAREN e= expression T_RPAREN ( ( T_POINT idn= T_IDENTIFIER )+ (res= accessExpression[e] )? |e= accessExpression[e] )? )";
6726
        }
6727
    }
6728
    static final String DFA84_eotS =
6729
        "\74\uffff";
6730
    static final String DFA84_eofS =
6731
        "\74\uffff";
6732
    static final String DFA84_minS =
6733
        "\1\63\1\10\1\uffff\1\0\70\uffff";
6734
    static final String DFA84_maxS =
6735
        "\1\141\1\167\1\uffff\1\0\70\uffff";
6736
    static final String DFA84_acceptS =
6737
        "\2\uffff\1\2\70\uffff\1\1";
6738
    static final String DFA84_specialS =
6739
        "\3\uffff\1\0\70\uffff}>";
6740
    static final String[] DFA84_transitionS = {
6741
            "\1\1\55\uffff\1\2",
6742
            "\2\2\2\uffff\2\2\4\uffff\1\2\1\uffff\2\2\1\uffff\1\2\4\uffff"+
6743
            "\1\2\2\uffff\2\2\1\uffff\2\2\2\uffff\3\2\4\uffff\2\2\1\uffff"+
6744
            "\2\2\2\uffff\1\2\1\uffff\2\2\3\uffff\1\2\3\uffff\2\2\2\uffff"+
6745
            "\1\3\1\2\1\uffff\1\2\1\uffff\4\2\2\uffff\3\2\3\uffff\6\2\3\uffff"+
6746
            "\4\2\1\uffff\2\2\4\uffff\2\2\2\uffff\1\2\2\uffff\2\2\1\uffff"+
6747
            "\1\2\2\uffff\3\2",
6748
            "",
6749
            "\1\uffff",
6750
            "",
6751
            "",
6752
            "",
6753
            "",
6754
            "",
6755
            "",
6756
            "",
6757
            "",
6758
            "",
6759
            "",
6760
            "",
6761
            "",
6762
            "",
6763
            "",
6764
            "",
6765
            "",
6766
            "",
6767
            "",
6768
            "",
6769
            "",
6770
            "",
6771
            "",
6772
            "",
6773
            "",
6774
            "",
6775
            "",
6776
            "",
6777
            "",
6778
            "",
6779
            "",
6780
            "",
6781
            "",
6782
            "",
6783
            "",
6784
            "",
6785
            "",
6786
            "",
6787
            "",
6788
            "",
6789
            "",
6790
            "",
6791
            "",
6792
            "",
6793
            "",
6794
            "",
6795
            "",
6796
            "",
6797
            "",
6798
            "",
6799
            "",
6800
            "",
6801
            "",
6802
            "",
6803
            "",
6804
            "",
6805
            ""
6806
    };
6807

    
6808
    static final short[] DFA84_eot = DFA.unpackEncodedString(DFA84_eotS);
6809
    static final short[] DFA84_eof = DFA.unpackEncodedString(DFA84_eofS);
6810
    static final char[] DFA84_min = DFA.unpackEncodedStringToUnsignedChars(DFA84_minS);
6811
    static final char[] DFA84_max = DFA.unpackEncodedStringToUnsignedChars(DFA84_maxS);
6812
    static final short[] DFA84_accept = DFA.unpackEncodedString(DFA84_acceptS);
6813
    static final short[] DFA84_special = DFA.unpackEncodedString(DFA84_specialS);
6814
    static final short[][] DFA84_transition;
6815

    
6816
    static {
6817
        final int numStates = DFA84_transitionS.length;
6818
        DFA84_transition = new short[numStates][];
6819
        for (int i=0; i<numStates; i++) {
6820
            DFA84_transition[i] = DFA.unpackEncodedString(DFA84_transitionS[i]);
6821
        }
6822
    }
6823

    
6824
    class DFA84 extends DFA {
6825

    
6826
        public DFA84(BaseRecognizer recognizer) {
6827
            this.recognizer = recognizer;
6828
            this.decisionNumber = 84;
6829
            this.eot = DFA84_eot;
6830
            this.eof = DFA84_eof;
6831
            this.min = DFA84_min;
6832
            this.max = DFA84_max;
6833
            this.accept = DFA84_accept;
6834
            this.special = DFA84_special;
6835
            this.transition = DFA84_transition;
6836
        }
6837
        @Override
6838
                public String getDescription() {
6839
            return "788:1: identifierExpression returns [Expression result] : ({...}?aName= T_IDENTIFIER T_LPAREN m_params= methodCallParams T_RPAREN |res= reference );";
6840
        }
6841
        @Override
6842
                public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
6843
            final TokenStream input = (TokenStream)_input;
6844
                final int _s = s;
6845
            switch ( s ) {
6846
                    case 0 :
6847
                        final int LA84_3 = input.LA(1);
6848

    
6849

    
6850
                        final int index84_3 = input.index();
6851
                        input.rewind();
6852

    
6853
                        s = -1;
6854
                        if ( ((isTuple(input.LT(1).getText()))) ) {s = 59;}
6855

    
6856
                        else if ( ((!isTuple(input.LT(1).getText()))) ) {s = 2;}
6857

    
6858

    
6859
                        input.seek(index84_3);
6860

    
6861
                        if ( s>=0 ) return s;
6862
                        break;
6863
            }
6864
            final NoViableAltException nvae =
6865
                new NoViableAltException(getDescription(), 84, _s, input);
6866
            error(nvae);
6867
            throw nvae;
6868
        }
6869

    
6870
    }
6871

    
6872

    
6873
    public static final BitSet FOLLOW_T_CONSTS_in_ooActionSystems74 = new BitSet(new long[]{0x0008000000000000L});
6874
    public static final BitSet FOLLOW_namedConstList_in_ooActionSystems76 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
6875
    public static final BitSet FOLLOW_T_TYPES_in_ooActionSystems86 = new BitSet(new long[]{0x0008000000000000L});
6876
    public static final BitSet FOLLOW_namedTypeList_in_ooActionSystems94 = new BitSet(new long[]{0x0000000000000000L,0x0000040000000000L});
6877
    public static final BitSet FOLLOW_T_SYSTEM_in_ooActionSystems99 = new BitSet(new long[]{0x0008000000000000L,0x0000000000000008L});
6878
    public static final BitSet FOLLOW_asTypeComposition_in_ooActionSystems106 = new BitSet(new long[]{0x0000000000000002L});
6879
    public static final BitSet FOLLOW_namedConst_in_namedConstList129 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
6880
    public static final BitSet FOLLOW_T_SEMICOLON_in_namedConstList132 = new BitSet(new long[]{0x0008000000000000L});
6881
    public static final BitSet FOLLOW_namedConst_in_namedConstList134 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
6882
    public static final BitSet FOLLOW_T_IDENTIFIER_in_namedConst150 = new BitSet(new long[]{0x0000010000000000L});
6883
    public static final BitSet FOLLOW_T_EQUAL_in_namedConst154 = new BitSet(new long[]{0x512C963244030080L,0x000048821000B298L});
6884
    public static final BitSet FOLLOW_expression_in_namedConst160 = new BitSet(new long[]{0x0000000000000002L});
6885
    public static final BitSet FOLLOW_namedType_in_namedTypeList180 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
6886
    public static final BitSet FOLLOW_T_SEMICOLON_in_namedTypeList183 = new BitSet(new long[]{0x0008000000000000L});
6887
    public static final BitSet FOLLOW_namedType_in_namedTypeList185 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
6888
    public static final BitSet FOLLOW_T_IDENTIFIER_in_namedType201 = new BitSet(new long[]{0x0000010000000000L});
6889
    public static final BitSet FOLLOW_T_EQUAL_in_namedType206 = new BitSet(new long[]{0x04080800000A4800L,0x000004000000003CL});
6890
    public static final BitSet FOLLOW_complexType_in_namedType218 = new BitSet(new long[]{0x0000000000000002L});
6891
    public static final BitSet FOLLOW_ooActionSystem_in_namedType230 = new BitSet(new long[]{0x0000000000000002L});
6892
    public static final BitSet FOLLOW_asTypeCompositionParallel_in_asTypeComposition266 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L});
6893
    public static final BitSet FOLLOW_T_PRIO_in_asTypeComposition271 = new BitSet(new long[]{0x0008000000000000L,0x0000000000000008L});
6894
    public static final BitSet FOLLOW_asTypeCompositionParallel_in_asTypeComposition273 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L});
6895
    public static final BitSet FOLLOW_asTypeCompositionSequential_in_asTypeCompositionParallel296 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L});
6896
    public static final BitSet FOLLOW_T_NONDET_in_asTypeCompositionParallel300 = new BitSet(new long[]{0x0008000000000000L,0x0000000000000008L});
6897
    public static final BitSet FOLLOW_asTypeCompositionSequential_in_asTypeCompositionParallel302 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L});
6898
    public static final BitSet FOLLOW_asTypeCompositionBlockParen_in_asTypeCompositionSequential324 = new BitSet(new long[]{0x0000000000000002L});
6899
    public static final BitSet FOLLOW_T_LPAREN_in_asTypeCompositionBlockParen339 = new BitSet(new long[]{0x0008000000000000L,0x0000000000000008L});
6900
    public static final BitSet FOLLOW_asTypeComposition_in_asTypeCompositionBlockParen341 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
6901
    public static final BitSet FOLLOW_T_RPAREN_in_asTypeCompositionBlockParen344 = new BitSet(new long[]{0x0000000000000002L});
6902
    public static final BitSet FOLLOW_T_IDENTIFIER_in_asTypeCompositionBlockParen351 = new BitSet(new long[]{0x0000000000000002L});
6903
    public static final BitSet FOLLOW_T_LIST_in_complexType382 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
6904
    public static final BitSet FOLLOW_T_LSQPAREN_in_complexType385 = new BitSet(new long[]{0x1008000000000000L});
6905
    public static final BitSet FOLLOW_set_in_complexType389 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
6906
    public static final BitSet FOLLOW_T_RSQPAREN_in_complexType395 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
6907
    public static final BitSet FOLLOW_T_OF_in_complexType397 = new BitSet(new long[]{0x04080800000A4000L,0x000000000000003CL});
6908
    public static final BitSet FOLLOW_complexType_in_complexType402 = new BitSet(new long[]{0x0000000000000002L});
6909
    public static final BitSet FOLLOW_T_LSQPAREN_in_complexType417 = new BitSet(new long[]{0x0008000000000000L});
6910
    public static final BitSet FOLLOW_T_IDENTIFIER_in_complexType421 = new BitSet(new long[]{0x0000000000200000L,0x0000000100000000L});
6911
    public static final BitSet FOLLOW_T_COMMA_in_complexType430 = new BitSet(new long[]{0x0008000000000000L});
6912
    public static final BitSet FOLLOW_T_IDENTIFIER_in_complexType434 = new BitSet(new long[]{0x0000000000200000L,0x0000000100000000L});
6913
    public static final BitSet FOLLOW_T_RSQPAREN_in_complexType440 = new BitSet(new long[]{0x0000000000000002L});
6914
    public static final BitSet FOLLOW_T_MAP_in_complexType450 = new BitSet(new long[]{0x04080800000A4000L,0x0000000000000010L});
6915
    public static final BitSet FOLLOW_T_LSQPAREN_in_complexType455 = new BitSet(new long[]{0x1008000000000000L});
6916
    public static final BitSet FOLLOW_set_in_complexType459 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
6917
    public static final BitSet FOLLOW_T_RSQPAREN_in_complexType465 = new BitSet(new long[]{0x04080800000A4000L});
6918
    public static final BitSet FOLLOW_simpleType_in_complexType471 = new BitSet(new long[]{0x0000000000000000L,0x0000200000000000L});
6919
    public static final BitSet FOLLOW_T_TO_in_complexType473 = new BitSet(new long[]{0x04080800000A4000L,0x000000000000003CL});
6920
    public static final BitSet FOLLOW_complexType_in_complexType477 = new BitSet(new long[]{0x0000000000000002L});
6921
    public static final BitSet FOLLOW_T_LPAREN_in_complexType492 = new BitSet(new long[]{0x04080800000A4000L,0x000000000000003CL});
6922
    public static final BitSet FOLLOW_complexType_in_complexType496 = new BitSet(new long[]{0x0000000000200000L,0x0000000080000000L});
6923
    public static final BitSet FOLLOW_T_COMMA_in_complexType505 = new BitSet(new long[]{0x04080800000A4000L,0x000000000000003CL});
6924
    public static final BitSet FOLLOW_complexType_in_complexType509 = new BitSet(new long[]{0x0000000000200000L,0x0000000080000000L});
6925
    public static final BitSet FOLLOW_T_RPAREN_in_complexType516 = new BitSet(new long[]{0x0000000000000002L});
6926
    public static final BitSet FOLLOW_simpleType_in_complexType529 = new BitSet(new long[]{0x0000000000000002L});
6927
    public static final BitSet FOLLOW_T_BOOL_in_simpleType562 = new BitSet(new long[]{0x0000000000000002L});
6928
    public static final BitSet FOLLOW_T_INT_in_simpleType575 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
6929
    public static final BitSet FOLLOW_T_LSQPAREN_in_simpleType577 = new BitSet(new long[]{0x1208000000000000L});
6930
    public static final BitSet FOLLOW_set_in_simpleType581 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
6931
    public static final BitSet FOLLOW_T_RANGETO_in_simpleType589 = new BitSet(new long[]{0x1208000000000000L});
6932
    public static final BitSet FOLLOW_set_in_simpleType593 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
6933
    public static final BitSet FOLLOW_T_RSQPAREN_in_simpleType601 = new BitSet(new long[]{0x0000000000000002L});
6934
    public static final BitSet FOLLOW_T_FLOAT_in_simpleType620 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
6935
    public static final BitSet FOLLOW_T_LSQPAREN_in_simpleType623 = new BitSet(new long[]{0x0208100000000000L});
6936
    public static final BitSet FOLLOW_set_in_simpleType627 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
6937
    public static final BitSet FOLLOW_T_RANGETO_in_simpleType635 = new BitSet(new long[]{0x0208100000000000L});
6938
    public static final BitSet FOLLOW_set_in_simpleType639 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
6939
    public static final BitSet FOLLOW_T_RSQPAREN_in_simpleType647 = new BitSet(new long[]{0x0000000000000002L});
6940
    public static final BitSet FOLLOW_T_CHAR_in_simpleType665 = new BitSet(new long[]{0x0000000000000002L});
6941
    public static final BitSet FOLLOW_T_CBRL_in_simpleType681 = new BitSet(new long[]{0x0008000000000000L});
6942
    public static final BitSet FOLLOW_T_IDENTIFIER_in_simpleType685 = new BitSet(new long[]{0x0000010000240000L});
6943
    public static final BitSet FOLLOW_T_EQUAL_in_simpleType688 = new BitSet(new long[]{0x1000000000000000L});
6944
    public static final BitSet FOLLOW_T_INTNUMBER_in_simpleType692 = new BitSet(new long[]{0x0000000000240000L});
6945
    public static final BitSet FOLLOW_T_COMMA_in_simpleType703 = new BitSet(new long[]{0x0008000000000000L});
6946
    public static final BitSet FOLLOW_T_IDENTIFIER_in_simpleType707 = new BitSet(new long[]{0x0000010000240000L});
6947
    public static final BitSet FOLLOW_T_EQUAL_in_simpleType710 = new BitSet(new long[]{0x1000000000000000L});
6948
    public static final BitSet FOLLOW_T_INTNUMBER_in_simpleType714 = new BitSet(new long[]{0x0000000000240000L});
6949
    public static final BitSet FOLLOW_T_CBRR_in_simpleType722 = new BitSet(new long[]{0x0000000000000002L});
6950
    public static final BitSet FOLLOW_T_IDENTIFIER_in_simpleType733 = new BitSet(new long[]{0x0000000000000002L});
6951
    public static final BitSet FOLLOW_T_AUTOCONS_in_ooActionSystem776 = new BitSet(new long[]{0x0000000000000000L,0x0000040000000000L});
6952
    public static final BitSet FOLLOW_T_SYSTEM_in_ooActionSystem785 = new BitSet(new long[]{0x0000000000000000L,0x0200000000000008L});
6953
    public static final BitSet FOLLOW_T_LPAREN_in_ooActionSystem788 = new BitSet(new long[]{0x0008000000000000L});
6954
    public static final BitSet FOLLOW_T_IDENTIFIER_in_ooActionSystem792 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
6955
    public static final BitSet FOLLOW_T_RPAREN_in_ooActionSystem794 = new BitSet(new long[]{0x0000000000000000L,0x0200000000000000L});
6956
    public static final BitSet FOLLOW_121_in_ooActionSystem807 = new BitSet(new long[]{0x0000000100000100L,0x0042000000000100L});
6957
    public static final BitSet FOLLOW_T_VAR_in_ooActionSystem813 = new BitSet(new long[]{0x0008000002000000L,0x0000004000020000L});
6958
    public static final BitSet FOLLOW_attrList_in_ooActionSystem815 = new BitSet(new long[]{0x0000000100000100L,0x0040000000000100L});
6959
    public static final BitSet FOLLOW_T_METHODS_in_ooActionSystem823 = new BitSet(new long[]{0x0008000000000000L});
6960
    public static final BitSet FOLLOW_methodList_in_ooActionSystem825 = new BitSet(new long[]{0x0000000100000100L,0x0040000000000000L});
6961
    public static final BitSet FOLLOW_T_ACTIONS_in_ooActionSystem833 = new BitSet(new long[]{0x0008000002000000L,0x0000000000020000L});
6962
    public static final BitSet FOLLOW_namedActionList_in_ooActionSystem835 = new BitSet(new long[]{0x0000000100000000L,0x0040000000000000L});
6963
    public static final BitSet FOLLOW_T_DO_in_ooActionSystem843 = new BitSet(new long[]{0x0008000000000000L,0x0002002008040008L});
6964
    public static final BitSet FOLLOW_actionBlock_in_ooActionSystem848 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
6965
    public static final BitSet FOLLOW_T_OD_in_ooActionSystem855 = new BitSet(new long[]{0x0000000000000000L,0x0040000000000000L});
6966
    public static final BitSet FOLLOW_118_in_ooActionSystem861 = new BitSet(new long[]{0x0000000000000002L});
6967
    public static final BitSet FOLLOW_attr_in_attrList892 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
6968
    public static final BitSet FOLLOW_T_SEMICOLON_in_attrList895 = new BitSet(new long[]{0x0008000002000000L,0x0000004000020000L});
6969
    public static final BitSet FOLLOW_attr_in_attrList897 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
6970
    public static final BitSet FOLLOW_T_STATIC_in_attr922 = new BitSet(new long[]{0x0008000002000000L,0x0000000000020000L});
6971
    public static final BitSet FOLLOW_T_OBS_in_attr929 = new BitSet(new long[]{0x0008000000000000L});
6972
    public static final BitSet FOLLOW_T_CTRL_in_attr935 = new BitSet(new long[]{0x0008000000000000L});
6973
    public static final BitSet FOLLOW_T_IDENTIFIER_in_attr946 = new BitSet(new long[]{0x0000000000100000L});
6974
    public static final BitSet FOLLOW_T_COLON_in_attr949 = new BitSet(new long[]{0x04080800000A4000L,0x000000000000003CL});
6975
    public static final BitSet FOLLOW_complexType_in_attr953 = new BitSet(new long[]{0x0000010000000002L});
6976
    public static final BitSet FOLLOW_T_EQUAL_in_attr956 = new BitSet(new long[]{0x512C963244030080L,0x000048821000B298L});
6977
    public static final BitSet FOLLOW_expression_in_attr960 = new BitSet(new long[]{0x0000000000000002L});
6978
    public static final BitSet FOLLOW_method_in_methodList982 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
6979
    public static final BitSet FOLLOW_T_SEMICOLON_in_methodList985 = new BitSet(new long[]{0x0008000000000000L});
6980
    public static final BitSet FOLLOW_method_in_methodList987 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
6981
    public static final BitSet FOLLOW_T_IDENTIFIER_in_method1009 = new BitSet(new long[]{0x0000010000100000L,0x0000000000000008L});
6982
    public static final BitSet FOLLOW_T_LPAREN_in_method1017 = new BitSet(new long[]{0x0008000000000000L});
6983
    public static final BitSet FOLLOW_methodParameterList_in_method1019 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
6984
    public static final BitSet FOLLOW_T_RPAREN_in_method1023 = new BitSet(new long[]{0x0000010000100000L});
6985
    public static final BitSet FOLLOW_T_COLON_in_method1031 = new BitSet(new long[]{0x04080800000A4000L,0x000000000000003CL});
6986
    public static final BitSet FOLLOW_complexType_in_method1035 = new BitSet(new long[]{0x0000010000000000L});
6987
    public static final BitSet FOLLOW_T_EQUAL_in_method1045 = new BitSet(new long[]{0x2008000000008040L,0x0002002208000008L});
6988
    public static final BitSet FOLLOW_T_VAR_in_method1053 = new BitSet(new long[]{0x0008000000000000L});
6989
    public static final BitSet FOLLOW_localActionVars_in_method1055 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000000L});
6990
    public static final BitSet FOLLOW_120_in_method1058 = new BitSet(new long[]{0x2008000000008040L,0x0002002208000008L});
6991
    public static final BitSet FOLLOW_actionBody_in_method1333 = new BitSet(new long[]{0x0000008000000000L});
6992
    public static final BitSet FOLLOW_T_END_in_method1341 = new BitSet(new long[]{0x0000000000000002L});
6993
    public static final BitSet FOLLOW_T_IDENTIFIER_in_methodParameterList1365 = new BitSet(new long[]{0x0000000000100000L});
6994
    public static final BitSet FOLLOW_T_COLON_in_methodParameterList1367 = new BitSet(new long[]{0x04080800000A4000L,0x000000000000003CL});
6995
    public static final BitSet FOLLOW_complexType_in_methodParameterList1371 = new BitSet(new long[]{0x0000000000200002L});
6996
    public static final BitSet FOLLOW_T_COMMA_in_methodParameterList1379 = new BitSet(new long[]{0x0008000000000000L});
6997
    public static final BitSet FOLLOW_T_IDENTIFIER_in_methodParameterList1383 = new BitSet(new long[]{0x0000000000100000L});
6998
    public static final BitSet FOLLOW_T_COLON_in_methodParameterList1385 = new BitSet(new long[]{0x04080800000A4000L,0x000000000000003CL});
6999
    public static final BitSet FOLLOW_complexType_in_methodParameterList1389 = new BitSet(new long[]{0x0000000000200002L});
7000
    public static final BitSet FOLLOW_namedAction_in_namedActionList1416 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
7001
    public static final BitSet FOLLOW_T_SEMICOLON_in_namedActionList1419 = new BitSet(new long[]{0x0008000002000000L,0x0000000000020000L});
7002
    public static final BitSet FOLLOW_namedAction_in_namedActionList1421 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
7003
    public static final BitSet FOLLOW_T_CTRL_in_namedAction1446 = new BitSet(new long[]{0x0008000000000000L});
7004
    public static final BitSet FOLLOW_T_OBS_in_namedAction1451 = new BitSet(new long[]{0x0008000000000000L});
7005
    public static final BitSet FOLLOW_T_IDENTIFIER_in_namedAction1463 = new BitSet(new long[]{0x0000010000000000L,0x0000000000000008L});
7006
    public static final BitSet FOLLOW_T_LPAREN_in_namedAction1471 = new BitSet(new long[]{0x0008000000000000L});
7007
    public static final BitSet FOLLOW_methodParameterList_in_namedAction1473 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
7008
    public static final BitSet FOLLOW_T_RPAREN_in_namedAction1477 = new BitSet(new long[]{0x0000010000000000L});
7009
    public static final BitSet FOLLOW_T_EQUAL_in_namedAction1484 = new BitSet(new long[]{0x0000000000000000L,0x0002000008000000L});
7010
    public static final BitSet FOLLOW_T_VAR_in_namedAction1490 = new BitSet(new long[]{0x0008000000000000L});
7011
    public static final BitSet FOLLOW_localActionVars_in_namedAction1492 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
7012
    public static final BitSet FOLLOW_discreteActionBody_in_namedAction1503 = new BitSet(new long[]{0x0000000000000002L});
7013
    public static final BitSet FOLLOW_T_IDENTIFIER_in_localActionVars1535 = new BitSet(new long[]{0x0000000000100000L});
7014
    public static final BitSet FOLLOW_T_COLON_in_localActionVars1537 = new BitSet(new long[]{0x04080800000A4000L,0x000000000000003CL});
7015
    public static final BitSet FOLLOW_complexType_in_localActionVars1541 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
7016
    public static final BitSet FOLLOW_T_SEMICOLON_in_localActionVars1550 = new BitSet(new long[]{0x0008000000000000L});
7017
    public static final BitSet FOLLOW_T_IDENTIFIER_in_localActionVars1554 = new BitSet(new long[]{0x0000000000100000L});
7018
    public static final BitSet FOLLOW_T_COLON_in_localActionVars1556 = new BitSet(new long[]{0x04080800000A4000L,0x000000000000003CL});
7019
    public static final BitSet FOLLOW_complexType_in_localActionVars1560 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
7020
    public static final BitSet FOLLOW_discreteActionBody_in_anonymousAction1593 = new BitSet(new long[]{0x0000000000000002L});
7021
    public static final BitSet FOLLOW_T_REQUIRES_in_discreteActionBody1624 = new BitSet(new long[]{0x512C963244030080L,0x000048821000B298L});
7022
    public static final BitSet FOLLOW_expression_in_discreteActionBody1628 = new BitSet(new long[]{0x0000000000100000L});
7023
    public static final BitSet FOLLOW_T_COLON_in_discreteActionBody1630 = new BitSet(new long[]{0x2008000000008040L,0x0002002208000008L});
7024
    public static final BitSet FOLLOW_actionBody_in_discreteActionBody1637 = new BitSet(new long[]{0x0000008000000000L});
7025
    public static final BitSet FOLLOW_T_END_in_discreteActionBody1642 = new BitSet(new long[]{0x0000000000000002L});
7026
    public static final BitSet FOLLOW_actionBlockParallel_in_actionBlock1685 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L});
7027
    public static final BitSet FOLLOW_T_PRIO_in_actionBlock1689 = new BitSet(new long[]{0x0008000000000000L,0x0002002008000008L});
7028
    public static final BitSet FOLLOW_actionBlockParallel_in_actionBlock1691 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L});
7029
    public static final BitSet FOLLOW_actionBlockSequential_in_actionBlockParallel1724 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L});
7030
    public static final BitSet FOLLOW_T_NONDET_in_actionBlockParallel1728 = new BitSet(new long[]{0x0008000000000000L,0x0002002008000008L});
7031
    public static final BitSet FOLLOW_actionBlockSequential_in_actionBlockParallel1730 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L});
7032
    public static final BitSet FOLLOW_T_VAR_in_actionBlockSequential1764 = new BitSet(new long[]{0x0008000000000000L});
7033
    public static final BitSet FOLLOW_blockvarlist_in_actionBlockSequential1768 = new BitSet(new long[]{0x0000000000100000L,0x0010000000000000L});
7034
    public static final BitSet FOLLOW_116_in_actionBlockSequential1772 = new BitSet(new long[]{0x512C963244030080L,0x000048821000B298L});
7035
    public static final BitSet FOLLOW_expression_in_actionBlockSequential1776 = new BitSet(new long[]{0x0000000000100000L});
7036
    public static final BitSet FOLLOW_T_COLON_in_actionBlockSequential1783 = new BitSet(new long[]{0x0008000000000000L,0x0000002008000008L});
7037
    public static final BitSet FOLLOW_actionBlockParen_in_actionBlockSequential1792 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
7038
    public static final BitSet FOLLOW_T_SEMICOLON_in_actionBlockSequential1796 = new BitSet(new long[]{0x0008000000000000L,0x0000002008000008L});
7039
    public static final BitSet FOLLOW_actionBlockParen_in_actionBlockSequential1798 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
7040
    public static final BitSet FOLLOW_T_LPAREN_in_actionBlockParen1822 = new BitSet(new long[]{0x0008000000000000L,0x0002002008000008L});
7041
    public static final BitSet FOLLOW_actionBlock_in_actionBlockParen1824 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
7042
    public static final BitSet FOLLOW_T_RPAREN_in_actionBlockParen1827 = new BitSet(new long[]{0x0000000000000002L});
7043
    public static final BitSet FOLLOW_anonymousOrNamedAction_in_actionBlockParen1832 = new BitSet(new long[]{0x0000000000000002L});
7044
    public static final BitSet FOLLOW_anonymousAction_in_anonymousOrNamedAction1849 = new BitSet(new long[]{0x0000000000000002L});
7045
    public static final BitSet FOLLOW_T_IDENTIFIER_in_anonymousOrNamedAction1858 = new BitSet(new long[]{0x0000600000000002L,0x0000000000000008L});
7046
    public static final BitSet FOLLOW_T_LPAREN_in_anonymousOrNamedAction1872 = new BitSet(new long[]{0x512C963244030080L,0x000048829000B298L});
7047
    public static final BitSet FOLLOW_methodCallParams_in_anonymousOrNamedAction1877 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
7048
    public static final BitSet FOLLOW_T_RPAREN_in_anonymousOrNamedAction1879 = new BitSet(new long[]{0x0000600000000002L});
7049
    public static final BitSet FOLLOW_set_in_anonymousOrNamedAction1897 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
7050
    public static final BitSet FOLLOW_T_LPAREN_in_anonymousOrNamedAction1903 = new BitSet(new long[]{0x512C963244030080L,0x000048821000B298L});
7051
    public static final BitSet FOLLOW_expression_in_anonymousOrNamedAction1907 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
7052
    public static final BitSet FOLLOW_T_RPAREN_in_anonymousOrNamedAction1909 = new BitSet(new long[]{0x0000000000000002L});
7053
    public static final BitSet FOLLOW_T_SKIP_in_anonymousOrNamedAction1920 = new BitSet(new long[]{0x0000000000000002L});
7054
    public static final BitSet FOLLOW_blockvar_in_blockvarlist1936 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
7055
    public static final BitSet FOLLOW_T_SEMICOLON_in_blockvarlist1941 = new BitSet(new long[]{0x0008000000000000L});
7056
    public static final BitSet FOLLOW_blockvar_in_blockvarlist1943 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
7057
    public static final BitSet FOLLOW_T_IDENTIFIER_in_blockvar1963 = new BitSet(new long[]{0x0000000000100000L});
7058
    public static final BitSet FOLLOW_T_COLON_in_blockvar1966 = new BitSet(new long[]{0x04080800000A4000L,0x000000000000003CL});
7059
    public static final BitSet FOLLOW_complexType_in_blockvar1970 = new BitSet(new long[]{0x0000000000000002L});
7060
    public static final BitSet FOLLOW_actionBodyParallel_in_actionBody2005 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L});
7061
    public static final BitSet FOLLOW_T_PRIO_in_actionBody2009 = new BitSet(new long[]{0x2008000000008040L,0x0002002208000008L});
7062
    public static final BitSet FOLLOW_actionBodyParallel_in_actionBody2011 = new BitSet(new long[]{0x0000000000000002L});
7063
    public static final BitSet FOLLOW_actionBodySequential_in_actionBodyParallel2046 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L});
7064
    public static final BitSet FOLLOW_T_NONDET_in_actionBodyParallel2052 = new BitSet(new long[]{0x2008000000008040L,0x0002002208000008L});
7065
    public static final BitSet FOLLOW_actionBodySequential_in_actionBodyParallel2056 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L});
7066
    public static final BitSet FOLLOW_T_VAR_in_actionBodySequential2092 = new BitSet(new long[]{0x0008000000000000L});
7067
    public static final BitSet FOLLOW_blockvarlist_in_actionBodySequential2096 = new BitSet(new long[]{0x0000000000100000L,0x0010000000000000L});
7068
    public static final BitSet FOLLOW_116_in_actionBodySequential2100 = new BitSet(new long[]{0x512C963244030080L,0x000048821000B298L});
7069
    public static final BitSet FOLLOW_expression_in_actionBodySequential2104 = new BitSet(new long[]{0x0000000000100000L});
7070
    public static final BitSet FOLLOW_T_COLON_in_actionBodySequential2111 = new BitSet(new long[]{0x2008000000008040L,0x0000002208000008L});
7071
    public static final BitSet FOLLOW_actionBodyParen_in_actionBodySequential2119 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
7072
    public static final BitSet FOLLOW_T_SEMICOLON_in_actionBodySequential2123 = new BitSet(new long[]{0x2008000000008040L,0x0000002208000008L});
7073
    public static final BitSet FOLLOW_actionBodyParen_in_actionBodySequential2125 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
7074
    public static final BitSet FOLLOW_T_LPAREN_in_actionBodyParen2153 = new BitSet(new long[]{0x2008000000008040L,0x0002002208000008L});
7075
    public static final BitSet FOLLOW_actionBody_in_actionBodyParen2155 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
7076
    public static final BitSet FOLLOW_T_RPAREN_in_actionBodyParen2159 = new BitSet(new long[]{0x0000000000000002L});
7077
    public static final BitSet FOLLOW_statement_in_actionBodyParen2166 = new BitSet(new long[]{0x0000000000000002L});
7078
    public static final BitSet FOLLOW_T_ABORT_in_statement2194 = new BitSet(new long[]{0x0000000000000002L});
7079
    public static final BitSet FOLLOW_T_SKIP_in_statement2201 = new BitSet(new long[]{0x0000000000000002L});
7080
    public static final BitSet FOLLOW_T_BREAK_in_statement2208 = new BitSet(new long[]{0x0000000000000002L});
7081
    public static final BitSet FOLLOW_T_KILL_in_statement2215 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
7082
    public static final BitSet FOLLOW_T_LPAREN_in_statement2217 = new BitSet(new long[]{0x0008000000000000L,0x0000000200000000L});
7083
    public static final BitSet FOLLOW_set_in_statement2221 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
7084
    public static final BitSet FOLLOW_T_RPAREN_in_statement2229 = new BitSet(new long[]{0x0000000000000002L});
7085
    public static final BitSet FOLLOW_discreteActionBody_in_statement2239 = new BitSet(new long[]{0x0000000000000002L});
7086
    public static final BitSet FOLLOW_reference_in_statement2248 = new BitSet(new long[]{0x0000000000200402L});
7087
    public static final BitSet FOLLOW_T_ASSIGNMENT_in_statement2276 = new BitSet(new long[]{0x512C963244030080L,0x000048821000B298L});
7088
    public static final BitSet FOLLOW_expression_in_statement2281 = new BitSet(new long[]{0x0000000000000002L,0x0004000000000000L});
7089
    public static final BitSet FOLLOW_T_WITH_in_statement2301 = new BitSet(new long[]{0x512C963244030080L,0x000048821000B298L});
7090
    public static final BitSet FOLLOW_expression_in_statement2305 = new BitSet(new long[]{0x0000000000000002L});
7091
    public static final BitSet FOLLOW_T_COMMA_in_statement2358 = new BitSet(new long[]{0x0008000000000000L,0x0000000200000000L});
7092
    public static final BitSet FOLLOW_reference_in_statement2362 = new BitSet(new long[]{0x0000000000200400L});
7093
    public static final BitSet FOLLOW_T_ASSIGNMENT_in_statement2377 = new BitSet(new long[]{0x512C963244030080L,0x000048821000B298L});
7094
    public static final BitSet FOLLOW_expression_in_statement2399 = new BitSet(new long[]{0x0000000000200000L});
7095
    public static final BitSet FOLLOW_T_COMMA_in_statement2418 = new BitSet(new long[]{0x512C963244030080L,0x000048821000B298L});
7096
    public static final BitSet FOLLOW_expression_in_statement2422 = new BitSet(new long[]{0x0000000000200002L,0x0004000000000000L});
7097
    public static final BitSet FOLLOW_T_WITH_in_statement2436 = new BitSet(new long[]{0x512C963244030080L,0x000048821000B298L});
7098
    public static final BitSet FOLLOW_expression_in_statement2440 = new BitSet(new long[]{0x0000000000000002L});
7099
    public static final BitSet FOLLOW_atomExpression_in_expression2515 = new BitSet(new long[]{0x88D3010C90802202L,0x0001030862518E01L});
7100
    public static final BitSet FOLLOW_binoperator_in_expression2528 = new BitSet(new long[]{0x512C963244030080L,0x000048821000B298L});
7101
    public static final BitSet FOLLOW_atomExpression_in_expression2536 = new BitSet(new long[]{0x88D3010C90802202L,0x0001030862518E01L});
7102
    public static final BitSet FOLLOW_T_BIIMPLIES_in_binoperator2569 = new BitSet(new long[]{0x0000000000000002L});
7103
    public static final BitSet FOLLOW_T_GREATER_in_binoperator2578 = new BitSet(new long[]{0x0000000000000002L});
7104
    public static final BitSet FOLLOW_T_GREATEREQUAL_in_binoperator2588 = new BitSet(new long[]{0x0000000000000002L});
7105
    public static final BitSet FOLLOW_T_LESS_in_binoperator2597 = new BitSet(new long[]{0x0000000000000002L});
7106
    public static final BitSet FOLLOW_T_LESSEQUAL_in_binoperator2607 = new BitSet(new long[]{0x0000000000000002L});
7107
    public static final BitSet FOLLOW_T_EQUAL_in_binoperator2616 = new BitSet(new long[]{0x0000000000000002L});
7108
    public static final BitSet FOLLOW_T_NOTEQUAL_in_binoperator2628 = new BitSet(new long[]{0x0000000000000002L});
7109
    public static final BitSet FOLLOW_T_IMPLIES_in_binoperator2639 = new BitSet(new long[]{0x0000000000000002L});
7110
    public static final BitSet FOLLOW_T_MINUS_in_binoperator2648 = new BitSet(new long[]{0x0000000000000002L});
7111
    public static final BitSet FOLLOW_T_SUM_in_binoperator2658 = new BitSet(new long[]{0x0000000000000002L});
7112
    public static final BitSet FOLLOW_T_IN_in_binoperator2668 = new BitSet(new long[]{0x0000000000000002L,0x0000001000000000L});
7113
    public static final BitSet FOLLOW_T_SET_in_binoperator2670 = new BitSet(new long[]{0x0000000000000002L});
7114
    public static final BitSet FOLLOW_T_NOT_in_binoperator2681 = new BitSet(new long[]{0x0080000000000000L});
7115
    public static final BitSet FOLLOW_T_IN_in_binoperator2683 = new BitSet(new long[]{0x0000000000000002L,0x0000001000000000L});
7116
    public static final BitSet FOLLOW_T_SET_in_binoperator2685 = new BitSet(new long[]{0x0000000000000002L});
7117
    public static final BitSet FOLLOW_T_SUBSET_in_binoperator2696 = new BitSet(new long[]{0x0000000000000002L});
7118
    public static final BitSet FOLLOW_T_OR_in_binoperator2706 = new BitSet(new long[]{0x0000000000000002L});
7119
    public static final BitSet FOLLOW_T_DIV_in_binoperator2715 = new BitSet(new long[]{0x0000000000000002L});
7120
    public static final BitSet FOLLOW_T_PROD_in_binoperator2724 = new BitSet(new long[]{0x0000000000000002L});
7121
    public static final BitSet FOLLOW_T_IDIV_in_binoperator2734 = new BitSet(new long[]{0x0000000000000002L});
7122
    public static final BitSet FOLLOW_T_MOD_in_binoperator2744 = new BitSet(new long[]{0x0000000000000002L});
7123
    public static final BitSet FOLLOW_T_UNION_in_binoperator2754 = new BitSet(new long[]{0x0000000000000002L});
7124
    public static final BitSet FOLLOW_T_DIFF_in_binoperator2765 = new BitSet(new long[]{0x0000000000000002L});
7125
    public static final BitSet FOLLOW_T_INTER_in_binoperator2776 = new BitSet(new long[]{0x0000000000000002L});
7126
    public static final BitSet FOLLOW_T_AND_in_binoperator2787 = new BitSet(new long[]{0x0000000000000002L});
7127
    public static final BitSet FOLLOW_T_POW_in_binoperator2802 = new BitSet(new long[]{0x0000000000000002L});
7128
    public static final BitSet FOLLOW_T_CONC_in_binoperator2817 = new BitSet(new long[]{0x0000000000000002L});
7129
    public static final BitSet FOLLOW_T_DOMRESBY_in_binoperator2830 = new BitSet(new long[]{0x0000000000000002L});
7130
    public static final BitSet FOLLOW_T_DOMRESTO_in_binoperator2840 = new BitSet(new long[]{0x0000000000000002L});
7131
    public static final BitSet FOLLOW_T_RNGRESBY_in_binoperator2850 = new BitSet(new long[]{0x0000000000000002L});
7132
    public static final BitSet FOLLOW_T_RNGRESTO_in_binoperator2860 = new BitSet(new long[]{0x0000000000000002L});
7133
    public static final BitSet FOLLOW_T_MUNION_in_binoperator2870 = new BitSet(new long[]{0x0000000000000002L});
7134
    public static final BitSet FOLLOW_T_SEQMOD_MAPOVERRIDE_in_binoperator2880 = new BitSet(new long[]{0x0000000000000002L});
7135
    public static final BitSet FOLLOW_op_un_in_atomExpression2918 = new BitSet(new long[]{0x1008960000020000L,0x0000408200003018L});
7136
    public static final BitSet FOLLOW_identifierExpression_in_atomExpression2935 = new BitSet(new long[]{0x0000000000000002L,0x0080000000000000L});
7137
    public static final BitSet FOLLOW_constant_in_atomExpression2946 = new BitSet(new long[]{0x0000000000000002L,0x0080000000000000L});
7138
    public static final BitSet FOLLOW_initializedComplexType_in_atomExpression2957 = new BitSet(new long[]{0x0000000000000002L,0x0080000000000000L});
7139
    public static final BitSet FOLLOW_quantifierExpression_in_atomExpression2969 = new BitSet(new long[]{0x0000000000000002L,0x0080000000000000L});
7140
    public static final BitSet FOLLOW_T_LPAREN_in_atomExpression2978 = new BitSet(new long[]{0x512C963244030080L,0x000048821000B298L});
7141
    public static final BitSet FOLLOW_expression_in_atomExpression2982 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
7142
    public static final BitSet FOLLOW_T_RPAREN_in_atomExpression2984 = new BitSet(new long[]{0x0000000000000002L,0x0080000000200018L});
7143
    public static final BitSet FOLLOW_T_POINT_in_atomExpression3007 = new BitSet(new long[]{0x0008000000000000L});
7144
    public static final BitSet FOLLOW_T_IDENTIFIER_in_atomExpression3019 = new BitSet(new long[]{0x0000000000000002L,0x0080000000200018L});
7145
    public static final BitSet FOLLOW_accessExpression_in_atomExpression3043 = new BitSet(new long[]{0x0000000000000002L,0x0080000000000000L});
7146
    public static final BitSet FOLLOW_accessExpression_in_atomExpression3063 = new BitSet(new long[]{0x0000000000000002L,0x0080000000000000L});
7147
    public static final BitSet FOLLOW_119_in_atomExpression3082 = new BitSet(new long[]{0x0008000000000000L});
7148
    public static final BitSet FOLLOW_T_IDENTIFIER_in_atomExpression3086 = new BitSet(new long[]{0x0000000000000002L});
7149
    public static final BitSet FOLLOW_T_IF_in_atomExpression3107 = new BitSet(new long[]{0x512C963244030080L,0x000048821000B298L});
7150
    public static final BitSet FOLLOW_expression_in_atomExpression3111 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
7151
    public static final BitSet FOLLOW_T_THEN_in_atomExpression3113 = new BitSet(new long[]{0x512C963244030080L,0x000048821000B298L});
7152
    public static final BitSet FOLLOW_expression_in_atomExpression3117 = new BitSet(new long[]{0x0000004000000000L});
7153
    public static final BitSet FOLLOW_T_ELSE_in_atomExpression3119 = new BitSet(new long[]{0x512C963244030080L,0x000048821000B298L});
7154
    public static final BitSet FOLLOW_expression_in_atomExpression3123 = new BitSet(new long[]{0x0000008000000000L});
7155
    public static final BitSet FOLLOW_T_END_in_atomExpression3125 = new BitSet(new long[]{0x0000000000000002L});
7156
    public static final BitSet FOLLOW_set_in_quantifierExpression3157 = new BitSet(new long[]{0x0008000000000000L});
7157
    public static final BitSet FOLLOW_T_IDENTIFIER_in_quantifierExpression3174 = new BitSet(new long[]{0x0000000000100000L});
7158
    public static final BitSet FOLLOW_T_COLON_in_quantifierExpression3177 = new BitSet(new long[]{0x04080800000A4000L});
7159
    public static final BitSet FOLLOW_simpleType_in_quantifierExpression3181 = new BitSet(new long[]{0x0000000000300000L});
7160
    public static final BitSet FOLLOW_T_COMMA_in_quantifierExpression3192 = new BitSet(new long[]{0x0008000000000000L});
7161
    public static final BitSet FOLLOW_T_IDENTIFIER_in_quantifierExpression3196 = new BitSet(new long[]{0x0000000000100000L});
7162
    public static final BitSet FOLLOW_T_COLON_in_quantifierExpression3199 = new BitSet(new long[]{0x04080800000A4000L});
7163
    public static final BitSet FOLLOW_simpleType_in_quantifierExpression3203 = new BitSet(new long[]{0x0000000000300000L});
7164
    public static final BitSet FOLLOW_T_COLON_in_quantifierExpression3213 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
7165
    public static final BitSet FOLLOW_T_LPAREN_in_quantifierExpression3215 = new BitSet(new long[]{0x512C963244030080L,0x000048821000B298L});
7166
    public static final BitSet FOLLOW_expression_in_quantifierExpression3219 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
7167
    public static final BitSet FOLLOW_T_RPAREN_in_quantifierExpression3221 = new BitSet(new long[]{0x0000000000000002L});
7168
    public static final BitSet FOLLOW_T_TRUE_in_constant3255 = new BitSet(new long[]{0x0000000000000002L});
7169
    public static final BitSet FOLLOW_T_FALSE_in_constant3263 = new BitSet(new long[]{0x0000000000000002L});
7170
    public static final BitSet FOLLOW_T_NIL_in_constant3270 = new BitSet(new long[]{0x0000000000000002L});
7171
    public static final BitSet FOLLOW_T_SELF_in_constant3278 = new BitSet(new long[]{0x0000000000000002L});
7172
    public static final BitSet FOLLOW_T_FLOATNUMBER_in_constant3289 = new BitSet(new long[]{0x0000000000000002L});
7173
    public static final BitSet FOLLOW_T_INTNUMBER_in_constant3298 = new BitSet(new long[]{0x0000000000000002L});
7174
    public static final BitSet FOLLOW_T_STRINGLITERAL_in_constant3307 = new BitSet(new long[]{0x0000000000000002L});
7175
    public static final BitSet FOLLOW_initializedListType_in_initializedComplexType3334 = new BitSet(new long[]{0x0000000000000002L});
7176
    public static final BitSet FOLLOW_initializedSetType_in_initializedComplexType3343 = new BitSet(new long[]{0x0000000000000002L});
7177
    public static final BitSet FOLLOW_T_NEW_in_initializedComplexType3351 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
7178
    public static final BitSet FOLLOW_T_LPAREN_in_initializedComplexType3353 = new BitSet(new long[]{0x0008000000000000L});
7179
    public static final BitSet FOLLOW_T_IDENTIFIER_in_initializedComplexType3357 = new BitSet(new long[]{0x0000000000200000L,0x0000000080000000L});
7180
    public static final BitSet FOLLOW_T_COMMA_in_initializedComplexType3369 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
7181
    public static final BitSet FOLLOW_T_STRINGLITERAL_in_initializedComplexType3374 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
7182
    public static final BitSet FOLLOW_T_RPAREN_in_initializedComplexType3376 = new BitSet(new long[]{0x0000000000000002L});
7183
    public static final BitSet FOLLOW_T_RPAREN_in_initializedComplexType3385 = new BitSet(new long[]{0x0000000000000002L});
7184
    public static final BitSet FOLLOW_T_LSQPAREN_in_initializedListType3416 = new BitSet(new long[]{0x512C963244030080L,0x000048821000B298L});
7185
    public static final BitSet FOLLOW_expression_in_initializedListType3420 = new BitSet(new long[]{0x0000000000201000L,0x0000000100000000L});
7186
    public static final BitSet FOLLOW_T_COMMA_in_initializedListType3431 = new BitSet(new long[]{0x512C963244030080L,0x000048821000B298L});
7187
    public static final BitSet FOLLOW_expression_in_initializedListType3435 = new BitSet(new long[]{0x0000000000200000L,0x0000000100000000L});
7188
    public static final BitSet FOLLOW_listComprehension_in_initializedListType3447 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
7189
    public static final BitSet FOLLOW_T_RSQPAREN_in_initializedListType3455 = new BitSet(new long[]{0x0000000000000002L});
7190
    public static final BitSet FOLLOW_T_BAR_in_listComprehension3486 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
7191
    public static final BitSet FOLLOW_T_VAR_in_listComprehension3488 = new BitSet(new long[]{0x0008000000000000L});
7192
    public static final BitSet FOLLOW_T_IDENTIFIER_in_listComprehension3494 = new BitSet(new long[]{0x0000000000100000L});
7193
    public static final BitSet FOLLOW_T_COLON_in_listComprehension3497 = new BitSet(new long[]{0x04080800000A4000L,0x000000000000003CL});
7194
    public static final BitSet FOLLOW_complexType_in_listComprehension3501 = new BitSet(new long[]{0x0000000000000002L,0x0010000400000000L});
7195
    public static final BitSet FOLLOW_T_SEMICOLON_in_listComprehension3510 = new BitSet(new long[]{0x0008000000000000L});
7196
    public static final BitSet FOLLOW_T_IDENTIFIER_in_listComprehension3514 = new BitSet(new long[]{0x04080800000A4000L,0x000000000000003CL});
7197
    public static final BitSet FOLLOW_complexType_in_listComprehension3519 = new BitSet(new long[]{0x0000000000000002L,0x0010000400000000L});
7198
    public static final BitSet FOLLOW_116_in_listComprehension3529 = new BitSet(new long[]{0x512C963244030080L,0x000048821000B298L});
7199
    public static final BitSet FOLLOW_expression_in_listComprehension3535 = new BitSet(new long[]{0x0000000000000002L});
7200
    public static final BitSet FOLLOW_T_CBRL_in_initializedSetType3561 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
7201
    public static final BitSet FOLLOW_T_MAPS_in_initializedSetType3563 = new BitSet(new long[]{0x0000000000040000L});
7202
    public static final BitSet FOLLOW_T_CBRR_in_initializedSetType3565 = new BitSet(new long[]{0x0000000000000002L});
7203
    public static final BitSet FOLLOW_initializedSet_in_initializedSetType3576 = new BitSet(new long[]{0x0000000000000002L});
7204
    public static final BitSet FOLLOW_T_CBRL_in_initializedSet3602 = new BitSet(new long[]{0x512C963244030080L,0x000048821000B298L});
7205
    public static final BitSet FOLLOW_expression_in_initializedSet3606 = new BitSet(new long[]{0x0000000000241000L,0x0000000000000040L});
7206
    public static final BitSet FOLLOW_T_COMMA_in_initializedSet3636 = new BitSet(new long[]{0x512C963244030080L,0x000048821000B298L});
7207
    public static final BitSet FOLLOW_expression_in_initializedSet3640 = new BitSet(new long[]{0x0000000000240000L});
7208
    public static final BitSet FOLLOW_map_in_initializedSet3658 = new BitSet(new long[]{0x0000000000040000L});
7209
    public static final BitSet FOLLOW_setComprehension_in_initializedSet3671 = new BitSet(new long[]{0x0000000000040000L});
7210
    public static final BitSet FOLLOW_T_CBRR_in_initializedSet3681 = new BitSet(new long[]{0x0000000000000002L});
7211
    public static final BitSet FOLLOW_T_MAPS_in_map3717 = new BitSet(new long[]{0x512C963244030080L,0x000048821000B298L});
7212
    public static final BitSet FOLLOW_expression_in_map3721 = new BitSet(new long[]{0x0000000000200002L});
7213
    public static final BitSet FOLLOW_T_COMMA_in_map3729 = new BitSet(new long[]{0x512C963244030080L,0x000048821000B298L});
7214
    public static final BitSet FOLLOW_expression_in_map3733 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
7215
    public static final BitSet FOLLOW_T_MAPS_in_map3735 = new BitSet(new long[]{0x512C963244030080L,0x000048821000B298L});
7216
    public static final BitSet FOLLOW_expression_in_map3739 = new BitSet(new long[]{0x0000000000200002L});
7217
    public static final BitSet FOLLOW_T_BAR_in_setComprehension3761 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
7218
    public static final BitSet FOLLOW_T_VAR_in_setComprehension3763 = new BitSet(new long[]{0x0008000000000000L});
7219
    public static final BitSet FOLLOW_T_IDENTIFIER_in_setComprehension3767 = new BitSet(new long[]{0x0000000000100000L});
7220
    public static final BitSet FOLLOW_T_COLON_in_setComprehension3770 = new BitSet(new long[]{0x04080800000A4000L,0x000000000000003CL});
7221
    public static final BitSet FOLLOW_complexType_in_setComprehension3774 = new BitSet(new long[]{0x0000000000000002L,0x0010000400000000L});
7222
    public static final BitSet FOLLOW_T_SEMICOLON_in_setComprehension3784 = new BitSet(new long[]{0x0008000000000000L});
7223
    public static final BitSet FOLLOW_T_IDENTIFIER_in_setComprehension3788 = new BitSet(new long[]{0x0000000000100000L});
7224
    public static final BitSet FOLLOW_T_COLON_in_setComprehension3790 = new BitSet(new long[]{0x04080800000A4000L,0x000000000000003CL});
7225
    public static final BitSet FOLLOW_complexType_in_setComprehension3794 = new BitSet(new long[]{0x0000000000000002L,0x0010000400000000L});
7226
    public static final BitSet FOLLOW_116_in_setComprehension3808 = new BitSet(new long[]{0x512C963244030080L,0x000048821000B298L});
7227
    public static final BitSet FOLLOW_expression_in_setComprehension3814 = new BitSet(new long[]{0x0000000000000002L});
7228
    public static final BitSet FOLLOW_T_IDENTIFIER_in_identifierExpression3850 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
7229
    public static final BitSet FOLLOW_T_LPAREN_in_identifierExpression3852 = new BitSet(new long[]{0x512C963244030080L,0x000048829000B298L});
7230
    public static final BitSet FOLLOW_methodCallParams_in_identifierExpression3856 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
7231
    public static final BitSet FOLLOW_T_RPAREN_in_identifierExpression3858 = new BitSet(new long[]{0x0000000000000002L});
7232
    public static final BitSet FOLLOW_reference_in_identifierExpression3873 = new BitSet(new long[]{0x0000000000000002L});
7233
    public static final BitSet FOLLOW_qualifiedIdentifier_in_reference3911 = new BitSet(new long[]{0x0000600000000002L,0x0020000000800018L});
7234
    public static final BitSet FOLLOW_accessExpression_in_reference3923 = new BitSet(new long[]{0x0000600000000002L,0x0020000000800000L});
7235
    public static final BitSet FOLLOW_T_PRIMED_in_reference3948 = new BitSet(new long[]{0x0000000000000002L});
7236
    public static final BitSet FOLLOW_117_in_reference3964 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
7237
    public static final BitSet FOLLOW_T_LPAREN_in_reference3966 = new BitSet(new long[]{0x512C963244030080L,0x000048821000B298L});
7238
    public static final BitSet FOLLOW_expression_in_reference3970 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
7239
    public static final BitSet FOLLOW_T_RPAREN_in_reference3972 = new BitSet(new long[]{0x0000600000000000L});
7240
    public static final BitSet FOLLOW_set_in_reference3978 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
7241
    public static final BitSet FOLLOW_T_LPAREN_in_reference3984 = new BitSet(new long[]{0x512C963244030080L,0x000048821000B298L});
7242
    public static final BitSet FOLLOW_expression_in_reference3988 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
7243
    public static final BitSet FOLLOW_T_RPAREN_in_reference3990 = new BitSet(new long[]{0x0000000000000002L});
7244
    public static final BitSet FOLLOW_T_LSQPAREN_in_accessExpression4035 = new BitSet(new long[]{0x512C963244030080L,0x000048821000B298L});
7245
    public static final BitSet FOLLOW_expression_in_accessExpression4039 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
7246
    public static final BitSet FOLLOW_T_RSQPAREN_in_accessExpression4041 = new BitSet(new long[]{0x0000000000000002L,0x0000000000200018L});
7247
    public static final BitSet FOLLOW_T_LPAREN_in_accessExpression4068 = new BitSet(new long[]{0x512C963244030080L,0x000048829000B298L});
7248
    public static final BitSet FOLLOW_methodCallParams_in_accessExpression4072 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
7249
    public static final BitSet FOLLOW_T_RPAREN_in_accessExpression4074 = new BitSet(new long[]{0x0000000000000002L,0x0000000000200018L});
7250
    public static final BitSet FOLLOW_T_POINT_in_accessExpression4096 = new BitSet(new long[]{0x0008000000000000L});
7251
    public static final BitSet FOLLOW_T_IDENTIFIER_in_accessExpression4104 = new BitSet(new long[]{0x0000000000000002L,0x0000000000200018L});
7252
    public static final BitSet FOLLOW_accessExpression_in_accessExpression4120 = new BitSet(new long[]{0x0000000000000002L});
7253
    public static final BitSet FOLLOW_T_SELF_in_qualifiedIdentifier4159 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
7254
    public static final BitSet FOLLOW_T_POINT_in_qualifiedIdentifier4161 = new BitSet(new long[]{0x0008000000000000L});
7255
    public static final BitSet FOLLOW_T_IDENTIFIER_in_qualifiedIdentifier4173 = new BitSet(new long[]{0x0000000000000002L,0x0000000000200000L});
7256
    public static final BitSet FOLLOW_T_POINT_in_qualifiedIdentifier4182 = new BitSet(new long[]{0x0008000000000000L});
7257
    public static final BitSet FOLLOW_T_IDENTIFIER_in_qualifiedIdentifier4186 = new BitSet(new long[]{0x0000000000000002L,0x0000000000200000L});
7258
    public static final BitSet FOLLOW_expression_in_methodCallParams4219 = new BitSet(new long[]{0x0000000000200002L});
7259
    public static final BitSet FOLLOW_T_COMMA_in_methodCallParams4224 = new BitSet(new long[]{0x512C963244030080L,0x000048821000B298L});
7260
    public static final BitSet FOLLOW_expression_in_methodCallParams4228 = new BitSet(new long[]{0x0000000000200002L});
7261
    public static final BitSet FOLLOW_op_un_set_list_in_op_un4267 = new BitSet(new long[]{0x0000000000000002L});
7262
    public static final BitSet FOLLOW_op_un_map_in_op_un4276 = new BitSet(new long[]{0x0000000000000002L});
7263
    public static final BitSet FOLLOW_T_MINUS_in_op_un4284 = new BitSet(new long[]{0x0000000000000002L});
7264
    public static final BitSet FOLLOW_T_NOT_in_op_un4292 = new BitSet(new long[]{0x0000000000000002L});
7265
    public static final BitSet FOLLOW_T_ABS_in_op_un4300 = new BitSet(new long[]{0x0000000000000002L});
7266
    public static final BitSet FOLLOW_T_CARD_in_op_un_set_list4327 = new BitSet(new long[]{0x0000000000000002L});
7267
    public static final BitSet FOLLOW_T_DCONC_in_op_un_set_list4338 = new BitSet(new long[]{0x0000000000000002L});
7268
    public static final BitSet FOLLOW_T_DINTER_in_op_un_set_list4349 = new BitSet(new long[]{0x0000000000000002L});
7269
    public static final BitSet FOLLOW_T_DUNION_in_op_un_set_list4359 = new BitSet(new long[]{0x0000000000000002L});
7270
    public static final BitSet FOLLOW_T_ELEMS_in_op_un_set_list4369 = new BitSet(new long[]{0x0000000000000002L});
7271
    public static final BitSet FOLLOW_T_HEAD_in_op_un_set_list4380 = new BitSet(new long[]{0x0000000000000002L});
7272
    public static final BitSet FOLLOW_T_INDS_in_op_un_set_list4391 = new BitSet(new long[]{0x0000000000000002L});
7273
    public static final BitSet FOLLOW_T_LEN_in_op_un_set_list4402 = new BitSet(new long[]{0x0000000000000002L});
7274
    public static final BitSet FOLLOW_T_TAIL_in_op_un_set_list4413 = new BitSet(new long[]{0x0000000000000002L});
7275
    public static final BitSet FOLLOW_T_DOM_in_op_un_map4442 = new BitSet(new long[]{0x0000000000000002L});
7276
    public static final BitSet FOLLOW_T_RNG_in_op_un_map4453 = new BitSet(new long[]{0x0000000000000002L});
7277
    public static final BitSet FOLLOW_T_MERGE_in_op_un_map4464 = new BitSet(new long[]{0x0000000000000002L});
7278

    
7279
}