• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# $ANTLR 3.0.1 C.g 2010-02-23 09:58:53
2
3from antlr3 import *
4from antlr3.compat import set, frozenset
5
6## @file
7# The file defines the parser for C source files.
8#
9# THIS FILE IS AUTO-GENENERATED. PLEASE DON NOT MODIFY THIS FILE.
10# This file is generated by running:
11# java org.antlr.Tool C.g
12#
13# Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>
14#
15# This program and the accompanying materials are licensed and made available
16# under the terms and conditions of the BSD License which accompanies this
17# distribution.  The full text of the license may be found at:
18#   http://opensource.org/licenses/bsd-license.php
19#
20# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
21# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
22#
23##
24
25import CodeFragment
26import FileProfile
27
28
29
30# for convenience in actions
31HIDDEN = BaseRecognizer.HIDDEN
32
33# token types
34BS=20
35LINE_COMMENT=23
36FloatTypeSuffix=16
37IntegerTypeSuffix=14
38LETTER=11
39OCTAL_LITERAL=6
40CHARACTER_LITERAL=8
41Exponent=15
42EOF=-1
43HexDigit=13
44STRING_LITERAL=9
45WS=19
46FLOATING_POINT_LITERAL=10
47IDENTIFIER=4
48UnicodeEscape=18
49LINE_COMMAND=24
50UnicodeVocabulary=21
51HEX_LITERAL=5
52COMMENT=22
53DECIMAL_LITERAL=7
54EscapeSequence=12
55OctalEscape=17
56
57# token names
58tokenNames = [
59    "<invalid>", "<EOR>", "<DOWN>", "<UP>",
60    "IDENTIFIER", "HEX_LITERAL", "OCTAL_LITERAL", "DECIMAL_LITERAL", "CHARACTER_LITERAL",
61    "STRING_LITERAL", "FLOATING_POINT_LITERAL", "LETTER", "EscapeSequence",
62    "HexDigit", "IntegerTypeSuffix", "Exponent", "FloatTypeSuffix", "OctalEscape",
63    "UnicodeEscape", "WS", "BS", "UnicodeVocabulary", "COMMENT", "LINE_COMMENT",
64    "LINE_COMMAND", "';'", "'typedef'", "','", "'='", "'extern'", "'static'",
65    "'auto'", "'register'", "'STATIC'", "'void'", "'char'", "'short'", "'int'",
66    "'long'", "'float'", "'double'", "'signed'", "'unsigned'", "'{'", "'}'",
67    "'struct'", "'union'", "':'", "'enum'", "'const'", "'volatile'", "'IN'",
68    "'OUT'", "'OPTIONAL'", "'CONST'", "'UNALIGNED'", "'VOLATILE'", "'GLOBAL_REMOVE_IF_UNREFERENCED'",
69    "'EFIAPI'", "'EFI_BOOTSERVICE'", "'EFI_RUNTIMESERVICE'", "'PACKED'",
70    "'('", "')'", "'['", "']'", "'*'", "'...'", "'+'", "'-'", "'/'", "'%'",
71    "'++'", "'--'", "'sizeof'", "'.'", "'->'", "'&'", "'~'", "'!'", "'*='",
72    "'/='", "'%='", "'+='", "'-='", "'<<='", "'>>='", "'&='", "'^='", "'|='",
73    "'?'", "'||'", "'&&'", "'|'", "'^'", "'=='", "'!='", "'<'", "'>'", "'<='",
74    "'>='", "'<<'", "'>>'", "'__asm__'", "'_asm'", "'__asm'", "'case'",
75    "'default'", "'if'", "'else'", "'switch'", "'while'", "'do'", "'for'",
76    "'goto'", "'continue'", "'break'", "'return'"
77]
78
79
80class function_definition_scope(object):
81    def __init__(self):
82        self.ModifierText = None
83        self.DeclText = None
84        self.LBLine = None
85        self.LBOffset = None
86        self.DeclLine = None
87        self.DeclOffset = None
88class postfix_expression_scope(object):
89    def __init__(self):
90        self.FuncCallText = None
91
92
93class CParser(Parser):
94    grammarFileName = "C.g"
95    tokenNames = tokenNames
96
97    def __init__(self, input):
98        Parser.__init__(self, input)
99        self.ruleMemo = {}
100
101	self.function_definition_stack = []
102	self.postfix_expression_stack = []
103
104
105
106
107
108
109
110
111    def printTokenInfo(self, line, offset, tokenText):
112    	print str(line)+ ',' + str(offset) + ':' + str(tokenText)
113
114    def StorePredicateExpression(self, StartLine, StartOffset, EndLine, EndOffset, Text):
115    	PredExp = CodeFragment.PredicateExpression(Text, (StartLine, StartOffset), (EndLine, EndOffset))
116    	FileProfile.PredicateExpressionList.append(PredExp)
117
118    def StoreEnumerationDefinition(self, StartLine, StartOffset, EndLine, EndOffset, Text):
119    	EnumDef = CodeFragment.EnumerationDefinition(Text, (StartLine, StartOffset), (EndLine, EndOffset))
120    	FileProfile.EnumerationDefinitionList.append(EnumDef)
121
122    def StoreStructUnionDefinition(self, StartLine, StartOffset, EndLine, EndOffset, Text):
123    	SUDef = CodeFragment.StructUnionDefinition(Text, (StartLine, StartOffset), (EndLine, EndOffset))
124    	FileProfile.StructUnionDefinitionList.append(SUDef)
125
126    def StoreTypedefDefinition(self, StartLine, StartOffset, EndLine, EndOffset, FromText, ToText):
127    	Tdef = CodeFragment.TypedefDefinition(FromText, ToText, (StartLine, StartOffset), (EndLine, EndOffset))
128    	FileProfile.TypedefDefinitionList.append(Tdef)
129
130    def StoreFunctionDefinition(self, StartLine, StartOffset, EndLine, EndOffset, ModifierText, DeclText, LeftBraceLine, LeftBraceOffset, DeclLine, DeclOffset):
131    	FuncDef = CodeFragment.FunctionDefinition(ModifierText, DeclText, (StartLine, StartOffset), (EndLine, EndOffset), (LeftBraceLine, LeftBraceOffset), (DeclLine, DeclOffset))
132    	FileProfile.FunctionDefinitionList.append(FuncDef)
133
134    def StoreVariableDeclaration(self, StartLine, StartOffset, EndLine, EndOffset, ModifierText, DeclText):
135    	VarDecl = CodeFragment.VariableDeclaration(ModifierText, DeclText, (StartLine, StartOffset), (EndLine, EndOffset))
136    	FileProfile.VariableDeclarationList.append(VarDecl)
137
138    def StoreFunctionCalling(self, StartLine, StartOffset, EndLine, EndOffset, FuncName, ParamList):
139    	FuncCall = CodeFragment.FunctionCalling(FuncName, ParamList, (StartLine, StartOffset), (EndLine, EndOffset))
140    	FileProfile.FunctionCallingList.append(FuncCall)
141
142
143
144
145    # $ANTLR start translation_unit
146    # C.g:102:1: translation_unit : ( external_declaration )* ;
147    def translation_unit(self, ):
148
149        translation_unit_StartIndex = self.input.index()
150        try:
151            try:
152                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 1):
153                    return
154
155                # C.g:103:2: ( ( external_declaration )* )
156                # C.g:103:4: ( external_declaration )*
157                # C.g:103:4: ( external_declaration )*
158                while True: #loop1
159                    alt1 = 2
160                    LA1_0 = self.input.LA(1)
161
162                    if (LA1_0 == IDENTIFIER or LA1_0 == 26 or (29 <= LA1_0 <= 42) or (45 <= LA1_0 <= 46) or (48 <= LA1_0 <= 62) or LA1_0 == 66) :
163                        alt1 = 1
164
165
166                    if alt1 == 1:
167                        # C.g:0:0: external_declaration
168                        self.following.append(self.FOLLOW_external_declaration_in_translation_unit74)
169                        self.external_declaration()
170                        self.following.pop()
171                        if self.failed:
172                            return
173
174
175                    else:
176                        break #loop1
177
178
179
180
181
182
183            except RecognitionException, re:
184                self.reportError(re)
185                self.recover(self.input, re)
186        finally:
187            if self.backtracking > 0:
188                self.memoize(self.input, 1, translation_unit_StartIndex)
189
190            pass
191
192        return
193
194    # $ANTLR end translation_unit
195
196
197    # $ANTLR start external_declaration
198    # C.g:114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );
199    def external_declaration(self, ):
200
201        external_declaration_StartIndex = self.input.index()
202        try:
203            try:
204                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 2):
205                    return
206
207                # C.g:119:2: ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? )
208                alt3 = 3
209                LA3_0 = self.input.LA(1)
210
211                if ((29 <= LA3_0 <= 33)) :
212                    LA3_1 = self.input.LA(2)
213
214                    if (self.synpred4()) :
215                        alt3 = 1
216                    elif (self.synpred5()) :
217                        alt3 = 2
218                    else:
219                        if self.backtracking > 0:
220                            self.failed = True
221                            return
222
223                        nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 1, self.input)
224
225                        raise nvae
226
227                elif (LA3_0 == 34) :
228                    LA3_2 = self.input.LA(2)
229
230                    if (self.synpred4()) :
231                        alt3 = 1
232                    elif (self.synpred5()) :
233                        alt3 = 2
234                    else:
235                        if self.backtracking > 0:
236                            self.failed = True
237                            return
238
239                        nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 2, self.input)
240
241                        raise nvae
242
243                elif (LA3_0 == 35) :
244                    LA3_3 = self.input.LA(2)
245
246                    if (self.synpred4()) :
247                        alt3 = 1
248                    elif (self.synpred5()) :
249                        alt3 = 2
250                    else:
251                        if self.backtracking > 0:
252                            self.failed = True
253                            return
254
255                        nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 3, self.input)
256
257                        raise nvae
258
259                elif (LA3_0 == 36) :
260                    LA3_4 = self.input.LA(2)
261
262                    if (self.synpred4()) :
263                        alt3 = 1
264                    elif (self.synpred5()) :
265                        alt3 = 2
266                    else:
267                        if self.backtracking > 0:
268                            self.failed = True
269                            return
270
271                        nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 4, self.input)
272
273                        raise nvae
274
275                elif (LA3_0 == 37) :
276                    LA3_5 = self.input.LA(2)
277
278                    if (self.synpred4()) :
279                        alt3 = 1
280                    elif (self.synpred5()) :
281                        alt3 = 2
282                    else:
283                        if self.backtracking > 0:
284                            self.failed = True
285                            return
286
287                        nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 5, self.input)
288
289                        raise nvae
290
291                elif (LA3_0 == 38) :
292                    LA3_6 = self.input.LA(2)
293
294                    if (self.synpred4()) :
295                        alt3 = 1
296                    elif (self.synpred5()) :
297                        alt3 = 2
298                    else:
299                        if self.backtracking > 0:
300                            self.failed = True
301                            return
302
303                        nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 6, self.input)
304
305                        raise nvae
306
307                elif (LA3_0 == 39) :
308                    LA3_7 = self.input.LA(2)
309
310                    if (self.synpred4()) :
311                        alt3 = 1
312                    elif (self.synpred5()) :
313                        alt3 = 2
314                    else:
315                        if self.backtracking > 0:
316                            self.failed = True
317                            return
318
319                        nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 7, self.input)
320
321                        raise nvae
322
323                elif (LA3_0 == 40) :
324                    LA3_8 = self.input.LA(2)
325
326                    if (self.synpred4()) :
327                        alt3 = 1
328                    elif (self.synpred5()) :
329                        alt3 = 2
330                    else:
331                        if self.backtracking > 0:
332                            self.failed = True
333                            return
334
335                        nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 8, self.input)
336
337                        raise nvae
338
339                elif (LA3_0 == 41) :
340                    LA3_9 = self.input.LA(2)
341
342                    if (self.synpred4()) :
343                        alt3 = 1
344                    elif (self.synpred5()) :
345                        alt3 = 2
346                    else:
347                        if self.backtracking > 0:
348                            self.failed = True
349                            return
350
351                        nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 9, self.input)
352
353                        raise nvae
354
355                elif (LA3_0 == 42) :
356                    LA3_10 = self.input.LA(2)
357
358                    if (self.synpred4()) :
359                        alt3 = 1
360                    elif (self.synpred5()) :
361                        alt3 = 2
362                    else:
363                        if self.backtracking > 0:
364                            self.failed = True
365                            return
366
367                        nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 10, self.input)
368
369                        raise nvae
370
371                elif ((45 <= LA3_0 <= 46)) :
372                    LA3_11 = self.input.LA(2)
373
374                    if (self.synpred4()) :
375                        alt3 = 1
376                    elif (self.synpred5()) :
377                        alt3 = 2
378                    else:
379                        if self.backtracking > 0:
380                            self.failed = True
381                            return
382
383                        nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 11, self.input)
384
385                        raise nvae
386
387                elif (LA3_0 == 48) :
388                    LA3_12 = self.input.LA(2)
389
390                    if (self.synpred4()) :
391                        alt3 = 1
392                    elif (self.synpred5()) :
393                        alt3 = 2
394                    else:
395                        if self.backtracking > 0:
396                            self.failed = True
397                            return
398
399                        nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 12, self.input)
400
401                        raise nvae
402
403                elif (LA3_0 == IDENTIFIER) :
404                    LA3_13 = self.input.LA(2)
405
406                    if (self.synpred4()) :
407                        alt3 = 1
408                    elif (self.synpred5()) :
409                        alt3 = 2
410                    elif (True) :
411                        alt3 = 3
412                    else:
413                        if self.backtracking > 0:
414                            self.failed = True
415                            return
416
417                        nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 13, self.input)
418
419                        raise nvae
420
421                elif (LA3_0 == 58) :
422                    LA3_14 = self.input.LA(2)
423
424                    if (self.synpred4()) :
425                        alt3 = 1
426                    elif (self.synpred5()) :
427                        alt3 = 2
428                    else:
429                        if self.backtracking > 0:
430                            self.failed = True
431                            return
432
433                        nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 14, self.input)
434
435                        raise nvae
436
437                elif (LA3_0 == 66) and (self.synpred4()):
438                    alt3 = 1
439                elif (LA3_0 == 59) :
440                    LA3_16 = self.input.LA(2)
441
442                    if (self.synpred4()) :
443                        alt3 = 1
444                    elif (self.synpred5()) :
445                        alt3 = 2
446                    else:
447                        if self.backtracking > 0:
448                            self.failed = True
449                            return
450
451                        nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 16, self.input)
452
453                        raise nvae
454
455                elif (LA3_0 == 60) :
456                    LA3_17 = self.input.LA(2)
457
458                    if (self.synpred4()) :
459                        alt3 = 1
460                    elif (self.synpred5()) :
461                        alt3 = 2
462                    else:
463                        if self.backtracking > 0:
464                            self.failed = True
465                            return
466
467                        nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 17, self.input)
468
469                        raise nvae
470
471                elif ((49 <= LA3_0 <= 57) or LA3_0 == 61) :
472                    LA3_18 = self.input.LA(2)
473
474                    if (self.synpred4()) :
475                        alt3 = 1
476                    elif (self.synpred5()) :
477                        alt3 = 2
478                    else:
479                        if self.backtracking > 0:
480                            self.failed = True
481                            return
482
483                        nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 18, self.input)
484
485                        raise nvae
486
487                elif (LA3_0 == 62) and (self.synpred4()):
488                    alt3 = 1
489                elif (LA3_0 == 26) :
490                    alt3 = 2
491                else:
492                    if self.backtracking > 0:
493                        self.failed = True
494                        return
495
496                    nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 0, self.input)
497
498                    raise nvae
499
500                if alt3 == 1:
501                    # C.g:119:4: ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition
502                    self.following.append(self.FOLLOW_function_definition_in_external_declaration113)
503                    self.function_definition()
504                    self.following.pop()
505                    if self.failed:
506                        return
507
508
509                elif alt3 == 2:
510                    # C.g:120:4: declaration
511                    self.following.append(self.FOLLOW_declaration_in_external_declaration118)
512                    self.declaration()
513                    self.following.pop()
514                    if self.failed:
515                        return
516
517
518                elif alt3 == 3:
519                    # C.g:121:4: macro_statement ( ';' )?
520                    self.following.append(self.FOLLOW_macro_statement_in_external_declaration123)
521                    self.macro_statement()
522                    self.following.pop()
523                    if self.failed:
524                        return
525                    # C.g:121:20: ( ';' )?
526                    alt2 = 2
527                    LA2_0 = self.input.LA(1)
528
529                    if (LA2_0 == 25) :
530                        alt2 = 1
531                    if alt2 == 1:
532                        # C.g:121:21: ';'
533                        self.match(self.input, 25, self.FOLLOW_25_in_external_declaration126)
534                        if self.failed:
535                            return
536
537
538
539
540
541
542            except RecognitionException, re:
543                self.reportError(re)
544                self.recover(self.input, re)
545        finally:
546            if self.backtracking > 0:
547                self.memoize(self.input, 2, external_declaration_StartIndex)
548
549            pass
550
551        return
552
553    # $ANTLR end external_declaration
554
555    class function_definition_return(object):
556        def __init__(self):
557            self.start = None
558            self.stop = None
559
560
561
562    # $ANTLR start function_definition
563    # C.g:126:1: function_definition : (d= declaration_specifiers )? declarator ( ( declaration )+ a= compound_statement | b= compound_statement ) ;
564    def function_definition(self, ):
565        self.function_definition_stack.append(function_definition_scope())
566        retval = self.function_definition_return()
567        retval.start = self.input.LT(1)
568        function_definition_StartIndex = self.input.index()
569        d = None
570
571        a = None
572
573        b = None
574
575        declarator1 = None
576
577
578
579        self.function_definition_stack[-1].ModifierText =  ''
580        self.function_definition_stack[-1].DeclText =  ''
581        self.function_definition_stack[-1].LBLine =  0
582        self.function_definition_stack[-1].LBOffset =  0
583        self.function_definition_stack[-1].DeclLine =  0
584        self.function_definition_stack[-1].DeclOffset =  0
585
586        try:
587            try:
588                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 3):
589                    return retval
590
591                # C.g:146:2: ( (d= declaration_specifiers )? declarator ( ( declaration )+ a= compound_statement | b= compound_statement ) )
592                # C.g:146:4: (d= declaration_specifiers )? declarator ( ( declaration )+ a= compound_statement | b= compound_statement )
593                # C.g:146:5: (d= declaration_specifiers )?
594                alt4 = 2
595                LA4 = self.input.LA(1)
596                if LA4 == 29 or LA4 == 30 or LA4 == 31 or LA4 == 32 or LA4 == 33 or LA4 == 34 or LA4 == 35 or LA4 == 36 or LA4 == 37 or LA4 == 38 or LA4 == 39 or LA4 == 40 or LA4 == 41 or LA4 == 42 or LA4 == 45 or LA4 == 46 or LA4 == 48 or LA4 == 49 or LA4 == 50 or LA4 == 51 or LA4 == 52 or LA4 == 53 or LA4 == 54 or LA4 == 55 or LA4 == 56 or LA4 == 57 or LA4 == 61:
597                    alt4 = 1
598                elif LA4 == IDENTIFIER:
599                    LA4 = self.input.LA(2)
600                    if LA4 == 66:
601                        alt4 = 1
602                    elif LA4 == 58:
603                        LA4_21 = self.input.LA(3)
604
605                        if (self.synpred7()) :
606                            alt4 = 1
607                    elif LA4 == 59:
608                        LA4_22 = self.input.LA(3)
609
610                        if (self.synpred7()) :
611                            alt4 = 1
612                    elif LA4 == 60:
613                        LA4_23 = self.input.LA(3)
614
615                        if (self.synpred7()) :
616                            alt4 = 1
617                    elif LA4 == IDENTIFIER:
618                        LA4_24 = self.input.LA(3)
619
620                        if (self.synpred7()) :
621                            alt4 = 1
622                    elif LA4 == 62:
623                        LA4_25 = self.input.LA(3)
624
625                        if (self.synpred7()) :
626                            alt4 = 1
627                    elif LA4 == 29 or LA4 == 30 or LA4 == 31 or LA4 == 32 or LA4 == 33:
628                        LA4_26 = self.input.LA(3)
629
630                        if (self.synpred7()) :
631                            alt4 = 1
632                    elif LA4 == 34:
633                        LA4_27 = self.input.LA(3)
634
635                        if (self.synpred7()) :
636                            alt4 = 1
637                    elif LA4 == 35:
638                        LA4_28 = self.input.LA(3)
639
640                        if (self.synpred7()) :
641                            alt4 = 1
642                    elif LA4 == 36:
643                        LA4_29 = self.input.LA(3)
644
645                        if (self.synpred7()) :
646                            alt4 = 1
647                    elif LA4 == 37:
648                        LA4_30 = self.input.LA(3)
649
650                        if (self.synpred7()) :
651                            alt4 = 1
652                    elif LA4 == 38:
653                        LA4_31 = self.input.LA(3)
654
655                        if (self.synpred7()) :
656                            alt4 = 1
657                    elif LA4 == 39:
658                        LA4_32 = self.input.LA(3)
659
660                        if (self.synpred7()) :
661                            alt4 = 1
662                    elif LA4 == 40:
663                        LA4_33 = self.input.LA(3)
664
665                        if (self.synpred7()) :
666                            alt4 = 1
667                    elif LA4 == 41:
668                        LA4_34 = self.input.LA(3)
669
670                        if (self.synpred7()) :
671                            alt4 = 1
672                    elif LA4 == 42:
673                        LA4_35 = self.input.LA(3)
674
675                        if (self.synpred7()) :
676                            alt4 = 1
677                    elif LA4 == 45 or LA4 == 46:
678                        LA4_36 = self.input.LA(3)
679
680                        if (self.synpred7()) :
681                            alt4 = 1
682                    elif LA4 == 48:
683                        LA4_37 = self.input.LA(3)
684
685                        if (self.synpred7()) :
686                            alt4 = 1
687                    elif LA4 == 49 or LA4 == 50 or LA4 == 51 or LA4 == 52 or LA4 == 53 or LA4 == 54 or LA4 == 55 or LA4 == 56 or LA4 == 57 or LA4 == 61:
688                        LA4_38 = self.input.LA(3)
689
690                        if (self.synpred7()) :
691                            alt4 = 1
692                elif LA4 == 58:
693                    LA4_14 = self.input.LA(2)
694
695                    if (self.synpred7()) :
696                        alt4 = 1
697                elif LA4 == 59:
698                    LA4_16 = self.input.LA(2)
699
700                    if (self.synpred7()) :
701                        alt4 = 1
702                elif LA4 == 60:
703                    LA4_17 = self.input.LA(2)
704
705                    if (self.synpred7()) :
706                        alt4 = 1
707                if alt4 == 1:
708                    # C.g:0:0: d= declaration_specifiers
709                    self.following.append(self.FOLLOW_declaration_specifiers_in_function_definition157)
710                    d = self.declaration_specifiers()
711                    self.following.pop()
712                    if self.failed:
713                        return retval
714
715
716
717                self.following.append(self.FOLLOW_declarator_in_function_definition160)
718                declarator1 = self.declarator()
719                self.following.pop()
720                if self.failed:
721                    return retval
722                # C.g:147:3: ( ( declaration )+ a= compound_statement | b= compound_statement )
723                alt6 = 2
724                LA6_0 = self.input.LA(1)
725
726                if (LA6_0 == IDENTIFIER or LA6_0 == 26 or (29 <= LA6_0 <= 42) or (45 <= LA6_0 <= 46) or (48 <= LA6_0 <= 61)) :
727                    alt6 = 1
728                elif (LA6_0 == 43) :
729                    alt6 = 2
730                else:
731                    if self.backtracking > 0:
732                        self.failed = True
733                        return retval
734
735                    nvae = NoViableAltException("147:3: ( ( declaration )+ a= compound_statement | b= compound_statement )", 6, 0, self.input)
736
737                    raise nvae
738
739                if alt6 == 1:
740                    # C.g:147:5: ( declaration )+ a= compound_statement
741                    # C.g:147:5: ( declaration )+
742                    cnt5 = 0
743                    while True: #loop5
744                        alt5 = 2
745                        LA5_0 = self.input.LA(1)
746
747                        if (LA5_0 == IDENTIFIER or LA5_0 == 26 or (29 <= LA5_0 <= 42) or (45 <= LA5_0 <= 46) or (48 <= LA5_0 <= 61)) :
748                            alt5 = 1
749
750
751                        if alt5 == 1:
752                            # C.g:0:0: declaration
753                            self.following.append(self.FOLLOW_declaration_in_function_definition166)
754                            self.declaration()
755                            self.following.pop()
756                            if self.failed:
757                                return retval
758
759
760                        else:
761                            if cnt5 >= 1:
762                                break #loop5
763
764                            if self.backtracking > 0:
765                                self.failed = True
766                                return retval
767
768                            eee = EarlyExitException(5, self.input)
769                            raise eee
770
771                        cnt5 += 1
772
773
774                    self.following.append(self.FOLLOW_compound_statement_in_function_definition171)
775                    a = self.compound_statement()
776                    self.following.pop()
777                    if self.failed:
778                        return retval
779
780
781                elif alt6 == 2:
782                    # C.g:148:5: b= compound_statement
783                    self.following.append(self.FOLLOW_compound_statement_in_function_definition180)
784                    b = self.compound_statement()
785                    self.following.pop()
786                    if self.failed:
787                        return retval
788
789
790
791                if self.backtracking == 0:
792
793                    if d != None:
794                      self.function_definition_stack[-1].ModifierText = self.input.toString(d.start,d.stop)
795                    else:
796                      self.function_definition_stack[-1].ModifierText = ''
797                    self.function_definition_stack[-1].DeclText = self.input.toString(declarator1.start,declarator1.stop)
798                    self.function_definition_stack[-1].DeclLine = declarator1.start.line
799                    self.function_definition_stack[-1].DeclOffset = declarator1.start.charPositionInLine
800                    if a != None:
801                      self.function_definition_stack[-1].LBLine = a.start.line
802                      self.function_definition_stack[-1].LBOffset = a.start.charPositionInLine
803                    else:
804                      self.function_definition_stack[-1].LBLine = b.start.line
805                      self.function_definition_stack[-1].LBOffset = b.start.charPositionInLine
806
807
808
809
810
811                retval.stop = self.input.LT(-1)
812
813                if self.backtracking == 0:
814
815                    self.StoreFunctionDefinition(retval.start.line, retval.start.charPositionInLine, retval.stop.line, retval.stop.charPositionInLine, self.function_definition_stack[-1].ModifierText, self.function_definition_stack[-1].DeclText, self.function_definition_stack[-1].LBLine, self.function_definition_stack[-1].LBOffset, self.function_definition_stack[-1].DeclLine, self.function_definition_stack[-1].DeclOffset)
816
817
818
819            except RecognitionException, re:
820                self.reportError(re)
821                self.recover(self.input, re)
822        finally:
823            if self.backtracking > 0:
824                self.memoize(self.input, 3, function_definition_StartIndex)
825
826            self.function_definition_stack.pop()
827            pass
828
829        return retval
830
831    # $ANTLR end function_definition
832
833
834    # $ANTLR start declaration
835    # C.g:166:1: declaration : (a= 'typedef' (b= declaration_specifiers )? c= init_declarator_list d= ';' | s= declaration_specifiers (t= init_declarator_list )? e= ';' );
836    def declaration(self, ):
837
838        declaration_StartIndex = self.input.index()
839        a = None
840        d = None
841        e = None
842        b = None
843
844        c = None
845
846        s = None
847
848        t = None
849
850
851        try:
852            try:
853                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 4):
854                    return
855
856                # C.g:167:2: (a= 'typedef' (b= declaration_specifiers )? c= init_declarator_list d= ';' | s= declaration_specifiers (t= init_declarator_list )? e= ';' )
857                alt9 = 2
858                LA9_0 = self.input.LA(1)
859
860                if (LA9_0 == 26) :
861                    alt9 = 1
862                elif (LA9_0 == IDENTIFIER or (29 <= LA9_0 <= 42) or (45 <= LA9_0 <= 46) or (48 <= LA9_0 <= 61)) :
863                    alt9 = 2
864                else:
865                    if self.backtracking > 0:
866                        self.failed = True
867                        return
868
869                    nvae = NoViableAltException("166:1: declaration : (a= 'typedef' (b= declaration_specifiers )? c= init_declarator_list d= ';' | s= declaration_specifiers (t= init_declarator_list )? e= ';' );", 9, 0, self.input)
870
871                    raise nvae
872
873                if alt9 == 1:
874                    # C.g:167:4: a= 'typedef' (b= declaration_specifiers )? c= init_declarator_list d= ';'
875                    a = self.input.LT(1)
876                    self.match(self.input, 26, self.FOLLOW_26_in_declaration203)
877                    if self.failed:
878                        return
879                    # C.g:167:17: (b= declaration_specifiers )?
880                    alt7 = 2
881                    LA7 = self.input.LA(1)
882                    if LA7 == 29 or LA7 == 30 or LA7 == 31 or LA7 == 32 or LA7 == 33 or LA7 == 34 or LA7 == 35 or LA7 == 36 or LA7 == 37 or LA7 == 38 or LA7 == 39 or LA7 == 40 or LA7 == 41 or LA7 == 42 or LA7 == 45 or LA7 == 46 or LA7 == 48 or LA7 == 49 or LA7 == 50 or LA7 == 51 or LA7 == 52 or LA7 == 53 or LA7 == 54 or LA7 == 55 or LA7 == 56 or LA7 == 57 or LA7 == 61:
883                        alt7 = 1
884                    elif LA7 == IDENTIFIER:
885                        LA7_13 = self.input.LA(2)
886
887                        if (LA7_13 == 62) :
888                            LA7_21 = self.input.LA(3)
889
890                            if (self.synpred10()) :
891                                alt7 = 1
892                        elif (LA7_13 == IDENTIFIER or (29 <= LA7_13 <= 42) or (45 <= LA7_13 <= 46) or (48 <= LA7_13 <= 61) or LA7_13 == 66) :
893                            alt7 = 1
894                    elif LA7 == 58:
895                        LA7_14 = self.input.LA(2)
896
897                        if (self.synpred10()) :
898                            alt7 = 1
899                    elif LA7 == 59:
900                        LA7_16 = self.input.LA(2)
901
902                        if (self.synpred10()) :
903                            alt7 = 1
904                    elif LA7 == 60:
905                        LA7_17 = self.input.LA(2)
906
907                        if (self.synpred10()) :
908                            alt7 = 1
909                    if alt7 == 1:
910                        # C.g:0:0: b= declaration_specifiers
911                        self.following.append(self.FOLLOW_declaration_specifiers_in_declaration207)
912                        b = self.declaration_specifiers()
913                        self.following.pop()
914                        if self.failed:
915                            return
916
917
918
919                    self.following.append(self.FOLLOW_init_declarator_list_in_declaration216)
920                    c = self.init_declarator_list()
921                    self.following.pop()
922                    if self.failed:
923                        return
924                    d = self.input.LT(1)
925                    self.match(self.input, 25, self.FOLLOW_25_in_declaration220)
926                    if self.failed:
927                        return
928                    if self.backtracking == 0:
929
930                        if b != None:
931                          self.StoreTypedefDefinition(a.line, a.charPositionInLine, d.line, d.charPositionInLine, self.input.toString(b.start,b.stop), self.input.toString(c.start,c.stop))
932                        else:
933                          self.StoreTypedefDefinition(a.line, a.charPositionInLine, d.line, d.charPositionInLine, '', self.input.toString(c.start,c.stop))
934
935
936
937
938                elif alt9 == 2:
939                    # C.g:175:4: s= declaration_specifiers (t= init_declarator_list )? e= ';'
940                    self.following.append(self.FOLLOW_declaration_specifiers_in_declaration234)
941                    s = self.declaration_specifiers()
942                    self.following.pop()
943                    if self.failed:
944                        return
945                    # C.g:175:30: (t= init_declarator_list )?
946                    alt8 = 2
947                    LA8_0 = self.input.LA(1)
948
949                    if (LA8_0 == IDENTIFIER or (58 <= LA8_0 <= 60) or LA8_0 == 62 or LA8_0 == 66) :
950                        alt8 = 1
951                    if alt8 == 1:
952                        # C.g:0:0: t= init_declarator_list
953                        self.following.append(self.FOLLOW_init_declarator_list_in_declaration238)
954                        t = self.init_declarator_list()
955                        self.following.pop()
956                        if self.failed:
957                            return
958
959
960
961                    e = self.input.LT(1)
962                    self.match(self.input, 25, self.FOLLOW_25_in_declaration243)
963                    if self.failed:
964                        return
965                    if self.backtracking == 0:
966
967                        if t != None:
968                          self.StoreVariableDeclaration(s.start.line, s.start.charPositionInLine, t.start.line, t.start.charPositionInLine, self.input.toString(s.start,s.stop), self.input.toString(t.start,t.stop))
969
970
971
972
973
974            except RecognitionException, re:
975                self.reportError(re)
976                self.recover(self.input, re)
977        finally:
978            if self.backtracking > 0:
979                self.memoize(self.input, 4, declaration_StartIndex)
980
981            pass
982
983        return
984
985    # $ANTLR end declaration
986
987    class declaration_specifiers_return(object):
988        def __init__(self):
989            self.start = None
990            self.stop = None
991
992
993
994    # $ANTLR start declaration_specifiers
995    # C.g:182:1: declaration_specifiers : ( storage_class_specifier | type_specifier | type_qualifier )+ ;
996    def declaration_specifiers(self, ):
997
998        retval = self.declaration_specifiers_return()
999        retval.start = self.input.LT(1)
1000        declaration_specifiers_StartIndex = self.input.index()
1001        try:
1002            try:
1003                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 5):
1004                    return retval
1005
1006                # C.g:183:2: ( ( storage_class_specifier | type_specifier | type_qualifier )+ )
1007                # C.g:183:6: ( storage_class_specifier | type_specifier | type_qualifier )+
1008                # C.g:183:6: ( storage_class_specifier | type_specifier | type_qualifier )+
1009                cnt10 = 0
1010                while True: #loop10
1011                    alt10 = 4
1012                    LA10 = self.input.LA(1)
1013                    if LA10 == 58:
1014                        LA10_2 = self.input.LA(2)
1015
1016                        if (self.synpred15()) :
1017                            alt10 = 3
1018
1019
1020                    elif LA10 == 59:
1021                        LA10_3 = self.input.LA(2)
1022
1023                        if (self.synpred15()) :
1024                            alt10 = 3
1025
1026
1027                    elif LA10 == 60:
1028                        LA10_4 = self.input.LA(2)
1029
1030                        if (self.synpred15()) :
1031                            alt10 = 3
1032
1033
1034                    elif LA10 == IDENTIFIER:
1035                        LA10_5 = self.input.LA(2)
1036
1037                        if (self.synpred14()) :
1038                            alt10 = 2
1039
1040
1041                    elif LA10 == 53:
1042                        LA10_9 = self.input.LA(2)
1043
1044                        if (self.synpred15()) :
1045                            alt10 = 3
1046
1047
1048                    elif LA10 == 29 or LA10 == 30 or LA10 == 31 or LA10 == 32 or LA10 == 33:
1049                        alt10 = 1
1050                    elif LA10 == 34 or LA10 == 35 or LA10 == 36 or LA10 == 37 or LA10 == 38 or LA10 == 39 or LA10 == 40 or LA10 == 41 or LA10 == 42 or LA10 == 45 or LA10 == 46 or LA10 == 48:
1051                        alt10 = 2
1052                    elif LA10 == 49 or LA10 == 50 or LA10 == 51 or LA10 == 52 or LA10 == 54 or LA10 == 55 or LA10 == 56 or LA10 == 57 or LA10 == 61:
1053                        alt10 = 3
1054
1055                    if alt10 == 1:
1056                        # C.g:183:10: storage_class_specifier
1057                        self.following.append(self.FOLLOW_storage_class_specifier_in_declaration_specifiers264)
1058                        self.storage_class_specifier()
1059                        self.following.pop()
1060                        if self.failed:
1061                            return retval
1062
1063
1064                    elif alt10 == 2:
1065                        # C.g:184:7: type_specifier
1066                        self.following.append(self.FOLLOW_type_specifier_in_declaration_specifiers272)
1067                        self.type_specifier()
1068                        self.following.pop()
1069                        if self.failed:
1070                            return retval
1071
1072
1073                    elif alt10 == 3:
1074                        # C.g:185:13: type_qualifier
1075                        self.following.append(self.FOLLOW_type_qualifier_in_declaration_specifiers286)
1076                        self.type_qualifier()
1077                        self.following.pop()
1078                        if self.failed:
1079                            return retval
1080
1081
1082                    else:
1083                        if cnt10 >= 1:
1084                            break #loop10
1085
1086                        if self.backtracking > 0:
1087                            self.failed = True
1088                            return retval
1089
1090                        eee = EarlyExitException(10, self.input)
1091                        raise eee
1092
1093                    cnt10 += 1
1094
1095
1096
1097
1098
1099                retval.stop = self.input.LT(-1)
1100
1101
1102            except RecognitionException, re:
1103                self.reportError(re)
1104                self.recover(self.input, re)
1105        finally:
1106            if self.backtracking > 0:
1107                self.memoize(self.input, 5, declaration_specifiers_StartIndex)
1108
1109            pass
1110
1111        return retval
1112
1113    # $ANTLR end declaration_specifiers
1114
1115    class init_declarator_list_return(object):
1116        def __init__(self):
1117            self.start = None
1118            self.stop = None
1119
1120
1121
1122    # $ANTLR start init_declarator_list
1123    # C.g:189:1: init_declarator_list : init_declarator ( ',' init_declarator )* ;
1124    def init_declarator_list(self, ):
1125
1126        retval = self.init_declarator_list_return()
1127        retval.start = self.input.LT(1)
1128        init_declarator_list_StartIndex = self.input.index()
1129        try:
1130            try:
1131                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 6):
1132                    return retval
1133
1134                # C.g:190:2: ( init_declarator ( ',' init_declarator )* )
1135                # C.g:190:4: init_declarator ( ',' init_declarator )*
1136                self.following.append(self.FOLLOW_init_declarator_in_init_declarator_list308)
1137                self.init_declarator()
1138                self.following.pop()
1139                if self.failed:
1140                    return retval
1141                # C.g:190:20: ( ',' init_declarator )*
1142                while True: #loop11
1143                    alt11 = 2
1144                    LA11_0 = self.input.LA(1)
1145
1146                    if (LA11_0 == 27) :
1147                        alt11 = 1
1148
1149
1150                    if alt11 == 1:
1151                        # C.g:190:21: ',' init_declarator
1152                        self.match(self.input, 27, self.FOLLOW_27_in_init_declarator_list311)
1153                        if self.failed:
1154                            return retval
1155                        self.following.append(self.FOLLOW_init_declarator_in_init_declarator_list313)
1156                        self.init_declarator()
1157                        self.following.pop()
1158                        if self.failed:
1159                            return retval
1160
1161
1162                    else:
1163                        break #loop11
1164
1165
1166
1167
1168
1169                retval.stop = self.input.LT(-1)
1170
1171
1172            except RecognitionException, re:
1173                self.reportError(re)
1174                self.recover(self.input, re)
1175        finally:
1176            if self.backtracking > 0:
1177                self.memoize(self.input, 6, init_declarator_list_StartIndex)
1178
1179            pass
1180
1181        return retval
1182
1183    # $ANTLR end init_declarator_list
1184
1185
1186    # $ANTLR start init_declarator
1187    # C.g:193:1: init_declarator : declarator ( '=' initializer )? ;
1188    def init_declarator(self, ):
1189
1190        init_declarator_StartIndex = self.input.index()
1191        try:
1192            try:
1193                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 7):
1194                    return
1195
1196                # C.g:194:2: ( declarator ( '=' initializer )? )
1197                # C.g:194:4: declarator ( '=' initializer )?
1198                self.following.append(self.FOLLOW_declarator_in_init_declarator326)
1199                self.declarator()
1200                self.following.pop()
1201                if self.failed:
1202                    return
1203                # C.g:194:15: ( '=' initializer )?
1204                alt12 = 2
1205                LA12_0 = self.input.LA(1)
1206
1207                if (LA12_0 == 28) :
1208                    alt12 = 1
1209                if alt12 == 1:
1210                    # C.g:194:16: '=' initializer
1211                    self.match(self.input, 28, self.FOLLOW_28_in_init_declarator329)
1212                    if self.failed:
1213                        return
1214                    self.following.append(self.FOLLOW_initializer_in_init_declarator331)
1215                    self.initializer()
1216                    self.following.pop()
1217                    if self.failed:
1218                        return
1219
1220
1221
1222
1223
1224
1225
1226            except RecognitionException, re:
1227                self.reportError(re)
1228                self.recover(self.input, re)
1229        finally:
1230            if self.backtracking > 0:
1231                self.memoize(self.input, 7, init_declarator_StartIndex)
1232
1233            pass
1234
1235        return
1236
1237    # $ANTLR end init_declarator
1238
1239
1240    # $ANTLR start storage_class_specifier
1241    # C.g:197:1: storage_class_specifier : ( 'extern' | 'static' | 'auto' | 'register' | 'STATIC' );
1242    def storage_class_specifier(self, ):
1243
1244        storage_class_specifier_StartIndex = self.input.index()
1245        try:
1246            try:
1247                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 8):
1248                    return
1249
1250                # C.g:198:2: ( 'extern' | 'static' | 'auto' | 'register' | 'STATIC' )
1251                # C.g:
1252                if (29 <= self.input.LA(1) <= 33):
1253                    self.input.consume();
1254                    self.errorRecovery = False
1255                    self.failed = False
1256
1257                else:
1258                    if self.backtracking > 0:
1259                        self.failed = True
1260                        return
1261
1262                    mse = MismatchedSetException(None, self.input)
1263                    self.recoverFromMismatchedSet(
1264                        self.input, mse, self.FOLLOW_set_in_storage_class_specifier0
1265                        )
1266                    raise mse
1267
1268
1269
1270
1271
1272
1273            except RecognitionException, re:
1274                self.reportError(re)
1275                self.recover(self.input, re)
1276        finally:
1277            if self.backtracking > 0:
1278                self.memoize(self.input, 8, storage_class_specifier_StartIndex)
1279
1280            pass
1281
1282        return
1283
1284    # $ANTLR end storage_class_specifier
1285
1286
1287    # $ANTLR start type_specifier
1288    # C.g:205:1: type_specifier : ( 'void' | 'char' | 'short' | 'int' | 'long' | 'float' | 'double' | 'signed' | 'unsigned' | s= struct_or_union_specifier | e= enum_specifier | ( IDENTIFIER ( type_qualifier )* declarator )=> type_id );
1289    def type_specifier(self, ):
1290
1291        type_specifier_StartIndex = self.input.index()
1292        s = None
1293
1294        e = None
1295
1296
1297        try:
1298            try:
1299                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 9):
1300                    return
1301
1302                # C.g:206:2: ( 'void' | 'char' | 'short' | 'int' | 'long' | 'float' | 'double' | 'signed' | 'unsigned' | s= struct_or_union_specifier | e= enum_specifier | ( IDENTIFIER ( type_qualifier )* declarator )=> type_id )
1303                alt13 = 12
1304                LA13_0 = self.input.LA(1)
1305
1306                if (LA13_0 == 34) :
1307                    alt13 = 1
1308                elif (LA13_0 == 35) :
1309                    alt13 = 2
1310                elif (LA13_0 == 36) :
1311                    alt13 = 3
1312                elif (LA13_0 == 37) :
1313                    alt13 = 4
1314                elif (LA13_0 == 38) :
1315                    alt13 = 5
1316                elif (LA13_0 == 39) :
1317                    alt13 = 6
1318                elif (LA13_0 == 40) :
1319                    alt13 = 7
1320                elif (LA13_0 == 41) :
1321                    alt13 = 8
1322                elif (LA13_0 == 42) :
1323                    alt13 = 9
1324                elif ((45 <= LA13_0 <= 46)) :
1325                    alt13 = 10
1326                elif (LA13_0 == 48) :
1327                    alt13 = 11
1328                elif (LA13_0 == IDENTIFIER) and (self.synpred34()):
1329                    alt13 = 12
1330                else:
1331                    if self.backtracking > 0:
1332                        self.failed = True
1333                        return
1334
1335                    nvae = NoViableAltException("205:1: type_specifier : ( 'void' | 'char' | 'short' | 'int' | 'long' | 'float' | 'double' | 'signed' | 'unsigned' | s= struct_or_union_specifier | e= enum_specifier | ( IDENTIFIER ( type_qualifier )* declarator )=> type_id );", 13, 0, self.input)
1336
1337                    raise nvae
1338
1339                if alt13 == 1:
1340                    # C.g:206:4: 'void'
1341                    self.match(self.input, 34, self.FOLLOW_34_in_type_specifier376)
1342                    if self.failed:
1343                        return
1344
1345
1346                elif alt13 == 2:
1347                    # C.g:207:4: 'char'
1348                    self.match(self.input, 35, self.FOLLOW_35_in_type_specifier381)
1349                    if self.failed:
1350                        return
1351
1352
1353                elif alt13 == 3:
1354                    # C.g:208:4: 'short'
1355                    self.match(self.input, 36, self.FOLLOW_36_in_type_specifier386)
1356                    if self.failed:
1357                        return
1358
1359
1360                elif alt13 == 4:
1361                    # C.g:209:4: 'int'
1362                    self.match(self.input, 37, self.FOLLOW_37_in_type_specifier391)
1363                    if self.failed:
1364                        return
1365
1366
1367                elif alt13 == 5:
1368                    # C.g:210:4: 'long'
1369                    self.match(self.input, 38, self.FOLLOW_38_in_type_specifier396)
1370                    if self.failed:
1371                        return
1372
1373
1374                elif alt13 == 6:
1375                    # C.g:211:4: 'float'
1376                    self.match(self.input, 39, self.FOLLOW_39_in_type_specifier401)
1377                    if self.failed:
1378                        return
1379
1380
1381                elif alt13 == 7:
1382                    # C.g:212:4: 'double'
1383                    self.match(self.input, 40, self.FOLLOW_40_in_type_specifier406)
1384                    if self.failed:
1385                        return
1386
1387
1388                elif alt13 == 8:
1389                    # C.g:213:4: 'signed'
1390                    self.match(self.input, 41, self.FOLLOW_41_in_type_specifier411)
1391                    if self.failed:
1392                        return
1393
1394
1395                elif alt13 == 9:
1396                    # C.g:214:4: 'unsigned'
1397                    self.match(self.input, 42, self.FOLLOW_42_in_type_specifier416)
1398                    if self.failed:
1399                        return
1400
1401
1402                elif alt13 == 10:
1403                    # C.g:215:4: s= struct_or_union_specifier
1404                    self.following.append(self.FOLLOW_struct_or_union_specifier_in_type_specifier423)
1405                    s = self.struct_or_union_specifier()
1406                    self.following.pop()
1407                    if self.failed:
1408                        return
1409                    if self.backtracking == 0:
1410
1411                        if s.stop != None:
1412                          self.StoreStructUnionDefinition(s.start.line, s.start.charPositionInLine, s.stop.line, s.stop.charPositionInLine, self.input.toString(s.start,s.stop))
1413
1414
1415
1416
1417                elif alt13 == 11:
1418                    # C.g:220:4: e= enum_specifier
1419                    self.following.append(self.FOLLOW_enum_specifier_in_type_specifier433)
1420                    e = self.enum_specifier()
1421                    self.following.pop()
1422                    if self.failed:
1423                        return
1424                    if self.backtracking == 0:
1425
1426                        if e.stop != None:
1427                          self.StoreEnumerationDefinition(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start,e.stop))
1428
1429
1430
1431
1432                elif alt13 == 12:
1433                    # C.g:225:4: ( IDENTIFIER ( type_qualifier )* declarator )=> type_id
1434                    self.following.append(self.FOLLOW_type_id_in_type_specifier451)
1435                    self.type_id()
1436                    self.following.pop()
1437                    if self.failed:
1438                        return
1439
1440
1441
1442            except RecognitionException, re:
1443                self.reportError(re)
1444                self.recover(self.input, re)
1445        finally:
1446            if self.backtracking > 0:
1447                self.memoize(self.input, 9, type_specifier_StartIndex)
1448
1449            pass
1450
1451        return
1452
1453    # $ANTLR end type_specifier
1454
1455
1456    # $ANTLR start type_id
1457    # C.g:228:1: type_id : IDENTIFIER ;
1458    def type_id(self, ):
1459
1460        type_id_StartIndex = self.input.index()
1461        try:
1462            try:
1463                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 10):
1464                    return
1465
1466                # C.g:229:5: ( IDENTIFIER )
1467                # C.g:229:9: IDENTIFIER
1468                self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_type_id467)
1469                if self.failed:
1470                    return
1471
1472
1473
1474
1475            except RecognitionException, re:
1476                self.reportError(re)
1477                self.recover(self.input, re)
1478        finally:
1479            if self.backtracking > 0:
1480                self.memoize(self.input, 10, type_id_StartIndex)
1481
1482            pass
1483
1484        return
1485
1486    # $ANTLR end type_id
1487
1488    class struct_or_union_specifier_return(object):
1489        def __init__(self):
1490            self.start = None
1491            self.stop = None
1492
1493
1494
1495    # $ANTLR start struct_or_union_specifier
1496    # C.g:233:1: struct_or_union_specifier options {k=3; } : ( struct_or_union ( IDENTIFIER )? '{' struct_declaration_list '}' | struct_or_union IDENTIFIER );
1497    def struct_or_union_specifier(self, ):
1498
1499        retval = self.struct_or_union_specifier_return()
1500        retval.start = self.input.LT(1)
1501        struct_or_union_specifier_StartIndex = self.input.index()
1502        try:
1503            try:
1504                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 11):
1505                    return retval
1506
1507                # C.g:235:2: ( struct_or_union ( IDENTIFIER )? '{' struct_declaration_list '}' | struct_or_union IDENTIFIER )
1508                alt15 = 2
1509                LA15_0 = self.input.LA(1)
1510
1511                if ((45 <= LA15_0 <= 46)) :
1512                    LA15_1 = self.input.LA(2)
1513
1514                    if (LA15_1 == IDENTIFIER) :
1515                        LA15_2 = self.input.LA(3)
1516
1517                        if (LA15_2 == 43) :
1518                            alt15 = 1
1519                        elif (LA15_2 == EOF or LA15_2 == IDENTIFIER or LA15_2 == 25 or LA15_2 == 27 or (29 <= LA15_2 <= 42) or (45 <= LA15_2 <= 64) or LA15_2 == 66) :
1520                            alt15 = 2
1521                        else:
1522                            if self.backtracking > 0:
1523                                self.failed = True
1524                                return retval
1525
1526                            nvae = NoViableAltException("233:1: struct_or_union_specifier options {k=3; } : ( struct_or_union ( IDENTIFIER )? '{' struct_declaration_list '}' | struct_or_union IDENTIFIER );", 15, 2, self.input)
1527
1528                            raise nvae
1529
1530                    elif (LA15_1 == 43) :
1531                        alt15 = 1
1532                    else:
1533                        if self.backtracking > 0:
1534                            self.failed = True
1535                            return retval
1536
1537                        nvae = NoViableAltException("233:1: struct_or_union_specifier options {k=3; } : ( struct_or_union ( IDENTIFIER )? '{' struct_declaration_list '}' | struct_or_union IDENTIFIER );", 15, 1, self.input)
1538
1539                        raise nvae
1540
1541                else:
1542                    if self.backtracking > 0:
1543                        self.failed = True
1544                        return retval
1545
1546                    nvae = NoViableAltException("233:1: struct_or_union_specifier options {k=3; } : ( struct_or_union ( IDENTIFIER )? '{' struct_declaration_list '}' | struct_or_union IDENTIFIER );", 15, 0, self.input)
1547
1548                    raise nvae
1549
1550                if alt15 == 1:
1551                    # C.g:235:4: struct_or_union ( IDENTIFIER )? '{' struct_declaration_list '}'
1552                    self.following.append(self.FOLLOW_struct_or_union_in_struct_or_union_specifier494)
1553                    self.struct_or_union()
1554                    self.following.pop()
1555                    if self.failed:
1556                        return retval
1557                    # C.g:235:20: ( IDENTIFIER )?
1558                    alt14 = 2
1559                    LA14_0 = self.input.LA(1)
1560
1561                    if (LA14_0 == IDENTIFIER) :
1562                        alt14 = 1
1563                    if alt14 == 1:
1564                        # C.g:0:0: IDENTIFIER
1565                        self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_struct_or_union_specifier496)
1566                        if self.failed:
1567                            return retval
1568
1569
1570
1571                    self.match(self.input, 43, self.FOLLOW_43_in_struct_or_union_specifier499)
1572                    if self.failed:
1573                        return retval
1574                    self.following.append(self.FOLLOW_struct_declaration_list_in_struct_or_union_specifier501)
1575                    self.struct_declaration_list()
1576                    self.following.pop()
1577                    if self.failed:
1578                        return retval
1579                    self.match(self.input, 44, self.FOLLOW_44_in_struct_or_union_specifier503)
1580                    if self.failed:
1581                        return retval
1582
1583
1584                elif alt15 == 2:
1585                    # C.g:236:4: struct_or_union IDENTIFIER
1586                    self.following.append(self.FOLLOW_struct_or_union_in_struct_or_union_specifier508)
1587                    self.struct_or_union()
1588                    self.following.pop()
1589                    if self.failed:
1590                        return retval
1591                    self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_struct_or_union_specifier510)
1592                    if self.failed:
1593                        return retval
1594
1595
1596                retval.stop = self.input.LT(-1)
1597
1598
1599            except RecognitionException, re:
1600                self.reportError(re)
1601                self.recover(self.input, re)
1602        finally:
1603            if self.backtracking > 0:
1604                self.memoize(self.input, 11, struct_or_union_specifier_StartIndex)
1605
1606            pass
1607
1608        return retval
1609
1610    # $ANTLR end struct_or_union_specifier
1611
1612
1613    # $ANTLR start struct_or_union
1614    # C.g:239:1: struct_or_union : ( 'struct' | 'union' );
1615    def struct_or_union(self, ):
1616
1617        struct_or_union_StartIndex = self.input.index()
1618        try:
1619            try:
1620                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 12):
1621                    return
1622
1623                # C.g:240:2: ( 'struct' | 'union' )
1624                # C.g:
1625                if (45 <= self.input.LA(1) <= 46):
1626                    self.input.consume();
1627                    self.errorRecovery = False
1628                    self.failed = False
1629
1630                else:
1631                    if self.backtracking > 0:
1632                        self.failed = True
1633                        return
1634
1635                    mse = MismatchedSetException(None, self.input)
1636                    self.recoverFromMismatchedSet(
1637                        self.input, mse, self.FOLLOW_set_in_struct_or_union0
1638                        )
1639                    raise mse
1640
1641
1642
1643
1644
1645
1646            except RecognitionException, re:
1647                self.reportError(re)
1648                self.recover(self.input, re)
1649        finally:
1650            if self.backtracking > 0:
1651                self.memoize(self.input, 12, struct_or_union_StartIndex)
1652
1653            pass
1654
1655        return
1656
1657    # $ANTLR end struct_or_union
1658
1659
1660    # $ANTLR start struct_declaration_list
1661    # C.g:244:1: struct_declaration_list : ( struct_declaration )+ ;
1662    def struct_declaration_list(self, ):
1663
1664        struct_declaration_list_StartIndex = self.input.index()
1665        try:
1666            try:
1667                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 13):
1668                    return
1669
1670                # C.g:245:2: ( ( struct_declaration )+ )
1671                # C.g:245:4: ( struct_declaration )+
1672                # C.g:245:4: ( struct_declaration )+
1673                cnt16 = 0
1674                while True: #loop16
1675                    alt16 = 2
1676                    LA16_0 = self.input.LA(1)
1677
1678                    if (LA16_0 == IDENTIFIER or (34 <= LA16_0 <= 42) or (45 <= LA16_0 <= 46) or (48 <= LA16_0 <= 61)) :
1679                        alt16 = 1
1680
1681
1682                    if alt16 == 1:
1683                        # C.g:0:0: struct_declaration
1684                        self.following.append(self.FOLLOW_struct_declaration_in_struct_declaration_list537)
1685                        self.struct_declaration()
1686                        self.following.pop()
1687                        if self.failed:
1688                            return
1689
1690
1691                    else:
1692                        if cnt16 >= 1:
1693                            break #loop16
1694
1695                        if self.backtracking > 0:
1696                            self.failed = True
1697                            return
1698
1699                        eee = EarlyExitException(16, self.input)
1700                        raise eee
1701
1702                    cnt16 += 1
1703
1704
1705
1706
1707
1708
1709            except RecognitionException, re:
1710                self.reportError(re)
1711                self.recover(self.input, re)
1712        finally:
1713            if self.backtracking > 0:
1714                self.memoize(self.input, 13, struct_declaration_list_StartIndex)
1715
1716            pass
1717
1718        return
1719
1720    # $ANTLR end struct_declaration_list
1721
1722
1723    # $ANTLR start struct_declaration
1724    # C.g:248:1: struct_declaration : specifier_qualifier_list struct_declarator_list ';' ;
1725    def struct_declaration(self, ):
1726
1727        struct_declaration_StartIndex = self.input.index()
1728        try:
1729            try:
1730                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 14):
1731                    return
1732
1733                # C.g:249:2: ( specifier_qualifier_list struct_declarator_list ';' )
1734                # C.g:249:4: specifier_qualifier_list struct_declarator_list ';'
1735                self.following.append(self.FOLLOW_specifier_qualifier_list_in_struct_declaration549)
1736                self.specifier_qualifier_list()
1737                self.following.pop()
1738                if self.failed:
1739                    return
1740                self.following.append(self.FOLLOW_struct_declarator_list_in_struct_declaration551)
1741                self.struct_declarator_list()
1742                self.following.pop()
1743                if self.failed:
1744                    return
1745                self.match(self.input, 25, self.FOLLOW_25_in_struct_declaration553)
1746                if self.failed:
1747                    return
1748
1749
1750
1751
1752            except RecognitionException, re:
1753                self.reportError(re)
1754                self.recover(self.input, re)
1755        finally:
1756            if self.backtracking > 0:
1757                self.memoize(self.input, 14, struct_declaration_StartIndex)
1758
1759            pass
1760
1761        return
1762
1763    # $ANTLR end struct_declaration
1764
1765
1766    # $ANTLR start specifier_qualifier_list
1767    # C.g:252:1: specifier_qualifier_list : ( type_qualifier | type_specifier )+ ;
1768    def specifier_qualifier_list(self, ):
1769
1770        specifier_qualifier_list_StartIndex = self.input.index()
1771        try:
1772            try:
1773                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 15):
1774                    return
1775
1776                # C.g:253:2: ( ( type_qualifier | type_specifier )+ )
1777                # C.g:253:4: ( type_qualifier | type_specifier )+
1778                # C.g:253:4: ( type_qualifier | type_specifier )+
1779                cnt17 = 0
1780                while True: #loop17
1781                    alt17 = 3
1782                    LA17 = self.input.LA(1)
1783                    if LA17 == 58:
1784                        LA17_2 = self.input.LA(2)
1785
1786                        if (self.synpred39()) :
1787                            alt17 = 1
1788
1789
1790                    elif LA17 == 59:
1791                        LA17_3 = self.input.LA(2)
1792
1793                        if (self.synpred39()) :
1794                            alt17 = 1
1795
1796
1797                    elif LA17 == 60:
1798                        LA17_4 = self.input.LA(2)
1799
1800                        if (self.synpred39()) :
1801                            alt17 = 1
1802
1803
1804                    elif LA17 == IDENTIFIER:
1805                        LA17 = self.input.LA(2)
1806                        if LA17 == EOF or LA17 == IDENTIFIER or LA17 == 34 or LA17 == 35 or LA17 == 36 or LA17 == 37 or LA17 == 38 or LA17 == 39 or LA17 == 40 or LA17 == 41 or LA17 == 42 or LA17 == 45 or LA17 == 46 or LA17 == 48 or LA17 == 49 or LA17 == 50 or LA17 == 51 or LA17 == 52 or LA17 == 53 or LA17 == 54 or LA17 == 55 or LA17 == 56 or LA17 == 57 or LA17 == 58 or LA17 == 59 or LA17 == 60 or LA17 == 61 or LA17 == 63 or LA17 == 66:
1807                            alt17 = 2
1808                        elif LA17 == 62:
1809                            LA17_94 = self.input.LA(3)
1810
1811                            if (self.synpred40()) :
1812                                alt17 = 2
1813
1814
1815                        elif LA17 == 47:
1816                            LA17_95 = self.input.LA(3)
1817
1818                            if (self.synpred40()) :
1819                                alt17 = 2
1820
1821
1822                        elif LA17 == 64:
1823                            LA17_96 = self.input.LA(3)
1824
1825                            if (self.synpred40()) :
1826                                alt17 = 2
1827
1828
1829
1830                    elif LA17 == 49 or LA17 == 50 or LA17 == 51 or LA17 == 52 or LA17 == 53 or LA17 == 54 or LA17 == 55 or LA17 == 56 or LA17 == 57 or LA17 == 61:
1831                        alt17 = 1
1832                    elif LA17 == 34 or LA17 == 35 or LA17 == 36 or LA17 == 37 or LA17 == 38 or LA17 == 39 or LA17 == 40 or LA17 == 41 or LA17 == 42 or LA17 == 45 or LA17 == 46 or LA17 == 48:
1833                        alt17 = 2
1834
1835                    if alt17 == 1:
1836                        # C.g:253:6: type_qualifier
1837                        self.following.append(self.FOLLOW_type_qualifier_in_specifier_qualifier_list566)
1838                        self.type_qualifier()
1839                        self.following.pop()
1840                        if self.failed:
1841                            return
1842
1843
1844                    elif alt17 == 2:
1845                        # C.g:253:23: type_specifier
1846                        self.following.append(self.FOLLOW_type_specifier_in_specifier_qualifier_list570)
1847                        self.type_specifier()
1848                        self.following.pop()
1849                        if self.failed:
1850                            return
1851
1852
1853                    else:
1854                        if cnt17 >= 1:
1855                            break #loop17
1856
1857                        if self.backtracking > 0:
1858                            self.failed = True
1859                            return
1860
1861                        eee = EarlyExitException(17, self.input)
1862                        raise eee
1863
1864                    cnt17 += 1
1865
1866
1867
1868
1869
1870
1871            except RecognitionException, re:
1872                self.reportError(re)
1873                self.recover(self.input, re)
1874        finally:
1875            if self.backtracking > 0:
1876                self.memoize(self.input, 15, specifier_qualifier_list_StartIndex)
1877
1878            pass
1879
1880        return
1881
1882    # $ANTLR end specifier_qualifier_list
1883
1884
1885    # $ANTLR start struct_declarator_list
1886    # C.g:256:1: struct_declarator_list : struct_declarator ( ',' struct_declarator )* ;
1887    def struct_declarator_list(self, ):
1888
1889        struct_declarator_list_StartIndex = self.input.index()
1890        try:
1891            try:
1892                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 16):
1893                    return
1894
1895                # C.g:257:2: ( struct_declarator ( ',' struct_declarator )* )
1896                # C.g:257:4: struct_declarator ( ',' struct_declarator )*
1897                self.following.append(self.FOLLOW_struct_declarator_in_struct_declarator_list584)
1898                self.struct_declarator()
1899                self.following.pop()
1900                if self.failed:
1901                    return
1902                # C.g:257:22: ( ',' struct_declarator )*
1903                while True: #loop18
1904                    alt18 = 2
1905                    LA18_0 = self.input.LA(1)
1906
1907                    if (LA18_0 == 27) :
1908                        alt18 = 1
1909
1910
1911                    if alt18 == 1:
1912                        # C.g:257:23: ',' struct_declarator
1913                        self.match(self.input, 27, self.FOLLOW_27_in_struct_declarator_list587)
1914                        if self.failed:
1915                            return
1916                        self.following.append(self.FOLLOW_struct_declarator_in_struct_declarator_list589)
1917                        self.struct_declarator()
1918                        self.following.pop()
1919                        if self.failed:
1920                            return
1921
1922
1923                    else:
1924                        break #loop18
1925
1926
1927
1928
1929
1930
1931            except RecognitionException, re:
1932                self.reportError(re)
1933                self.recover(self.input, re)
1934        finally:
1935            if self.backtracking > 0:
1936                self.memoize(self.input, 16, struct_declarator_list_StartIndex)
1937
1938            pass
1939
1940        return
1941
1942    # $ANTLR end struct_declarator_list
1943
1944
1945    # $ANTLR start struct_declarator
1946    # C.g:260:1: struct_declarator : ( declarator ( ':' constant_expression )? | ':' constant_expression );
1947    def struct_declarator(self, ):
1948
1949        struct_declarator_StartIndex = self.input.index()
1950        try:
1951            try:
1952                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 17):
1953                    return
1954
1955                # C.g:261:2: ( declarator ( ':' constant_expression )? | ':' constant_expression )
1956                alt20 = 2
1957                LA20_0 = self.input.LA(1)
1958
1959                if (LA20_0 == IDENTIFIER or (58 <= LA20_0 <= 60) or LA20_0 == 62 or LA20_0 == 66) :
1960                    alt20 = 1
1961                elif (LA20_0 == 47) :
1962                    alt20 = 2
1963                else:
1964                    if self.backtracking > 0:
1965                        self.failed = True
1966                        return
1967
1968                    nvae = NoViableAltException("260:1: struct_declarator : ( declarator ( ':' constant_expression )? | ':' constant_expression );", 20, 0, self.input)
1969
1970                    raise nvae
1971
1972                if alt20 == 1:
1973                    # C.g:261:4: declarator ( ':' constant_expression )?
1974                    self.following.append(self.FOLLOW_declarator_in_struct_declarator602)
1975                    self.declarator()
1976                    self.following.pop()
1977                    if self.failed:
1978                        return
1979                    # C.g:261:15: ( ':' constant_expression )?
1980                    alt19 = 2
1981                    LA19_0 = self.input.LA(1)
1982
1983                    if (LA19_0 == 47) :
1984                        alt19 = 1
1985                    if alt19 == 1:
1986                        # C.g:261:16: ':' constant_expression
1987                        self.match(self.input, 47, self.FOLLOW_47_in_struct_declarator605)
1988                        if self.failed:
1989                            return
1990                        self.following.append(self.FOLLOW_constant_expression_in_struct_declarator607)
1991                        self.constant_expression()
1992                        self.following.pop()
1993                        if self.failed:
1994                            return
1995
1996
1997
1998
1999
2000                elif alt20 == 2:
2001                    # C.g:262:4: ':' constant_expression
2002                    self.match(self.input, 47, self.FOLLOW_47_in_struct_declarator614)
2003                    if self.failed:
2004                        return
2005                    self.following.append(self.FOLLOW_constant_expression_in_struct_declarator616)
2006                    self.constant_expression()
2007                    self.following.pop()
2008                    if self.failed:
2009                        return
2010
2011
2012
2013            except RecognitionException, re:
2014                self.reportError(re)
2015                self.recover(self.input, re)
2016        finally:
2017            if self.backtracking > 0:
2018                self.memoize(self.input, 17, struct_declarator_StartIndex)
2019
2020            pass
2021
2022        return
2023
2024    # $ANTLR end struct_declarator
2025
2026    class enum_specifier_return(object):
2027        def __init__(self):
2028            self.start = None
2029            self.stop = None
2030
2031
2032
2033    # $ANTLR start enum_specifier
2034    # C.g:265:1: enum_specifier options {k=3; } : ( 'enum' '{' enumerator_list ( ',' )? '}' | 'enum' IDENTIFIER '{' enumerator_list ( ',' )? '}' | 'enum' IDENTIFIER );
2035    def enum_specifier(self, ):
2036
2037        retval = self.enum_specifier_return()
2038        retval.start = self.input.LT(1)
2039        enum_specifier_StartIndex = self.input.index()
2040        try:
2041            try:
2042                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 18):
2043                    return retval
2044
2045                # C.g:267:2: ( 'enum' '{' enumerator_list ( ',' )? '}' | 'enum' IDENTIFIER '{' enumerator_list ( ',' )? '}' | 'enum' IDENTIFIER )
2046                alt23 = 3
2047                LA23_0 = self.input.LA(1)
2048
2049                if (LA23_0 == 48) :
2050                    LA23_1 = self.input.LA(2)
2051
2052                    if (LA23_1 == IDENTIFIER) :
2053                        LA23_2 = self.input.LA(3)
2054
2055                        if (LA23_2 == 43) :
2056                            alt23 = 2
2057                        elif (LA23_2 == EOF or LA23_2 == IDENTIFIER or LA23_2 == 25 or LA23_2 == 27 or (29 <= LA23_2 <= 42) or (45 <= LA23_2 <= 64) or LA23_2 == 66) :
2058                            alt23 = 3
2059                        else:
2060                            if self.backtracking > 0:
2061                                self.failed = True
2062                                return retval
2063
2064                            nvae = NoViableAltException("265:1: enum_specifier options {k=3; } : ( 'enum' '{' enumerator_list ( ',' )? '}' | 'enum' IDENTIFIER '{' enumerator_list ( ',' )? '}' | 'enum' IDENTIFIER );", 23, 2, self.input)
2065
2066                            raise nvae
2067
2068                    elif (LA23_1 == 43) :
2069                        alt23 = 1
2070                    else:
2071                        if self.backtracking > 0:
2072                            self.failed = True
2073                            return retval
2074
2075                        nvae = NoViableAltException("265:1: enum_specifier options {k=3; } : ( 'enum' '{' enumerator_list ( ',' )? '}' | 'enum' IDENTIFIER '{' enumerator_list ( ',' )? '}' | 'enum' IDENTIFIER );", 23, 1, self.input)
2076
2077                        raise nvae
2078
2079                else:
2080                    if self.backtracking > 0:
2081                        self.failed = True
2082                        return retval
2083
2084                    nvae = NoViableAltException("265:1: enum_specifier options {k=3; } : ( 'enum' '{' enumerator_list ( ',' )? '}' | 'enum' IDENTIFIER '{' enumerator_list ( ',' )? '}' | 'enum' IDENTIFIER );", 23, 0, self.input)
2085
2086                    raise nvae
2087
2088                if alt23 == 1:
2089                    # C.g:267:4: 'enum' '{' enumerator_list ( ',' )? '}'
2090                    self.match(self.input, 48, self.FOLLOW_48_in_enum_specifier634)
2091                    if self.failed:
2092                        return retval
2093                    self.match(self.input, 43, self.FOLLOW_43_in_enum_specifier636)
2094                    if self.failed:
2095                        return retval
2096                    self.following.append(self.FOLLOW_enumerator_list_in_enum_specifier638)
2097                    self.enumerator_list()
2098                    self.following.pop()
2099                    if self.failed:
2100                        return retval
2101                    # C.g:267:31: ( ',' )?
2102                    alt21 = 2
2103                    LA21_0 = self.input.LA(1)
2104
2105                    if (LA21_0 == 27) :
2106                        alt21 = 1
2107                    if alt21 == 1:
2108                        # C.g:0:0: ','
2109                        self.match(self.input, 27, self.FOLLOW_27_in_enum_specifier640)
2110                        if self.failed:
2111                            return retval
2112
2113
2114
2115                    self.match(self.input, 44, self.FOLLOW_44_in_enum_specifier643)
2116                    if self.failed:
2117                        return retval
2118
2119
2120                elif alt23 == 2:
2121                    # C.g:268:4: 'enum' IDENTIFIER '{' enumerator_list ( ',' )? '}'
2122                    self.match(self.input, 48, self.FOLLOW_48_in_enum_specifier648)
2123                    if self.failed:
2124                        return retval
2125                    self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_enum_specifier650)
2126                    if self.failed:
2127                        return retval
2128                    self.match(self.input, 43, self.FOLLOW_43_in_enum_specifier652)
2129                    if self.failed:
2130                        return retval
2131                    self.following.append(self.FOLLOW_enumerator_list_in_enum_specifier654)
2132                    self.enumerator_list()
2133                    self.following.pop()
2134                    if self.failed:
2135                        return retval
2136                    # C.g:268:42: ( ',' )?
2137                    alt22 = 2
2138                    LA22_0 = self.input.LA(1)
2139
2140                    if (LA22_0 == 27) :
2141                        alt22 = 1
2142                    if alt22 == 1:
2143                        # C.g:0:0: ','
2144                        self.match(self.input, 27, self.FOLLOW_27_in_enum_specifier656)
2145                        if self.failed:
2146                            return retval
2147
2148
2149
2150                    self.match(self.input, 44, self.FOLLOW_44_in_enum_specifier659)
2151                    if self.failed:
2152                        return retval
2153
2154
2155                elif alt23 == 3:
2156                    # C.g:269:4: 'enum' IDENTIFIER
2157                    self.match(self.input, 48, self.FOLLOW_48_in_enum_specifier664)
2158                    if self.failed:
2159                        return retval
2160                    self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_enum_specifier666)
2161                    if self.failed:
2162                        return retval
2163
2164
2165                retval.stop = self.input.LT(-1)
2166
2167
2168            except RecognitionException, re:
2169                self.reportError(re)
2170                self.recover(self.input, re)
2171        finally:
2172            if self.backtracking > 0:
2173                self.memoize(self.input, 18, enum_specifier_StartIndex)
2174
2175            pass
2176
2177        return retval
2178
2179    # $ANTLR end enum_specifier
2180
2181
2182    # $ANTLR start enumerator_list
2183    # C.g:272:1: enumerator_list : enumerator ( ',' enumerator )* ;
2184    def enumerator_list(self, ):
2185
2186        enumerator_list_StartIndex = self.input.index()
2187        try:
2188            try:
2189                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 19):
2190                    return
2191
2192                # C.g:273:2: ( enumerator ( ',' enumerator )* )
2193                # C.g:273:4: enumerator ( ',' enumerator )*
2194                self.following.append(self.FOLLOW_enumerator_in_enumerator_list677)
2195                self.enumerator()
2196                self.following.pop()
2197                if self.failed:
2198                    return
2199                # C.g:273:15: ( ',' enumerator )*
2200                while True: #loop24
2201                    alt24 = 2
2202                    LA24_0 = self.input.LA(1)
2203
2204                    if (LA24_0 == 27) :
2205                        LA24_1 = self.input.LA(2)
2206
2207                        if (LA24_1 == IDENTIFIER) :
2208                            alt24 = 1
2209
2210
2211
2212
2213                    if alt24 == 1:
2214                        # C.g:273:16: ',' enumerator
2215                        self.match(self.input, 27, self.FOLLOW_27_in_enumerator_list680)
2216                        if self.failed:
2217                            return
2218                        self.following.append(self.FOLLOW_enumerator_in_enumerator_list682)
2219                        self.enumerator()
2220                        self.following.pop()
2221                        if self.failed:
2222                            return
2223
2224
2225                    else:
2226                        break #loop24
2227
2228
2229
2230
2231
2232
2233            except RecognitionException, re:
2234                self.reportError(re)
2235                self.recover(self.input, re)
2236        finally:
2237            if self.backtracking > 0:
2238                self.memoize(self.input, 19, enumerator_list_StartIndex)
2239
2240            pass
2241
2242        return
2243
2244    # $ANTLR end enumerator_list
2245
2246
2247    # $ANTLR start enumerator
2248    # C.g:276:1: enumerator : IDENTIFIER ( '=' constant_expression )? ;
2249    def enumerator(self, ):
2250
2251        enumerator_StartIndex = self.input.index()
2252        try:
2253            try:
2254                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 20):
2255                    return
2256
2257                # C.g:277:2: ( IDENTIFIER ( '=' constant_expression )? )
2258                # C.g:277:4: IDENTIFIER ( '=' constant_expression )?
2259                self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_enumerator695)
2260                if self.failed:
2261                    return
2262                # C.g:277:15: ( '=' constant_expression )?
2263                alt25 = 2
2264                LA25_0 = self.input.LA(1)
2265
2266                if (LA25_0 == 28) :
2267                    alt25 = 1
2268                if alt25 == 1:
2269                    # C.g:277:16: '=' constant_expression
2270                    self.match(self.input, 28, self.FOLLOW_28_in_enumerator698)
2271                    if self.failed:
2272                        return
2273                    self.following.append(self.FOLLOW_constant_expression_in_enumerator700)
2274                    self.constant_expression()
2275                    self.following.pop()
2276                    if self.failed:
2277                        return
2278
2279
2280
2281
2282
2283
2284
2285            except RecognitionException, re:
2286                self.reportError(re)
2287                self.recover(self.input, re)
2288        finally:
2289            if self.backtracking > 0:
2290                self.memoize(self.input, 20, enumerator_StartIndex)
2291
2292            pass
2293
2294        return
2295
2296    # $ANTLR end enumerator
2297
2298
2299    # $ANTLR start type_qualifier
2300    # C.g:280:1: type_qualifier : ( 'const' | 'volatile' | 'IN' | 'OUT' | 'OPTIONAL' | 'CONST' | 'UNALIGNED' | 'VOLATILE' | 'GLOBAL_REMOVE_IF_UNREFERENCED' | 'EFIAPI' | 'EFI_BOOTSERVICE' | 'EFI_RUNTIMESERVICE' | 'PACKED' );
2301    def type_qualifier(self, ):
2302
2303        type_qualifier_StartIndex = self.input.index()
2304        try:
2305            try:
2306                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 21):
2307                    return
2308
2309                # C.g:281:2: ( 'const' | 'volatile' | 'IN' | 'OUT' | 'OPTIONAL' | 'CONST' | 'UNALIGNED' | 'VOLATILE' | 'GLOBAL_REMOVE_IF_UNREFERENCED' | 'EFIAPI' | 'EFI_BOOTSERVICE' | 'EFI_RUNTIMESERVICE' | 'PACKED' )
2310                # C.g:
2311                if (49 <= self.input.LA(1) <= 61):
2312                    self.input.consume();
2313                    self.errorRecovery = False
2314                    self.failed = False
2315
2316                else:
2317                    if self.backtracking > 0:
2318                        self.failed = True
2319                        return
2320
2321                    mse = MismatchedSetException(None, self.input)
2322                    self.recoverFromMismatchedSet(
2323                        self.input, mse, self.FOLLOW_set_in_type_qualifier0
2324                        )
2325                    raise mse
2326
2327
2328
2329
2330
2331
2332            except RecognitionException, re:
2333                self.reportError(re)
2334                self.recover(self.input, re)
2335        finally:
2336            if self.backtracking > 0:
2337                self.memoize(self.input, 21, type_qualifier_StartIndex)
2338
2339            pass
2340
2341        return
2342
2343    # $ANTLR end type_qualifier
2344
2345    class declarator_return(object):
2346        def __init__(self):
2347            self.start = None
2348            self.stop = None
2349
2350
2351
2352    # $ANTLR start declarator
2353    # C.g:296:1: declarator : ( ( pointer )? ( 'EFIAPI' )? ( 'EFI_BOOTSERVICE' )? ( 'EFI_RUNTIMESERVICE' )? direct_declarator | pointer );
2354    def declarator(self, ):
2355
2356        retval = self.declarator_return()
2357        retval.start = self.input.LT(1)
2358        declarator_StartIndex = self.input.index()
2359        try:
2360            try:
2361                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 22):
2362                    return retval
2363
2364                # C.g:297:2: ( ( pointer )? ( 'EFIAPI' )? ( 'EFI_BOOTSERVICE' )? ( 'EFI_RUNTIMESERVICE' )? direct_declarator | pointer )
2365                alt30 = 2
2366                LA30_0 = self.input.LA(1)
2367
2368                if (LA30_0 == 66) :
2369                    LA30_1 = self.input.LA(2)
2370
2371                    if (self.synpred66()) :
2372                        alt30 = 1
2373                    elif (True) :
2374                        alt30 = 2
2375                    else:
2376                        if self.backtracking > 0:
2377                            self.failed = True
2378                            return retval
2379
2380                        nvae = NoViableAltException("296:1: declarator : ( ( pointer )? ( 'EFIAPI' )? ( 'EFI_BOOTSERVICE' )? ( 'EFI_RUNTIMESERVICE' )? direct_declarator | pointer );", 30, 1, self.input)
2381
2382                        raise nvae
2383
2384                elif (LA30_0 == IDENTIFIER or (58 <= LA30_0 <= 60) or LA30_0 == 62) :
2385                    alt30 = 1
2386                else:
2387                    if self.backtracking > 0:
2388                        self.failed = True
2389                        return retval
2390
2391                    nvae = NoViableAltException("296:1: declarator : ( ( pointer )? ( 'EFIAPI' )? ( 'EFI_BOOTSERVICE' )? ( 'EFI_RUNTIMESERVICE' )? direct_declarator | pointer );", 30, 0, self.input)
2392
2393                    raise nvae
2394
2395                if alt30 == 1:
2396                    # C.g:297:4: ( pointer )? ( 'EFIAPI' )? ( 'EFI_BOOTSERVICE' )? ( 'EFI_RUNTIMESERVICE' )? direct_declarator
2397                    # C.g:297:4: ( pointer )?
2398                    alt26 = 2
2399                    LA26_0 = self.input.LA(1)
2400
2401                    if (LA26_0 == 66) :
2402                        alt26 = 1
2403                    if alt26 == 1:
2404                        # C.g:0:0: pointer
2405                        self.following.append(self.FOLLOW_pointer_in_declarator784)
2406                        self.pointer()
2407                        self.following.pop()
2408                        if self.failed:
2409                            return retval
2410
2411
2412
2413                    # C.g:297:13: ( 'EFIAPI' )?
2414                    alt27 = 2
2415                    LA27_0 = self.input.LA(1)
2416
2417                    if (LA27_0 == 58) :
2418                        alt27 = 1
2419                    if alt27 == 1:
2420                        # C.g:297:14: 'EFIAPI'
2421                        self.match(self.input, 58, self.FOLLOW_58_in_declarator788)
2422                        if self.failed:
2423                            return retval
2424
2425
2426
2427                    # C.g:297:25: ( 'EFI_BOOTSERVICE' )?
2428                    alt28 = 2
2429                    LA28_0 = self.input.LA(1)
2430
2431                    if (LA28_0 == 59) :
2432                        alt28 = 1
2433                    if alt28 == 1:
2434                        # C.g:297:26: 'EFI_BOOTSERVICE'
2435                        self.match(self.input, 59, self.FOLLOW_59_in_declarator793)
2436                        if self.failed:
2437                            return retval
2438
2439
2440
2441                    # C.g:297:46: ( 'EFI_RUNTIMESERVICE' )?
2442                    alt29 = 2
2443                    LA29_0 = self.input.LA(1)
2444
2445                    if (LA29_0 == 60) :
2446                        alt29 = 1
2447                    if alt29 == 1:
2448                        # C.g:297:47: 'EFI_RUNTIMESERVICE'
2449                        self.match(self.input, 60, self.FOLLOW_60_in_declarator798)
2450                        if self.failed:
2451                            return retval
2452
2453
2454
2455                    self.following.append(self.FOLLOW_direct_declarator_in_declarator802)
2456                    self.direct_declarator()
2457                    self.following.pop()
2458                    if self.failed:
2459                        return retval
2460
2461
2462                elif alt30 == 2:
2463                    # C.g:299:4: pointer
2464                    self.following.append(self.FOLLOW_pointer_in_declarator808)
2465                    self.pointer()
2466                    self.following.pop()
2467                    if self.failed:
2468                        return retval
2469
2470
2471                retval.stop = self.input.LT(-1)
2472
2473
2474            except RecognitionException, re:
2475                self.reportError(re)
2476                self.recover(self.input, re)
2477        finally:
2478            if self.backtracking > 0:
2479                self.memoize(self.input, 22, declarator_StartIndex)
2480
2481            pass
2482
2483        return retval
2484
2485    # $ANTLR end declarator
2486
2487
2488    # $ANTLR start direct_declarator
2489    # C.g:302:1: direct_declarator : ( IDENTIFIER ( declarator_suffix )* | '(' ( 'EFIAPI' )? declarator ')' ( declarator_suffix )+ );
2490    def direct_declarator(self, ):
2491
2492        direct_declarator_StartIndex = self.input.index()
2493        try:
2494            try:
2495                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 23):
2496                    return
2497
2498                # C.g:303:2: ( IDENTIFIER ( declarator_suffix )* | '(' ( 'EFIAPI' )? declarator ')' ( declarator_suffix )+ )
2499                alt34 = 2
2500                LA34_0 = self.input.LA(1)
2501
2502                if (LA34_0 == IDENTIFIER) :
2503                    alt34 = 1
2504                elif (LA34_0 == 62) :
2505                    alt34 = 2
2506                else:
2507                    if self.backtracking > 0:
2508                        self.failed = True
2509                        return
2510
2511                    nvae = NoViableAltException("302:1: direct_declarator : ( IDENTIFIER ( declarator_suffix )* | '(' ( 'EFIAPI' )? declarator ')' ( declarator_suffix )+ );", 34, 0, self.input)
2512
2513                    raise nvae
2514
2515                if alt34 == 1:
2516                    # C.g:303:4: IDENTIFIER ( declarator_suffix )*
2517                    self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_direct_declarator819)
2518                    if self.failed:
2519                        return
2520                    # C.g:303:15: ( declarator_suffix )*
2521                    while True: #loop31
2522                        alt31 = 2
2523                        LA31_0 = self.input.LA(1)
2524
2525                        if (LA31_0 == 62) :
2526                            LA31 = self.input.LA(2)
2527                            if LA31 == 63:
2528                                LA31_30 = self.input.LA(3)
2529
2530                                if (self.synpred67()) :
2531                                    alt31 = 1
2532
2533
2534                            elif LA31 == 58:
2535                                LA31_31 = self.input.LA(3)
2536
2537                                if (self.synpred67()) :
2538                                    alt31 = 1
2539
2540
2541                            elif LA31 == 66:
2542                                LA31_32 = self.input.LA(3)
2543
2544                                if (self.synpred67()) :
2545                                    alt31 = 1
2546
2547
2548                            elif LA31 == 59:
2549                                LA31_33 = self.input.LA(3)
2550
2551                                if (self.synpred67()) :
2552                                    alt31 = 1
2553
2554
2555                            elif LA31 == 60:
2556                                LA31_34 = self.input.LA(3)
2557
2558                                if (self.synpred67()) :
2559                                    alt31 = 1
2560
2561
2562                            elif LA31 == IDENTIFIER:
2563                                LA31_35 = self.input.LA(3)
2564
2565                                if (self.synpred67()) :
2566                                    alt31 = 1
2567
2568
2569                            elif LA31 == 29 or LA31 == 30 or LA31 == 31 or LA31 == 32 or LA31 == 33:
2570                                LA31_37 = self.input.LA(3)
2571
2572                                if (self.synpred67()) :
2573                                    alt31 = 1
2574
2575
2576                            elif LA31 == 34:
2577                                LA31_38 = self.input.LA(3)
2578
2579                                if (self.synpred67()) :
2580                                    alt31 = 1
2581
2582
2583                            elif LA31 == 35:
2584                                LA31_39 = self.input.LA(3)
2585
2586                                if (self.synpred67()) :
2587                                    alt31 = 1
2588
2589
2590                            elif LA31 == 36:
2591                                LA31_40 = self.input.LA(3)
2592
2593                                if (self.synpred67()) :
2594                                    alt31 = 1
2595
2596
2597                            elif LA31 == 37:
2598                                LA31_41 = self.input.LA(3)
2599
2600                                if (self.synpred67()) :
2601                                    alt31 = 1
2602
2603
2604                            elif LA31 == 38:
2605                                LA31_42 = self.input.LA(3)
2606
2607                                if (self.synpred67()) :
2608                                    alt31 = 1
2609
2610
2611                            elif LA31 == 39:
2612                                LA31_43 = self.input.LA(3)
2613
2614                                if (self.synpred67()) :
2615                                    alt31 = 1
2616
2617
2618                            elif LA31 == 40:
2619                                LA31_44 = self.input.LA(3)
2620
2621                                if (self.synpred67()) :
2622                                    alt31 = 1
2623
2624
2625                            elif LA31 == 41:
2626                                LA31_45 = self.input.LA(3)
2627
2628                                if (self.synpred67()) :
2629                                    alt31 = 1
2630
2631
2632                            elif LA31 == 42:
2633                                LA31_46 = self.input.LA(3)
2634
2635                                if (self.synpred67()) :
2636                                    alt31 = 1
2637
2638
2639                            elif LA31 == 45 or LA31 == 46:
2640                                LA31_47 = self.input.LA(3)
2641
2642                                if (self.synpred67()) :
2643                                    alt31 = 1
2644
2645
2646                            elif LA31 == 48:
2647                                LA31_48 = self.input.LA(3)
2648
2649                                if (self.synpred67()) :
2650                                    alt31 = 1
2651
2652
2653                            elif LA31 == 49 or LA31 == 50 or LA31 == 51 or LA31 == 52 or LA31 == 53 or LA31 == 54 or LA31 == 55 or LA31 == 56 or LA31 == 57 or LA31 == 61:
2654                                LA31_49 = self.input.LA(3)
2655
2656                                if (self.synpred67()) :
2657                                    alt31 = 1
2658
2659
2660
2661                        elif (LA31_0 == 64) :
2662                            LA31 = self.input.LA(2)
2663                            if LA31 == 65:
2664                                LA31_51 = self.input.LA(3)
2665
2666                                if (self.synpred67()) :
2667                                    alt31 = 1
2668
2669
2670                            elif LA31 == 62:
2671                                LA31_52 = self.input.LA(3)
2672
2673                                if (self.synpred67()) :
2674                                    alt31 = 1
2675
2676
2677                            elif LA31 == IDENTIFIER:
2678                                LA31_53 = self.input.LA(3)
2679
2680                                if (self.synpred67()) :
2681                                    alt31 = 1
2682
2683
2684                            elif LA31 == HEX_LITERAL:
2685                                LA31_54 = self.input.LA(3)
2686
2687                                if (self.synpred67()) :
2688                                    alt31 = 1
2689
2690
2691                            elif LA31 == OCTAL_LITERAL:
2692                                LA31_55 = self.input.LA(3)
2693
2694                                if (self.synpred67()) :
2695                                    alt31 = 1
2696
2697
2698                            elif LA31 == DECIMAL_LITERAL:
2699                                LA31_56 = self.input.LA(3)
2700
2701                                if (self.synpred67()) :
2702                                    alt31 = 1
2703
2704
2705                            elif LA31 == CHARACTER_LITERAL:
2706                                LA31_57 = self.input.LA(3)
2707
2708                                if (self.synpred67()) :
2709                                    alt31 = 1
2710
2711
2712                            elif LA31 == STRING_LITERAL:
2713                                LA31_58 = self.input.LA(3)
2714
2715                                if (self.synpred67()) :
2716                                    alt31 = 1
2717
2718
2719                            elif LA31 == FLOATING_POINT_LITERAL:
2720                                LA31_59 = self.input.LA(3)
2721
2722                                if (self.synpred67()) :
2723                                    alt31 = 1
2724
2725
2726                            elif LA31 == 72:
2727                                LA31_60 = self.input.LA(3)
2728
2729                                if (self.synpred67()) :
2730                                    alt31 = 1
2731
2732
2733                            elif LA31 == 73:
2734                                LA31_61 = self.input.LA(3)
2735
2736                                if (self.synpred67()) :
2737                                    alt31 = 1
2738
2739
2740                            elif LA31 == 66 or LA31 == 68 or LA31 == 69 or LA31 == 77 or LA31 == 78 or LA31 == 79:
2741                                LA31_62 = self.input.LA(3)
2742
2743                                if (self.synpred67()) :
2744                                    alt31 = 1
2745
2746
2747                            elif LA31 == 74:
2748                                LA31_63 = self.input.LA(3)
2749
2750                                if (self.synpred67()) :
2751                                    alt31 = 1
2752
2753
2754
2755
2756
2757                        if alt31 == 1:
2758                            # C.g:0:0: declarator_suffix
2759                            self.following.append(self.FOLLOW_declarator_suffix_in_direct_declarator821)
2760                            self.declarator_suffix()
2761                            self.following.pop()
2762                            if self.failed:
2763                                return
2764
2765
2766                        else:
2767                            break #loop31
2768
2769
2770
2771
2772                elif alt34 == 2:
2773                    # C.g:304:4: '(' ( 'EFIAPI' )? declarator ')' ( declarator_suffix )+
2774                    self.match(self.input, 62, self.FOLLOW_62_in_direct_declarator827)
2775                    if self.failed:
2776                        return
2777                    # C.g:304:8: ( 'EFIAPI' )?
2778                    alt32 = 2
2779                    LA32_0 = self.input.LA(1)
2780
2781                    if (LA32_0 == 58) :
2782                        LA32_1 = self.input.LA(2)
2783
2784                        if (self.synpred69()) :
2785                            alt32 = 1
2786                    if alt32 == 1:
2787                        # C.g:304:9: 'EFIAPI'
2788                        self.match(self.input, 58, self.FOLLOW_58_in_direct_declarator830)
2789                        if self.failed:
2790                            return
2791
2792
2793
2794                    self.following.append(self.FOLLOW_declarator_in_direct_declarator834)
2795                    self.declarator()
2796                    self.following.pop()
2797                    if self.failed:
2798                        return
2799                    self.match(self.input, 63, self.FOLLOW_63_in_direct_declarator836)
2800                    if self.failed:
2801                        return
2802                    # C.g:304:35: ( declarator_suffix )+
2803                    cnt33 = 0
2804                    while True: #loop33
2805                        alt33 = 2
2806                        LA33_0 = self.input.LA(1)
2807
2808                        if (LA33_0 == 62) :
2809                            LA33 = self.input.LA(2)
2810                            if LA33 == 63:
2811                                LA33_30 = self.input.LA(3)
2812
2813                                if (self.synpred70()) :
2814                                    alt33 = 1
2815
2816
2817                            elif LA33 == 58:
2818                                LA33_31 = self.input.LA(3)
2819
2820                                if (self.synpred70()) :
2821                                    alt33 = 1
2822
2823
2824                            elif LA33 == 66:
2825                                LA33_32 = self.input.LA(3)
2826
2827                                if (self.synpred70()) :
2828                                    alt33 = 1
2829
2830
2831                            elif LA33 == 59:
2832                                LA33_33 = self.input.LA(3)
2833
2834                                if (self.synpred70()) :
2835                                    alt33 = 1
2836
2837
2838                            elif LA33 == 60:
2839                                LA33_34 = self.input.LA(3)
2840
2841                                if (self.synpred70()) :
2842                                    alt33 = 1
2843
2844
2845                            elif LA33 == IDENTIFIER:
2846                                LA33_35 = self.input.LA(3)
2847
2848                                if (self.synpred70()) :
2849                                    alt33 = 1
2850
2851
2852                            elif LA33 == 29 or LA33 == 30 or LA33 == 31 or LA33 == 32 or LA33 == 33:
2853                                LA33_37 = self.input.LA(3)
2854
2855                                if (self.synpred70()) :
2856                                    alt33 = 1
2857
2858
2859                            elif LA33 == 34:
2860                                LA33_38 = self.input.LA(3)
2861
2862                                if (self.synpred70()) :
2863                                    alt33 = 1
2864
2865
2866                            elif LA33 == 35:
2867                                LA33_39 = self.input.LA(3)
2868
2869                                if (self.synpred70()) :
2870                                    alt33 = 1
2871
2872
2873                            elif LA33 == 36:
2874                                LA33_40 = self.input.LA(3)
2875
2876                                if (self.synpred70()) :
2877                                    alt33 = 1
2878
2879
2880                            elif LA33 == 37:
2881                                LA33_41 = self.input.LA(3)
2882
2883                                if (self.synpred70()) :
2884                                    alt33 = 1
2885
2886
2887                            elif LA33 == 38:
2888                                LA33_42 = self.input.LA(3)
2889
2890                                if (self.synpred70()) :
2891                                    alt33 = 1
2892
2893
2894                            elif LA33 == 39:
2895                                LA33_43 = self.input.LA(3)
2896
2897                                if (self.synpred70()) :
2898                                    alt33 = 1
2899
2900
2901                            elif LA33 == 40:
2902                                LA33_44 = self.input.LA(3)
2903
2904                                if (self.synpred70()) :
2905                                    alt33 = 1
2906
2907
2908                            elif LA33 == 41:
2909                                LA33_45 = self.input.LA(3)
2910
2911                                if (self.synpred70()) :
2912                                    alt33 = 1
2913
2914
2915                            elif LA33 == 42:
2916                                LA33_46 = self.input.LA(3)
2917
2918                                if (self.synpred70()) :
2919                                    alt33 = 1
2920
2921
2922                            elif LA33 == 45 or LA33 == 46:
2923                                LA33_47 = self.input.LA(3)
2924
2925                                if (self.synpred70()) :
2926                                    alt33 = 1
2927
2928
2929                            elif LA33 == 48:
2930                                LA33_48 = self.input.LA(3)
2931
2932                                if (self.synpred70()) :
2933                                    alt33 = 1
2934
2935
2936                            elif LA33 == 49 or LA33 == 50 or LA33 == 51 or LA33 == 52 or LA33 == 53 or LA33 == 54 or LA33 == 55 or LA33 == 56 or LA33 == 57 or LA33 == 61:
2937                                LA33_49 = self.input.LA(3)
2938
2939                                if (self.synpred70()) :
2940                                    alt33 = 1
2941
2942
2943
2944                        elif (LA33_0 == 64) :
2945                            LA33 = self.input.LA(2)
2946                            if LA33 == 65:
2947                                LA33_51 = self.input.LA(3)
2948
2949                                if (self.synpred70()) :
2950                                    alt33 = 1
2951
2952
2953                            elif LA33 == 62:
2954                                LA33_52 = self.input.LA(3)
2955
2956                                if (self.synpred70()) :
2957                                    alt33 = 1
2958
2959
2960                            elif LA33 == IDENTIFIER:
2961                                LA33_53 = self.input.LA(3)
2962
2963                                if (self.synpred70()) :
2964                                    alt33 = 1
2965
2966
2967                            elif LA33 == HEX_LITERAL:
2968                                LA33_54 = self.input.LA(3)
2969
2970                                if (self.synpred70()) :
2971                                    alt33 = 1
2972
2973
2974                            elif LA33 == OCTAL_LITERAL:
2975                                LA33_55 = self.input.LA(3)
2976
2977                                if (self.synpred70()) :
2978                                    alt33 = 1
2979
2980
2981                            elif LA33 == DECIMAL_LITERAL:
2982                                LA33_56 = self.input.LA(3)
2983
2984                                if (self.synpred70()) :
2985                                    alt33 = 1
2986
2987
2988                            elif LA33 == CHARACTER_LITERAL:
2989                                LA33_57 = self.input.LA(3)
2990
2991                                if (self.synpred70()) :
2992                                    alt33 = 1
2993
2994
2995                            elif LA33 == STRING_LITERAL:
2996                                LA33_58 = self.input.LA(3)
2997
2998                                if (self.synpred70()) :
2999                                    alt33 = 1
3000
3001
3002                            elif LA33 == FLOATING_POINT_LITERAL:
3003                                LA33_59 = self.input.LA(3)
3004
3005                                if (self.synpred70()) :
3006                                    alt33 = 1
3007
3008
3009                            elif LA33 == 72:
3010                                LA33_60 = self.input.LA(3)
3011
3012                                if (self.synpred70()) :
3013                                    alt33 = 1
3014
3015
3016                            elif LA33 == 73:
3017                                LA33_61 = self.input.LA(3)
3018
3019                                if (self.synpred70()) :
3020                                    alt33 = 1
3021
3022
3023                            elif LA33 == 66 or LA33 == 68 or LA33 == 69 or LA33 == 77 or LA33 == 78 or LA33 == 79:
3024                                LA33_62 = self.input.LA(3)
3025
3026                                if (self.synpred70()) :
3027                                    alt33 = 1
3028
3029
3030                            elif LA33 == 74:
3031                                LA33_63 = self.input.LA(3)
3032
3033                                if (self.synpred70()) :
3034                                    alt33 = 1
3035
3036
3037
3038
3039
3040                        if alt33 == 1:
3041                            # C.g:0:0: declarator_suffix
3042                            self.following.append(self.FOLLOW_declarator_suffix_in_direct_declarator838)
3043                            self.declarator_suffix()
3044                            self.following.pop()
3045                            if self.failed:
3046                                return
3047
3048
3049                        else:
3050                            if cnt33 >= 1:
3051                                break #loop33
3052
3053                            if self.backtracking > 0:
3054                                self.failed = True
3055                                return
3056
3057                            eee = EarlyExitException(33, self.input)
3058                            raise eee
3059
3060                        cnt33 += 1
3061
3062
3063
3064
3065
3066            except RecognitionException, re:
3067                self.reportError(re)
3068                self.recover(self.input, re)
3069        finally:
3070            if self.backtracking > 0:
3071                self.memoize(self.input, 23, direct_declarator_StartIndex)
3072
3073            pass
3074
3075        return
3076
3077    # $ANTLR end direct_declarator
3078
3079
3080    # $ANTLR start declarator_suffix
3081    # C.g:307:1: declarator_suffix : ( '[' constant_expression ']' | '[' ']' | '(' parameter_type_list ')' | '(' identifier_list ')' | '(' ')' );
3082    def declarator_suffix(self, ):
3083
3084        declarator_suffix_StartIndex = self.input.index()
3085        try:
3086            try:
3087                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 24):
3088                    return
3089
3090                # C.g:308:2: ( '[' constant_expression ']' | '[' ']' | '(' parameter_type_list ')' | '(' identifier_list ')' | '(' ')' )
3091                alt35 = 5
3092                LA35_0 = self.input.LA(1)
3093
3094                if (LA35_0 == 64) :
3095                    LA35_1 = self.input.LA(2)
3096
3097                    if (LA35_1 == 65) :
3098                        alt35 = 2
3099                    elif ((IDENTIFIER <= LA35_1 <= FLOATING_POINT_LITERAL) or LA35_1 == 62 or LA35_1 == 66 or (68 <= LA35_1 <= 69) or (72 <= LA35_1 <= 74) or (77 <= LA35_1 <= 79)) :
3100                        alt35 = 1
3101                    else:
3102                        if self.backtracking > 0:
3103                            self.failed = True
3104                            return
3105
3106                        nvae = NoViableAltException("307:1: declarator_suffix : ( '[' constant_expression ']' | '[' ']' | '(' parameter_type_list ')' | '(' identifier_list ')' | '(' ')' );", 35, 1, self.input)
3107
3108                        raise nvae
3109
3110                elif (LA35_0 == 62) :
3111                    LA35 = self.input.LA(2)
3112                    if LA35 == 63:
3113                        alt35 = 5
3114                    elif LA35 == 29 or LA35 == 30 or LA35 == 31 or LA35 == 32 or LA35 == 33 or LA35 == 34 or LA35 == 35 or LA35 == 36 or LA35 == 37 or LA35 == 38 or LA35 == 39 or LA35 == 40 or LA35 == 41 or LA35 == 42 or LA35 == 45 or LA35 == 46 or LA35 == 48 or LA35 == 49 or LA35 == 50 or LA35 == 51 or LA35 == 52 or LA35 == 53 or LA35 == 54 or LA35 == 55 or LA35 == 56 or LA35 == 57 or LA35 == 58 or LA35 == 59 or LA35 == 60 or LA35 == 61 or LA35 == 66:
3115                        alt35 = 3
3116                    elif LA35 == IDENTIFIER:
3117                        LA35_29 = self.input.LA(3)
3118
3119                        if (self.synpred73()) :
3120                            alt35 = 3
3121                        elif (self.synpred74()) :
3122                            alt35 = 4
3123                        else:
3124                            if self.backtracking > 0:
3125                                self.failed = True
3126                                return
3127
3128                            nvae = NoViableAltException("307:1: declarator_suffix : ( '[' constant_expression ']' | '[' ']' | '(' parameter_type_list ')' | '(' identifier_list ')' | '(' ')' );", 35, 29, self.input)
3129
3130                            raise nvae
3131
3132                    else:
3133                        if self.backtracking > 0:
3134                            self.failed = True
3135                            return
3136
3137                        nvae = NoViableAltException("307:1: declarator_suffix : ( '[' constant_expression ']' | '[' ']' | '(' parameter_type_list ')' | '(' identifier_list ')' | '(' ')' );", 35, 2, self.input)
3138
3139                        raise nvae
3140
3141                else:
3142                    if self.backtracking > 0:
3143                        self.failed = True
3144                        return
3145
3146                    nvae = NoViableAltException("307:1: declarator_suffix : ( '[' constant_expression ']' | '[' ']' | '(' parameter_type_list ')' | '(' identifier_list ')' | '(' ')' );", 35, 0, self.input)
3147
3148                    raise nvae
3149
3150                if alt35 == 1:
3151                    # C.g:308:6: '[' constant_expression ']'
3152                    self.match(self.input, 64, self.FOLLOW_64_in_declarator_suffix852)
3153                    if self.failed:
3154                        return
3155                    self.following.append(self.FOLLOW_constant_expression_in_declarator_suffix854)
3156                    self.constant_expression()
3157                    self.following.pop()
3158                    if self.failed:
3159                        return
3160                    self.match(self.input, 65, self.FOLLOW_65_in_declarator_suffix856)
3161                    if self.failed:
3162                        return
3163
3164
3165                elif alt35 == 2:
3166                    # C.g:309:9: '[' ']'
3167                    self.match(self.input, 64, self.FOLLOW_64_in_declarator_suffix866)
3168                    if self.failed:
3169                        return
3170                    self.match(self.input, 65, self.FOLLOW_65_in_declarator_suffix868)
3171                    if self.failed:
3172                        return
3173
3174
3175                elif alt35 == 3:
3176                    # C.g:310:9: '(' parameter_type_list ')'
3177                    self.match(self.input, 62, self.FOLLOW_62_in_declarator_suffix878)
3178                    if self.failed:
3179                        return
3180                    self.following.append(self.FOLLOW_parameter_type_list_in_declarator_suffix880)
3181                    self.parameter_type_list()
3182                    self.following.pop()
3183                    if self.failed:
3184                        return
3185                    self.match(self.input, 63, self.FOLLOW_63_in_declarator_suffix882)
3186                    if self.failed:
3187                        return
3188
3189
3190                elif alt35 == 4:
3191                    # C.g:311:9: '(' identifier_list ')'
3192                    self.match(self.input, 62, self.FOLLOW_62_in_declarator_suffix892)
3193                    if self.failed:
3194                        return
3195                    self.following.append(self.FOLLOW_identifier_list_in_declarator_suffix894)
3196                    self.identifier_list()
3197                    self.following.pop()
3198                    if self.failed:
3199                        return
3200                    self.match(self.input, 63, self.FOLLOW_63_in_declarator_suffix896)
3201                    if self.failed:
3202                        return
3203
3204
3205                elif alt35 == 5:
3206                    # C.g:312:9: '(' ')'
3207                    self.match(self.input, 62, self.FOLLOW_62_in_declarator_suffix906)
3208                    if self.failed:
3209                        return
3210                    self.match(self.input, 63, self.FOLLOW_63_in_declarator_suffix908)
3211                    if self.failed:
3212                        return
3213
3214
3215
3216            except RecognitionException, re:
3217                self.reportError(re)
3218                self.recover(self.input, re)
3219        finally:
3220            if self.backtracking > 0:
3221                self.memoize(self.input, 24, declarator_suffix_StartIndex)
3222
3223            pass
3224
3225        return
3226
3227    # $ANTLR end declarator_suffix
3228
3229
3230    # $ANTLR start pointer
3231    # C.g:315:1: pointer : ( '*' ( type_qualifier )+ ( pointer )? | '*' pointer | '*' );
3232    def pointer(self, ):
3233
3234        pointer_StartIndex = self.input.index()
3235        try:
3236            try:
3237                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 25):
3238                    return
3239
3240                # C.g:316:2: ( '*' ( type_qualifier )+ ( pointer )? | '*' pointer | '*' )
3241                alt38 = 3
3242                LA38_0 = self.input.LA(1)
3243
3244                if (LA38_0 == 66) :
3245                    LA38 = self.input.LA(2)
3246                    if LA38 == 66:
3247                        LA38_2 = self.input.LA(3)
3248
3249                        if (self.synpred78()) :
3250                            alt38 = 2
3251                        elif (True) :
3252                            alt38 = 3
3253                        else:
3254                            if self.backtracking > 0:
3255                                self.failed = True
3256                                return
3257
3258                            nvae = NoViableAltException("315:1: pointer : ( '*' ( type_qualifier )+ ( pointer )? | '*' pointer | '*' );", 38, 2, self.input)
3259
3260                            raise nvae
3261
3262                    elif LA38 == 58:
3263                        LA38_3 = self.input.LA(3)
3264
3265                        if (self.synpred77()) :
3266                            alt38 = 1
3267                        elif (True) :
3268                            alt38 = 3
3269                        else:
3270                            if self.backtracking > 0:
3271                                self.failed = True
3272                                return
3273
3274                            nvae = NoViableAltException("315:1: pointer : ( '*' ( type_qualifier )+ ( pointer )? | '*' pointer | '*' );", 38, 3, self.input)
3275
3276                            raise nvae
3277
3278                    elif LA38 == 59:
3279                        LA38_4 = self.input.LA(3)
3280
3281                        if (self.synpred77()) :
3282                            alt38 = 1
3283                        elif (True) :
3284                            alt38 = 3
3285                        else:
3286                            if self.backtracking > 0:
3287                                self.failed = True
3288                                return
3289
3290                            nvae = NoViableAltException("315:1: pointer : ( '*' ( type_qualifier )+ ( pointer )? | '*' pointer | '*' );", 38, 4, self.input)
3291
3292                            raise nvae
3293
3294                    elif LA38 == 60:
3295                        LA38_5 = self.input.LA(3)
3296
3297                        if (self.synpred77()) :
3298                            alt38 = 1
3299                        elif (True) :
3300                            alt38 = 3
3301                        else:
3302                            if self.backtracking > 0:
3303                                self.failed = True
3304                                return
3305
3306                            nvae = NoViableAltException("315:1: pointer : ( '*' ( type_qualifier )+ ( pointer )? | '*' pointer | '*' );", 38, 5, self.input)
3307
3308                            raise nvae
3309
3310                    elif LA38 == EOF or LA38 == IDENTIFIER or LA38 == 25 or LA38 == 26 or LA38 == 27 or LA38 == 28 or LA38 == 29 or LA38 == 30 or LA38 == 31 or LA38 == 32 or LA38 == 33 or LA38 == 34 or LA38 == 35 or LA38 == 36 or LA38 == 37 or LA38 == 38 or LA38 == 39 or LA38 == 40 or LA38 == 41 or LA38 == 42 or LA38 == 43 or LA38 == 45 or LA38 == 46 or LA38 == 47 or LA38 == 48 or LA38 == 62 or LA38 == 63 or LA38 == 64:
3311                        alt38 = 3
3312                    elif LA38 == 53:
3313                        LA38_21 = self.input.LA(3)
3314
3315                        if (self.synpred77()) :
3316                            alt38 = 1
3317                        elif (True) :
3318                            alt38 = 3
3319                        else:
3320                            if self.backtracking > 0:
3321                                self.failed = True
3322                                return
3323
3324                            nvae = NoViableAltException("315:1: pointer : ( '*' ( type_qualifier )+ ( pointer )? | '*' pointer | '*' );", 38, 21, self.input)
3325
3326                            raise nvae
3327
3328                    elif LA38 == 49 or LA38 == 50 or LA38 == 51 or LA38 == 52 or LA38 == 54 or LA38 == 55 or LA38 == 56 or LA38 == 57 or LA38 == 61:
3329                        LA38_29 = self.input.LA(3)
3330
3331                        if (self.synpred77()) :
3332                            alt38 = 1
3333                        elif (True) :
3334                            alt38 = 3
3335                        else:
3336                            if self.backtracking > 0:
3337                                self.failed = True
3338                                return
3339
3340                            nvae = NoViableAltException("315:1: pointer : ( '*' ( type_qualifier )+ ( pointer )? | '*' pointer | '*' );", 38, 29, self.input)
3341
3342                            raise nvae
3343
3344                    else:
3345                        if self.backtracking > 0:
3346                            self.failed = True
3347                            return
3348
3349                        nvae = NoViableAltException("315:1: pointer : ( '*' ( type_qualifier )+ ( pointer )? | '*' pointer | '*' );", 38, 1, self.input)
3350
3351                        raise nvae
3352
3353                else:
3354                    if self.backtracking > 0:
3355                        self.failed = True
3356                        return
3357
3358                    nvae = NoViableAltException("315:1: pointer : ( '*' ( type_qualifier )+ ( pointer )? | '*' pointer | '*' );", 38, 0, self.input)
3359
3360                    raise nvae
3361
3362                if alt38 == 1:
3363                    # C.g:316:4: '*' ( type_qualifier )+ ( pointer )?
3364                    self.match(self.input, 66, self.FOLLOW_66_in_pointer919)
3365                    if self.failed:
3366                        return
3367                    # C.g:316:8: ( type_qualifier )+
3368                    cnt36 = 0
3369                    while True: #loop36
3370                        alt36 = 2
3371                        LA36 = self.input.LA(1)
3372                        if LA36 == 58:
3373                            LA36_2 = self.input.LA(2)
3374
3375                            if (self.synpred75()) :
3376                                alt36 = 1
3377
3378
3379                        elif LA36 == 59:
3380                            LA36_3 = self.input.LA(2)
3381
3382                            if (self.synpred75()) :
3383                                alt36 = 1
3384
3385
3386                        elif LA36 == 60:
3387                            LA36_4 = self.input.LA(2)
3388
3389                            if (self.synpred75()) :
3390                                alt36 = 1
3391
3392
3393                        elif LA36 == 53:
3394                            LA36_20 = self.input.LA(2)
3395
3396                            if (self.synpred75()) :
3397                                alt36 = 1
3398
3399
3400                        elif LA36 == 49 or LA36 == 50 or LA36 == 51 or LA36 == 52 or LA36 == 54 or LA36 == 55 or LA36 == 56 or LA36 == 57 or LA36 == 61:
3401                            LA36_28 = self.input.LA(2)
3402
3403                            if (self.synpred75()) :
3404                                alt36 = 1
3405
3406
3407
3408                        if alt36 == 1:
3409                            # C.g:0:0: type_qualifier
3410                            self.following.append(self.FOLLOW_type_qualifier_in_pointer921)
3411                            self.type_qualifier()
3412                            self.following.pop()
3413                            if self.failed:
3414                                return
3415
3416
3417                        else:
3418                            if cnt36 >= 1:
3419                                break #loop36
3420
3421                            if self.backtracking > 0:
3422                                self.failed = True
3423                                return
3424
3425                            eee = EarlyExitException(36, self.input)
3426                            raise eee
3427
3428                        cnt36 += 1
3429
3430
3431                    # C.g:316:24: ( pointer )?
3432                    alt37 = 2
3433                    LA37_0 = self.input.LA(1)
3434
3435                    if (LA37_0 == 66) :
3436                        LA37_1 = self.input.LA(2)
3437
3438                        if (self.synpred76()) :
3439                            alt37 = 1
3440                    if alt37 == 1:
3441                        # C.g:0:0: pointer
3442                        self.following.append(self.FOLLOW_pointer_in_pointer924)
3443                        self.pointer()
3444                        self.following.pop()
3445                        if self.failed:
3446                            return
3447
3448
3449
3450
3451
3452                elif alt38 == 2:
3453                    # C.g:317:4: '*' pointer
3454                    self.match(self.input, 66, self.FOLLOW_66_in_pointer930)
3455                    if self.failed:
3456                        return
3457                    self.following.append(self.FOLLOW_pointer_in_pointer932)
3458                    self.pointer()
3459                    self.following.pop()
3460                    if self.failed:
3461                        return
3462
3463
3464                elif alt38 == 3:
3465                    # C.g:318:4: '*'
3466                    self.match(self.input, 66, self.FOLLOW_66_in_pointer937)
3467                    if self.failed:
3468                        return
3469
3470
3471
3472            except RecognitionException, re:
3473                self.reportError(re)
3474                self.recover(self.input, re)
3475        finally:
3476            if self.backtracking > 0:
3477                self.memoize(self.input, 25, pointer_StartIndex)
3478
3479            pass
3480
3481        return
3482
3483    # $ANTLR end pointer
3484
3485
3486    # $ANTLR start parameter_type_list
3487    # C.g:321:1: parameter_type_list : parameter_list ( ',' ( 'OPTIONAL' )? '...' )? ;
3488    def parameter_type_list(self, ):
3489
3490        parameter_type_list_StartIndex = self.input.index()
3491        try:
3492            try:
3493                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 26):
3494                    return
3495
3496                # C.g:322:2: ( parameter_list ( ',' ( 'OPTIONAL' )? '...' )? )
3497                # C.g:322:4: parameter_list ( ',' ( 'OPTIONAL' )? '...' )?
3498                self.following.append(self.FOLLOW_parameter_list_in_parameter_type_list948)
3499                self.parameter_list()
3500                self.following.pop()
3501                if self.failed:
3502                    return
3503                # C.g:322:19: ( ',' ( 'OPTIONAL' )? '...' )?
3504                alt40 = 2
3505                LA40_0 = self.input.LA(1)
3506
3507                if (LA40_0 == 27) :
3508                    alt40 = 1
3509                if alt40 == 1:
3510                    # C.g:322:20: ',' ( 'OPTIONAL' )? '...'
3511                    self.match(self.input, 27, self.FOLLOW_27_in_parameter_type_list951)
3512                    if self.failed:
3513                        return
3514                    # C.g:322:24: ( 'OPTIONAL' )?
3515                    alt39 = 2
3516                    LA39_0 = self.input.LA(1)
3517
3518                    if (LA39_0 == 53) :
3519                        alt39 = 1
3520                    if alt39 == 1:
3521                        # C.g:322:25: 'OPTIONAL'
3522                        self.match(self.input, 53, self.FOLLOW_53_in_parameter_type_list954)
3523                        if self.failed:
3524                            return
3525
3526
3527
3528                    self.match(self.input, 67, self.FOLLOW_67_in_parameter_type_list958)
3529                    if self.failed:
3530                        return
3531
3532
3533
3534
3535
3536
3537
3538            except RecognitionException, re:
3539                self.reportError(re)
3540                self.recover(self.input, re)
3541        finally:
3542            if self.backtracking > 0:
3543                self.memoize(self.input, 26, parameter_type_list_StartIndex)
3544
3545            pass
3546
3547        return
3548
3549    # $ANTLR end parameter_type_list
3550
3551
3552    # $ANTLR start parameter_list
3553    # C.g:325:1: parameter_list : parameter_declaration ( ',' ( 'OPTIONAL' )? parameter_declaration )* ;
3554    def parameter_list(self, ):
3555
3556        parameter_list_StartIndex = self.input.index()
3557        try:
3558            try:
3559                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 27):
3560                    return
3561
3562                # C.g:326:2: ( parameter_declaration ( ',' ( 'OPTIONAL' )? parameter_declaration )* )
3563                # C.g:326:4: parameter_declaration ( ',' ( 'OPTIONAL' )? parameter_declaration )*
3564                self.following.append(self.FOLLOW_parameter_declaration_in_parameter_list971)
3565                self.parameter_declaration()
3566                self.following.pop()
3567                if self.failed:
3568                    return
3569                # C.g:326:26: ( ',' ( 'OPTIONAL' )? parameter_declaration )*
3570                while True: #loop42
3571                    alt42 = 2
3572                    LA42_0 = self.input.LA(1)
3573
3574                    if (LA42_0 == 27) :
3575                        LA42_1 = self.input.LA(2)
3576
3577                        if (LA42_1 == 53) :
3578                            LA42_3 = self.input.LA(3)
3579
3580                            if (self.synpred82()) :
3581                                alt42 = 1
3582
3583
3584                        elif (LA42_1 == IDENTIFIER or (29 <= LA42_1 <= 42) or (45 <= LA42_1 <= 46) or (48 <= LA42_1 <= 52) or (54 <= LA42_1 <= 61) or LA42_1 == 66) :
3585                            alt42 = 1
3586
3587
3588
3589
3590                    if alt42 == 1:
3591                        # C.g:326:27: ',' ( 'OPTIONAL' )? parameter_declaration
3592                        self.match(self.input, 27, self.FOLLOW_27_in_parameter_list974)
3593                        if self.failed:
3594                            return
3595                        # C.g:326:31: ( 'OPTIONAL' )?
3596                        alt41 = 2
3597                        LA41_0 = self.input.LA(1)
3598
3599                        if (LA41_0 == 53) :
3600                            LA41_1 = self.input.LA(2)
3601
3602                            if (self.synpred81()) :
3603                                alt41 = 1
3604                        if alt41 == 1:
3605                            # C.g:326:32: 'OPTIONAL'
3606                            self.match(self.input, 53, self.FOLLOW_53_in_parameter_list977)
3607                            if self.failed:
3608                                return
3609
3610
3611
3612                        self.following.append(self.FOLLOW_parameter_declaration_in_parameter_list981)
3613                        self.parameter_declaration()
3614                        self.following.pop()
3615                        if self.failed:
3616                            return
3617
3618
3619                    else:
3620                        break #loop42
3621
3622
3623
3624
3625
3626
3627            except RecognitionException, re:
3628                self.reportError(re)
3629                self.recover(self.input, re)
3630        finally:
3631            if self.backtracking > 0:
3632                self.memoize(self.input, 27, parameter_list_StartIndex)
3633
3634            pass
3635
3636        return
3637
3638    # $ANTLR end parameter_list
3639
3640
3641    # $ANTLR start parameter_declaration
3642    # C.g:329:1: parameter_declaration : ( declaration_specifiers ( declarator | abstract_declarator )* ( 'OPTIONAL' )? | ( pointer )* IDENTIFIER );
3643    def parameter_declaration(self, ):
3644
3645        parameter_declaration_StartIndex = self.input.index()
3646        try:
3647            try:
3648                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 28):
3649                    return
3650
3651                # C.g:330:2: ( declaration_specifiers ( declarator | abstract_declarator )* ( 'OPTIONAL' )? | ( pointer )* IDENTIFIER )
3652                alt46 = 2
3653                LA46 = self.input.LA(1)
3654                if LA46 == 29 or LA46 == 30 or LA46 == 31 or LA46 == 32 or LA46 == 33 or LA46 == 34 or LA46 == 35 or LA46 == 36 or LA46 == 37 or LA46 == 38 or LA46 == 39 or LA46 == 40 or LA46 == 41 or LA46 == 42 or LA46 == 45 or LA46 == 46 or LA46 == 48 or LA46 == 49 or LA46 == 50 or LA46 == 51 or LA46 == 52 or LA46 == 53 or LA46 == 54 or LA46 == 55 or LA46 == 56 or LA46 == 57 or LA46 == 58 or LA46 == 59 or LA46 == 60 or LA46 == 61:
3655                    alt46 = 1
3656                elif LA46 == IDENTIFIER:
3657                    LA46_13 = self.input.LA(2)
3658
3659                    if (self.synpred86()) :
3660                        alt46 = 1
3661                    elif (True) :
3662                        alt46 = 2
3663                    else:
3664                        if self.backtracking > 0:
3665                            self.failed = True
3666                            return
3667
3668                        nvae = NoViableAltException("329:1: parameter_declaration : ( declaration_specifiers ( declarator | abstract_declarator )* ( 'OPTIONAL' )? | ( pointer )* IDENTIFIER );", 46, 13, self.input)
3669
3670                        raise nvae
3671
3672                elif LA46 == 66:
3673                    alt46 = 2
3674                else:
3675                    if self.backtracking > 0:
3676                        self.failed = True
3677                        return
3678
3679                    nvae = NoViableAltException("329:1: parameter_declaration : ( declaration_specifiers ( declarator | abstract_declarator )* ( 'OPTIONAL' )? | ( pointer )* IDENTIFIER );", 46, 0, self.input)
3680
3681                    raise nvae
3682
3683                if alt46 == 1:
3684                    # C.g:330:4: declaration_specifiers ( declarator | abstract_declarator )* ( 'OPTIONAL' )?
3685                    self.following.append(self.FOLLOW_declaration_specifiers_in_parameter_declaration994)
3686                    self.declaration_specifiers()
3687                    self.following.pop()
3688                    if self.failed:
3689                        return
3690                    # C.g:330:27: ( declarator | abstract_declarator )*
3691                    while True: #loop43
3692                        alt43 = 3
3693                        LA43 = self.input.LA(1)
3694                        if LA43 == 66:
3695                            LA43_5 = self.input.LA(2)
3696
3697                            if (self.synpred83()) :
3698                                alt43 = 1
3699                            elif (self.synpred84()) :
3700                                alt43 = 2
3701
3702
3703                        elif LA43 == IDENTIFIER or LA43 == 58 or LA43 == 59 or LA43 == 60:
3704                            alt43 = 1
3705                        elif LA43 == 62:
3706                            LA43 = self.input.LA(2)
3707                            if LA43 == 29 or LA43 == 30 or LA43 == 31 or LA43 == 32 or LA43 == 33 or LA43 == 34 or LA43 == 35 or LA43 == 36 or LA43 == 37 or LA43 == 38 or LA43 == 39 or LA43 == 40 or LA43 == 41 or LA43 == 42 or LA43 == 45 or LA43 == 46 or LA43 == 48 or LA43 == 49 or LA43 == 50 or LA43 == 51 or LA43 == 52 or LA43 == 53 or LA43 == 54 or LA43 == 55 or LA43 == 56 or LA43 == 57 or LA43 == 61 or LA43 == 63 or LA43 == 64:
3708                                alt43 = 2
3709                            elif LA43 == IDENTIFIER:
3710                                LA43_37 = self.input.LA(3)
3711
3712                                if (self.synpred83()) :
3713                                    alt43 = 1
3714                                elif (self.synpred84()) :
3715                                    alt43 = 2
3716
3717
3718                            elif LA43 == 58:
3719                                LA43_38 = self.input.LA(3)
3720
3721                                if (self.synpred83()) :
3722                                    alt43 = 1
3723                                elif (self.synpred84()) :
3724                                    alt43 = 2
3725
3726
3727                            elif LA43 == 66:
3728                                LA43_39 = self.input.LA(3)
3729
3730                                if (self.synpred83()) :
3731                                    alt43 = 1
3732                                elif (self.synpred84()) :
3733                                    alt43 = 2
3734
3735
3736                            elif LA43 == 59:
3737                                LA43_40 = self.input.LA(3)
3738
3739                                if (self.synpred83()) :
3740                                    alt43 = 1
3741                                elif (self.synpred84()) :
3742                                    alt43 = 2
3743
3744
3745                            elif LA43 == 60:
3746                                LA43_41 = self.input.LA(3)
3747
3748                                if (self.synpred83()) :
3749                                    alt43 = 1
3750                                elif (self.synpred84()) :
3751                                    alt43 = 2
3752
3753
3754                            elif LA43 == 62:
3755                                LA43_43 = self.input.LA(3)
3756
3757                                if (self.synpred83()) :
3758                                    alt43 = 1
3759                                elif (self.synpred84()) :
3760                                    alt43 = 2
3761
3762
3763
3764                        elif LA43 == 64:
3765                            alt43 = 2
3766
3767                        if alt43 == 1:
3768                            # C.g:330:28: declarator
3769                            self.following.append(self.FOLLOW_declarator_in_parameter_declaration997)
3770                            self.declarator()
3771                            self.following.pop()
3772                            if self.failed:
3773                                return
3774
3775
3776                        elif alt43 == 2:
3777                            # C.g:330:39: abstract_declarator
3778                            self.following.append(self.FOLLOW_abstract_declarator_in_parameter_declaration999)
3779                            self.abstract_declarator()
3780                            self.following.pop()
3781                            if self.failed:
3782                                return
3783
3784
3785                        else:
3786                            break #loop43
3787
3788
3789                    # C.g:330:61: ( 'OPTIONAL' )?
3790                    alt44 = 2
3791                    LA44_0 = self.input.LA(1)
3792
3793                    if (LA44_0 == 53) :
3794                        alt44 = 1
3795                    if alt44 == 1:
3796                        # C.g:330:62: 'OPTIONAL'
3797                        self.match(self.input, 53, self.FOLLOW_53_in_parameter_declaration1004)
3798                        if self.failed:
3799                            return
3800
3801
3802
3803
3804
3805                elif alt46 == 2:
3806                    # C.g:332:4: ( pointer )* IDENTIFIER
3807                    # C.g:332:4: ( pointer )*
3808                    while True: #loop45
3809                        alt45 = 2
3810                        LA45_0 = self.input.LA(1)
3811
3812                        if (LA45_0 == 66) :
3813                            alt45 = 1
3814
3815
3816                        if alt45 == 1:
3817                            # C.g:0:0: pointer
3818                            self.following.append(self.FOLLOW_pointer_in_parameter_declaration1013)
3819                            self.pointer()
3820                            self.following.pop()
3821                            if self.failed:
3822                                return
3823
3824
3825                        else:
3826                            break #loop45
3827
3828
3829                    self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_parameter_declaration1016)
3830                    if self.failed:
3831                        return
3832
3833
3834
3835            except RecognitionException, re:
3836                self.reportError(re)
3837                self.recover(self.input, re)
3838        finally:
3839            if self.backtracking > 0:
3840                self.memoize(self.input, 28, parameter_declaration_StartIndex)
3841
3842            pass
3843
3844        return
3845
3846    # $ANTLR end parameter_declaration
3847
3848
3849    # $ANTLR start identifier_list
3850    # C.g:335:1: identifier_list : IDENTIFIER ( ',' IDENTIFIER )* ;
3851    def identifier_list(self, ):
3852
3853        identifier_list_StartIndex = self.input.index()
3854        try:
3855            try:
3856                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 29):
3857                    return
3858
3859                # C.g:336:2: ( IDENTIFIER ( ',' IDENTIFIER )* )
3860                # C.g:336:4: IDENTIFIER ( ',' IDENTIFIER )*
3861                self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_identifier_list1027)
3862                if self.failed:
3863                    return
3864                # C.g:337:2: ( ',' IDENTIFIER )*
3865                while True: #loop47
3866                    alt47 = 2
3867                    LA47_0 = self.input.LA(1)
3868
3869                    if (LA47_0 == 27) :
3870                        alt47 = 1
3871
3872
3873                    if alt47 == 1:
3874                        # C.g:337:3: ',' IDENTIFIER
3875                        self.match(self.input, 27, self.FOLLOW_27_in_identifier_list1031)
3876                        if self.failed:
3877                            return
3878                        self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_identifier_list1033)
3879                        if self.failed:
3880                            return
3881
3882
3883                    else:
3884                        break #loop47
3885
3886
3887
3888
3889
3890
3891            except RecognitionException, re:
3892                self.reportError(re)
3893                self.recover(self.input, re)
3894        finally:
3895            if self.backtracking > 0:
3896                self.memoize(self.input, 29, identifier_list_StartIndex)
3897
3898            pass
3899
3900        return
3901
3902    # $ANTLR end identifier_list
3903
3904
3905    # $ANTLR start type_name
3906    # C.g:340:1: type_name : ( specifier_qualifier_list ( abstract_declarator )? | type_id );
3907    def type_name(self, ):
3908
3909        type_name_StartIndex = self.input.index()
3910        try:
3911            try:
3912                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 30):
3913                    return
3914
3915                # C.g:341:2: ( specifier_qualifier_list ( abstract_declarator )? | type_id )
3916                alt49 = 2
3917                LA49_0 = self.input.LA(1)
3918
3919                if ((34 <= LA49_0 <= 42) or (45 <= LA49_0 <= 46) or (48 <= LA49_0 <= 61)) :
3920                    alt49 = 1
3921                elif (LA49_0 == IDENTIFIER) :
3922                    LA49_13 = self.input.LA(2)
3923
3924                    if (self.synpred90()) :
3925                        alt49 = 1
3926                    elif (True) :
3927                        alt49 = 2
3928                    else:
3929                        if self.backtracking > 0:
3930                            self.failed = True
3931                            return
3932
3933                        nvae = NoViableAltException("340:1: type_name : ( specifier_qualifier_list ( abstract_declarator )? | type_id );", 49, 13, self.input)
3934
3935                        raise nvae
3936
3937                else:
3938                    if self.backtracking > 0:
3939                        self.failed = True
3940                        return
3941
3942                    nvae = NoViableAltException("340:1: type_name : ( specifier_qualifier_list ( abstract_declarator )? | type_id );", 49, 0, self.input)
3943
3944                    raise nvae
3945
3946                if alt49 == 1:
3947                    # C.g:341:4: specifier_qualifier_list ( abstract_declarator )?
3948                    self.following.append(self.FOLLOW_specifier_qualifier_list_in_type_name1046)
3949                    self.specifier_qualifier_list()
3950                    self.following.pop()
3951                    if self.failed:
3952                        return
3953                    # C.g:341:29: ( abstract_declarator )?
3954                    alt48 = 2
3955                    LA48_0 = self.input.LA(1)
3956
3957                    if (LA48_0 == 62 or LA48_0 == 64 or LA48_0 == 66) :
3958                        alt48 = 1
3959                    if alt48 == 1:
3960                        # C.g:0:0: abstract_declarator
3961                        self.following.append(self.FOLLOW_abstract_declarator_in_type_name1048)
3962                        self.abstract_declarator()
3963                        self.following.pop()
3964                        if self.failed:
3965                            return
3966
3967
3968
3969
3970
3971                elif alt49 == 2:
3972                    # C.g:342:4: type_id
3973                    self.following.append(self.FOLLOW_type_id_in_type_name1054)
3974                    self.type_id()
3975                    self.following.pop()
3976                    if self.failed:
3977                        return
3978
3979
3980
3981            except RecognitionException, re:
3982                self.reportError(re)
3983                self.recover(self.input, re)
3984        finally:
3985            if self.backtracking > 0:
3986                self.memoize(self.input, 30, type_name_StartIndex)
3987
3988            pass
3989
3990        return
3991
3992    # $ANTLR end type_name
3993
3994
3995    # $ANTLR start abstract_declarator
3996    # C.g:345:1: abstract_declarator : ( pointer ( direct_abstract_declarator )? | direct_abstract_declarator );
3997    def abstract_declarator(self, ):
3998
3999        abstract_declarator_StartIndex = self.input.index()
4000        try:
4001            try:
4002                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 31):
4003                    return
4004
4005                # C.g:346:2: ( pointer ( direct_abstract_declarator )? | direct_abstract_declarator )
4006                alt51 = 2
4007                LA51_0 = self.input.LA(1)
4008
4009                if (LA51_0 == 66) :
4010                    alt51 = 1
4011                elif (LA51_0 == 62 or LA51_0 == 64) :
4012                    alt51 = 2
4013                else:
4014                    if self.backtracking > 0:
4015                        self.failed = True
4016                        return
4017
4018                    nvae = NoViableAltException("345:1: abstract_declarator : ( pointer ( direct_abstract_declarator )? | direct_abstract_declarator );", 51, 0, self.input)
4019
4020                    raise nvae
4021
4022                if alt51 == 1:
4023                    # C.g:346:4: pointer ( direct_abstract_declarator )?
4024                    self.following.append(self.FOLLOW_pointer_in_abstract_declarator1065)
4025                    self.pointer()
4026                    self.following.pop()
4027                    if self.failed:
4028                        return
4029                    # C.g:346:12: ( direct_abstract_declarator )?
4030                    alt50 = 2
4031                    LA50_0 = self.input.LA(1)
4032
4033                    if (LA50_0 == 62) :
4034                        LA50 = self.input.LA(2)
4035                        if LA50 == 63:
4036                            LA50_12 = self.input.LA(3)
4037
4038                            if (self.synpred91()) :
4039                                alt50 = 1
4040                        elif LA50 == 58:
4041                            LA50_13 = self.input.LA(3)
4042
4043                            if (self.synpred91()) :
4044                                alt50 = 1
4045                        elif LA50 == 66:
4046                            LA50_14 = self.input.LA(3)
4047
4048                            if (self.synpred91()) :
4049                                alt50 = 1
4050                        elif LA50 == 59:
4051                            LA50_15 = self.input.LA(3)
4052
4053                            if (self.synpred91()) :
4054                                alt50 = 1
4055                        elif LA50 == 60:
4056                            LA50_16 = self.input.LA(3)
4057
4058                            if (self.synpred91()) :
4059                                alt50 = 1
4060                        elif LA50 == IDENTIFIER:
4061                            LA50_17 = self.input.LA(3)
4062
4063                            if (self.synpred91()) :
4064                                alt50 = 1
4065                        elif LA50 == 62:
4066                            LA50_18 = self.input.LA(3)
4067
4068                            if (self.synpred91()) :
4069                                alt50 = 1
4070                        elif LA50 == 64:
4071                            LA50_19 = self.input.LA(3)
4072
4073                            if (self.synpred91()) :
4074                                alt50 = 1
4075                        elif LA50 == 29 or LA50 == 30 or LA50 == 31 or LA50 == 32 or LA50 == 33:
4076                            LA50_20 = self.input.LA(3)
4077
4078                            if (self.synpred91()) :
4079                                alt50 = 1
4080                        elif LA50 == 34:
4081                            LA50_21 = self.input.LA(3)
4082
4083                            if (self.synpred91()) :
4084                                alt50 = 1
4085                        elif LA50 == 35:
4086                            LA50_22 = self.input.LA(3)
4087
4088                            if (self.synpred91()) :
4089                                alt50 = 1
4090                        elif LA50 == 36:
4091                            LA50_23 = self.input.LA(3)
4092
4093                            if (self.synpred91()) :
4094                                alt50 = 1
4095                        elif LA50 == 37:
4096                            LA50_24 = self.input.LA(3)
4097
4098                            if (self.synpred91()) :
4099                                alt50 = 1
4100                        elif LA50 == 38:
4101                            LA50_25 = self.input.LA(3)
4102
4103                            if (self.synpred91()) :
4104                                alt50 = 1
4105                        elif LA50 == 39:
4106                            LA50_26 = self.input.LA(3)
4107
4108                            if (self.synpred91()) :
4109                                alt50 = 1
4110                        elif LA50 == 40:
4111                            LA50_27 = self.input.LA(3)
4112
4113                            if (self.synpred91()) :
4114                                alt50 = 1
4115                        elif LA50 == 41:
4116                            LA50_28 = self.input.LA(3)
4117
4118                            if (self.synpred91()) :
4119                                alt50 = 1
4120                        elif LA50 == 42:
4121                            LA50_29 = self.input.LA(3)
4122
4123                            if (self.synpred91()) :
4124                                alt50 = 1
4125                        elif LA50 == 45 or LA50 == 46:
4126                            LA50_30 = self.input.LA(3)
4127
4128                            if (self.synpred91()) :
4129                                alt50 = 1
4130                        elif LA50 == 48:
4131                            LA50_31 = self.input.LA(3)
4132
4133                            if (self.synpred91()) :
4134                                alt50 = 1
4135                        elif LA50 == 49 or LA50 == 50 or LA50 == 51 or LA50 == 52 or LA50 == 53 or LA50 == 54 or LA50 == 55 or LA50 == 56 or LA50 == 57 or LA50 == 61:
4136                            LA50_32 = self.input.LA(3)
4137
4138                            if (self.synpred91()) :
4139                                alt50 = 1
4140                    elif (LA50_0 == 64) :
4141                        LA50 = self.input.LA(2)
4142                        if LA50 == 65:
4143                            LA50_33 = self.input.LA(3)
4144
4145                            if (self.synpred91()) :
4146                                alt50 = 1
4147                        elif LA50 == 62:
4148                            LA50_34 = self.input.LA(3)
4149
4150                            if (self.synpred91()) :
4151                                alt50 = 1
4152                        elif LA50 == IDENTIFIER:
4153                            LA50_35 = self.input.LA(3)
4154
4155                            if (self.synpred91()) :
4156                                alt50 = 1
4157                        elif LA50 == HEX_LITERAL:
4158                            LA50_36 = self.input.LA(3)
4159
4160                            if (self.synpred91()) :
4161                                alt50 = 1
4162                        elif LA50 == OCTAL_LITERAL:
4163                            LA50_37 = self.input.LA(3)
4164
4165                            if (self.synpred91()) :
4166                                alt50 = 1
4167                        elif LA50 == DECIMAL_LITERAL:
4168                            LA50_38 = self.input.LA(3)
4169
4170                            if (self.synpred91()) :
4171                                alt50 = 1
4172                        elif LA50 == CHARACTER_LITERAL:
4173                            LA50_39 = self.input.LA(3)
4174
4175                            if (self.synpred91()) :
4176                                alt50 = 1
4177                        elif LA50 == STRING_LITERAL:
4178                            LA50_40 = self.input.LA(3)
4179
4180                            if (self.synpred91()) :
4181                                alt50 = 1
4182                        elif LA50 == FLOATING_POINT_LITERAL:
4183                            LA50_41 = self.input.LA(3)
4184
4185                            if (self.synpred91()) :
4186                                alt50 = 1
4187                        elif LA50 == 72:
4188                            LA50_42 = self.input.LA(3)
4189
4190                            if (self.synpred91()) :
4191                                alt50 = 1
4192                        elif LA50 == 73:
4193                            LA50_43 = self.input.LA(3)
4194
4195                            if (self.synpred91()) :
4196                                alt50 = 1
4197                        elif LA50 == 66 or LA50 == 68 or LA50 == 69 or LA50 == 77 or LA50 == 78 or LA50 == 79:
4198                            LA50_44 = self.input.LA(3)
4199
4200                            if (self.synpred91()) :
4201                                alt50 = 1
4202                        elif LA50 == 74:
4203                            LA50_45 = self.input.LA(3)
4204
4205                            if (self.synpred91()) :
4206                                alt50 = 1
4207                    if alt50 == 1:
4208                        # C.g:0:0: direct_abstract_declarator
4209                        self.following.append(self.FOLLOW_direct_abstract_declarator_in_abstract_declarator1067)
4210                        self.direct_abstract_declarator()
4211                        self.following.pop()
4212                        if self.failed:
4213                            return
4214
4215
4216
4217
4218
4219                elif alt51 == 2:
4220                    # C.g:347:4: direct_abstract_declarator
4221                    self.following.append(self.FOLLOW_direct_abstract_declarator_in_abstract_declarator1073)
4222                    self.direct_abstract_declarator()
4223                    self.following.pop()
4224                    if self.failed:
4225                        return
4226
4227
4228
4229            except RecognitionException, re:
4230                self.reportError(re)
4231                self.recover(self.input, re)
4232        finally:
4233            if self.backtracking > 0:
4234                self.memoize(self.input, 31, abstract_declarator_StartIndex)
4235
4236            pass
4237
4238        return
4239
4240    # $ANTLR end abstract_declarator
4241
4242
4243    # $ANTLR start direct_abstract_declarator
4244    # C.g:350:1: direct_abstract_declarator : ( '(' abstract_declarator ')' | abstract_declarator_suffix ) ( abstract_declarator_suffix )* ;
4245    def direct_abstract_declarator(self, ):
4246
4247        direct_abstract_declarator_StartIndex = self.input.index()
4248        try:
4249            try:
4250                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 32):
4251                    return
4252
4253                # C.g:351:2: ( ( '(' abstract_declarator ')' | abstract_declarator_suffix ) ( abstract_declarator_suffix )* )
4254                # C.g:351:4: ( '(' abstract_declarator ')' | abstract_declarator_suffix ) ( abstract_declarator_suffix )*
4255                # C.g:351:4: ( '(' abstract_declarator ')' | abstract_declarator_suffix )
4256                alt52 = 2
4257                LA52_0 = self.input.LA(1)
4258
4259                if (LA52_0 == 62) :
4260                    LA52 = self.input.LA(2)
4261                    if LA52 == IDENTIFIER or LA52 == 29 or LA52 == 30 or LA52 == 31 or LA52 == 32 or LA52 == 33 or LA52 == 34 or LA52 == 35 or LA52 == 36 or LA52 == 37 or LA52 == 38 or LA52 == 39 or LA52 == 40 or LA52 == 41 or LA52 == 42 or LA52 == 45 or LA52 == 46 or LA52 == 48 or LA52 == 49 or LA52 == 50 or LA52 == 51 or LA52 == 52 or LA52 == 53 or LA52 == 54 or LA52 == 55 or LA52 == 56 or LA52 == 57 or LA52 == 58 or LA52 == 59 or LA52 == 60 or LA52 == 61 or LA52 == 63:
4262                        alt52 = 2
4263                    elif LA52 == 66:
4264                        LA52_18 = self.input.LA(3)
4265
4266                        if (self.synpred93()) :
4267                            alt52 = 1
4268                        elif (True) :
4269                            alt52 = 2
4270                        else:
4271                            if self.backtracking > 0:
4272                                self.failed = True
4273                                return
4274
4275                            nvae = NoViableAltException("351:4: ( '(' abstract_declarator ')' | abstract_declarator_suffix )", 52, 18, self.input)
4276
4277                            raise nvae
4278
4279                    elif LA52 == 62 or LA52 == 64:
4280                        alt52 = 1
4281                    else:
4282                        if self.backtracking > 0:
4283                            self.failed = True
4284                            return
4285
4286                        nvae = NoViableAltException("351:4: ( '(' abstract_declarator ')' | abstract_declarator_suffix )", 52, 1, self.input)
4287
4288                        raise nvae
4289
4290                elif (LA52_0 == 64) :
4291                    alt52 = 2
4292                else:
4293                    if self.backtracking > 0:
4294                        self.failed = True
4295                        return
4296
4297                    nvae = NoViableAltException("351:4: ( '(' abstract_declarator ')' | abstract_declarator_suffix )", 52, 0, self.input)
4298
4299                    raise nvae
4300
4301                if alt52 == 1:
4302                    # C.g:351:6: '(' abstract_declarator ')'
4303                    self.match(self.input, 62, self.FOLLOW_62_in_direct_abstract_declarator1086)
4304                    if self.failed:
4305                        return
4306                    self.following.append(self.FOLLOW_abstract_declarator_in_direct_abstract_declarator1088)
4307                    self.abstract_declarator()
4308                    self.following.pop()
4309                    if self.failed:
4310                        return
4311                    self.match(self.input, 63, self.FOLLOW_63_in_direct_abstract_declarator1090)
4312                    if self.failed:
4313                        return
4314
4315
4316                elif alt52 == 2:
4317                    # C.g:351:36: abstract_declarator_suffix
4318                    self.following.append(self.FOLLOW_abstract_declarator_suffix_in_direct_abstract_declarator1094)
4319                    self.abstract_declarator_suffix()
4320                    self.following.pop()
4321                    if self.failed:
4322                        return
4323
4324
4325
4326                # C.g:351:65: ( abstract_declarator_suffix )*
4327                while True: #loop53
4328                    alt53 = 2
4329                    LA53_0 = self.input.LA(1)
4330
4331                    if (LA53_0 == 62) :
4332                        LA53 = self.input.LA(2)
4333                        if LA53 == 63:
4334                            LA53_12 = self.input.LA(3)
4335
4336                            if (self.synpred94()) :
4337                                alt53 = 1
4338
4339
4340                        elif LA53 == 58:
4341                            LA53_13 = self.input.LA(3)
4342
4343                            if (self.synpred94()) :
4344                                alt53 = 1
4345
4346
4347                        elif LA53 == 66:
4348                            LA53_14 = self.input.LA(3)
4349
4350                            if (self.synpred94()) :
4351                                alt53 = 1
4352
4353
4354                        elif LA53 == 59:
4355                            LA53_15 = self.input.LA(3)
4356
4357                            if (self.synpred94()) :
4358                                alt53 = 1
4359
4360
4361                        elif LA53 == 60:
4362                            LA53_16 = self.input.LA(3)
4363
4364                            if (self.synpred94()) :
4365                                alt53 = 1
4366
4367
4368                        elif LA53 == IDENTIFIER:
4369                            LA53_17 = self.input.LA(3)
4370
4371                            if (self.synpred94()) :
4372                                alt53 = 1
4373
4374
4375                        elif LA53 == 29 or LA53 == 30 or LA53 == 31 or LA53 == 32 or LA53 == 33:
4376                            LA53_19 = self.input.LA(3)
4377
4378                            if (self.synpred94()) :
4379                                alt53 = 1
4380
4381
4382                        elif LA53 == 34:
4383                            LA53_20 = self.input.LA(3)
4384
4385                            if (self.synpred94()) :
4386                                alt53 = 1
4387
4388
4389                        elif LA53 == 35:
4390                            LA53_21 = self.input.LA(3)
4391
4392                            if (self.synpred94()) :
4393                                alt53 = 1
4394
4395
4396                        elif LA53 == 36:
4397                            LA53_22 = self.input.LA(3)
4398
4399                            if (self.synpred94()) :
4400                                alt53 = 1
4401
4402
4403                        elif LA53 == 37:
4404                            LA53_23 = self.input.LA(3)
4405
4406                            if (self.synpred94()) :
4407                                alt53 = 1
4408
4409
4410                        elif LA53 == 38:
4411                            LA53_24 = self.input.LA(3)
4412
4413                            if (self.synpred94()) :
4414                                alt53 = 1
4415
4416
4417                        elif LA53 == 39:
4418                            LA53_25 = self.input.LA(3)
4419
4420                            if (self.synpred94()) :
4421                                alt53 = 1
4422
4423
4424                        elif LA53 == 40:
4425                            LA53_26 = self.input.LA(3)
4426
4427                            if (self.synpred94()) :
4428                                alt53 = 1
4429
4430
4431                        elif LA53 == 41:
4432                            LA53_27 = self.input.LA(3)
4433
4434                            if (self.synpred94()) :
4435                                alt53 = 1
4436
4437
4438                        elif LA53 == 42:
4439                            LA53_28 = self.input.LA(3)
4440
4441                            if (self.synpred94()) :
4442                                alt53 = 1
4443
4444
4445                        elif LA53 == 45 or LA53 == 46:
4446                            LA53_29 = self.input.LA(3)
4447
4448                            if (self.synpred94()) :
4449                                alt53 = 1
4450
4451
4452                        elif LA53 == 48:
4453                            LA53_30 = self.input.LA(3)
4454
4455                            if (self.synpred94()) :
4456                                alt53 = 1
4457
4458
4459                        elif LA53 == 49 or LA53 == 50 or LA53 == 51 or LA53 == 52 or LA53 == 53 or LA53 == 54 or LA53 == 55 or LA53 == 56 or LA53 == 57 or LA53 == 61:
4460                            LA53_31 = self.input.LA(3)
4461
4462                            if (self.synpred94()) :
4463                                alt53 = 1
4464
4465
4466
4467                    elif (LA53_0 == 64) :
4468                        LA53 = self.input.LA(2)
4469                        if LA53 == 65:
4470                            LA53_33 = self.input.LA(3)
4471
4472                            if (self.synpred94()) :
4473                                alt53 = 1
4474
4475
4476                        elif LA53 == 62:
4477                            LA53_34 = self.input.LA(3)
4478
4479                            if (self.synpred94()) :
4480                                alt53 = 1
4481
4482
4483                        elif LA53 == IDENTIFIER:
4484                            LA53_35 = self.input.LA(3)
4485
4486                            if (self.synpred94()) :
4487                                alt53 = 1
4488
4489
4490                        elif LA53 == HEX_LITERAL:
4491                            LA53_36 = self.input.LA(3)
4492
4493                            if (self.synpred94()) :
4494                                alt53 = 1
4495
4496
4497                        elif LA53 == OCTAL_LITERAL:
4498                            LA53_37 = self.input.LA(3)
4499
4500                            if (self.synpred94()) :
4501                                alt53 = 1
4502
4503
4504                        elif LA53 == DECIMAL_LITERAL:
4505                            LA53_38 = self.input.LA(3)
4506
4507                            if (self.synpred94()) :
4508                                alt53 = 1
4509
4510
4511                        elif LA53 == CHARACTER_LITERAL:
4512                            LA53_39 = self.input.LA(3)
4513
4514                            if (self.synpred94()) :
4515                                alt53 = 1
4516
4517
4518                        elif LA53 == STRING_LITERAL:
4519                            LA53_40 = self.input.LA(3)
4520
4521                            if (self.synpred94()) :
4522                                alt53 = 1
4523
4524
4525                        elif LA53 == FLOATING_POINT_LITERAL:
4526                            LA53_41 = self.input.LA(3)
4527
4528                            if (self.synpred94()) :
4529                                alt53 = 1
4530
4531
4532                        elif LA53 == 72:
4533                            LA53_42 = self.input.LA(3)
4534
4535                            if (self.synpred94()) :
4536                                alt53 = 1
4537
4538
4539                        elif LA53 == 73:
4540                            LA53_43 = self.input.LA(3)
4541
4542                            if (self.synpred94()) :
4543                                alt53 = 1
4544
4545
4546                        elif LA53 == 66 or LA53 == 68 or LA53 == 69 or LA53 == 77 or LA53 == 78 or LA53 == 79:
4547                            LA53_44 = self.input.LA(3)
4548
4549                            if (self.synpred94()) :
4550                                alt53 = 1
4551
4552
4553                        elif LA53 == 74:
4554                            LA53_45 = self.input.LA(3)
4555
4556                            if (self.synpred94()) :
4557                                alt53 = 1
4558
4559
4560
4561
4562
4563                    if alt53 == 1:
4564                        # C.g:0:0: abstract_declarator_suffix
4565                        self.following.append(self.FOLLOW_abstract_declarator_suffix_in_direct_abstract_declarator1098)
4566                        self.abstract_declarator_suffix()
4567                        self.following.pop()
4568                        if self.failed:
4569                            return
4570
4571
4572                    else:
4573                        break #loop53
4574
4575
4576
4577
4578
4579
4580            except RecognitionException, re:
4581                self.reportError(re)
4582                self.recover(self.input, re)
4583        finally:
4584            if self.backtracking > 0:
4585                self.memoize(self.input, 32, direct_abstract_declarator_StartIndex)
4586
4587            pass
4588
4589        return
4590
4591    # $ANTLR end direct_abstract_declarator
4592
4593
4594    # $ANTLR start abstract_declarator_suffix
4595    # C.g:354:1: abstract_declarator_suffix : ( '[' ']' | '[' constant_expression ']' | '(' ')' | '(' parameter_type_list ')' );
4596    def abstract_declarator_suffix(self, ):
4597
4598        abstract_declarator_suffix_StartIndex = self.input.index()
4599        try:
4600            try:
4601                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 33):
4602                    return
4603
4604                # C.g:355:2: ( '[' ']' | '[' constant_expression ']' | '(' ')' | '(' parameter_type_list ')' )
4605                alt54 = 4
4606                LA54_0 = self.input.LA(1)
4607
4608                if (LA54_0 == 64) :
4609                    LA54_1 = self.input.LA(2)
4610
4611                    if (LA54_1 == 65) :
4612                        alt54 = 1
4613                    elif ((IDENTIFIER <= LA54_1 <= FLOATING_POINT_LITERAL) or LA54_1 == 62 or LA54_1 == 66 or (68 <= LA54_1 <= 69) or (72 <= LA54_1 <= 74) or (77 <= LA54_1 <= 79)) :
4614                        alt54 = 2
4615                    else:
4616                        if self.backtracking > 0:
4617                            self.failed = True
4618                            return
4619
4620                        nvae = NoViableAltException("354:1: abstract_declarator_suffix : ( '[' ']' | '[' constant_expression ']' | '(' ')' | '(' parameter_type_list ')' );", 54, 1, self.input)
4621
4622                        raise nvae
4623
4624                elif (LA54_0 == 62) :
4625                    LA54_2 = self.input.LA(2)
4626
4627                    if (LA54_2 == 63) :
4628                        alt54 = 3
4629                    elif (LA54_2 == IDENTIFIER or (29 <= LA54_2 <= 42) or (45 <= LA54_2 <= 46) or (48 <= LA54_2 <= 61) or LA54_2 == 66) :
4630                        alt54 = 4
4631                    else:
4632                        if self.backtracking > 0:
4633                            self.failed = True
4634                            return
4635
4636                        nvae = NoViableAltException("354:1: abstract_declarator_suffix : ( '[' ']' | '[' constant_expression ']' | '(' ')' | '(' parameter_type_list ')' );", 54, 2, self.input)
4637
4638                        raise nvae
4639
4640                else:
4641                    if self.backtracking > 0:
4642                        self.failed = True
4643                        return
4644
4645                    nvae = NoViableAltException("354:1: abstract_declarator_suffix : ( '[' ']' | '[' constant_expression ']' | '(' ')' | '(' parameter_type_list ')' );", 54, 0, self.input)
4646
4647                    raise nvae
4648
4649                if alt54 == 1:
4650                    # C.g:355:4: '[' ']'
4651                    self.match(self.input, 64, self.FOLLOW_64_in_abstract_declarator_suffix1110)
4652                    if self.failed:
4653                        return
4654                    self.match(self.input, 65, self.FOLLOW_65_in_abstract_declarator_suffix1112)
4655                    if self.failed:
4656                        return
4657
4658
4659                elif alt54 == 2:
4660                    # C.g:356:4: '[' constant_expression ']'
4661                    self.match(self.input, 64, self.FOLLOW_64_in_abstract_declarator_suffix1117)
4662                    if self.failed:
4663                        return
4664                    self.following.append(self.FOLLOW_constant_expression_in_abstract_declarator_suffix1119)
4665                    self.constant_expression()
4666                    self.following.pop()
4667                    if self.failed:
4668                        return
4669                    self.match(self.input, 65, self.FOLLOW_65_in_abstract_declarator_suffix1121)
4670                    if self.failed:
4671                        return
4672
4673
4674                elif alt54 == 3:
4675                    # C.g:357:4: '(' ')'
4676                    self.match(self.input, 62, self.FOLLOW_62_in_abstract_declarator_suffix1126)
4677                    if self.failed:
4678                        return
4679                    self.match(self.input, 63, self.FOLLOW_63_in_abstract_declarator_suffix1128)
4680                    if self.failed:
4681                        return
4682
4683
4684                elif alt54 == 4:
4685                    # C.g:358:4: '(' parameter_type_list ')'
4686                    self.match(self.input, 62, self.FOLLOW_62_in_abstract_declarator_suffix1133)
4687                    if self.failed:
4688                        return
4689                    self.following.append(self.FOLLOW_parameter_type_list_in_abstract_declarator_suffix1135)
4690                    self.parameter_type_list()
4691                    self.following.pop()
4692                    if self.failed:
4693                        return
4694                    self.match(self.input, 63, self.FOLLOW_63_in_abstract_declarator_suffix1137)
4695                    if self.failed:
4696                        return
4697
4698
4699
4700            except RecognitionException, re:
4701                self.reportError(re)
4702                self.recover(self.input, re)
4703        finally:
4704            if self.backtracking > 0:
4705                self.memoize(self.input, 33, abstract_declarator_suffix_StartIndex)
4706
4707            pass
4708
4709        return
4710
4711    # $ANTLR end abstract_declarator_suffix
4712
4713
4714    # $ANTLR start initializer
4715    # C.g:361:1: initializer : ( assignment_expression | '{' initializer_list ( ',' )? '}' );
4716    def initializer(self, ):
4717
4718        initializer_StartIndex = self.input.index()
4719        try:
4720            try:
4721                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 34):
4722                    return
4723
4724                # C.g:363:2: ( assignment_expression | '{' initializer_list ( ',' )? '}' )
4725                alt56 = 2
4726                LA56_0 = self.input.LA(1)
4727
4728                if ((IDENTIFIER <= LA56_0 <= FLOATING_POINT_LITERAL) or LA56_0 == 62 or LA56_0 == 66 or (68 <= LA56_0 <= 69) or (72 <= LA56_0 <= 74) or (77 <= LA56_0 <= 79)) :
4729                    alt56 = 1
4730                elif (LA56_0 == 43) :
4731                    alt56 = 2
4732                else:
4733                    if self.backtracking > 0:
4734                        self.failed = True
4735                        return
4736
4737                    nvae = NoViableAltException("361:1: initializer : ( assignment_expression | '{' initializer_list ( ',' )? '}' );", 56, 0, self.input)
4738
4739                    raise nvae
4740
4741                if alt56 == 1:
4742                    # C.g:363:4: assignment_expression
4743                    self.following.append(self.FOLLOW_assignment_expression_in_initializer1150)
4744                    self.assignment_expression()
4745                    self.following.pop()
4746                    if self.failed:
4747                        return
4748
4749
4750                elif alt56 == 2:
4751                    # C.g:364:4: '{' initializer_list ( ',' )? '}'
4752                    self.match(self.input, 43, self.FOLLOW_43_in_initializer1155)
4753                    if self.failed:
4754                        return
4755                    self.following.append(self.FOLLOW_initializer_list_in_initializer1157)
4756                    self.initializer_list()
4757                    self.following.pop()
4758                    if self.failed:
4759                        return
4760                    # C.g:364:25: ( ',' )?
4761                    alt55 = 2
4762                    LA55_0 = self.input.LA(1)
4763
4764                    if (LA55_0 == 27) :
4765                        alt55 = 1
4766                    if alt55 == 1:
4767                        # C.g:0:0: ','
4768                        self.match(self.input, 27, self.FOLLOW_27_in_initializer1159)
4769                        if self.failed:
4770                            return
4771
4772
4773
4774                    self.match(self.input, 44, self.FOLLOW_44_in_initializer1162)
4775                    if self.failed:
4776                        return
4777
4778
4779
4780            except RecognitionException, re:
4781                self.reportError(re)
4782                self.recover(self.input, re)
4783        finally:
4784            if self.backtracking > 0:
4785                self.memoize(self.input, 34, initializer_StartIndex)
4786
4787            pass
4788
4789        return
4790
4791    # $ANTLR end initializer
4792
4793
4794    # $ANTLR start initializer_list
4795    # C.g:367:1: initializer_list : initializer ( ',' initializer )* ;
4796    def initializer_list(self, ):
4797
4798        initializer_list_StartIndex = self.input.index()
4799        try:
4800            try:
4801                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 35):
4802                    return
4803
4804                # C.g:368:2: ( initializer ( ',' initializer )* )
4805                # C.g:368:4: initializer ( ',' initializer )*
4806                self.following.append(self.FOLLOW_initializer_in_initializer_list1173)
4807                self.initializer()
4808                self.following.pop()
4809                if self.failed:
4810                    return
4811                # C.g:368:16: ( ',' initializer )*
4812                while True: #loop57
4813                    alt57 = 2
4814                    LA57_0 = self.input.LA(1)
4815
4816                    if (LA57_0 == 27) :
4817                        LA57_1 = self.input.LA(2)
4818
4819                        if ((IDENTIFIER <= LA57_1 <= FLOATING_POINT_LITERAL) or LA57_1 == 43 or LA57_1 == 62 or LA57_1 == 66 or (68 <= LA57_1 <= 69) or (72 <= LA57_1 <= 74) or (77 <= LA57_1 <= 79)) :
4820                            alt57 = 1
4821
4822
4823
4824
4825                    if alt57 == 1:
4826                        # C.g:368:17: ',' initializer
4827                        self.match(self.input, 27, self.FOLLOW_27_in_initializer_list1176)
4828                        if self.failed:
4829                            return
4830                        self.following.append(self.FOLLOW_initializer_in_initializer_list1178)
4831                        self.initializer()
4832                        self.following.pop()
4833                        if self.failed:
4834                            return
4835
4836
4837                    else:
4838                        break #loop57
4839
4840
4841
4842
4843
4844
4845            except RecognitionException, re:
4846                self.reportError(re)
4847                self.recover(self.input, re)
4848        finally:
4849            if self.backtracking > 0:
4850                self.memoize(self.input, 35, initializer_list_StartIndex)
4851
4852            pass
4853
4854        return
4855
4856    # $ANTLR end initializer_list
4857
4858    class argument_expression_list_return(object):
4859        def __init__(self):
4860            self.start = None
4861            self.stop = None
4862
4863
4864
4865    # $ANTLR start argument_expression_list
4866    # C.g:373:1: argument_expression_list : assignment_expression ( 'OPTIONAL' )? ( ',' assignment_expression ( 'OPTIONAL' )? )* ;
4867    def argument_expression_list(self, ):
4868
4869        retval = self.argument_expression_list_return()
4870        retval.start = self.input.LT(1)
4871        argument_expression_list_StartIndex = self.input.index()
4872        try:
4873            try:
4874                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 36):
4875                    return retval
4876
4877                # C.g:374:2: ( assignment_expression ( 'OPTIONAL' )? ( ',' assignment_expression ( 'OPTIONAL' )? )* )
4878                # C.g:374:6: assignment_expression ( 'OPTIONAL' )? ( ',' assignment_expression ( 'OPTIONAL' )? )*
4879                self.following.append(self.FOLLOW_assignment_expression_in_argument_expression_list1196)
4880                self.assignment_expression()
4881                self.following.pop()
4882                if self.failed:
4883                    return retval
4884                # C.g:374:28: ( 'OPTIONAL' )?
4885                alt58 = 2
4886                LA58_0 = self.input.LA(1)
4887
4888                if (LA58_0 == 53) :
4889                    alt58 = 1
4890                if alt58 == 1:
4891                    # C.g:374:29: 'OPTIONAL'
4892                    self.match(self.input, 53, self.FOLLOW_53_in_argument_expression_list1199)
4893                    if self.failed:
4894                        return retval
4895
4896
4897
4898                # C.g:374:42: ( ',' assignment_expression ( 'OPTIONAL' )? )*
4899                while True: #loop60
4900                    alt60 = 2
4901                    LA60_0 = self.input.LA(1)
4902
4903                    if (LA60_0 == 27) :
4904                        alt60 = 1
4905
4906
4907                    if alt60 == 1:
4908                        # C.g:374:43: ',' assignment_expression ( 'OPTIONAL' )?
4909                        self.match(self.input, 27, self.FOLLOW_27_in_argument_expression_list1204)
4910                        if self.failed:
4911                            return retval
4912                        self.following.append(self.FOLLOW_assignment_expression_in_argument_expression_list1206)
4913                        self.assignment_expression()
4914                        self.following.pop()
4915                        if self.failed:
4916                            return retval
4917                        # C.g:374:69: ( 'OPTIONAL' )?
4918                        alt59 = 2
4919                        LA59_0 = self.input.LA(1)
4920
4921                        if (LA59_0 == 53) :
4922                            alt59 = 1
4923                        if alt59 == 1:
4924                            # C.g:374:70: 'OPTIONAL'
4925                            self.match(self.input, 53, self.FOLLOW_53_in_argument_expression_list1209)
4926                            if self.failed:
4927                                return retval
4928
4929
4930
4931
4932
4933                    else:
4934                        break #loop60
4935
4936
4937
4938
4939
4940                retval.stop = self.input.LT(-1)
4941
4942
4943            except RecognitionException, re:
4944                self.reportError(re)
4945                self.recover(self.input, re)
4946        finally:
4947            if self.backtracking > 0:
4948                self.memoize(self.input, 36, argument_expression_list_StartIndex)
4949
4950            pass
4951
4952        return retval
4953
4954    # $ANTLR end argument_expression_list
4955
4956
4957    # $ANTLR start additive_expression
4958    # C.g:377:1: additive_expression : ( multiplicative_expression ) ( '+' multiplicative_expression | '-' multiplicative_expression )* ;
4959    def additive_expression(self, ):
4960
4961        additive_expression_StartIndex = self.input.index()
4962        try:
4963            try:
4964                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 37):
4965                    return
4966
4967                # C.g:378:2: ( ( multiplicative_expression ) ( '+' multiplicative_expression | '-' multiplicative_expression )* )
4968                # C.g:378:4: ( multiplicative_expression ) ( '+' multiplicative_expression | '-' multiplicative_expression )*
4969                # C.g:378:4: ( multiplicative_expression )
4970                # C.g:378:5: multiplicative_expression
4971                self.following.append(self.FOLLOW_multiplicative_expression_in_additive_expression1225)
4972                self.multiplicative_expression()
4973                self.following.pop()
4974                if self.failed:
4975                    return
4976
4977
4978
4979                # C.g:378:32: ( '+' multiplicative_expression | '-' multiplicative_expression )*
4980                while True: #loop61
4981                    alt61 = 3
4982                    LA61_0 = self.input.LA(1)
4983
4984                    if (LA61_0 == 68) :
4985                        alt61 = 1
4986                    elif (LA61_0 == 69) :
4987                        alt61 = 2
4988
4989
4990                    if alt61 == 1:
4991                        # C.g:378:33: '+' multiplicative_expression
4992                        self.match(self.input, 68, self.FOLLOW_68_in_additive_expression1229)
4993                        if self.failed:
4994                            return
4995                        self.following.append(self.FOLLOW_multiplicative_expression_in_additive_expression1231)
4996                        self.multiplicative_expression()
4997                        self.following.pop()
4998                        if self.failed:
4999                            return
5000
5001
5002                    elif alt61 == 2:
5003                        # C.g:378:65: '-' multiplicative_expression
5004                        self.match(self.input, 69, self.FOLLOW_69_in_additive_expression1235)
5005                        if self.failed:
5006                            return
5007                        self.following.append(self.FOLLOW_multiplicative_expression_in_additive_expression1237)
5008                        self.multiplicative_expression()
5009                        self.following.pop()
5010                        if self.failed:
5011                            return
5012
5013
5014                    else:
5015                        break #loop61
5016
5017
5018
5019
5020
5021
5022            except RecognitionException, re:
5023                self.reportError(re)
5024                self.recover(self.input, re)
5025        finally:
5026            if self.backtracking > 0:
5027                self.memoize(self.input, 37, additive_expression_StartIndex)
5028
5029            pass
5030
5031        return
5032
5033    # $ANTLR end additive_expression
5034
5035
5036    # $ANTLR start multiplicative_expression
5037    # C.g:381:1: multiplicative_expression : ( cast_expression ) ( '*' cast_expression | '/' cast_expression | '%' cast_expression )* ;
5038    def multiplicative_expression(self, ):
5039
5040        multiplicative_expression_StartIndex = self.input.index()
5041        try:
5042            try:
5043                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 38):
5044                    return
5045
5046                # C.g:382:2: ( ( cast_expression ) ( '*' cast_expression | '/' cast_expression | '%' cast_expression )* )
5047                # C.g:382:4: ( cast_expression ) ( '*' cast_expression | '/' cast_expression | '%' cast_expression )*
5048                # C.g:382:4: ( cast_expression )
5049                # C.g:382:5: cast_expression
5050                self.following.append(self.FOLLOW_cast_expression_in_multiplicative_expression1251)
5051                self.cast_expression()
5052                self.following.pop()
5053                if self.failed:
5054                    return
5055
5056
5057
5058                # C.g:382:22: ( '*' cast_expression | '/' cast_expression | '%' cast_expression )*
5059                while True: #loop62
5060                    alt62 = 4
5061                    LA62 = self.input.LA(1)
5062                    if LA62 == 66:
5063                        alt62 = 1
5064                    elif LA62 == 70:
5065                        alt62 = 2
5066                    elif LA62 == 71:
5067                        alt62 = 3
5068
5069                    if alt62 == 1:
5070                        # C.g:382:23: '*' cast_expression
5071                        self.match(self.input, 66, self.FOLLOW_66_in_multiplicative_expression1255)
5072                        if self.failed:
5073                            return
5074                        self.following.append(self.FOLLOW_cast_expression_in_multiplicative_expression1257)
5075                        self.cast_expression()
5076                        self.following.pop()
5077                        if self.failed:
5078                            return
5079
5080
5081                    elif alt62 == 2:
5082                        # C.g:382:45: '/' cast_expression
5083                        self.match(self.input, 70, self.FOLLOW_70_in_multiplicative_expression1261)
5084                        if self.failed:
5085                            return
5086                        self.following.append(self.FOLLOW_cast_expression_in_multiplicative_expression1263)
5087                        self.cast_expression()
5088                        self.following.pop()
5089                        if self.failed:
5090                            return
5091
5092
5093                    elif alt62 == 3:
5094                        # C.g:382:67: '%' cast_expression
5095                        self.match(self.input, 71, self.FOLLOW_71_in_multiplicative_expression1267)
5096                        if self.failed:
5097                            return
5098                        self.following.append(self.FOLLOW_cast_expression_in_multiplicative_expression1269)
5099                        self.cast_expression()
5100                        self.following.pop()
5101                        if self.failed:
5102                            return
5103
5104
5105                    else:
5106                        break #loop62
5107
5108
5109
5110
5111
5112
5113            except RecognitionException, re:
5114                self.reportError(re)
5115                self.recover(self.input, re)
5116        finally:
5117            if self.backtracking > 0:
5118                self.memoize(self.input, 38, multiplicative_expression_StartIndex)
5119
5120            pass
5121
5122        return
5123
5124    # $ANTLR end multiplicative_expression
5125
5126
5127    # $ANTLR start cast_expression
5128    # C.g:385:1: cast_expression : ( '(' type_name ')' cast_expression | unary_expression );
5129    def cast_expression(self, ):
5130
5131        cast_expression_StartIndex = self.input.index()
5132        try:
5133            try:
5134                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 39):
5135                    return
5136
5137                # C.g:386:2: ( '(' type_name ')' cast_expression | unary_expression )
5138                alt63 = 2
5139                LA63_0 = self.input.LA(1)
5140
5141                if (LA63_0 == 62) :
5142                    LA63 = self.input.LA(2)
5143                    if LA63 == 34 or LA63 == 35 or LA63 == 36 or LA63 == 37 or LA63 == 38 or LA63 == 39 or LA63 == 40 or LA63 == 41 or LA63 == 42 or LA63 == 45 or LA63 == 46 or LA63 == 48 or LA63 == 49 or LA63 == 50 or LA63 == 51 or LA63 == 52 or LA63 == 53 or LA63 == 54 or LA63 == 55 or LA63 == 56 or LA63 == 57 or LA63 == 58 or LA63 == 59 or LA63 == 60 or LA63 == 61:
5144                        alt63 = 1
5145                    elif LA63 == IDENTIFIER:
5146                        LA63_25 = self.input.LA(3)
5147
5148                        if (self.synpred109()) :
5149                            alt63 = 1
5150                        elif (True) :
5151                            alt63 = 2
5152                        else:
5153                            if self.backtracking > 0:
5154                                self.failed = True
5155                                return
5156
5157                            nvae = NoViableAltException("385:1: cast_expression : ( '(' type_name ')' cast_expression | unary_expression );", 63, 25, self.input)
5158
5159                            raise nvae
5160
5161                    elif LA63 == HEX_LITERAL or LA63 == OCTAL_LITERAL or LA63 == DECIMAL_LITERAL or LA63 == CHARACTER_LITERAL or LA63 == STRING_LITERAL or LA63 == FLOATING_POINT_LITERAL or LA63 == 62 or LA63 == 66 or LA63 == 68 or LA63 == 69 or LA63 == 72 or LA63 == 73 or LA63 == 74 or LA63 == 77 or LA63 == 78 or LA63 == 79:
5162                        alt63 = 2
5163                    else:
5164                        if self.backtracking > 0:
5165                            self.failed = True
5166                            return
5167
5168                        nvae = NoViableAltException("385:1: cast_expression : ( '(' type_name ')' cast_expression | unary_expression );", 63, 1, self.input)
5169
5170                        raise nvae
5171
5172                elif ((IDENTIFIER <= LA63_0 <= FLOATING_POINT_LITERAL) or LA63_0 == 66 or (68 <= LA63_0 <= 69) or (72 <= LA63_0 <= 74) or (77 <= LA63_0 <= 79)) :
5173                    alt63 = 2
5174                else:
5175                    if self.backtracking > 0:
5176                        self.failed = True
5177                        return
5178
5179                    nvae = NoViableAltException("385:1: cast_expression : ( '(' type_name ')' cast_expression | unary_expression );", 63, 0, self.input)
5180
5181                    raise nvae
5182
5183                if alt63 == 1:
5184                    # C.g:386:4: '(' type_name ')' cast_expression
5185                    self.match(self.input, 62, self.FOLLOW_62_in_cast_expression1282)
5186                    if self.failed:
5187                        return
5188                    self.following.append(self.FOLLOW_type_name_in_cast_expression1284)
5189                    self.type_name()
5190                    self.following.pop()
5191                    if self.failed:
5192                        return
5193                    self.match(self.input, 63, self.FOLLOW_63_in_cast_expression1286)
5194                    if self.failed:
5195                        return
5196                    self.following.append(self.FOLLOW_cast_expression_in_cast_expression1288)
5197                    self.cast_expression()
5198                    self.following.pop()
5199                    if self.failed:
5200                        return
5201
5202
5203                elif alt63 == 2:
5204                    # C.g:387:4: unary_expression
5205                    self.following.append(self.FOLLOW_unary_expression_in_cast_expression1293)
5206                    self.unary_expression()
5207                    self.following.pop()
5208                    if self.failed:
5209                        return
5210
5211
5212
5213            except RecognitionException, re:
5214                self.reportError(re)
5215                self.recover(self.input, re)
5216        finally:
5217            if self.backtracking > 0:
5218                self.memoize(self.input, 39, cast_expression_StartIndex)
5219
5220            pass
5221
5222        return
5223
5224    # $ANTLR end cast_expression
5225
5226
5227    # $ANTLR start unary_expression
5228    # C.g:390:1: unary_expression : ( postfix_expression | '++' unary_expression | '--' unary_expression | unary_operator cast_expression | 'sizeof' unary_expression | 'sizeof' '(' type_name ')' );
5229    def unary_expression(self, ):
5230
5231        unary_expression_StartIndex = self.input.index()
5232        try:
5233            try:
5234                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 40):
5235                    return
5236
5237                # C.g:391:2: ( postfix_expression | '++' unary_expression | '--' unary_expression | unary_operator cast_expression | 'sizeof' unary_expression | 'sizeof' '(' type_name ')' )
5238                alt64 = 6
5239                LA64 = self.input.LA(1)
5240                if LA64 == IDENTIFIER or LA64 == HEX_LITERAL or LA64 == OCTAL_LITERAL or LA64 == DECIMAL_LITERAL or LA64 == CHARACTER_LITERAL or LA64 == STRING_LITERAL or LA64 == FLOATING_POINT_LITERAL or LA64 == 62:
5241                    alt64 = 1
5242                elif LA64 == 72:
5243                    alt64 = 2
5244                elif LA64 == 73:
5245                    alt64 = 3
5246                elif LA64 == 66 or LA64 == 68 or LA64 == 69 or LA64 == 77 or LA64 == 78 or LA64 == 79:
5247                    alt64 = 4
5248                elif LA64 == 74:
5249                    LA64_12 = self.input.LA(2)
5250
5251                    if (LA64_12 == 62) :
5252                        LA64_13 = self.input.LA(3)
5253
5254                        if (self.synpred114()) :
5255                            alt64 = 5
5256                        elif (True) :
5257                            alt64 = 6
5258                        else:
5259                            if self.backtracking > 0:
5260                                self.failed = True
5261                                return
5262
5263                            nvae = NoViableAltException("390:1: unary_expression : ( postfix_expression | '++' unary_expression | '--' unary_expression | unary_operator cast_expression | 'sizeof' unary_expression | 'sizeof' '(' type_name ')' );", 64, 13, self.input)
5264
5265                            raise nvae
5266
5267                    elif ((IDENTIFIER <= LA64_12 <= FLOATING_POINT_LITERAL) or LA64_12 == 66 or (68 <= LA64_12 <= 69) or (72 <= LA64_12 <= 74) or (77 <= LA64_12 <= 79)) :
5268                        alt64 = 5
5269                    else:
5270                        if self.backtracking > 0:
5271                            self.failed = True
5272                            return
5273
5274                        nvae = NoViableAltException("390:1: unary_expression : ( postfix_expression | '++' unary_expression | '--' unary_expression | unary_operator cast_expression | 'sizeof' unary_expression | 'sizeof' '(' type_name ')' );", 64, 12, self.input)
5275
5276                        raise nvae
5277
5278                else:
5279                    if self.backtracking > 0:
5280                        self.failed = True
5281                        return
5282
5283                    nvae = NoViableAltException("390:1: unary_expression : ( postfix_expression | '++' unary_expression | '--' unary_expression | unary_operator cast_expression | 'sizeof' unary_expression | 'sizeof' '(' type_name ')' );", 64, 0, self.input)
5284
5285                    raise nvae
5286
5287                if alt64 == 1:
5288                    # C.g:391:4: postfix_expression
5289                    self.following.append(self.FOLLOW_postfix_expression_in_unary_expression1304)
5290                    self.postfix_expression()
5291                    self.following.pop()
5292                    if self.failed:
5293                        return
5294
5295
5296                elif alt64 == 2:
5297                    # C.g:392:4: '++' unary_expression
5298                    self.match(self.input, 72, self.FOLLOW_72_in_unary_expression1309)
5299                    if self.failed:
5300                        return
5301                    self.following.append(self.FOLLOW_unary_expression_in_unary_expression1311)
5302                    self.unary_expression()
5303                    self.following.pop()
5304                    if self.failed:
5305                        return
5306
5307
5308                elif alt64 == 3:
5309                    # C.g:393:4: '--' unary_expression
5310                    self.match(self.input, 73, self.FOLLOW_73_in_unary_expression1316)
5311                    if self.failed:
5312                        return
5313                    self.following.append(self.FOLLOW_unary_expression_in_unary_expression1318)
5314                    self.unary_expression()
5315                    self.following.pop()
5316                    if self.failed:
5317                        return
5318
5319
5320                elif alt64 == 4:
5321                    # C.g:394:4: unary_operator cast_expression
5322                    self.following.append(self.FOLLOW_unary_operator_in_unary_expression1323)
5323                    self.unary_operator()
5324                    self.following.pop()
5325                    if self.failed:
5326                        return
5327                    self.following.append(self.FOLLOW_cast_expression_in_unary_expression1325)
5328                    self.cast_expression()
5329                    self.following.pop()
5330                    if self.failed:
5331                        return
5332
5333
5334                elif alt64 == 5:
5335                    # C.g:395:4: 'sizeof' unary_expression
5336                    self.match(self.input, 74, self.FOLLOW_74_in_unary_expression1330)
5337                    if self.failed:
5338                        return
5339                    self.following.append(self.FOLLOW_unary_expression_in_unary_expression1332)
5340                    self.unary_expression()
5341                    self.following.pop()
5342                    if self.failed:
5343                        return
5344
5345
5346                elif alt64 == 6:
5347                    # C.g:396:4: 'sizeof' '(' type_name ')'
5348                    self.match(self.input, 74, self.FOLLOW_74_in_unary_expression1337)
5349                    if self.failed:
5350                        return
5351                    self.match(self.input, 62, self.FOLLOW_62_in_unary_expression1339)
5352                    if self.failed:
5353                        return
5354                    self.following.append(self.FOLLOW_type_name_in_unary_expression1341)
5355                    self.type_name()
5356                    self.following.pop()
5357                    if self.failed:
5358                        return
5359                    self.match(self.input, 63, self.FOLLOW_63_in_unary_expression1343)
5360                    if self.failed:
5361                        return
5362
5363
5364
5365            except RecognitionException, re:
5366                self.reportError(re)
5367                self.recover(self.input, re)
5368        finally:
5369            if self.backtracking > 0:
5370                self.memoize(self.input, 40, unary_expression_StartIndex)
5371
5372            pass
5373
5374        return
5375
5376    # $ANTLR end unary_expression
5377
5378
5379    # $ANTLR start postfix_expression
5380    # C.g:399:1: postfix_expression : p= primary_expression ( '[' expression ']' | '(' a= ')' | '(' c= argument_expression_list b= ')' | '(' macro_parameter_list ')' | '.' x= IDENTIFIER | '*' y= IDENTIFIER | '->' z= IDENTIFIER | '++' | '--' )* ;
5381    def postfix_expression(self, ):
5382        self.postfix_expression_stack.append(postfix_expression_scope())
5383        postfix_expression_StartIndex = self.input.index()
5384        a = None
5385        b = None
5386        x = None
5387        y = None
5388        z = None
5389        p = None
5390
5391        c = None
5392
5393
5394
5395        self.postfix_expression_stack[-1].FuncCallText =  ''
5396
5397        try:
5398            try:
5399                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 41):
5400                    return
5401
5402                # C.g:406:2: (p= primary_expression ( '[' expression ']' | '(' a= ')' | '(' c= argument_expression_list b= ')' | '(' macro_parameter_list ')' | '.' x= IDENTIFIER | '*' y= IDENTIFIER | '->' z= IDENTIFIER | '++' | '--' )* )
5403                # C.g:406:6: p= primary_expression ( '[' expression ']' | '(' a= ')' | '(' c= argument_expression_list b= ')' | '(' macro_parameter_list ')' | '.' x= IDENTIFIER | '*' y= IDENTIFIER | '->' z= IDENTIFIER | '++' | '--' )*
5404                self.following.append(self.FOLLOW_primary_expression_in_postfix_expression1367)
5405                p = self.primary_expression()
5406                self.following.pop()
5407                if self.failed:
5408                    return
5409                if self.backtracking == 0:
5410                    self.postfix_expression_stack[-1].FuncCallText += self.input.toString(p.start,p.stop)
5411
5412                # C.g:407:9: ( '[' expression ']' | '(' a= ')' | '(' c= argument_expression_list b= ')' | '(' macro_parameter_list ')' | '.' x= IDENTIFIER | '*' y= IDENTIFIER | '->' z= IDENTIFIER | '++' | '--' )*
5413                while True: #loop65
5414                    alt65 = 10
5415                    LA65 = self.input.LA(1)
5416                    if LA65 == 66:
5417                        LA65_1 = self.input.LA(2)
5418
5419                        if (LA65_1 == IDENTIFIER) :
5420                            LA65_30 = self.input.LA(3)
5421
5422                            if (self.synpred120()) :
5423                                alt65 = 6
5424
5425
5426
5427
5428                    elif LA65 == 64:
5429                        alt65 = 1
5430                    elif LA65 == 62:
5431                        LA65 = self.input.LA(2)
5432                        if LA65 == 63:
5433                            alt65 = 2
5434                        elif LA65 == 29 or LA65 == 30 or LA65 == 31 or LA65 == 32 or LA65 == 33 or LA65 == 34 or LA65 == 35 or LA65 == 36 or LA65 == 37 or LA65 == 38 or LA65 == 39 or LA65 == 40 or LA65 == 41 or LA65 == 42 or LA65 == 45 or LA65 == 46 or LA65 == 48 or LA65 == 49 or LA65 == 50 or LA65 == 51 or LA65 == 52 or LA65 == 53 or LA65 == 54 or LA65 == 55 or LA65 == 56 or LA65 == 57 or LA65 == 58 or LA65 == 59 or LA65 == 60 or LA65 == 61:
5435                            alt65 = 4
5436                        elif LA65 == IDENTIFIER:
5437                            LA65_55 = self.input.LA(3)
5438
5439                            if (self.synpred117()) :
5440                                alt65 = 3
5441                            elif (self.synpred118()) :
5442                                alt65 = 4
5443
5444
5445                        elif LA65 == 66:
5446                            LA65_57 = self.input.LA(3)
5447
5448                            if (self.synpred117()) :
5449                                alt65 = 3
5450                            elif (self.synpred118()) :
5451                                alt65 = 4
5452
5453
5454                        elif LA65 == HEX_LITERAL or LA65 == OCTAL_LITERAL or LA65 == DECIMAL_LITERAL or LA65 == CHARACTER_LITERAL or LA65 == STRING_LITERAL or LA65 == FLOATING_POINT_LITERAL or LA65 == 62 or LA65 == 68 or LA65 == 69 or LA65 == 72 or LA65 == 73 or LA65 == 74 or LA65 == 77 or LA65 == 78 or LA65 == 79:
5455                            alt65 = 3
5456
5457                    elif LA65 == 75:
5458                        alt65 = 5
5459                    elif LA65 == 76:
5460                        alt65 = 7
5461                    elif LA65 == 72:
5462                        alt65 = 8
5463                    elif LA65 == 73:
5464                        alt65 = 9
5465
5466                    if alt65 == 1:
5467                        # C.g:407:13: '[' expression ']'
5468                        self.match(self.input, 64, self.FOLLOW_64_in_postfix_expression1383)
5469                        if self.failed:
5470                            return
5471                        self.following.append(self.FOLLOW_expression_in_postfix_expression1385)
5472                        self.expression()
5473                        self.following.pop()
5474                        if self.failed:
5475                            return
5476                        self.match(self.input, 65, self.FOLLOW_65_in_postfix_expression1387)
5477                        if self.failed:
5478                            return
5479
5480
5481                    elif alt65 == 2:
5482                        # C.g:408:13: '(' a= ')'
5483                        self.match(self.input, 62, self.FOLLOW_62_in_postfix_expression1401)
5484                        if self.failed:
5485                            return
5486                        a = self.input.LT(1)
5487                        self.match(self.input, 63, self.FOLLOW_63_in_postfix_expression1405)
5488                        if self.failed:
5489                            return
5490                        if self.backtracking == 0:
5491                            self.StoreFunctionCalling(p.start.line, p.start.charPositionInLine, a.line, a.charPositionInLine, self.postfix_expression_stack[-1].FuncCallText, '')
5492
5493
5494
5495                    elif alt65 == 3:
5496                        # C.g:409:13: '(' c= argument_expression_list b= ')'
5497                        self.match(self.input, 62, self.FOLLOW_62_in_postfix_expression1420)
5498                        if self.failed:
5499                            return
5500                        self.following.append(self.FOLLOW_argument_expression_list_in_postfix_expression1424)
5501                        c = self.argument_expression_list()
5502                        self.following.pop()
5503                        if self.failed:
5504                            return
5505                        b = self.input.LT(1)
5506                        self.match(self.input, 63, self.FOLLOW_63_in_postfix_expression1428)
5507                        if self.failed:
5508                            return
5509                        if self.backtracking == 0:
5510                            self.StoreFunctionCalling(p.start.line, p.start.charPositionInLine, b.line, b.charPositionInLine, self.postfix_expression_stack[-1].FuncCallText, self.input.toString(c.start,c.stop))
5511
5512
5513
5514                    elif alt65 == 4:
5515                        # C.g:410:13: '(' macro_parameter_list ')'
5516                        self.match(self.input, 62, self.FOLLOW_62_in_postfix_expression1444)
5517                        if self.failed:
5518                            return
5519                        self.following.append(self.FOLLOW_macro_parameter_list_in_postfix_expression1446)
5520                        self.macro_parameter_list()
5521                        self.following.pop()
5522                        if self.failed:
5523                            return
5524                        self.match(self.input, 63, self.FOLLOW_63_in_postfix_expression1448)
5525                        if self.failed:
5526                            return
5527
5528
5529                    elif alt65 == 5:
5530                        # C.g:411:13: '.' x= IDENTIFIER
5531                        self.match(self.input, 75, self.FOLLOW_75_in_postfix_expression1462)
5532                        if self.failed:
5533                            return
5534                        x = self.input.LT(1)
5535                        self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_postfix_expression1466)
5536                        if self.failed:
5537                            return
5538                        if self.backtracking == 0:
5539                            self.postfix_expression_stack[-1].FuncCallText += '.' + x.text
5540
5541
5542
5543                    elif alt65 == 6:
5544                        # C.g:412:13: '*' y= IDENTIFIER
5545                        self.match(self.input, 66, self.FOLLOW_66_in_postfix_expression1482)
5546                        if self.failed:
5547                            return
5548                        y = self.input.LT(1)
5549                        self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_postfix_expression1486)
5550                        if self.failed:
5551                            return
5552                        if self.backtracking == 0:
5553                            self.postfix_expression_stack[-1].FuncCallText = y.text
5554
5555
5556
5557                    elif alt65 == 7:
5558                        # C.g:413:13: '->' z= IDENTIFIER
5559                        self.match(self.input, 76, self.FOLLOW_76_in_postfix_expression1502)
5560                        if self.failed:
5561                            return
5562                        z = self.input.LT(1)
5563                        self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_postfix_expression1506)
5564                        if self.failed:
5565                            return
5566                        if self.backtracking == 0:
5567                            self.postfix_expression_stack[-1].FuncCallText += '->' + z.text
5568
5569
5570
5571                    elif alt65 == 8:
5572                        # C.g:414:13: '++'
5573                        self.match(self.input, 72, self.FOLLOW_72_in_postfix_expression1522)
5574                        if self.failed:
5575                            return
5576
5577
5578                    elif alt65 == 9:
5579                        # C.g:415:13: '--'
5580                        self.match(self.input, 73, self.FOLLOW_73_in_postfix_expression1536)
5581                        if self.failed:
5582                            return
5583
5584
5585                    else:
5586                        break #loop65
5587
5588
5589
5590
5591
5592
5593            except RecognitionException, re:
5594                self.reportError(re)
5595                self.recover(self.input, re)
5596        finally:
5597            if self.backtracking > 0:
5598                self.memoize(self.input, 41, postfix_expression_StartIndex)
5599
5600            self.postfix_expression_stack.pop()
5601            pass
5602
5603        return
5604
5605    # $ANTLR end postfix_expression
5606
5607
5608    # $ANTLR start macro_parameter_list
5609    # C.g:419:1: macro_parameter_list : parameter_declaration ( ',' parameter_declaration )* ;
5610    def macro_parameter_list(self, ):
5611
5612        macro_parameter_list_StartIndex = self.input.index()
5613        try:
5614            try:
5615                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 42):
5616                    return
5617
5618                # C.g:420:2: ( parameter_declaration ( ',' parameter_declaration )* )
5619                # C.g:420:4: parameter_declaration ( ',' parameter_declaration )*
5620                self.following.append(self.FOLLOW_parameter_declaration_in_macro_parameter_list1559)
5621                self.parameter_declaration()
5622                self.following.pop()
5623                if self.failed:
5624                    return
5625                # C.g:420:26: ( ',' parameter_declaration )*
5626                while True: #loop66
5627                    alt66 = 2
5628                    LA66_0 = self.input.LA(1)
5629
5630                    if (LA66_0 == 27) :
5631                        alt66 = 1
5632
5633
5634                    if alt66 == 1:
5635                        # C.g:420:27: ',' parameter_declaration
5636                        self.match(self.input, 27, self.FOLLOW_27_in_macro_parameter_list1562)
5637                        if self.failed:
5638                            return
5639                        self.following.append(self.FOLLOW_parameter_declaration_in_macro_parameter_list1564)
5640                        self.parameter_declaration()
5641                        self.following.pop()
5642                        if self.failed:
5643                            return
5644
5645
5646                    else:
5647                        break #loop66
5648
5649
5650
5651
5652
5653
5654            except RecognitionException, re:
5655                self.reportError(re)
5656                self.recover(self.input, re)
5657        finally:
5658            if self.backtracking > 0:
5659                self.memoize(self.input, 42, macro_parameter_list_StartIndex)
5660
5661            pass
5662
5663        return
5664
5665    # $ANTLR end macro_parameter_list
5666
5667
5668    # $ANTLR start unary_operator
5669    # C.g:423:1: unary_operator : ( '&' | '*' | '+' | '-' | '~' | '!' );
5670    def unary_operator(self, ):
5671
5672        unary_operator_StartIndex = self.input.index()
5673        try:
5674            try:
5675                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 43):
5676                    return
5677
5678                # C.g:424:2: ( '&' | '*' | '+' | '-' | '~' | '!' )
5679                # C.g:
5680                if self.input.LA(1) == 66 or (68 <= self.input.LA(1) <= 69) or (77 <= self.input.LA(1) <= 79):
5681                    self.input.consume();
5682                    self.errorRecovery = False
5683                    self.failed = False
5684
5685                else:
5686                    if self.backtracking > 0:
5687                        self.failed = True
5688                        return
5689
5690                    mse = MismatchedSetException(None, self.input)
5691                    self.recoverFromMismatchedSet(
5692                        self.input, mse, self.FOLLOW_set_in_unary_operator0
5693                        )
5694                    raise mse
5695
5696
5697
5698
5699
5700
5701            except RecognitionException, re:
5702                self.reportError(re)
5703                self.recover(self.input, re)
5704        finally:
5705            if self.backtracking > 0:
5706                self.memoize(self.input, 43, unary_operator_StartIndex)
5707
5708            pass
5709
5710        return
5711
5712    # $ANTLR end unary_operator
5713
5714    class primary_expression_return(object):
5715        def __init__(self):
5716            self.start = None
5717            self.stop = None
5718
5719
5720
5721    # $ANTLR start primary_expression
5722    # C.g:432:1: primary_expression : ( IDENTIFIER | constant | '(' expression ')' );
5723    def primary_expression(self, ):
5724
5725        retval = self.primary_expression_return()
5726        retval.start = self.input.LT(1)
5727        primary_expression_StartIndex = self.input.index()
5728        try:
5729            try:
5730                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 44):
5731                    return retval
5732
5733                # C.g:433:2: ( IDENTIFIER | constant | '(' expression ')' )
5734                alt67 = 3
5735                LA67 = self.input.LA(1)
5736                if LA67 == IDENTIFIER:
5737                    LA67_1 = self.input.LA(2)
5738
5739                    if (LA67_1 == EOF or LA67_1 == 25 or (27 <= LA67_1 <= 28) or LA67_1 == 44 or LA67_1 == 47 or LA67_1 == 53 or (62 <= LA67_1 <= 66) or (68 <= LA67_1 <= 73) or (75 <= LA67_1 <= 77) or (80 <= LA67_1 <= 102)) :
5740                        alt67 = 1
5741                    elif (LA67_1 == IDENTIFIER or LA67_1 == STRING_LITERAL) :
5742                        alt67 = 2
5743                    else:
5744                        if self.backtracking > 0:
5745                            self.failed = True
5746                            return retval
5747
5748                        nvae = NoViableAltException("432:1: primary_expression : ( IDENTIFIER | constant | '(' expression ')' );", 67, 1, self.input)
5749
5750                        raise nvae
5751
5752                elif LA67 == HEX_LITERAL or LA67 == OCTAL_LITERAL or LA67 == DECIMAL_LITERAL or LA67 == CHARACTER_LITERAL or LA67 == STRING_LITERAL or LA67 == FLOATING_POINT_LITERAL:
5753                    alt67 = 2
5754                elif LA67 == 62:
5755                    alt67 = 3
5756                else:
5757                    if self.backtracking > 0:
5758                        self.failed = True
5759                        return retval
5760
5761                    nvae = NoViableAltException("432:1: primary_expression : ( IDENTIFIER | constant | '(' expression ')' );", 67, 0, self.input)
5762
5763                    raise nvae
5764
5765                if alt67 == 1:
5766                    # C.g:433:4: IDENTIFIER
5767                    self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_primary_expression1613)
5768                    if self.failed:
5769                        return retval
5770
5771
5772                elif alt67 == 2:
5773                    # C.g:434:4: constant
5774                    self.following.append(self.FOLLOW_constant_in_primary_expression1618)
5775                    self.constant()
5776                    self.following.pop()
5777                    if self.failed:
5778                        return retval
5779
5780
5781                elif alt67 == 3:
5782                    # C.g:435:4: '(' expression ')'
5783                    self.match(self.input, 62, self.FOLLOW_62_in_primary_expression1623)
5784                    if self.failed:
5785                        return retval
5786                    self.following.append(self.FOLLOW_expression_in_primary_expression1625)
5787                    self.expression()
5788                    self.following.pop()
5789                    if self.failed:
5790                        return retval
5791                    self.match(self.input, 63, self.FOLLOW_63_in_primary_expression1627)
5792                    if self.failed:
5793                        return retval
5794
5795
5796                retval.stop = self.input.LT(-1)
5797
5798
5799            except RecognitionException, re:
5800                self.reportError(re)
5801                self.recover(self.input, re)
5802        finally:
5803            if self.backtracking > 0:
5804                self.memoize(self.input, 44, primary_expression_StartIndex)
5805
5806            pass
5807
5808        return retval
5809
5810    # $ANTLR end primary_expression
5811
5812
5813    # $ANTLR start constant
5814    # C.g:438:1: constant : ( HEX_LITERAL | OCTAL_LITERAL | DECIMAL_LITERAL | CHARACTER_LITERAL | ( ( IDENTIFIER )* ( STRING_LITERAL )+ )+ ( IDENTIFIER )* | FLOATING_POINT_LITERAL );
5815    def constant(self, ):
5816
5817        constant_StartIndex = self.input.index()
5818        try:
5819            try:
5820                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 45):
5821                    return
5822
5823                # C.g:439:5: ( HEX_LITERAL | OCTAL_LITERAL | DECIMAL_LITERAL | CHARACTER_LITERAL | ( ( IDENTIFIER )* ( STRING_LITERAL )+ )+ ( IDENTIFIER )* | FLOATING_POINT_LITERAL )
5824                alt72 = 6
5825                LA72 = self.input.LA(1)
5826                if LA72 == HEX_LITERAL:
5827                    alt72 = 1
5828                elif LA72 == OCTAL_LITERAL:
5829                    alt72 = 2
5830                elif LA72 == DECIMAL_LITERAL:
5831                    alt72 = 3
5832                elif LA72 == CHARACTER_LITERAL:
5833                    alt72 = 4
5834                elif LA72 == IDENTIFIER or LA72 == STRING_LITERAL:
5835                    alt72 = 5
5836                elif LA72 == FLOATING_POINT_LITERAL:
5837                    alt72 = 6
5838                else:
5839                    if self.backtracking > 0:
5840                        self.failed = True
5841                        return
5842
5843                    nvae = NoViableAltException("438:1: constant : ( HEX_LITERAL | OCTAL_LITERAL | DECIMAL_LITERAL | CHARACTER_LITERAL | ( ( IDENTIFIER )* ( STRING_LITERAL )+ )+ ( IDENTIFIER )* | FLOATING_POINT_LITERAL );", 72, 0, self.input)
5844
5845                    raise nvae
5846
5847                if alt72 == 1:
5848                    # C.g:439:9: HEX_LITERAL
5849                    self.match(self.input, HEX_LITERAL, self.FOLLOW_HEX_LITERAL_in_constant1643)
5850                    if self.failed:
5851                        return
5852
5853
5854                elif alt72 == 2:
5855                    # C.g:440:9: OCTAL_LITERAL
5856                    self.match(self.input, OCTAL_LITERAL, self.FOLLOW_OCTAL_LITERAL_in_constant1653)
5857                    if self.failed:
5858                        return
5859
5860
5861                elif alt72 == 3:
5862                    # C.g:441:9: DECIMAL_LITERAL
5863                    self.match(self.input, DECIMAL_LITERAL, self.FOLLOW_DECIMAL_LITERAL_in_constant1663)
5864                    if self.failed:
5865                        return
5866
5867
5868                elif alt72 == 4:
5869                    # C.g:442:7: CHARACTER_LITERAL
5870                    self.match(self.input, CHARACTER_LITERAL, self.FOLLOW_CHARACTER_LITERAL_in_constant1671)
5871                    if self.failed:
5872                        return
5873
5874
5875                elif alt72 == 5:
5876                    # C.g:443:7: ( ( IDENTIFIER )* ( STRING_LITERAL )+ )+ ( IDENTIFIER )*
5877                    # C.g:443:7: ( ( IDENTIFIER )* ( STRING_LITERAL )+ )+
5878                    cnt70 = 0
5879                    while True: #loop70
5880                        alt70 = 2
5881                        LA70_0 = self.input.LA(1)
5882
5883                        if (LA70_0 == IDENTIFIER) :
5884                            LA70_1 = self.input.LA(2)
5885
5886                            if (LA70_1 == STRING_LITERAL) :
5887                                alt70 = 1
5888                            elif (LA70_1 == IDENTIFIER) :
5889                                LA70_33 = self.input.LA(3)
5890
5891                                if (self.synpred138()) :
5892                                    alt70 = 1
5893
5894
5895
5896
5897                        elif (LA70_0 == STRING_LITERAL) :
5898                            alt70 = 1
5899
5900
5901                        if alt70 == 1:
5902                            # C.g:443:8: ( IDENTIFIER )* ( STRING_LITERAL )+
5903                            # C.g:443:8: ( IDENTIFIER )*
5904                            while True: #loop68
5905                                alt68 = 2
5906                                LA68_0 = self.input.LA(1)
5907
5908                                if (LA68_0 == IDENTIFIER) :
5909                                    alt68 = 1
5910
5911
5912                                if alt68 == 1:
5913                                    # C.g:0:0: IDENTIFIER
5914                                    self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_constant1680)
5915                                    if self.failed:
5916                                        return
5917
5918
5919                                else:
5920                                    break #loop68
5921
5922
5923                            # C.g:443:20: ( STRING_LITERAL )+
5924                            cnt69 = 0
5925                            while True: #loop69
5926                                alt69 = 2
5927                                LA69_0 = self.input.LA(1)
5928
5929                                if (LA69_0 == STRING_LITERAL) :
5930                                    LA69_31 = self.input.LA(2)
5931
5932                                    if (self.synpred137()) :
5933                                        alt69 = 1
5934
5935
5936
5937
5938                                if alt69 == 1:
5939                                    # C.g:0:0: STRING_LITERAL
5940                                    self.match(self.input, STRING_LITERAL, self.FOLLOW_STRING_LITERAL_in_constant1683)
5941                                    if self.failed:
5942                                        return
5943
5944
5945                                else:
5946                                    if cnt69 >= 1:
5947                                        break #loop69
5948
5949                                    if self.backtracking > 0:
5950                                        self.failed = True
5951                                        return
5952
5953                                    eee = EarlyExitException(69, self.input)
5954                                    raise eee
5955
5956                                cnt69 += 1
5957
5958
5959
5960
5961                        else:
5962                            if cnt70 >= 1:
5963                                break #loop70
5964
5965                            if self.backtracking > 0:
5966                                self.failed = True
5967                                return
5968
5969                            eee = EarlyExitException(70, self.input)
5970                            raise eee
5971
5972                        cnt70 += 1
5973
5974
5975                    # C.g:443:38: ( IDENTIFIER )*
5976                    while True: #loop71
5977                        alt71 = 2
5978                        LA71_0 = self.input.LA(1)
5979
5980                        if (LA71_0 == IDENTIFIER) :
5981                            alt71 = 1
5982
5983
5984                        if alt71 == 1:
5985                            # C.g:0:0: IDENTIFIER
5986                            self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_constant1688)
5987                            if self.failed:
5988                                return
5989
5990
5991                        else:
5992                            break #loop71
5993
5994
5995
5996
5997                elif alt72 == 6:
5998                    # C.g:444:9: FLOATING_POINT_LITERAL
5999                    self.match(self.input, FLOATING_POINT_LITERAL, self.FOLLOW_FLOATING_POINT_LITERAL_in_constant1699)
6000                    if self.failed:
6001                        return
6002
6003
6004
6005            except RecognitionException, re:
6006                self.reportError(re)
6007                self.recover(self.input, re)
6008        finally:
6009            if self.backtracking > 0:
6010                self.memoize(self.input, 45, constant_StartIndex)
6011
6012            pass
6013
6014        return
6015
6016    # $ANTLR end constant
6017
6018    class expression_return(object):
6019        def __init__(self):
6020            self.start = None
6021            self.stop = None
6022
6023
6024
6025    # $ANTLR start expression
6026    # C.g:449:1: expression : assignment_expression ( ',' assignment_expression )* ;
6027    def expression(self, ):
6028
6029        retval = self.expression_return()
6030        retval.start = self.input.LT(1)
6031        expression_StartIndex = self.input.index()
6032        try:
6033            try:
6034                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 46):
6035                    return retval
6036
6037                # C.g:450:2: ( assignment_expression ( ',' assignment_expression )* )
6038                # C.g:450:4: assignment_expression ( ',' assignment_expression )*
6039                self.following.append(self.FOLLOW_assignment_expression_in_expression1715)
6040                self.assignment_expression()
6041                self.following.pop()
6042                if self.failed:
6043                    return retval
6044                # C.g:450:26: ( ',' assignment_expression )*
6045                while True: #loop73
6046                    alt73 = 2
6047                    LA73_0 = self.input.LA(1)
6048
6049                    if (LA73_0 == 27) :
6050                        alt73 = 1
6051
6052
6053                    if alt73 == 1:
6054                        # C.g:450:27: ',' assignment_expression
6055                        self.match(self.input, 27, self.FOLLOW_27_in_expression1718)
6056                        if self.failed:
6057                            return retval
6058                        self.following.append(self.FOLLOW_assignment_expression_in_expression1720)
6059                        self.assignment_expression()
6060                        self.following.pop()
6061                        if self.failed:
6062                            return retval
6063
6064
6065                    else:
6066                        break #loop73
6067
6068
6069
6070
6071
6072                retval.stop = self.input.LT(-1)
6073
6074
6075            except RecognitionException, re:
6076                self.reportError(re)
6077                self.recover(self.input, re)
6078        finally:
6079            if self.backtracking > 0:
6080                self.memoize(self.input, 46, expression_StartIndex)
6081
6082            pass
6083
6084        return retval
6085
6086    # $ANTLR end expression
6087
6088
6089    # $ANTLR start constant_expression
6090    # C.g:453:1: constant_expression : conditional_expression ;
6091    def constant_expression(self, ):
6092
6093        constant_expression_StartIndex = self.input.index()
6094        try:
6095            try:
6096                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 47):
6097                    return
6098
6099                # C.g:454:2: ( conditional_expression )
6100                # C.g:454:4: conditional_expression
6101                self.following.append(self.FOLLOW_conditional_expression_in_constant_expression1733)
6102                self.conditional_expression()
6103                self.following.pop()
6104                if self.failed:
6105                    return
6106
6107
6108
6109
6110            except RecognitionException, re:
6111                self.reportError(re)
6112                self.recover(self.input, re)
6113        finally:
6114            if self.backtracking > 0:
6115                self.memoize(self.input, 47, constant_expression_StartIndex)
6116
6117            pass
6118
6119        return
6120
6121    # $ANTLR end constant_expression
6122
6123
6124    # $ANTLR start assignment_expression
6125    # C.g:457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );
6126    def assignment_expression(self, ):
6127
6128        assignment_expression_StartIndex = self.input.index()
6129        try:
6130            try:
6131                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 48):
6132                    return
6133
6134                # C.g:458:2: ( lvalue assignment_operator assignment_expression | conditional_expression )
6135                alt74 = 2
6136                LA74 = self.input.LA(1)
6137                if LA74 == IDENTIFIER:
6138                    LA74 = self.input.LA(2)
6139                    if LA74 == 64:
6140                        LA74_13 = self.input.LA(3)
6141
6142                        if (self.synpred142()) :
6143                            alt74 = 1
6144                        elif (True) :
6145                            alt74 = 2
6146                        else:
6147                            if self.backtracking > 0:
6148                                self.failed = True
6149                                return
6150
6151                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 13, self.input)
6152
6153                            raise nvae
6154
6155                    elif LA74 == 62:
6156                        LA74_14 = self.input.LA(3)
6157
6158                        if (self.synpred142()) :
6159                            alt74 = 1
6160                        elif (True) :
6161                            alt74 = 2
6162                        else:
6163                            if self.backtracking > 0:
6164                                self.failed = True
6165                                return
6166
6167                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 14, self.input)
6168
6169                            raise nvae
6170
6171                    elif LA74 == 75:
6172                        LA74_15 = self.input.LA(3)
6173
6174                        if (self.synpred142()) :
6175                            alt74 = 1
6176                        elif (True) :
6177                            alt74 = 2
6178                        else:
6179                            if self.backtracking > 0:
6180                                self.failed = True
6181                                return
6182
6183                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 15, self.input)
6184
6185                            raise nvae
6186
6187                    elif LA74 == 66:
6188                        LA74_16 = self.input.LA(3)
6189
6190                        if (self.synpred142()) :
6191                            alt74 = 1
6192                        elif (True) :
6193                            alt74 = 2
6194                        else:
6195                            if self.backtracking > 0:
6196                                self.failed = True
6197                                return
6198
6199                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 16, self.input)
6200
6201                            raise nvae
6202
6203                    elif LA74 == 76:
6204                        LA74_17 = self.input.LA(3)
6205
6206                        if (self.synpred142()) :
6207                            alt74 = 1
6208                        elif (True) :
6209                            alt74 = 2
6210                        else:
6211                            if self.backtracking > 0:
6212                                self.failed = True
6213                                return
6214
6215                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 17, self.input)
6216
6217                            raise nvae
6218
6219                    elif LA74 == 72:
6220                        LA74_18 = self.input.LA(3)
6221
6222                        if (self.synpred142()) :
6223                            alt74 = 1
6224                        elif (True) :
6225                            alt74 = 2
6226                        else:
6227                            if self.backtracking > 0:
6228                                self.failed = True
6229                                return
6230
6231                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 18, self.input)
6232
6233                            raise nvae
6234
6235                    elif LA74 == 73:
6236                        LA74_19 = self.input.LA(3)
6237
6238                        if (self.synpred142()) :
6239                            alt74 = 1
6240                        elif (True) :
6241                            alt74 = 2
6242                        else:
6243                            if self.backtracking > 0:
6244                                self.failed = True
6245                                return
6246
6247                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 19, self.input)
6248
6249                            raise nvae
6250
6251                    elif LA74 == 28 or LA74 == 80 or LA74 == 81 or LA74 == 82 or LA74 == 83 or LA74 == 84 or LA74 == 85 or LA74 == 86 or LA74 == 87 or LA74 == 88 or LA74 == 89:
6252                        alt74 = 1
6253                    elif LA74 == STRING_LITERAL:
6254                        LA74_21 = self.input.LA(3)
6255
6256                        if (self.synpred142()) :
6257                            alt74 = 1
6258                        elif (True) :
6259                            alt74 = 2
6260                        else:
6261                            if self.backtracking > 0:
6262                                self.failed = True
6263                                return
6264
6265                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 21, self.input)
6266
6267                            raise nvae
6268
6269                    elif LA74 == IDENTIFIER:
6270                        LA74_22 = self.input.LA(3)
6271
6272                        if (self.synpred142()) :
6273                            alt74 = 1
6274                        elif (True) :
6275                            alt74 = 2
6276                        else:
6277                            if self.backtracking > 0:
6278                                self.failed = True
6279                                return
6280
6281                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 22, self.input)
6282
6283                            raise nvae
6284
6285                    elif LA74 == EOF or LA74 == 25 or LA74 == 27 or LA74 == 44 or LA74 == 47 or LA74 == 53 or LA74 == 63 or LA74 == 65 or LA74 == 68 or LA74 == 69 or LA74 == 70 or LA74 == 71 or LA74 == 77 or LA74 == 90 or LA74 == 91 or LA74 == 92 or LA74 == 93 or LA74 == 94 or LA74 == 95 or LA74 == 96 or LA74 == 97 or LA74 == 98 or LA74 == 99 or LA74 == 100 or LA74 == 101 or LA74 == 102:
6286                        alt74 = 2
6287                    else:
6288                        if self.backtracking > 0:
6289                            self.failed = True
6290                            return
6291
6292                        nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 1, self.input)
6293
6294                        raise nvae
6295
6296                elif LA74 == HEX_LITERAL:
6297                    LA74 = self.input.LA(2)
6298                    if LA74 == 64:
6299                        LA74_44 = self.input.LA(3)
6300
6301                        if (self.synpred142()) :
6302                            alt74 = 1
6303                        elif (True) :
6304                            alt74 = 2
6305                        else:
6306                            if self.backtracking > 0:
6307                                self.failed = True
6308                                return
6309
6310                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 44, self.input)
6311
6312                            raise nvae
6313
6314                    elif LA74 == 62:
6315                        LA74_45 = self.input.LA(3)
6316
6317                        if (self.synpred142()) :
6318                            alt74 = 1
6319                        elif (True) :
6320                            alt74 = 2
6321                        else:
6322                            if self.backtracking > 0:
6323                                self.failed = True
6324                                return
6325
6326                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 45, self.input)
6327
6328                            raise nvae
6329
6330                    elif LA74 == 75:
6331                        LA74_46 = self.input.LA(3)
6332
6333                        if (self.synpred142()) :
6334                            alt74 = 1
6335                        elif (True) :
6336                            alt74 = 2
6337                        else:
6338                            if self.backtracking > 0:
6339                                self.failed = True
6340                                return
6341
6342                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 46, self.input)
6343
6344                            raise nvae
6345
6346                    elif LA74 == 66:
6347                        LA74_47 = self.input.LA(3)
6348
6349                        if (self.synpred142()) :
6350                            alt74 = 1
6351                        elif (True) :
6352                            alt74 = 2
6353                        else:
6354                            if self.backtracking > 0:
6355                                self.failed = True
6356                                return
6357
6358                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 47, self.input)
6359
6360                            raise nvae
6361
6362                    elif LA74 == 76:
6363                        LA74_48 = self.input.LA(3)
6364
6365                        if (self.synpred142()) :
6366                            alt74 = 1
6367                        elif (True) :
6368                            alt74 = 2
6369                        else:
6370                            if self.backtracking > 0:
6371                                self.failed = True
6372                                return
6373
6374                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 48, self.input)
6375
6376                            raise nvae
6377
6378                    elif LA74 == 72:
6379                        LA74_49 = self.input.LA(3)
6380
6381                        if (self.synpred142()) :
6382                            alt74 = 1
6383                        elif (True) :
6384                            alt74 = 2
6385                        else:
6386                            if self.backtracking > 0:
6387                                self.failed = True
6388                                return
6389
6390                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 49, self.input)
6391
6392                            raise nvae
6393
6394                    elif LA74 == 73:
6395                        LA74_50 = self.input.LA(3)
6396
6397                        if (self.synpred142()) :
6398                            alt74 = 1
6399                        elif (True) :
6400                            alt74 = 2
6401                        else:
6402                            if self.backtracking > 0:
6403                                self.failed = True
6404                                return
6405
6406                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 50, self.input)
6407
6408                            raise nvae
6409
6410                    elif LA74 == EOF or LA74 == 25 or LA74 == 27 or LA74 == 44 or LA74 == 47 or LA74 == 53 or LA74 == 63 or LA74 == 65 or LA74 == 68 or LA74 == 69 or LA74 == 70 or LA74 == 71 or LA74 == 77 or LA74 == 90 or LA74 == 91 or LA74 == 92 or LA74 == 93 or LA74 == 94 or LA74 == 95 or LA74 == 96 or LA74 == 97 or LA74 == 98 or LA74 == 99 or LA74 == 100 or LA74 == 101 or LA74 == 102:
6411                        alt74 = 2
6412                    elif LA74 == 28 or LA74 == 80 or LA74 == 81 or LA74 == 82 or LA74 == 83 or LA74 == 84 or LA74 == 85 or LA74 == 86 or LA74 == 87 or LA74 == 88 or LA74 == 89:
6413                        alt74 = 1
6414                    else:
6415                        if self.backtracking > 0:
6416                            self.failed = True
6417                            return
6418
6419                        nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 2, self.input)
6420
6421                        raise nvae
6422
6423                elif LA74 == OCTAL_LITERAL:
6424                    LA74 = self.input.LA(2)
6425                    if LA74 == 64:
6426                        LA74_73 = self.input.LA(3)
6427
6428                        if (self.synpred142()) :
6429                            alt74 = 1
6430                        elif (True) :
6431                            alt74 = 2
6432                        else:
6433                            if self.backtracking > 0:
6434                                self.failed = True
6435                                return
6436
6437                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 73, self.input)
6438
6439                            raise nvae
6440
6441                    elif LA74 == 62:
6442                        LA74_74 = self.input.LA(3)
6443
6444                        if (self.synpred142()) :
6445                            alt74 = 1
6446                        elif (True) :
6447                            alt74 = 2
6448                        else:
6449                            if self.backtracking > 0:
6450                                self.failed = True
6451                                return
6452
6453                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 74, self.input)
6454
6455                            raise nvae
6456
6457                    elif LA74 == 75:
6458                        LA74_75 = self.input.LA(3)
6459
6460                        if (self.synpred142()) :
6461                            alt74 = 1
6462                        elif (True) :
6463                            alt74 = 2
6464                        else:
6465                            if self.backtracking > 0:
6466                                self.failed = True
6467                                return
6468
6469                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 75, self.input)
6470
6471                            raise nvae
6472
6473                    elif LA74 == 66:
6474                        LA74_76 = self.input.LA(3)
6475
6476                        if (self.synpred142()) :
6477                            alt74 = 1
6478                        elif (True) :
6479                            alt74 = 2
6480                        else:
6481                            if self.backtracking > 0:
6482                                self.failed = True
6483                                return
6484
6485                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 76, self.input)
6486
6487                            raise nvae
6488
6489                    elif LA74 == 76:
6490                        LA74_77 = self.input.LA(3)
6491
6492                        if (self.synpred142()) :
6493                            alt74 = 1
6494                        elif (True) :
6495                            alt74 = 2
6496                        else:
6497                            if self.backtracking > 0:
6498                                self.failed = True
6499                                return
6500
6501                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 77, self.input)
6502
6503                            raise nvae
6504
6505                    elif LA74 == 72:
6506                        LA74_78 = self.input.LA(3)
6507
6508                        if (self.synpred142()) :
6509                            alt74 = 1
6510                        elif (True) :
6511                            alt74 = 2
6512                        else:
6513                            if self.backtracking > 0:
6514                                self.failed = True
6515                                return
6516
6517                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 78, self.input)
6518
6519                            raise nvae
6520
6521                    elif LA74 == 73:
6522                        LA74_79 = self.input.LA(3)
6523
6524                        if (self.synpred142()) :
6525                            alt74 = 1
6526                        elif (True) :
6527                            alt74 = 2
6528                        else:
6529                            if self.backtracking > 0:
6530                                self.failed = True
6531                                return
6532
6533                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 79, self.input)
6534
6535                            raise nvae
6536
6537                    elif LA74 == 28 or LA74 == 80 or LA74 == 81 or LA74 == 82 or LA74 == 83 or LA74 == 84 or LA74 == 85 or LA74 == 86 or LA74 == 87 or LA74 == 88 or LA74 == 89:
6538                        alt74 = 1
6539                    elif LA74 == EOF or LA74 == 25 or LA74 == 27 or LA74 == 44 or LA74 == 47 or LA74 == 53 or LA74 == 63 or LA74 == 65 or LA74 == 68 or LA74 == 69 or LA74 == 70 or LA74 == 71 or LA74 == 77 or LA74 == 90 or LA74 == 91 or LA74 == 92 or LA74 == 93 or LA74 == 94 or LA74 == 95 or LA74 == 96 or LA74 == 97 or LA74 == 98 or LA74 == 99 or LA74 == 100 or LA74 == 101 or LA74 == 102:
6540                        alt74 = 2
6541                    else:
6542                        if self.backtracking > 0:
6543                            self.failed = True
6544                            return
6545
6546                        nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 3, self.input)
6547
6548                        raise nvae
6549
6550                elif LA74 == DECIMAL_LITERAL:
6551                    LA74 = self.input.LA(2)
6552                    if LA74 == 64:
6553                        LA74_102 = self.input.LA(3)
6554
6555                        if (self.synpred142()) :
6556                            alt74 = 1
6557                        elif (True) :
6558                            alt74 = 2
6559                        else:
6560                            if self.backtracking > 0:
6561                                self.failed = True
6562                                return
6563
6564                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 102, self.input)
6565
6566                            raise nvae
6567
6568                    elif LA74 == 62:
6569                        LA74_103 = self.input.LA(3)
6570
6571                        if (self.synpred142()) :
6572                            alt74 = 1
6573                        elif (True) :
6574                            alt74 = 2
6575                        else:
6576                            if self.backtracking > 0:
6577                                self.failed = True
6578                                return
6579
6580                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 103, self.input)
6581
6582                            raise nvae
6583
6584                    elif LA74 == 75:
6585                        LA74_104 = self.input.LA(3)
6586
6587                        if (self.synpred142()) :
6588                            alt74 = 1
6589                        elif (True) :
6590                            alt74 = 2
6591                        else:
6592                            if self.backtracking > 0:
6593                                self.failed = True
6594                                return
6595
6596                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 104, self.input)
6597
6598                            raise nvae
6599
6600                    elif LA74 == 66:
6601                        LA74_105 = self.input.LA(3)
6602
6603                        if (self.synpred142()) :
6604                            alt74 = 1
6605                        elif (True) :
6606                            alt74 = 2
6607                        else:
6608                            if self.backtracking > 0:
6609                                self.failed = True
6610                                return
6611
6612                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 105, self.input)
6613
6614                            raise nvae
6615
6616                    elif LA74 == 76:
6617                        LA74_106 = self.input.LA(3)
6618
6619                        if (self.synpred142()) :
6620                            alt74 = 1
6621                        elif (True) :
6622                            alt74 = 2
6623                        else:
6624                            if self.backtracking > 0:
6625                                self.failed = True
6626                                return
6627
6628                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 106, self.input)
6629
6630                            raise nvae
6631
6632                    elif LA74 == 72:
6633                        LA74_107 = self.input.LA(3)
6634
6635                        if (self.synpred142()) :
6636                            alt74 = 1
6637                        elif (True) :
6638                            alt74 = 2
6639                        else:
6640                            if self.backtracking > 0:
6641                                self.failed = True
6642                                return
6643
6644                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 107, self.input)
6645
6646                            raise nvae
6647
6648                    elif LA74 == 73:
6649                        LA74_108 = self.input.LA(3)
6650
6651                        if (self.synpred142()) :
6652                            alt74 = 1
6653                        elif (True) :
6654                            alt74 = 2
6655                        else:
6656                            if self.backtracking > 0:
6657                                self.failed = True
6658                                return
6659
6660                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 108, self.input)
6661
6662                            raise nvae
6663
6664                    elif LA74 == EOF or LA74 == 25 or LA74 == 27 or LA74 == 44 or LA74 == 47 or LA74 == 53 or LA74 == 63 or LA74 == 65 or LA74 == 68 or LA74 == 69 or LA74 == 70 or LA74 == 71 or LA74 == 77 or LA74 == 90 or LA74 == 91 or LA74 == 92 or LA74 == 93 or LA74 == 94 or LA74 == 95 or LA74 == 96 or LA74 == 97 or LA74 == 98 or LA74 == 99 or LA74 == 100 or LA74 == 101 or LA74 == 102:
6665                        alt74 = 2
6666                    elif LA74 == 28 or LA74 == 80 or LA74 == 81 or LA74 == 82 or LA74 == 83 or LA74 == 84 or LA74 == 85 or LA74 == 86 or LA74 == 87 or LA74 == 88 or LA74 == 89:
6667                        alt74 = 1
6668                    else:
6669                        if self.backtracking > 0:
6670                            self.failed = True
6671                            return
6672
6673                        nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 4, self.input)
6674
6675                        raise nvae
6676
6677                elif LA74 == CHARACTER_LITERAL:
6678                    LA74 = self.input.LA(2)
6679                    if LA74 == 64:
6680                        LA74_131 = self.input.LA(3)
6681
6682                        if (self.synpred142()) :
6683                            alt74 = 1
6684                        elif (True) :
6685                            alt74 = 2
6686                        else:
6687                            if self.backtracking > 0:
6688                                self.failed = True
6689                                return
6690
6691                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 131, self.input)
6692
6693                            raise nvae
6694
6695                    elif LA74 == 62:
6696                        LA74_132 = self.input.LA(3)
6697
6698                        if (self.synpred142()) :
6699                            alt74 = 1
6700                        elif (True) :
6701                            alt74 = 2
6702                        else:
6703                            if self.backtracking > 0:
6704                                self.failed = True
6705                                return
6706
6707                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 132, self.input)
6708
6709                            raise nvae
6710
6711                    elif LA74 == 75:
6712                        LA74_133 = self.input.LA(3)
6713
6714                        if (self.synpred142()) :
6715                            alt74 = 1
6716                        elif (True) :
6717                            alt74 = 2
6718                        else:
6719                            if self.backtracking > 0:
6720                                self.failed = True
6721                                return
6722
6723                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 133, self.input)
6724
6725                            raise nvae
6726
6727                    elif LA74 == 66:
6728                        LA74_134 = self.input.LA(3)
6729
6730                        if (self.synpred142()) :
6731                            alt74 = 1
6732                        elif (True) :
6733                            alt74 = 2
6734                        else:
6735                            if self.backtracking > 0:
6736                                self.failed = True
6737                                return
6738
6739                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 134, self.input)
6740
6741                            raise nvae
6742
6743                    elif LA74 == 76:
6744                        LA74_135 = self.input.LA(3)
6745
6746                        if (self.synpred142()) :
6747                            alt74 = 1
6748                        elif (True) :
6749                            alt74 = 2
6750                        else:
6751                            if self.backtracking > 0:
6752                                self.failed = True
6753                                return
6754
6755                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 135, self.input)
6756
6757                            raise nvae
6758
6759                    elif LA74 == 72:
6760                        LA74_136 = self.input.LA(3)
6761
6762                        if (self.synpred142()) :
6763                            alt74 = 1
6764                        elif (True) :
6765                            alt74 = 2
6766                        else:
6767                            if self.backtracking > 0:
6768                                self.failed = True
6769                                return
6770
6771                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 136, self.input)
6772
6773                            raise nvae
6774
6775                    elif LA74 == 73:
6776                        LA74_137 = self.input.LA(3)
6777
6778                        if (self.synpred142()) :
6779                            alt74 = 1
6780                        elif (True) :
6781                            alt74 = 2
6782                        else:
6783                            if self.backtracking > 0:
6784                                self.failed = True
6785                                return
6786
6787                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 137, self.input)
6788
6789                            raise nvae
6790
6791                    elif LA74 == EOF or LA74 == 25 or LA74 == 27 or LA74 == 44 or LA74 == 47 or LA74 == 53 or LA74 == 63 or LA74 == 65 or LA74 == 68 or LA74 == 69 or LA74 == 70 or LA74 == 71 or LA74 == 77 or LA74 == 90 or LA74 == 91 or LA74 == 92 or LA74 == 93 or LA74 == 94 or LA74 == 95 or LA74 == 96 or LA74 == 97 or LA74 == 98 or LA74 == 99 or LA74 == 100 or LA74 == 101 or LA74 == 102:
6792                        alt74 = 2
6793                    elif LA74 == 28 or LA74 == 80 or LA74 == 81 or LA74 == 82 or LA74 == 83 or LA74 == 84 or LA74 == 85 or LA74 == 86 or LA74 == 87 or LA74 == 88 or LA74 == 89:
6794                        alt74 = 1
6795                    else:
6796                        if self.backtracking > 0:
6797                            self.failed = True
6798                            return
6799
6800                        nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 5, self.input)
6801
6802                        raise nvae
6803
6804                elif LA74 == STRING_LITERAL:
6805                    LA74 = self.input.LA(2)
6806                    if LA74 == IDENTIFIER:
6807                        LA74_160 = self.input.LA(3)
6808
6809                        if (self.synpred142()) :
6810                            alt74 = 1
6811                        elif (True) :
6812                            alt74 = 2
6813                        else:
6814                            if self.backtracking > 0:
6815                                self.failed = True
6816                                return
6817
6818                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 160, self.input)
6819
6820                            raise nvae
6821
6822                    elif LA74 == 64:
6823                        LA74_161 = self.input.LA(3)
6824
6825                        if (self.synpred142()) :
6826                            alt74 = 1
6827                        elif (True) :
6828                            alt74 = 2
6829                        else:
6830                            if self.backtracking > 0:
6831                                self.failed = True
6832                                return
6833
6834                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 161, self.input)
6835
6836                            raise nvae
6837
6838                    elif LA74 == 62:
6839                        LA74_162 = self.input.LA(3)
6840
6841                        if (self.synpred142()) :
6842                            alt74 = 1
6843                        elif (True) :
6844                            alt74 = 2
6845                        else:
6846                            if self.backtracking > 0:
6847                                self.failed = True
6848                                return
6849
6850                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 162, self.input)
6851
6852                            raise nvae
6853
6854                    elif LA74 == 75:
6855                        LA74_163 = self.input.LA(3)
6856
6857                        if (self.synpred142()) :
6858                            alt74 = 1
6859                        elif (True) :
6860                            alt74 = 2
6861                        else:
6862                            if self.backtracking > 0:
6863                                self.failed = True
6864                                return
6865
6866                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 163, self.input)
6867
6868                            raise nvae
6869
6870                    elif LA74 == 66:
6871                        LA74_164 = self.input.LA(3)
6872
6873                        if (self.synpred142()) :
6874                            alt74 = 1
6875                        elif (True) :
6876                            alt74 = 2
6877                        else:
6878                            if self.backtracking > 0:
6879                                self.failed = True
6880                                return
6881
6882                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 164, self.input)
6883
6884                            raise nvae
6885
6886                    elif LA74 == 76:
6887                        LA74_165 = self.input.LA(3)
6888
6889                        if (self.synpred142()) :
6890                            alt74 = 1
6891                        elif (True) :
6892                            alt74 = 2
6893                        else:
6894                            if self.backtracking > 0:
6895                                self.failed = True
6896                                return
6897
6898                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 165, self.input)
6899
6900                            raise nvae
6901
6902                    elif LA74 == 72:
6903                        LA74_166 = self.input.LA(3)
6904
6905                        if (self.synpred142()) :
6906                            alt74 = 1
6907                        elif (True) :
6908                            alt74 = 2
6909                        else:
6910                            if self.backtracking > 0:
6911                                self.failed = True
6912                                return
6913
6914                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 166, self.input)
6915
6916                            raise nvae
6917
6918                    elif LA74 == 73:
6919                        LA74_167 = self.input.LA(3)
6920
6921                        if (self.synpred142()) :
6922                            alt74 = 1
6923                        elif (True) :
6924                            alt74 = 2
6925                        else:
6926                            if self.backtracking > 0:
6927                                self.failed = True
6928                                return
6929
6930                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 167, self.input)
6931
6932                            raise nvae
6933
6934                    elif LA74 == EOF or LA74 == 25 or LA74 == 27 or LA74 == 44 or LA74 == 47 or LA74 == 53 or LA74 == 63 or LA74 == 65 or LA74 == 68 or LA74 == 69 or LA74 == 70 or LA74 == 71 or LA74 == 77 or LA74 == 90 or LA74 == 91 or LA74 == 92 or LA74 == 93 or LA74 == 94 or LA74 == 95 or LA74 == 96 or LA74 == 97 or LA74 == 98 or LA74 == 99 or LA74 == 100 or LA74 == 101 or LA74 == 102:
6935                        alt74 = 2
6936                    elif LA74 == STRING_LITERAL:
6937                        LA74_189 = self.input.LA(3)
6938
6939                        if (self.synpred142()) :
6940                            alt74 = 1
6941                        elif (True) :
6942                            alt74 = 2
6943                        else:
6944                            if self.backtracking > 0:
6945                                self.failed = True
6946                                return
6947
6948                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 189, self.input)
6949
6950                            raise nvae
6951
6952                    elif LA74 == 28 or LA74 == 80 or LA74 == 81 or LA74 == 82 or LA74 == 83 or LA74 == 84 or LA74 == 85 or LA74 == 86 or LA74 == 87 or LA74 == 88 or LA74 == 89:
6953                        alt74 = 1
6954                    else:
6955                        if self.backtracking > 0:
6956                            self.failed = True
6957                            return
6958
6959                        nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 6, self.input)
6960
6961                        raise nvae
6962
6963                elif LA74 == FLOATING_POINT_LITERAL:
6964                    LA74 = self.input.LA(2)
6965                    if LA74 == 64:
6966                        LA74_191 = self.input.LA(3)
6967
6968                        if (self.synpred142()) :
6969                            alt74 = 1
6970                        elif (True) :
6971                            alt74 = 2
6972                        else:
6973                            if self.backtracking > 0:
6974                                self.failed = True
6975                                return
6976
6977                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 191, self.input)
6978
6979                            raise nvae
6980
6981                    elif LA74 == 62:
6982                        LA74_192 = self.input.LA(3)
6983
6984                        if (self.synpred142()) :
6985                            alt74 = 1
6986                        elif (True) :
6987                            alt74 = 2
6988                        else:
6989                            if self.backtracking > 0:
6990                                self.failed = True
6991                                return
6992
6993                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 192, self.input)
6994
6995                            raise nvae
6996
6997                    elif LA74 == 75:
6998                        LA74_193 = self.input.LA(3)
6999
7000                        if (self.synpred142()) :
7001                            alt74 = 1
7002                        elif (True) :
7003                            alt74 = 2
7004                        else:
7005                            if self.backtracking > 0:
7006                                self.failed = True
7007                                return
7008
7009                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 193, self.input)
7010
7011                            raise nvae
7012
7013                    elif LA74 == 66:
7014                        LA74_194 = self.input.LA(3)
7015
7016                        if (self.synpred142()) :
7017                            alt74 = 1
7018                        elif (True) :
7019                            alt74 = 2
7020                        else:
7021                            if self.backtracking > 0:
7022                                self.failed = True
7023                                return
7024
7025                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 194, self.input)
7026
7027                            raise nvae
7028
7029                    elif LA74 == 76:
7030                        LA74_195 = self.input.LA(3)
7031
7032                        if (self.synpred142()) :
7033                            alt74 = 1
7034                        elif (True) :
7035                            alt74 = 2
7036                        else:
7037                            if self.backtracking > 0:
7038                                self.failed = True
7039                                return
7040
7041                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 195, self.input)
7042
7043                            raise nvae
7044
7045                    elif LA74 == 72:
7046                        LA74_196 = self.input.LA(3)
7047
7048                        if (self.synpred142()) :
7049                            alt74 = 1
7050                        elif (True) :
7051                            alt74 = 2
7052                        else:
7053                            if self.backtracking > 0:
7054                                self.failed = True
7055                                return
7056
7057                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 196, self.input)
7058
7059                            raise nvae
7060
7061                    elif LA74 == 73:
7062                        LA74_197 = self.input.LA(3)
7063
7064                        if (self.synpred142()) :
7065                            alt74 = 1
7066                        elif (True) :
7067                            alt74 = 2
7068                        else:
7069                            if self.backtracking > 0:
7070                                self.failed = True
7071                                return
7072
7073                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 197, self.input)
7074
7075                            raise nvae
7076
7077                    elif LA74 == EOF or LA74 == 25 or LA74 == 27 or LA74 == 44 or LA74 == 47 or LA74 == 53 or LA74 == 63 or LA74 == 65 or LA74 == 68 or LA74 == 69 or LA74 == 70 or LA74 == 71 or LA74 == 77 or LA74 == 90 or LA74 == 91 or LA74 == 92 or LA74 == 93 or LA74 == 94 or LA74 == 95 or LA74 == 96 or LA74 == 97 or LA74 == 98 or LA74 == 99 or LA74 == 100 or LA74 == 101 or LA74 == 102:
7078                        alt74 = 2
7079                    elif LA74 == 28 or LA74 == 80 or LA74 == 81 or LA74 == 82 or LA74 == 83 or LA74 == 84 or LA74 == 85 or LA74 == 86 or LA74 == 87 or LA74 == 88 or LA74 == 89:
7080                        alt74 = 1
7081                    else:
7082                        if self.backtracking > 0:
7083                            self.failed = True
7084                            return
7085
7086                        nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 7, self.input)
7087
7088                        raise nvae
7089
7090                elif LA74 == 62:
7091                    LA74 = self.input.LA(2)
7092                    if LA74 == IDENTIFIER:
7093                        LA74_220 = self.input.LA(3)
7094
7095                        if (self.synpred142()) :
7096                            alt74 = 1
7097                        elif (True) :
7098                            alt74 = 2
7099                        else:
7100                            if self.backtracking > 0:
7101                                self.failed = True
7102                                return
7103
7104                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 220, self.input)
7105
7106                            raise nvae
7107
7108                    elif LA74 == HEX_LITERAL:
7109                        LA74_221 = self.input.LA(3)
7110
7111                        if (self.synpred142()) :
7112                            alt74 = 1
7113                        elif (True) :
7114                            alt74 = 2
7115                        else:
7116                            if self.backtracking > 0:
7117                                self.failed = True
7118                                return
7119
7120                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 221, self.input)
7121
7122                            raise nvae
7123
7124                    elif LA74 == OCTAL_LITERAL:
7125                        LA74_222 = self.input.LA(3)
7126
7127                        if (self.synpred142()) :
7128                            alt74 = 1
7129                        elif (True) :
7130                            alt74 = 2
7131                        else:
7132                            if self.backtracking > 0:
7133                                self.failed = True
7134                                return
7135
7136                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 222, self.input)
7137
7138                            raise nvae
7139
7140                    elif LA74 == DECIMAL_LITERAL:
7141                        LA74_223 = self.input.LA(3)
7142
7143                        if (self.synpred142()) :
7144                            alt74 = 1
7145                        elif (True) :
7146                            alt74 = 2
7147                        else:
7148                            if self.backtracking > 0:
7149                                self.failed = True
7150                                return
7151
7152                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 223, self.input)
7153
7154                            raise nvae
7155
7156                    elif LA74 == CHARACTER_LITERAL:
7157                        LA74_224 = self.input.LA(3)
7158
7159                        if (self.synpred142()) :
7160                            alt74 = 1
7161                        elif (True) :
7162                            alt74 = 2
7163                        else:
7164                            if self.backtracking > 0:
7165                                self.failed = True
7166                                return
7167
7168                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 224, self.input)
7169
7170                            raise nvae
7171
7172                    elif LA74 == STRING_LITERAL:
7173                        LA74_225 = self.input.LA(3)
7174
7175                        if (self.synpred142()) :
7176                            alt74 = 1
7177                        elif (True) :
7178                            alt74 = 2
7179                        else:
7180                            if self.backtracking > 0:
7181                                self.failed = True
7182                                return
7183
7184                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 225, self.input)
7185
7186                            raise nvae
7187
7188                    elif LA74 == FLOATING_POINT_LITERAL:
7189                        LA74_226 = self.input.LA(3)
7190
7191                        if (self.synpred142()) :
7192                            alt74 = 1
7193                        elif (True) :
7194                            alt74 = 2
7195                        else:
7196                            if self.backtracking > 0:
7197                                self.failed = True
7198                                return
7199
7200                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 226, self.input)
7201
7202                            raise nvae
7203
7204                    elif LA74 == 62:
7205                        LA74_227 = self.input.LA(3)
7206
7207                        if (self.synpred142()) :
7208                            alt74 = 1
7209                        elif (True) :
7210                            alt74 = 2
7211                        else:
7212                            if self.backtracking > 0:
7213                                self.failed = True
7214                                return
7215
7216                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 227, self.input)
7217
7218                            raise nvae
7219
7220                    elif LA74 == 72:
7221                        LA74_228 = self.input.LA(3)
7222
7223                        if (self.synpred142()) :
7224                            alt74 = 1
7225                        elif (True) :
7226                            alt74 = 2
7227                        else:
7228                            if self.backtracking > 0:
7229                                self.failed = True
7230                                return
7231
7232                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 228, self.input)
7233
7234                            raise nvae
7235
7236                    elif LA74 == 73:
7237                        LA74_229 = self.input.LA(3)
7238
7239                        if (self.synpred142()) :
7240                            alt74 = 1
7241                        elif (True) :
7242                            alt74 = 2
7243                        else:
7244                            if self.backtracking > 0:
7245                                self.failed = True
7246                                return
7247
7248                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 229, self.input)
7249
7250                            raise nvae
7251
7252                    elif LA74 == 66 or LA74 == 68 or LA74 == 69 or LA74 == 77 or LA74 == 78 or LA74 == 79:
7253                        LA74_230 = self.input.LA(3)
7254
7255                        if (self.synpred142()) :
7256                            alt74 = 1
7257                        elif (True) :
7258                            alt74 = 2
7259                        else:
7260                            if self.backtracking > 0:
7261                                self.failed = True
7262                                return
7263
7264                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 230, self.input)
7265
7266                            raise nvae
7267
7268                    elif LA74 == 74:
7269                        LA74_231 = self.input.LA(3)
7270
7271                        if (self.synpred142()) :
7272                            alt74 = 1
7273                        elif (True) :
7274                            alt74 = 2
7275                        else:
7276                            if self.backtracking > 0:
7277                                self.failed = True
7278                                return
7279
7280                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 231, self.input)
7281
7282                            raise nvae
7283
7284                    elif LA74 == 34 or LA74 == 35 or LA74 == 36 or LA74 == 37 or LA74 == 38 or LA74 == 39 or LA74 == 40 or LA74 == 41 or LA74 == 42 or LA74 == 45 or LA74 == 46 or LA74 == 48 or LA74 == 49 or LA74 == 50 or LA74 == 51 or LA74 == 52 or LA74 == 53 or LA74 == 54 or LA74 == 55 or LA74 == 56 or LA74 == 57 or LA74 == 58 or LA74 == 59 or LA74 == 60 or LA74 == 61:
7285                        alt74 = 2
7286                    else:
7287                        if self.backtracking > 0:
7288                            self.failed = True
7289                            return
7290
7291                        nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 8, self.input)
7292
7293                        raise nvae
7294
7295                elif LA74 == 72:
7296                    LA74 = self.input.LA(2)
7297                    if LA74 == IDENTIFIER:
7298                        LA74_244 = self.input.LA(3)
7299
7300                        if (self.synpred142()) :
7301                            alt74 = 1
7302                        elif (True) :
7303                            alt74 = 2
7304                        else:
7305                            if self.backtracking > 0:
7306                                self.failed = True
7307                                return
7308
7309                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 244, self.input)
7310
7311                            raise nvae
7312
7313                    elif LA74 == HEX_LITERAL:
7314                        LA74_245 = self.input.LA(3)
7315
7316                        if (self.synpred142()) :
7317                            alt74 = 1
7318                        elif (True) :
7319                            alt74 = 2
7320                        else:
7321                            if self.backtracking > 0:
7322                                self.failed = True
7323                                return
7324
7325                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 245, self.input)
7326
7327                            raise nvae
7328
7329                    elif LA74 == OCTAL_LITERAL:
7330                        LA74_246 = self.input.LA(3)
7331
7332                        if (self.synpred142()) :
7333                            alt74 = 1
7334                        elif (True) :
7335                            alt74 = 2
7336                        else:
7337                            if self.backtracking > 0:
7338                                self.failed = True
7339                                return
7340
7341                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 246, self.input)
7342
7343                            raise nvae
7344
7345                    elif LA74 == DECIMAL_LITERAL:
7346                        LA74_247 = self.input.LA(3)
7347
7348                        if (self.synpred142()) :
7349                            alt74 = 1
7350                        elif (True) :
7351                            alt74 = 2
7352                        else:
7353                            if self.backtracking > 0:
7354                                self.failed = True
7355                                return
7356
7357                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 247, self.input)
7358
7359                            raise nvae
7360
7361                    elif LA74 == CHARACTER_LITERAL:
7362                        LA74_248 = self.input.LA(3)
7363
7364                        if (self.synpred142()) :
7365                            alt74 = 1
7366                        elif (True) :
7367                            alt74 = 2
7368                        else:
7369                            if self.backtracking > 0:
7370                                self.failed = True
7371                                return
7372
7373                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 248, self.input)
7374
7375                            raise nvae
7376
7377                    elif LA74 == STRING_LITERAL:
7378                        LA74_249 = self.input.LA(3)
7379
7380                        if (self.synpred142()) :
7381                            alt74 = 1
7382                        elif (True) :
7383                            alt74 = 2
7384                        else:
7385                            if self.backtracking > 0:
7386                                self.failed = True
7387                                return
7388
7389                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 249, self.input)
7390
7391                            raise nvae
7392
7393                    elif LA74 == FLOATING_POINT_LITERAL:
7394                        LA74_250 = self.input.LA(3)
7395
7396                        if (self.synpred142()) :
7397                            alt74 = 1
7398                        elif (True) :
7399                            alt74 = 2
7400                        else:
7401                            if self.backtracking > 0:
7402                                self.failed = True
7403                                return
7404
7405                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 250, self.input)
7406
7407                            raise nvae
7408
7409                    elif LA74 == 62:
7410                        LA74_251 = self.input.LA(3)
7411
7412                        if (self.synpred142()) :
7413                            alt74 = 1
7414                        elif (True) :
7415                            alt74 = 2
7416                        else:
7417                            if self.backtracking > 0:
7418                                self.failed = True
7419                                return
7420
7421                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 251, self.input)
7422
7423                            raise nvae
7424
7425                    elif LA74 == 72:
7426                        LA74_252 = self.input.LA(3)
7427
7428                        if (self.synpred142()) :
7429                            alt74 = 1
7430                        elif (True) :
7431                            alt74 = 2
7432                        else:
7433                            if self.backtracking > 0:
7434                                self.failed = True
7435                                return
7436
7437                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 252, self.input)
7438
7439                            raise nvae
7440
7441                    elif LA74 == 73:
7442                        LA74_253 = self.input.LA(3)
7443
7444                        if (self.synpred142()) :
7445                            alt74 = 1
7446                        elif (True) :
7447                            alt74 = 2
7448                        else:
7449                            if self.backtracking > 0:
7450                                self.failed = True
7451                                return
7452
7453                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 253, self.input)
7454
7455                            raise nvae
7456
7457                    elif LA74 == 66 or LA74 == 68 or LA74 == 69 or LA74 == 77 or LA74 == 78 or LA74 == 79:
7458                        LA74_254 = self.input.LA(3)
7459
7460                        if (self.synpred142()) :
7461                            alt74 = 1
7462                        elif (True) :
7463                            alt74 = 2
7464                        else:
7465                            if self.backtracking > 0:
7466                                self.failed = True
7467                                return
7468
7469                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 254, self.input)
7470
7471                            raise nvae
7472
7473                    elif LA74 == 74:
7474                        LA74_255 = self.input.LA(3)
7475
7476                        if (self.synpred142()) :
7477                            alt74 = 1
7478                        elif (True) :
7479                            alt74 = 2
7480                        else:
7481                            if self.backtracking > 0:
7482                                self.failed = True
7483                                return
7484
7485                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 255, self.input)
7486
7487                            raise nvae
7488
7489                    else:
7490                        if self.backtracking > 0:
7491                            self.failed = True
7492                            return
7493
7494                        nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 9, self.input)
7495
7496                        raise nvae
7497
7498                elif LA74 == 73:
7499                    LA74 = self.input.LA(2)
7500                    if LA74 == IDENTIFIER:
7501                        LA74_256 = self.input.LA(3)
7502
7503                        if (self.synpred142()) :
7504                            alt74 = 1
7505                        elif (True) :
7506                            alt74 = 2
7507                        else:
7508                            if self.backtracking > 0:
7509                                self.failed = True
7510                                return
7511
7512                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 256, self.input)
7513
7514                            raise nvae
7515
7516                    elif LA74 == HEX_LITERAL:
7517                        LA74_257 = self.input.LA(3)
7518
7519                        if (self.synpred142()) :
7520                            alt74 = 1
7521                        elif (True) :
7522                            alt74 = 2
7523                        else:
7524                            if self.backtracking > 0:
7525                                self.failed = True
7526                                return
7527
7528                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 257, self.input)
7529
7530                            raise nvae
7531
7532                    elif LA74 == OCTAL_LITERAL:
7533                        LA74_258 = self.input.LA(3)
7534
7535                        if (self.synpred142()) :
7536                            alt74 = 1
7537                        elif (True) :
7538                            alt74 = 2
7539                        else:
7540                            if self.backtracking > 0:
7541                                self.failed = True
7542                                return
7543
7544                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 258, self.input)
7545
7546                            raise nvae
7547
7548                    elif LA74 == DECIMAL_LITERAL:
7549                        LA74_259 = self.input.LA(3)
7550
7551                        if (self.synpred142()) :
7552                            alt74 = 1
7553                        elif (True) :
7554                            alt74 = 2
7555                        else:
7556                            if self.backtracking > 0:
7557                                self.failed = True
7558                                return
7559
7560                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 259, self.input)
7561
7562                            raise nvae
7563
7564                    elif LA74 == CHARACTER_LITERAL:
7565                        LA74_260 = self.input.LA(3)
7566
7567                        if (self.synpred142()) :
7568                            alt74 = 1
7569                        elif (True) :
7570                            alt74 = 2
7571                        else:
7572                            if self.backtracking > 0:
7573                                self.failed = True
7574                                return
7575
7576                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 260, self.input)
7577
7578                            raise nvae
7579
7580                    elif LA74 == STRING_LITERAL:
7581                        LA74_261 = self.input.LA(3)
7582
7583                        if (self.synpred142()) :
7584                            alt74 = 1
7585                        elif (True) :
7586                            alt74 = 2
7587                        else:
7588                            if self.backtracking > 0:
7589                                self.failed = True
7590                                return
7591
7592                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 261, self.input)
7593
7594                            raise nvae
7595
7596                    elif LA74 == FLOATING_POINT_LITERAL:
7597                        LA74_262 = self.input.LA(3)
7598
7599                        if (self.synpred142()) :
7600                            alt74 = 1
7601                        elif (True) :
7602                            alt74 = 2
7603                        else:
7604                            if self.backtracking > 0:
7605                                self.failed = True
7606                                return
7607
7608                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 262, self.input)
7609
7610                            raise nvae
7611
7612                    elif LA74 == 62:
7613                        LA74_263 = self.input.LA(3)
7614
7615                        if (self.synpred142()) :
7616                            alt74 = 1
7617                        elif (True) :
7618                            alt74 = 2
7619                        else:
7620                            if self.backtracking > 0:
7621                                self.failed = True
7622                                return
7623
7624                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 263, self.input)
7625
7626                            raise nvae
7627
7628                    elif LA74 == 72:
7629                        LA74_264 = self.input.LA(3)
7630
7631                        if (self.synpred142()) :
7632                            alt74 = 1
7633                        elif (True) :
7634                            alt74 = 2
7635                        else:
7636                            if self.backtracking > 0:
7637                                self.failed = True
7638                                return
7639
7640                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 264, self.input)
7641
7642                            raise nvae
7643
7644                    elif LA74 == 73:
7645                        LA74_265 = self.input.LA(3)
7646
7647                        if (self.synpred142()) :
7648                            alt74 = 1
7649                        elif (True) :
7650                            alt74 = 2
7651                        else:
7652                            if self.backtracking > 0:
7653                                self.failed = True
7654                                return
7655
7656                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 265, self.input)
7657
7658                            raise nvae
7659
7660                    elif LA74 == 66 or LA74 == 68 or LA74 == 69 or LA74 == 77 or LA74 == 78 or LA74 == 79:
7661                        LA74_266 = self.input.LA(3)
7662
7663                        if (self.synpred142()) :
7664                            alt74 = 1
7665                        elif (True) :
7666                            alt74 = 2
7667                        else:
7668                            if self.backtracking > 0:
7669                                self.failed = True
7670                                return
7671
7672                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 266, self.input)
7673
7674                            raise nvae
7675
7676                    elif LA74 == 74:
7677                        LA74_267 = self.input.LA(3)
7678
7679                        if (self.synpred142()) :
7680                            alt74 = 1
7681                        elif (True) :
7682                            alt74 = 2
7683                        else:
7684                            if self.backtracking > 0:
7685                                self.failed = True
7686                                return
7687
7688                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 267, self.input)
7689
7690                            raise nvae
7691
7692                    else:
7693                        if self.backtracking > 0:
7694                            self.failed = True
7695                            return
7696
7697                        nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 10, self.input)
7698
7699                        raise nvae
7700
7701                elif LA74 == 66 or LA74 == 68 or LA74 == 69 or LA74 == 77 or LA74 == 78 or LA74 == 79:
7702                    LA74 = self.input.LA(2)
7703                    if LA74 == 62:
7704                        LA74_268 = self.input.LA(3)
7705
7706                        if (self.synpred142()) :
7707                            alt74 = 1
7708                        elif (True) :
7709                            alt74 = 2
7710                        else:
7711                            if self.backtracking > 0:
7712                                self.failed = True
7713                                return
7714
7715                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 268, self.input)
7716
7717                            raise nvae
7718
7719                    elif LA74 == IDENTIFIER:
7720                        LA74_269 = self.input.LA(3)
7721
7722                        if (self.synpred142()) :
7723                            alt74 = 1
7724                        elif (True) :
7725                            alt74 = 2
7726                        else:
7727                            if self.backtracking > 0:
7728                                self.failed = True
7729                                return
7730
7731                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 269, self.input)
7732
7733                            raise nvae
7734
7735                    elif LA74 == HEX_LITERAL:
7736                        LA74_270 = self.input.LA(3)
7737
7738                        if (self.synpred142()) :
7739                            alt74 = 1
7740                        elif (True) :
7741                            alt74 = 2
7742                        else:
7743                            if self.backtracking > 0:
7744                                self.failed = True
7745                                return
7746
7747                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 270, self.input)
7748
7749                            raise nvae
7750
7751                    elif LA74 == OCTAL_LITERAL:
7752                        LA74_271 = self.input.LA(3)
7753
7754                        if (self.synpred142()) :
7755                            alt74 = 1
7756                        elif (True) :
7757                            alt74 = 2
7758                        else:
7759                            if self.backtracking > 0:
7760                                self.failed = True
7761                                return
7762
7763                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 271, self.input)
7764
7765                            raise nvae
7766
7767                    elif LA74 == DECIMAL_LITERAL:
7768                        LA74_272 = self.input.LA(3)
7769
7770                        if (self.synpred142()) :
7771                            alt74 = 1
7772                        elif (True) :
7773                            alt74 = 2
7774                        else:
7775                            if self.backtracking > 0:
7776                                self.failed = True
7777                                return
7778
7779                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 272, self.input)
7780
7781                            raise nvae
7782
7783                    elif LA74 == CHARACTER_LITERAL:
7784                        LA74_273 = self.input.LA(3)
7785
7786                        if (self.synpred142()) :
7787                            alt74 = 1
7788                        elif (True) :
7789                            alt74 = 2
7790                        else:
7791                            if self.backtracking > 0:
7792                                self.failed = True
7793                                return
7794
7795                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 273, self.input)
7796
7797                            raise nvae
7798
7799                    elif LA74 == STRING_LITERAL:
7800                        LA74_274 = self.input.LA(3)
7801
7802                        if (self.synpred142()) :
7803                            alt74 = 1
7804                        elif (True) :
7805                            alt74 = 2
7806                        else:
7807                            if self.backtracking > 0:
7808                                self.failed = True
7809                                return
7810
7811                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 274, self.input)
7812
7813                            raise nvae
7814
7815                    elif LA74 == FLOATING_POINT_LITERAL:
7816                        LA74_275 = self.input.LA(3)
7817
7818                        if (self.synpred142()) :
7819                            alt74 = 1
7820                        elif (True) :
7821                            alt74 = 2
7822                        else:
7823                            if self.backtracking > 0:
7824                                self.failed = True
7825                                return
7826
7827                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 275, self.input)
7828
7829                            raise nvae
7830
7831                    elif LA74 == 72:
7832                        LA74_276 = self.input.LA(3)
7833
7834                        if (self.synpred142()) :
7835                            alt74 = 1
7836                        elif (True) :
7837                            alt74 = 2
7838                        else:
7839                            if self.backtracking > 0:
7840                                self.failed = True
7841                                return
7842
7843                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 276, self.input)
7844
7845                            raise nvae
7846
7847                    elif LA74 == 73:
7848                        LA74_277 = self.input.LA(3)
7849
7850                        if (self.synpred142()) :
7851                            alt74 = 1
7852                        elif (True) :
7853                            alt74 = 2
7854                        else:
7855                            if self.backtracking > 0:
7856                                self.failed = True
7857                                return
7858
7859                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 277, self.input)
7860
7861                            raise nvae
7862
7863                    elif LA74 == 66 or LA74 == 68 or LA74 == 69 or LA74 == 77 or LA74 == 78 or LA74 == 79:
7864                        LA74_278 = self.input.LA(3)
7865
7866                        if (self.synpred142()) :
7867                            alt74 = 1
7868                        elif (True) :
7869                            alt74 = 2
7870                        else:
7871                            if self.backtracking > 0:
7872                                self.failed = True
7873                                return
7874
7875                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 278, self.input)
7876
7877                            raise nvae
7878
7879                    elif LA74 == 74:
7880                        LA74_279 = self.input.LA(3)
7881
7882                        if (self.synpred142()) :
7883                            alt74 = 1
7884                        elif (True) :
7885                            alt74 = 2
7886                        else:
7887                            if self.backtracking > 0:
7888                                self.failed = True
7889                                return
7890
7891                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 279, self.input)
7892
7893                            raise nvae
7894
7895                    else:
7896                        if self.backtracking > 0:
7897                            self.failed = True
7898                            return
7899
7900                        nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 11, self.input)
7901
7902                        raise nvae
7903
7904                elif LA74 == 74:
7905                    LA74 = self.input.LA(2)
7906                    if LA74 == 62:
7907                        LA74_280 = self.input.LA(3)
7908
7909                        if (self.synpred142()) :
7910                            alt74 = 1
7911                        elif (True) :
7912                            alt74 = 2
7913                        else:
7914                            if self.backtracking > 0:
7915                                self.failed = True
7916                                return
7917
7918                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 280, self.input)
7919
7920                            raise nvae
7921
7922                    elif LA74 == IDENTIFIER:
7923                        LA74_281 = self.input.LA(3)
7924
7925                        if (self.synpred142()) :
7926                            alt74 = 1
7927                        elif (True) :
7928                            alt74 = 2
7929                        else:
7930                            if self.backtracking > 0:
7931                                self.failed = True
7932                                return
7933
7934                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 281, self.input)
7935
7936                            raise nvae
7937
7938                    elif LA74 == HEX_LITERAL:
7939                        LA74_282 = self.input.LA(3)
7940
7941                        if (self.synpred142()) :
7942                            alt74 = 1
7943                        elif (True) :
7944                            alt74 = 2
7945                        else:
7946                            if self.backtracking > 0:
7947                                self.failed = True
7948                                return
7949
7950                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 282, self.input)
7951
7952                            raise nvae
7953
7954                    elif LA74 == OCTAL_LITERAL:
7955                        LA74_283 = self.input.LA(3)
7956
7957                        if (self.synpred142()) :
7958                            alt74 = 1
7959                        elif (True) :
7960                            alt74 = 2
7961                        else:
7962                            if self.backtracking > 0:
7963                                self.failed = True
7964                                return
7965
7966                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 283, self.input)
7967
7968                            raise nvae
7969
7970                    elif LA74 == DECIMAL_LITERAL:
7971                        LA74_284 = self.input.LA(3)
7972
7973                        if (self.synpred142()) :
7974                            alt74 = 1
7975                        elif (True) :
7976                            alt74 = 2
7977                        else:
7978                            if self.backtracking > 0:
7979                                self.failed = True
7980                                return
7981
7982                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 284, self.input)
7983
7984                            raise nvae
7985
7986                    elif LA74 == CHARACTER_LITERAL:
7987                        LA74_285 = self.input.LA(3)
7988
7989                        if (self.synpred142()) :
7990                            alt74 = 1
7991                        elif (True) :
7992                            alt74 = 2
7993                        else:
7994                            if self.backtracking > 0:
7995                                self.failed = True
7996                                return
7997
7998                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 285, self.input)
7999
8000                            raise nvae
8001
8002                    elif LA74 == STRING_LITERAL:
8003                        LA74_286 = self.input.LA(3)
8004
8005                        if (self.synpred142()) :
8006                            alt74 = 1
8007                        elif (True) :
8008                            alt74 = 2
8009                        else:
8010                            if self.backtracking > 0:
8011                                self.failed = True
8012                                return
8013
8014                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 286, self.input)
8015
8016                            raise nvae
8017
8018                    elif LA74 == FLOATING_POINT_LITERAL:
8019                        LA74_287 = self.input.LA(3)
8020
8021                        if (self.synpred142()) :
8022                            alt74 = 1
8023                        elif (True) :
8024                            alt74 = 2
8025                        else:
8026                            if self.backtracking > 0:
8027                                self.failed = True
8028                                return
8029
8030                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 287, self.input)
8031
8032                            raise nvae
8033
8034                    elif LA74 == 72:
8035                        LA74_288 = self.input.LA(3)
8036
8037                        if (self.synpred142()) :
8038                            alt74 = 1
8039                        elif (True) :
8040                            alt74 = 2
8041                        else:
8042                            if self.backtracking > 0:
8043                                self.failed = True
8044                                return
8045
8046                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 288, self.input)
8047
8048                            raise nvae
8049
8050                    elif LA74 == 73:
8051                        LA74_289 = self.input.LA(3)
8052
8053                        if (self.synpred142()) :
8054                            alt74 = 1
8055                        elif (True) :
8056                            alt74 = 2
8057                        else:
8058                            if self.backtracking > 0:
8059                                self.failed = True
8060                                return
8061
8062                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 289, self.input)
8063
8064                            raise nvae
8065
8066                    elif LA74 == 66 or LA74 == 68 or LA74 == 69 or LA74 == 77 or LA74 == 78 or LA74 == 79:
8067                        LA74_290 = self.input.LA(3)
8068
8069                        if (self.synpred142()) :
8070                            alt74 = 1
8071                        elif (True) :
8072                            alt74 = 2
8073                        else:
8074                            if self.backtracking > 0:
8075                                self.failed = True
8076                                return
8077
8078                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 290, self.input)
8079
8080                            raise nvae
8081
8082                    elif LA74 == 74:
8083                        LA74_291 = self.input.LA(3)
8084
8085                        if (self.synpred142()) :
8086                            alt74 = 1
8087                        elif (True) :
8088                            alt74 = 2
8089                        else:
8090                            if self.backtracking > 0:
8091                                self.failed = True
8092                                return
8093
8094                            nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 291, self.input)
8095
8096                            raise nvae
8097
8098                    else:
8099                        if self.backtracking > 0:
8100                            self.failed = True
8101                            return
8102
8103                        nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 12, self.input)
8104
8105                        raise nvae
8106
8107                else:
8108                    if self.backtracking > 0:
8109                        self.failed = True
8110                        return
8111
8112                    nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 0, self.input)
8113
8114                    raise nvae
8115
8116                if alt74 == 1:
8117                    # C.g:458:4: lvalue assignment_operator assignment_expression
8118                    self.following.append(self.FOLLOW_lvalue_in_assignment_expression1744)
8119                    self.lvalue()
8120                    self.following.pop()
8121                    if self.failed:
8122                        return
8123                    self.following.append(self.FOLLOW_assignment_operator_in_assignment_expression1746)
8124                    self.assignment_operator()
8125                    self.following.pop()
8126                    if self.failed:
8127                        return
8128                    self.following.append(self.FOLLOW_assignment_expression_in_assignment_expression1748)
8129                    self.assignment_expression()
8130                    self.following.pop()
8131                    if self.failed:
8132                        return
8133
8134
8135                elif alt74 == 2:
8136                    # C.g:459:4: conditional_expression
8137                    self.following.append(self.FOLLOW_conditional_expression_in_assignment_expression1753)
8138                    self.conditional_expression()
8139                    self.following.pop()
8140                    if self.failed:
8141                        return
8142
8143
8144
8145            except RecognitionException, re:
8146                self.reportError(re)
8147                self.recover(self.input, re)
8148        finally:
8149            if self.backtracking > 0:
8150                self.memoize(self.input, 48, assignment_expression_StartIndex)
8151
8152            pass
8153
8154        return
8155
8156    # $ANTLR end assignment_expression
8157
8158
8159    # $ANTLR start lvalue
8160    # C.g:462:1: lvalue : unary_expression ;
8161    def lvalue(self, ):
8162
8163        lvalue_StartIndex = self.input.index()
8164        try:
8165            try:
8166                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 49):
8167                    return
8168
8169                # C.g:463:2: ( unary_expression )
8170                # C.g:463:4: unary_expression
8171                self.following.append(self.FOLLOW_unary_expression_in_lvalue1765)
8172                self.unary_expression()
8173                self.following.pop()
8174                if self.failed:
8175                    return
8176
8177
8178
8179
8180            except RecognitionException, re:
8181                self.reportError(re)
8182                self.recover(self.input, re)
8183        finally:
8184            if self.backtracking > 0:
8185                self.memoize(self.input, 49, lvalue_StartIndex)
8186
8187            pass
8188
8189        return
8190
8191    # $ANTLR end lvalue
8192
8193
8194    # $ANTLR start assignment_operator
8195    # C.g:466:1: assignment_operator : ( '=' | '*=' | '/=' | '%=' | '+=' | '-=' | '<<=' | '>>=' | '&=' | '^=' | '|=' );
8196    def assignment_operator(self, ):
8197
8198        assignment_operator_StartIndex = self.input.index()
8199        try:
8200            try:
8201                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 50):
8202                    return
8203
8204                # C.g:467:2: ( '=' | '*=' | '/=' | '%=' | '+=' | '-=' | '<<=' | '>>=' | '&=' | '^=' | '|=' )
8205                # C.g:
8206                if self.input.LA(1) == 28 or (80 <= self.input.LA(1) <= 89):
8207                    self.input.consume();
8208                    self.errorRecovery = False
8209                    self.failed = False
8210
8211                else:
8212                    if self.backtracking > 0:
8213                        self.failed = True
8214                        return
8215
8216                    mse = MismatchedSetException(None, self.input)
8217                    self.recoverFromMismatchedSet(
8218                        self.input, mse, self.FOLLOW_set_in_assignment_operator0
8219                        )
8220                    raise mse
8221
8222
8223
8224
8225
8226
8227            except RecognitionException, re:
8228                self.reportError(re)
8229                self.recover(self.input, re)
8230        finally:
8231            if self.backtracking > 0:
8232                self.memoize(self.input, 50, assignment_operator_StartIndex)
8233
8234            pass
8235
8236        return
8237
8238    # $ANTLR end assignment_operator
8239
8240
8241    # $ANTLR start conditional_expression
8242    # C.g:480:1: conditional_expression : e= logical_or_expression ( '?' expression ':' conditional_expression )? ;
8243    def conditional_expression(self, ):
8244
8245        conditional_expression_StartIndex = self.input.index()
8246        e = None
8247
8248
8249        try:
8250            try:
8251                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 51):
8252                    return
8253
8254                # C.g:481:2: (e= logical_or_expression ( '?' expression ':' conditional_expression )? )
8255                # C.g:481:4: e= logical_or_expression ( '?' expression ':' conditional_expression )?
8256                self.following.append(self.FOLLOW_logical_or_expression_in_conditional_expression1839)
8257                e = self.logical_or_expression()
8258                self.following.pop()
8259                if self.failed:
8260                    return
8261                # C.g:481:28: ( '?' expression ':' conditional_expression )?
8262                alt75 = 2
8263                LA75_0 = self.input.LA(1)
8264
8265                if (LA75_0 == 90) :
8266                    alt75 = 1
8267                if alt75 == 1:
8268                    # C.g:481:29: '?' expression ':' conditional_expression
8269                    self.match(self.input, 90, self.FOLLOW_90_in_conditional_expression1842)
8270                    if self.failed:
8271                        return
8272                    self.following.append(self.FOLLOW_expression_in_conditional_expression1844)
8273                    self.expression()
8274                    self.following.pop()
8275                    if self.failed:
8276                        return
8277                    self.match(self.input, 47, self.FOLLOW_47_in_conditional_expression1846)
8278                    if self.failed:
8279                        return
8280                    self.following.append(self.FOLLOW_conditional_expression_in_conditional_expression1848)
8281                    self.conditional_expression()
8282                    self.following.pop()
8283                    if self.failed:
8284                        return
8285                    if self.backtracking == 0:
8286                        self.StorePredicateExpression(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start,e.stop))
8287
8288
8289
8290
8291
8292
8293
8294
8295            except RecognitionException, re:
8296                self.reportError(re)
8297                self.recover(self.input, re)
8298        finally:
8299            if self.backtracking > 0:
8300                self.memoize(self.input, 51, conditional_expression_StartIndex)
8301
8302            pass
8303
8304        return
8305
8306    # $ANTLR end conditional_expression
8307
8308    class logical_or_expression_return(object):
8309        def __init__(self):
8310            self.start = None
8311            self.stop = None
8312
8313
8314
8315    # $ANTLR start logical_or_expression
8316    # C.g:484:1: logical_or_expression : logical_and_expression ( '||' logical_and_expression )* ;
8317    def logical_or_expression(self, ):
8318
8319        retval = self.logical_or_expression_return()
8320        retval.start = self.input.LT(1)
8321        logical_or_expression_StartIndex = self.input.index()
8322        try:
8323            try:
8324                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 52):
8325                    return retval
8326
8327                # C.g:485:2: ( logical_and_expression ( '||' logical_and_expression )* )
8328                # C.g:485:4: logical_and_expression ( '||' logical_and_expression )*
8329                self.following.append(self.FOLLOW_logical_and_expression_in_logical_or_expression1863)
8330                self.logical_and_expression()
8331                self.following.pop()
8332                if self.failed:
8333                    return retval
8334                # C.g:485:27: ( '||' logical_and_expression )*
8335                while True: #loop76
8336                    alt76 = 2
8337                    LA76_0 = self.input.LA(1)
8338
8339                    if (LA76_0 == 91) :
8340                        alt76 = 1
8341
8342
8343                    if alt76 == 1:
8344                        # C.g:485:28: '||' logical_and_expression
8345                        self.match(self.input, 91, self.FOLLOW_91_in_logical_or_expression1866)
8346                        if self.failed:
8347                            return retval
8348                        self.following.append(self.FOLLOW_logical_and_expression_in_logical_or_expression1868)
8349                        self.logical_and_expression()
8350                        self.following.pop()
8351                        if self.failed:
8352                            return retval
8353
8354
8355                    else:
8356                        break #loop76
8357
8358
8359
8360
8361
8362                retval.stop = self.input.LT(-1)
8363
8364
8365            except RecognitionException, re:
8366                self.reportError(re)
8367                self.recover(self.input, re)
8368        finally:
8369            if self.backtracking > 0:
8370                self.memoize(self.input, 52, logical_or_expression_StartIndex)
8371
8372            pass
8373
8374        return retval
8375
8376    # $ANTLR end logical_or_expression
8377
8378
8379    # $ANTLR start logical_and_expression
8380    # C.g:488:1: logical_and_expression : inclusive_or_expression ( '&&' inclusive_or_expression )* ;
8381    def logical_and_expression(self, ):
8382
8383        logical_and_expression_StartIndex = self.input.index()
8384        try:
8385            try:
8386                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 53):
8387                    return
8388
8389                # C.g:489:2: ( inclusive_or_expression ( '&&' inclusive_or_expression )* )
8390                # C.g:489:4: inclusive_or_expression ( '&&' inclusive_or_expression )*
8391                self.following.append(self.FOLLOW_inclusive_or_expression_in_logical_and_expression1881)
8392                self.inclusive_or_expression()
8393                self.following.pop()
8394                if self.failed:
8395                    return
8396                # C.g:489:28: ( '&&' inclusive_or_expression )*
8397                while True: #loop77
8398                    alt77 = 2
8399                    LA77_0 = self.input.LA(1)
8400
8401                    if (LA77_0 == 92) :
8402                        alt77 = 1
8403
8404
8405                    if alt77 == 1:
8406                        # C.g:489:29: '&&' inclusive_or_expression
8407                        self.match(self.input, 92, self.FOLLOW_92_in_logical_and_expression1884)
8408                        if self.failed:
8409                            return
8410                        self.following.append(self.FOLLOW_inclusive_or_expression_in_logical_and_expression1886)
8411                        self.inclusive_or_expression()
8412                        self.following.pop()
8413                        if self.failed:
8414                            return
8415
8416
8417                    else:
8418                        break #loop77
8419
8420
8421
8422
8423
8424
8425            except RecognitionException, re:
8426                self.reportError(re)
8427                self.recover(self.input, re)
8428        finally:
8429            if self.backtracking > 0:
8430                self.memoize(self.input, 53, logical_and_expression_StartIndex)
8431
8432            pass
8433
8434        return
8435
8436    # $ANTLR end logical_and_expression
8437
8438
8439    # $ANTLR start inclusive_or_expression
8440    # C.g:492:1: inclusive_or_expression : exclusive_or_expression ( '|' exclusive_or_expression )* ;
8441    def inclusive_or_expression(self, ):
8442
8443        inclusive_or_expression_StartIndex = self.input.index()
8444        try:
8445            try:
8446                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 54):
8447                    return
8448
8449                # C.g:493:2: ( exclusive_or_expression ( '|' exclusive_or_expression )* )
8450                # C.g:493:4: exclusive_or_expression ( '|' exclusive_or_expression )*
8451                self.following.append(self.FOLLOW_exclusive_or_expression_in_inclusive_or_expression1899)
8452                self.exclusive_or_expression()
8453                self.following.pop()
8454                if self.failed:
8455                    return
8456                # C.g:493:28: ( '|' exclusive_or_expression )*
8457                while True: #loop78
8458                    alt78 = 2
8459                    LA78_0 = self.input.LA(1)
8460
8461                    if (LA78_0 == 93) :
8462                        alt78 = 1
8463
8464
8465                    if alt78 == 1:
8466                        # C.g:493:29: '|' exclusive_or_expression
8467                        self.match(self.input, 93, self.FOLLOW_93_in_inclusive_or_expression1902)
8468                        if self.failed:
8469                            return
8470                        self.following.append(self.FOLLOW_exclusive_or_expression_in_inclusive_or_expression1904)
8471                        self.exclusive_or_expression()
8472                        self.following.pop()
8473                        if self.failed:
8474                            return
8475
8476
8477                    else:
8478                        break #loop78
8479
8480
8481
8482
8483
8484
8485            except RecognitionException, re:
8486                self.reportError(re)
8487                self.recover(self.input, re)
8488        finally:
8489            if self.backtracking > 0:
8490                self.memoize(self.input, 54, inclusive_or_expression_StartIndex)
8491
8492            pass
8493
8494        return
8495
8496    # $ANTLR end inclusive_or_expression
8497
8498
8499    # $ANTLR start exclusive_or_expression
8500    # C.g:496:1: exclusive_or_expression : and_expression ( '^' and_expression )* ;
8501    def exclusive_or_expression(self, ):
8502
8503        exclusive_or_expression_StartIndex = self.input.index()
8504        try:
8505            try:
8506                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 55):
8507                    return
8508
8509                # C.g:497:2: ( and_expression ( '^' and_expression )* )
8510                # C.g:497:4: and_expression ( '^' and_expression )*
8511                self.following.append(self.FOLLOW_and_expression_in_exclusive_or_expression1917)
8512                self.and_expression()
8513                self.following.pop()
8514                if self.failed:
8515                    return
8516                # C.g:497:19: ( '^' and_expression )*
8517                while True: #loop79
8518                    alt79 = 2
8519                    LA79_0 = self.input.LA(1)
8520
8521                    if (LA79_0 == 94) :
8522                        alt79 = 1
8523
8524
8525                    if alt79 == 1:
8526                        # C.g:497:20: '^' and_expression
8527                        self.match(self.input, 94, self.FOLLOW_94_in_exclusive_or_expression1920)
8528                        if self.failed:
8529                            return
8530                        self.following.append(self.FOLLOW_and_expression_in_exclusive_or_expression1922)
8531                        self.and_expression()
8532                        self.following.pop()
8533                        if self.failed:
8534                            return
8535
8536
8537                    else:
8538                        break #loop79
8539
8540
8541
8542
8543
8544
8545            except RecognitionException, re:
8546                self.reportError(re)
8547                self.recover(self.input, re)
8548        finally:
8549            if self.backtracking > 0:
8550                self.memoize(self.input, 55, exclusive_or_expression_StartIndex)
8551
8552            pass
8553
8554        return
8555
8556    # $ANTLR end exclusive_or_expression
8557
8558
8559    # $ANTLR start and_expression
8560    # C.g:500:1: and_expression : equality_expression ( '&' equality_expression )* ;
8561    def and_expression(self, ):
8562
8563        and_expression_StartIndex = self.input.index()
8564        try:
8565            try:
8566                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 56):
8567                    return
8568
8569                # C.g:501:2: ( equality_expression ( '&' equality_expression )* )
8570                # C.g:501:4: equality_expression ( '&' equality_expression )*
8571                self.following.append(self.FOLLOW_equality_expression_in_and_expression1935)
8572                self.equality_expression()
8573                self.following.pop()
8574                if self.failed:
8575                    return
8576                # C.g:501:24: ( '&' equality_expression )*
8577                while True: #loop80
8578                    alt80 = 2
8579                    LA80_0 = self.input.LA(1)
8580
8581                    if (LA80_0 == 77) :
8582                        alt80 = 1
8583
8584
8585                    if alt80 == 1:
8586                        # C.g:501:25: '&' equality_expression
8587                        self.match(self.input, 77, self.FOLLOW_77_in_and_expression1938)
8588                        if self.failed:
8589                            return
8590                        self.following.append(self.FOLLOW_equality_expression_in_and_expression1940)
8591                        self.equality_expression()
8592                        self.following.pop()
8593                        if self.failed:
8594                            return
8595
8596
8597                    else:
8598                        break #loop80
8599
8600
8601
8602
8603
8604
8605            except RecognitionException, re:
8606                self.reportError(re)
8607                self.recover(self.input, re)
8608        finally:
8609            if self.backtracking > 0:
8610                self.memoize(self.input, 56, and_expression_StartIndex)
8611
8612            pass
8613
8614        return
8615
8616    # $ANTLR end and_expression
8617
8618
8619    # $ANTLR start equality_expression
8620    # C.g:503:1: equality_expression : relational_expression ( ( '==' | '!=' ) relational_expression )* ;
8621    def equality_expression(self, ):
8622
8623        equality_expression_StartIndex = self.input.index()
8624        try:
8625            try:
8626                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 57):
8627                    return
8628
8629                # C.g:504:2: ( relational_expression ( ( '==' | '!=' ) relational_expression )* )
8630                # C.g:504:4: relational_expression ( ( '==' | '!=' ) relational_expression )*
8631                self.following.append(self.FOLLOW_relational_expression_in_equality_expression1952)
8632                self.relational_expression()
8633                self.following.pop()
8634                if self.failed:
8635                    return
8636                # C.g:504:26: ( ( '==' | '!=' ) relational_expression )*
8637                while True: #loop81
8638                    alt81 = 2
8639                    LA81_0 = self.input.LA(1)
8640
8641                    if ((95 <= LA81_0 <= 96)) :
8642                        alt81 = 1
8643
8644
8645                    if alt81 == 1:
8646                        # C.g:504:27: ( '==' | '!=' ) relational_expression
8647                        if (95 <= self.input.LA(1) <= 96):
8648                            self.input.consume();
8649                            self.errorRecovery = False
8650                            self.failed = False
8651
8652                        else:
8653                            if self.backtracking > 0:
8654                                self.failed = True
8655                                return
8656
8657                            mse = MismatchedSetException(None, self.input)
8658                            self.recoverFromMismatchedSet(
8659                                self.input, mse, self.FOLLOW_set_in_equality_expression1955
8660                                )
8661                            raise mse
8662
8663
8664                        self.following.append(self.FOLLOW_relational_expression_in_equality_expression1961)
8665                        self.relational_expression()
8666                        self.following.pop()
8667                        if self.failed:
8668                            return
8669
8670
8671                    else:
8672                        break #loop81
8673
8674
8675
8676
8677
8678
8679            except RecognitionException, re:
8680                self.reportError(re)
8681                self.recover(self.input, re)
8682        finally:
8683            if self.backtracking > 0:
8684                self.memoize(self.input, 57, equality_expression_StartIndex)
8685
8686            pass
8687
8688        return
8689
8690    # $ANTLR end equality_expression
8691
8692
8693    # $ANTLR start relational_expression
8694    # C.g:507:1: relational_expression : shift_expression ( ( '<' | '>' | '<=' | '>=' ) shift_expression )* ;
8695    def relational_expression(self, ):
8696
8697        relational_expression_StartIndex = self.input.index()
8698        try:
8699            try:
8700                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 58):
8701                    return
8702
8703                # C.g:508:2: ( shift_expression ( ( '<' | '>' | '<=' | '>=' ) shift_expression )* )
8704                # C.g:508:4: shift_expression ( ( '<' | '>' | '<=' | '>=' ) shift_expression )*
8705                self.following.append(self.FOLLOW_shift_expression_in_relational_expression1975)
8706                self.shift_expression()
8707                self.following.pop()
8708                if self.failed:
8709                    return
8710                # C.g:508:21: ( ( '<' | '>' | '<=' | '>=' ) shift_expression )*
8711                while True: #loop82
8712                    alt82 = 2
8713                    LA82_0 = self.input.LA(1)
8714
8715                    if ((97 <= LA82_0 <= 100)) :
8716                        alt82 = 1
8717
8718
8719                    if alt82 == 1:
8720                        # C.g:508:22: ( '<' | '>' | '<=' | '>=' ) shift_expression
8721                        if (97 <= self.input.LA(1) <= 100):
8722                            self.input.consume();
8723                            self.errorRecovery = False
8724                            self.failed = False
8725
8726                        else:
8727                            if self.backtracking > 0:
8728                                self.failed = True
8729                                return
8730
8731                            mse = MismatchedSetException(None, self.input)
8732                            self.recoverFromMismatchedSet(
8733                                self.input, mse, self.FOLLOW_set_in_relational_expression1978
8734                                )
8735                            raise mse
8736
8737
8738                        self.following.append(self.FOLLOW_shift_expression_in_relational_expression1988)
8739                        self.shift_expression()
8740                        self.following.pop()
8741                        if self.failed:
8742                            return
8743
8744
8745                    else:
8746                        break #loop82
8747
8748
8749
8750
8751
8752
8753            except RecognitionException, re:
8754                self.reportError(re)
8755                self.recover(self.input, re)
8756        finally:
8757            if self.backtracking > 0:
8758                self.memoize(self.input, 58, relational_expression_StartIndex)
8759
8760            pass
8761
8762        return
8763
8764    # $ANTLR end relational_expression
8765
8766
8767    # $ANTLR start shift_expression
8768    # C.g:511:1: shift_expression : additive_expression ( ( '<<' | '>>' ) additive_expression )* ;
8769    def shift_expression(self, ):
8770
8771        shift_expression_StartIndex = self.input.index()
8772        try:
8773            try:
8774                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 59):
8775                    return
8776
8777                # C.g:512:2: ( additive_expression ( ( '<<' | '>>' ) additive_expression )* )
8778                # C.g:512:4: additive_expression ( ( '<<' | '>>' ) additive_expression )*
8779                self.following.append(self.FOLLOW_additive_expression_in_shift_expression2001)
8780                self.additive_expression()
8781                self.following.pop()
8782                if self.failed:
8783                    return
8784                # C.g:512:24: ( ( '<<' | '>>' ) additive_expression )*
8785                while True: #loop83
8786                    alt83 = 2
8787                    LA83_0 = self.input.LA(1)
8788
8789                    if ((101 <= LA83_0 <= 102)) :
8790                        alt83 = 1
8791
8792
8793                    if alt83 == 1:
8794                        # C.g:512:25: ( '<<' | '>>' ) additive_expression
8795                        if (101 <= self.input.LA(1) <= 102):
8796                            self.input.consume();
8797                            self.errorRecovery = False
8798                            self.failed = False
8799
8800                        else:
8801                            if self.backtracking > 0:
8802                                self.failed = True
8803                                return
8804
8805                            mse = MismatchedSetException(None, self.input)
8806                            self.recoverFromMismatchedSet(
8807                                self.input, mse, self.FOLLOW_set_in_shift_expression2004
8808                                )
8809                            raise mse
8810
8811
8812                        self.following.append(self.FOLLOW_additive_expression_in_shift_expression2010)
8813                        self.additive_expression()
8814                        self.following.pop()
8815                        if self.failed:
8816                            return
8817
8818
8819                    else:
8820                        break #loop83
8821
8822
8823
8824
8825
8826
8827            except RecognitionException, re:
8828                self.reportError(re)
8829                self.recover(self.input, re)
8830        finally:
8831            if self.backtracking > 0:
8832                self.memoize(self.input, 59, shift_expression_StartIndex)
8833
8834            pass
8835
8836        return
8837
8838    # $ANTLR end shift_expression
8839
8840
8841    # $ANTLR start statement
8842    # C.g:517:1: statement : ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | asm2_statement | asm1_statement | asm_statement | declaration );
8843    def statement(self, ):
8844
8845        statement_StartIndex = self.input.index()
8846        try:
8847            try:
8848                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 60):
8849                    return
8850
8851                # C.g:518:2: ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | asm2_statement | asm1_statement | asm_statement | declaration )
8852                alt84 = 11
8853                LA84 = self.input.LA(1)
8854                if LA84 == IDENTIFIER:
8855                    LA84 = self.input.LA(2)
8856                    if LA84 == 62:
8857                        LA84_43 = self.input.LA(3)
8858
8859                        if (self.synpred169()) :
8860                            alt84 = 3
8861                        elif (self.synpred173()) :
8862                            alt84 = 7
8863                        elif (self.synpred174()) :
8864                            alt84 = 8
8865                        elif (True) :
8866                            alt84 = 11
8867                        else:
8868                            if self.backtracking > 0:
8869                                self.failed = True
8870                                return
8871
8872                            nvae = NoViableAltException("517:1: statement : ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | asm2_statement | asm1_statement | asm_statement | declaration );", 84, 43, self.input)
8873
8874                            raise nvae
8875
8876                    elif LA84 == 47:
8877                        alt84 = 1
8878                    elif LA84 == STRING_LITERAL or LA84 == 27 or LA84 == 28 or LA84 == 64 or LA84 == 68 or LA84 == 69 or LA84 == 70 or LA84 == 71 or LA84 == 72 or LA84 == 73 or LA84 == 75 or LA84 == 76 or LA84 == 77 or LA84 == 80 or LA84 == 81 or LA84 == 82 or LA84 == 83 or LA84 == 84 or LA84 == 85 or LA84 == 86 or LA84 == 87 or LA84 == 88 or LA84 == 89 or LA84 == 90 or LA84 == 91 or LA84 == 92 or LA84 == 93 or LA84 == 94 or LA84 == 95 or LA84 == 96 or LA84 == 97 or LA84 == 98 or LA84 == 99 or LA84 == 100 or LA84 == 101 or LA84 == 102:
8879                        alt84 = 3
8880                    elif LA84 == 66:
8881                        LA84_47 = self.input.LA(3)
8882
8883                        if (self.synpred169()) :
8884                            alt84 = 3
8885                        elif (True) :
8886                            alt84 = 11
8887                        else:
8888                            if self.backtracking > 0:
8889                                self.failed = True
8890                                return
8891
8892                            nvae = NoViableAltException("517:1: statement : ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | asm2_statement | asm1_statement | asm_statement | declaration );", 84, 47, self.input)
8893
8894                            raise nvae
8895
8896                    elif LA84 == IDENTIFIER:
8897                        LA84_53 = self.input.LA(3)
8898
8899                        if (self.synpred169()) :
8900                            alt84 = 3
8901                        elif (True) :
8902                            alt84 = 11
8903                        else:
8904                            if self.backtracking > 0:
8905                                self.failed = True
8906                                return
8907
8908                            nvae = NoViableAltException("517:1: statement : ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | asm2_statement | asm1_statement | asm_statement | declaration );", 84, 53, self.input)
8909
8910                            raise nvae
8911
8912                    elif LA84 == 25:
8913                        LA84_68 = self.input.LA(3)
8914
8915                        if (self.synpred169()) :
8916                            alt84 = 3
8917                        elif (True) :
8918                            alt84 = 11
8919                        else:
8920                            if self.backtracking > 0:
8921                                self.failed = True
8922                                return
8923
8924                            nvae = NoViableAltException("517:1: statement : ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | asm2_statement | asm1_statement | asm_statement | declaration );", 84, 68, self.input)
8925
8926                            raise nvae
8927
8928                    elif LA84 == 29 or LA84 == 30 or LA84 == 31 or LA84 == 32 or LA84 == 33 or LA84 == 34 or LA84 == 35 or LA84 == 36 or LA84 == 37 or LA84 == 38 or LA84 == 39 or LA84 == 40 or LA84 == 41 or LA84 == 42 or LA84 == 45 or LA84 == 46 or LA84 == 48 or LA84 == 49 or LA84 == 50 or LA84 == 51 or LA84 == 52 or LA84 == 53 or LA84 == 54 or LA84 == 55 or LA84 == 56 or LA84 == 57 or LA84 == 58 or LA84 == 59 or LA84 == 60 or LA84 == 61:
8929                        alt84 = 11
8930                    else:
8931                        if self.backtracking > 0:
8932                            self.failed = True
8933                            return
8934
8935                        nvae = NoViableAltException("517:1: statement : ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | asm2_statement | asm1_statement | asm_statement | declaration );", 84, 1, self.input)
8936
8937                        raise nvae
8938
8939                elif LA84 == 106 or LA84 == 107:
8940                    alt84 = 1
8941                elif LA84 == 43:
8942                    alt84 = 2
8943                elif LA84 == HEX_LITERAL or LA84 == OCTAL_LITERAL or LA84 == DECIMAL_LITERAL or LA84 == CHARACTER_LITERAL or LA84 == STRING_LITERAL or LA84 == FLOATING_POINT_LITERAL or LA84 == 25 or LA84 == 62 or LA84 == 66 or LA84 == 68 or LA84 == 69 or LA84 == 72 or LA84 == 73 or LA84 == 74 or LA84 == 77 or LA84 == 78 or LA84 == 79:
8944                    alt84 = 3
8945                elif LA84 == 108 or LA84 == 110:
8946                    alt84 = 4
8947                elif LA84 == 111 or LA84 == 112 or LA84 == 113:
8948                    alt84 = 5
8949                elif LA84 == 114 or LA84 == 115 or LA84 == 116 or LA84 == 117:
8950                    alt84 = 6
8951                elif LA84 == 103:
8952                    alt84 = 8
8953                elif LA84 == 104:
8954                    alt84 = 9
8955                elif LA84 == 105:
8956                    alt84 = 10
8957                elif LA84 == 26 or LA84 == 29 or LA84 == 30 or LA84 == 31 or LA84 == 32 or LA84 == 33 or LA84 == 34 or LA84 == 35 or LA84 == 36 or LA84 == 37 or LA84 == 38 or LA84 == 39 or LA84 == 40 or LA84 == 41 or LA84 == 42 or LA84 == 45 or LA84 == 46 or LA84 == 48 or LA84 == 49 or LA84 == 50 or LA84 == 51 or LA84 == 52 or LA84 == 53 or LA84 == 54 or LA84 == 55 or LA84 == 56 or LA84 == 57 or LA84 == 58 or LA84 == 59 or LA84 == 60 or LA84 == 61:
8958                    alt84 = 11
8959                else:
8960                    if self.backtracking > 0:
8961                        self.failed = True
8962                        return
8963
8964                    nvae = NoViableAltException("517:1: statement : ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | asm2_statement | asm1_statement | asm_statement | declaration );", 84, 0, self.input)
8965
8966                    raise nvae
8967
8968                if alt84 == 1:
8969                    # C.g:518:4: labeled_statement
8970                    self.following.append(self.FOLLOW_labeled_statement_in_statement2025)
8971                    self.labeled_statement()
8972                    self.following.pop()
8973                    if self.failed:
8974                        return
8975
8976
8977                elif alt84 == 2:
8978                    # C.g:519:4: compound_statement
8979                    self.following.append(self.FOLLOW_compound_statement_in_statement2030)
8980                    self.compound_statement()
8981                    self.following.pop()
8982                    if self.failed:
8983                        return
8984
8985
8986                elif alt84 == 3:
8987                    # C.g:520:4: expression_statement
8988                    self.following.append(self.FOLLOW_expression_statement_in_statement2035)
8989                    self.expression_statement()
8990                    self.following.pop()
8991                    if self.failed:
8992                        return
8993
8994
8995                elif alt84 == 4:
8996                    # C.g:521:4: selection_statement
8997                    self.following.append(self.FOLLOW_selection_statement_in_statement2040)
8998                    self.selection_statement()
8999                    self.following.pop()
9000                    if self.failed:
9001                        return
9002
9003
9004                elif alt84 == 5:
9005                    # C.g:522:4: iteration_statement
9006                    self.following.append(self.FOLLOW_iteration_statement_in_statement2045)
9007                    self.iteration_statement()
9008                    self.following.pop()
9009                    if self.failed:
9010                        return
9011
9012
9013                elif alt84 == 6:
9014                    # C.g:523:4: jump_statement
9015                    self.following.append(self.FOLLOW_jump_statement_in_statement2050)
9016                    self.jump_statement()
9017                    self.following.pop()
9018                    if self.failed:
9019                        return
9020
9021
9022                elif alt84 == 7:
9023                    # C.g:524:4: macro_statement
9024                    self.following.append(self.FOLLOW_macro_statement_in_statement2055)
9025                    self.macro_statement()
9026                    self.following.pop()
9027                    if self.failed:
9028                        return
9029
9030
9031                elif alt84 == 8:
9032                    # C.g:525:4: asm2_statement
9033                    self.following.append(self.FOLLOW_asm2_statement_in_statement2060)
9034                    self.asm2_statement()
9035                    self.following.pop()
9036                    if self.failed:
9037                        return
9038
9039
9040                elif alt84 == 9:
9041                    # C.g:526:4: asm1_statement
9042                    self.following.append(self.FOLLOW_asm1_statement_in_statement2065)
9043                    self.asm1_statement()
9044                    self.following.pop()
9045                    if self.failed:
9046                        return
9047
9048
9049                elif alt84 == 10:
9050                    # C.g:527:4: asm_statement
9051                    self.following.append(self.FOLLOW_asm_statement_in_statement2070)
9052                    self.asm_statement()
9053                    self.following.pop()
9054                    if self.failed:
9055                        return
9056
9057
9058                elif alt84 == 11:
9059                    # C.g:528:4: declaration
9060                    self.following.append(self.FOLLOW_declaration_in_statement2075)
9061                    self.declaration()
9062                    self.following.pop()
9063                    if self.failed:
9064                        return
9065
9066
9067
9068            except RecognitionException, re:
9069                self.reportError(re)
9070                self.recover(self.input, re)
9071        finally:
9072            if self.backtracking > 0:
9073                self.memoize(self.input, 60, statement_StartIndex)
9074
9075            pass
9076
9077        return
9078
9079    # $ANTLR end statement
9080
9081
9082    # $ANTLR start asm2_statement
9083    # C.g:531:1: asm2_statement : ( '__asm__' )? IDENTIFIER '(' (~ ( ';' ) )* ')' ';' ;
9084    def asm2_statement(self, ):
9085
9086        asm2_statement_StartIndex = self.input.index()
9087        try:
9088            try:
9089                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 61):
9090                    return
9091
9092                # C.g:532:2: ( ( '__asm__' )? IDENTIFIER '(' (~ ( ';' ) )* ')' ';' )
9093                # C.g:532:4: ( '__asm__' )? IDENTIFIER '(' (~ ( ';' ) )* ')' ';'
9094                # C.g:532:4: ( '__asm__' )?
9095                alt85 = 2
9096                LA85_0 = self.input.LA(1)
9097
9098                if (LA85_0 == 103) :
9099                    alt85 = 1
9100                if alt85 == 1:
9101                    # C.g:0:0: '__asm__'
9102                    self.match(self.input, 103, self.FOLLOW_103_in_asm2_statement2086)
9103                    if self.failed:
9104                        return
9105
9106
9107
9108                self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_asm2_statement2089)
9109                if self.failed:
9110                    return
9111                self.match(self.input, 62, self.FOLLOW_62_in_asm2_statement2091)
9112                if self.failed:
9113                    return
9114                # C.g:532:30: (~ ( ';' ) )*
9115                while True: #loop86
9116                    alt86 = 2
9117                    LA86_0 = self.input.LA(1)
9118
9119                    if (LA86_0 == 63) :
9120                        LA86_1 = self.input.LA(2)
9121
9122                        if ((IDENTIFIER <= LA86_1 <= LINE_COMMAND) or (26 <= LA86_1 <= 117)) :
9123                            alt86 = 1
9124
9125
9126                    elif ((IDENTIFIER <= LA86_0 <= LINE_COMMAND) or (26 <= LA86_0 <= 62) or (64 <= LA86_0 <= 117)) :
9127                        alt86 = 1
9128
9129
9130                    if alt86 == 1:
9131                        # C.g:532:31: ~ ( ';' )
9132                        if (IDENTIFIER <= self.input.LA(1) <= LINE_COMMAND) or (26 <= self.input.LA(1) <= 117):
9133                            self.input.consume();
9134                            self.errorRecovery = False
9135                            self.failed = False
9136
9137                        else:
9138                            if self.backtracking > 0:
9139                                self.failed = True
9140                                return
9141
9142                            mse = MismatchedSetException(None, self.input)
9143                            self.recoverFromMismatchedSet(
9144                                self.input, mse, self.FOLLOW_set_in_asm2_statement2094
9145                                )
9146                            raise mse
9147
9148
9149
9150
9151                    else:
9152                        break #loop86
9153
9154
9155                self.match(self.input, 63, self.FOLLOW_63_in_asm2_statement2101)
9156                if self.failed:
9157                    return
9158                self.match(self.input, 25, self.FOLLOW_25_in_asm2_statement2103)
9159                if self.failed:
9160                    return
9161
9162
9163
9164
9165            except RecognitionException, re:
9166                self.reportError(re)
9167                self.recover(self.input, re)
9168        finally:
9169            if self.backtracking > 0:
9170                self.memoize(self.input, 61, asm2_statement_StartIndex)
9171
9172            pass
9173
9174        return
9175
9176    # $ANTLR end asm2_statement
9177
9178
9179    # $ANTLR start asm1_statement
9180    # C.g:535:1: asm1_statement : '_asm' '{' (~ ( '}' ) )* '}' ;
9181    def asm1_statement(self, ):
9182
9183        asm1_statement_StartIndex = self.input.index()
9184        try:
9185            try:
9186                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 62):
9187                    return
9188
9189                # C.g:536:2: ( '_asm' '{' (~ ( '}' ) )* '}' )
9190                # C.g:536:4: '_asm' '{' (~ ( '}' ) )* '}'
9191                self.match(self.input, 104, self.FOLLOW_104_in_asm1_statement2115)
9192                if self.failed:
9193                    return
9194                self.match(self.input, 43, self.FOLLOW_43_in_asm1_statement2117)
9195                if self.failed:
9196                    return
9197                # C.g:536:15: (~ ( '}' ) )*
9198                while True: #loop87
9199                    alt87 = 2
9200                    LA87_0 = self.input.LA(1)
9201
9202                    if ((IDENTIFIER <= LA87_0 <= 43) or (45 <= LA87_0 <= 117)) :
9203                        alt87 = 1
9204
9205
9206                    if alt87 == 1:
9207                        # C.g:536:16: ~ ( '}' )
9208                        if (IDENTIFIER <= self.input.LA(1) <= 43) or (45 <= self.input.LA(1) <= 117):
9209                            self.input.consume();
9210                            self.errorRecovery = False
9211                            self.failed = False
9212
9213                        else:
9214                            if self.backtracking > 0:
9215                                self.failed = True
9216                                return
9217
9218                            mse = MismatchedSetException(None, self.input)
9219                            self.recoverFromMismatchedSet(
9220                                self.input, mse, self.FOLLOW_set_in_asm1_statement2120
9221                                )
9222                            raise mse
9223
9224
9225
9226
9227                    else:
9228                        break #loop87
9229
9230
9231                self.match(self.input, 44, self.FOLLOW_44_in_asm1_statement2127)
9232                if self.failed:
9233                    return
9234
9235
9236
9237
9238            except RecognitionException, re:
9239                self.reportError(re)
9240                self.recover(self.input, re)
9241        finally:
9242            if self.backtracking > 0:
9243                self.memoize(self.input, 62, asm1_statement_StartIndex)
9244
9245            pass
9246
9247        return
9248
9249    # $ANTLR end asm1_statement
9250
9251
9252    # $ANTLR start asm_statement
9253    # C.g:539:1: asm_statement : '__asm' '{' (~ ( '}' ) )* '}' ;
9254    def asm_statement(self, ):
9255
9256        asm_statement_StartIndex = self.input.index()
9257        try:
9258            try:
9259                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 63):
9260                    return
9261
9262                # C.g:540:2: ( '__asm' '{' (~ ( '}' ) )* '}' )
9263                # C.g:540:4: '__asm' '{' (~ ( '}' ) )* '}'
9264                self.match(self.input, 105, self.FOLLOW_105_in_asm_statement2138)
9265                if self.failed:
9266                    return
9267                self.match(self.input, 43, self.FOLLOW_43_in_asm_statement2140)
9268                if self.failed:
9269                    return
9270                # C.g:540:16: (~ ( '}' ) )*
9271                while True: #loop88
9272                    alt88 = 2
9273                    LA88_0 = self.input.LA(1)
9274
9275                    if ((IDENTIFIER <= LA88_0 <= 43) or (45 <= LA88_0 <= 117)) :
9276                        alt88 = 1
9277
9278
9279                    if alt88 == 1:
9280                        # C.g:540:17: ~ ( '}' )
9281                        if (IDENTIFIER <= self.input.LA(1) <= 43) or (45 <= self.input.LA(1) <= 117):
9282                            self.input.consume();
9283                            self.errorRecovery = False
9284                            self.failed = False
9285
9286                        else:
9287                            if self.backtracking > 0:
9288                                self.failed = True
9289                                return
9290
9291                            mse = MismatchedSetException(None, self.input)
9292                            self.recoverFromMismatchedSet(
9293                                self.input, mse, self.FOLLOW_set_in_asm_statement2143
9294                                )
9295                            raise mse
9296
9297
9298
9299
9300                    else:
9301                        break #loop88
9302
9303
9304                self.match(self.input, 44, self.FOLLOW_44_in_asm_statement2150)
9305                if self.failed:
9306                    return
9307
9308
9309
9310
9311            except RecognitionException, re:
9312                self.reportError(re)
9313                self.recover(self.input, re)
9314        finally:
9315            if self.backtracking > 0:
9316                self.memoize(self.input, 63, asm_statement_StartIndex)
9317
9318            pass
9319
9320        return
9321
9322    # $ANTLR end asm_statement
9323
9324
9325    # $ANTLR start macro_statement
9326    # C.g:543:1: macro_statement : IDENTIFIER '(' ( declaration )* ( statement_list )? ( expression )? ')' ;
9327    def macro_statement(self, ):
9328
9329        macro_statement_StartIndex = self.input.index()
9330        try:
9331            try:
9332                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 64):
9333                    return
9334
9335                # C.g:544:2: ( IDENTIFIER '(' ( declaration )* ( statement_list )? ( expression )? ')' )
9336                # C.g:544:4: IDENTIFIER '(' ( declaration )* ( statement_list )? ( expression )? ')'
9337                self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_macro_statement2162)
9338                if self.failed:
9339                    return
9340                self.match(self.input, 62, self.FOLLOW_62_in_macro_statement2164)
9341                if self.failed:
9342                    return
9343                # C.g:544:19: ( declaration )*
9344                while True: #loop89
9345                    alt89 = 2
9346                    LA89 = self.input.LA(1)
9347                    if LA89 == IDENTIFIER:
9348                        LA89 = self.input.LA(2)
9349                        if LA89 == 62:
9350                            LA89_45 = self.input.LA(3)
9351
9352                            if (self.synpred181()) :
9353                                alt89 = 1
9354
9355
9356                        elif LA89 == IDENTIFIER:
9357                            LA89_47 = self.input.LA(3)
9358
9359                            if (self.synpred181()) :
9360                                alt89 = 1
9361
9362
9363                        elif LA89 == 66:
9364                            LA89_50 = self.input.LA(3)
9365
9366                            if (self.synpred181()) :
9367                                alt89 = 1
9368
9369
9370                        elif LA89 == 25:
9371                            LA89_68 = self.input.LA(3)
9372
9373                            if (self.synpred181()) :
9374                                alt89 = 1
9375
9376
9377                        elif LA89 == 58:
9378                            LA89_71 = self.input.LA(3)
9379
9380                            if (self.synpred181()) :
9381                                alt89 = 1
9382
9383
9384                        elif LA89 == 59:
9385                            LA89_72 = self.input.LA(3)
9386
9387                            if (self.synpred181()) :
9388                                alt89 = 1
9389
9390
9391                        elif LA89 == 60:
9392                            LA89_73 = self.input.LA(3)
9393
9394                            if (self.synpred181()) :
9395                                alt89 = 1
9396
9397
9398                        elif LA89 == 29 or LA89 == 30 or LA89 == 31 or LA89 == 32 or LA89 == 33:
9399                            LA89_74 = self.input.LA(3)
9400
9401                            if (self.synpred181()) :
9402                                alt89 = 1
9403
9404
9405                        elif LA89 == 34:
9406                            LA89_75 = self.input.LA(3)
9407
9408                            if (self.synpred181()) :
9409                                alt89 = 1
9410
9411
9412                        elif LA89 == 35:
9413                            LA89_76 = self.input.LA(3)
9414
9415                            if (self.synpred181()) :
9416                                alt89 = 1
9417
9418
9419                        elif LA89 == 36:
9420                            LA89_77 = self.input.LA(3)
9421
9422                            if (self.synpred181()) :
9423                                alt89 = 1
9424
9425
9426                        elif LA89 == 37:
9427                            LA89_78 = self.input.LA(3)
9428
9429                            if (self.synpred181()) :
9430                                alt89 = 1
9431
9432
9433                        elif LA89 == 38:
9434                            LA89_79 = self.input.LA(3)
9435
9436                            if (self.synpred181()) :
9437                                alt89 = 1
9438
9439
9440                        elif LA89 == 39:
9441                            LA89_80 = self.input.LA(3)
9442
9443                            if (self.synpred181()) :
9444                                alt89 = 1
9445
9446
9447                        elif LA89 == 40:
9448                            LA89_81 = self.input.LA(3)
9449
9450                            if (self.synpred181()) :
9451                                alt89 = 1
9452
9453
9454                        elif LA89 == 41:
9455                            LA89_82 = self.input.LA(3)
9456
9457                            if (self.synpred181()) :
9458                                alt89 = 1
9459
9460
9461                        elif LA89 == 42:
9462                            LA89_83 = self.input.LA(3)
9463
9464                            if (self.synpred181()) :
9465                                alt89 = 1
9466
9467
9468                        elif LA89 == 45 or LA89 == 46:
9469                            LA89_84 = self.input.LA(3)
9470
9471                            if (self.synpred181()) :
9472                                alt89 = 1
9473
9474
9475                        elif LA89 == 48:
9476                            LA89_85 = self.input.LA(3)
9477
9478                            if (self.synpred181()) :
9479                                alt89 = 1
9480
9481
9482                        elif LA89 == 49 or LA89 == 50 or LA89 == 51 or LA89 == 52 or LA89 == 53 or LA89 == 54 or LA89 == 55 or LA89 == 56 or LA89 == 57 or LA89 == 61:
9483                            LA89_86 = self.input.LA(3)
9484
9485                            if (self.synpred181()) :
9486                                alt89 = 1
9487
9488
9489
9490                    elif LA89 == 26:
9491                        LA89 = self.input.LA(2)
9492                        if LA89 == 29 or LA89 == 30 or LA89 == 31 or LA89 == 32 or LA89 == 33:
9493                            LA89_87 = self.input.LA(3)
9494
9495                            if (self.synpred181()) :
9496                                alt89 = 1
9497
9498
9499                        elif LA89 == 34:
9500                            LA89_88 = self.input.LA(3)
9501
9502                            if (self.synpred181()) :
9503                                alt89 = 1
9504
9505
9506                        elif LA89 == 35:
9507                            LA89_89 = self.input.LA(3)
9508
9509                            if (self.synpred181()) :
9510                                alt89 = 1
9511
9512
9513                        elif LA89 == 36:
9514                            LA89_90 = self.input.LA(3)
9515
9516                            if (self.synpred181()) :
9517                                alt89 = 1
9518
9519
9520                        elif LA89 == 37:
9521                            LA89_91 = self.input.LA(3)
9522
9523                            if (self.synpred181()) :
9524                                alt89 = 1
9525
9526
9527                        elif LA89 == 38:
9528                            LA89_92 = self.input.LA(3)
9529
9530                            if (self.synpred181()) :
9531                                alt89 = 1
9532
9533
9534                        elif LA89 == 39:
9535                            LA89_93 = self.input.LA(3)
9536
9537                            if (self.synpred181()) :
9538                                alt89 = 1
9539
9540
9541                        elif LA89 == 40:
9542                            LA89_94 = self.input.LA(3)
9543
9544                            if (self.synpred181()) :
9545                                alt89 = 1
9546
9547
9548                        elif LA89 == 41:
9549                            LA89_95 = self.input.LA(3)
9550
9551                            if (self.synpred181()) :
9552                                alt89 = 1
9553
9554
9555                        elif LA89 == 42:
9556                            LA89_96 = self.input.LA(3)
9557
9558                            if (self.synpred181()) :
9559                                alt89 = 1
9560
9561
9562                        elif LA89 == 45 or LA89 == 46:
9563                            LA89_97 = self.input.LA(3)
9564
9565                            if (self.synpred181()) :
9566                                alt89 = 1
9567
9568
9569                        elif LA89 == 48:
9570                            LA89_98 = self.input.LA(3)
9571
9572                            if (self.synpred181()) :
9573                                alt89 = 1
9574
9575
9576                        elif LA89 == IDENTIFIER:
9577                            LA89_99 = self.input.LA(3)
9578
9579                            if (self.synpred181()) :
9580                                alt89 = 1
9581
9582
9583                        elif LA89 == 58:
9584                            LA89_100 = self.input.LA(3)
9585
9586                            if (self.synpred181()) :
9587                                alt89 = 1
9588
9589
9590                        elif LA89 == 66:
9591                            LA89_101 = self.input.LA(3)
9592
9593                            if (self.synpred181()) :
9594                                alt89 = 1
9595
9596
9597                        elif LA89 == 59:
9598                            LA89_102 = self.input.LA(3)
9599
9600                            if (self.synpred181()) :
9601                                alt89 = 1
9602
9603
9604                        elif LA89 == 60:
9605                            LA89_103 = self.input.LA(3)
9606
9607                            if (self.synpred181()) :
9608                                alt89 = 1
9609
9610
9611                        elif LA89 == 49 or LA89 == 50 or LA89 == 51 or LA89 == 52 or LA89 == 53 or LA89 == 54 or LA89 == 55 or LA89 == 56 or LA89 == 57 or LA89 == 61:
9612                            LA89_104 = self.input.LA(3)
9613
9614                            if (self.synpred181()) :
9615                                alt89 = 1
9616
9617
9618                        elif LA89 == 62:
9619                            LA89_105 = self.input.LA(3)
9620
9621                            if (self.synpred181()) :
9622                                alt89 = 1
9623
9624
9625
9626                    elif LA89 == 29 or LA89 == 30 or LA89 == 31 or LA89 == 32 or LA89 == 33:
9627                        LA89 = self.input.LA(2)
9628                        if LA89 == 66:
9629                            LA89_106 = self.input.LA(3)
9630
9631                            if (self.synpred181()) :
9632                                alt89 = 1
9633
9634
9635                        elif LA89 == 58:
9636                            LA89_107 = self.input.LA(3)
9637
9638                            if (self.synpred181()) :
9639                                alt89 = 1
9640
9641
9642                        elif LA89 == 59:
9643                            LA89_108 = self.input.LA(3)
9644
9645                            if (self.synpred181()) :
9646                                alt89 = 1
9647
9648
9649                        elif LA89 == 60:
9650                            LA89_109 = self.input.LA(3)
9651
9652                            if (self.synpred181()) :
9653                                alt89 = 1
9654
9655
9656                        elif LA89 == IDENTIFIER:
9657                            LA89_110 = self.input.LA(3)
9658
9659                            if (self.synpred181()) :
9660                                alt89 = 1
9661
9662
9663                        elif LA89 == 62:
9664                            LA89_111 = self.input.LA(3)
9665
9666                            if (self.synpred181()) :
9667                                alt89 = 1
9668
9669
9670                        elif LA89 == 25:
9671                            LA89_112 = self.input.LA(3)
9672
9673                            if (self.synpred181()) :
9674                                alt89 = 1
9675
9676
9677                        elif LA89 == 29 or LA89 == 30 or LA89 == 31 or LA89 == 32 or LA89 == 33:
9678                            LA89_113 = self.input.LA(3)
9679
9680                            if (self.synpred181()) :
9681                                alt89 = 1
9682
9683
9684                        elif LA89 == 34:
9685                            LA89_114 = self.input.LA(3)
9686
9687                            if (self.synpred181()) :
9688                                alt89 = 1
9689
9690
9691                        elif LA89 == 35:
9692                            LA89_115 = self.input.LA(3)
9693
9694                            if (self.synpred181()) :
9695                                alt89 = 1
9696
9697
9698                        elif LA89 == 36:
9699                            LA89_116 = self.input.LA(3)
9700
9701                            if (self.synpred181()) :
9702                                alt89 = 1
9703
9704
9705                        elif LA89 == 37:
9706                            LA89_117 = self.input.LA(3)
9707
9708                            if (self.synpred181()) :
9709                                alt89 = 1
9710
9711
9712                        elif LA89 == 38:
9713                            LA89_118 = self.input.LA(3)
9714
9715                            if (self.synpred181()) :
9716                                alt89 = 1
9717
9718
9719                        elif LA89 == 39:
9720                            LA89_119 = self.input.LA(3)
9721
9722                            if (self.synpred181()) :
9723                                alt89 = 1
9724
9725
9726                        elif LA89 == 40:
9727                            LA89_120 = self.input.LA(3)
9728
9729                            if (self.synpred181()) :
9730                                alt89 = 1
9731
9732
9733                        elif LA89 == 41:
9734                            LA89_121 = self.input.LA(3)
9735
9736                            if (self.synpred181()) :
9737                                alt89 = 1
9738
9739
9740                        elif LA89 == 42:
9741                            LA89_122 = self.input.LA(3)
9742
9743                            if (self.synpred181()) :
9744                                alt89 = 1
9745
9746
9747                        elif LA89 == 45 or LA89 == 46:
9748                            LA89_123 = self.input.LA(3)
9749
9750                            if (self.synpred181()) :
9751                                alt89 = 1
9752
9753
9754                        elif LA89 == 48:
9755                            LA89_124 = self.input.LA(3)
9756
9757                            if (self.synpred181()) :
9758                                alt89 = 1
9759
9760
9761                        elif LA89 == 49 or LA89 == 50 or LA89 == 51 or LA89 == 52 or LA89 == 53 or LA89 == 54 or LA89 == 55 or LA89 == 56 or LA89 == 57 or LA89 == 61:
9762                            LA89_125 = self.input.LA(3)
9763
9764                            if (self.synpred181()) :
9765                                alt89 = 1
9766
9767
9768
9769                    elif LA89 == 34:
9770                        LA89 = self.input.LA(2)
9771                        if LA89 == 66:
9772                            LA89_126 = self.input.LA(3)
9773
9774                            if (self.synpred181()) :
9775                                alt89 = 1
9776
9777
9778                        elif LA89 == 58:
9779                            LA89_127 = self.input.LA(3)
9780
9781                            if (self.synpred181()) :
9782                                alt89 = 1
9783
9784
9785                        elif LA89 == 59:
9786                            LA89_128 = self.input.LA(3)
9787
9788                            if (self.synpred181()) :
9789                                alt89 = 1
9790
9791
9792                        elif LA89 == 60:
9793                            LA89_129 = self.input.LA(3)
9794
9795                            if (self.synpred181()) :
9796                                alt89 = 1
9797
9798
9799                        elif LA89 == IDENTIFIER:
9800                            LA89_130 = self.input.LA(3)
9801
9802                            if (self.synpred181()) :
9803                                alt89 = 1
9804
9805
9806                        elif LA89 == 62:
9807                            LA89_131 = self.input.LA(3)
9808
9809                            if (self.synpred181()) :
9810                                alt89 = 1
9811
9812
9813                        elif LA89 == 25:
9814                            LA89_132 = self.input.LA(3)
9815
9816                            if (self.synpred181()) :
9817                                alt89 = 1
9818
9819
9820                        elif LA89 == 29 or LA89 == 30 or LA89 == 31 or LA89 == 32 or LA89 == 33:
9821                            LA89_133 = self.input.LA(3)
9822
9823                            if (self.synpred181()) :
9824                                alt89 = 1
9825
9826
9827                        elif LA89 == 34:
9828                            LA89_134 = self.input.LA(3)
9829
9830                            if (self.synpred181()) :
9831                                alt89 = 1
9832
9833
9834                        elif LA89 == 35:
9835                            LA89_135 = self.input.LA(3)
9836
9837                            if (self.synpred181()) :
9838                                alt89 = 1
9839
9840
9841                        elif LA89 == 36:
9842                            LA89_136 = self.input.LA(3)
9843
9844                            if (self.synpred181()) :
9845                                alt89 = 1
9846
9847
9848                        elif LA89 == 37:
9849                            LA89_137 = self.input.LA(3)
9850
9851                            if (self.synpred181()) :
9852                                alt89 = 1
9853
9854
9855                        elif LA89 == 38:
9856                            LA89_138 = self.input.LA(3)
9857
9858                            if (self.synpred181()) :
9859                                alt89 = 1
9860
9861
9862                        elif LA89 == 39:
9863                            LA89_139 = self.input.LA(3)
9864
9865                            if (self.synpred181()) :
9866                                alt89 = 1
9867
9868
9869                        elif LA89 == 40:
9870                            LA89_140 = self.input.LA(3)
9871
9872                            if (self.synpred181()) :
9873                                alt89 = 1
9874
9875
9876                        elif LA89 == 41:
9877                            LA89_141 = self.input.LA(3)
9878
9879                            if (self.synpred181()) :
9880                                alt89 = 1
9881
9882
9883                        elif LA89 == 42:
9884                            LA89_142 = self.input.LA(3)
9885
9886                            if (self.synpred181()) :
9887                                alt89 = 1
9888
9889
9890                        elif LA89 == 45 or LA89 == 46:
9891                            LA89_143 = self.input.LA(3)
9892
9893                            if (self.synpred181()) :
9894                                alt89 = 1
9895
9896
9897                        elif LA89 == 48:
9898                            LA89_144 = self.input.LA(3)
9899
9900                            if (self.synpred181()) :
9901                                alt89 = 1
9902
9903
9904                        elif LA89 == 49 or LA89 == 50 or LA89 == 51 or LA89 == 52 or LA89 == 53 or LA89 == 54 or LA89 == 55 or LA89 == 56 or LA89 == 57 or LA89 == 61:
9905                            LA89_145 = self.input.LA(3)
9906
9907                            if (self.synpred181()) :
9908                                alt89 = 1
9909
9910
9911
9912                    elif LA89 == 35:
9913                        LA89 = self.input.LA(2)
9914                        if LA89 == 66:
9915                            LA89_146 = self.input.LA(3)
9916
9917                            if (self.synpred181()) :
9918                                alt89 = 1
9919
9920
9921                        elif LA89 == 58:
9922                            LA89_147 = self.input.LA(3)
9923
9924                            if (self.synpred181()) :
9925                                alt89 = 1
9926
9927
9928                        elif LA89 == 59:
9929                            LA89_148 = self.input.LA(3)
9930
9931                            if (self.synpred181()) :
9932                                alt89 = 1
9933
9934
9935                        elif LA89 == 60:
9936                            LA89_149 = self.input.LA(3)
9937
9938                            if (self.synpred181()) :
9939                                alt89 = 1
9940
9941
9942                        elif LA89 == IDENTIFIER:
9943                            LA89_150 = self.input.LA(3)
9944
9945                            if (self.synpred181()) :
9946                                alt89 = 1
9947
9948
9949                        elif LA89 == 62:
9950                            LA89_151 = self.input.LA(3)
9951
9952                            if (self.synpred181()) :
9953                                alt89 = 1
9954
9955
9956                        elif LA89 == 25:
9957                            LA89_152 = self.input.LA(3)
9958
9959                            if (self.synpred181()) :
9960                                alt89 = 1
9961
9962
9963                        elif LA89 == 29 or LA89 == 30 or LA89 == 31 or LA89 == 32 or LA89 == 33:
9964                            LA89_153 = self.input.LA(3)
9965
9966                            if (self.synpred181()) :
9967                                alt89 = 1
9968
9969
9970                        elif LA89 == 34:
9971                            LA89_154 = self.input.LA(3)
9972
9973                            if (self.synpred181()) :
9974                                alt89 = 1
9975
9976
9977                        elif LA89 == 35:
9978                            LA89_155 = self.input.LA(3)
9979
9980                            if (self.synpred181()) :
9981                                alt89 = 1
9982
9983
9984                        elif LA89 == 36:
9985                            LA89_156 = self.input.LA(3)
9986
9987                            if (self.synpred181()) :
9988                                alt89 = 1
9989
9990
9991                        elif LA89 == 37:
9992                            LA89_157 = self.input.LA(3)
9993
9994                            if (self.synpred181()) :
9995                                alt89 = 1
9996
9997
9998                        elif LA89 == 38:
9999                            LA89_158 = self.input.LA(3)
10000
10001                            if (self.synpred181()) :
10002                                alt89 = 1
10003
10004
10005                        elif LA89 == 39:
10006                            LA89_159 = self.input.LA(3)
10007
10008                            if (self.synpred181()) :
10009                                alt89 = 1
10010
10011
10012                        elif LA89 == 40:
10013                            LA89_160 = self.input.LA(3)
10014
10015                            if (self.synpred181()) :
10016                                alt89 = 1
10017
10018
10019                        elif LA89 == 41:
10020                            LA89_161 = self.input.LA(3)
10021
10022                            if (self.synpred181()) :
10023                                alt89 = 1
10024
10025
10026                        elif LA89 == 42:
10027                            LA89_162 = self.input.LA(3)
10028
10029                            if (self.synpred181()) :
10030                                alt89 = 1
10031
10032
10033                        elif LA89 == 45 or LA89 == 46:
10034                            LA89_163 = self.input.LA(3)
10035
10036                            if (self.synpred181()) :
10037                                alt89 = 1
10038
10039
10040                        elif LA89 == 48:
10041                            LA89_164 = self.input.LA(3)
10042
10043                            if (self.synpred181()) :
10044                                alt89 = 1
10045
10046
10047                        elif LA89 == 49 or LA89 == 50 or LA89 == 51 or LA89 == 52 or LA89 == 53 or LA89 == 54 or LA89 == 55 or LA89 == 56 or LA89 == 57 or LA89 == 61:
10048                            LA89_165 = self.input.LA(3)
10049
10050                            if (self.synpred181()) :
10051                                alt89 = 1
10052
10053
10054
10055                    elif LA89 == 36:
10056                        LA89 = self.input.LA(2)
10057                        if LA89 == 66:
10058                            LA89_166 = self.input.LA(3)
10059
10060                            if (self.synpred181()) :
10061                                alt89 = 1
10062
10063
10064                        elif LA89 == 58:
10065                            LA89_167 = self.input.LA(3)
10066
10067                            if (self.synpred181()) :
10068                                alt89 = 1
10069
10070
10071                        elif LA89 == 59:
10072                            LA89_168 = self.input.LA(3)
10073
10074                            if (self.synpred181()) :
10075                                alt89 = 1
10076
10077
10078                        elif LA89 == 60:
10079                            LA89_169 = self.input.LA(3)
10080
10081                            if (self.synpred181()) :
10082                                alt89 = 1
10083
10084
10085                        elif LA89 == IDENTIFIER:
10086                            LA89_170 = self.input.LA(3)
10087
10088                            if (self.synpred181()) :
10089                                alt89 = 1
10090
10091
10092                        elif LA89 == 62:
10093                            LA89_171 = self.input.LA(3)
10094
10095                            if (self.synpred181()) :
10096                                alt89 = 1
10097
10098
10099                        elif LA89 == 25:
10100                            LA89_172 = self.input.LA(3)
10101
10102                            if (self.synpred181()) :
10103                                alt89 = 1
10104
10105
10106                        elif LA89 == 29 or LA89 == 30 or LA89 == 31 or LA89 == 32 or LA89 == 33:
10107                            LA89_173 = self.input.LA(3)
10108
10109                            if (self.synpred181()) :
10110                                alt89 = 1
10111
10112
10113                        elif LA89 == 34:
10114                            LA89_174 = self.input.LA(3)
10115
10116                            if (self.synpred181()) :
10117                                alt89 = 1
10118
10119
10120                        elif LA89 == 35:
10121                            LA89_175 = self.input.LA(3)
10122
10123                            if (self.synpred181()) :
10124                                alt89 = 1
10125
10126
10127                        elif LA89 == 36:
10128                            LA89_176 = self.input.LA(3)
10129
10130                            if (self.synpred181()) :
10131                                alt89 = 1
10132
10133
10134                        elif LA89 == 37:
10135                            LA89_177 = self.input.LA(3)
10136
10137                            if (self.synpred181()) :
10138                                alt89 = 1
10139
10140
10141                        elif LA89 == 38:
10142                            LA89_178 = self.input.LA(3)
10143
10144                            if (self.synpred181()) :
10145                                alt89 = 1
10146
10147
10148                        elif LA89 == 39:
10149                            LA89_179 = self.input.LA(3)
10150
10151                            if (self.synpred181()) :
10152                                alt89 = 1
10153
10154
10155                        elif LA89 == 40:
10156                            LA89_180 = self.input.LA(3)
10157
10158                            if (self.synpred181()) :
10159                                alt89 = 1
10160
10161
10162                        elif LA89 == 41:
10163                            LA89_181 = self.input.LA(3)
10164
10165                            if (self.synpred181()) :
10166                                alt89 = 1
10167
10168
10169                        elif LA89 == 42:
10170                            LA89_182 = self.input.LA(3)
10171
10172                            if (self.synpred181()) :
10173                                alt89 = 1
10174
10175
10176                        elif LA89 == 45 or LA89 == 46:
10177                            LA89_183 = self.input.LA(3)
10178
10179                            if (self.synpred181()) :
10180                                alt89 = 1
10181
10182
10183                        elif LA89 == 48:
10184                            LA89_184 = self.input.LA(3)
10185
10186                            if (self.synpred181()) :
10187                                alt89 = 1
10188
10189
10190                        elif LA89 == 49 or LA89 == 50 or LA89 == 51 or LA89 == 52 or LA89 == 53 or LA89 == 54 or LA89 == 55 or LA89 == 56 or LA89 == 57 or LA89 == 61:
10191                            LA89_185 = self.input.LA(3)
10192
10193                            if (self.synpred181()) :
10194                                alt89 = 1
10195
10196
10197
10198                    elif LA89 == 37:
10199                        LA89 = self.input.LA(2)
10200                        if LA89 == 66:
10201                            LA89_186 = self.input.LA(3)
10202
10203                            if (self.synpred181()) :
10204                                alt89 = 1
10205
10206
10207                        elif LA89 == 58:
10208                            LA89_187 = self.input.LA(3)
10209
10210                            if (self.synpred181()) :
10211                                alt89 = 1
10212
10213
10214                        elif LA89 == 59:
10215                            LA89_188 = self.input.LA(3)
10216
10217                            if (self.synpred181()) :
10218                                alt89 = 1
10219
10220
10221                        elif LA89 == 60:
10222                            LA89_189 = self.input.LA(3)
10223
10224                            if (self.synpred181()) :
10225                                alt89 = 1
10226
10227
10228                        elif LA89 == IDENTIFIER:
10229                            LA89_190 = self.input.LA(3)
10230
10231                            if (self.synpred181()) :
10232                                alt89 = 1
10233
10234
10235                        elif LA89 == 62:
10236                            LA89_191 = self.input.LA(3)
10237
10238                            if (self.synpred181()) :
10239                                alt89 = 1
10240
10241
10242                        elif LA89 == 25:
10243                            LA89_192 = self.input.LA(3)
10244
10245                            if (self.synpred181()) :
10246                                alt89 = 1
10247
10248
10249                        elif LA89 == 29 or LA89 == 30 or LA89 == 31 or LA89 == 32 or LA89 == 33:
10250                            LA89_193 = self.input.LA(3)
10251
10252                            if (self.synpred181()) :
10253                                alt89 = 1
10254
10255
10256                        elif LA89 == 34:
10257                            LA89_194 = self.input.LA(3)
10258
10259                            if (self.synpred181()) :
10260                                alt89 = 1
10261
10262
10263                        elif LA89 == 35:
10264                            LA89_195 = self.input.LA(3)
10265
10266                            if (self.synpred181()) :
10267                                alt89 = 1
10268
10269
10270                        elif LA89 == 36:
10271                            LA89_196 = self.input.LA(3)
10272
10273                            if (self.synpred181()) :
10274                                alt89 = 1
10275
10276
10277                        elif LA89 == 37:
10278                            LA89_197 = self.input.LA(3)
10279
10280                            if (self.synpred181()) :
10281                                alt89 = 1
10282
10283
10284                        elif LA89 == 38:
10285                            LA89_198 = self.input.LA(3)
10286
10287                            if (self.synpred181()) :
10288                                alt89 = 1
10289
10290
10291                        elif LA89 == 39:
10292                            LA89_199 = self.input.LA(3)
10293
10294                            if (self.synpred181()) :
10295                                alt89 = 1
10296
10297
10298                        elif LA89 == 40:
10299                            LA89_200 = self.input.LA(3)
10300
10301                            if (self.synpred181()) :
10302                                alt89 = 1
10303
10304
10305                        elif LA89 == 41:
10306                            LA89_201 = self.input.LA(3)
10307
10308                            if (self.synpred181()) :
10309                                alt89 = 1
10310
10311
10312                        elif LA89 == 42:
10313                            LA89_202 = self.input.LA(3)
10314
10315                            if (self.synpred181()) :
10316                                alt89 = 1
10317
10318
10319                        elif LA89 == 45 or LA89 == 46:
10320                            LA89_203 = self.input.LA(3)
10321
10322                            if (self.synpred181()) :
10323                                alt89 = 1
10324
10325
10326                        elif LA89 == 48:
10327                            LA89_204 = self.input.LA(3)
10328
10329                            if (self.synpred181()) :
10330                                alt89 = 1
10331
10332
10333                        elif LA89 == 49 or LA89 == 50 or LA89 == 51 or LA89 == 52 or LA89 == 53 or LA89 == 54 or LA89 == 55 or LA89 == 56 or LA89 == 57 or LA89 == 61:
10334                            LA89_205 = self.input.LA(3)
10335
10336                            if (self.synpred181()) :
10337                                alt89 = 1
10338
10339
10340
10341                    elif LA89 == 38:
10342                        LA89 = self.input.LA(2)
10343                        if LA89 == 66:
10344                            LA89_206 = self.input.LA(3)
10345
10346                            if (self.synpred181()) :
10347                                alt89 = 1
10348
10349
10350                        elif LA89 == 58:
10351                            LA89_207 = self.input.LA(3)
10352
10353                            if (self.synpred181()) :
10354                                alt89 = 1
10355
10356
10357                        elif LA89 == 59:
10358                            LA89_208 = self.input.LA(3)
10359
10360                            if (self.synpred181()) :
10361                                alt89 = 1
10362
10363
10364                        elif LA89 == 60:
10365                            LA89_209 = self.input.LA(3)
10366
10367                            if (self.synpred181()) :
10368                                alt89 = 1
10369
10370
10371                        elif LA89 == IDENTIFIER:
10372                            LA89_210 = self.input.LA(3)
10373
10374                            if (self.synpred181()) :
10375                                alt89 = 1
10376
10377
10378                        elif LA89 == 62:
10379                            LA89_211 = self.input.LA(3)
10380
10381                            if (self.synpred181()) :
10382                                alt89 = 1
10383
10384
10385                        elif LA89 == 25:
10386                            LA89_212 = self.input.LA(3)
10387
10388                            if (self.synpred181()) :
10389                                alt89 = 1
10390
10391
10392                        elif LA89 == 29 or LA89 == 30 or LA89 == 31 or LA89 == 32 or LA89 == 33:
10393                            LA89_213 = self.input.LA(3)
10394
10395                            if (self.synpred181()) :
10396                                alt89 = 1
10397
10398
10399                        elif LA89 == 34:
10400                            LA89_214 = self.input.LA(3)
10401
10402                            if (self.synpred181()) :
10403                                alt89 = 1
10404
10405
10406                        elif LA89 == 35:
10407                            LA89_215 = self.input.LA(3)
10408
10409                            if (self.synpred181()) :
10410                                alt89 = 1
10411
10412
10413                        elif LA89 == 36:
10414                            LA89_216 = self.input.LA(3)
10415
10416                            if (self.synpred181()) :
10417                                alt89 = 1
10418
10419
10420                        elif LA89 == 37:
10421                            LA89_217 = self.input.LA(3)
10422
10423                            if (self.synpred181()) :
10424                                alt89 = 1
10425
10426
10427                        elif LA89 == 38:
10428                            LA89_218 = self.input.LA(3)
10429
10430                            if (self.synpred181()) :
10431                                alt89 = 1
10432
10433
10434                        elif LA89 == 39:
10435                            LA89_219 = self.input.LA(3)
10436
10437                            if (self.synpred181()) :
10438                                alt89 = 1
10439
10440
10441                        elif LA89 == 40:
10442                            LA89_220 = self.input.LA(3)
10443
10444                            if (self.synpred181()) :
10445                                alt89 = 1
10446
10447
10448                        elif LA89 == 41:
10449                            LA89_221 = self.input.LA(3)
10450
10451                            if (self.synpred181()) :
10452                                alt89 = 1
10453
10454
10455                        elif LA89 == 42:
10456                            LA89_222 = self.input.LA(3)
10457
10458                            if (self.synpred181()) :
10459                                alt89 = 1
10460
10461
10462                        elif LA89 == 45 or LA89 == 46:
10463                            LA89_223 = self.input.LA(3)
10464
10465                            if (self.synpred181()) :
10466                                alt89 = 1
10467
10468
10469                        elif LA89 == 48:
10470                            LA89_224 = self.input.LA(3)
10471
10472                            if (self.synpred181()) :
10473                                alt89 = 1
10474
10475
10476                        elif LA89 == 49 or LA89 == 50 or LA89 == 51 or LA89 == 52 or LA89 == 53 or LA89 == 54 or LA89 == 55 or LA89 == 56 or LA89 == 57 or LA89 == 61:
10477                            LA89_225 = self.input.LA(3)
10478
10479                            if (self.synpred181()) :
10480                                alt89 = 1
10481
10482
10483
10484                    elif LA89 == 39:
10485                        LA89 = self.input.LA(2)
10486                        if LA89 == 66:
10487                            LA89_226 = self.input.LA(3)
10488
10489                            if (self.synpred181()) :
10490                                alt89 = 1
10491
10492
10493                        elif LA89 == 58:
10494                            LA89_227 = self.input.LA(3)
10495
10496                            if (self.synpred181()) :
10497                                alt89 = 1
10498
10499
10500                        elif LA89 == 59:
10501                            LA89_228 = self.input.LA(3)
10502
10503                            if (self.synpred181()) :
10504                                alt89 = 1
10505
10506
10507                        elif LA89 == 60:
10508                            LA89_229 = self.input.LA(3)
10509
10510                            if (self.synpred181()) :
10511                                alt89 = 1
10512
10513
10514                        elif LA89 == IDENTIFIER:
10515                            LA89_230 = self.input.LA(3)
10516
10517                            if (self.synpred181()) :
10518                                alt89 = 1
10519
10520
10521                        elif LA89 == 62:
10522                            LA89_231 = self.input.LA(3)
10523
10524                            if (self.synpred181()) :
10525                                alt89 = 1
10526
10527
10528                        elif LA89 == 25:
10529                            LA89_232 = self.input.LA(3)
10530
10531                            if (self.synpred181()) :
10532                                alt89 = 1
10533
10534
10535                        elif LA89 == 29 or LA89 == 30 or LA89 == 31 or LA89 == 32 or LA89 == 33:
10536                            LA89_233 = self.input.LA(3)
10537
10538                            if (self.synpred181()) :
10539                                alt89 = 1
10540
10541
10542                        elif LA89 == 34:
10543                            LA89_234 = self.input.LA(3)
10544
10545                            if (self.synpred181()) :
10546                                alt89 = 1
10547
10548
10549                        elif LA89 == 35:
10550                            LA89_235 = self.input.LA(3)
10551
10552                            if (self.synpred181()) :
10553                                alt89 = 1
10554
10555
10556                        elif LA89 == 36:
10557                            LA89_236 = self.input.LA(3)
10558
10559                            if (self.synpred181()) :
10560                                alt89 = 1
10561
10562
10563                        elif LA89 == 37:
10564                            LA89_237 = self.input.LA(3)
10565
10566                            if (self.synpred181()) :
10567                                alt89 = 1
10568
10569
10570                        elif LA89 == 38:
10571                            LA89_238 = self.input.LA(3)
10572
10573                            if (self.synpred181()) :
10574                                alt89 = 1
10575
10576
10577                        elif LA89 == 39:
10578                            LA89_239 = self.input.LA(3)
10579
10580                            if (self.synpred181()) :
10581                                alt89 = 1
10582
10583
10584                        elif LA89 == 40:
10585                            LA89_240 = self.input.LA(3)
10586
10587                            if (self.synpred181()) :
10588                                alt89 = 1
10589
10590
10591                        elif LA89 == 41:
10592                            LA89_241 = self.input.LA(3)
10593
10594                            if (self.synpred181()) :
10595                                alt89 = 1
10596
10597
10598                        elif LA89 == 42:
10599                            LA89_242 = self.input.LA(3)
10600
10601                            if (self.synpred181()) :
10602                                alt89 = 1
10603
10604
10605                        elif LA89 == 45 or LA89 == 46:
10606                            LA89_243 = self.input.LA(3)
10607
10608                            if (self.synpred181()) :
10609                                alt89 = 1
10610
10611
10612                        elif LA89 == 48:
10613                            LA89_244 = self.input.LA(3)
10614
10615                            if (self.synpred181()) :
10616                                alt89 = 1
10617
10618
10619                        elif LA89 == 49 or LA89 == 50 or LA89 == 51 or LA89 == 52 or LA89 == 53 or LA89 == 54 or LA89 == 55 or LA89 == 56 or LA89 == 57 or LA89 == 61:
10620                            LA89_245 = self.input.LA(3)
10621
10622                            if (self.synpred181()) :
10623                                alt89 = 1
10624
10625
10626
10627                    elif LA89 == 40:
10628                        LA89 = self.input.LA(2)
10629                        if LA89 == 66:
10630                            LA89_246 = self.input.LA(3)
10631
10632                            if (self.synpred181()) :
10633                                alt89 = 1
10634
10635
10636                        elif LA89 == 58:
10637                            LA89_247 = self.input.LA(3)
10638
10639                            if (self.synpred181()) :
10640                                alt89 = 1
10641
10642
10643                        elif LA89 == 59:
10644                            LA89_248 = self.input.LA(3)
10645
10646                            if (self.synpred181()) :
10647                                alt89 = 1
10648
10649
10650                        elif LA89 == 60:
10651                            LA89_249 = self.input.LA(3)
10652
10653                            if (self.synpred181()) :
10654                                alt89 = 1
10655
10656
10657                        elif LA89 == IDENTIFIER:
10658                            LA89_250 = self.input.LA(3)
10659
10660                            if (self.synpred181()) :
10661                                alt89 = 1
10662
10663
10664                        elif LA89 == 62:
10665                            LA89_251 = self.input.LA(3)
10666
10667                            if (self.synpred181()) :
10668                                alt89 = 1
10669
10670
10671                        elif LA89 == 25:
10672                            LA89_252 = self.input.LA(3)
10673
10674                            if (self.synpred181()) :
10675                                alt89 = 1
10676
10677
10678                        elif LA89 == 29 or LA89 == 30 or LA89 == 31 or LA89 == 32 or LA89 == 33:
10679                            LA89_253 = self.input.LA(3)
10680
10681                            if (self.synpred181()) :
10682                                alt89 = 1
10683
10684
10685                        elif LA89 == 34:
10686                            LA89_254 = self.input.LA(3)
10687
10688                            if (self.synpred181()) :
10689                                alt89 = 1
10690
10691
10692                        elif LA89 == 35:
10693                            LA89_255 = self.input.LA(3)
10694
10695                            if (self.synpred181()) :
10696                                alt89 = 1
10697
10698
10699                        elif LA89 == 36:
10700                            LA89_256 = self.input.LA(3)
10701
10702                            if (self.synpred181()) :
10703                                alt89 = 1
10704
10705
10706                        elif LA89 == 37:
10707                            LA89_257 = self.input.LA(3)
10708
10709                            if (self.synpred181()) :
10710                                alt89 = 1
10711
10712
10713                        elif LA89 == 38:
10714                            LA89_258 = self.input.LA(3)
10715
10716                            if (self.synpred181()) :
10717                                alt89 = 1
10718
10719
10720                        elif LA89 == 39:
10721                            LA89_259 = self.input.LA(3)
10722
10723                            if (self.synpred181()) :
10724                                alt89 = 1
10725
10726
10727                        elif LA89 == 40:
10728                            LA89_260 = self.input.LA(3)
10729
10730                            if (self.synpred181()) :
10731                                alt89 = 1
10732
10733
10734                        elif LA89 == 41:
10735                            LA89_261 = self.input.LA(3)
10736
10737                            if (self.synpred181()) :
10738                                alt89 = 1
10739
10740
10741                        elif LA89 == 42:
10742                            LA89_262 = self.input.LA(3)
10743
10744                            if (self.synpred181()) :
10745                                alt89 = 1
10746
10747
10748                        elif LA89 == 45 or LA89 == 46:
10749                            LA89_263 = self.input.LA(3)
10750
10751                            if (self.synpred181()) :
10752                                alt89 = 1
10753
10754
10755                        elif LA89 == 48:
10756                            LA89_264 = self.input.LA(3)
10757
10758                            if (self.synpred181()) :
10759                                alt89 = 1
10760
10761
10762                        elif LA89 == 49 or LA89 == 50 or LA89 == 51 or LA89 == 52 or LA89 == 53 or LA89 == 54 or LA89 == 55 or LA89 == 56 or LA89 == 57 or LA89 == 61:
10763                            LA89_265 = self.input.LA(3)
10764
10765                            if (self.synpred181()) :
10766                                alt89 = 1
10767
10768
10769
10770                    elif LA89 == 41:
10771                        LA89 = self.input.LA(2)
10772                        if LA89 == 66:
10773                            LA89_266 = self.input.LA(3)
10774
10775                            if (self.synpred181()) :
10776                                alt89 = 1
10777
10778
10779                        elif LA89 == 58:
10780                            LA89_267 = self.input.LA(3)
10781
10782                            if (self.synpred181()) :
10783                                alt89 = 1
10784
10785
10786                        elif LA89 == 59:
10787                            LA89_268 = self.input.LA(3)
10788
10789                            if (self.synpred181()) :
10790                                alt89 = 1
10791
10792
10793                        elif LA89 == 60:
10794                            LA89_269 = self.input.LA(3)
10795
10796                            if (self.synpred181()) :
10797                                alt89 = 1
10798
10799
10800                        elif LA89 == IDENTIFIER:
10801                            LA89_270 = self.input.LA(3)
10802
10803                            if (self.synpred181()) :
10804                                alt89 = 1
10805
10806
10807                        elif LA89 == 62:
10808                            LA89_271 = self.input.LA(3)
10809
10810                            if (self.synpred181()) :
10811                                alt89 = 1
10812
10813
10814                        elif LA89 == 25:
10815                            LA89_272 = self.input.LA(3)
10816
10817                            if (self.synpred181()) :
10818                                alt89 = 1
10819
10820
10821                        elif LA89 == 29 or LA89 == 30 or LA89 == 31 or LA89 == 32 or LA89 == 33:
10822                            LA89_273 = self.input.LA(3)
10823
10824                            if (self.synpred181()) :
10825                                alt89 = 1
10826
10827
10828                        elif LA89 == 34:
10829                            LA89_274 = self.input.LA(3)
10830
10831                            if (self.synpred181()) :
10832                                alt89 = 1
10833
10834
10835                        elif LA89 == 35:
10836                            LA89_275 = self.input.LA(3)
10837
10838                            if (self.synpred181()) :
10839                                alt89 = 1
10840
10841
10842                        elif LA89 == 36:
10843                            LA89_276 = self.input.LA(3)
10844
10845                            if (self.synpred181()) :
10846                                alt89 = 1
10847
10848
10849                        elif LA89 == 37:
10850                            LA89_277 = self.input.LA(3)
10851
10852                            if (self.synpred181()) :
10853                                alt89 = 1
10854
10855
10856                        elif LA89 == 38:
10857                            LA89_278 = self.input.LA(3)
10858
10859                            if (self.synpred181()) :
10860                                alt89 = 1
10861
10862
10863                        elif LA89 == 39:
10864                            LA89_279 = self.input.LA(3)
10865
10866                            if (self.synpred181()) :
10867                                alt89 = 1
10868
10869
10870                        elif LA89 == 40:
10871                            LA89_280 = self.input.LA(3)
10872
10873                            if (self.synpred181()) :
10874                                alt89 = 1
10875
10876
10877                        elif LA89 == 41:
10878                            LA89_281 = self.input.LA(3)
10879
10880                            if (self.synpred181()) :
10881                                alt89 = 1
10882
10883
10884                        elif LA89 == 42:
10885                            LA89_282 = self.input.LA(3)
10886
10887                            if (self.synpred181()) :
10888                                alt89 = 1
10889
10890
10891                        elif LA89 == 45 or LA89 == 46:
10892                            LA89_283 = self.input.LA(3)
10893
10894                            if (self.synpred181()) :
10895                                alt89 = 1
10896
10897
10898                        elif LA89 == 48:
10899                            LA89_284 = self.input.LA(3)
10900
10901                            if (self.synpred181()) :
10902                                alt89 = 1
10903
10904
10905                        elif LA89 == 49 or LA89 == 50 or LA89 == 51 or LA89 == 52 or LA89 == 53 or LA89 == 54 or LA89 == 55 or LA89 == 56 or LA89 == 57 or LA89 == 61:
10906                            LA89_285 = self.input.LA(3)
10907
10908                            if (self.synpred181()) :
10909                                alt89 = 1
10910
10911
10912
10913                    elif LA89 == 42:
10914                        LA89 = self.input.LA(2)
10915                        if LA89 == 66:
10916                            LA89_286 = self.input.LA(3)
10917
10918                            if (self.synpred181()) :
10919                                alt89 = 1
10920
10921
10922                        elif LA89 == 58:
10923                            LA89_287 = self.input.LA(3)
10924
10925                            if (self.synpred181()) :
10926                                alt89 = 1
10927
10928
10929                        elif LA89 == 59:
10930                            LA89_288 = self.input.LA(3)
10931
10932                            if (self.synpred181()) :
10933                                alt89 = 1
10934
10935
10936                        elif LA89 == 60:
10937                            LA89_289 = self.input.LA(3)
10938
10939                            if (self.synpred181()) :
10940                                alt89 = 1
10941
10942
10943                        elif LA89 == IDENTIFIER:
10944                            LA89_290 = self.input.LA(3)
10945
10946                            if (self.synpred181()) :
10947                                alt89 = 1
10948
10949
10950                        elif LA89 == 62:
10951                            LA89_291 = self.input.LA(3)
10952
10953                            if (self.synpred181()) :
10954                                alt89 = 1
10955
10956
10957                        elif LA89 == 25:
10958                            LA89_292 = self.input.LA(3)
10959
10960                            if (self.synpred181()) :
10961                                alt89 = 1
10962
10963
10964                        elif LA89 == 29 or LA89 == 30 or LA89 == 31 or LA89 == 32 or LA89 == 33:
10965                            LA89_293 = self.input.LA(3)
10966
10967                            if (self.synpred181()) :
10968                                alt89 = 1
10969
10970
10971                        elif LA89 == 34:
10972                            LA89_294 = self.input.LA(3)
10973
10974                            if (self.synpred181()) :
10975                                alt89 = 1
10976
10977
10978                        elif LA89 == 35:
10979                            LA89_295 = self.input.LA(3)
10980
10981                            if (self.synpred181()) :
10982                                alt89 = 1
10983
10984
10985                        elif LA89 == 36:
10986                            LA89_296 = self.input.LA(3)
10987
10988                            if (self.synpred181()) :
10989                                alt89 = 1
10990
10991
10992                        elif LA89 == 37:
10993                            LA89_297 = self.input.LA(3)
10994
10995                            if (self.synpred181()) :
10996                                alt89 = 1
10997
10998
10999                        elif LA89 == 38:
11000                            LA89_298 = self.input.LA(3)
11001
11002                            if (self.synpred181()) :
11003                                alt89 = 1
11004
11005
11006                        elif LA89 == 39:
11007                            LA89_299 = self.input.LA(3)
11008
11009                            if (self.synpred181()) :
11010                                alt89 = 1
11011
11012
11013                        elif LA89 == 40:
11014                            LA89_300 = self.input.LA(3)
11015
11016                            if (self.synpred181()) :
11017                                alt89 = 1
11018
11019
11020                        elif LA89 == 41:
11021                            LA89_301 = self.input.LA(3)
11022
11023                            if (self.synpred181()) :
11024                                alt89 = 1
11025
11026
11027                        elif LA89 == 42:
11028                            LA89_302 = self.input.LA(3)
11029
11030                            if (self.synpred181()) :
11031                                alt89 = 1
11032
11033
11034                        elif LA89 == 45 or LA89 == 46:
11035                            LA89_303 = self.input.LA(3)
11036
11037                            if (self.synpred181()) :
11038                                alt89 = 1
11039
11040
11041                        elif LA89 == 48:
11042                            LA89_304 = self.input.LA(3)
11043
11044                            if (self.synpred181()) :
11045                                alt89 = 1
11046
11047
11048                        elif LA89 == 49 or LA89 == 50 or LA89 == 51 or LA89 == 52 or LA89 == 53 or LA89 == 54 or LA89 == 55 or LA89 == 56 or LA89 == 57 or LA89 == 61:
11049                            LA89_305 = self.input.LA(3)
11050
11051                            if (self.synpred181()) :
11052                                alt89 = 1
11053
11054
11055
11056                    elif LA89 == 45 or LA89 == 46:
11057                        LA89_40 = self.input.LA(2)
11058
11059                        if (LA89_40 == IDENTIFIER) :
11060                            LA89_306 = self.input.LA(3)
11061
11062                            if (self.synpred181()) :
11063                                alt89 = 1
11064
11065
11066                        elif (LA89_40 == 43) :
11067                            LA89_307 = self.input.LA(3)
11068
11069                            if (self.synpred181()) :
11070                                alt89 = 1
11071
11072
11073
11074
11075                    elif LA89 == 48:
11076                        LA89_41 = self.input.LA(2)
11077
11078                        if (LA89_41 == 43) :
11079                            LA89_308 = self.input.LA(3)
11080
11081                            if (self.synpred181()) :
11082                                alt89 = 1
11083
11084
11085                        elif (LA89_41 == IDENTIFIER) :
11086                            LA89_309 = self.input.LA(3)
11087
11088                            if (self.synpred181()) :
11089                                alt89 = 1
11090
11091
11092
11093
11094                    elif LA89 == 49 or LA89 == 50 or LA89 == 51 or LA89 == 52 or LA89 == 53 or LA89 == 54 or LA89 == 55 or LA89 == 56 or LA89 == 57 or LA89 == 58 or LA89 == 59 or LA89 == 60 or LA89 == 61:
11095                        LA89 = self.input.LA(2)
11096                        if LA89 == 66:
11097                            LA89_310 = self.input.LA(3)
11098
11099                            if (self.synpred181()) :
11100                                alt89 = 1
11101
11102
11103                        elif LA89 == 58:
11104                            LA89_311 = self.input.LA(3)
11105
11106                            if (self.synpred181()) :
11107                                alt89 = 1
11108
11109
11110                        elif LA89 == 59:
11111                            LA89_312 = self.input.LA(3)
11112
11113                            if (self.synpred181()) :
11114                                alt89 = 1
11115
11116
11117                        elif LA89 == 60:
11118                            LA89_313 = self.input.LA(3)
11119
11120                            if (self.synpred181()) :
11121                                alt89 = 1
11122
11123
11124                        elif LA89 == IDENTIFIER:
11125                            LA89_314 = self.input.LA(3)
11126
11127                            if (self.synpred181()) :
11128                                alt89 = 1
11129
11130
11131                        elif LA89 == 62:
11132                            LA89_315 = self.input.LA(3)
11133
11134                            if (self.synpred181()) :
11135                                alt89 = 1
11136
11137
11138                        elif LA89 == 25:
11139                            LA89_316 = self.input.LA(3)
11140
11141                            if (self.synpred181()) :
11142                                alt89 = 1
11143
11144
11145                        elif LA89 == 29 or LA89 == 30 or LA89 == 31 or LA89 == 32 or LA89 == 33:
11146                            LA89_317 = self.input.LA(3)
11147
11148                            if (self.synpred181()) :
11149                                alt89 = 1
11150
11151
11152                        elif LA89 == 34:
11153                            LA89_318 = self.input.LA(3)
11154
11155                            if (self.synpred181()) :
11156                                alt89 = 1
11157
11158
11159                        elif LA89 == 35:
11160                            LA89_319 = self.input.LA(3)
11161
11162                            if (self.synpred181()) :
11163                                alt89 = 1
11164
11165
11166                        elif LA89 == 36:
11167                            LA89_320 = self.input.LA(3)
11168
11169                            if (self.synpred181()) :
11170                                alt89 = 1
11171
11172
11173                        elif LA89 == 37:
11174                            LA89_321 = self.input.LA(3)
11175
11176                            if (self.synpred181()) :
11177                                alt89 = 1
11178
11179
11180                        elif LA89 == 38:
11181                            LA89_322 = self.input.LA(3)
11182
11183                            if (self.synpred181()) :
11184                                alt89 = 1
11185
11186
11187                        elif LA89 == 39:
11188                            LA89_323 = self.input.LA(3)
11189
11190                            if (self.synpred181()) :
11191                                alt89 = 1
11192
11193
11194                        elif LA89 == 40:
11195                            LA89_324 = self.input.LA(3)
11196
11197                            if (self.synpred181()) :
11198                                alt89 = 1
11199
11200
11201                        elif LA89 == 41:
11202                            LA89_325 = self.input.LA(3)
11203
11204                            if (self.synpred181()) :
11205                                alt89 = 1
11206
11207
11208                        elif LA89 == 42:
11209                            LA89_326 = self.input.LA(3)
11210
11211                            if (self.synpred181()) :
11212                                alt89 = 1
11213
11214
11215                        elif LA89 == 45 or LA89 == 46:
11216                            LA89_327 = self.input.LA(3)
11217
11218                            if (self.synpred181()) :
11219                                alt89 = 1
11220
11221
11222                        elif LA89 == 48:
11223                            LA89_328 = self.input.LA(3)
11224
11225                            if (self.synpred181()) :
11226                                alt89 = 1
11227
11228
11229                        elif LA89 == 49 or LA89 == 50 or LA89 == 51 or LA89 == 52 or LA89 == 53 or LA89 == 54 or LA89 == 55 or LA89 == 56 or LA89 == 57 or LA89 == 61:
11230                            LA89_329 = self.input.LA(3)
11231
11232                            if (self.synpred181()) :
11233                                alt89 = 1
11234
11235
11236
11237
11238                    if alt89 == 1:
11239                        # C.g:0:0: declaration
11240                        self.following.append(self.FOLLOW_declaration_in_macro_statement2166)
11241                        self.declaration()
11242                        self.following.pop()
11243                        if self.failed:
11244                            return
11245
11246
11247                    else:
11248                        break #loop89
11249
11250
11251                # C.g:544:33: ( statement_list )?
11252                alt90 = 2
11253                LA90 = self.input.LA(1)
11254                if LA90 == IDENTIFIER:
11255                    LA90 = self.input.LA(2)
11256                    if LA90 == 25 or LA90 == 29 or LA90 == 30 or LA90 == 31 or LA90 == 32 or LA90 == 33 or LA90 == 34 or LA90 == 35 or LA90 == 36 or LA90 == 37 or LA90 == 38 or LA90 == 39 or LA90 == 40 or LA90 == 41 or LA90 == 42 or LA90 == 45 or LA90 == 46 or LA90 == 47 or LA90 == 48 or LA90 == 49 or LA90 == 50 or LA90 == 51 or LA90 == 52 or LA90 == 53 or LA90 == 54 or LA90 == 55 or LA90 == 56 or LA90 == 57 or LA90 == 58 or LA90 == 59 or LA90 == 60 or LA90 == 61:
11257                        alt90 = 1
11258                    elif LA90 == 62:
11259                        LA90_45 = self.input.LA(3)
11260
11261                        if (self.synpred182()) :
11262                            alt90 = 1
11263                    elif LA90 == STRING_LITERAL:
11264                        LA90_46 = self.input.LA(3)
11265
11266                        if (self.synpred182()) :
11267                            alt90 = 1
11268                    elif LA90 == IDENTIFIER:
11269                        LA90_47 = self.input.LA(3)
11270
11271                        if (self.synpred182()) :
11272                            alt90 = 1
11273                    elif LA90 == 64:
11274                        LA90_48 = self.input.LA(3)
11275
11276                        if (self.synpred182()) :
11277                            alt90 = 1
11278                    elif LA90 == 75:
11279                        LA90_49 = self.input.LA(3)
11280
11281                        if (self.synpred182()) :
11282                            alt90 = 1
11283                    elif LA90 == 66:
11284                        LA90_50 = self.input.LA(3)
11285
11286                        if (self.synpred182()) :
11287                            alt90 = 1
11288                    elif LA90 == 76:
11289                        LA90_51 = self.input.LA(3)
11290
11291                        if (self.synpred182()) :
11292                            alt90 = 1
11293                    elif LA90 == 72:
11294                        LA90_52 = self.input.LA(3)
11295
11296                        if (self.synpred182()) :
11297                            alt90 = 1
11298                    elif LA90 == 73:
11299                        LA90_53 = self.input.LA(3)
11300
11301                        if (self.synpred182()) :
11302                            alt90 = 1
11303                    elif LA90 == 70:
11304                        LA90_54 = self.input.LA(3)
11305
11306                        if (self.synpred182()) :
11307                            alt90 = 1
11308                    elif LA90 == 71:
11309                        LA90_55 = self.input.LA(3)
11310
11311                        if (self.synpred182()) :
11312                            alt90 = 1
11313                    elif LA90 == 68:
11314                        LA90_56 = self.input.LA(3)
11315
11316                        if (self.synpred182()) :
11317                            alt90 = 1
11318                    elif LA90 == 69:
11319                        LA90_57 = self.input.LA(3)
11320
11321                        if (self.synpred182()) :
11322                            alt90 = 1
11323                    elif LA90 == 101 or LA90 == 102:
11324                        LA90_58 = self.input.LA(3)
11325
11326                        if (self.synpred182()) :
11327                            alt90 = 1
11328                    elif LA90 == 97 or LA90 == 98 or LA90 == 99 or LA90 == 100:
11329                        LA90_59 = self.input.LA(3)
11330
11331                        if (self.synpred182()) :
11332                            alt90 = 1
11333                    elif LA90 == 95 or LA90 == 96:
11334                        LA90_60 = self.input.LA(3)
11335
11336                        if (self.synpred182()) :
11337                            alt90 = 1
11338                    elif LA90 == 77:
11339                        LA90_61 = self.input.LA(3)
11340
11341                        if (self.synpred182()) :
11342                            alt90 = 1
11343                    elif LA90 == 94:
11344                        LA90_62 = self.input.LA(3)
11345
11346                        if (self.synpred182()) :
11347                            alt90 = 1
11348                    elif LA90 == 93:
11349                        LA90_63 = self.input.LA(3)
11350
11351                        if (self.synpred182()) :
11352                            alt90 = 1
11353                    elif LA90 == 92:
11354                        LA90_64 = self.input.LA(3)
11355
11356                        if (self.synpred182()) :
11357                            alt90 = 1
11358                    elif LA90 == 91:
11359                        LA90_65 = self.input.LA(3)
11360
11361                        if (self.synpred182()) :
11362                            alt90 = 1
11363                    elif LA90 == 90:
11364                        LA90_66 = self.input.LA(3)
11365
11366                        if (self.synpred182()) :
11367                            alt90 = 1
11368                    elif LA90 == 27:
11369                        LA90_67 = self.input.LA(3)
11370
11371                        if (self.synpred182()) :
11372                            alt90 = 1
11373                    elif LA90 == 28 or LA90 == 80 or LA90 == 81 or LA90 == 82 or LA90 == 83 or LA90 == 84 or LA90 == 85 or LA90 == 86 or LA90 == 87 or LA90 == 88 or LA90 == 89:
11374                        LA90_70 = self.input.LA(3)
11375
11376                        if (self.synpred182()) :
11377                            alt90 = 1
11378                elif LA90 == 25 or LA90 == 26 or LA90 == 29 or LA90 == 30 or LA90 == 31 or LA90 == 32 or LA90 == 33 or LA90 == 34 or LA90 == 35 or LA90 == 36 or LA90 == 37 or LA90 == 38 or LA90 == 39 or LA90 == 40 or LA90 == 41 or LA90 == 42 or LA90 == 43 or LA90 == 45 or LA90 == 46 or LA90 == 48 or LA90 == 49 or LA90 == 50 or LA90 == 51 or LA90 == 52 or LA90 == 53 or LA90 == 54 or LA90 == 55 or LA90 == 56 or LA90 == 57 or LA90 == 58 or LA90 == 59 or LA90 == 60 or LA90 == 61 or LA90 == 103 or LA90 == 104 or LA90 == 105 or LA90 == 106 or LA90 == 107 or LA90 == 108 or LA90 == 110 or LA90 == 111 or LA90 == 112 or LA90 == 113 or LA90 == 114 or LA90 == 115 or LA90 == 116 or LA90 == 117:
11379                    alt90 = 1
11380                elif LA90 == HEX_LITERAL:
11381                    LA90 = self.input.LA(2)
11382                    if LA90 == 64:
11383                        LA90_87 = self.input.LA(3)
11384
11385                        if (self.synpred182()) :
11386                            alt90 = 1
11387                    elif LA90 == 62:
11388                        LA90_88 = self.input.LA(3)
11389
11390                        if (self.synpred182()) :
11391                            alt90 = 1
11392                    elif LA90 == 75:
11393                        LA90_89 = self.input.LA(3)
11394
11395                        if (self.synpred182()) :
11396                            alt90 = 1
11397                    elif LA90 == 66:
11398                        LA90_90 = self.input.LA(3)
11399
11400                        if (self.synpred182()) :
11401                            alt90 = 1
11402                    elif LA90 == 76:
11403                        LA90_91 = self.input.LA(3)
11404
11405                        if (self.synpred182()) :
11406                            alt90 = 1
11407                    elif LA90 == 72:
11408                        LA90_92 = self.input.LA(3)
11409
11410                        if (self.synpred182()) :
11411                            alt90 = 1
11412                    elif LA90 == 73:
11413                        LA90_93 = self.input.LA(3)
11414
11415                        if (self.synpred182()) :
11416                            alt90 = 1
11417                    elif LA90 == 28 or LA90 == 80 or LA90 == 81 or LA90 == 82 or LA90 == 83 or LA90 == 84 or LA90 == 85 or LA90 == 86 or LA90 == 87 or LA90 == 88 or LA90 == 89:
11418                        LA90_94 = self.input.LA(3)
11419
11420                        if (self.synpred182()) :
11421                            alt90 = 1
11422                    elif LA90 == 70:
11423                        LA90_95 = self.input.LA(3)
11424
11425                        if (self.synpred182()) :
11426                            alt90 = 1
11427                    elif LA90 == 71:
11428                        LA90_96 = self.input.LA(3)
11429
11430                        if (self.synpred182()) :
11431                            alt90 = 1
11432                    elif LA90 == 68:
11433                        LA90_97 = self.input.LA(3)
11434
11435                        if (self.synpred182()) :
11436                            alt90 = 1
11437                    elif LA90 == 69:
11438                        LA90_98 = self.input.LA(3)
11439
11440                        if (self.synpred182()) :
11441                            alt90 = 1
11442                    elif LA90 == 101 or LA90 == 102:
11443                        LA90_99 = self.input.LA(3)
11444
11445                        if (self.synpred182()) :
11446                            alt90 = 1
11447                    elif LA90 == 97 or LA90 == 98 or LA90 == 99 or LA90 == 100:
11448                        LA90_100 = self.input.LA(3)
11449
11450                        if (self.synpred182()) :
11451                            alt90 = 1
11452                    elif LA90 == 95 or LA90 == 96:
11453                        LA90_101 = self.input.LA(3)
11454
11455                        if (self.synpred182()) :
11456                            alt90 = 1
11457                    elif LA90 == 77:
11458                        LA90_102 = self.input.LA(3)
11459
11460                        if (self.synpred182()) :
11461                            alt90 = 1
11462                    elif LA90 == 94:
11463                        LA90_103 = self.input.LA(3)
11464
11465                        if (self.synpred182()) :
11466                            alt90 = 1
11467                    elif LA90 == 93:
11468                        LA90_104 = self.input.LA(3)
11469
11470                        if (self.synpred182()) :
11471                            alt90 = 1
11472                    elif LA90 == 92:
11473                        LA90_105 = self.input.LA(3)
11474
11475                        if (self.synpred182()) :
11476                            alt90 = 1
11477                    elif LA90 == 91:
11478                        LA90_106 = self.input.LA(3)
11479
11480                        if (self.synpred182()) :
11481                            alt90 = 1
11482                    elif LA90 == 90:
11483                        LA90_107 = self.input.LA(3)
11484
11485                        if (self.synpred182()) :
11486                            alt90 = 1
11487                    elif LA90 == 27:
11488                        LA90_108 = self.input.LA(3)
11489
11490                        if (self.synpred182()) :
11491                            alt90 = 1
11492                    elif LA90 == 25:
11493                        alt90 = 1
11494                elif LA90 == OCTAL_LITERAL:
11495                    LA90 = self.input.LA(2)
11496                    if LA90 == 64:
11497                        LA90_111 = self.input.LA(3)
11498
11499                        if (self.synpred182()) :
11500                            alt90 = 1
11501                    elif LA90 == 62:
11502                        LA90_112 = self.input.LA(3)
11503
11504                        if (self.synpred182()) :
11505                            alt90 = 1
11506                    elif LA90 == 75:
11507                        LA90_113 = self.input.LA(3)
11508
11509                        if (self.synpred182()) :
11510                            alt90 = 1
11511                    elif LA90 == 66:
11512                        LA90_114 = self.input.LA(3)
11513
11514                        if (self.synpred182()) :
11515                            alt90 = 1
11516                    elif LA90 == 76:
11517                        LA90_115 = self.input.LA(3)
11518
11519                        if (self.synpred182()) :
11520                            alt90 = 1
11521                    elif LA90 == 72:
11522                        LA90_116 = self.input.LA(3)
11523
11524                        if (self.synpred182()) :
11525                            alt90 = 1
11526                    elif LA90 == 73:
11527                        LA90_117 = self.input.LA(3)
11528
11529                        if (self.synpred182()) :
11530                            alt90 = 1
11531                    elif LA90 == 70:
11532                        LA90_118 = self.input.LA(3)
11533
11534                        if (self.synpred182()) :
11535                            alt90 = 1
11536                    elif LA90 == 71:
11537                        LA90_119 = self.input.LA(3)
11538
11539                        if (self.synpred182()) :
11540                            alt90 = 1
11541                    elif LA90 == 68:
11542                        LA90_120 = self.input.LA(3)
11543
11544                        if (self.synpred182()) :
11545                            alt90 = 1
11546                    elif LA90 == 69:
11547                        LA90_121 = self.input.LA(3)
11548
11549                        if (self.synpred182()) :
11550                            alt90 = 1
11551                    elif LA90 == 101 or LA90 == 102:
11552                        LA90_122 = self.input.LA(3)
11553
11554                        if (self.synpred182()) :
11555                            alt90 = 1
11556                    elif LA90 == 97 or LA90 == 98 or LA90 == 99 or LA90 == 100:
11557                        LA90_123 = self.input.LA(3)
11558
11559                        if (self.synpred182()) :
11560                            alt90 = 1
11561                    elif LA90 == 95 or LA90 == 96:
11562                        LA90_124 = self.input.LA(3)
11563
11564                        if (self.synpred182()) :
11565                            alt90 = 1
11566                    elif LA90 == 77:
11567                        LA90_125 = self.input.LA(3)
11568
11569                        if (self.synpred182()) :
11570                            alt90 = 1
11571                    elif LA90 == 94:
11572                        LA90_126 = self.input.LA(3)
11573
11574                        if (self.synpred182()) :
11575                            alt90 = 1
11576                    elif LA90 == 93:
11577                        LA90_127 = self.input.LA(3)
11578
11579                        if (self.synpred182()) :
11580                            alt90 = 1
11581                    elif LA90 == 92:
11582                        LA90_128 = self.input.LA(3)
11583
11584                        if (self.synpred182()) :
11585                            alt90 = 1
11586                    elif LA90 == 91:
11587                        LA90_129 = self.input.LA(3)
11588
11589                        if (self.synpred182()) :
11590                            alt90 = 1
11591                    elif LA90 == 90:
11592                        LA90_130 = self.input.LA(3)
11593
11594                        if (self.synpred182()) :
11595                            alt90 = 1
11596                    elif LA90 == 27:
11597                        LA90_131 = self.input.LA(3)
11598
11599                        if (self.synpred182()) :
11600                            alt90 = 1
11601                    elif LA90 == 25:
11602                        alt90 = 1
11603                    elif LA90 == 28 or LA90 == 80 or LA90 == 81 or LA90 == 82 or LA90 == 83 or LA90 == 84 or LA90 == 85 or LA90 == 86 or LA90 == 87 or LA90 == 88 or LA90 == 89:
11604                        LA90_134 = self.input.LA(3)
11605
11606                        if (self.synpred182()) :
11607                            alt90 = 1
11608                elif LA90 == DECIMAL_LITERAL:
11609                    LA90 = self.input.LA(2)
11610                    if LA90 == 64:
11611                        LA90_135 = self.input.LA(3)
11612
11613                        if (self.synpred182()) :
11614                            alt90 = 1
11615                    elif LA90 == 62:
11616                        LA90_136 = self.input.LA(3)
11617
11618                        if (self.synpred182()) :
11619                            alt90 = 1
11620                    elif LA90 == 75:
11621                        LA90_137 = self.input.LA(3)
11622
11623                        if (self.synpred182()) :
11624                            alt90 = 1
11625                    elif LA90 == 66:
11626                        LA90_138 = self.input.LA(3)
11627
11628                        if (self.synpred182()) :
11629                            alt90 = 1
11630                    elif LA90 == 76:
11631                        LA90_139 = self.input.LA(3)
11632
11633                        if (self.synpred182()) :
11634                            alt90 = 1
11635                    elif LA90 == 72:
11636                        LA90_140 = self.input.LA(3)
11637
11638                        if (self.synpred182()) :
11639                            alt90 = 1
11640                    elif LA90 == 73:
11641                        LA90_141 = self.input.LA(3)
11642
11643                        if (self.synpred182()) :
11644                            alt90 = 1
11645                    elif LA90 == 28 or LA90 == 80 or LA90 == 81 or LA90 == 82 or LA90 == 83 or LA90 == 84 or LA90 == 85 or LA90 == 86 or LA90 == 87 or LA90 == 88 or LA90 == 89:
11646                        LA90_142 = self.input.LA(3)
11647
11648                        if (self.synpred182()) :
11649                            alt90 = 1
11650                    elif LA90 == 70:
11651                        LA90_143 = self.input.LA(3)
11652
11653                        if (self.synpred182()) :
11654                            alt90 = 1
11655                    elif LA90 == 71:
11656                        LA90_144 = self.input.LA(3)
11657
11658                        if (self.synpred182()) :
11659                            alt90 = 1
11660                    elif LA90 == 68:
11661                        LA90_145 = self.input.LA(3)
11662
11663                        if (self.synpred182()) :
11664                            alt90 = 1
11665                    elif LA90 == 69:
11666                        LA90_146 = self.input.LA(3)
11667
11668                        if (self.synpred182()) :
11669                            alt90 = 1
11670                    elif LA90 == 101 or LA90 == 102:
11671                        LA90_147 = self.input.LA(3)
11672
11673                        if (self.synpred182()) :
11674                            alt90 = 1
11675                    elif LA90 == 97 or LA90 == 98 or LA90 == 99 or LA90 == 100:
11676                        LA90_148 = self.input.LA(3)
11677
11678                        if (self.synpred182()) :
11679                            alt90 = 1
11680                    elif LA90 == 95 or LA90 == 96:
11681                        LA90_149 = self.input.LA(3)
11682
11683                        if (self.synpred182()) :
11684                            alt90 = 1
11685                    elif LA90 == 77:
11686                        LA90_150 = self.input.LA(3)
11687
11688                        if (self.synpred182()) :
11689                            alt90 = 1
11690                    elif LA90 == 94:
11691                        LA90_151 = self.input.LA(3)
11692
11693                        if (self.synpred182()) :
11694                            alt90 = 1
11695                    elif LA90 == 93:
11696                        LA90_152 = self.input.LA(3)
11697
11698                        if (self.synpred182()) :
11699                            alt90 = 1
11700                    elif LA90 == 92:
11701                        LA90_153 = self.input.LA(3)
11702
11703                        if (self.synpred182()) :
11704                            alt90 = 1
11705                    elif LA90 == 91:
11706                        LA90_154 = self.input.LA(3)
11707
11708                        if (self.synpred182()) :
11709                            alt90 = 1
11710                    elif LA90 == 90:
11711                        LA90_155 = self.input.LA(3)
11712
11713                        if (self.synpred182()) :
11714                            alt90 = 1
11715                    elif LA90 == 27:
11716                        LA90_156 = self.input.LA(3)
11717
11718                        if (self.synpred182()) :
11719                            alt90 = 1
11720                    elif LA90 == 25:
11721                        alt90 = 1
11722                elif LA90 == CHARACTER_LITERAL:
11723                    LA90 = self.input.LA(2)
11724                    if LA90 == 64:
11725                        LA90_159 = self.input.LA(3)
11726
11727                        if (self.synpred182()) :
11728                            alt90 = 1
11729                    elif LA90 == 62:
11730                        LA90_160 = self.input.LA(3)
11731
11732                        if (self.synpred182()) :
11733                            alt90 = 1
11734                    elif LA90 == 75:
11735                        LA90_161 = self.input.LA(3)
11736
11737                        if (self.synpred182()) :
11738                            alt90 = 1
11739                    elif LA90 == 66:
11740                        LA90_162 = self.input.LA(3)
11741
11742                        if (self.synpred182()) :
11743                            alt90 = 1
11744                    elif LA90 == 76:
11745                        LA90_163 = self.input.LA(3)
11746
11747                        if (self.synpred182()) :
11748                            alt90 = 1
11749                    elif LA90 == 72:
11750                        LA90_164 = self.input.LA(3)
11751
11752                        if (self.synpred182()) :
11753                            alt90 = 1
11754                    elif LA90 == 73:
11755                        LA90_165 = self.input.LA(3)
11756
11757                        if (self.synpred182()) :
11758                            alt90 = 1
11759                    elif LA90 == 70:
11760                        LA90_166 = self.input.LA(3)
11761
11762                        if (self.synpred182()) :
11763                            alt90 = 1
11764                    elif LA90 == 71:
11765                        LA90_167 = self.input.LA(3)
11766
11767                        if (self.synpred182()) :
11768                            alt90 = 1
11769                    elif LA90 == 68:
11770                        LA90_168 = self.input.LA(3)
11771
11772                        if (self.synpred182()) :
11773                            alt90 = 1
11774                    elif LA90 == 69:
11775                        LA90_169 = self.input.LA(3)
11776
11777                        if (self.synpred182()) :
11778                            alt90 = 1
11779                    elif LA90 == 101 or LA90 == 102:
11780                        LA90_170 = self.input.LA(3)
11781
11782                        if (self.synpred182()) :
11783                            alt90 = 1
11784                    elif LA90 == 97 or LA90 == 98 or LA90 == 99 or LA90 == 100:
11785                        LA90_171 = self.input.LA(3)
11786
11787                        if (self.synpred182()) :
11788                            alt90 = 1
11789                    elif LA90 == 95 or LA90 == 96:
11790                        LA90_172 = self.input.LA(3)
11791
11792                        if (self.synpred182()) :
11793                            alt90 = 1
11794                    elif LA90 == 77:
11795                        LA90_173 = self.input.LA(3)
11796
11797                        if (self.synpred182()) :
11798                            alt90 = 1
11799                    elif LA90 == 94:
11800                        LA90_174 = self.input.LA(3)
11801
11802                        if (self.synpred182()) :
11803                            alt90 = 1
11804                    elif LA90 == 93:
11805                        LA90_175 = self.input.LA(3)
11806
11807                        if (self.synpred182()) :
11808                            alt90 = 1
11809                    elif LA90 == 92:
11810                        LA90_176 = self.input.LA(3)
11811
11812                        if (self.synpred182()) :
11813                            alt90 = 1
11814                    elif LA90 == 91:
11815                        LA90_177 = self.input.LA(3)
11816
11817                        if (self.synpred182()) :
11818                            alt90 = 1
11819                    elif LA90 == 90:
11820                        LA90_178 = self.input.LA(3)
11821
11822                        if (self.synpred182()) :
11823                            alt90 = 1
11824                    elif LA90 == 27:
11825                        LA90_179 = self.input.LA(3)
11826
11827                        if (self.synpred182()) :
11828                            alt90 = 1
11829                    elif LA90 == 25:
11830                        alt90 = 1
11831                    elif LA90 == 28 or LA90 == 80 or LA90 == 81 or LA90 == 82 or LA90 == 83 or LA90 == 84 or LA90 == 85 or LA90 == 86 or LA90 == 87 or LA90 == 88 or LA90 == 89:
11832                        LA90_181 = self.input.LA(3)
11833
11834                        if (self.synpred182()) :
11835                            alt90 = 1
11836                elif LA90 == STRING_LITERAL:
11837                    LA90 = self.input.LA(2)
11838                    if LA90 == IDENTIFIER:
11839                        LA90_183 = self.input.LA(3)
11840
11841                        if (self.synpred182()) :
11842                            alt90 = 1
11843                    elif LA90 == 64:
11844                        LA90_184 = self.input.LA(3)
11845
11846                        if (self.synpred182()) :
11847                            alt90 = 1
11848                    elif LA90 == 62:
11849                        LA90_185 = self.input.LA(3)
11850
11851                        if (self.synpred182()) :
11852                            alt90 = 1
11853                    elif LA90 == 75:
11854                        LA90_186 = self.input.LA(3)
11855
11856                        if (self.synpred182()) :
11857                            alt90 = 1
11858                    elif LA90 == 66:
11859                        LA90_187 = self.input.LA(3)
11860
11861                        if (self.synpred182()) :
11862                            alt90 = 1
11863                    elif LA90 == 76:
11864                        LA90_188 = self.input.LA(3)
11865
11866                        if (self.synpred182()) :
11867                            alt90 = 1
11868                    elif LA90 == 72:
11869                        LA90_189 = self.input.LA(3)
11870
11871                        if (self.synpred182()) :
11872                            alt90 = 1
11873                    elif LA90 == 73:
11874                        LA90_190 = self.input.LA(3)
11875
11876                        if (self.synpred182()) :
11877                            alt90 = 1
11878                    elif LA90 == 28 or LA90 == 80 or LA90 == 81 or LA90 == 82 or LA90 == 83 or LA90 == 84 or LA90 == 85 or LA90 == 86 or LA90 == 87 or LA90 == 88 or LA90 == 89:
11879                        LA90_191 = self.input.LA(3)
11880
11881                        if (self.synpred182()) :
11882                            alt90 = 1
11883                    elif LA90 == STRING_LITERAL:
11884                        LA90_192 = self.input.LA(3)
11885
11886                        if (self.synpred182()) :
11887                            alt90 = 1
11888                    elif LA90 == 70:
11889                        LA90_193 = self.input.LA(3)
11890
11891                        if (self.synpred182()) :
11892                            alt90 = 1
11893                    elif LA90 == 71:
11894                        LA90_194 = self.input.LA(3)
11895
11896                        if (self.synpred182()) :
11897                            alt90 = 1
11898                    elif LA90 == 68:
11899                        LA90_195 = self.input.LA(3)
11900
11901                        if (self.synpred182()) :
11902                            alt90 = 1
11903                    elif LA90 == 69:
11904                        LA90_196 = self.input.LA(3)
11905
11906                        if (self.synpred182()) :
11907                            alt90 = 1
11908                    elif LA90 == 101 or LA90 == 102:
11909                        LA90_197 = self.input.LA(3)
11910
11911                        if (self.synpred182()) :
11912                            alt90 = 1
11913                    elif LA90 == 97 or LA90 == 98 or LA90 == 99 or LA90 == 100:
11914                        LA90_198 = self.input.LA(3)
11915
11916                        if (self.synpred182()) :
11917                            alt90 = 1
11918                    elif LA90 == 95 or LA90 == 96:
11919                        LA90_199 = self.input.LA(3)
11920
11921                        if (self.synpred182()) :
11922                            alt90 = 1
11923                    elif LA90 == 77:
11924                        LA90_200 = self.input.LA(3)
11925
11926                        if (self.synpred182()) :
11927                            alt90 = 1
11928                    elif LA90 == 94:
11929                        LA90_201 = self.input.LA(3)
11930
11931                        if (self.synpred182()) :
11932                            alt90 = 1
11933                    elif LA90 == 93:
11934                        LA90_202 = self.input.LA(3)
11935
11936                        if (self.synpred182()) :
11937                            alt90 = 1
11938                    elif LA90 == 92:
11939                        LA90_203 = self.input.LA(3)
11940
11941                        if (self.synpred182()) :
11942                            alt90 = 1
11943                    elif LA90 == 91:
11944                        LA90_204 = self.input.LA(3)
11945
11946                        if (self.synpred182()) :
11947                            alt90 = 1
11948                    elif LA90 == 90:
11949                        LA90_205 = self.input.LA(3)
11950
11951                        if (self.synpred182()) :
11952                            alt90 = 1
11953                    elif LA90 == 27:
11954                        LA90_206 = self.input.LA(3)
11955
11956                        if (self.synpred182()) :
11957                            alt90 = 1
11958                    elif LA90 == 25:
11959                        alt90 = 1
11960                elif LA90 == FLOATING_POINT_LITERAL:
11961                    LA90 = self.input.LA(2)
11962                    if LA90 == 64:
11963                        LA90_209 = self.input.LA(3)
11964
11965                        if (self.synpred182()) :
11966                            alt90 = 1
11967                    elif LA90 == 62:
11968                        LA90_210 = self.input.LA(3)
11969
11970                        if (self.synpred182()) :
11971                            alt90 = 1
11972                    elif LA90 == 75:
11973                        LA90_211 = self.input.LA(3)
11974
11975                        if (self.synpred182()) :
11976                            alt90 = 1
11977                    elif LA90 == 66:
11978                        LA90_212 = self.input.LA(3)
11979
11980                        if (self.synpred182()) :
11981                            alt90 = 1
11982                    elif LA90 == 76:
11983                        LA90_213 = self.input.LA(3)
11984
11985                        if (self.synpred182()) :
11986                            alt90 = 1
11987                    elif LA90 == 72:
11988                        LA90_214 = self.input.LA(3)
11989
11990                        if (self.synpred182()) :
11991                            alt90 = 1
11992                    elif LA90 == 73:
11993                        LA90_215 = self.input.LA(3)
11994
11995                        if (self.synpred182()) :
11996                            alt90 = 1
11997                    elif LA90 == 28 or LA90 == 80 or LA90 == 81 or LA90 == 82 or LA90 == 83 or LA90 == 84 or LA90 == 85 or LA90 == 86 or LA90 == 87 or LA90 == 88 or LA90 == 89:
11998                        LA90_216 = self.input.LA(3)
11999
12000                        if (self.synpred182()) :
12001                            alt90 = 1
12002                    elif LA90 == 70:
12003                        LA90_217 = self.input.LA(3)
12004
12005                        if (self.synpred182()) :
12006                            alt90 = 1
12007                    elif LA90 == 71:
12008                        LA90_218 = self.input.LA(3)
12009
12010                        if (self.synpred182()) :
12011                            alt90 = 1
12012                    elif LA90 == 68:
12013                        LA90_219 = self.input.LA(3)
12014
12015                        if (self.synpred182()) :
12016                            alt90 = 1
12017                    elif LA90 == 69:
12018                        LA90_220 = self.input.LA(3)
12019
12020                        if (self.synpred182()) :
12021                            alt90 = 1
12022                    elif LA90 == 101 or LA90 == 102:
12023                        LA90_221 = self.input.LA(3)
12024
12025                        if (self.synpred182()) :
12026                            alt90 = 1
12027                    elif LA90 == 97 or LA90 == 98 or LA90 == 99 or LA90 == 100:
12028                        LA90_222 = self.input.LA(3)
12029
12030                        if (self.synpred182()) :
12031                            alt90 = 1
12032                    elif LA90 == 95 or LA90 == 96:
12033                        LA90_223 = self.input.LA(3)
12034
12035                        if (self.synpred182()) :
12036                            alt90 = 1
12037                    elif LA90 == 77:
12038                        LA90_224 = self.input.LA(3)
12039
12040                        if (self.synpred182()) :
12041                            alt90 = 1
12042                    elif LA90 == 94:
12043                        LA90_225 = self.input.LA(3)
12044
12045                        if (self.synpred182()) :
12046                            alt90 = 1
12047                    elif LA90 == 93:
12048                        LA90_226 = self.input.LA(3)
12049
12050                        if (self.synpred182()) :
12051                            alt90 = 1
12052                    elif LA90 == 92:
12053                        LA90_227 = self.input.LA(3)
12054
12055                        if (self.synpred182()) :
12056                            alt90 = 1
12057                    elif LA90 == 91:
12058                        LA90_228 = self.input.LA(3)
12059
12060                        if (self.synpred182()) :
12061                            alt90 = 1
12062                    elif LA90 == 90:
12063                        LA90_229 = self.input.LA(3)
12064
12065                        if (self.synpred182()) :
12066                            alt90 = 1
12067                    elif LA90 == 27:
12068                        LA90_230 = self.input.LA(3)
12069
12070                        if (self.synpred182()) :
12071                            alt90 = 1
12072                    elif LA90 == 25:
12073                        alt90 = 1
12074                elif LA90 == 62:
12075                    LA90 = self.input.LA(2)
12076                    if LA90 == IDENTIFIER:
12077                        LA90_233 = self.input.LA(3)
12078
12079                        if (self.synpred182()) :
12080                            alt90 = 1
12081                    elif LA90 == HEX_LITERAL:
12082                        LA90_234 = self.input.LA(3)
12083
12084                        if (self.synpred182()) :
12085                            alt90 = 1
12086                    elif LA90 == OCTAL_LITERAL:
12087                        LA90_235 = self.input.LA(3)
12088
12089                        if (self.synpred182()) :
12090                            alt90 = 1
12091                    elif LA90 == DECIMAL_LITERAL:
12092                        LA90_236 = self.input.LA(3)
12093
12094                        if (self.synpred182()) :
12095                            alt90 = 1
12096                    elif LA90 == CHARACTER_LITERAL:
12097                        LA90_237 = self.input.LA(3)
12098
12099                        if (self.synpred182()) :
12100                            alt90 = 1
12101                    elif LA90 == STRING_LITERAL:
12102                        LA90_238 = self.input.LA(3)
12103
12104                        if (self.synpred182()) :
12105                            alt90 = 1
12106                    elif LA90 == FLOATING_POINT_LITERAL:
12107                        LA90_239 = self.input.LA(3)
12108
12109                        if (self.synpred182()) :
12110                            alt90 = 1
12111                    elif LA90 == 62:
12112                        LA90_240 = self.input.LA(3)
12113
12114                        if (self.synpred182()) :
12115                            alt90 = 1
12116                    elif LA90 == 72:
12117                        LA90_241 = self.input.LA(3)
12118
12119                        if (self.synpred182()) :
12120                            alt90 = 1
12121                    elif LA90 == 73:
12122                        LA90_242 = self.input.LA(3)
12123
12124                        if (self.synpred182()) :
12125                            alt90 = 1
12126                    elif LA90 == 66 or LA90 == 68 or LA90 == 69 or LA90 == 77 or LA90 == 78 or LA90 == 79:
12127                        LA90_243 = self.input.LA(3)
12128
12129                        if (self.synpred182()) :
12130                            alt90 = 1
12131                    elif LA90 == 74:
12132                        LA90_244 = self.input.LA(3)
12133
12134                        if (self.synpred182()) :
12135                            alt90 = 1
12136                    elif LA90 == 49 or LA90 == 50 or LA90 == 51 or LA90 == 52 or LA90 == 53 or LA90 == 54 or LA90 == 55 or LA90 == 56 or LA90 == 57 or LA90 == 58 or LA90 == 59 or LA90 == 60 or LA90 == 61:
12137                        LA90_245 = self.input.LA(3)
12138
12139                        if (self.synpred182()) :
12140                            alt90 = 1
12141                    elif LA90 == 34:
12142                        LA90_246 = self.input.LA(3)
12143
12144                        if (self.synpred182()) :
12145                            alt90 = 1
12146                    elif LA90 == 35:
12147                        LA90_247 = self.input.LA(3)
12148
12149                        if (self.synpred182()) :
12150                            alt90 = 1
12151                    elif LA90 == 36:
12152                        LA90_248 = self.input.LA(3)
12153
12154                        if (self.synpred182()) :
12155                            alt90 = 1
12156                    elif LA90 == 37:
12157                        LA90_249 = self.input.LA(3)
12158
12159                        if (self.synpred182()) :
12160                            alt90 = 1
12161                    elif LA90 == 38:
12162                        LA90_250 = self.input.LA(3)
12163
12164                        if (self.synpred182()) :
12165                            alt90 = 1
12166                    elif LA90 == 39:
12167                        LA90_251 = self.input.LA(3)
12168
12169                        if (self.synpred182()) :
12170                            alt90 = 1
12171                    elif LA90 == 40:
12172                        LA90_252 = self.input.LA(3)
12173
12174                        if (self.synpred182()) :
12175                            alt90 = 1
12176                    elif LA90 == 41:
12177                        LA90_253 = self.input.LA(3)
12178
12179                        if (self.synpred182()) :
12180                            alt90 = 1
12181                    elif LA90 == 42:
12182                        LA90_254 = self.input.LA(3)
12183
12184                        if (self.synpred182()) :
12185                            alt90 = 1
12186                    elif LA90 == 45 or LA90 == 46:
12187                        LA90_255 = self.input.LA(3)
12188
12189                        if (self.synpred182()) :
12190                            alt90 = 1
12191                    elif LA90 == 48:
12192                        LA90_256 = self.input.LA(3)
12193
12194                        if (self.synpred182()) :
12195                            alt90 = 1
12196                elif LA90 == 72:
12197                    LA90 = self.input.LA(2)
12198                    if LA90 == IDENTIFIER:
12199                        LA90_257 = self.input.LA(3)
12200
12201                        if (self.synpred182()) :
12202                            alt90 = 1
12203                    elif LA90 == HEX_LITERAL:
12204                        LA90_258 = self.input.LA(3)
12205
12206                        if (self.synpred182()) :
12207                            alt90 = 1
12208                    elif LA90 == OCTAL_LITERAL:
12209                        LA90_259 = self.input.LA(3)
12210
12211                        if (self.synpred182()) :
12212                            alt90 = 1
12213                    elif LA90 == DECIMAL_LITERAL:
12214                        LA90_260 = self.input.LA(3)
12215
12216                        if (self.synpred182()) :
12217                            alt90 = 1
12218                    elif LA90 == CHARACTER_LITERAL:
12219                        LA90_261 = self.input.LA(3)
12220
12221                        if (self.synpred182()) :
12222                            alt90 = 1
12223                    elif LA90 == STRING_LITERAL:
12224                        LA90_262 = self.input.LA(3)
12225
12226                        if (self.synpred182()) :
12227                            alt90 = 1
12228                    elif LA90 == FLOATING_POINT_LITERAL:
12229                        LA90_263 = self.input.LA(3)
12230
12231                        if (self.synpred182()) :
12232                            alt90 = 1
12233                    elif LA90 == 62:
12234                        LA90_264 = self.input.LA(3)
12235
12236                        if (self.synpred182()) :
12237                            alt90 = 1
12238                    elif LA90 == 72:
12239                        LA90_265 = self.input.LA(3)
12240
12241                        if (self.synpred182()) :
12242                            alt90 = 1
12243                    elif LA90 == 73:
12244                        LA90_266 = self.input.LA(3)
12245
12246                        if (self.synpred182()) :
12247                            alt90 = 1
12248                    elif LA90 == 66 or LA90 == 68 or LA90 == 69 or LA90 == 77 or LA90 == 78 or LA90 == 79:
12249                        LA90_267 = self.input.LA(3)
12250
12251                        if (self.synpred182()) :
12252                            alt90 = 1
12253                    elif LA90 == 74:
12254                        LA90_268 = self.input.LA(3)
12255
12256                        if (self.synpred182()) :
12257                            alt90 = 1
12258                elif LA90 == 73:
12259                    LA90 = self.input.LA(2)
12260                    if LA90 == IDENTIFIER:
12261                        LA90_269 = self.input.LA(3)
12262
12263                        if (self.synpred182()) :
12264                            alt90 = 1
12265                    elif LA90 == HEX_LITERAL:
12266                        LA90_270 = self.input.LA(3)
12267
12268                        if (self.synpred182()) :
12269                            alt90 = 1
12270                    elif LA90 == OCTAL_LITERAL:
12271                        LA90_271 = self.input.LA(3)
12272
12273                        if (self.synpred182()) :
12274                            alt90 = 1
12275                    elif LA90 == DECIMAL_LITERAL:
12276                        LA90_272 = self.input.LA(3)
12277
12278                        if (self.synpred182()) :
12279                            alt90 = 1
12280                    elif LA90 == CHARACTER_LITERAL:
12281                        LA90_273 = self.input.LA(3)
12282
12283                        if (self.synpred182()) :
12284                            alt90 = 1
12285                    elif LA90 == STRING_LITERAL:
12286                        LA90_274 = self.input.LA(3)
12287
12288                        if (self.synpred182()) :
12289                            alt90 = 1
12290                    elif LA90 == FLOATING_POINT_LITERAL:
12291                        LA90_275 = self.input.LA(3)
12292
12293                        if (self.synpred182()) :
12294                            alt90 = 1
12295                    elif LA90 == 62:
12296                        LA90_276 = self.input.LA(3)
12297
12298                        if (self.synpred182()) :
12299                            alt90 = 1
12300                    elif LA90 == 72:
12301                        LA90_277 = self.input.LA(3)
12302
12303                        if (self.synpred182()) :
12304                            alt90 = 1
12305                    elif LA90 == 73:
12306                        LA90_278 = self.input.LA(3)
12307
12308                        if (self.synpred182()) :
12309                            alt90 = 1
12310                    elif LA90 == 66 or LA90 == 68 or LA90 == 69 or LA90 == 77 or LA90 == 78 or LA90 == 79:
12311                        LA90_279 = self.input.LA(3)
12312
12313                        if (self.synpred182()) :
12314                            alt90 = 1
12315                    elif LA90 == 74:
12316                        LA90_280 = self.input.LA(3)
12317
12318                        if (self.synpred182()) :
12319                            alt90 = 1
12320                elif LA90 == 66 or LA90 == 68 or LA90 == 69 or LA90 == 77 or LA90 == 78 or LA90 == 79:
12321                    LA90 = self.input.LA(2)
12322                    if LA90 == 62:
12323                        LA90_281 = self.input.LA(3)
12324
12325                        if (self.synpred182()) :
12326                            alt90 = 1
12327                    elif LA90 == IDENTIFIER:
12328                        LA90_282 = self.input.LA(3)
12329
12330                        if (self.synpred182()) :
12331                            alt90 = 1
12332                    elif LA90 == HEX_LITERAL:
12333                        LA90_283 = self.input.LA(3)
12334
12335                        if (self.synpred182()) :
12336                            alt90 = 1
12337                    elif LA90 == OCTAL_LITERAL:
12338                        LA90_284 = self.input.LA(3)
12339
12340                        if (self.synpred182()) :
12341                            alt90 = 1
12342                    elif LA90 == DECIMAL_LITERAL:
12343                        LA90_285 = self.input.LA(3)
12344
12345                        if (self.synpred182()) :
12346                            alt90 = 1
12347                    elif LA90 == CHARACTER_LITERAL:
12348                        LA90_286 = self.input.LA(3)
12349
12350                        if (self.synpred182()) :
12351                            alt90 = 1
12352                    elif LA90 == STRING_LITERAL:
12353                        LA90_287 = self.input.LA(3)
12354
12355                        if (self.synpred182()) :
12356                            alt90 = 1
12357                    elif LA90 == FLOATING_POINT_LITERAL:
12358                        LA90_288 = self.input.LA(3)
12359
12360                        if (self.synpred182()) :
12361                            alt90 = 1
12362                    elif LA90 == 72:
12363                        LA90_289 = self.input.LA(3)
12364
12365                        if (self.synpred182()) :
12366                            alt90 = 1
12367                    elif LA90 == 73:
12368                        LA90_290 = self.input.LA(3)
12369
12370                        if (self.synpred182()) :
12371                            alt90 = 1
12372                    elif LA90 == 66 or LA90 == 68 or LA90 == 69 or LA90 == 77 or LA90 == 78 or LA90 == 79:
12373                        LA90_291 = self.input.LA(3)
12374
12375                        if (self.synpred182()) :
12376                            alt90 = 1
12377                    elif LA90 == 74:
12378                        LA90_292 = self.input.LA(3)
12379
12380                        if (self.synpred182()) :
12381                            alt90 = 1
12382                elif LA90 == 74:
12383                    LA90 = self.input.LA(2)
12384                    if LA90 == 62:
12385                        LA90_293 = self.input.LA(3)
12386
12387                        if (self.synpred182()) :
12388                            alt90 = 1
12389                    elif LA90 == IDENTIFIER:
12390                        LA90_294 = self.input.LA(3)
12391
12392                        if (self.synpred182()) :
12393                            alt90 = 1
12394                    elif LA90 == HEX_LITERAL:
12395                        LA90_295 = self.input.LA(3)
12396
12397                        if (self.synpred182()) :
12398                            alt90 = 1
12399                    elif LA90 == OCTAL_LITERAL:
12400                        LA90_296 = self.input.LA(3)
12401
12402                        if (self.synpred182()) :
12403                            alt90 = 1
12404                    elif LA90 == DECIMAL_LITERAL:
12405                        LA90_297 = self.input.LA(3)
12406
12407                        if (self.synpred182()) :
12408                            alt90 = 1
12409                    elif LA90 == CHARACTER_LITERAL:
12410                        LA90_298 = self.input.LA(3)
12411
12412                        if (self.synpred182()) :
12413                            alt90 = 1
12414                    elif LA90 == STRING_LITERAL:
12415                        LA90_299 = self.input.LA(3)
12416
12417                        if (self.synpred182()) :
12418                            alt90 = 1
12419                    elif LA90 == FLOATING_POINT_LITERAL:
12420                        LA90_300 = self.input.LA(3)
12421
12422                        if (self.synpred182()) :
12423                            alt90 = 1
12424                    elif LA90 == 72:
12425                        LA90_301 = self.input.LA(3)
12426
12427                        if (self.synpred182()) :
12428                            alt90 = 1
12429                    elif LA90 == 73:
12430                        LA90_302 = self.input.LA(3)
12431
12432                        if (self.synpred182()) :
12433                            alt90 = 1
12434                    elif LA90 == 66 or LA90 == 68 or LA90 == 69 or LA90 == 77 or LA90 == 78 or LA90 == 79:
12435                        LA90_303 = self.input.LA(3)
12436
12437                        if (self.synpred182()) :
12438                            alt90 = 1
12439                    elif LA90 == 74:
12440                        LA90_304 = self.input.LA(3)
12441
12442                        if (self.synpred182()) :
12443                            alt90 = 1
12444                if alt90 == 1:
12445                    # C.g:0:0: statement_list
12446                    self.following.append(self.FOLLOW_statement_list_in_macro_statement2170)
12447                    self.statement_list()
12448                    self.following.pop()
12449                    if self.failed:
12450                        return
12451
12452
12453
12454                # C.g:544:49: ( expression )?
12455                alt91 = 2
12456                LA91_0 = self.input.LA(1)
12457
12458                if ((IDENTIFIER <= LA91_0 <= FLOATING_POINT_LITERAL) or LA91_0 == 62 or LA91_0 == 66 or (68 <= LA91_0 <= 69) or (72 <= LA91_0 <= 74) or (77 <= LA91_0 <= 79)) :
12459                    alt91 = 1
12460                if alt91 == 1:
12461                    # C.g:0:0: expression
12462                    self.following.append(self.FOLLOW_expression_in_macro_statement2173)
12463                    self.expression()
12464                    self.following.pop()
12465                    if self.failed:
12466                        return
12467
12468
12469
12470                self.match(self.input, 63, self.FOLLOW_63_in_macro_statement2176)
12471                if self.failed:
12472                    return
12473
12474
12475
12476
12477            except RecognitionException, re:
12478                self.reportError(re)
12479                self.recover(self.input, re)
12480        finally:
12481            if self.backtracking > 0:
12482                self.memoize(self.input, 64, macro_statement_StartIndex)
12483
12484            pass
12485
12486        return
12487
12488    # $ANTLR end macro_statement
12489
12490
12491    # $ANTLR start labeled_statement
12492    # C.g:547:1: labeled_statement : ( IDENTIFIER ':' statement | 'case' constant_expression ':' statement | 'default' ':' statement );
12493    def labeled_statement(self, ):
12494
12495        labeled_statement_StartIndex = self.input.index()
12496        try:
12497            try:
12498                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 65):
12499                    return
12500
12501                # C.g:548:2: ( IDENTIFIER ':' statement | 'case' constant_expression ':' statement | 'default' ':' statement )
12502                alt92 = 3
12503                LA92 = self.input.LA(1)
12504                if LA92 == IDENTIFIER:
12505                    alt92 = 1
12506                elif LA92 == 106:
12507                    alt92 = 2
12508                elif LA92 == 107:
12509                    alt92 = 3
12510                else:
12511                    if self.backtracking > 0:
12512                        self.failed = True
12513                        return
12514
12515                    nvae = NoViableAltException("547:1: labeled_statement : ( IDENTIFIER ':' statement | 'case' constant_expression ':' statement | 'default' ':' statement );", 92, 0, self.input)
12516
12517                    raise nvae
12518
12519                if alt92 == 1:
12520                    # C.g:548:4: IDENTIFIER ':' statement
12521                    self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_labeled_statement2188)
12522                    if self.failed:
12523                        return
12524                    self.match(self.input, 47, self.FOLLOW_47_in_labeled_statement2190)
12525                    if self.failed:
12526                        return
12527                    self.following.append(self.FOLLOW_statement_in_labeled_statement2192)
12528                    self.statement()
12529                    self.following.pop()
12530                    if self.failed:
12531                        return
12532
12533
12534                elif alt92 == 2:
12535                    # C.g:549:4: 'case' constant_expression ':' statement
12536                    self.match(self.input, 106, self.FOLLOW_106_in_labeled_statement2197)
12537                    if self.failed:
12538                        return
12539                    self.following.append(self.FOLLOW_constant_expression_in_labeled_statement2199)
12540                    self.constant_expression()
12541                    self.following.pop()
12542                    if self.failed:
12543                        return
12544                    self.match(self.input, 47, self.FOLLOW_47_in_labeled_statement2201)
12545                    if self.failed:
12546                        return
12547                    self.following.append(self.FOLLOW_statement_in_labeled_statement2203)
12548                    self.statement()
12549                    self.following.pop()
12550                    if self.failed:
12551                        return
12552
12553
12554                elif alt92 == 3:
12555                    # C.g:550:4: 'default' ':' statement
12556                    self.match(self.input, 107, self.FOLLOW_107_in_labeled_statement2208)
12557                    if self.failed:
12558                        return
12559                    self.match(self.input, 47, self.FOLLOW_47_in_labeled_statement2210)
12560                    if self.failed:
12561                        return
12562                    self.following.append(self.FOLLOW_statement_in_labeled_statement2212)
12563                    self.statement()
12564                    self.following.pop()
12565                    if self.failed:
12566                        return
12567
12568
12569
12570            except RecognitionException, re:
12571                self.reportError(re)
12572                self.recover(self.input, re)
12573        finally:
12574            if self.backtracking > 0:
12575                self.memoize(self.input, 65, labeled_statement_StartIndex)
12576
12577            pass
12578
12579        return
12580
12581    # $ANTLR end labeled_statement
12582
12583    class compound_statement_return(object):
12584        def __init__(self):
12585            self.start = None
12586            self.stop = None
12587
12588
12589
12590    # $ANTLR start compound_statement
12591    # C.g:553:1: compound_statement : '{' ( declaration )* ( statement_list )? '}' ;
12592    def compound_statement(self, ):
12593
12594        retval = self.compound_statement_return()
12595        retval.start = self.input.LT(1)
12596        compound_statement_StartIndex = self.input.index()
12597        try:
12598            try:
12599                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 66):
12600                    return retval
12601
12602                # C.g:554:2: ( '{' ( declaration )* ( statement_list )? '}' )
12603                # C.g:554:4: '{' ( declaration )* ( statement_list )? '}'
12604                self.match(self.input, 43, self.FOLLOW_43_in_compound_statement2223)
12605                if self.failed:
12606                    return retval
12607                # C.g:554:8: ( declaration )*
12608                while True: #loop93
12609                    alt93 = 2
12610                    LA93 = self.input.LA(1)
12611                    if LA93 == IDENTIFIER:
12612                        LA93 = self.input.LA(2)
12613                        if LA93 == 62:
12614                            LA93_44 = self.input.LA(3)
12615
12616                            if (self.synpred186()) :
12617                                alt93 = 1
12618
12619
12620                        elif LA93 == IDENTIFIER:
12621                            LA93_47 = self.input.LA(3)
12622
12623                            if (self.synpred186()) :
12624                                alt93 = 1
12625
12626
12627                        elif LA93 == 66:
12628                            LA93_48 = self.input.LA(3)
12629
12630                            if (self.synpred186()) :
12631                                alt93 = 1
12632
12633
12634                        elif LA93 == 58:
12635                            LA93_49 = self.input.LA(3)
12636
12637                            if (self.synpred186()) :
12638                                alt93 = 1
12639
12640
12641                        elif LA93 == 59:
12642                            LA93_50 = self.input.LA(3)
12643
12644                            if (self.synpred186()) :
12645                                alt93 = 1
12646
12647
12648                        elif LA93 == 60:
12649                            LA93_51 = self.input.LA(3)
12650
12651                            if (self.synpred186()) :
12652                                alt93 = 1
12653
12654
12655                        elif LA93 == 25:
12656                            LA93_52 = self.input.LA(3)
12657
12658                            if (self.synpred186()) :
12659                                alt93 = 1
12660
12661
12662                        elif LA93 == 29 or LA93 == 30 or LA93 == 31 or LA93 == 32 or LA93 == 33:
12663                            LA93_53 = self.input.LA(3)
12664
12665                            if (self.synpred186()) :
12666                                alt93 = 1
12667
12668
12669                        elif LA93 == 34:
12670                            LA93_54 = self.input.LA(3)
12671
12672                            if (self.synpred186()) :
12673                                alt93 = 1
12674
12675
12676                        elif LA93 == 35:
12677                            LA93_55 = self.input.LA(3)
12678
12679                            if (self.synpred186()) :
12680                                alt93 = 1
12681
12682
12683                        elif LA93 == 36:
12684                            LA93_56 = self.input.LA(3)
12685
12686                            if (self.synpred186()) :
12687                                alt93 = 1
12688
12689
12690                        elif LA93 == 37:
12691                            LA93_57 = self.input.LA(3)
12692
12693                            if (self.synpred186()) :
12694                                alt93 = 1
12695
12696
12697                        elif LA93 == 38:
12698                            LA93_58 = self.input.LA(3)
12699
12700                            if (self.synpred186()) :
12701                                alt93 = 1
12702
12703
12704                        elif LA93 == 39:
12705                            LA93_59 = self.input.LA(3)
12706
12707                            if (self.synpred186()) :
12708                                alt93 = 1
12709
12710
12711                        elif LA93 == 40:
12712                            LA93_60 = self.input.LA(3)
12713
12714                            if (self.synpred186()) :
12715                                alt93 = 1
12716
12717
12718                        elif LA93 == 41:
12719                            LA93_61 = self.input.LA(3)
12720
12721                            if (self.synpred186()) :
12722                                alt93 = 1
12723
12724
12725                        elif LA93 == 42:
12726                            LA93_62 = self.input.LA(3)
12727
12728                            if (self.synpred186()) :
12729                                alt93 = 1
12730
12731
12732                        elif LA93 == 45 or LA93 == 46:
12733                            LA93_63 = self.input.LA(3)
12734
12735                            if (self.synpred186()) :
12736                                alt93 = 1
12737
12738
12739                        elif LA93 == 48:
12740                            LA93_64 = self.input.LA(3)
12741
12742                            if (self.synpred186()) :
12743                                alt93 = 1
12744
12745
12746                        elif LA93 == 49 or LA93 == 50 or LA93 == 51 or LA93 == 52 or LA93 == 53 or LA93 == 54 or LA93 == 55 or LA93 == 56 or LA93 == 57 or LA93 == 61:
12747                            LA93_65 = self.input.LA(3)
12748
12749                            if (self.synpred186()) :
12750                                alt93 = 1
12751
12752
12753
12754                    elif LA93 == 26:
12755                        LA93 = self.input.LA(2)
12756                        if LA93 == 29 or LA93 == 30 or LA93 == 31 or LA93 == 32 or LA93 == 33:
12757                            LA93_86 = self.input.LA(3)
12758
12759                            if (self.synpred186()) :
12760                                alt93 = 1
12761
12762
12763                        elif LA93 == 34:
12764                            LA93_87 = self.input.LA(3)
12765
12766                            if (self.synpred186()) :
12767                                alt93 = 1
12768
12769
12770                        elif LA93 == 35:
12771                            LA93_88 = self.input.LA(3)
12772
12773                            if (self.synpred186()) :
12774                                alt93 = 1
12775
12776
12777                        elif LA93 == 36:
12778                            LA93_89 = self.input.LA(3)
12779
12780                            if (self.synpred186()) :
12781                                alt93 = 1
12782
12783
12784                        elif LA93 == 37:
12785                            LA93_90 = self.input.LA(3)
12786
12787                            if (self.synpred186()) :
12788                                alt93 = 1
12789
12790
12791                        elif LA93 == 38:
12792                            LA93_91 = self.input.LA(3)
12793
12794                            if (self.synpred186()) :
12795                                alt93 = 1
12796
12797
12798                        elif LA93 == 39:
12799                            LA93_92 = self.input.LA(3)
12800
12801                            if (self.synpred186()) :
12802                                alt93 = 1
12803
12804
12805                        elif LA93 == 40:
12806                            LA93_93 = self.input.LA(3)
12807
12808                            if (self.synpred186()) :
12809                                alt93 = 1
12810
12811
12812                        elif LA93 == 41:
12813                            LA93_94 = self.input.LA(3)
12814
12815                            if (self.synpred186()) :
12816                                alt93 = 1
12817
12818
12819                        elif LA93 == 42:
12820                            LA93_95 = self.input.LA(3)
12821
12822                            if (self.synpred186()) :
12823                                alt93 = 1
12824
12825
12826                        elif LA93 == 45 or LA93 == 46:
12827                            LA93_96 = self.input.LA(3)
12828
12829                            if (self.synpred186()) :
12830                                alt93 = 1
12831
12832
12833                        elif LA93 == 48:
12834                            LA93_97 = self.input.LA(3)
12835
12836                            if (self.synpred186()) :
12837                                alt93 = 1
12838
12839
12840                        elif LA93 == IDENTIFIER:
12841                            LA93_98 = self.input.LA(3)
12842
12843                            if (self.synpred186()) :
12844                                alt93 = 1
12845
12846
12847                        elif LA93 == 58:
12848                            LA93_99 = self.input.LA(3)
12849
12850                            if (self.synpred186()) :
12851                                alt93 = 1
12852
12853
12854                        elif LA93 == 66:
12855                            LA93_100 = self.input.LA(3)
12856
12857                            if (self.synpred186()) :
12858                                alt93 = 1
12859
12860
12861                        elif LA93 == 59:
12862                            LA93_101 = self.input.LA(3)
12863
12864                            if (self.synpred186()) :
12865                                alt93 = 1
12866
12867
12868                        elif LA93 == 60:
12869                            LA93_102 = self.input.LA(3)
12870
12871                            if (self.synpred186()) :
12872                                alt93 = 1
12873
12874
12875                        elif LA93 == 49 or LA93 == 50 or LA93 == 51 or LA93 == 52 or LA93 == 53 or LA93 == 54 or LA93 == 55 or LA93 == 56 or LA93 == 57 or LA93 == 61:
12876                            LA93_103 = self.input.LA(3)
12877
12878                            if (self.synpred186()) :
12879                                alt93 = 1
12880
12881
12882                        elif LA93 == 62:
12883                            LA93_104 = self.input.LA(3)
12884
12885                            if (self.synpred186()) :
12886                                alt93 = 1
12887
12888
12889
12890                    elif LA93 == 29 or LA93 == 30 or LA93 == 31 or LA93 == 32 or LA93 == 33:
12891                        LA93 = self.input.LA(2)
12892                        if LA93 == 66:
12893                            LA93_105 = self.input.LA(3)
12894
12895                            if (self.synpred186()) :
12896                                alt93 = 1
12897
12898
12899                        elif LA93 == 58:
12900                            LA93_106 = self.input.LA(3)
12901
12902                            if (self.synpred186()) :
12903                                alt93 = 1
12904
12905
12906                        elif LA93 == 59:
12907                            LA93_107 = self.input.LA(3)
12908
12909                            if (self.synpred186()) :
12910                                alt93 = 1
12911
12912
12913                        elif LA93 == 60:
12914                            LA93_108 = self.input.LA(3)
12915
12916                            if (self.synpred186()) :
12917                                alt93 = 1
12918
12919
12920                        elif LA93 == IDENTIFIER:
12921                            LA93_109 = self.input.LA(3)
12922
12923                            if (self.synpred186()) :
12924                                alt93 = 1
12925
12926
12927                        elif LA93 == 62:
12928                            LA93_110 = self.input.LA(3)
12929
12930                            if (self.synpred186()) :
12931                                alt93 = 1
12932
12933
12934                        elif LA93 == 25:
12935                            LA93_111 = self.input.LA(3)
12936
12937                            if (self.synpred186()) :
12938                                alt93 = 1
12939
12940
12941                        elif LA93 == 29 or LA93 == 30 or LA93 == 31 or LA93 == 32 or LA93 == 33:
12942                            LA93_112 = self.input.LA(3)
12943
12944                            if (self.synpred186()) :
12945                                alt93 = 1
12946
12947
12948                        elif LA93 == 34:
12949                            LA93_113 = self.input.LA(3)
12950
12951                            if (self.synpred186()) :
12952                                alt93 = 1
12953
12954
12955                        elif LA93 == 35:
12956                            LA93_114 = self.input.LA(3)
12957
12958                            if (self.synpred186()) :
12959                                alt93 = 1
12960
12961
12962                        elif LA93 == 36:
12963                            LA93_115 = self.input.LA(3)
12964
12965                            if (self.synpred186()) :
12966                                alt93 = 1
12967
12968
12969                        elif LA93 == 37:
12970                            LA93_116 = self.input.LA(3)
12971
12972                            if (self.synpred186()) :
12973                                alt93 = 1
12974
12975
12976                        elif LA93 == 38:
12977                            LA93_117 = self.input.LA(3)
12978
12979                            if (self.synpred186()) :
12980                                alt93 = 1
12981
12982
12983                        elif LA93 == 39:
12984                            LA93_118 = self.input.LA(3)
12985
12986                            if (self.synpred186()) :
12987                                alt93 = 1
12988
12989
12990                        elif LA93 == 40:
12991                            LA93_119 = self.input.LA(3)
12992
12993                            if (self.synpred186()) :
12994                                alt93 = 1
12995
12996
12997                        elif LA93 == 41:
12998                            LA93_120 = self.input.LA(3)
12999
13000                            if (self.synpred186()) :
13001                                alt93 = 1
13002
13003
13004                        elif LA93 == 42:
13005                            LA93_121 = self.input.LA(3)
13006
13007                            if (self.synpred186()) :
13008                                alt93 = 1
13009
13010
13011                        elif LA93 == 45 or LA93 == 46:
13012                            LA93_122 = self.input.LA(3)
13013
13014                            if (self.synpred186()) :
13015                                alt93 = 1
13016
13017
13018                        elif LA93 == 48:
13019                            LA93_123 = self.input.LA(3)
13020
13021                            if (self.synpred186()) :
13022                                alt93 = 1
13023
13024
13025                        elif LA93 == 49 or LA93 == 50 or LA93 == 51 or LA93 == 52 or LA93 == 53 or LA93 == 54 or LA93 == 55 or LA93 == 56 or LA93 == 57 or LA93 == 61:
13026                            LA93_124 = self.input.LA(3)
13027
13028                            if (self.synpred186()) :
13029                                alt93 = 1
13030
13031
13032
13033                    elif LA93 == 34:
13034                        LA93 = self.input.LA(2)
13035                        if LA93 == 66:
13036                            LA93_125 = self.input.LA(3)
13037
13038                            if (self.synpred186()) :
13039                                alt93 = 1
13040
13041
13042                        elif LA93 == 58:
13043                            LA93_126 = self.input.LA(3)
13044
13045                            if (self.synpred186()) :
13046                                alt93 = 1
13047
13048
13049                        elif LA93 == 59:
13050                            LA93_127 = self.input.LA(3)
13051
13052                            if (self.synpred186()) :
13053                                alt93 = 1
13054
13055
13056                        elif LA93 == 60:
13057                            LA93_128 = self.input.LA(3)
13058
13059                            if (self.synpred186()) :
13060                                alt93 = 1
13061
13062
13063                        elif LA93 == IDENTIFIER:
13064                            LA93_129 = self.input.LA(3)
13065
13066                            if (self.synpred186()) :
13067                                alt93 = 1
13068
13069
13070                        elif LA93 == 62:
13071                            LA93_130 = self.input.LA(3)
13072
13073                            if (self.synpred186()) :
13074                                alt93 = 1
13075
13076
13077                        elif LA93 == 25:
13078                            LA93_131 = self.input.LA(3)
13079
13080                            if (self.synpred186()) :
13081                                alt93 = 1
13082
13083
13084                        elif LA93 == 29 or LA93 == 30 or LA93 == 31 or LA93 == 32 or LA93 == 33:
13085                            LA93_132 = self.input.LA(3)
13086
13087                            if (self.synpred186()) :
13088                                alt93 = 1
13089
13090
13091                        elif LA93 == 34:
13092                            LA93_133 = self.input.LA(3)
13093
13094                            if (self.synpred186()) :
13095                                alt93 = 1
13096
13097
13098                        elif LA93 == 35:
13099                            LA93_134 = self.input.LA(3)
13100
13101                            if (self.synpred186()) :
13102                                alt93 = 1
13103
13104
13105                        elif LA93 == 36:
13106                            LA93_135 = self.input.LA(3)
13107
13108                            if (self.synpred186()) :
13109                                alt93 = 1
13110
13111
13112                        elif LA93 == 37:
13113                            LA93_136 = self.input.LA(3)
13114
13115                            if (self.synpred186()) :
13116                                alt93 = 1
13117
13118
13119                        elif LA93 == 38:
13120                            LA93_137 = self.input.LA(3)
13121
13122                            if (self.synpred186()) :
13123                                alt93 = 1
13124
13125
13126                        elif LA93 == 39:
13127                            LA93_138 = self.input.LA(3)
13128
13129                            if (self.synpred186()) :
13130                                alt93 = 1
13131
13132
13133                        elif LA93 == 40:
13134                            LA93_139 = self.input.LA(3)
13135
13136                            if (self.synpred186()) :
13137                                alt93 = 1
13138
13139
13140                        elif LA93 == 41:
13141                            LA93_140 = self.input.LA(3)
13142
13143                            if (self.synpred186()) :
13144                                alt93 = 1
13145
13146
13147                        elif LA93 == 42:
13148                            LA93_141 = self.input.LA(3)
13149
13150                            if (self.synpred186()) :
13151                                alt93 = 1
13152
13153
13154                        elif LA93 == 45 or LA93 == 46:
13155                            LA93_142 = self.input.LA(3)
13156
13157                            if (self.synpred186()) :
13158                                alt93 = 1
13159
13160
13161                        elif LA93 == 48:
13162                            LA93_143 = self.input.LA(3)
13163
13164                            if (self.synpred186()) :
13165                                alt93 = 1
13166
13167
13168                        elif LA93 == 49 or LA93 == 50 or LA93 == 51 or LA93 == 52 or LA93 == 53 or LA93 == 54 or LA93 == 55 or LA93 == 56 or LA93 == 57 or LA93 == 61:
13169                            LA93_144 = self.input.LA(3)
13170
13171                            if (self.synpred186()) :
13172                                alt93 = 1
13173
13174
13175
13176                    elif LA93 == 35:
13177                        LA93 = self.input.LA(2)
13178                        if LA93 == 66:
13179                            LA93_145 = self.input.LA(3)
13180
13181                            if (self.synpred186()) :
13182                                alt93 = 1
13183
13184
13185                        elif LA93 == 58:
13186                            LA93_146 = self.input.LA(3)
13187
13188                            if (self.synpred186()) :
13189                                alt93 = 1
13190
13191
13192                        elif LA93 == 59:
13193                            LA93_147 = self.input.LA(3)
13194
13195                            if (self.synpred186()) :
13196                                alt93 = 1
13197
13198
13199                        elif LA93 == 60:
13200                            LA93_148 = self.input.LA(3)
13201
13202                            if (self.synpred186()) :
13203                                alt93 = 1
13204
13205
13206                        elif LA93 == IDENTIFIER:
13207                            LA93_149 = self.input.LA(3)
13208
13209                            if (self.synpred186()) :
13210                                alt93 = 1
13211
13212
13213                        elif LA93 == 62:
13214                            LA93_150 = self.input.LA(3)
13215
13216                            if (self.synpred186()) :
13217                                alt93 = 1
13218
13219
13220                        elif LA93 == 25:
13221                            LA93_151 = self.input.LA(3)
13222
13223                            if (self.synpred186()) :
13224                                alt93 = 1
13225
13226
13227                        elif LA93 == 29 or LA93 == 30 or LA93 == 31 or LA93 == 32 or LA93 == 33:
13228                            LA93_152 = self.input.LA(3)
13229
13230                            if (self.synpred186()) :
13231                                alt93 = 1
13232
13233
13234                        elif LA93 == 34:
13235                            LA93_153 = self.input.LA(3)
13236
13237                            if (self.synpred186()) :
13238                                alt93 = 1
13239
13240
13241                        elif LA93 == 35:
13242                            LA93_154 = self.input.LA(3)
13243
13244                            if (self.synpred186()) :
13245                                alt93 = 1
13246
13247
13248                        elif LA93 == 36:
13249                            LA93_155 = self.input.LA(3)
13250
13251                            if (self.synpred186()) :
13252                                alt93 = 1
13253
13254
13255                        elif LA93 == 37:
13256                            LA93_156 = self.input.LA(3)
13257
13258                            if (self.synpred186()) :
13259                                alt93 = 1
13260
13261
13262                        elif LA93 == 38:
13263                            LA93_157 = self.input.LA(3)
13264
13265                            if (self.synpred186()) :
13266                                alt93 = 1
13267
13268
13269                        elif LA93 == 39:
13270                            LA93_158 = self.input.LA(3)
13271
13272                            if (self.synpred186()) :
13273                                alt93 = 1
13274
13275
13276                        elif LA93 == 40:
13277                            LA93_159 = self.input.LA(3)
13278
13279                            if (self.synpred186()) :
13280                                alt93 = 1
13281
13282
13283                        elif LA93 == 41:
13284                            LA93_160 = self.input.LA(3)
13285
13286                            if (self.synpred186()) :
13287                                alt93 = 1
13288
13289
13290                        elif LA93 == 42:
13291                            LA93_161 = self.input.LA(3)
13292
13293                            if (self.synpred186()) :
13294                                alt93 = 1
13295
13296
13297                        elif LA93 == 45 or LA93 == 46:
13298                            LA93_162 = self.input.LA(3)
13299
13300                            if (self.synpred186()) :
13301                                alt93 = 1
13302
13303
13304                        elif LA93 == 48:
13305                            LA93_163 = self.input.LA(3)
13306
13307                            if (self.synpred186()) :
13308                                alt93 = 1
13309
13310
13311                        elif LA93 == 49 or LA93 == 50 or LA93 == 51 or LA93 == 52 or LA93 == 53 or LA93 == 54 or LA93 == 55 or LA93 == 56 or LA93 == 57 or LA93 == 61:
13312                            LA93_164 = self.input.LA(3)
13313
13314                            if (self.synpred186()) :
13315                                alt93 = 1
13316
13317
13318
13319                    elif LA93 == 36:
13320                        LA93 = self.input.LA(2)
13321                        if LA93 == 66:
13322                            LA93_165 = self.input.LA(3)
13323
13324                            if (self.synpred186()) :
13325                                alt93 = 1
13326
13327
13328                        elif LA93 == 58:
13329                            LA93_166 = self.input.LA(3)
13330
13331                            if (self.synpred186()) :
13332                                alt93 = 1
13333
13334
13335                        elif LA93 == 59:
13336                            LA93_167 = self.input.LA(3)
13337
13338                            if (self.synpred186()) :
13339                                alt93 = 1
13340
13341
13342                        elif LA93 == 60:
13343                            LA93_168 = self.input.LA(3)
13344
13345                            if (self.synpred186()) :
13346                                alt93 = 1
13347
13348
13349                        elif LA93 == IDENTIFIER:
13350                            LA93_169 = self.input.LA(3)
13351
13352                            if (self.synpred186()) :
13353                                alt93 = 1
13354
13355
13356                        elif LA93 == 62:
13357                            LA93_170 = self.input.LA(3)
13358
13359                            if (self.synpred186()) :
13360                                alt93 = 1
13361
13362
13363                        elif LA93 == 25:
13364                            LA93_171 = self.input.LA(3)
13365
13366                            if (self.synpred186()) :
13367                                alt93 = 1
13368
13369
13370                        elif LA93 == 29 or LA93 == 30 or LA93 == 31 or LA93 == 32 or LA93 == 33:
13371                            LA93_172 = self.input.LA(3)
13372
13373                            if (self.synpred186()) :
13374                                alt93 = 1
13375
13376
13377                        elif LA93 == 34:
13378                            LA93_173 = self.input.LA(3)
13379
13380                            if (self.synpred186()) :
13381                                alt93 = 1
13382
13383
13384                        elif LA93 == 35:
13385                            LA93_174 = self.input.LA(3)
13386
13387                            if (self.synpred186()) :
13388                                alt93 = 1
13389
13390
13391                        elif LA93 == 36:
13392                            LA93_175 = self.input.LA(3)
13393
13394                            if (self.synpred186()) :
13395                                alt93 = 1
13396
13397
13398                        elif LA93 == 37:
13399                            LA93_176 = self.input.LA(3)
13400
13401                            if (self.synpred186()) :
13402                                alt93 = 1
13403
13404
13405                        elif LA93 == 38:
13406                            LA93_177 = self.input.LA(3)
13407
13408                            if (self.synpred186()) :
13409                                alt93 = 1
13410
13411
13412                        elif LA93 == 39:
13413                            LA93_178 = self.input.LA(3)
13414
13415                            if (self.synpred186()) :
13416                                alt93 = 1
13417
13418
13419                        elif LA93 == 40:
13420                            LA93_179 = self.input.LA(3)
13421
13422                            if (self.synpred186()) :
13423                                alt93 = 1
13424
13425
13426                        elif LA93 == 41:
13427                            LA93_180 = self.input.LA(3)
13428
13429                            if (self.synpred186()) :
13430                                alt93 = 1
13431
13432
13433                        elif LA93 == 42:
13434                            LA93_181 = self.input.LA(3)
13435
13436                            if (self.synpred186()) :
13437                                alt93 = 1
13438
13439
13440                        elif LA93 == 45 or LA93 == 46:
13441                            LA93_182 = self.input.LA(3)
13442
13443                            if (self.synpred186()) :
13444                                alt93 = 1
13445
13446
13447                        elif LA93 == 48:
13448                            LA93_183 = self.input.LA(3)
13449
13450                            if (self.synpred186()) :
13451                                alt93 = 1
13452
13453
13454                        elif LA93 == 49 or LA93 == 50 or LA93 == 51 or LA93 == 52 or LA93 == 53 or LA93 == 54 or LA93 == 55 or LA93 == 56 or LA93 == 57 or LA93 == 61:
13455                            LA93_184 = self.input.LA(3)
13456
13457                            if (self.synpred186()) :
13458                                alt93 = 1
13459
13460
13461
13462                    elif LA93 == 37:
13463                        LA93 = self.input.LA(2)
13464                        if LA93 == 66:
13465                            LA93_185 = self.input.LA(3)
13466
13467                            if (self.synpred186()) :
13468                                alt93 = 1
13469
13470
13471                        elif LA93 == 58:
13472                            LA93_186 = self.input.LA(3)
13473
13474                            if (self.synpred186()) :
13475                                alt93 = 1
13476
13477
13478                        elif LA93 == 59:
13479                            LA93_187 = self.input.LA(3)
13480
13481                            if (self.synpred186()) :
13482                                alt93 = 1
13483
13484
13485                        elif LA93 == 60:
13486                            LA93_188 = self.input.LA(3)
13487
13488                            if (self.synpred186()) :
13489                                alt93 = 1
13490
13491
13492                        elif LA93 == IDENTIFIER:
13493                            LA93_189 = self.input.LA(3)
13494
13495                            if (self.synpred186()) :
13496                                alt93 = 1
13497
13498
13499                        elif LA93 == 62:
13500                            LA93_190 = self.input.LA(3)
13501
13502                            if (self.synpred186()) :
13503                                alt93 = 1
13504
13505
13506                        elif LA93 == 25:
13507                            LA93_191 = self.input.LA(3)
13508
13509                            if (self.synpred186()) :
13510                                alt93 = 1
13511
13512
13513                        elif LA93 == 29 or LA93 == 30 or LA93 == 31 or LA93 == 32 or LA93 == 33:
13514                            LA93_192 = self.input.LA(3)
13515
13516                            if (self.synpred186()) :
13517                                alt93 = 1
13518
13519
13520                        elif LA93 == 34:
13521                            LA93_193 = self.input.LA(3)
13522
13523                            if (self.synpred186()) :
13524                                alt93 = 1
13525
13526
13527                        elif LA93 == 35:
13528                            LA93_194 = self.input.LA(3)
13529
13530                            if (self.synpred186()) :
13531                                alt93 = 1
13532
13533
13534                        elif LA93 == 36:
13535                            LA93_195 = self.input.LA(3)
13536
13537                            if (self.synpred186()) :
13538                                alt93 = 1
13539
13540
13541                        elif LA93 == 37:
13542                            LA93_196 = self.input.LA(3)
13543
13544                            if (self.synpred186()) :
13545                                alt93 = 1
13546
13547
13548                        elif LA93 == 38:
13549                            LA93_197 = self.input.LA(3)
13550
13551                            if (self.synpred186()) :
13552                                alt93 = 1
13553
13554
13555                        elif LA93 == 39:
13556                            LA93_198 = self.input.LA(3)
13557
13558                            if (self.synpred186()) :
13559                                alt93 = 1
13560
13561
13562                        elif LA93 == 40:
13563                            LA93_199 = self.input.LA(3)
13564
13565                            if (self.synpred186()) :
13566                                alt93 = 1
13567
13568
13569                        elif LA93 == 41:
13570                            LA93_200 = self.input.LA(3)
13571
13572                            if (self.synpred186()) :
13573                                alt93 = 1
13574
13575
13576                        elif LA93 == 42:
13577                            LA93_201 = self.input.LA(3)
13578
13579                            if (self.synpred186()) :
13580                                alt93 = 1
13581
13582
13583                        elif LA93 == 45 or LA93 == 46:
13584                            LA93_202 = self.input.LA(3)
13585
13586                            if (self.synpred186()) :
13587                                alt93 = 1
13588
13589
13590                        elif LA93 == 48:
13591                            LA93_203 = self.input.LA(3)
13592
13593                            if (self.synpred186()) :
13594                                alt93 = 1
13595
13596
13597                        elif LA93 == 49 or LA93 == 50 or LA93 == 51 or LA93 == 52 or LA93 == 53 or LA93 == 54 or LA93 == 55 or LA93 == 56 or LA93 == 57 or LA93 == 61:
13598                            LA93_204 = self.input.LA(3)
13599
13600                            if (self.synpred186()) :
13601                                alt93 = 1
13602
13603
13604
13605                    elif LA93 == 38:
13606                        LA93 = self.input.LA(2)
13607                        if LA93 == 66:
13608                            LA93_205 = self.input.LA(3)
13609
13610                            if (self.synpred186()) :
13611                                alt93 = 1
13612
13613
13614                        elif LA93 == 58:
13615                            LA93_206 = self.input.LA(3)
13616
13617                            if (self.synpred186()) :
13618                                alt93 = 1
13619
13620
13621                        elif LA93 == 59:
13622                            LA93_207 = self.input.LA(3)
13623
13624                            if (self.synpred186()) :
13625                                alt93 = 1
13626
13627
13628                        elif LA93 == 60:
13629                            LA93_208 = self.input.LA(3)
13630
13631                            if (self.synpred186()) :
13632                                alt93 = 1
13633
13634
13635                        elif LA93 == IDENTIFIER:
13636                            LA93_209 = self.input.LA(3)
13637
13638                            if (self.synpred186()) :
13639                                alt93 = 1
13640
13641
13642                        elif LA93 == 62:
13643                            LA93_210 = self.input.LA(3)
13644
13645                            if (self.synpred186()) :
13646                                alt93 = 1
13647
13648
13649                        elif LA93 == 25:
13650                            LA93_211 = self.input.LA(3)
13651
13652                            if (self.synpred186()) :
13653                                alt93 = 1
13654
13655
13656                        elif LA93 == 29 or LA93 == 30 or LA93 == 31 or LA93 == 32 or LA93 == 33:
13657                            LA93_212 = self.input.LA(3)
13658
13659                            if (self.synpred186()) :
13660                                alt93 = 1
13661
13662
13663                        elif LA93 == 34:
13664                            LA93_213 = self.input.LA(3)
13665
13666                            if (self.synpred186()) :
13667                                alt93 = 1
13668
13669
13670                        elif LA93 == 35:
13671                            LA93_214 = self.input.LA(3)
13672
13673                            if (self.synpred186()) :
13674                                alt93 = 1
13675
13676
13677                        elif LA93 == 36:
13678                            LA93_215 = self.input.LA(3)
13679
13680                            if (self.synpred186()) :
13681                                alt93 = 1
13682
13683
13684                        elif LA93 == 37:
13685                            LA93_216 = self.input.LA(3)
13686
13687                            if (self.synpred186()) :
13688                                alt93 = 1
13689
13690
13691                        elif LA93 == 38:
13692                            LA93_217 = self.input.LA(3)
13693
13694                            if (self.synpred186()) :
13695                                alt93 = 1
13696
13697
13698                        elif LA93 == 39:
13699                            LA93_218 = self.input.LA(3)
13700
13701                            if (self.synpred186()) :
13702                                alt93 = 1
13703
13704
13705                        elif LA93 == 40:
13706                            LA93_219 = self.input.LA(3)
13707
13708                            if (self.synpred186()) :
13709                                alt93 = 1
13710
13711
13712                        elif LA93 == 41:
13713                            LA93_220 = self.input.LA(3)
13714
13715                            if (self.synpred186()) :
13716                                alt93 = 1
13717
13718
13719                        elif LA93 == 42:
13720                            LA93_221 = self.input.LA(3)
13721
13722                            if (self.synpred186()) :
13723                                alt93 = 1
13724
13725
13726                        elif LA93 == 45 or LA93 == 46:
13727                            LA93_222 = self.input.LA(3)
13728
13729                            if (self.synpred186()) :
13730                                alt93 = 1
13731
13732
13733                        elif LA93 == 48:
13734                            LA93_223 = self.input.LA(3)
13735
13736                            if (self.synpred186()) :
13737                                alt93 = 1
13738
13739
13740                        elif LA93 == 49 or LA93 == 50 or LA93 == 51 or LA93 == 52 or LA93 == 53 or LA93 == 54 or LA93 == 55 or LA93 == 56 or LA93 == 57 or LA93 == 61:
13741                            LA93_224 = self.input.LA(3)
13742
13743                            if (self.synpred186()) :
13744                                alt93 = 1
13745
13746
13747
13748                    elif LA93 == 39:
13749                        LA93 = self.input.LA(2)
13750                        if LA93 == 66:
13751                            LA93_225 = self.input.LA(3)
13752
13753                            if (self.synpred186()) :
13754                                alt93 = 1
13755
13756
13757                        elif LA93 == 58:
13758                            LA93_226 = self.input.LA(3)
13759
13760                            if (self.synpred186()) :
13761                                alt93 = 1
13762
13763
13764                        elif LA93 == 59:
13765                            LA93_227 = self.input.LA(3)
13766
13767                            if (self.synpred186()) :
13768                                alt93 = 1
13769
13770
13771                        elif LA93 == 60:
13772                            LA93_228 = self.input.LA(3)
13773
13774                            if (self.synpred186()) :
13775                                alt93 = 1
13776
13777
13778                        elif LA93 == IDENTIFIER:
13779                            LA93_229 = self.input.LA(3)
13780
13781                            if (self.synpred186()) :
13782                                alt93 = 1
13783
13784
13785                        elif LA93 == 62:
13786                            LA93_230 = self.input.LA(3)
13787
13788                            if (self.synpred186()) :
13789                                alt93 = 1
13790
13791
13792                        elif LA93 == 25:
13793                            LA93_231 = self.input.LA(3)
13794
13795                            if (self.synpred186()) :
13796                                alt93 = 1
13797
13798
13799                        elif LA93 == 29 or LA93 == 30 or LA93 == 31 or LA93 == 32 or LA93 == 33:
13800                            LA93_232 = self.input.LA(3)
13801
13802                            if (self.synpred186()) :
13803                                alt93 = 1
13804
13805
13806                        elif LA93 == 34:
13807                            LA93_233 = self.input.LA(3)
13808
13809                            if (self.synpred186()) :
13810                                alt93 = 1
13811
13812
13813                        elif LA93 == 35:
13814                            LA93_234 = self.input.LA(3)
13815
13816                            if (self.synpred186()) :
13817                                alt93 = 1
13818
13819
13820                        elif LA93 == 36:
13821                            LA93_235 = self.input.LA(3)
13822
13823                            if (self.synpred186()) :
13824                                alt93 = 1
13825
13826
13827                        elif LA93 == 37:
13828                            LA93_236 = self.input.LA(3)
13829
13830                            if (self.synpred186()) :
13831                                alt93 = 1
13832
13833
13834                        elif LA93 == 38:
13835                            LA93_237 = self.input.LA(3)
13836
13837                            if (self.synpred186()) :
13838                                alt93 = 1
13839
13840
13841                        elif LA93 == 39:
13842                            LA93_238 = self.input.LA(3)
13843
13844                            if (self.synpred186()) :
13845                                alt93 = 1
13846
13847
13848                        elif LA93 == 40:
13849                            LA93_239 = self.input.LA(3)
13850
13851                            if (self.synpred186()) :
13852                                alt93 = 1
13853
13854
13855                        elif LA93 == 41:
13856                            LA93_240 = self.input.LA(3)
13857
13858                            if (self.synpred186()) :
13859                                alt93 = 1
13860
13861
13862                        elif LA93 == 42:
13863                            LA93_241 = self.input.LA(3)
13864
13865                            if (self.synpred186()) :
13866                                alt93 = 1
13867
13868
13869                        elif LA93 == 45 or LA93 == 46:
13870                            LA93_242 = self.input.LA(3)
13871
13872                            if (self.synpred186()) :
13873                                alt93 = 1
13874
13875
13876                        elif LA93 == 48:
13877                            LA93_243 = self.input.LA(3)
13878
13879                            if (self.synpred186()) :
13880                                alt93 = 1
13881
13882
13883                        elif LA93 == 49 or LA93 == 50 or LA93 == 51 or LA93 == 52 or LA93 == 53 or LA93 == 54 or LA93 == 55 or LA93 == 56 or LA93 == 57 or LA93 == 61:
13884                            LA93_244 = self.input.LA(3)
13885
13886                            if (self.synpred186()) :
13887                                alt93 = 1
13888
13889
13890
13891                    elif LA93 == 40:
13892                        LA93 = self.input.LA(2)
13893                        if LA93 == 66:
13894                            LA93_245 = self.input.LA(3)
13895
13896                            if (self.synpred186()) :
13897                                alt93 = 1
13898
13899
13900                        elif LA93 == 58:
13901                            LA93_246 = self.input.LA(3)
13902
13903                            if (self.synpred186()) :
13904                                alt93 = 1
13905
13906
13907                        elif LA93 == 59:
13908                            LA93_247 = self.input.LA(3)
13909
13910                            if (self.synpred186()) :
13911                                alt93 = 1
13912
13913
13914                        elif LA93 == 60:
13915                            LA93_248 = self.input.LA(3)
13916
13917                            if (self.synpred186()) :
13918                                alt93 = 1
13919
13920
13921                        elif LA93 == IDENTIFIER:
13922                            LA93_249 = self.input.LA(3)
13923
13924                            if (self.synpred186()) :
13925                                alt93 = 1
13926
13927
13928                        elif LA93 == 62:
13929                            LA93_250 = self.input.LA(3)
13930
13931                            if (self.synpred186()) :
13932                                alt93 = 1
13933
13934
13935                        elif LA93 == 25:
13936                            LA93_251 = self.input.LA(3)
13937
13938                            if (self.synpred186()) :
13939                                alt93 = 1
13940
13941
13942                        elif LA93 == 29 or LA93 == 30 or LA93 == 31 or LA93 == 32 or LA93 == 33:
13943                            LA93_252 = self.input.LA(3)
13944
13945                            if (self.synpred186()) :
13946                                alt93 = 1
13947
13948
13949                        elif LA93 == 34:
13950                            LA93_253 = self.input.LA(3)
13951
13952                            if (self.synpred186()) :
13953                                alt93 = 1
13954
13955
13956                        elif LA93 == 35:
13957                            LA93_254 = self.input.LA(3)
13958
13959                            if (self.synpred186()) :
13960                                alt93 = 1
13961
13962
13963                        elif LA93 == 36:
13964                            LA93_255 = self.input.LA(3)
13965
13966                            if (self.synpred186()) :
13967                                alt93 = 1
13968
13969
13970                        elif LA93 == 37:
13971                            LA93_256 = self.input.LA(3)
13972
13973                            if (self.synpred186()) :
13974                                alt93 = 1
13975
13976
13977                        elif LA93 == 38:
13978                            LA93_257 = self.input.LA(3)
13979
13980                            if (self.synpred186()) :
13981                                alt93 = 1
13982
13983
13984                        elif LA93 == 39:
13985                            LA93_258 = self.input.LA(3)
13986
13987                            if (self.synpred186()) :
13988                                alt93 = 1
13989
13990
13991                        elif LA93 == 40:
13992                            LA93_259 = self.input.LA(3)
13993
13994                            if (self.synpred186()) :
13995                                alt93 = 1
13996
13997
13998                        elif LA93 == 41:
13999                            LA93_260 = self.input.LA(3)
14000
14001                            if (self.synpred186()) :
14002                                alt93 = 1
14003
14004
14005                        elif LA93 == 42:
14006                            LA93_261 = self.input.LA(3)
14007
14008                            if (self.synpred186()) :
14009                                alt93 = 1
14010
14011
14012                        elif LA93 == 45 or LA93 == 46:
14013                            LA93_262 = self.input.LA(3)
14014
14015                            if (self.synpred186()) :
14016                                alt93 = 1
14017
14018
14019                        elif LA93 == 48:
14020                            LA93_263 = self.input.LA(3)
14021
14022                            if (self.synpred186()) :
14023                                alt93 = 1
14024
14025
14026                        elif LA93 == 49 or LA93 == 50 or LA93 == 51 or LA93 == 52 or LA93 == 53 or LA93 == 54 or LA93 == 55 or LA93 == 56 or LA93 == 57 or LA93 == 61:
14027                            LA93_264 = self.input.LA(3)
14028
14029                            if (self.synpred186()) :
14030                                alt93 = 1
14031
14032
14033
14034                    elif LA93 == 41:
14035                        LA93 = self.input.LA(2)
14036                        if LA93 == 66:
14037                            LA93_265 = self.input.LA(3)
14038
14039                            if (self.synpred186()) :
14040                                alt93 = 1
14041
14042
14043                        elif LA93 == 58:
14044                            LA93_266 = self.input.LA(3)
14045
14046                            if (self.synpred186()) :
14047                                alt93 = 1
14048
14049
14050                        elif LA93 == 59:
14051                            LA93_267 = self.input.LA(3)
14052
14053                            if (self.synpred186()) :
14054                                alt93 = 1
14055
14056
14057                        elif LA93 == 60:
14058                            LA93_268 = self.input.LA(3)
14059
14060                            if (self.synpred186()) :
14061                                alt93 = 1
14062
14063
14064                        elif LA93 == IDENTIFIER:
14065                            LA93_269 = self.input.LA(3)
14066
14067                            if (self.synpred186()) :
14068                                alt93 = 1
14069
14070
14071                        elif LA93 == 62:
14072                            LA93_270 = self.input.LA(3)
14073
14074                            if (self.synpred186()) :
14075                                alt93 = 1
14076
14077
14078                        elif LA93 == 25:
14079                            LA93_271 = self.input.LA(3)
14080
14081                            if (self.synpred186()) :
14082                                alt93 = 1
14083
14084
14085                        elif LA93 == 29 or LA93 == 30 or LA93 == 31 or LA93 == 32 or LA93 == 33:
14086                            LA93_272 = self.input.LA(3)
14087
14088                            if (self.synpred186()) :
14089                                alt93 = 1
14090
14091
14092                        elif LA93 == 34:
14093                            LA93_273 = self.input.LA(3)
14094
14095                            if (self.synpred186()) :
14096                                alt93 = 1
14097
14098
14099                        elif LA93 == 35:
14100                            LA93_274 = self.input.LA(3)
14101
14102                            if (self.synpred186()) :
14103                                alt93 = 1
14104
14105
14106                        elif LA93 == 36:
14107                            LA93_275 = self.input.LA(3)
14108
14109                            if (self.synpred186()) :
14110                                alt93 = 1
14111
14112
14113                        elif LA93 == 37:
14114                            LA93_276 = self.input.LA(3)
14115
14116                            if (self.synpred186()) :
14117                                alt93 = 1
14118
14119
14120                        elif LA93 == 38:
14121                            LA93_277 = self.input.LA(3)
14122
14123                            if (self.synpred186()) :
14124                                alt93 = 1
14125
14126
14127                        elif LA93 == 39:
14128                            LA93_278 = self.input.LA(3)
14129
14130                            if (self.synpred186()) :
14131                                alt93 = 1
14132
14133
14134                        elif LA93 == 40:
14135                            LA93_279 = self.input.LA(3)
14136
14137                            if (self.synpred186()) :
14138                                alt93 = 1
14139
14140
14141                        elif LA93 == 41:
14142                            LA93_280 = self.input.LA(3)
14143
14144                            if (self.synpred186()) :
14145                                alt93 = 1
14146
14147
14148                        elif LA93 == 42:
14149                            LA93_281 = self.input.LA(3)
14150
14151                            if (self.synpred186()) :
14152                                alt93 = 1
14153
14154
14155                        elif LA93 == 45 or LA93 == 46:
14156                            LA93_282 = self.input.LA(3)
14157
14158                            if (self.synpred186()) :
14159                                alt93 = 1
14160
14161
14162                        elif LA93 == 48:
14163                            LA93_283 = self.input.LA(3)
14164
14165                            if (self.synpred186()) :
14166                                alt93 = 1
14167
14168
14169                        elif LA93 == 49 or LA93 == 50 or LA93 == 51 or LA93 == 52 or LA93 == 53 or LA93 == 54 or LA93 == 55 or LA93 == 56 or LA93 == 57 or LA93 == 61:
14170                            LA93_284 = self.input.LA(3)
14171
14172                            if (self.synpred186()) :
14173                                alt93 = 1
14174
14175
14176
14177                    elif LA93 == 42:
14178                        LA93 = self.input.LA(2)
14179                        if LA93 == 66:
14180                            LA93_285 = self.input.LA(3)
14181
14182                            if (self.synpred186()) :
14183                                alt93 = 1
14184
14185
14186                        elif LA93 == 58:
14187                            LA93_286 = self.input.LA(3)
14188
14189                            if (self.synpred186()) :
14190                                alt93 = 1
14191
14192
14193                        elif LA93 == 59:
14194                            LA93_287 = self.input.LA(3)
14195
14196                            if (self.synpred186()) :
14197                                alt93 = 1
14198
14199
14200                        elif LA93 == 60:
14201                            LA93_288 = self.input.LA(3)
14202
14203                            if (self.synpred186()) :
14204                                alt93 = 1
14205
14206
14207                        elif LA93 == IDENTIFIER:
14208                            LA93_289 = self.input.LA(3)
14209
14210                            if (self.synpred186()) :
14211                                alt93 = 1
14212
14213
14214                        elif LA93 == 62:
14215                            LA93_290 = self.input.LA(3)
14216
14217                            if (self.synpred186()) :
14218                                alt93 = 1
14219
14220
14221                        elif LA93 == 25:
14222                            LA93_291 = self.input.LA(3)
14223
14224                            if (self.synpred186()) :
14225                                alt93 = 1
14226
14227
14228                        elif LA93 == 29 or LA93 == 30 or LA93 == 31 or LA93 == 32 or LA93 == 33:
14229                            LA93_292 = self.input.LA(3)
14230
14231                            if (self.synpred186()) :
14232                                alt93 = 1
14233
14234
14235                        elif LA93 == 34:
14236                            LA93_293 = self.input.LA(3)
14237
14238                            if (self.synpred186()) :
14239                                alt93 = 1
14240
14241
14242                        elif LA93 == 35:
14243                            LA93_294 = self.input.LA(3)
14244
14245                            if (self.synpred186()) :
14246                                alt93 = 1
14247
14248
14249                        elif LA93 == 36:
14250                            LA93_295 = self.input.LA(3)
14251
14252                            if (self.synpred186()) :
14253                                alt93 = 1
14254
14255
14256                        elif LA93 == 37:
14257                            LA93_296 = self.input.LA(3)
14258
14259                            if (self.synpred186()) :
14260                                alt93 = 1
14261
14262
14263                        elif LA93 == 38:
14264                            LA93_297 = self.input.LA(3)
14265
14266                            if (self.synpred186()) :
14267                                alt93 = 1
14268
14269
14270                        elif LA93 == 39:
14271                            LA93_298 = self.input.LA(3)
14272
14273                            if (self.synpred186()) :
14274                                alt93 = 1
14275
14276
14277                        elif LA93 == 40:
14278                            LA93_299 = self.input.LA(3)
14279
14280                            if (self.synpred186()) :
14281                                alt93 = 1
14282
14283
14284                        elif LA93 == 41:
14285                            LA93_300 = self.input.LA(3)
14286
14287                            if (self.synpred186()) :
14288                                alt93 = 1
14289
14290
14291                        elif LA93 == 42:
14292                            LA93_301 = self.input.LA(3)
14293
14294                            if (self.synpred186()) :
14295                                alt93 = 1
14296
14297
14298                        elif LA93 == 45 or LA93 == 46:
14299                            LA93_302 = self.input.LA(3)
14300
14301                            if (self.synpred186()) :
14302                                alt93 = 1
14303
14304
14305                        elif LA93 == 48:
14306                            LA93_303 = self.input.LA(3)
14307
14308                            if (self.synpred186()) :
14309                                alt93 = 1
14310
14311
14312                        elif LA93 == 49 or LA93 == 50 or LA93 == 51 or LA93 == 52 or LA93 == 53 or LA93 == 54 or LA93 == 55 or LA93 == 56 or LA93 == 57 or LA93 == 61:
14313                            LA93_304 = self.input.LA(3)
14314
14315                            if (self.synpred186()) :
14316                                alt93 = 1
14317
14318
14319
14320                    elif LA93 == 45 or LA93 == 46:
14321                        LA93_40 = self.input.LA(2)
14322
14323                        if (LA93_40 == IDENTIFIER) :
14324                            LA93_305 = self.input.LA(3)
14325
14326                            if (self.synpred186()) :
14327                                alt93 = 1
14328
14329
14330                        elif (LA93_40 == 43) :
14331                            LA93_306 = self.input.LA(3)
14332
14333                            if (self.synpred186()) :
14334                                alt93 = 1
14335
14336
14337
14338
14339                    elif LA93 == 48:
14340                        LA93_41 = self.input.LA(2)
14341
14342                        if (LA93_41 == 43) :
14343                            LA93_307 = self.input.LA(3)
14344
14345                            if (self.synpred186()) :
14346                                alt93 = 1
14347
14348
14349                        elif (LA93_41 == IDENTIFIER) :
14350                            LA93_308 = self.input.LA(3)
14351
14352                            if (self.synpred186()) :
14353                                alt93 = 1
14354
14355
14356
14357
14358                    elif LA93 == 49 or LA93 == 50 or LA93 == 51 or LA93 == 52 or LA93 == 53 or LA93 == 54 or LA93 == 55 or LA93 == 56 or LA93 == 57 or LA93 == 58 or LA93 == 59 or LA93 == 60 or LA93 == 61:
14359                        LA93 = self.input.LA(2)
14360                        if LA93 == 66:
14361                            LA93_309 = self.input.LA(3)
14362
14363                            if (self.synpred186()) :
14364                                alt93 = 1
14365
14366
14367                        elif LA93 == 58:
14368                            LA93_310 = self.input.LA(3)
14369
14370                            if (self.synpred186()) :
14371                                alt93 = 1
14372
14373
14374                        elif LA93 == 59:
14375                            LA93_311 = self.input.LA(3)
14376
14377                            if (self.synpred186()) :
14378                                alt93 = 1
14379
14380
14381                        elif LA93 == 60:
14382                            LA93_312 = self.input.LA(3)
14383
14384                            if (self.synpred186()) :
14385                                alt93 = 1
14386
14387
14388                        elif LA93 == IDENTIFIER:
14389                            LA93_313 = self.input.LA(3)
14390
14391                            if (self.synpred186()) :
14392                                alt93 = 1
14393
14394
14395                        elif LA93 == 62:
14396                            LA93_314 = self.input.LA(3)
14397
14398                            if (self.synpred186()) :
14399                                alt93 = 1
14400
14401
14402                        elif LA93 == 25:
14403                            LA93_315 = self.input.LA(3)
14404
14405                            if (self.synpred186()) :
14406                                alt93 = 1
14407
14408
14409                        elif LA93 == 29 or LA93 == 30 or LA93 == 31 or LA93 == 32 or LA93 == 33:
14410                            LA93_316 = self.input.LA(3)
14411
14412                            if (self.synpred186()) :
14413                                alt93 = 1
14414
14415
14416                        elif LA93 == 34:
14417                            LA93_317 = self.input.LA(3)
14418
14419                            if (self.synpred186()) :
14420                                alt93 = 1
14421
14422
14423                        elif LA93 == 35:
14424                            LA93_318 = self.input.LA(3)
14425
14426                            if (self.synpred186()) :
14427                                alt93 = 1
14428
14429
14430                        elif LA93 == 36:
14431                            LA93_319 = self.input.LA(3)
14432
14433                            if (self.synpred186()) :
14434                                alt93 = 1
14435
14436
14437                        elif LA93 == 37:
14438                            LA93_320 = self.input.LA(3)
14439
14440                            if (self.synpred186()) :
14441                                alt93 = 1
14442
14443
14444                        elif LA93 == 38:
14445                            LA93_321 = self.input.LA(3)
14446
14447                            if (self.synpred186()) :
14448                                alt93 = 1
14449
14450
14451                        elif LA93 == 39:
14452                            LA93_322 = self.input.LA(3)
14453
14454                            if (self.synpred186()) :
14455                                alt93 = 1
14456
14457
14458                        elif LA93 == 40:
14459                            LA93_323 = self.input.LA(3)
14460
14461                            if (self.synpred186()) :
14462                                alt93 = 1
14463
14464
14465                        elif LA93 == 41:
14466                            LA93_324 = self.input.LA(3)
14467
14468                            if (self.synpred186()) :
14469                                alt93 = 1
14470
14471
14472                        elif LA93 == 42:
14473                            LA93_325 = self.input.LA(3)
14474
14475                            if (self.synpred186()) :
14476                                alt93 = 1
14477
14478
14479                        elif LA93 == 45 or LA93 == 46:
14480                            LA93_326 = self.input.LA(3)
14481
14482                            if (self.synpred186()) :
14483                                alt93 = 1
14484
14485
14486                        elif LA93 == 48:
14487                            LA93_327 = self.input.LA(3)
14488
14489                            if (self.synpred186()) :
14490                                alt93 = 1
14491
14492
14493                        elif LA93 == 49 or LA93 == 50 or LA93 == 51 or LA93 == 52 or LA93 == 53 or LA93 == 54 or LA93 == 55 or LA93 == 56 or LA93 == 57 or LA93 == 61:
14494                            LA93_328 = self.input.LA(3)
14495
14496                            if (self.synpred186()) :
14497                                alt93 = 1
14498
14499
14500
14501
14502                    if alt93 == 1:
14503                        # C.g:0:0: declaration
14504                        self.following.append(self.FOLLOW_declaration_in_compound_statement2225)
14505                        self.declaration()
14506                        self.following.pop()
14507                        if self.failed:
14508                            return retval
14509
14510
14511                    else:
14512                        break #loop93
14513
14514
14515                # C.g:554:21: ( statement_list )?
14516                alt94 = 2
14517                LA94_0 = self.input.LA(1)
14518
14519                if ((IDENTIFIER <= LA94_0 <= FLOATING_POINT_LITERAL) or (25 <= LA94_0 <= 26) or (29 <= LA94_0 <= 43) or (45 <= LA94_0 <= 46) or (48 <= LA94_0 <= 62) or LA94_0 == 66 or (68 <= LA94_0 <= 69) or (72 <= LA94_0 <= 74) or (77 <= LA94_0 <= 79) or (103 <= LA94_0 <= 108) or (110 <= LA94_0 <= 117)) :
14520                    alt94 = 1
14521                if alt94 == 1:
14522                    # C.g:0:0: statement_list
14523                    self.following.append(self.FOLLOW_statement_list_in_compound_statement2228)
14524                    self.statement_list()
14525                    self.following.pop()
14526                    if self.failed:
14527                        return retval
14528
14529
14530
14531                self.match(self.input, 44, self.FOLLOW_44_in_compound_statement2231)
14532                if self.failed:
14533                    return retval
14534
14535
14536
14537                retval.stop = self.input.LT(-1)
14538
14539
14540            except RecognitionException, re:
14541                self.reportError(re)
14542                self.recover(self.input, re)
14543        finally:
14544            if self.backtracking > 0:
14545                self.memoize(self.input, 66, compound_statement_StartIndex)
14546
14547            pass
14548
14549        return retval
14550
14551    # $ANTLR end compound_statement
14552
14553
14554    # $ANTLR start statement_list
14555    # C.g:557:1: statement_list : ( statement )+ ;
14556    def statement_list(self, ):
14557
14558        statement_list_StartIndex = self.input.index()
14559        try:
14560            try:
14561                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 67):
14562                    return
14563
14564                # C.g:558:2: ( ( statement )+ )
14565                # C.g:558:4: ( statement )+
14566                # C.g:558:4: ( statement )+
14567                cnt95 = 0
14568                while True: #loop95
14569                    alt95 = 2
14570                    LA95 = self.input.LA(1)
14571                    if LA95 == IDENTIFIER:
14572                        LA95 = self.input.LA(2)
14573                        if LA95 == 62:
14574                            LA95_46 = self.input.LA(3)
14575
14576                            if (self.synpred188()) :
14577                                alt95 = 1
14578
14579
14580                        elif LA95 == 25 or LA95 == 29 or LA95 == 30 or LA95 == 31 or LA95 == 32 or LA95 == 33 or LA95 == 34 or LA95 == 35 or LA95 == 36 or LA95 == 37 or LA95 == 38 or LA95 == 39 or LA95 == 40 or LA95 == 41 or LA95 == 42 or LA95 == 45 or LA95 == 46 or LA95 == 47 or LA95 == 48 or LA95 == 49 or LA95 == 50 or LA95 == 51 or LA95 == 52 or LA95 == 53 or LA95 == 54 or LA95 == 55 or LA95 == 56 or LA95 == 57 or LA95 == 58 or LA95 == 59 or LA95 == 60 or LA95 == 61:
14581                            alt95 = 1
14582                        elif LA95 == STRING_LITERAL:
14583                            LA95_48 = self.input.LA(3)
14584
14585                            if (self.synpred188()) :
14586                                alt95 = 1
14587
14588
14589                        elif LA95 == IDENTIFIER:
14590                            LA95_49 = self.input.LA(3)
14591
14592                            if (self.synpred188()) :
14593                                alt95 = 1
14594
14595
14596                        elif LA95 == 64:
14597                            LA95_50 = self.input.LA(3)
14598
14599                            if (self.synpred188()) :
14600                                alt95 = 1
14601
14602
14603                        elif LA95 == 75:
14604                            LA95_51 = self.input.LA(3)
14605
14606                            if (self.synpred188()) :
14607                                alt95 = 1
14608
14609
14610                        elif LA95 == 66:
14611                            LA95_52 = self.input.LA(3)
14612
14613                            if (self.synpred188()) :
14614                                alt95 = 1
14615
14616
14617                        elif LA95 == 76:
14618                            LA95_53 = self.input.LA(3)
14619
14620                            if (self.synpred188()) :
14621                                alt95 = 1
14622
14623
14624                        elif LA95 == 72:
14625                            LA95_54 = self.input.LA(3)
14626
14627                            if (self.synpred188()) :
14628                                alt95 = 1
14629
14630
14631                        elif LA95 == 73:
14632                            LA95_55 = self.input.LA(3)
14633
14634                            if (self.synpred188()) :
14635                                alt95 = 1
14636
14637
14638                        elif LA95 == 70:
14639                            LA95_56 = self.input.LA(3)
14640
14641                            if (self.synpred188()) :
14642                                alt95 = 1
14643
14644
14645                        elif LA95 == 71:
14646                            LA95_57 = self.input.LA(3)
14647
14648                            if (self.synpred188()) :
14649                                alt95 = 1
14650
14651
14652                        elif LA95 == 68:
14653                            LA95_58 = self.input.LA(3)
14654
14655                            if (self.synpred188()) :
14656                                alt95 = 1
14657
14658
14659                        elif LA95 == 69:
14660                            LA95_59 = self.input.LA(3)
14661
14662                            if (self.synpred188()) :
14663                                alt95 = 1
14664
14665
14666                        elif LA95 == 101 or LA95 == 102:
14667                            LA95_60 = self.input.LA(3)
14668
14669                            if (self.synpred188()) :
14670                                alt95 = 1
14671
14672
14673                        elif LA95 == 97 or LA95 == 98 or LA95 == 99 or LA95 == 100:
14674                            LA95_61 = self.input.LA(3)
14675
14676                            if (self.synpred188()) :
14677                                alt95 = 1
14678
14679
14680                        elif LA95 == 95 or LA95 == 96:
14681                            LA95_62 = self.input.LA(3)
14682
14683                            if (self.synpred188()) :
14684                                alt95 = 1
14685
14686
14687                        elif LA95 == 77:
14688                            LA95_63 = self.input.LA(3)
14689
14690                            if (self.synpred188()) :
14691                                alt95 = 1
14692
14693
14694                        elif LA95 == 94:
14695                            LA95_64 = self.input.LA(3)
14696
14697                            if (self.synpred188()) :
14698                                alt95 = 1
14699
14700
14701                        elif LA95 == 93:
14702                            LA95_65 = self.input.LA(3)
14703
14704                            if (self.synpred188()) :
14705                                alt95 = 1
14706
14707
14708                        elif LA95 == 92:
14709                            LA95_66 = self.input.LA(3)
14710
14711                            if (self.synpred188()) :
14712                                alt95 = 1
14713
14714
14715                        elif LA95 == 91:
14716                            LA95_67 = self.input.LA(3)
14717
14718                            if (self.synpred188()) :
14719                                alt95 = 1
14720
14721
14722                        elif LA95 == 90:
14723                            LA95_68 = self.input.LA(3)
14724
14725                            if (self.synpred188()) :
14726                                alt95 = 1
14727
14728
14729                        elif LA95 == 27:
14730                            LA95_69 = self.input.LA(3)
14731
14732                            if (self.synpred188()) :
14733                                alt95 = 1
14734
14735
14736                        elif LA95 == 28 or LA95 == 80 or LA95 == 81 or LA95 == 82 or LA95 == 83 or LA95 == 84 or LA95 == 85 or LA95 == 86 or LA95 == 87 or LA95 == 88 or LA95 == 89:
14737                            LA95_88 = self.input.LA(3)
14738
14739                            if (self.synpred188()) :
14740                                alt95 = 1
14741
14742
14743
14744                    elif LA95 == HEX_LITERAL:
14745                        LA95 = self.input.LA(2)
14746                        if LA95 == 64:
14747                            LA95_89 = self.input.LA(3)
14748
14749                            if (self.synpred188()) :
14750                                alt95 = 1
14751
14752
14753                        elif LA95 == 62:
14754                            LA95_90 = self.input.LA(3)
14755
14756                            if (self.synpred188()) :
14757                                alt95 = 1
14758
14759
14760                        elif LA95 == 75:
14761                            LA95_91 = self.input.LA(3)
14762
14763                            if (self.synpred188()) :
14764                                alt95 = 1
14765
14766
14767                        elif LA95 == 66:
14768                            LA95_92 = self.input.LA(3)
14769
14770                            if (self.synpred188()) :
14771                                alt95 = 1
14772
14773
14774                        elif LA95 == 76:
14775                            LA95_93 = self.input.LA(3)
14776
14777                            if (self.synpred188()) :
14778                                alt95 = 1
14779
14780
14781                        elif LA95 == 72:
14782                            LA95_94 = self.input.LA(3)
14783
14784                            if (self.synpred188()) :
14785                                alt95 = 1
14786
14787
14788                        elif LA95 == 73:
14789                            LA95_95 = self.input.LA(3)
14790
14791                            if (self.synpred188()) :
14792                                alt95 = 1
14793
14794
14795                        elif LA95 == 28 or LA95 == 80 or LA95 == 81 or LA95 == 82 or LA95 == 83 or LA95 == 84 or LA95 == 85 or LA95 == 86 or LA95 == 87 or LA95 == 88 or LA95 == 89:
14796                            LA95_96 = self.input.LA(3)
14797
14798                            if (self.synpred188()) :
14799                                alt95 = 1
14800
14801
14802                        elif LA95 == 70:
14803                            LA95_97 = self.input.LA(3)
14804
14805                            if (self.synpred188()) :
14806                                alt95 = 1
14807
14808
14809                        elif LA95 == 71:
14810                            LA95_98 = self.input.LA(3)
14811
14812                            if (self.synpred188()) :
14813                                alt95 = 1
14814
14815
14816                        elif LA95 == 68:
14817                            LA95_99 = self.input.LA(3)
14818
14819                            if (self.synpred188()) :
14820                                alt95 = 1
14821
14822
14823                        elif LA95 == 69:
14824                            LA95_100 = self.input.LA(3)
14825
14826                            if (self.synpred188()) :
14827                                alt95 = 1
14828
14829
14830                        elif LA95 == 101 or LA95 == 102:
14831                            LA95_101 = self.input.LA(3)
14832
14833                            if (self.synpred188()) :
14834                                alt95 = 1
14835
14836
14837                        elif LA95 == 97 or LA95 == 98 or LA95 == 99 or LA95 == 100:
14838                            LA95_102 = self.input.LA(3)
14839
14840                            if (self.synpred188()) :
14841                                alt95 = 1
14842
14843
14844                        elif LA95 == 95 or LA95 == 96:
14845                            LA95_103 = self.input.LA(3)
14846
14847                            if (self.synpred188()) :
14848                                alt95 = 1
14849
14850
14851                        elif LA95 == 77:
14852                            LA95_104 = self.input.LA(3)
14853
14854                            if (self.synpred188()) :
14855                                alt95 = 1
14856
14857
14858                        elif LA95 == 94:
14859                            LA95_105 = self.input.LA(3)
14860
14861                            if (self.synpred188()) :
14862                                alt95 = 1
14863
14864
14865                        elif LA95 == 93:
14866                            LA95_106 = self.input.LA(3)
14867
14868                            if (self.synpred188()) :
14869                                alt95 = 1
14870
14871
14872                        elif LA95 == 92:
14873                            LA95_107 = self.input.LA(3)
14874
14875                            if (self.synpred188()) :
14876                                alt95 = 1
14877
14878
14879                        elif LA95 == 91:
14880                            LA95_108 = self.input.LA(3)
14881
14882                            if (self.synpred188()) :
14883                                alt95 = 1
14884
14885
14886                        elif LA95 == 90:
14887                            LA95_109 = self.input.LA(3)
14888
14889                            if (self.synpred188()) :
14890                                alt95 = 1
14891
14892
14893                        elif LA95 == 27:
14894                            LA95_110 = self.input.LA(3)
14895
14896                            if (self.synpred188()) :
14897                                alt95 = 1
14898
14899
14900                        elif LA95 == 25:
14901                            alt95 = 1
14902
14903                    elif LA95 == OCTAL_LITERAL:
14904                        LA95 = self.input.LA(2)
14905                        if LA95 == 64:
14906                            LA95_113 = self.input.LA(3)
14907
14908                            if (self.synpred188()) :
14909                                alt95 = 1
14910
14911
14912                        elif LA95 == 62:
14913                            LA95_114 = self.input.LA(3)
14914
14915                            if (self.synpred188()) :
14916                                alt95 = 1
14917
14918
14919                        elif LA95 == 75:
14920                            LA95_115 = self.input.LA(3)
14921
14922                            if (self.synpred188()) :
14923                                alt95 = 1
14924
14925
14926                        elif LA95 == 66:
14927                            LA95_116 = self.input.LA(3)
14928
14929                            if (self.synpred188()) :
14930                                alt95 = 1
14931
14932
14933                        elif LA95 == 76:
14934                            LA95_117 = self.input.LA(3)
14935
14936                            if (self.synpred188()) :
14937                                alt95 = 1
14938
14939
14940                        elif LA95 == 72:
14941                            LA95_118 = self.input.LA(3)
14942
14943                            if (self.synpred188()) :
14944                                alt95 = 1
14945
14946
14947                        elif LA95 == 73:
14948                            LA95_119 = self.input.LA(3)
14949
14950                            if (self.synpred188()) :
14951                                alt95 = 1
14952
14953
14954                        elif LA95 == 70:
14955                            LA95_120 = self.input.LA(3)
14956
14957                            if (self.synpred188()) :
14958                                alt95 = 1
14959
14960
14961                        elif LA95 == 71:
14962                            LA95_121 = self.input.LA(3)
14963
14964                            if (self.synpred188()) :
14965                                alt95 = 1
14966
14967
14968                        elif LA95 == 68:
14969                            LA95_122 = self.input.LA(3)
14970
14971                            if (self.synpred188()) :
14972                                alt95 = 1
14973
14974
14975                        elif LA95 == 69:
14976                            LA95_123 = self.input.LA(3)
14977
14978                            if (self.synpred188()) :
14979                                alt95 = 1
14980
14981
14982                        elif LA95 == 101 or LA95 == 102:
14983                            LA95_124 = self.input.LA(3)
14984
14985                            if (self.synpred188()) :
14986                                alt95 = 1
14987
14988
14989                        elif LA95 == 97 or LA95 == 98 or LA95 == 99 or LA95 == 100:
14990                            LA95_125 = self.input.LA(3)
14991
14992                            if (self.synpred188()) :
14993                                alt95 = 1
14994
14995
14996                        elif LA95 == 95 or LA95 == 96:
14997                            LA95_126 = self.input.LA(3)
14998
14999                            if (self.synpred188()) :
15000                                alt95 = 1
15001
15002
15003                        elif LA95 == 77:
15004                            LA95_127 = self.input.LA(3)
15005
15006                            if (self.synpred188()) :
15007                                alt95 = 1
15008
15009
15010                        elif LA95 == 94:
15011                            LA95_128 = self.input.LA(3)
15012
15013                            if (self.synpred188()) :
15014                                alt95 = 1
15015
15016
15017                        elif LA95 == 93:
15018                            LA95_129 = self.input.LA(3)
15019
15020                            if (self.synpred188()) :
15021                                alt95 = 1
15022
15023
15024                        elif LA95 == 92:
15025                            LA95_130 = self.input.LA(3)
15026
15027                            if (self.synpred188()) :
15028                                alt95 = 1
15029
15030
15031                        elif LA95 == 91:
15032                            LA95_131 = self.input.LA(3)
15033
15034                            if (self.synpred188()) :
15035                                alt95 = 1
15036
15037
15038                        elif LA95 == 90:
15039                            LA95_132 = self.input.LA(3)
15040
15041                            if (self.synpred188()) :
15042                                alt95 = 1
15043
15044
15045                        elif LA95 == 27:
15046                            LA95_133 = self.input.LA(3)
15047
15048                            if (self.synpred188()) :
15049                                alt95 = 1
15050
15051
15052                        elif LA95 == 28 or LA95 == 80 or LA95 == 81 or LA95 == 82 or LA95 == 83 or LA95 == 84 or LA95 == 85 or LA95 == 86 or LA95 == 87 or LA95 == 88 or LA95 == 89:
15053                            LA95_135 = self.input.LA(3)
15054
15055                            if (self.synpred188()) :
15056                                alt95 = 1
15057
15058
15059                        elif LA95 == 25:
15060                            alt95 = 1
15061
15062                    elif LA95 == DECIMAL_LITERAL:
15063                        LA95 = self.input.LA(2)
15064                        if LA95 == 64:
15065                            LA95_137 = self.input.LA(3)
15066
15067                            if (self.synpred188()) :
15068                                alt95 = 1
15069
15070
15071                        elif LA95 == 62:
15072                            LA95_138 = self.input.LA(3)
15073
15074                            if (self.synpred188()) :
15075                                alt95 = 1
15076
15077
15078                        elif LA95 == 75:
15079                            LA95_139 = self.input.LA(3)
15080
15081                            if (self.synpred188()) :
15082                                alt95 = 1
15083
15084
15085                        elif LA95 == 66:
15086                            LA95_140 = self.input.LA(3)
15087
15088                            if (self.synpred188()) :
15089                                alt95 = 1
15090
15091
15092                        elif LA95 == 76:
15093                            LA95_141 = self.input.LA(3)
15094
15095                            if (self.synpred188()) :
15096                                alt95 = 1
15097
15098
15099                        elif LA95 == 72:
15100                            LA95_142 = self.input.LA(3)
15101
15102                            if (self.synpred188()) :
15103                                alt95 = 1
15104
15105
15106                        elif LA95 == 73:
15107                            LA95_143 = self.input.LA(3)
15108
15109                            if (self.synpred188()) :
15110                                alt95 = 1
15111
15112
15113                        elif LA95 == 28 or LA95 == 80 or LA95 == 81 or LA95 == 82 or LA95 == 83 or LA95 == 84 or LA95 == 85 or LA95 == 86 or LA95 == 87 or LA95 == 88 or LA95 == 89:
15114                            LA95_144 = self.input.LA(3)
15115
15116                            if (self.synpred188()) :
15117                                alt95 = 1
15118
15119
15120                        elif LA95 == 70:
15121                            LA95_145 = self.input.LA(3)
15122
15123                            if (self.synpred188()) :
15124                                alt95 = 1
15125
15126
15127                        elif LA95 == 71:
15128                            LA95_146 = self.input.LA(3)
15129
15130                            if (self.synpred188()) :
15131                                alt95 = 1
15132
15133
15134                        elif LA95 == 68:
15135                            LA95_147 = self.input.LA(3)
15136
15137                            if (self.synpred188()) :
15138                                alt95 = 1
15139
15140
15141                        elif LA95 == 69:
15142                            LA95_148 = self.input.LA(3)
15143
15144                            if (self.synpred188()) :
15145                                alt95 = 1
15146
15147
15148                        elif LA95 == 101 or LA95 == 102:
15149                            LA95_149 = self.input.LA(3)
15150
15151                            if (self.synpred188()) :
15152                                alt95 = 1
15153
15154
15155                        elif LA95 == 97 or LA95 == 98 or LA95 == 99 or LA95 == 100:
15156                            LA95_150 = self.input.LA(3)
15157
15158                            if (self.synpred188()) :
15159                                alt95 = 1
15160
15161
15162                        elif LA95 == 95 or LA95 == 96:
15163                            LA95_151 = self.input.LA(3)
15164
15165                            if (self.synpred188()) :
15166                                alt95 = 1
15167
15168
15169                        elif LA95 == 77:
15170                            LA95_152 = self.input.LA(3)
15171
15172                            if (self.synpred188()) :
15173                                alt95 = 1
15174
15175
15176                        elif LA95 == 94:
15177                            LA95_153 = self.input.LA(3)
15178
15179                            if (self.synpred188()) :
15180                                alt95 = 1
15181
15182
15183                        elif LA95 == 93:
15184                            LA95_154 = self.input.LA(3)
15185
15186                            if (self.synpred188()) :
15187                                alt95 = 1
15188
15189
15190                        elif LA95 == 92:
15191                            LA95_155 = self.input.LA(3)
15192
15193                            if (self.synpred188()) :
15194                                alt95 = 1
15195
15196
15197                        elif LA95 == 91:
15198                            LA95_156 = self.input.LA(3)
15199
15200                            if (self.synpred188()) :
15201                                alt95 = 1
15202
15203
15204                        elif LA95 == 90:
15205                            LA95_157 = self.input.LA(3)
15206
15207                            if (self.synpred188()) :
15208                                alt95 = 1
15209
15210
15211                        elif LA95 == 27:
15212                            LA95_158 = self.input.LA(3)
15213
15214                            if (self.synpred188()) :
15215                                alt95 = 1
15216
15217
15218                        elif LA95 == 25:
15219                            alt95 = 1
15220
15221                    elif LA95 == CHARACTER_LITERAL:
15222                        LA95 = self.input.LA(2)
15223                        if LA95 == 64:
15224                            LA95_161 = self.input.LA(3)
15225
15226                            if (self.synpred188()) :
15227                                alt95 = 1
15228
15229
15230                        elif LA95 == 62:
15231                            LA95_162 = self.input.LA(3)
15232
15233                            if (self.synpred188()) :
15234                                alt95 = 1
15235
15236
15237                        elif LA95 == 75:
15238                            LA95_163 = self.input.LA(3)
15239
15240                            if (self.synpred188()) :
15241                                alt95 = 1
15242
15243
15244                        elif LA95 == 66:
15245                            LA95_164 = self.input.LA(3)
15246
15247                            if (self.synpred188()) :
15248                                alt95 = 1
15249
15250
15251                        elif LA95 == 76:
15252                            LA95_165 = self.input.LA(3)
15253
15254                            if (self.synpred188()) :
15255                                alt95 = 1
15256
15257
15258                        elif LA95 == 72:
15259                            LA95_166 = self.input.LA(3)
15260
15261                            if (self.synpred188()) :
15262                                alt95 = 1
15263
15264
15265                        elif LA95 == 73:
15266                            LA95_167 = self.input.LA(3)
15267
15268                            if (self.synpred188()) :
15269                                alt95 = 1
15270
15271
15272                        elif LA95 == 28 or LA95 == 80 or LA95 == 81 or LA95 == 82 or LA95 == 83 or LA95 == 84 or LA95 == 85 or LA95 == 86 or LA95 == 87 or LA95 == 88 or LA95 == 89:
15273                            LA95_168 = self.input.LA(3)
15274
15275                            if (self.synpred188()) :
15276                                alt95 = 1
15277
15278
15279                        elif LA95 == 70:
15280                            LA95_169 = self.input.LA(3)
15281
15282                            if (self.synpred188()) :
15283                                alt95 = 1
15284
15285
15286                        elif LA95 == 71:
15287                            LA95_170 = self.input.LA(3)
15288
15289                            if (self.synpred188()) :
15290                                alt95 = 1
15291
15292
15293                        elif LA95 == 68:
15294                            LA95_171 = self.input.LA(3)
15295
15296                            if (self.synpred188()) :
15297                                alt95 = 1
15298
15299
15300                        elif LA95 == 69:
15301                            LA95_172 = self.input.LA(3)
15302
15303                            if (self.synpred188()) :
15304                                alt95 = 1
15305
15306
15307                        elif LA95 == 101 or LA95 == 102:
15308                            LA95_173 = self.input.LA(3)
15309
15310                            if (self.synpred188()) :
15311                                alt95 = 1
15312
15313
15314                        elif LA95 == 97 or LA95 == 98 or LA95 == 99 or LA95 == 100:
15315                            LA95_174 = self.input.LA(3)
15316
15317                            if (self.synpred188()) :
15318                                alt95 = 1
15319
15320
15321                        elif LA95 == 95 or LA95 == 96:
15322                            LA95_175 = self.input.LA(3)
15323
15324                            if (self.synpred188()) :
15325                                alt95 = 1
15326
15327
15328                        elif LA95 == 77:
15329                            LA95_176 = self.input.LA(3)
15330
15331                            if (self.synpred188()) :
15332                                alt95 = 1
15333
15334
15335                        elif LA95 == 94:
15336                            LA95_177 = self.input.LA(3)
15337
15338                            if (self.synpred188()) :
15339                                alt95 = 1
15340
15341
15342                        elif LA95 == 93:
15343                            LA95_178 = self.input.LA(3)
15344
15345                            if (self.synpred188()) :
15346                                alt95 = 1
15347
15348
15349                        elif LA95 == 92:
15350                            LA95_179 = self.input.LA(3)
15351
15352                            if (self.synpred188()) :
15353                                alt95 = 1
15354
15355
15356                        elif LA95 == 91:
15357                            LA95_180 = self.input.LA(3)
15358
15359                            if (self.synpred188()) :
15360                                alt95 = 1
15361
15362
15363                        elif LA95 == 90:
15364                            LA95_181 = self.input.LA(3)
15365
15366                            if (self.synpred188()) :
15367                                alt95 = 1
15368
15369
15370                        elif LA95 == 27:
15371                            LA95_182 = self.input.LA(3)
15372
15373                            if (self.synpred188()) :
15374                                alt95 = 1
15375
15376
15377                        elif LA95 == 25:
15378                            alt95 = 1
15379
15380                    elif LA95 == STRING_LITERAL:
15381                        LA95 = self.input.LA(2)
15382                        if LA95 == IDENTIFIER:
15383                            LA95_185 = self.input.LA(3)
15384
15385                            if (self.synpred188()) :
15386                                alt95 = 1
15387
15388
15389                        elif LA95 == 64:
15390                            LA95_186 = self.input.LA(3)
15391
15392                            if (self.synpred188()) :
15393                                alt95 = 1
15394
15395
15396                        elif LA95 == 62:
15397                            LA95_187 = self.input.LA(3)
15398
15399                            if (self.synpred188()) :
15400                                alt95 = 1
15401
15402
15403                        elif LA95 == 75:
15404                            LA95_188 = self.input.LA(3)
15405
15406                            if (self.synpred188()) :
15407                                alt95 = 1
15408
15409
15410                        elif LA95 == 66:
15411                            LA95_189 = self.input.LA(3)
15412
15413                            if (self.synpred188()) :
15414                                alt95 = 1
15415
15416
15417                        elif LA95 == 76:
15418                            LA95_190 = self.input.LA(3)
15419
15420                            if (self.synpred188()) :
15421                                alt95 = 1
15422
15423
15424                        elif LA95 == 72:
15425                            LA95_191 = self.input.LA(3)
15426
15427                            if (self.synpred188()) :
15428                                alt95 = 1
15429
15430
15431                        elif LA95 == 73:
15432                            LA95_192 = self.input.LA(3)
15433
15434                            if (self.synpred188()) :
15435                                alt95 = 1
15436
15437
15438                        elif LA95 == 70:
15439                            LA95_193 = self.input.LA(3)
15440
15441                            if (self.synpred188()) :
15442                                alt95 = 1
15443
15444
15445                        elif LA95 == 71:
15446                            LA95_194 = self.input.LA(3)
15447
15448                            if (self.synpred188()) :
15449                                alt95 = 1
15450
15451
15452                        elif LA95 == 68:
15453                            LA95_195 = self.input.LA(3)
15454
15455                            if (self.synpred188()) :
15456                                alt95 = 1
15457
15458
15459                        elif LA95 == 69:
15460                            LA95_196 = self.input.LA(3)
15461
15462                            if (self.synpred188()) :
15463                                alt95 = 1
15464
15465
15466                        elif LA95 == 101 or LA95 == 102:
15467                            LA95_197 = self.input.LA(3)
15468
15469                            if (self.synpred188()) :
15470                                alt95 = 1
15471
15472
15473                        elif LA95 == 97 or LA95 == 98 or LA95 == 99 or LA95 == 100:
15474                            LA95_198 = self.input.LA(3)
15475
15476                            if (self.synpred188()) :
15477                                alt95 = 1
15478
15479
15480                        elif LA95 == 95 or LA95 == 96:
15481                            LA95_199 = self.input.LA(3)
15482
15483                            if (self.synpred188()) :
15484                                alt95 = 1
15485
15486
15487                        elif LA95 == 77:
15488                            LA95_200 = self.input.LA(3)
15489
15490                            if (self.synpred188()) :
15491                                alt95 = 1
15492
15493
15494                        elif LA95 == 94:
15495                            LA95_201 = self.input.LA(3)
15496
15497                            if (self.synpred188()) :
15498                                alt95 = 1
15499
15500
15501                        elif LA95 == 93:
15502                            LA95_202 = self.input.LA(3)
15503
15504                            if (self.synpred188()) :
15505                                alt95 = 1
15506
15507
15508                        elif LA95 == 92:
15509                            LA95_203 = self.input.LA(3)
15510
15511                            if (self.synpred188()) :
15512                                alt95 = 1
15513
15514
15515                        elif LA95 == 91:
15516                            LA95_204 = self.input.LA(3)
15517
15518                            if (self.synpred188()) :
15519                                alt95 = 1
15520
15521
15522                        elif LA95 == 90:
15523                            LA95_205 = self.input.LA(3)
15524
15525                            if (self.synpred188()) :
15526                                alt95 = 1
15527
15528
15529                        elif LA95 == 27:
15530                            LA95_206 = self.input.LA(3)
15531
15532                            if (self.synpred188()) :
15533                                alt95 = 1
15534
15535
15536                        elif LA95 == 25:
15537                            alt95 = 1
15538                        elif LA95 == STRING_LITERAL:
15539                            LA95_208 = self.input.LA(3)
15540
15541                            if (self.synpred188()) :
15542                                alt95 = 1
15543
15544
15545                        elif LA95 == 28 or LA95 == 80 or LA95 == 81 or LA95 == 82 or LA95 == 83 or LA95 == 84 or LA95 == 85 or LA95 == 86 or LA95 == 87 or LA95 == 88 or LA95 == 89:
15546                            LA95_209 = self.input.LA(3)
15547
15548                            if (self.synpred188()) :
15549                                alt95 = 1
15550
15551
15552
15553                    elif LA95 == FLOATING_POINT_LITERAL:
15554                        LA95 = self.input.LA(2)
15555                        if LA95 == 64:
15556                            LA95_211 = self.input.LA(3)
15557
15558                            if (self.synpred188()) :
15559                                alt95 = 1
15560
15561
15562                        elif LA95 == 62:
15563                            LA95_212 = self.input.LA(3)
15564
15565                            if (self.synpred188()) :
15566                                alt95 = 1
15567
15568
15569                        elif LA95 == 75:
15570                            LA95_213 = self.input.LA(3)
15571
15572                            if (self.synpred188()) :
15573                                alt95 = 1
15574
15575
15576                        elif LA95 == 66:
15577                            LA95_214 = self.input.LA(3)
15578
15579                            if (self.synpred188()) :
15580                                alt95 = 1
15581
15582
15583                        elif LA95 == 76:
15584                            LA95_215 = self.input.LA(3)
15585
15586                            if (self.synpred188()) :
15587                                alt95 = 1
15588
15589
15590                        elif LA95 == 72:
15591                            LA95_216 = self.input.LA(3)
15592
15593                            if (self.synpred188()) :
15594                                alt95 = 1
15595
15596
15597                        elif LA95 == 73:
15598                            LA95_217 = self.input.LA(3)
15599
15600                            if (self.synpred188()) :
15601                                alt95 = 1
15602
15603
15604                        elif LA95 == 70:
15605                            LA95_218 = self.input.LA(3)
15606
15607                            if (self.synpred188()) :
15608                                alt95 = 1
15609
15610
15611                        elif LA95 == 71:
15612                            LA95_219 = self.input.LA(3)
15613
15614                            if (self.synpred188()) :
15615                                alt95 = 1
15616
15617
15618                        elif LA95 == 68:
15619                            LA95_220 = self.input.LA(3)
15620
15621                            if (self.synpred188()) :
15622                                alt95 = 1
15623
15624
15625                        elif LA95 == 69:
15626                            LA95_221 = self.input.LA(3)
15627
15628                            if (self.synpred188()) :
15629                                alt95 = 1
15630
15631
15632                        elif LA95 == 101 or LA95 == 102:
15633                            LA95_222 = self.input.LA(3)
15634
15635                            if (self.synpred188()) :
15636                                alt95 = 1
15637
15638
15639                        elif LA95 == 97 or LA95 == 98 or LA95 == 99 or LA95 == 100:
15640                            LA95_223 = self.input.LA(3)
15641
15642                            if (self.synpred188()) :
15643                                alt95 = 1
15644
15645
15646                        elif LA95 == 95 or LA95 == 96:
15647                            LA95_224 = self.input.LA(3)
15648
15649                            if (self.synpred188()) :
15650                                alt95 = 1
15651
15652
15653                        elif LA95 == 77:
15654                            LA95_225 = self.input.LA(3)
15655
15656                            if (self.synpred188()) :
15657                                alt95 = 1
15658
15659
15660                        elif LA95 == 94:
15661                            LA95_226 = self.input.LA(3)
15662
15663                            if (self.synpred188()) :
15664                                alt95 = 1
15665
15666
15667                        elif LA95 == 93:
15668                            LA95_227 = self.input.LA(3)
15669
15670                            if (self.synpred188()) :
15671                                alt95 = 1
15672
15673
15674                        elif LA95 == 92:
15675                            LA95_228 = self.input.LA(3)
15676
15677                            if (self.synpred188()) :
15678                                alt95 = 1
15679
15680
15681                        elif LA95 == 91:
15682                            LA95_229 = self.input.LA(3)
15683
15684                            if (self.synpred188()) :
15685                                alt95 = 1
15686
15687
15688                        elif LA95 == 90:
15689                            LA95_230 = self.input.LA(3)
15690
15691                            if (self.synpred188()) :
15692                                alt95 = 1
15693
15694
15695                        elif LA95 == 27:
15696                            LA95_231 = self.input.LA(3)
15697
15698                            if (self.synpred188()) :
15699                                alt95 = 1
15700
15701
15702                        elif LA95 == 25:
15703                            alt95 = 1
15704                        elif LA95 == 28 or LA95 == 80 or LA95 == 81 or LA95 == 82 or LA95 == 83 or LA95 == 84 or LA95 == 85 or LA95 == 86 or LA95 == 87 or LA95 == 88 or LA95 == 89:
15705                            LA95_234 = self.input.LA(3)
15706
15707                            if (self.synpred188()) :
15708                                alt95 = 1
15709
15710
15711
15712                    elif LA95 == 62:
15713                        LA95 = self.input.LA(2)
15714                        if LA95 == IDENTIFIER:
15715                            LA95_235 = self.input.LA(3)
15716
15717                            if (self.synpred188()) :
15718                                alt95 = 1
15719
15720
15721                        elif LA95 == HEX_LITERAL:
15722                            LA95_236 = self.input.LA(3)
15723
15724                            if (self.synpred188()) :
15725                                alt95 = 1
15726
15727
15728                        elif LA95 == OCTAL_LITERAL:
15729                            LA95_237 = self.input.LA(3)
15730
15731                            if (self.synpred188()) :
15732                                alt95 = 1
15733
15734
15735                        elif LA95 == DECIMAL_LITERAL:
15736                            LA95_238 = self.input.LA(3)
15737
15738                            if (self.synpred188()) :
15739                                alt95 = 1
15740
15741
15742                        elif LA95 == CHARACTER_LITERAL:
15743                            LA95_239 = self.input.LA(3)
15744
15745                            if (self.synpred188()) :
15746                                alt95 = 1
15747
15748
15749                        elif LA95 == STRING_LITERAL:
15750                            LA95_240 = self.input.LA(3)
15751
15752                            if (self.synpred188()) :
15753                                alt95 = 1
15754
15755
15756                        elif LA95 == FLOATING_POINT_LITERAL:
15757                            LA95_241 = self.input.LA(3)
15758
15759                            if (self.synpred188()) :
15760                                alt95 = 1
15761
15762
15763                        elif LA95 == 62:
15764                            LA95_242 = self.input.LA(3)
15765
15766                            if (self.synpred188()) :
15767                                alt95 = 1
15768
15769
15770                        elif LA95 == 72:
15771                            LA95_243 = self.input.LA(3)
15772
15773                            if (self.synpred188()) :
15774                                alt95 = 1
15775
15776
15777                        elif LA95 == 73:
15778                            LA95_244 = self.input.LA(3)
15779
15780                            if (self.synpred188()) :
15781                                alt95 = 1
15782
15783
15784                        elif LA95 == 66 or LA95 == 68 or LA95 == 69 or LA95 == 77 or LA95 == 78 or LA95 == 79:
15785                            LA95_245 = self.input.LA(3)
15786
15787                            if (self.synpred188()) :
15788                                alt95 = 1
15789
15790
15791                        elif LA95 == 74:
15792                            LA95_246 = self.input.LA(3)
15793
15794                            if (self.synpred188()) :
15795                                alt95 = 1
15796
15797
15798                        elif LA95 == 49 or LA95 == 50 or LA95 == 51 or LA95 == 52 or LA95 == 53 or LA95 == 54 or LA95 == 55 or LA95 == 56 or LA95 == 57 or LA95 == 58 or LA95 == 59 or LA95 == 60 or LA95 == 61:
15799                            LA95_247 = self.input.LA(3)
15800
15801                            if (self.synpred188()) :
15802                                alt95 = 1
15803
15804
15805                        elif LA95 == 34:
15806                            LA95_248 = self.input.LA(3)
15807
15808                            if (self.synpred188()) :
15809                                alt95 = 1
15810
15811
15812                        elif LA95 == 35:
15813                            LA95_249 = self.input.LA(3)
15814
15815                            if (self.synpred188()) :
15816                                alt95 = 1
15817
15818
15819                        elif LA95 == 36:
15820                            LA95_250 = self.input.LA(3)
15821
15822                            if (self.synpred188()) :
15823                                alt95 = 1
15824
15825
15826                        elif LA95 == 37:
15827                            LA95_251 = self.input.LA(3)
15828
15829                            if (self.synpred188()) :
15830                                alt95 = 1
15831
15832
15833                        elif LA95 == 38:
15834                            LA95_252 = self.input.LA(3)
15835
15836                            if (self.synpred188()) :
15837                                alt95 = 1
15838
15839
15840                        elif LA95 == 39:
15841                            LA95_253 = self.input.LA(3)
15842
15843                            if (self.synpred188()) :
15844                                alt95 = 1
15845
15846
15847                        elif LA95 == 40:
15848                            LA95_254 = self.input.LA(3)
15849
15850                            if (self.synpred188()) :
15851                                alt95 = 1
15852
15853
15854                        elif LA95 == 41:
15855                            LA95_255 = self.input.LA(3)
15856
15857                            if (self.synpred188()) :
15858                                alt95 = 1
15859
15860
15861                        elif LA95 == 42:
15862                            LA95_256 = self.input.LA(3)
15863
15864                            if (self.synpred188()) :
15865                                alt95 = 1
15866
15867
15868                        elif LA95 == 45 or LA95 == 46:
15869                            LA95_257 = self.input.LA(3)
15870
15871                            if (self.synpred188()) :
15872                                alt95 = 1
15873
15874
15875                        elif LA95 == 48:
15876                            LA95_258 = self.input.LA(3)
15877
15878                            if (self.synpred188()) :
15879                                alt95 = 1
15880
15881
15882
15883                    elif LA95 == 72:
15884                        LA95 = self.input.LA(2)
15885                        if LA95 == IDENTIFIER:
15886                            LA95_259 = self.input.LA(3)
15887
15888                            if (self.synpred188()) :
15889                                alt95 = 1
15890
15891
15892                        elif LA95 == HEX_LITERAL:
15893                            LA95_260 = self.input.LA(3)
15894
15895                            if (self.synpred188()) :
15896                                alt95 = 1
15897
15898
15899                        elif LA95 == OCTAL_LITERAL:
15900                            LA95_261 = self.input.LA(3)
15901
15902                            if (self.synpred188()) :
15903                                alt95 = 1
15904
15905
15906                        elif LA95 == DECIMAL_LITERAL:
15907                            LA95_262 = self.input.LA(3)
15908
15909                            if (self.synpred188()) :
15910                                alt95 = 1
15911
15912
15913                        elif LA95 == CHARACTER_LITERAL:
15914                            LA95_263 = self.input.LA(3)
15915
15916                            if (self.synpred188()) :
15917                                alt95 = 1
15918
15919
15920                        elif LA95 == STRING_LITERAL:
15921                            LA95_264 = self.input.LA(3)
15922
15923                            if (self.synpred188()) :
15924                                alt95 = 1
15925
15926
15927                        elif LA95 == FLOATING_POINT_LITERAL:
15928                            LA95_265 = self.input.LA(3)
15929
15930                            if (self.synpred188()) :
15931                                alt95 = 1
15932
15933
15934                        elif LA95 == 62:
15935                            LA95_266 = self.input.LA(3)
15936
15937                            if (self.synpred188()) :
15938                                alt95 = 1
15939
15940
15941                        elif LA95 == 72:
15942                            LA95_267 = self.input.LA(3)
15943
15944                            if (self.synpred188()) :
15945                                alt95 = 1
15946
15947
15948                        elif LA95 == 73:
15949                            LA95_268 = self.input.LA(3)
15950
15951                            if (self.synpred188()) :
15952                                alt95 = 1
15953
15954
15955                        elif LA95 == 66 or LA95 == 68 or LA95 == 69 or LA95 == 77 or LA95 == 78 or LA95 == 79:
15956                            LA95_269 = self.input.LA(3)
15957
15958                            if (self.synpred188()) :
15959                                alt95 = 1
15960
15961
15962                        elif LA95 == 74:
15963                            LA95_270 = self.input.LA(3)
15964
15965                            if (self.synpred188()) :
15966                                alt95 = 1
15967
15968
15969
15970                    elif LA95 == 73:
15971                        LA95 = self.input.LA(2)
15972                        if LA95 == IDENTIFIER:
15973                            LA95_271 = self.input.LA(3)
15974
15975                            if (self.synpred188()) :
15976                                alt95 = 1
15977
15978
15979                        elif LA95 == HEX_LITERAL:
15980                            LA95_272 = self.input.LA(3)
15981
15982                            if (self.synpred188()) :
15983                                alt95 = 1
15984
15985
15986                        elif LA95 == OCTAL_LITERAL:
15987                            LA95_273 = self.input.LA(3)
15988
15989                            if (self.synpred188()) :
15990                                alt95 = 1
15991
15992
15993                        elif LA95 == DECIMAL_LITERAL:
15994                            LA95_274 = self.input.LA(3)
15995
15996                            if (self.synpred188()) :
15997                                alt95 = 1
15998
15999
16000                        elif LA95 == CHARACTER_LITERAL:
16001                            LA95_275 = self.input.LA(3)
16002
16003                            if (self.synpred188()) :
16004                                alt95 = 1
16005
16006
16007                        elif LA95 == STRING_LITERAL:
16008                            LA95_276 = self.input.LA(3)
16009
16010                            if (self.synpred188()) :
16011                                alt95 = 1
16012
16013
16014                        elif LA95 == FLOATING_POINT_LITERAL:
16015                            LA95_277 = self.input.LA(3)
16016
16017                            if (self.synpred188()) :
16018                                alt95 = 1
16019
16020
16021                        elif LA95 == 62:
16022                            LA95_278 = self.input.LA(3)
16023
16024                            if (self.synpred188()) :
16025                                alt95 = 1
16026
16027
16028                        elif LA95 == 72:
16029                            LA95_279 = self.input.LA(3)
16030
16031                            if (self.synpred188()) :
16032                                alt95 = 1
16033
16034
16035                        elif LA95 == 73:
16036                            LA95_280 = self.input.LA(3)
16037
16038                            if (self.synpred188()) :
16039                                alt95 = 1
16040
16041
16042                        elif LA95 == 66 or LA95 == 68 or LA95 == 69 or LA95 == 77 or LA95 == 78 or LA95 == 79:
16043                            LA95_281 = self.input.LA(3)
16044
16045                            if (self.synpred188()) :
16046                                alt95 = 1
16047
16048
16049                        elif LA95 == 74:
16050                            LA95_282 = self.input.LA(3)
16051
16052                            if (self.synpred188()) :
16053                                alt95 = 1
16054
16055
16056
16057                    elif LA95 == 66 or LA95 == 68 or LA95 == 69 or LA95 == 77 or LA95 == 78 or LA95 == 79:
16058                        LA95 = self.input.LA(2)
16059                        if LA95 == 62:
16060                            LA95_283 = self.input.LA(3)
16061
16062                            if (self.synpred188()) :
16063                                alt95 = 1
16064
16065
16066                        elif LA95 == IDENTIFIER:
16067                            LA95_284 = self.input.LA(3)
16068
16069                            if (self.synpred188()) :
16070                                alt95 = 1
16071
16072
16073                        elif LA95 == HEX_LITERAL:
16074                            LA95_285 = self.input.LA(3)
16075
16076                            if (self.synpred188()) :
16077                                alt95 = 1
16078
16079
16080                        elif LA95 == OCTAL_LITERAL:
16081                            LA95_286 = self.input.LA(3)
16082
16083                            if (self.synpred188()) :
16084                                alt95 = 1
16085
16086
16087                        elif LA95 == DECIMAL_LITERAL:
16088                            LA95_287 = self.input.LA(3)
16089
16090                            if (self.synpred188()) :
16091                                alt95 = 1
16092
16093
16094                        elif LA95 == CHARACTER_LITERAL:
16095                            LA95_288 = self.input.LA(3)
16096
16097                            if (self.synpred188()) :
16098                                alt95 = 1
16099
16100
16101                        elif LA95 == STRING_LITERAL:
16102                            LA95_289 = self.input.LA(3)
16103
16104                            if (self.synpred188()) :
16105                                alt95 = 1
16106
16107
16108                        elif LA95 == FLOATING_POINT_LITERAL:
16109                            LA95_290 = self.input.LA(3)
16110
16111                            if (self.synpred188()) :
16112                                alt95 = 1
16113
16114
16115                        elif LA95 == 72:
16116                            LA95_291 = self.input.LA(3)
16117
16118                            if (self.synpred188()) :
16119                                alt95 = 1
16120
16121
16122                        elif LA95 == 73:
16123                            LA95_292 = self.input.LA(3)
16124
16125                            if (self.synpred188()) :
16126                                alt95 = 1
16127
16128
16129                        elif LA95 == 66 or LA95 == 68 or LA95 == 69 or LA95 == 77 or LA95 == 78 or LA95 == 79:
16130                            LA95_293 = self.input.LA(3)
16131
16132                            if (self.synpred188()) :
16133                                alt95 = 1
16134
16135
16136                        elif LA95 == 74:
16137                            LA95_294 = self.input.LA(3)
16138
16139                            if (self.synpred188()) :
16140                                alt95 = 1
16141
16142
16143
16144                    elif LA95 == 74:
16145                        LA95 = self.input.LA(2)
16146                        if LA95 == 62:
16147                            LA95_295 = self.input.LA(3)
16148
16149                            if (self.synpred188()) :
16150                                alt95 = 1
16151
16152
16153                        elif LA95 == IDENTIFIER:
16154                            LA95_296 = self.input.LA(3)
16155
16156                            if (self.synpred188()) :
16157                                alt95 = 1
16158
16159
16160                        elif LA95 == HEX_LITERAL:
16161                            LA95_297 = self.input.LA(3)
16162
16163                            if (self.synpred188()) :
16164                                alt95 = 1
16165
16166
16167                        elif LA95 == OCTAL_LITERAL:
16168                            LA95_298 = self.input.LA(3)
16169
16170                            if (self.synpred188()) :
16171                                alt95 = 1
16172
16173
16174                        elif LA95 == DECIMAL_LITERAL:
16175                            LA95_299 = self.input.LA(3)
16176
16177                            if (self.synpred188()) :
16178                                alt95 = 1
16179
16180
16181                        elif LA95 == CHARACTER_LITERAL:
16182                            LA95_300 = self.input.LA(3)
16183
16184                            if (self.synpred188()) :
16185                                alt95 = 1
16186
16187
16188                        elif LA95 == STRING_LITERAL:
16189                            LA95_301 = self.input.LA(3)
16190
16191                            if (self.synpred188()) :
16192                                alt95 = 1
16193
16194
16195                        elif LA95 == FLOATING_POINT_LITERAL:
16196                            LA95_302 = self.input.LA(3)
16197
16198                            if (self.synpred188()) :
16199                                alt95 = 1
16200
16201
16202                        elif LA95 == 72:
16203                            LA95_303 = self.input.LA(3)
16204
16205                            if (self.synpred188()) :
16206                                alt95 = 1
16207
16208
16209                        elif LA95 == 73:
16210                            LA95_304 = self.input.LA(3)
16211
16212                            if (self.synpred188()) :
16213                                alt95 = 1
16214
16215
16216                        elif LA95 == 66 or LA95 == 68 or LA95 == 69 or LA95 == 77 or LA95 == 78 or LA95 == 79:
16217                            LA95_305 = self.input.LA(3)
16218
16219                            if (self.synpred188()) :
16220                                alt95 = 1
16221
16222
16223                        elif LA95 == 74:
16224                            LA95_306 = self.input.LA(3)
16225
16226                            if (self.synpred188()) :
16227                                alt95 = 1
16228
16229
16230
16231                    elif LA95 == 25 or LA95 == 26 or LA95 == 29 or LA95 == 30 or LA95 == 31 or LA95 == 32 or LA95 == 33 or LA95 == 34 or LA95 == 35 or LA95 == 36 or LA95 == 37 or LA95 == 38 or LA95 == 39 or LA95 == 40 or LA95 == 41 or LA95 == 42 or LA95 == 43 or LA95 == 45 or LA95 == 46 or LA95 == 48 or LA95 == 49 or LA95 == 50 or LA95 == 51 or LA95 == 52 or LA95 == 53 or LA95 == 54 or LA95 == 55 or LA95 == 56 or LA95 == 57 or LA95 == 58 or LA95 == 59 or LA95 == 60 or LA95 == 61 or LA95 == 103 or LA95 == 104 or LA95 == 105 or LA95 == 106 or LA95 == 107 or LA95 == 108 or LA95 == 110 or LA95 == 111 or LA95 == 112 or LA95 == 113 or LA95 == 114 or LA95 == 115 or LA95 == 116 or LA95 == 117:
16232                        alt95 = 1
16233
16234                    if alt95 == 1:
16235                        # C.g:0:0: statement
16236                        self.following.append(self.FOLLOW_statement_in_statement_list2242)
16237                        self.statement()
16238                        self.following.pop()
16239                        if self.failed:
16240                            return
16241
16242
16243                    else:
16244                        if cnt95 >= 1:
16245                            break #loop95
16246
16247                        if self.backtracking > 0:
16248                            self.failed = True
16249                            return
16250
16251                        eee = EarlyExitException(95, self.input)
16252                        raise eee
16253
16254                    cnt95 += 1
16255
16256
16257
16258
16259
16260
16261            except RecognitionException, re:
16262                self.reportError(re)
16263                self.recover(self.input, re)
16264        finally:
16265            if self.backtracking > 0:
16266                self.memoize(self.input, 67, statement_list_StartIndex)
16267
16268            pass
16269
16270        return
16271
16272    # $ANTLR end statement_list
16273
16274    class expression_statement_return(object):
16275        def __init__(self):
16276            self.start = None
16277            self.stop = None
16278
16279
16280
16281    # $ANTLR start expression_statement
16282    # C.g:561:1: expression_statement : ( ';' | expression ';' );
16283    def expression_statement(self, ):
16284
16285        retval = self.expression_statement_return()
16286        retval.start = self.input.LT(1)
16287        expression_statement_StartIndex = self.input.index()
16288        try:
16289            try:
16290                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 68):
16291                    return retval
16292
16293                # C.g:562:2: ( ';' | expression ';' )
16294                alt96 = 2
16295                LA96_0 = self.input.LA(1)
16296
16297                if (LA96_0 == 25) :
16298                    alt96 = 1
16299                elif ((IDENTIFIER <= LA96_0 <= FLOATING_POINT_LITERAL) or LA96_0 == 62 or LA96_0 == 66 or (68 <= LA96_0 <= 69) or (72 <= LA96_0 <= 74) or (77 <= LA96_0 <= 79)) :
16300                    alt96 = 2
16301                else:
16302                    if self.backtracking > 0:
16303                        self.failed = True
16304                        return retval
16305
16306                    nvae = NoViableAltException("561:1: expression_statement : ( ';' | expression ';' );", 96, 0, self.input)
16307
16308                    raise nvae
16309
16310                if alt96 == 1:
16311                    # C.g:562:4: ';'
16312                    self.match(self.input, 25, self.FOLLOW_25_in_expression_statement2254)
16313                    if self.failed:
16314                        return retval
16315
16316
16317                elif alt96 == 2:
16318                    # C.g:563:4: expression ';'
16319                    self.following.append(self.FOLLOW_expression_in_expression_statement2259)
16320                    self.expression()
16321                    self.following.pop()
16322                    if self.failed:
16323                        return retval
16324                    self.match(self.input, 25, self.FOLLOW_25_in_expression_statement2261)
16325                    if self.failed:
16326                        return retval
16327
16328
16329                retval.stop = self.input.LT(-1)
16330
16331
16332            except RecognitionException, re:
16333                self.reportError(re)
16334                self.recover(self.input, re)
16335        finally:
16336            if self.backtracking > 0:
16337                self.memoize(self.input, 68, expression_statement_StartIndex)
16338
16339            pass
16340
16341        return retval
16342
16343    # $ANTLR end expression_statement
16344
16345
16346    # $ANTLR start selection_statement
16347    # C.g:566:1: selection_statement : ( 'if' '(' e= expression ')' statement ( options {k=1; backtrack=false; } : 'else' statement )? | 'switch' '(' expression ')' statement );
16348    def selection_statement(self, ):
16349
16350        selection_statement_StartIndex = self.input.index()
16351        e = None
16352
16353
16354        try:
16355            try:
16356                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 69):
16357                    return
16358
16359                # C.g:567:2: ( 'if' '(' e= expression ')' statement ( options {k=1; backtrack=false; } : 'else' statement )? | 'switch' '(' expression ')' statement )
16360                alt98 = 2
16361                LA98_0 = self.input.LA(1)
16362
16363                if (LA98_0 == 108) :
16364                    alt98 = 1
16365                elif (LA98_0 == 110) :
16366                    alt98 = 2
16367                else:
16368                    if self.backtracking > 0:
16369                        self.failed = True
16370                        return
16371
16372                    nvae = NoViableAltException("566:1: selection_statement : ( 'if' '(' e= expression ')' statement ( options {k=1; backtrack=false; } : 'else' statement )? | 'switch' '(' expression ')' statement );", 98, 0, self.input)
16373
16374                    raise nvae
16375
16376                if alt98 == 1:
16377                    # C.g:567:4: 'if' '(' e= expression ')' statement ( options {k=1; backtrack=false; } : 'else' statement )?
16378                    self.match(self.input, 108, self.FOLLOW_108_in_selection_statement2272)
16379                    if self.failed:
16380                        return
16381                    self.match(self.input, 62, self.FOLLOW_62_in_selection_statement2274)
16382                    if self.failed:
16383                        return
16384                    self.following.append(self.FOLLOW_expression_in_selection_statement2278)
16385                    e = self.expression()
16386                    self.following.pop()
16387                    if self.failed:
16388                        return
16389                    self.match(self.input, 63, self.FOLLOW_63_in_selection_statement2280)
16390                    if self.failed:
16391                        return
16392                    if self.backtracking == 0:
16393                        self.StorePredicateExpression(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start,e.stop))
16394
16395                    self.following.append(self.FOLLOW_statement_in_selection_statement2284)
16396                    self.statement()
16397                    self.following.pop()
16398                    if self.failed:
16399                        return
16400                    # C.g:567:167: ( options {k=1; backtrack=false; } : 'else' statement )?
16401                    alt97 = 2
16402                    LA97_0 = self.input.LA(1)
16403
16404                    if (LA97_0 == 109) :
16405                        alt97 = 1
16406                    if alt97 == 1:
16407                        # C.g:567:200: 'else' statement
16408                        self.match(self.input, 109, self.FOLLOW_109_in_selection_statement2299)
16409                        if self.failed:
16410                            return
16411                        self.following.append(self.FOLLOW_statement_in_selection_statement2301)
16412                        self.statement()
16413                        self.following.pop()
16414                        if self.failed:
16415                            return
16416
16417
16418
16419
16420
16421                elif alt98 == 2:
16422                    # C.g:568:4: 'switch' '(' expression ')' statement
16423                    self.match(self.input, 110, self.FOLLOW_110_in_selection_statement2308)
16424                    if self.failed:
16425                        return
16426                    self.match(self.input, 62, self.FOLLOW_62_in_selection_statement2310)
16427                    if self.failed:
16428                        return
16429                    self.following.append(self.FOLLOW_expression_in_selection_statement2312)
16430                    self.expression()
16431                    self.following.pop()
16432                    if self.failed:
16433                        return
16434                    self.match(self.input, 63, self.FOLLOW_63_in_selection_statement2314)
16435                    if self.failed:
16436                        return
16437                    self.following.append(self.FOLLOW_statement_in_selection_statement2316)
16438                    self.statement()
16439                    self.following.pop()
16440                    if self.failed:
16441                        return
16442
16443
16444
16445            except RecognitionException, re:
16446                self.reportError(re)
16447                self.recover(self.input, re)
16448        finally:
16449            if self.backtracking > 0:
16450                self.memoize(self.input, 69, selection_statement_StartIndex)
16451
16452            pass
16453
16454        return
16455
16456    # $ANTLR end selection_statement
16457
16458
16459    # $ANTLR start iteration_statement
16460    # C.g:571:1: iteration_statement : ( 'while' '(' e= expression ')' statement | 'do' statement 'while' '(' e= expression ')' ';' | 'for' '(' expression_statement e= expression_statement ( expression )? ')' statement );
16461    def iteration_statement(self, ):
16462
16463        iteration_statement_StartIndex = self.input.index()
16464        e = None
16465
16466
16467        try:
16468            try:
16469                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 70):
16470                    return
16471
16472                # C.g:572:2: ( 'while' '(' e= expression ')' statement | 'do' statement 'while' '(' e= expression ')' ';' | 'for' '(' expression_statement e= expression_statement ( expression )? ')' statement )
16473                alt100 = 3
16474                LA100 = self.input.LA(1)
16475                if LA100 == 111:
16476                    alt100 = 1
16477                elif LA100 == 112:
16478                    alt100 = 2
16479                elif LA100 == 113:
16480                    alt100 = 3
16481                else:
16482                    if self.backtracking > 0:
16483                        self.failed = True
16484                        return
16485
16486                    nvae = NoViableAltException("571:1: iteration_statement : ( 'while' '(' e= expression ')' statement | 'do' statement 'while' '(' e= expression ')' ';' | 'for' '(' expression_statement e= expression_statement ( expression )? ')' statement );", 100, 0, self.input)
16487
16488                    raise nvae
16489
16490                if alt100 == 1:
16491                    # C.g:572:4: 'while' '(' e= expression ')' statement
16492                    self.match(self.input, 111, self.FOLLOW_111_in_iteration_statement2327)
16493                    if self.failed:
16494                        return
16495                    self.match(self.input, 62, self.FOLLOW_62_in_iteration_statement2329)
16496                    if self.failed:
16497                        return
16498                    self.following.append(self.FOLLOW_expression_in_iteration_statement2333)
16499                    e = self.expression()
16500                    self.following.pop()
16501                    if self.failed:
16502                        return
16503                    self.match(self.input, 63, self.FOLLOW_63_in_iteration_statement2335)
16504                    if self.failed:
16505                        return
16506                    self.following.append(self.FOLLOW_statement_in_iteration_statement2337)
16507                    self.statement()
16508                    self.following.pop()
16509                    if self.failed:
16510                        return
16511                    if self.backtracking == 0:
16512                        self.StorePredicateExpression(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start,e.stop))
16513
16514
16515
16516                elif alt100 == 2:
16517                    # C.g:573:4: 'do' statement 'while' '(' e= expression ')' ';'
16518                    self.match(self.input, 112, self.FOLLOW_112_in_iteration_statement2344)
16519                    if self.failed:
16520                        return
16521                    self.following.append(self.FOLLOW_statement_in_iteration_statement2346)
16522                    self.statement()
16523                    self.following.pop()
16524                    if self.failed:
16525                        return
16526                    self.match(self.input, 111, self.FOLLOW_111_in_iteration_statement2348)
16527                    if self.failed:
16528                        return
16529                    self.match(self.input, 62, self.FOLLOW_62_in_iteration_statement2350)
16530                    if self.failed:
16531                        return
16532                    self.following.append(self.FOLLOW_expression_in_iteration_statement2354)
16533                    e = self.expression()
16534                    self.following.pop()
16535                    if self.failed:
16536                        return
16537                    self.match(self.input, 63, self.FOLLOW_63_in_iteration_statement2356)
16538                    if self.failed:
16539                        return
16540                    self.match(self.input, 25, self.FOLLOW_25_in_iteration_statement2358)
16541                    if self.failed:
16542                        return
16543                    if self.backtracking == 0:
16544                        self.StorePredicateExpression(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start,e.stop))
16545
16546
16547
16548                elif alt100 == 3:
16549                    # C.g:574:4: 'for' '(' expression_statement e= expression_statement ( expression )? ')' statement
16550                    self.match(self.input, 113, self.FOLLOW_113_in_iteration_statement2365)
16551                    if self.failed:
16552                        return
16553                    self.match(self.input, 62, self.FOLLOW_62_in_iteration_statement2367)
16554                    if self.failed:
16555                        return
16556                    self.following.append(self.FOLLOW_expression_statement_in_iteration_statement2369)
16557                    self.expression_statement()
16558                    self.following.pop()
16559                    if self.failed:
16560                        return
16561                    self.following.append(self.FOLLOW_expression_statement_in_iteration_statement2373)
16562                    e = self.expression_statement()
16563                    self.following.pop()
16564                    if self.failed:
16565                        return
16566                    # C.g:574:58: ( expression )?
16567                    alt99 = 2
16568                    LA99_0 = self.input.LA(1)
16569
16570                    if ((IDENTIFIER <= LA99_0 <= FLOATING_POINT_LITERAL) or LA99_0 == 62 or LA99_0 == 66 or (68 <= LA99_0 <= 69) or (72 <= LA99_0 <= 74) or (77 <= LA99_0 <= 79)) :
16571                        alt99 = 1
16572                    if alt99 == 1:
16573                        # C.g:0:0: expression
16574                        self.following.append(self.FOLLOW_expression_in_iteration_statement2375)
16575                        self.expression()
16576                        self.following.pop()
16577                        if self.failed:
16578                            return
16579
16580
16581
16582                    self.match(self.input, 63, self.FOLLOW_63_in_iteration_statement2378)
16583                    if self.failed:
16584                        return
16585                    self.following.append(self.FOLLOW_statement_in_iteration_statement2380)
16586                    self.statement()
16587                    self.following.pop()
16588                    if self.failed:
16589                        return
16590                    if self.backtracking == 0:
16591                        self.StorePredicateExpression(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start,e.stop))
16592
16593
16594
16595
16596            except RecognitionException, re:
16597                self.reportError(re)
16598                self.recover(self.input, re)
16599        finally:
16600            if self.backtracking > 0:
16601                self.memoize(self.input, 70, iteration_statement_StartIndex)
16602
16603            pass
16604
16605        return
16606
16607    # $ANTLR end iteration_statement
16608
16609
16610    # $ANTLR start jump_statement
16611    # C.g:577:1: jump_statement : ( 'goto' IDENTIFIER ';' | 'continue' ';' | 'break' ';' | 'return' ';' | 'return' expression ';' );
16612    def jump_statement(self, ):
16613
16614        jump_statement_StartIndex = self.input.index()
16615        try:
16616            try:
16617                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 71):
16618                    return
16619
16620                # C.g:578:2: ( 'goto' IDENTIFIER ';' | 'continue' ';' | 'break' ';' | 'return' ';' | 'return' expression ';' )
16621                alt101 = 5
16622                LA101 = self.input.LA(1)
16623                if LA101 == 114:
16624                    alt101 = 1
16625                elif LA101 == 115:
16626                    alt101 = 2
16627                elif LA101 == 116:
16628                    alt101 = 3
16629                elif LA101 == 117:
16630                    LA101_4 = self.input.LA(2)
16631
16632                    if (LA101_4 == 25) :
16633                        alt101 = 4
16634                    elif ((IDENTIFIER <= LA101_4 <= FLOATING_POINT_LITERAL) or LA101_4 == 62 or LA101_4 == 66 or (68 <= LA101_4 <= 69) or (72 <= LA101_4 <= 74) or (77 <= LA101_4 <= 79)) :
16635                        alt101 = 5
16636                    else:
16637                        if self.backtracking > 0:
16638                            self.failed = True
16639                            return
16640
16641                        nvae = NoViableAltException("577:1: jump_statement : ( 'goto' IDENTIFIER ';' | 'continue' ';' | 'break' ';' | 'return' ';' | 'return' expression ';' );", 101, 4, self.input)
16642
16643                        raise nvae
16644
16645                else:
16646                    if self.backtracking > 0:
16647                        self.failed = True
16648                        return
16649
16650                    nvae = NoViableAltException("577:1: jump_statement : ( 'goto' IDENTIFIER ';' | 'continue' ';' | 'break' ';' | 'return' ';' | 'return' expression ';' );", 101, 0, self.input)
16651
16652                    raise nvae
16653
16654                if alt101 == 1:
16655                    # C.g:578:4: 'goto' IDENTIFIER ';'
16656                    self.match(self.input, 114, self.FOLLOW_114_in_jump_statement2393)
16657                    if self.failed:
16658                        return
16659                    self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_jump_statement2395)
16660                    if self.failed:
16661                        return
16662                    self.match(self.input, 25, self.FOLLOW_25_in_jump_statement2397)
16663                    if self.failed:
16664                        return
16665
16666
16667                elif alt101 == 2:
16668                    # C.g:579:4: 'continue' ';'
16669                    self.match(self.input, 115, self.FOLLOW_115_in_jump_statement2402)
16670                    if self.failed:
16671                        return
16672                    self.match(self.input, 25, self.FOLLOW_25_in_jump_statement2404)
16673                    if self.failed:
16674                        return
16675
16676
16677                elif alt101 == 3:
16678                    # C.g:580:4: 'break' ';'
16679                    self.match(self.input, 116, self.FOLLOW_116_in_jump_statement2409)
16680                    if self.failed:
16681                        return
16682                    self.match(self.input, 25, self.FOLLOW_25_in_jump_statement2411)
16683                    if self.failed:
16684                        return
16685
16686
16687                elif alt101 == 4:
16688                    # C.g:581:4: 'return' ';'
16689                    self.match(self.input, 117, self.FOLLOW_117_in_jump_statement2416)
16690                    if self.failed:
16691                        return
16692                    self.match(self.input, 25, self.FOLLOW_25_in_jump_statement2418)
16693                    if self.failed:
16694                        return
16695
16696
16697                elif alt101 == 5:
16698                    # C.g:582:4: 'return' expression ';'
16699                    self.match(self.input, 117, self.FOLLOW_117_in_jump_statement2423)
16700                    if self.failed:
16701                        return
16702                    self.following.append(self.FOLLOW_expression_in_jump_statement2425)
16703                    self.expression()
16704                    self.following.pop()
16705                    if self.failed:
16706                        return
16707                    self.match(self.input, 25, self.FOLLOW_25_in_jump_statement2427)
16708                    if self.failed:
16709                        return
16710
16711
16712
16713            except RecognitionException, re:
16714                self.reportError(re)
16715                self.recover(self.input, re)
16716        finally:
16717            if self.backtracking > 0:
16718                self.memoize(self.input, 71, jump_statement_StartIndex)
16719
16720            pass
16721
16722        return
16723
16724    # $ANTLR end jump_statement
16725
16726    # $ANTLR start synpred2
16727    def synpred2_fragment(self, ):
16728        # C.g:119:6: ( declaration_specifiers )
16729        # C.g:119:6: declaration_specifiers
16730        self.following.append(self.FOLLOW_declaration_specifiers_in_synpred2100)
16731        self.declaration_specifiers()
16732        self.following.pop()
16733        if self.failed:
16734            return
16735
16736
16737    # $ANTLR end synpred2
16738
16739
16740
16741    # $ANTLR start synpred4
16742    def synpred4_fragment(self, ):
16743        # C.g:119:4: ( ( declaration_specifiers )? declarator ( declaration )* '{' )
16744        # C.g:119:6: ( declaration_specifiers )? declarator ( declaration )* '{'
16745        # C.g:119:6: ( declaration_specifiers )?
16746        alt102 = 2
16747        LA102 = self.input.LA(1)
16748        if LA102 == 29 or LA102 == 30 or LA102 == 31 or LA102 == 32 or LA102 == 33 or LA102 == 34 or LA102 == 35 or LA102 == 36 or LA102 == 37 or LA102 == 38 or LA102 == 39 or LA102 == 40 or LA102 == 41 or LA102 == 42 or LA102 == 45 or LA102 == 46 or LA102 == 48 or LA102 == 49 or LA102 == 50 or LA102 == 51 or LA102 == 52 or LA102 == 53 or LA102 == 54 or LA102 == 55 or LA102 == 56 or LA102 == 57 or LA102 == 61:
16749            alt102 = 1
16750        elif LA102 == IDENTIFIER:
16751            LA102 = self.input.LA(2)
16752            if LA102 == 62:
16753                LA102_21 = self.input.LA(3)
16754
16755                if (self.synpred2()) :
16756                    alt102 = 1
16757            elif LA102 == 29 or LA102 == 30 or LA102 == 31 or LA102 == 32 or LA102 == 33:
16758                LA102_23 = self.input.LA(3)
16759
16760                if (self.synpred2()) :
16761                    alt102 = 1
16762            elif LA102 == 34:
16763                LA102_24 = self.input.LA(3)
16764
16765                if (self.synpred2()) :
16766                    alt102 = 1
16767            elif LA102 == 35:
16768                LA102_25 = self.input.LA(3)
16769
16770                if (self.synpred2()) :
16771                    alt102 = 1
16772            elif LA102 == 36:
16773                LA102_26 = self.input.LA(3)
16774
16775                if (self.synpred2()) :
16776                    alt102 = 1
16777            elif LA102 == 37:
16778                LA102_27 = self.input.LA(3)
16779
16780                if (self.synpred2()) :
16781                    alt102 = 1
16782            elif LA102 == 38:
16783                LA102_28 = self.input.LA(3)
16784
16785                if (self.synpred2()) :
16786                    alt102 = 1
16787            elif LA102 == 39:
16788                LA102_29 = self.input.LA(3)
16789
16790                if (self.synpred2()) :
16791                    alt102 = 1
16792            elif LA102 == 40:
16793                LA102_30 = self.input.LA(3)
16794
16795                if (self.synpred2()) :
16796                    alt102 = 1
16797            elif LA102 == 41:
16798                LA102_31 = self.input.LA(3)
16799
16800                if (self.synpred2()) :
16801                    alt102 = 1
16802            elif LA102 == 42:
16803                LA102_32 = self.input.LA(3)
16804
16805                if (self.synpred2()) :
16806                    alt102 = 1
16807            elif LA102 == 45 or LA102 == 46:
16808                LA102_33 = self.input.LA(3)
16809
16810                if (self.synpred2()) :
16811                    alt102 = 1
16812            elif LA102 == 48:
16813                LA102_34 = self.input.LA(3)
16814
16815                if (self.synpred2()) :
16816                    alt102 = 1
16817            elif LA102 == IDENTIFIER:
16818                LA102_35 = self.input.LA(3)
16819
16820                if (self.synpred2()) :
16821                    alt102 = 1
16822            elif LA102 == 58:
16823                LA102_36 = self.input.LA(3)
16824
16825                if (self.synpred2()) :
16826                    alt102 = 1
16827            elif LA102 == 66:
16828                alt102 = 1
16829            elif LA102 == 59:
16830                LA102_39 = self.input.LA(3)
16831
16832                if (self.synpred2()) :
16833                    alt102 = 1
16834            elif LA102 == 60:
16835                LA102_40 = self.input.LA(3)
16836
16837                if (self.synpred2()) :
16838                    alt102 = 1
16839            elif LA102 == 49 or LA102 == 50 or LA102 == 51 or LA102 == 52 or LA102 == 53 or LA102 == 54 or LA102 == 55 or LA102 == 56 or LA102 == 57 or LA102 == 61:
16840                LA102_41 = self.input.LA(3)
16841
16842                if (self.synpred2()) :
16843                    alt102 = 1
16844        elif LA102 == 58:
16845            LA102_14 = self.input.LA(2)
16846
16847            if (self.synpred2()) :
16848                alt102 = 1
16849        elif LA102 == 59:
16850            LA102_16 = self.input.LA(2)
16851
16852            if (self.synpred2()) :
16853                alt102 = 1
16854        elif LA102 == 60:
16855            LA102_17 = self.input.LA(2)
16856
16857            if (self.synpred2()) :
16858                alt102 = 1
16859        if alt102 == 1:
16860            # C.g:0:0: declaration_specifiers
16861            self.following.append(self.FOLLOW_declaration_specifiers_in_synpred4100)
16862            self.declaration_specifiers()
16863            self.following.pop()
16864            if self.failed:
16865                return
16866
16867
16868
16869        self.following.append(self.FOLLOW_declarator_in_synpred4103)
16870        self.declarator()
16871        self.following.pop()
16872        if self.failed:
16873            return
16874        # C.g:119:41: ( declaration )*
16875        while True: #loop103
16876            alt103 = 2
16877            LA103_0 = self.input.LA(1)
16878
16879            if (LA103_0 == IDENTIFIER or LA103_0 == 26 or (29 <= LA103_0 <= 42) or (45 <= LA103_0 <= 46) or (48 <= LA103_0 <= 61)) :
16880                alt103 = 1
16881
16882
16883            if alt103 == 1:
16884                # C.g:0:0: declaration
16885                self.following.append(self.FOLLOW_declaration_in_synpred4105)
16886                self.declaration()
16887                self.following.pop()
16888                if self.failed:
16889                    return
16890
16891
16892            else:
16893                break #loop103
16894
16895
16896        self.match(self.input, 43, self.FOLLOW_43_in_synpred4108)
16897        if self.failed:
16898            return
16899
16900
16901    # $ANTLR end synpred4
16902
16903
16904
16905    # $ANTLR start synpred5
16906    def synpred5_fragment(self, ):
16907        # C.g:120:4: ( declaration )
16908        # C.g:120:4: declaration
16909        self.following.append(self.FOLLOW_declaration_in_synpred5118)
16910        self.declaration()
16911        self.following.pop()
16912        if self.failed:
16913            return
16914
16915
16916    # $ANTLR end synpred5
16917
16918
16919
16920    # $ANTLR start synpred7
16921    def synpred7_fragment(self, ):
16922        # C.g:146:6: ( declaration_specifiers )
16923        # C.g:146:6: declaration_specifiers
16924        self.following.append(self.FOLLOW_declaration_specifiers_in_synpred7157)
16925        self.declaration_specifiers()
16926        self.following.pop()
16927        if self.failed:
16928            return
16929
16930
16931    # $ANTLR end synpred7
16932
16933
16934
16935    # $ANTLR start synpred10
16936    def synpred10_fragment(self, ):
16937        # C.g:167:18: ( declaration_specifiers )
16938        # C.g:167:18: declaration_specifiers
16939        self.following.append(self.FOLLOW_declaration_specifiers_in_synpred10207)
16940        self.declaration_specifiers()
16941        self.following.pop()
16942        if self.failed:
16943            return
16944
16945
16946    # $ANTLR end synpred10
16947
16948
16949
16950    # $ANTLR start synpred14
16951    def synpred14_fragment(self, ):
16952        # C.g:184:7: ( type_specifier )
16953        # C.g:184:7: type_specifier
16954        self.following.append(self.FOLLOW_type_specifier_in_synpred14272)
16955        self.type_specifier()
16956        self.following.pop()
16957        if self.failed:
16958            return
16959
16960
16961    # $ANTLR end synpred14
16962
16963
16964
16965    # $ANTLR start synpred15
16966    def synpred15_fragment(self, ):
16967        # C.g:185:13: ( type_qualifier )
16968        # C.g:185:13: type_qualifier
16969        self.following.append(self.FOLLOW_type_qualifier_in_synpred15286)
16970        self.type_qualifier()
16971        self.following.pop()
16972        if self.failed:
16973            return
16974
16975
16976    # $ANTLR end synpred15
16977
16978
16979
16980    # $ANTLR start synpred33
16981    def synpred33_fragment(self, ):
16982        # C.g:225:16: ( type_qualifier )
16983        # C.g:225:16: type_qualifier
16984        self.following.append(self.FOLLOW_type_qualifier_in_synpred33444)
16985        self.type_qualifier()
16986        self.following.pop()
16987        if self.failed:
16988            return
16989
16990
16991    # $ANTLR end synpred33
16992
16993
16994
16995    # $ANTLR start synpred34
16996    def synpred34_fragment(self, ):
16997        # C.g:225:4: ( IDENTIFIER ( type_qualifier )* declarator )
16998        # C.g:225:5: IDENTIFIER ( type_qualifier )* declarator
16999        self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_synpred34442)
17000        if self.failed:
17001            return
17002        # C.g:225:16: ( type_qualifier )*
17003        while True: #loop106
17004            alt106 = 2
17005            LA106 = self.input.LA(1)
17006            if LA106 == 58:
17007                LA106_2 = self.input.LA(2)
17008
17009                if (self.synpred33()) :
17010                    alt106 = 1
17011
17012
17013            elif LA106 == 59:
17014                LA106_3 = self.input.LA(2)
17015
17016                if (self.synpred33()) :
17017                    alt106 = 1
17018
17019
17020            elif LA106 == 60:
17021                LA106_4 = self.input.LA(2)
17022
17023                if (self.synpred33()) :
17024                    alt106 = 1
17025
17026
17027            elif LA106 == 49 or LA106 == 50 or LA106 == 51 or LA106 == 52 or LA106 == 53 or LA106 == 54 or LA106 == 55 or LA106 == 56 or LA106 == 57 or LA106 == 61:
17028                alt106 = 1
17029
17030            if alt106 == 1:
17031                # C.g:0:0: type_qualifier
17032                self.following.append(self.FOLLOW_type_qualifier_in_synpred34444)
17033                self.type_qualifier()
17034                self.following.pop()
17035                if self.failed:
17036                    return
17037
17038
17039            else:
17040                break #loop106
17041
17042
17043        self.following.append(self.FOLLOW_declarator_in_synpred34447)
17044        self.declarator()
17045        self.following.pop()
17046        if self.failed:
17047            return
17048
17049
17050    # $ANTLR end synpred34
17051
17052
17053
17054    # $ANTLR start synpred39
17055    def synpred39_fragment(self, ):
17056        # C.g:253:6: ( type_qualifier )
17057        # C.g:253:6: type_qualifier
17058        self.following.append(self.FOLLOW_type_qualifier_in_synpred39566)
17059        self.type_qualifier()
17060        self.following.pop()
17061        if self.failed:
17062            return
17063
17064
17065    # $ANTLR end synpred39
17066
17067
17068
17069    # $ANTLR start synpred40
17070    def synpred40_fragment(self, ):
17071        # C.g:253:23: ( type_specifier )
17072        # C.g:253:23: type_specifier
17073        self.following.append(self.FOLLOW_type_specifier_in_synpred40570)
17074        self.type_specifier()
17075        self.following.pop()
17076        if self.failed:
17077            return
17078
17079
17080    # $ANTLR end synpred40
17081
17082
17083
17084    # $ANTLR start synpred66
17085    def synpred66_fragment(self, ):
17086        # C.g:297:4: ( ( pointer )? ( 'EFIAPI' )? ( 'EFI_BOOTSERVICE' )? ( 'EFI_RUNTIMESERVICE' )? direct_declarator )
17087        # C.g:297:4: ( pointer )? ( 'EFIAPI' )? ( 'EFI_BOOTSERVICE' )? ( 'EFI_RUNTIMESERVICE' )? direct_declarator
17088        # C.g:297:4: ( pointer )?
17089        alt111 = 2
17090        LA111_0 = self.input.LA(1)
17091
17092        if (LA111_0 == 66) :
17093            alt111 = 1
17094        if alt111 == 1:
17095            # C.g:0:0: pointer
17096            self.following.append(self.FOLLOW_pointer_in_synpred66784)
17097            self.pointer()
17098            self.following.pop()
17099            if self.failed:
17100                return
17101
17102
17103
17104        # C.g:297:13: ( 'EFIAPI' )?
17105        alt112 = 2
17106        LA112_0 = self.input.LA(1)
17107
17108        if (LA112_0 == 58) :
17109            alt112 = 1
17110        if alt112 == 1:
17111            # C.g:297:14: 'EFIAPI'
17112            self.match(self.input, 58, self.FOLLOW_58_in_synpred66788)
17113            if self.failed:
17114                return
17115
17116
17117
17118        # C.g:297:25: ( 'EFI_BOOTSERVICE' )?
17119        alt113 = 2
17120        LA113_0 = self.input.LA(1)
17121
17122        if (LA113_0 == 59) :
17123            alt113 = 1
17124        if alt113 == 1:
17125            # C.g:297:26: 'EFI_BOOTSERVICE'
17126            self.match(self.input, 59, self.FOLLOW_59_in_synpred66793)
17127            if self.failed:
17128                return
17129
17130
17131
17132        # C.g:297:46: ( 'EFI_RUNTIMESERVICE' )?
17133        alt114 = 2
17134        LA114_0 = self.input.LA(1)
17135
17136        if (LA114_0 == 60) :
17137            alt114 = 1
17138        if alt114 == 1:
17139            # C.g:297:47: 'EFI_RUNTIMESERVICE'
17140            self.match(self.input, 60, self.FOLLOW_60_in_synpred66798)
17141            if self.failed:
17142                return
17143
17144
17145
17146        self.following.append(self.FOLLOW_direct_declarator_in_synpred66802)
17147        self.direct_declarator()
17148        self.following.pop()
17149        if self.failed:
17150            return
17151
17152
17153    # $ANTLR end synpred66
17154
17155
17156
17157    # $ANTLR start synpred67
17158    def synpred67_fragment(self, ):
17159        # C.g:303:15: ( declarator_suffix )
17160        # C.g:303:15: declarator_suffix
17161        self.following.append(self.FOLLOW_declarator_suffix_in_synpred67821)
17162        self.declarator_suffix()
17163        self.following.pop()
17164        if self.failed:
17165            return
17166
17167
17168    # $ANTLR end synpred67
17169
17170
17171
17172    # $ANTLR start synpred69
17173    def synpred69_fragment(self, ):
17174        # C.g:304:9: ( 'EFIAPI' )
17175        # C.g:304:9: 'EFIAPI'
17176        self.match(self.input, 58, self.FOLLOW_58_in_synpred69830)
17177        if self.failed:
17178            return
17179
17180
17181    # $ANTLR end synpred69
17182
17183
17184
17185    # $ANTLR start synpred70
17186    def synpred70_fragment(self, ):
17187        # C.g:304:35: ( declarator_suffix )
17188        # C.g:304:35: declarator_suffix
17189        self.following.append(self.FOLLOW_declarator_suffix_in_synpred70838)
17190        self.declarator_suffix()
17191        self.following.pop()
17192        if self.failed:
17193            return
17194
17195
17196    # $ANTLR end synpred70
17197
17198
17199
17200    # $ANTLR start synpred73
17201    def synpred73_fragment(self, ):
17202        # C.g:310:9: ( '(' parameter_type_list ')' )
17203        # C.g:310:9: '(' parameter_type_list ')'
17204        self.match(self.input, 62, self.FOLLOW_62_in_synpred73878)
17205        if self.failed:
17206            return
17207        self.following.append(self.FOLLOW_parameter_type_list_in_synpred73880)
17208        self.parameter_type_list()
17209        self.following.pop()
17210        if self.failed:
17211            return
17212        self.match(self.input, 63, self.FOLLOW_63_in_synpred73882)
17213        if self.failed:
17214            return
17215
17216
17217    # $ANTLR end synpred73
17218
17219
17220
17221    # $ANTLR start synpred74
17222    def synpred74_fragment(self, ):
17223        # C.g:311:9: ( '(' identifier_list ')' )
17224        # C.g:311:9: '(' identifier_list ')'
17225        self.match(self.input, 62, self.FOLLOW_62_in_synpred74892)
17226        if self.failed:
17227            return
17228        self.following.append(self.FOLLOW_identifier_list_in_synpred74894)
17229        self.identifier_list()
17230        self.following.pop()
17231        if self.failed:
17232            return
17233        self.match(self.input, 63, self.FOLLOW_63_in_synpred74896)
17234        if self.failed:
17235            return
17236
17237
17238    # $ANTLR end synpred74
17239
17240
17241
17242    # $ANTLR start synpred75
17243    def synpred75_fragment(self, ):
17244        # C.g:316:8: ( type_qualifier )
17245        # C.g:316:8: type_qualifier
17246        self.following.append(self.FOLLOW_type_qualifier_in_synpred75921)
17247        self.type_qualifier()
17248        self.following.pop()
17249        if self.failed:
17250            return
17251
17252
17253    # $ANTLR end synpred75
17254
17255
17256
17257    # $ANTLR start synpred76
17258    def synpred76_fragment(self, ):
17259        # C.g:316:24: ( pointer )
17260        # C.g:316:24: pointer
17261        self.following.append(self.FOLLOW_pointer_in_synpred76924)
17262        self.pointer()
17263        self.following.pop()
17264        if self.failed:
17265            return
17266
17267
17268    # $ANTLR end synpred76
17269
17270
17271
17272    # $ANTLR start synpred77
17273    def synpred77_fragment(self, ):
17274        # C.g:316:4: ( '*' ( type_qualifier )+ ( pointer )? )
17275        # C.g:316:4: '*' ( type_qualifier )+ ( pointer )?
17276        self.match(self.input, 66, self.FOLLOW_66_in_synpred77919)
17277        if self.failed:
17278            return
17279        # C.g:316:8: ( type_qualifier )+
17280        cnt116 = 0
17281        while True: #loop116
17282            alt116 = 2
17283            LA116_0 = self.input.LA(1)
17284
17285            if ((49 <= LA116_0 <= 61)) :
17286                alt116 = 1
17287
17288
17289            if alt116 == 1:
17290                # C.g:0:0: type_qualifier
17291                self.following.append(self.FOLLOW_type_qualifier_in_synpred77921)
17292                self.type_qualifier()
17293                self.following.pop()
17294                if self.failed:
17295                    return
17296
17297
17298            else:
17299                if cnt116 >= 1:
17300                    break #loop116
17301
17302                if self.backtracking > 0:
17303                    self.failed = True
17304                    return
17305
17306                eee = EarlyExitException(116, self.input)
17307                raise eee
17308
17309            cnt116 += 1
17310
17311
17312        # C.g:316:24: ( pointer )?
17313        alt117 = 2
17314        LA117_0 = self.input.LA(1)
17315
17316        if (LA117_0 == 66) :
17317            alt117 = 1
17318        if alt117 == 1:
17319            # C.g:0:0: pointer
17320            self.following.append(self.FOLLOW_pointer_in_synpred77924)
17321            self.pointer()
17322            self.following.pop()
17323            if self.failed:
17324                return
17325
17326
17327
17328
17329
17330    # $ANTLR end synpred77
17331
17332
17333
17334    # $ANTLR start synpred78
17335    def synpred78_fragment(self, ):
17336        # C.g:317:4: ( '*' pointer )
17337        # C.g:317:4: '*' pointer
17338        self.match(self.input, 66, self.FOLLOW_66_in_synpred78930)
17339        if self.failed:
17340            return
17341        self.following.append(self.FOLLOW_pointer_in_synpred78932)
17342        self.pointer()
17343        self.following.pop()
17344        if self.failed:
17345            return
17346
17347
17348    # $ANTLR end synpred78
17349
17350
17351
17352    # $ANTLR start synpred81
17353    def synpred81_fragment(self, ):
17354        # C.g:326:32: ( 'OPTIONAL' )
17355        # C.g:326:32: 'OPTIONAL'
17356        self.match(self.input, 53, self.FOLLOW_53_in_synpred81977)
17357        if self.failed:
17358            return
17359
17360
17361    # $ANTLR end synpred81
17362
17363
17364
17365    # $ANTLR start synpred82
17366    def synpred82_fragment(self, ):
17367        # C.g:326:27: ( ',' ( 'OPTIONAL' )? parameter_declaration )
17368        # C.g:326:27: ',' ( 'OPTIONAL' )? parameter_declaration
17369        self.match(self.input, 27, self.FOLLOW_27_in_synpred82974)
17370        if self.failed:
17371            return
17372        # C.g:326:31: ( 'OPTIONAL' )?
17373        alt119 = 2
17374        LA119_0 = self.input.LA(1)
17375
17376        if (LA119_0 == 53) :
17377            LA119_1 = self.input.LA(2)
17378
17379            if (self.synpred81()) :
17380                alt119 = 1
17381        if alt119 == 1:
17382            # C.g:326:32: 'OPTIONAL'
17383            self.match(self.input, 53, self.FOLLOW_53_in_synpred82977)
17384            if self.failed:
17385                return
17386
17387
17388
17389        self.following.append(self.FOLLOW_parameter_declaration_in_synpred82981)
17390        self.parameter_declaration()
17391        self.following.pop()
17392        if self.failed:
17393            return
17394
17395
17396    # $ANTLR end synpred82
17397
17398
17399
17400    # $ANTLR start synpred83
17401    def synpred83_fragment(self, ):
17402        # C.g:330:28: ( declarator )
17403        # C.g:330:28: declarator
17404        self.following.append(self.FOLLOW_declarator_in_synpred83997)
17405        self.declarator()
17406        self.following.pop()
17407        if self.failed:
17408            return
17409
17410
17411    # $ANTLR end synpred83
17412
17413
17414
17415    # $ANTLR start synpred84
17416    def synpred84_fragment(self, ):
17417        # C.g:330:39: ( abstract_declarator )
17418        # C.g:330:39: abstract_declarator
17419        self.following.append(self.FOLLOW_abstract_declarator_in_synpred84999)
17420        self.abstract_declarator()
17421        self.following.pop()
17422        if self.failed:
17423            return
17424
17425
17426    # $ANTLR end synpred84
17427
17428
17429
17430    # $ANTLR start synpred86
17431    def synpred86_fragment(self, ):
17432        # C.g:330:4: ( declaration_specifiers ( declarator | abstract_declarator )* ( 'OPTIONAL' )? )
17433        # C.g:330:4: declaration_specifiers ( declarator | abstract_declarator )* ( 'OPTIONAL' )?
17434        self.following.append(self.FOLLOW_declaration_specifiers_in_synpred86994)
17435        self.declaration_specifiers()
17436        self.following.pop()
17437        if self.failed:
17438            return
17439        # C.g:330:27: ( declarator | abstract_declarator )*
17440        while True: #loop120
17441            alt120 = 3
17442            LA120 = self.input.LA(1)
17443            if LA120 == 66:
17444                LA120_3 = self.input.LA(2)
17445
17446                if (self.synpred83()) :
17447                    alt120 = 1
17448                elif (self.synpred84()) :
17449                    alt120 = 2
17450
17451
17452            elif LA120 == IDENTIFIER or LA120 == 58 or LA120 == 59 or LA120 == 60:
17453                alt120 = 1
17454            elif LA120 == 62:
17455                LA120 = self.input.LA(2)
17456                if LA120 == 29 or LA120 == 30 or LA120 == 31 or LA120 == 32 or LA120 == 33 or LA120 == 34 or LA120 == 35 or LA120 == 36 or LA120 == 37 or LA120 == 38 or LA120 == 39 or LA120 == 40 or LA120 == 41 or LA120 == 42 or LA120 == 45 or LA120 == 46 or LA120 == 48 or LA120 == 49 or LA120 == 50 or LA120 == 51 or LA120 == 52 or LA120 == 53 or LA120 == 54 or LA120 == 55 or LA120 == 56 or LA120 == 57 or LA120 == 61 or LA120 == 63 or LA120 == 64:
17457                    alt120 = 2
17458                elif LA120 == 58:
17459                    LA120_21 = self.input.LA(3)
17460
17461                    if (self.synpred83()) :
17462                        alt120 = 1
17463                    elif (self.synpred84()) :
17464                        alt120 = 2
17465
17466
17467                elif LA120 == 66:
17468                    LA120_22 = self.input.LA(3)
17469
17470                    if (self.synpred83()) :
17471                        alt120 = 1
17472                    elif (self.synpred84()) :
17473                        alt120 = 2
17474
17475
17476                elif LA120 == 59:
17477                    LA120_23 = self.input.LA(3)
17478
17479                    if (self.synpred83()) :
17480                        alt120 = 1
17481                    elif (self.synpred84()) :
17482                        alt120 = 2
17483
17484
17485                elif LA120 == 60:
17486                    LA120_24 = self.input.LA(3)
17487
17488                    if (self.synpred83()) :
17489                        alt120 = 1
17490                    elif (self.synpred84()) :
17491                        alt120 = 2
17492
17493
17494                elif LA120 == IDENTIFIER:
17495                    LA120_25 = self.input.LA(3)
17496
17497                    if (self.synpred83()) :
17498                        alt120 = 1
17499                    elif (self.synpred84()) :
17500                        alt120 = 2
17501
17502
17503                elif LA120 == 62:
17504                    LA120_26 = self.input.LA(3)
17505
17506                    if (self.synpred83()) :
17507                        alt120 = 1
17508                    elif (self.synpred84()) :
17509                        alt120 = 2
17510
17511
17512
17513            elif LA120 == 64:
17514                alt120 = 2
17515
17516            if alt120 == 1:
17517                # C.g:330:28: declarator
17518                self.following.append(self.FOLLOW_declarator_in_synpred86997)
17519                self.declarator()
17520                self.following.pop()
17521                if self.failed:
17522                    return
17523
17524
17525            elif alt120 == 2:
17526                # C.g:330:39: abstract_declarator
17527                self.following.append(self.FOLLOW_abstract_declarator_in_synpred86999)
17528                self.abstract_declarator()
17529                self.following.pop()
17530                if self.failed:
17531                    return
17532
17533
17534            else:
17535                break #loop120
17536
17537
17538        # C.g:330:61: ( 'OPTIONAL' )?
17539        alt121 = 2
17540        LA121_0 = self.input.LA(1)
17541
17542        if (LA121_0 == 53) :
17543            alt121 = 1
17544        if alt121 == 1:
17545            # C.g:330:62: 'OPTIONAL'
17546            self.match(self.input, 53, self.FOLLOW_53_in_synpred861004)
17547            if self.failed:
17548                return
17549
17550
17551
17552
17553
17554    # $ANTLR end synpred86
17555
17556
17557
17558    # $ANTLR start synpred90
17559    def synpred90_fragment(self, ):
17560        # C.g:341:4: ( specifier_qualifier_list ( abstract_declarator )? )
17561        # C.g:341:4: specifier_qualifier_list ( abstract_declarator )?
17562        self.following.append(self.FOLLOW_specifier_qualifier_list_in_synpred901046)
17563        self.specifier_qualifier_list()
17564        self.following.pop()
17565        if self.failed:
17566            return
17567        # C.g:341:29: ( abstract_declarator )?
17568        alt122 = 2
17569        LA122_0 = self.input.LA(1)
17570
17571        if (LA122_0 == 62 or LA122_0 == 64 or LA122_0 == 66) :
17572            alt122 = 1
17573        if alt122 == 1:
17574            # C.g:0:0: abstract_declarator
17575            self.following.append(self.FOLLOW_abstract_declarator_in_synpred901048)
17576            self.abstract_declarator()
17577            self.following.pop()
17578            if self.failed:
17579                return
17580
17581
17582
17583
17584
17585    # $ANTLR end synpred90
17586
17587
17588
17589    # $ANTLR start synpred91
17590    def synpred91_fragment(self, ):
17591        # C.g:346:12: ( direct_abstract_declarator )
17592        # C.g:346:12: direct_abstract_declarator
17593        self.following.append(self.FOLLOW_direct_abstract_declarator_in_synpred911067)
17594        self.direct_abstract_declarator()
17595        self.following.pop()
17596        if self.failed:
17597            return
17598
17599
17600    # $ANTLR end synpred91
17601
17602
17603
17604    # $ANTLR start synpred93
17605    def synpred93_fragment(self, ):
17606        # C.g:351:6: ( '(' abstract_declarator ')' )
17607        # C.g:351:6: '(' abstract_declarator ')'
17608        self.match(self.input, 62, self.FOLLOW_62_in_synpred931086)
17609        if self.failed:
17610            return
17611        self.following.append(self.FOLLOW_abstract_declarator_in_synpred931088)
17612        self.abstract_declarator()
17613        self.following.pop()
17614        if self.failed:
17615            return
17616        self.match(self.input, 63, self.FOLLOW_63_in_synpred931090)
17617        if self.failed:
17618            return
17619
17620
17621    # $ANTLR end synpred93
17622
17623
17624
17625    # $ANTLR start synpred94
17626    def synpred94_fragment(self, ):
17627        # C.g:351:65: ( abstract_declarator_suffix )
17628        # C.g:351:65: abstract_declarator_suffix
17629        self.following.append(self.FOLLOW_abstract_declarator_suffix_in_synpred941098)
17630        self.abstract_declarator_suffix()
17631        self.following.pop()
17632        if self.failed:
17633            return
17634
17635
17636    # $ANTLR end synpred94
17637
17638
17639
17640    # $ANTLR start synpred109
17641    def synpred109_fragment(self, ):
17642        # C.g:386:4: ( '(' type_name ')' cast_expression )
17643        # C.g:386:4: '(' type_name ')' cast_expression
17644        self.match(self.input, 62, self.FOLLOW_62_in_synpred1091282)
17645        if self.failed:
17646            return
17647        self.following.append(self.FOLLOW_type_name_in_synpred1091284)
17648        self.type_name()
17649        self.following.pop()
17650        if self.failed:
17651            return
17652        self.match(self.input, 63, self.FOLLOW_63_in_synpred1091286)
17653        if self.failed:
17654            return
17655        self.following.append(self.FOLLOW_cast_expression_in_synpred1091288)
17656        self.cast_expression()
17657        self.following.pop()
17658        if self.failed:
17659            return
17660
17661
17662    # $ANTLR end synpred109
17663
17664
17665
17666    # $ANTLR start synpred114
17667    def synpred114_fragment(self, ):
17668        # C.g:395:4: ( 'sizeof' unary_expression )
17669        # C.g:395:4: 'sizeof' unary_expression
17670        self.match(self.input, 74, self.FOLLOW_74_in_synpred1141330)
17671        if self.failed:
17672            return
17673        self.following.append(self.FOLLOW_unary_expression_in_synpred1141332)
17674        self.unary_expression()
17675        self.following.pop()
17676        if self.failed:
17677            return
17678
17679
17680    # $ANTLR end synpred114
17681
17682
17683
17684    # $ANTLR start synpred117
17685    def synpred117_fragment(self, ):
17686        # C.g:409:13: ( '(' argument_expression_list ')' )
17687        # C.g:409:13: '(' argument_expression_list ')'
17688        self.match(self.input, 62, self.FOLLOW_62_in_synpred1171420)
17689        if self.failed:
17690            return
17691        self.following.append(self.FOLLOW_argument_expression_list_in_synpred1171424)
17692        self.argument_expression_list()
17693        self.following.pop()
17694        if self.failed:
17695            return
17696        self.match(self.input, 63, self.FOLLOW_63_in_synpred1171428)
17697        if self.failed:
17698            return
17699
17700
17701    # $ANTLR end synpred117
17702
17703
17704
17705    # $ANTLR start synpred118
17706    def synpred118_fragment(self, ):
17707        # C.g:410:13: ( '(' macro_parameter_list ')' )
17708        # C.g:410:13: '(' macro_parameter_list ')'
17709        self.match(self.input, 62, self.FOLLOW_62_in_synpred1181444)
17710        if self.failed:
17711            return
17712        self.following.append(self.FOLLOW_macro_parameter_list_in_synpred1181446)
17713        self.macro_parameter_list()
17714        self.following.pop()
17715        if self.failed:
17716            return
17717        self.match(self.input, 63, self.FOLLOW_63_in_synpred1181448)
17718        if self.failed:
17719            return
17720
17721
17722    # $ANTLR end synpred118
17723
17724
17725
17726    # $ANTLR start synpred120
17727    def synpred120_fragment(self, ):
17728        # C.g:412:13: ( '*' IDENTIFIER )
17729        # C.g:412:13: '*' IDENTIFIER
17730        self.match(self.input, 66, self.FOLLOW_66_in_synpred1201482)
17731        if self.failed:
17732            return
17733        self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_synpred1201486)
17734        if self.failed:
17735            return
17736
17737
17738    # $ANTLR end synpred120
17739
17740
17741
17742    # $ANTLR start synpred137
17743    def synpred137_fragment(self, ):
17744        # C.g:443:20: ( STRING_LITERAL )
17745        # C.g:443:20: STRING_LITERAL
17746        self.match(self.input, STRING_LITERAL, self.FOLLOW_STRING_LITERAL_in_synpred1371683)
17747        if self.failed:
17748            return
17749
17750
17751    # $ANTLR end synpred137
17752
17753
17754
17755    # $ANTLR start synpred138
17756    def synpred138_fragment(self, ):
17757        # C.g:443:8: ( ( IDENTIFIER )* ( STRING_LITERAL )+ )
17758        # C.g:443:8: ( IDENTIFIER )* ( STRING_LITERAL )+
17759        # C.g:443:8: ( IDENTIFIER )*
17760        while True: #loop125
17761            alt125 = 2
17762            LA125_0 = self.input.LA(1)
17763
17764            if (LA125_0 == IDENTIFIER) :
17765                alt125 = 1
17766
17767
17768            if alt125 == 1:
17769                # C.g:0:0: IDENTIFIER
17770                self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_synpred1381680)
17771                if self.failed:
17772                    return
17773
17774
17775            else:
17776                break #loop125
17777
17778
17779        # C.g:443:20: ( STRING_LITERAL )+
17780        cnt126 = 0
17781        while True: #loop126
17782            alt126 = 2
17783            LA126_0 = self.input.LA(1)
17784
17785            if (LA126_0 == STRING_LITERAL) :
17786                alt126 = 1
17787
17788
17789            if alt126 == 1:
17790                # C.g:0:0: STRING_LITERAL
17791                self.match(self.input, STRING_LITERAL, self.FOLLOW_STRING_LITERAL_in_synpred1381683)
17792                if self.failed:
17793                    return
17794
17795
17796            else:
17797                if cnt126 >= 1:
17798                    break #loop126
17799
17800                if self.backtracking > 0:
17801                    self.failed = True
17802                    return
17803
17804                eee = EarlyExitException(126, self.input)
17805                raise eee
17806
17807            cnt126 += 1
17808
17809
17810
17811
17812    # $ANTLR end synpred138
17813
17814
17815
17816    # $ANTLR start synpred142
17817    def synpred142_fragment(self, ):
17818        # C.g:458:4: ( lvalue assignment_operator assignment_expression )
17819        # C.g:458:4: lvalue assignment_operator assignment_expression
17820        self.following.append(self.FOLLOW_lvalue_in_synpred1421744)
17821        self.lvalue()
17822        self.following.pop()
17823        if self.failed:
17824            return
17825        self.following.append(self.FOLLOW_assignment_operator_in_synpred1421746)
17826        self.assignment_operator()
17827        self.following.pop()
17828        if self.failed:
17829            return
17830        self.following.append(self.FOLLOW_assignment_expression_in_synpred1421748)
17831        self.assignment_expression()
17832        self.following.pop()
17833        if self.failed:
17834            return
17835
17836
17837    # $ANTLR end synpred142
17838
17839
17840
17841    # $ANTLR start synpred169
17842    def synpred169_fragment(self, ):
17843        # C.g:520:4: ( expression_statement )
17844        # C.g:520:4: expression_statement
17845        self.following.append(self.FOLLOW_expression_statement_in_synpred1692035)
17846        self.expression_statement()
17847        self.following.pop()
17848        if self.failed:
17849            return
17850
17851
17852    # $ANTLR end synpred169
17853
17854
17855
17856    # $ANTLR start synpred173
17857    def synpred173_fragment(self, ):
17858        # C.g:524:4: ( macro_statement )
17859        # C.g:524:4: macro_statement
17860        self.following.append(self.FOLLOW_macro_statement_in_synpred1732055)
17861        self.macro_statement()
17862        self.following.pop()
17863        if self.failed:
17864            return
17865
17866
17867    # $ANTLR end synpred173
17868
17869
17870
17871    # $ANTLR start synpred174
17872    def synpred174_fragment(self, ):
17873        # C.g:525:4: ( asm2_statement )
17874        # C.g:525:4: asm2_statement
17875        self.following.append(self.FOLLOW_asm2_statement_in_synpred1742060)
17876        self.asm2_statement()
17877        self.following.pop()
17878        if self.failed:
17879            return
17880
17881
17882    # $ANTLR end synpred174
17883
17884
17885
17886    # $ANTLR start synpred181
17887    def synpred181_fragment(self, ):
17888        # C.g:544:19: ( declaration )
17889        # C.g:544:19: declaration
17890        self.following.append(self.FOLLOW_declaration_in_synpred1812166)
17891        self.declaration()
17892        self.following.pop()
17893        if self.failed:
17894            return
17895
17896
17897    # $ANTLR end synpred181
17898
17899
17900
17901    # $ANTLR start synpred182
17902    def synpred182_fragment(self, ):
17903        # C.g:544:33: ( statement_list )
17904        # C.g:544:33: statement_list
17905        self.following.append(self.FOLLOW_statement_list_in_synpred1822170)
17906        self.statement_list()
17907        self.following.pop()
17908        if self.failed:
17909            return
17910
17911
17912    # $ANTLR end synpred182
17913
17914
17915
17916    # $ANTLR start synpred186
17917    def synpred186_fragment(self, ):
17918        # C.g:554:8: ( declaration )
17919        # C.g:554:8: declaration
17920        self.following.append(self.FOLLOW_declaration_in_synpred1862225)
17921        self.declaration()
17922        self.following.pop()
17923        if self.failed:
17924            return
17925
17926
17927    # $ANTLR end synpred186
17928
17929
17930
17931    # $ANTLR start synpred188
17932    def synpred188_fragment(self, ):
17933        # C.g:558:4: ( statement )
17934        # C.g:558:4: statement
17935        self.following.append(self.FOLLOW_statement_in_synpred1882242)
17936        self.statement()
17937        self.following.pop()
17938        if self.failed:
17939            return
17940
17941
17942    # $ANTLR end synpred188
17943
17944
17945
17946    def synpred69(self):
17947        self.backtracking += 1
17948        start = self.input.mark()
17949        self.synpred69_fragment()
17950        success = not self.failed
17951        self.input.rewind(start)
17952        self.backtracking -= 1
17953        self.failed = False
17954        return success
17955
17956    def synpred81(self):
17957        self.backtracking += 1
17958        start = self.input.mark()
17959        self.synpred81_fragment()
17960        success = not self.failed
17961        self.input.rewind(start)
17962        self.backtracking -= 1
17963        self.failed = False
17964        return success
17965
17966    def synpred82(self):
17967        self.backtracking += 1
17968        start = self.input.mark()
17969        self.synpred82_fragment()
17970        success = not self.failed
17971        self.input.rewind(start)
17972        self.backtracking -= 1
17973        self.failed = False
17974        return success
17975
17976    def synpred66(self):
17977        self.backtracking += 1
17978        start = self.input.mark()
17979        self.synpred66_fragment()
17980        success = not self.failed
17981        self.input.rewind(start)
17982        self.backtracking -= 1
17983        self.failed = False
17984        return success
17985
17986    def synpred83(self):
17987        self.backtracking += 1
17988        start = self.input.mark()
17989        self.synpred83_fragment()
17990        success = not self.failed
17991        self.input.rewind(start)
17992        self.backtracking -= 1
17993        self.failed = False
17994        return success
17995
17996    def synpred84(self):
17997        self.backtracking += 1
17998        start = self.input.mark()
17999        self.synpred84_fragment()
18000        success = not self.failed
18001        self.input.rewind(start)
18002        self.backtracking -= 1
18003        self.failed = False
18004        return success
18005
18006    def synpred67(self):
18007        self.backtracking += 1
18008        start = self.input.mark()
18009        self.synpred67_fragment()
18010        success = not self.failed
18011        self.input.rewind(start)
18012        self.backtracking -= 1
18013        self.failed = False
18014        return success
18015
18016    def synpred86(self):
18017        self.backtracking += 1
18018        start = self.input.mark()
18019        self.synpred86_fragment()
18020        success = not self.failed
18021        self.input.rewind(start)
18022        self.backtracking -= 1
18023        self.failed = False
18024        return success
18025
18026    def synpred120(self):
18027        self.backtracking += 1
18028        start = self.input.mark()
18029        self.synpred120_fragment()
18030        success = not self.failed
18031        self.input.rewind(start)
18032        self.backtracking -= 1
18033        self.failed = False
18034        return success
18035
18036    def synpred40(self):
18037        self.backtracking += 1
18038        start = self.input.mark()
18039        self.synpred40_fragment()
18040        success = not self.failed
18041        self.input.rewind(start)
18042        self.backtracking -= 1
18043        self.failed = False
18044        return success
18045
18046    def synpred142(self):
18047        self.backtracking += 1
18048        start = self.input.mark()
18049        self.synpred142_fragment()
18050        success = not self.failed
18051        self.input.rewind(start)
18052        self.backtracking -= 1
18053        self.failed = False
18054        return success
18055
18056    def synpred182(self):
18057        self.backtracking += 1
18058        start = self.input.mark()
18059        self.synpred182_fragment()
18060        success = not self.failed
18061        self.input.rewind(start)
18062        self.backtracking -= 1
18063        self.failed = False
18064        return success
18065
18066    def synpred109(self):
18067        self.backtracking += 1
18068        start = self.input.mark()
18069        self.synpred109_fragment()
18070        success = not self.failed
18071        self.input.rewind(start)
18072        self.backtracking -= 1
18073        self.failed = False
18074        return success
18075
18076    def synpred181(self):
18077        self.backtracking += 1
18078        start = self.input.mark()
18079        self.synpred181_fragment()
18080        success = not self.failed
18081        self.input.rewind(start)
18082        self.backtracking -= 1
18083        self.failed = False
18084        return success
18085
18086    def synpred186(self):
18087        self.backtracking += 1
18088        start = self.input.mark()
18089        self.synpred186_fragment()
18090        success = not self.failed
18091        self.input.rewind(start)
18092        self.backtracking -= 1
18093        self.failed = False
18094        return success
18095
18096    def synpred188(self):
18097        self.backtracking += 1
18098        start = self.input.mark()
18099        self.synpred188_fragment()
18100        success = not self.failed
18101        self.input.rewind(start)
18102        self.backtracking -= 1
18103        self.failed = False
18104        return success
18105
18106    def synpred169(self):
18107        self.backtracking += 1
18108        start = self.input.mark()
18109        self.synpred169_fragment()
18110        success = not self.failed
18111        self.input.rewind(start)
18112        self.backtracking -= 1
18113        self.failed = False
18114        return success
18115
18116    def synpred117(self):
18117        self.backtracking += 1
18118        start = self.input.mark()
18119        self.synpred117_fragment()
18120        success = not self.failed
18121        self.input.rewind(start)
18122        self.backtracking -= 1
18123        self.failed = False
18124        return success
18125
18126    def synpred70(self):
18127        self.backtracking += 1
18128        start = self.input.mark()
18129        self.synpred70_fragment()
18130        success = not self.failed
18131        self.input.rewind(start)
18132        self.backtracking -= 1
18133        self.failed = False
18134        return success
18135
18136    def synpred118(self):
18137        self.backtracking += 1
18138        start = self.input.mark()
18139        self.synpred118_fragment()
18140        success = not self.failed
18141        self.input.rewind(start)
18142        self.backtracking -= 1
18143        self.failed = False
18144        return success
18145
18146    def synpred34(self):
18147        self.backtracking += 1
18148        start = self.input.mark()
18149        self.synpred34_fragment()
18150        success = not self.failed
18151        self.input.rewind(start)
18152        self.backtracking -= 1
18153        self.failed = False
18154        return success
18155
18156    def synpred33(self):
18157        self.backtracking += 1
18158        start = self.input.mark()
18159        self.synpred33_fragment()
18160        success = not self.failed
18161        self.input.rewind(start)
18162        self.backtracking -= 1
18163        self.failed = False
18164        return success
18165
18166    def synpred94(self):
18167        self.backtracking += 1
18168        start = self.input.mark()
18169        self.synpred94_fragment()
18170        success = not self.failed
18171        self.input.rewind(start)
18172        self.backtracking -= 1
18173        self.failed = False
18174        return success
18175
18176    def synpred39(self):
18177        self.backtracking += 1
18178        start = self.input.mark()
18179        self.synpred39_fragment()
18180        success = not self.failed
18181        self.input.rewind(start)
18182        self.backtracking -= 1
18183        self.failed = False
18184        return success
18185
18186    def synpred74(self):
18187        self.backtracking += 1
18188        start = self.input.mark()
18189        self.synpred74_fragment()
18190        success = not self.failed
18191        self.input.rewind(start)
18192        self.backtracking -= 1
18193        self.failed = False
18194        return success
18195
18196    def synpred114(self):
18197        self.backtracking += 1
18198        start = self.input.mark()
18199        self.synpred114_fragment()
18200        success = not self.failed
18201        self.input.rewind(start)
18202        self.backtracking -= 1
18203        self.failed = False
18204        return success
18205
18206    def synpred93(self):
18207        self.backtracking += 1
18208        start = self.input.mark()
18209        self.synpred93_fragment()
18210        success = not self.failed
18211        self.input.rewind(start)
18212        self.backtracking -= 1
18213        self.failed = False
18214        return success
18215
18216    def synpred75(self):
18217        self.backtracking += 1
18218        start = self.input.mark()
18219        self.synpred75_fragment()
18220        success = not self.failed
18221        self.input.rewind(start)
18222        self.backtracking -= 1
18223        self.failed = False
18224        return success
18225
18226    def synpred137(self):
18227        self.backtracking += 1
18228        start = self.input.mark()
18229        self.synpred137_fragment()
18230        success = not self.failed
18231        self.input.rewind(start)
18232        self.backtracking -= 1
18233        self.failed = False
18234        return success
18235
18236    def synpred90(self):
18237        self.backtracking += 1
18238        start = self.input.mark()
18239        self.synpred90_fragment()
18240        success = not self.failed
18241        self.input.rewind(start)
18242        self.backtracking -= 1
18243        self.failed = False
18244        return success
18245
18246    def synpred138(self):
18247        self.backtracking += 1
18248        start = self.input.mark()
18249        self.synpred138_fragment()
18250        success = not self.failed
18251        self.input.rewind(start)
18252        self.backtracking -= 1
18253        self.failed = False
18254        return success
18255
18256    def synpred91(self):
18257        self.backtracking += 1
18258        start = self.input.mark()
18259        self.synpred91_fragment()
18260        success = not self.failed
18261        self.input.rewind(start)
18262        self.backtracking -= 1
18263        self.failed = False
18264        return success
18265
18266    def synpred73(self):
18267        self.backtracking += 1
18268        start = self.input.mark()
18269        self.synpred73_fragment()
18270        success = not self.failed
18271        self.input.rewind(start)
18272        self.backtracking -= 1
18273        self.failed = False
18274        return success
18275
18276    def synpred5(self):
18277        self.backtracking += 1
18278        start = self.input.mark()
18279        self.synpred5_fragment()
18280        success = not self.failed
18281        self.input.rewind(start)
18282        self.backtracking -= 1
18283        self.failed = False
18284        return success
18285
18286    def synpred78(self):
18287        self.backtracking += 1
18288        start = self.input.mark()
18289        self.synpred78_fragment()
18290        success = not self.failed
18291        self.input.rewind(start)
18292        self.backtracking -= 1
18293        self.failed = False
18294        return success
18295
18296    def synpred7(self):
18297        self.backtracking += 1
18298        start = self.input.mark()
18299        self.synpred7_fragment()
18300        success = not self.failed
18301        self.input.rewind(start)
18302        self.backtracking -= 1
18303        self.failed = False
18304        return success
18305
18306    def synpred76(self):
18307        self.backtracking += 1
18308        start = self.input.mark()
18309        self.synpred76_fragment()
18310        success = not self.failed
18311        self.input.rewind(start)
18312        self.backtracking -= 1
18313        self.failed = False
18314        return success
18315
18316    def synpred77(self):
18317        self.backtracking += 1
18318        start = self.input.mark()
18319        self.synpred77_fragment()
18320        success = not self.failed
18321        self.input.rewind(start)
18322        self.backtracking -= 1
18323        self.failed = False
18324        return success
18325
18326    def synpred2(self):
18327        self.backtracking += 1
18328        start = self.input.mark()
18329        self.synpred2_fragment()
18330        success = not self.failed
18331        self.input.rewind(start)
18332        self.backtracking -= 1
18333        self.failed = False
18334        return success
18335
18336    def synpred4(self):
18337        self.backtracking += 1
18338        start = self.input.mark()
18339        self.synpred4_fragment()
18340        success = not self.failed
18341        self.input.rewind(start)
18342        self.backtracking -= 1
18343        self.failed = False
18344        return success
18345
18346    def synpred174(self):
18347        self.backtracking += 1
18348        start = self.input.mark()
18349        self.synpred174_fragment()
18350        success = not self.failed
18351        self.input.rewind(start)
18352        self.backtracking -= 1
18353        self.failed = False
18354        return success
18355
18356    def synpred173(self):
18357        self.backtracking += 1
18358        start = self.input.mark()
18359        self.synpred173_fragment()
18360        success = not self.failed
18361        self.input.rewind(start)
18362        self.backtracking -= 1
18363        self.failed = False
18364        return success
18365
18366    def synpred14(self):
18367        self.backtracking += 1
18368        start = self.input.mark()
18369        self.synpred14_fragment()
18370        success = not self.failed
18371        self.input.rewind(start)
18372        self.backtracking -= 1
18373        self.failed = False
18374        return success
18375
18376    def synpred15(self):
18377        self.backtracking += 1
18378        start = self.input.mark()
18379        self.synpred15_fragment()
18380        success = not self.failed
18381        self.input.rewind(start)
18382        self.backtracking -= 1
18383        self.failed = False
18384        return success
18385
18386    def synpred10(self):
18387        self.backtracking += 1
18388        start = self.input.mark()
18389        self.synpred10_fragment()
18390        success = not self.failed
18391        self.input.rewind(start)
18392        self.backtracking -= 1
18393        self.failed = False
18394        return success
18395
18396
18397
18398
18399
18400    FOLLOW_external_declaration_in_translation_unit74 = frozenset([1, 4, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66])
18401    FOLLOW_function_definition_in_external_declaration113 = frozenset([1])
18402    FOLLOW_declaration_in_external_declaration118 = frozenset([1])
18403    FOLLOW_macro_statement_in_external_declaration123 = frozenset([1, 25])
18404    FOLLOW_25_in_external_declaration126 = frozenset([1])
18405    FOLLOW_declaration_specifiers_in_function_definition157 = frozenset([4, 58, 59, 60, 62, 66])
18406    FOLLOW_declarator_in_function_definition160 = frozenset([4, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61])
18407    FOLLOW_declaration_in_function_definition166 = frozenset([4, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61])
18408    FOLLOW_compound_statement_in_function_definition171 = frozenset([1])
18409    FOLLOW_compound_statement_in_function_definition180 = frozenset([1])
18410    FOLLOW_26_in_declaration203 = frozenset([4, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66])
18411    FOLLOW_declaration_specifiers_in_declaration207 = frozenset([4, 58, 59, 60, 62, 66])
18412    FOLLOW_init_declarator_list_in_declaration216 = frozenset([25])
18413    FOLLOW_25_in_declaration220 = frozenset([1])
18414    FOLLOW_declaration_specifiers_in_declaration234 = frozenset([4, 25, 58, 59, 60, 62, 66])
18415    FOLLOW_init_declarator_list_in_declaration238 = frozenset([25])
18416    FOLLOW_25_in_declaration243 = frozenset([1])
18417    FOLLOW_storage_class_specifier_in_declaration_specifiers264 = frozenset([1, 4, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61])
18418    FOLLOW_type_specifier_in_declaration_specifiers272 = frozenset([1, 4, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61])
18419    FOLLOW_type_qualifier_in_declaration_specifiers286 = frozenset([1, 4, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61])
18420    FOLLOW_init_declarator_in_init_declarator_list308 = frozenset([1, 27])
18421    FOLLOW_27_in_init_declarator_list311 = frozenset([4, 58, 59, 60, 62, 66])
18422    FOLLOW_init_declarator_in_init_declarator_list313 = frozenset([1, 27])
18423    FOLLOW_declarator_in_init_declarator326 = frozenset([1, 28])
18424    FOLLOW_28_in_init_declarator329 = frozenset([4, 5, 6, 7, 8, 9, 10, 43, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18425    FOLLOW_initializer_in_init_declarator331 = frozenset([1])
18426    FOLLOW_set_in_storage_class_specifier0 = frozenset([1])
18427    FOLLOW_34_in_type_specifier376 = frozenset([1])
18428    FOLLOW_35_in_type_specifier381 = frozenset([1])
18429    FOLLOW_36_in_type_specifier386 = frozenset([1])
18430    FOLLOW_37_in_type_specifier391 = frozenset([1])
18431    FOLLOW_38_in_type_specifier396 = frozenset([1])
18432    FOLLOW_39_in_type_specifier401 = frozenset([1])
18433    FOLLOW_40_in_type_specifier406 = frozenset([1])
18434    FOLLOW_41_in_type_specifier411 = frozenset([1])
18435    FOLLOW_42_in_type_specifier416 = frozenset([1])
18436    FOLLOW_struct_or_union_specifier_in_type_specifier423 = frozenset([1])
18437    FOLLOW_enum_specifier_in_type_specifier433 = frozenset([1])
18438    FOLLOW_type_id_in_type_specifier451 = frozenset([1])
18439    FOLLOW_IDENTIFIER_in_type_id467 = frozenset([1])
18440    FOLLOW_struct_or_union_in_struct_or_union_specifier494 = frozenset([4, 43])
18441    FOLLOW_IDENTIFIER_in_struct_or_union_specifier496 = frozenset([43])
18442    FOLLOW_43_in_struct_or_union_specifier499 = frozenset([4, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61])
18443    FOLLOW_struct_declaration_list_in_struct_or_union_specifier501 = frozenset([44])
18444    FOLLOW_44_in_struct_or_union_specifier503 = frozenset([1])
18445    FOLLOW_struct_or_union_in_struct_or_union_specifier508 = frozenset([4])
18446    FOLLOW_IDENTIFIER_in_struct_or_union_specifier510 = frozenset([1])
18447    FOLLOW_set_in_struct_or_union0 = frozenset([1])
18448    FOLLOW_struct_declaration_in_struct_declaration_list537 = frozenset([1, 4, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61])
18449    FOLLOW_specifier_qualifier_list_in_struct_declaration549 = frozenset([4, 47, 58, 59, 60, 62, 66])
18450    FOLLOW_struct_declarator_list_in_struct_declaration551 = frozenset([25])
18451    FOLLOW_25_in_struct_declaration553 = frozenset([1])
18452    FOLLOW_type_qualifier_in_specifier_qualifier_list566 = frozenset([1, 4, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61])
18453    FOLLOW_type_specifier_in_specifier_qualifier_list570 = frozenset([1, 4, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61])
18454    FOLLOW_struct_declarator_in_struct_declarator_list584 = frozenset([1, 27])
18455    FOLLOW_27_in_struct_declarator_list587 = frozenset([4, 47, 58, 59, 60, 62, 66])
18456    FOLLOW_struct_declarator_in_struct_declarator_list589 = frozenset([1, 27])
18457    FOLLOW_declarator_in_struct_declarator602 = frozenset([1, 47])
18458    FOLLOW_47_in_struct_declarator605 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18459    FOLLOW_constant_expression_in_struct_declarator607 = frozenset([1])
18460    FOLLOW_47_in_struct_declarator614 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18461    FOLLOW_constant_expression_in_struct_declarator616 = frozenset([1])
18462    FOLLOW_48_in_enum_specifier634 = frozenset([43])
18463    FOLLOW_43_in_enum_specifier636 = frozenset([4])
18464    FOLLOW_enumerator_list_in_enum_specifier638 = frozenset([27, 44])
18465    FOLLOW_27_in_enum_specifier640 = frozenset([44])
18466    FOLLOW_44_in_enum_specifier643 = frozenset([1])
18467    FOLLOW_48_in_enum_specifier648 = frozenset([4])
18468    FOLLOW_IDENTIFIER_in_enum_specifier650 = frozenset([43])
18469    FOLLOW_43_in_enum_specifier652 = frozenset([4])
18470    FOLLOW_enumerator_list_in_enum_specifier654 = frozenset([27, 44])
18471    FOLLOW_27_in_enum_specifier656 = frozenset([44])
18472    FOLLOW_44_in_enum_specifier659 = frozenset([1])
18473    FOLLOW_48_in_enum_specifier664 = frozenset([4])
18474    FOLLOW_IDENTIFIER_in_enum_specifier666 = frozenset([1])
18475    FOLLOW_enumerator_in_enumerator_list677 = frozenset([1, 27])
18476    FOLLOW_27_in_enumerator_list680 = frozenset([4])
18477    FOLLOW_enumerator_in_enumerator_list682 = frozenset([1, 27])
18478    FOLLOW_IDENTIFIER_in_enumerator695 = frozenset([1, 28])
18479    FOLLOW_28_in_enumerator698 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18480    FOLLOW_constant_expression_in_enumerator700 = frozenset([1])
18481    FOLLOW_set_in_type_qualifier0 = frozenset([1])
18482    FOLLOW_pointer_in_declarator784 = frozenset([4, 58, 59, 60, 62])
18483    FOLLOW_58_in_declarator788 = frozenset([4, 59, 60, 62])
18484    FOLLOW_59_in_declarator793 = frozenset([4, 60, 62])
18485    FOLLOW_60_in_declarator798 = frozenset([4, 62])
18486    FOLLOW_direct_declarator_in_declarator802 = frozenset([1])
18487    FOLLOW_pointer_in_declarator808 = frozenset([1])
18488    FOLLOW_IDENTIFIER_in_direct_declarator819 = frozenset([1, 62, 64])
18489    FOLLOW_declarator_suffix_in_direct_declarator821 = frozenset([1, 62, 64])
18490    FOLLOW_62_in_direct_declarator827 = frozenset([4, 58, 59, 60, 62, 66])
18491    FOLLOW_58_in_direct_declarator830 = frozenset([4, 58, 59, 60, 62, 66])
18492    FOLLOW_declarator_in_direct_declarator834 = frozenset([63])
18493    FOLLOW_63_in_direct_declarator836 = frozenset([62, 64])
18494    FOLLOW_declarator_suffix_in_direct_declarator838 = frozenset([1, 62, 64])
18495    FOLLOW_64_in_declarator_suffix852 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18496    FOLLOW_constant_expression_in_declarator_suffix854 = frozenset([65])
18497    FOLLOW_65_in_declarator_suffix856 = frozenset([1])
18498    FOLLOW_64_in_declarator_suffix866 = frozenset([65])
18499    FOLLOW_65_in_declarator_suffix868 = frozenset([1])
18500    FOLLOW_62_in_declarator_suffix878 = frozenset([4, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 66])
18501    FOLLOW_parameter_type_list_in_declarator_suffix880 = frozenset([63])
18502    FOLLOW_63_in_declarator_suffix882 = frozenset([1])
18503    FOLLOW_62_in_declarator_suffix892 = frozenset([4])
18504    FOLLOW_identifier_list_in_declarator_suffix894 = frozenset([63])
18505    FOLLOW_63_in_declarator_suffix896 = frozenset([1])
18506    FOLLOW_62_in_declarator_suffix906 = frozenset([63])
18507    FOLLOW_63_in_declarator_suffix908 = frozenset([1])
18508    FOLLOW_66_in_pointer919 = frozenset([49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61])
18509    FOLLOW_type_qualifier_in_pointer921 = frozenset([1, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 66])
18510    FOLLOW_pointer_in_pointer924 = frozenset([1])
18511    FOLLOW_66_in_pointer930 = frozenset([66])
18512    FOLLOW_pointer_in_pointer932 = frozenset([1])
18513    FOLLOW_66_in_pointer937 = frozenset([1])
18514    FOLLOW_parameter_list_in_parameter_type_list948 = frozenset([1, 27])
18515    FOLLOW_27_in_parameter_type_list951 = frozenset([53, 67])
18516    FOLLOW_53_in_parameter_type_list954 = frozenset([67])
18517    FOLLOW_67_in_parameter_type_list958 = frozenset([1])
18518    FOLLOW_parameter_declaration_in_parameter_list971 = frozenset([1, 27])
18519    FOLLOW_27_in_parameter_list974 = frozenset([4, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 66])
18520    FOLLOW_53_in_parameter_list977 = frozenset([4, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 66])
18521    FOLLOW_parameter_declaration_in_parameter_list981 = frozenset([1, 27])
18522    FOLLOW_declaration_specifiers_in_parameter_declaration994 = frozenset([1, 4, 53, 58, 59, 60, 62, 64, 66])
18523    FOLLOW_declarator_in_parameter_declaration997 = frozenset([1, 4, 53, 58, 59, 60, 62, 64, 66])
18524    FOLLOW_abstract_declarator_in_parameter_declaration999 = frozenset([1, 4, 53, 58, 59, 60, 62, 64, 66])
18525    FOLLOW_53_in_parameter_declaration1004 = frozenset([1])
18526    FOLLOW_pointer_in_parameter_declaration1013 = frozenset([4, 66])
18527    FOLLOW_IDENTIFIER_in_parameter_declaration1016 = frozenset([1])
18528    FOLLOW_IDENTIFIER_in_identifier_list1027 = frozenset([1, 27])
18529    FOLLOW_27_in_identifier_list1031 = frozenset([4])
18530    FOLLOW_IDENTIFIER_in_identifier_list1033 = frozenset([1, 27])
18531    FOLLOW_specifier_qualifier_list_in_type_name1046 = frozenset([1, 62, 64, 66])
18532    FOLLOW_abstract_declarator_in_type_name1048 = frozenset([1])
18533    FOLLOW_type_id_in_type_name1054 = frozenset([1])
18534    FOLLOW_pointer_in_abstract_declarator1065 = frozenset([1, 62, 64])
18535    FOLLOW_direct_abstract_declarator_in_abstract_declarator1067 = frozenset([1])
18536    FOLLOW_direct_abstract_declarator_in_abstract_declarator1073 = frozenset([1])
18537    FOLLOW_62_in_direct_abstract_declarator1086 = frozenset([62, 64, 66])
18538    FOLLOW_abstract_declarator_in_direct_abstract_declarator1088 = frozenset([63])
18539    FOLLOW_63_in_direct_abstract_declarator1090 = frozenset([1, 62, 64])
18540    FOLLOW_abstract_declarator_suffix_in_direct_abstract_declarator1094 = frozenset([1, 62, 64])
18541    FOLLOW_abstract_declarator_suffix_in_direct_abstract_declarator1098 = frozenset([1, 62, 64])
18542    FOLLOW_64_in_abstract_declarator_suffix1110 = frozenset([65])
18543    FOLLOW_65_in_abstract_declarator_suffix1112 = frozenset([1])
18544    FOLLOW_64_in_abstract_declarator_suffix1117 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18545    FOLLOW_constant_expression_in_abstract_declarator_suffix1119 = frozenset([65])
18546    FOLLOW_65_in_abstract_declarator_suffix1121 = frozenset([1])
18547    FOLLOW_62_in_abstract_declarator_suffix1126 = frozenset([63])
18548    FOLLOW_63_in_abstract_declarator_suffix1128 = frozenset([1])
18549    FOLLOW_62_in_abstract_declarator_suffix1133 = frozenset([4, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 66])
18550    FOLLOW_parameter_type_list_in_abstract_declarator_suffix1135 = frozenset([63])
18551    FOLLOW_63_in_abstract_declarator_suffix1137 = frozenset([1])
18552    FOLLOW_assignment_expression_in_initializer1150 = frozenset([1])
18553    FOLLOW_43_in_initializer1155 = frozenset([4, 5, 6, 7, 8, 9, 10, 43, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18554    FOLLOW_initializer_list_in_initializer1157 = frozenset([27, 44])
18555    FOLLOW_27_in_initializer1159 = frozenset([44])
18556    FOLLOW_44_in_initializer1162 = frozenset([1])
18557    FOLLOW_initializer_in_initializer_list1173 = frozenset([1, 27])
18558    FOLLOW_27_in_initializer_list1176 = frozenset([4, 5, 6, 7, 8, 9, 10, 43, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18559    FOLLOW_initializer_in_initializer_list1178 = frozenset([1, 27])
18560    FOLLOW_assignment_expression_in_argument_expression_list1196 = frozenset([1, 27, 53])
18561    FOLLOW_53_in_argument_expression_list1199 = frozenset([1, 27])
18562    FOLLOW_27_in_argument_expression_list1204 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18563    FOLLOW_assignment_expression_in_argument_expression_list1206 = frozenset([1, 27, 53])
18564    FOLLOW_53_in_argument_expression_list1209 = frozenset([1, 27])
18565    FOLLOW_multiplicative_expression_in_additive_expression1225 = frozenset([1, 68, 69])
18566    FOLLOW_68_in_additive_expression1229 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18567    FOLLOW_multiplicative_expression_in_additive_expression1231 = frozenset([1, 68, 69])
18568    FOLLOW_69_in_additive_expression1235 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18569    FOLLOW_multiplicative_expression_in_additive_expression1237 = frozenset([1, 68, 69])
18570    FOLLOW_cast_expression_in_multiplicative_expression1251 = frozenset([1, 66, 70, 71])
18571    FOLLOW_66_in_multiplicative_expression1255 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18572    FOLLOW_cast_expression_in_multiplicative_expression1257 = frozenset([1, 66, 70, 71])
18573    FOLLOW_70_in_multiplicative_expression1261 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18574    FOLLOW_cast_expression_in_multiplicative_expression1263 = frozenset([1, 66, 70, 71])
18575    FOLLOW_71_in_multiplicative_expression1267 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18576    FOLLOW_cast_expression_in_multiplicative_expression1269 = frozenset([1, 66, 70, 71])
18577    FOLLOW_62_in_cast_expression1282 = frozenset([4, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61])
18578    FOLLOW_type_name_in_cast_expression1284 = frozenset([63])
18579    FOLLOW_63_in_cast_expression1286 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18580    FOLLOW_cast_expression_in_cast_expression1288 = frozenset([1])
18581    FOLLOW_unary_expression_in_cast_expression1293 = frozenset([1])
18582    FOLLOW_postfix_expression_in_unary_expression1304 = frozenset([1])
18583    FOLLOW_72_in_unary_expression1309 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18584    FOLLOW_unary_expression_in_unary_expression1311 = frozenset([1])
18585    FOLLOW_73_in_unary_expression1316 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18586    FOLLOW_unary_expression_in_unary_expression1318 = frozenset([1])
18587    FOLLOW_unary_operator_in_unary_expression1323 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18588    FOLLOW_cast_expression_in_unary_expression1325 = frozenset([1])
18589    FOLLOW_74_in_unary_expression1330 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18590    FOLLOW_unary_expression_in_unary_expression1332 = frozenset([1])
18591    FOLLOW_74_in_unary_expression1337 = frozenset([62])
18592    FOLLOW_62_in_unary_expression1339 = frozenset([4, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61])
18593    FOLLOW_type_name_in_unary_expression1341 = frozenset([63])
18594    FOLLOW_63_in_unary_expression1343 = frozenset([1])
18595    FOLLOW_primary_expression_in_postfix_expression1367 = frozenset([1, 62, 64, 66, 72, 73, 75, 76])
18596    FOLLOW_64_in_postfix_expression1383 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18597    FOLLOW_expression_in_postfix_expression1385 = frozenset([65])
18598    FOLLOW_65_in_postfix_expression1387 = frozenset([1, 62, 64, 66, 72, 73, 75, 76])
18599    FOLLOW_62_in_postfix_expression1401 = frozenset([63])
18600    FOLLOW_63_in_postfix_expression1405 = frozenset([1, 62, 64, 66, 72, 73, 75, 76])
18601    FOLLOW_62_in_postfix_expression1420 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18602    FOLLOW_argument_expression_list_in_postfix_expression1424 = frozenset([63])
18603    FOLLOW_63_in_postfix_expression1428 = frozenset([1, 62, 64, 66, 72, 73, 75, 76])
18604    FOLLOW_62_in_postfix_expression1444 = frozenset([4, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 66])
18605    FOLLOW_macro_parameter_list_in_postfix_expression1446 = frozenset([63])
18606    FOLLOW_63_in_postfix_expression1448 = frozenset([1, 62, 64, 66, 72, 73, 75, 76])
18607    FOLLOW_75_in_postfix_expression1462 = frozenset([4])
18608    FOLLOW_IDENTIFIER_in_postfix_expression1466 = frozenset([1, 62, 64, 66, 72, 73, 75, 76])
18609    FOLLOW_66_in_postfix_expression1482 = frozenset([4])
18610    FOLLOW_IDENTIFIER_in_postfix_expression1486 = frozenset([1, 62, 64, 66, 72, 73, 75, 76])
18611    FOLLOW_76_in_postfix_expression1502 = frozenset([4])
18612    FOLLOW_IDENTIFIER_in_postfix_expression1506 = frozenset([1, 62, 64, 66, 72, 73, 75, 76])
18613    FOLLOW_72_in_postfix_expression1522 = frozenset([1, 62, 64, 66, 72, 73, 75, 76])
18614    FOLLOW_73_in_postfix_expression1536 = frozenset([1, 62, 64, 66, 72, 73, 75, 76])
18615    FOLLOW_parameter_declaration_in_macro_parameter_list1559 = frozenset([1, 27])
18616    FOLLOW_27_in_macro_parameter_list1562 = frozenset([4, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 66])
18617    FOLLOW_parameter_declaration_in_macro_parameter_list1564 = frozenset([1, 27])
18618    FOLLOW_set_in_unary_operator0 = frozenset([1])
18619    FOLLOW_IDENTIFIER_in_primary_expression1613 = frozenset([1])
18620    FOLLOW_constant_in_primary_expression1618 = frozenset([1])
18621    FOLLOW_62_in_primary_expression1623 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18622    FOLLOW_expression_in_primary_expression1625 = frozenset([63])
18623    FOLLOW_63_in_primary_expression1627 = frozenset([1])
18624    FOLLOW_HEX_LITERAL_in_constant1643 = frozenset([1])
18625    FOLLOW_OCTAL_LITERAL_in_constant1653 = frozenset([1])
18626    FOLLOW_DECIMAL_LITERAL_in_constant1663 = frozenset([1])
18627    FOLLOW_CHARACTER_LITERAL_in_constant1671 = frozenset([1])
18628    FOLLOW_IDENTIFIER_in_constant1680 = frozenset([4, 9])
18629    FOLLOW_STRING_LITERAL_in_constant1683 = frozenset([1, 4, 9])
18630    FOLLOW_IDENTIFIER_in_constant1688 = frozenset([1, 4])
18631    FOLLOW_FLOATING_POINT_LITERAL_in_constant1699 = frozenset([1])
18632    FOLLOW_assignment_expression_in_expression1715 = frozenset([1, 27])
18633    FOLLOW_27_in_expression1718 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18634    FOLLOW_assignment_expression_in_expression1720 = frozenset([1, 27])
18635    FOLLOW_conditional_expression_in_constant_expression1733 = frozenset([1])
18636    FOLLOW_lvalue_in_assignment_expression1744 = frozenset([28, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89])
18637    FOLLOW_assignment_operator_in_assignment_expression1746 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18638    FOLLOW_assignment_expression_in_assignment_expression1748 = frozenset([1])
18639    FOLLOW_conditional_expression_in_assignment_expression1753 = frozenset([1])
18640    FOLLOW_unary_expression_in_lvalue1765 = frozenset([1])
18641    FOLLOW_set_in_assignment_operator0 = frozenset([1])
18642    FOLLOW_logical_or_expression_in_conditional_expression1839 = frozenset([1, 90])
18643    FOLLOW_90_in_conditional_expression1842 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18644    FOLLOW_expression_in_conditional_expression1844 = frozenset([47])
18645    FOLLOW_47_in_conditional_expression1846 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18646    FOLLOW_conditional_expression_in_conditional_expression1848 = frozenset([1])
18647    FOLLOW_logical_and_expression_in_logical_or_expression1863 = frozenset([1, 91])
18648    FOLLOW_91_in_logical_or_expression1866 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18649    FOLLOW_logical_and_expression_in_logical_or_expression1868 = frozenset([1, 91])
18650    FOLLOW_inclusive_or_expression_in_logical_and_expression1881 = frozenset([1, 92])
18651    FOLLOW_92_in_logical_and_expression1884 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18652    FOLLOW_inclusive_or_expression_in_logical_and_expression1886 = frozenset([1, 92])
18653    FOLLOW_exclusive_or_expression_in_inclusive_or_expression1899 = frozenset([1, 93])
18654    FOLLOW_93_in_inclusive_or_expression1902 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18655    FOLLOW_exclusive_or_expression_in_inclusive_or_expression1904 = frozenset([1, 93])
18656    FOLLOW_and_expression_in_exclusive_or_expression1917 = frozenset([1, 94])
18657    FOLLOW_94_in_exclusive_or_expression1920 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18658    FOLLOW_and_expression_in_exclusive_or_expression1922 = frozenset([1, 94])
18659    FOLLOW_equality_expression_in_and_expression1935 = frozenset([1, 77])
18660    FOLLOW_77_in_and_expression1938 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18661    FOLLOW_equality_expression_in_and_expression1940 = frozenset([1, 77])
18662    FOLLOW_relational_expression_in_equality_expression1952 = frozenset([1, 95, 96])
18663    FOLLOW_set_in_equality_expression1955 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18664    FOLLOW_relational_expression_in_equality_expression1961 = frozenset([1, 95, 96])
18665    FOLLOW_shift_expression_in_relational_expression1975 = frozenset([1, 97, 98, 99, 100])
18666    FOLLOW_set_in_relational_expression1978 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18667    FOLLOW_shift_expression_in_relational_expression1988 = frozenset([1, 97, 98, 99, 100])
18668    FOLLOW_additive_expression_in_shift_expression2001 = frozenset([1, 101, 102])
18669    FOLLOW_set_in_shift_expression2004 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18670    FOLLOW_additive_expression_in_shift_expression2010 = frozenset([1, 101, 102])
18671    FOLLOW_labeled_statement_in_statement2025 = frozenset([1])
18672    FOLLOW_compound_statement_in_statement2030 = frozenset([1])
18673    FOLLOW_expression_statement_in_statement2035 = frozenset([1])
18674    FOLLOW_selection_statement_in_statement2040 = frozenset([1])
18675    FOLLOW_iteration_statement_in_statement2045 = frozenset([1])
18676    FOLLOW_jump_statement_in_statement2050 = frozenset([1])
18677    FOLLOW_macro_statement_in_statement2055 = frozenset([1])
18678    FOLLOW_asm2_statement_in_statement2060 = frozenset([1])
18679    FOLLOW_asm1_statement_in_statement2065 = frozenset([1])
18680    FOLLOW_asm_statement_in_statement2070 = frozenset([1])
18681    FOLLOW_declaration_in_statement2075 = frozenset([1])
18682    FOLLOW_103_in_asm2_statement2086 = frozenset([4])
18683    FOLLOW_IDENTIFIER_in_asm2_statement2089 = frozenset([62])
18684    FOLLOW_62_in_asm2_statement2091 = frozenset([4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117])
18685    FOLLOW_set_in_asm2_statement2094 = frozenset([4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117])
18686    FOLLOW_63_in_asm2_statement2101 = frozenset([25])
18687    FOLLOW_25_in_asm2_statement2103 = frozenset([1])
18688    FOLLOW_104_in_asm1_statement2115 = frozenset([43])
18689    FOLLOW_43_in_asm1_statement2117 = frozenset([4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117])
18690    FOLLOW_set_in_asm1_statement2120 = frozenset([4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117])
18691    FOLLOW_44_in_asm1_statement2127 = frozenset([1])
18692    FOLLOW_105_in_asm_statement2138 = frozenset([43])
18693    FOLLOW_43_in_asm_statement2140 = frozenset([4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117])
18694    FOLLOW_set_in_asm_statement2143 = frozenset([4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117])
18695    FOLLOW_44_in_asm_statement2150 = frozenset([1])
18696    FOLLOW_IDENTIFIER_in_macro_statement2162 = frozenset([62])
18697    FOLLOW_62_in_macro_statement2164 = frozenset([4, 5, 6, 7, 8, 9, 10, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 66, 68, 69, 72, 73, 74, 77, 78, 79, 103, 104, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 116, 117])
18698    FOLLOW_declaration_in_macro_statement2166 = frozenset([4, 5, 6, 7, 8, 9, 10, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 66, 68, 69, 72, 73, 74, 77, 78, 79, 103, 104, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 116, 117])
18699    FOLLOW_statement_list_in_macro_statement2170 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 63, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18700    FOLLOW_expression_in_macro_statement2173 = frozenset([63])
18701    FOLLOW_63_in_macro_statement2176 = frozenset([1])
18702    FOLLOW_IDENTIFIER_in_labeled_statement2188 = frozenset([47])
18703    FOLLOW_47_in_labeled_statement2190 = frozenset([4, 5, 6, 7, 8, 9, 10, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79, 103, 104, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 116, 117])
18704    FOLLOW_statement_in_labeled_statement2192 = frozenset([1])
18705    FOLLOW_106_in_labeled_statement2197 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18706    FOLLOW_constant_expression_in_labeled_statement2199 = frozenset([47])
18707    FOLLOW_47_in_labeled_statement2201 = frozenset([4, 5, 6, 7, 8, 9, 10, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79, 103, 104, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 116, 117])
18708    FOLLOW_statement_in_labeled_statement2203 = frozenset([1])
18709    FOLLOW_107_in_labeled_statement2208 = frozenset([47])
18710    FOLLOW_47_in_labeled_statement2210 = frozenset([4, 5, 6, 7, 8, 9, 10, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79, 103, 104, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 116, 117])
18711    FOLLOW_statement_in_labeled_statement2212 = frozenset([1])
18712    FOLLOW_43_in_compound_statement2223 = frozenset([4, 5, 6, 7, 8, 9, 10, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79, 103, 104, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 116, 117])
18713    FOLLOW_declaration_in_compound_statement2225 = frozenset([4, 5, 6, 7, 8, 9, 10, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79, 103, 104, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 116, 117])
18714    FOLLOW_statement_list_in_compound_statement2228 = frozenset([44])
18715    FOLLOW_44_in_compound_statement2231 = frozenset([1])
18716    FOLLOW_statement_in_statement_list2242 = frozenset([1, 4, 5, 6, 7, 8, 9, 10, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79, 103, 104, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 116, 117])
18717    FOLLOW_25_in_expression_statement2254 = frozenset([1])
18718    FOLLOW_expression_in_expression_statement2259 = frozenset([25])
18719    FOLLOW_25_in_expression_statement2261 = frozenset([1])
18720    FOLLOW_108_in_selection_statement2272 = frozenset([62])
18721    FOLLOW_62_in_selection_statement2274 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18722    FOLLOW_expression_in_selection_statement2278 = frozenset([63])
18723    FOLLOW_63_in_selection_statement2280 = frozenset([4, 5, 6, 7, 8, 9, 10, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79, 103, 104, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 116, 117])
18724    FOLLOW_statement_in_selection_statement2284 = frozenset([1, 109])
18725    FOLLOW_109_in_selection_statement2299 = frozenset([4, 5, 6, 7, 8, 9, 10, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79, 103, 104, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 116, 117])
18726    FOLLOW_statement_in_selection_statement2301 = frozenset([1])
18727    FOLLOW_110_in_selection_statement2308 = frozenset([62])
18728    FOLLOW_62_in_selection_statement2310 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18729    FOLLOW_expression_in_selection_statement2312 = frozenset([63])
18730    FOLLOW_63_in_selection_statement2314 = frozenset([4, 5, 6, 7, 8, 9, 10, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79, 103, 104, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 116, 117])
18731    FOLLOW_statement_in_selection_statement2316 = frozenset([1])
18732    FOLLOW_111_in_iteration_statement2327 = frozenset([62])
18733    FOLLOW_62_in_iteration_statement2329 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18734    FOLLOW_expression_in_iteration_statement2333 = frozenset([63])
18735    FOLLOW_63_in_iteration_statement2335 = frozenset([4, 5, 6, 7, 8, 9, 10, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79, 103, 104, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 116, 117])
18736    FOLLOW_statement_in_iteration_statement2337 = frozenset([1])
18737    FOLLOW_112_in_iteration_statement2344 = frozenset([4, 5, 6, 7, 8, 9, 10, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79, 103, 104, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 116, 117])
18738    FOLLOW_statement_in_iteration_statement2346 = frozenset([111])
18739    FOLLOW_111_in_iteration_statement2348 = frozenset([62])
18740    FOLLOW_62_in_iteration_statement2350 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18741    FOLLOW_expression_in_iteration_statement2354 = frozenset([63])
18742    FOLLOW_63_in_iteration_statement2356 = frozenset([25])
18743    FOLLOW_25_in_iteration_statement2358 = frozenset([1])
18744    FOLLOW_113_in_iteration_statement2365 = frozenset([62])
18745    FOLLOW_62_in_iteration_statement2367 = frozenset([4, 5, 6, 7, 8, 9, 10, 25, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18746    FOLLOW_expression_statement_in_iteration_statement2369 = frozenset([4, 5, 6, 7, 8, 9, 10, 25, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18747    FOLLOW_expression_statement_in_iteration_statement2373 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 63, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18748    FOLLOW_expression_in_iteration_statement2375 = frozenset([63])
18749    FOLLOW_63_in_iteration_statement2378 = frozenset([4, 5, 6, 7, 8, 9, 10, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79, 103, 104, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 116, 117])
18750    FOLLOW_statement_in_iteration_statement2380 = frozenset([1])
18751    FOLLOW_114_in_jump_statement2393 = frozenset([4])
18752    FOLLOW_IDENTIFIER_in_jump_statement2395 = frozenset([25])
18753    FOLLOW_25_in_jump_statement2397 = frozenset([1])
18754    FOLLOW_115_in_jump_statement2402 = frozenset([25])
18755    FOLLOW_25_in_jump_statement2404 = frozenset([1])
18756    FOLLOW_116_in_jump_statement2409 = frozenset([25])
18757    FOLLOW_25_in_jump_statement2411 = frozenset([1])
18758    FOLLOW_117_in_jump_statement2416 = frozenset([25])
18759    FOLLOW_25_in_jump_statement2418 = frozenset([1])
18760    FOLLOW_117_in_jump_statement2423 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18761    FOLLOW_expression_in_jump_statement2425 = frozenset([25])
18762    FOLLOW_25_in_jump_statement2427 = frozenset([1])
18763    FOLLOW_declaration_specifiers_in_synpred2100 = frozenset([1])
18764    FOLLOW_declaration_specifiers_in_synpred4100 = frozenset([4, 58, 59, 60, 62, 66])
18765    FOLLOW_declarator_in_synpred4103 = frozenset([4, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61])
18766    FOLLOW_declaration_in_synpred4105 = frozenset([4, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61])
18767    FOLLOW_43_in_synpred4108 = frozenset([1])
18768    FOLLOW_declaration_in_synpred5118 = frozenset([1])
18769    FOLLOW_declaration_specifiers_in_synpred7157 = frozenset([1])
18770    FOLLOW_declaration_specifiers_in_synpred10207 = frozenset([1])
18771    FOLLOW_type_specifier_in_synpred14272 = frozenset([1])
18772    FOLLOW_type_qualifier_in_synpred15286 = frozenset([1])
18773    FOLLOW_type_qualifier_in_synpred33444 = frozenset([1])
18774    FOLLOW_IDENTIFIER_in_synpred34442 = frozenset([4, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66])
18775    FOLLOW_type_qualifier_in_synpred34444 = frozenset([4, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66])
18776    FOLLOW_declarator_in_synpred34447 = frozenset([1])
18777    FOLLOW_type_qualifier_in_synpred39566 = frozenset([1])
18778    FOLLOW_type_specifier_in_synpred40570 = frozenset([1])
18779    FOLLOW_pointer_in_synpred66784 = frozenset([4, 58, 59, 60, 62])
18780    FOLLOW_58_in_synpred66788 = frozenset([4, 59, 60, 62])
18781    FOLLOW_59_in_synpred66793 = frozenset([4, 60, 62])
18782    FOLLOW_60_in_synpred66798 = frozenset([4, 62])
18783    FOLLOW_direct_declarator_in_synpred66802 = frozenset([1])
18784    FOLLOW_declarator_suffix_in_synpred67821 = frozenset([1])
18785    FOLLOW_58_in_synpred69830 = frozenset([1])
18786    FOLLOW_declarator_suffix_in_synpred70838 = frozenset([1])
18787    FOLLOW_62_in_synpred73878 = frozenset([4, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 66])
18788    FOLLOW_parameter_type_list_in_synpred73880 = frozenset([63])
18789    FOLLOW_63_in_synpred73882 = frozenset([1])
18790    FOLLOW_62_in_synpred74892 = frozenset([4])
18791    FOLLOW_identifier_list_in_synpred74894 = frozenset([63])
18792    FOLLOW_63_in_synpred74896 = frozenset([1])
18793    FOLLOW_type_qualifier_in_synpred75921 = frozenset([1])
18794    FOLLOW_pointer_in_synpred76924 = frozenset([1])
18795    FOLLOW_66_in_synpred77919 = frozenset([49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61])
18796    FOLLOW_type_qualifier_in_synpred77921 = frozenset([1, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 66])
18797    FOLLOW_pointer_in_synpred77924 = frozenset([1])
18798    FOLLOW_66_in_synpred78930 = frozenset([66])
18799    FOLLOW_pointer_in_synpred78932 = frozenset([1])
18800    FOLLOW_53_in_synpred81977 = frozenset([1])
18801    FOLLOW_27_in_synpred82974 = frozenset([4, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 66])
18802    FOLLOW_53_in_synpred82977 = frozenset([4, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 66])
18803    FOLLOW_parameter_declaration_in_synpred82981 = frozenset([1])
18804    FOLLOW_declarator_in_synpred83997 = frozenset([1])
18805    FOLLOW_abstract_declarator_in_synpred84999 = frozenset([1])
18806    FOLLOW_declaration_specifiers_in_synpred86994 = frozenset([1, 4, 53, 58, 59, 60, 62, 64, 66])
18807    FOLLOW_declarator_in_synpred86997 = frozenset([1, 4, 53, 58, 59, 60, 62, 64, 66])
18808    FOLLOW_abstract_declarator_in_synpred86999 = frozenset([1, 4, 53, 58, 59, 60, 62, 64, 66])
18809    FOLLOW_53_in_synpred861004 = frozenset([1])
18810    FOLLOW_specifier_qualifier_list_in_synpred901046 = frozenset([1, 62, 64, 66])
18811    FOLLOW_abstract_declarator_in_synpred901048 = frozenset([1])
18812    FOLLOW_direct_abstract_declarator_in_synpred911067 = frozenset([1])
18813    FOLLOW_62_in_synpred931086 = frozenset([62, 64, 66])
18814    FOLLOW_abstract_declarator_in_synpred931088 = frozenset([63])
18815    FOLLOW_63_in_synpred931090 = frozenset([1])
18816    FOLLOW_abstract_declarator_suffix_in_synpred941098 = frozenset([1])
18817    FOLLOW_62_in_synpred1091282 = frozenset([4, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61])
18818    FOLLOW_type_name_in_synpred1091284 = frozenset([63])
18819    FOLLOW_63_in_synpred1091286 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18820    FOLLOW_cast_expression_in_synpred1091288 = frozenset([1])
18821    FOLLOW_74_in_synpred1141330 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18822    FOLLOW_unary_expression_in_synpred1141332 = frozenset([1])
18823    FOLLOW_62_in_synpred1171420 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18824    FOLLOW_argument_expression_list_in_synpred1171424 = frozenset([63])
18825    FOLLOW_63_in_synpred1171428 = frozenset([1])
18826    FOLLOW_62_in_synpred1181444 = frozenset([4, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 66])
18827    FOLLOW_macro_parameter_list_in_synpred1181446 = frozenset([63])
18828    FOLLOW_63_in_synpred1181448 = frozenset([1])
18829    FOLLOW_66_in_synpred1201482 = frozenset([4])
18830    FOLLOW_IDENTIFIER_in_synpred1201486 = frozenset([1])
18831    FOLLOW_STRING_LITERAL_in_synpred1371683 = frozenset([1])
18832    FOLLOW_IDENTIFIER_in_synpred1381680 = frozenset([4, 9])
18833    FOLLOW_STRING_LITERAL_in_synpred1381683 = frozenset([1, 9])
18834    FOLLOW_lvalue_in_synpred1421744 = frozenset([28, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89])
18835    FOLLOW_assignment_operator_in_synpred1421746 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79])
18836    FOLLOW_assignment_expression_in_synpred1421748 = frozenset([1])
18837    FOLLOW_expression_statement_in_synpred1692035 = frozenset([1])
18838    FOLLOW_macro_statement_in_synpred1732055 = frozenset([1])
18839    FOLLOW_asm2_statement_in_synpred1742060 = frozenset([1])
18840    FOLLOW_declaration_in_synpred1812166 = frozenset([1])
18841    FOLLOW_statement_list_in_synpred1822170 = frozenset([1])
18842    FOLLOW_declaration_in_synpred1862225 = frozenset([1])
18843    FOLLOW_statement_in_synpred1882242 = frozenset([1])
18844
18845