ECC: CParser add modifiers following data types.
authorjlin16 <jlin16@7335b38e-4728-0410-8992-fb3ffe349368>
Tue, 29 Jan 2008 06:29:58 +0000 (06:29 +0000)
committerjlin16 <jlin16@7335b38e-4728-0410-8992-fb3ffe349368>
Tue, 29 Jan 2008 06:29:58 +0000 (06:29 +0000)
git-svn-id: https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools@986 7335b38e-4728-0410-8992-fb3ffe349368

Source/Python/Ecc/C.g
Source/Python/Ecc/CLexer.py
Source/Python/Ecc/CParser.py
Source/Python/Ecc/c.py

index f19fb60..d734e24 100644 (file)
@@ -166,7 +166,7 @@ type_specifier
        | 'VOID'\r
        | s=struct_or_union_specifier {self.StoreStructUnionDefinition($s.start.line, $s.start.charPositionInLine, $s.stop.line, $s.stop.charPositionInLine, $s.text)}\r
        | e=enum_specifier {self.StoreEnumerationDefinition($e.start.line, $e.start.charPositionInLine, $e.stop.line, $e.stop.charPositionInLine, $e.text)}\r
-       | (IDENTIFIER declarator)=> type_id\r
+       | (IDENTIFIER type_qualifier* declarator)=> type_id\r
        ;\r
 \r
 type_id\r
index df0ec9b..a08bbd3 100644 (file)
@@ -1,4 +1,4 @@
-# $ANTLR 3.0.1 C.g 2008-01-29 13:58:55
+# $ANTLR 3.0.1 C.g 2008-01-29 14:19:14
 
 from antlr3 import *
 from antlr3.compat import set, frozenset
index 685bc09..470917b 100644 (file)
@@ -1,4 +1,4 @@
-# $ANTLR 3.0.1 C.g 2008-01-29 13:58:54
+# $ANTLR 3.0.1 C.g 2008-01-29 14:19:13
 
 from antlr3 import *
 from antlr3.compat import set, frozenset
@@ -608,103 +608,103 @@ class CParser(Parser):
                     alt4 = 1
                 elif (LA4_0 == IDENTIFIER) :
                     LA4 = self.input.LA(2)
-                    if LA4 == 64:
-                        LA4_25 = self.input.LA(3)
+                    if LA4 == 61 or LA4 == 62 or LA4 == 63 or LA4 == 68:
+                        alt4 = 1
+                    elif LA4 == IDENTIFIER:
+                        LA4_28 = self.input.LA(3)
+
+                        if (self.synpred7()) :
+                            alt4 = 1
+                    elif LA4 == 64:
+                        LA4_29 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
                     elif LA4 == 29 or LA4 == 30 or LA4 == 31 or LA4 == 32 or LA4 == 33:
-                        LA4_27 = self.input.LA(3)
+                        LA4_30 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
                     elif LA4 == 34:
-                        LA4_28 = self.input.LA(3)
+                        LA4_31 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
                     elif LA4 == 35:
-                        LA4_29 = self.input.LA(3)
+                        LA4_32 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
                     elif LA4 == 36:
-                        LA4_30 = self.input.LA(3)
+                        LA4_33 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
                     elif LA4 == 37:
-                        LA4_31 = self.input.LA(3)
+                        LA4_34 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
                     elif LA4 == 38:
-                        LA4_32 = self.input.LA(3)
+                        LA4_35 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
                     elif LA4 == 39:
-                        LA4_33 = self.input.LA(3)
+                        LA4_36 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
                     elif LA4 == 40:
-                        LA4_34 = self.input.LA(3)
+                        LA4_37 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
                     elif LA4 == 41:
-                        LA4_35 = self.input.LA(3)
+                        LA4_38 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
                     elif LA4 == 42:
-                        LA4_36 = self.input.LA(3)
+                        LA4_39 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
                     elif LA4 == 43:
-                        LA4_37 = self.input.LA(3)
+                        LA4_40 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
                     elif LA4 == 44:
-                        LA4_38 = self.input.LA(3)
+                        LA4_41 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
                     elif LA4 == 45:
-                        LA4_39 = self.input.LA(3)
+                        LA4_42 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
                     elif LA4 == 46:
-                        LA4_40 = self.input.LA(3)
+                        LA4_43 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
                     elif LA4 == 49 or LA4 == 50:
-                        LA4_41 = self.input.LA(3)
+                        LA4_44 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
                     elif LA4 == 52:
-                        LA4_42 = self.input.LA(3)
-
-                        if (self.synpred7()) :
-                            alt4 = 1
-                    elif LA4 == IDENTIFIER:
-                        LA4_43 = self.input.LA(3)
+                        LA4_45 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
                     elif LA4 == 53 or LA4 == 54 or LA4 == 55 or LA4 == 56 or LA4 == 57 or LA4 == 58 or LA4 == 59 or LA4 == 60:
-                        LA4_44 = self.input.LA(3)
+                        LA4_46 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
-                    elif LA4 == 61 or LA4 == 62 or LA4 == 63 or LA4 == 68:
-                        alt4 = 1
                 if alt4 == 1:
                     # C.g:0:0: d= declaration_specifiers
                     self.following.append(self.FOLLOW_declaration_specifiers_in_function_definition147)
@@ -886,13 +886,13 @@ class CParser(Parser):
                     elif (LA7_0 == IDENTIFIER) :
                         LA7_17 = self.input.LA(2)
 
-                        if (LA7_17 == IDENTIFIER or (29 <= LA7_17 <= 46) or (49 <= LA7_17 <= 50) or (52 <= LA7_17 <= 63) or LA7_17 == 68) :
-                            alt7 = 1
-                        elif (LA7_17 == 64) :
-                            LA7_29 = self.input.LA(3)
+                        if (LA7_17 == 64) :
+                            LA7_25 = self.input.LA(3)
 
                             if (self.synpred10()) :
                                 alt7 = 1
+                        elif (LA7_17 == IDENTIFIER or (29 <= LA7_17 <= 46) or (49 <= LA7_17 <= 50) or (52 <= LA7_17 <= 63) or LA7_17 == 68) :
+                            alt7 = 1
                     if alt7 == 1:
                         # C.g:0:0: b= declaration_specifiers
                         self.following.append(self.FOLLOW_declaration_specifiers_in_declaration197)
@@ -1251,7 +1251,7 @@ class CParser(Parser):
 
 
     # $ANTLR start type_specifier
-    # C.g:153:1: type_specifier : ( 'void' | 'char' | 'short' | 'int' | 'long' | 'float' | 'double' | 'signed' | 'unsigned' | 'BOOLEAN' | 'CHAR8' | 'CHAR16' | 'VOID' | s= struct_or_union_specifier | e= enum_specifier | ( IDENTIFIER declarator )=> type_id );
+    # C.g:153:1: type_specifier : ( 'void' | 'char' | 'short' | 'int' | 'long' | 'float' | 'double' | 'signed' | 'unsigned' | 'BOOLEAN' | 'CHAR8' | 'CHAR16' | 'VOID' | s= struct_or_union_specifier | e= enum_specifier | ( IDENTIFIER ( type_qualifier )* declarator )=> type_id );
     def type_specifier(self, ):
 
         type_specifier_StartIndex = self.input.index()
@@ -1265,7 +1265,7 @@ class CParser(Parser):
                 if self.backtracking > 0 and self.alreadyParsedRule(self.input, 9):
                     return 
 
-                # C.g:154:2: ( 'void' | 'char' | 'short' | 'int' | 'long' | 'float' | 'double' | 'signed' | 'unsigned' | 'BOOLEAN' | 'CHAR8' | 'CHAR16' | 'VOID' | s= struct_or_union_specifier | e= enum_specifier | ( IDENTIFIER declarator )=> type_id )
+                # C.g:154:2: ( 'void' | 'char' | 'short' | 'int' | 'long' | 'float' | 'double' | 'signed' | 'unsigned' | 'BOOLEAN' | 'CHAR8' | 'CHAR16' | 'VOID' | s= struct_or_union_specifier | e= enum_specifier | ( IDENTIFIER ( type_qualifier )* declarator )=> type_id )
                 alt13 = 16
                 LA13_0 = self.input.LA(1)
 
@@ -1299,14 +1299,14 @@ class CParser(Parser):
                     alt13 = 14
                 elif (LA13_0 == 52) :
                     alt13 = 15
-                elif (LA13_0 == IDENTIFIER) and (self.synpred37()):
+                elif (LA13_0 == IDENTIFIER) and (self.synpred38()):
                     alt13 = 16
                 else:
                     if self.backtracking > 0:
                         self.failed = True
                         return 
 
-                    nvae = NoViableAltException("153:1: type_specifier : ( 'void' | 'char' | 'short' | 'int' | 'long' | 'float' | 'double' | 'signed' | 'unsigned' | 'BOOLEAN' | 'CHAR8' | 'CHAR16' | 'VOID' | s= struct_or_union_specifier | e= enum_specifier | ( IDENTIFIER declarator )=> type_id );", 13, 0, self.input)
+                    nvae = NoViableAltException("153:1: type_specifier : ( 'void' | 'char' | 'short' | 'int' | 'long' | 'float' | 'double' | 'signed' | 'unsigned' | 'BOOLEAN' | 'CHAR8' | 'CHAR16' | 'VOID' | s= struct_or_union_specifier | e= enum_specifier | ( IDENTIFIER ( type_qualifier )* declarator )=> type_id );", 13, 0, self.input)
 
                     raise nvae
 
@@ -1426,8 +1426,8 @@ class CParser(Parser):
 
 
                 elif alt13 == 16:
-                    # C.g:169:4: ( IDENTIFIER declarator )=> type_id
-                    self.following.append(self.FOLLOW_type_id_in_type_specifier456)
+                    # C.g:169:4: ( IDENTIFIER ( type_qualifier )* declarator )=> type_id
+                    self.following.append(self.FOLLOW_type_id_in_type_specifier459)
                     self.type_id()
                     self.following.pop()
                     if self.failed:
@@ -1461,7 +1461,7 @@ class CParser(Parser):
 
                 # C.g:173:5: ( IDENTIFIER )
                 # C.g:173:9: IDENTIFIER
-                self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_type_id472)
+                self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_type_id475)
                 if self.failed:
                     return 
 
@@ -1545,7 +1545,7 @@ class CParser(Parser):
 
                 if alt15 == 1:
                     # C.g:179:4: struct_or_union ( IDENTIFIER )? '{' struct_declaration_list '}'
-                    self.following.append(self.FOLLOW_struct_or_union_in_struct_or_union_specifier499)
+                    self.following.append(self.FOLLOW_struct_or_union_in_struct_or_union_specifier502)
                     self.struct_or_union()
                     self.following.pop()
                     if self.failed:
@@ -1558,33 +1558,33 @@ class CParser(Parser):
                         alt14 = 1
                     if alt14 == 1:
                         # C.g:0:0: IDENTIFIER
-                        self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_struct_or_union_specifier501)
+                        self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_struct_or_union_specifier504)
                         if self.failed:
                             return retval
 
 
 
-                    self.match(self.input, 47, self.FOLLOW_47_in_struct_or_union_specifier504)
+                    self.match(self.input, 47, self.FOLLOW_47_in_struct_or_union_specifier507)
                     if self.failed:
                         return retval
-                    self.following.append(self.FOLLOW_struct_declaration_list_in_struct_or_union_specifier506)
+                    self.following.append(self.FOLLOW_struct_declaration_list_in_struct_or_union_specifier509)
                     self.struct_declaration_list()
                     self.following.pop()
                     if self.failed:
                         return retval
-                    self.match(self.input, 48, self.FOLLOW_48_in_struct_or_union_specifier508)
+                    self.match(self.input, 48, self.FOLLOW_48_in_struct_or_union_specifier511)
                     if self.failed:
                         return retval
 
 
                 elif alt15 == 2:
                     # C.g:180:4: struct_or_union IDENTIFIER
-                    self.following.append(self.FOLLOW_struct_or_union_in_struct_or_union_specifier513)
+                    self.following.append(self.FOLLOW_struct_or_union_in_struct_or_union_specifier516)
                     self.struct_or_union()
                     self.following.pop()
                     if self.failed:
                         return retval
-                    self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_struct_or_union_specifier515)
+                    self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_struct_or_union_specifier518)
                     if self.failed:
                         return retval
 
@@ -1677,7 +1677,7 @@ class CParser(Parser):
 
                     if alt16 == 1:
                         # C.g:0:0: struct_declaration
-                        self.following.append(self.FOLLOW_struct_declaration_in_struct_declaration_list542)
+                        self.following.append(self.FOLLOW_struct_declaration_in_struct_declaration_list545)
                         self.struct_declaration()
                         self.following.pop()
                         if self.failed:
@@ -1728,17 +1728,17 @@ class CParser(Parser):
 
                 # C.g:193:2: ( specifier_qualifier_list struct_declarator_list ';' )
                 # C.g:193:4: specifier_qualifier_list struct_declarator_list ';'
-                self.following.append(self.FOLLOW_specifier_qualifier_list_in_struct_declaration554)
+                self.following.append(self.FOLLOW_specifier_qualifier_list_in_struct_declaration557)
                 self.specifier_qualifier_list()
                 self.following.pop()
                 if self.failed:
                     return 
-                self.following.append(self.FOLLOW_struct_declarator_list_in_struct_declaration556)
+                self.following.append(self.FOLLOW_struct_declarator_list_in_struct_declaration559)
                 self.struct_declarator_list()
                 self.following.pop()
                 if self.failed:
                     return 
-                self.match(self.input, 25, self.FOLLOW_25_in_struct_declaration558)
+                self.match(self.input, 25, self.FOLLOW_25_in_struct_declaration561)
                 if self.failed:
                     return 
 
@@ -1781,21 +1781,21 @@ class CParser(Parser):
                         if LA17 == 66:
                             LA17_27 = self.input.LA(3)
 
-                            if (self.synpred43()) :
+                            if (self.synpred44()) :
                                 alt17 = 2
 
 
                         elif LA17 == 64:
                             LA17_28 = self.input.LA(3)
 
-                            if (self.synpred43()) :
+                            if (self.synpred44()) :
                                 alt17 = 2
 
 
                         elif LA17 == 51:
                             LA17_29 = self.input.LA(3)
 
-                            if (self.synpred43()) :
+                            if (self.synpred44()) :
                                 alt17 = 2
 
 
@@ -1809,7 +1809,7 @@ class CParser(Parser):
 
                     if alt17 == 1:
                         # C.g:197:6: type_qualifier
-                        self.following.append(self.FOLLOW_type_qualifier_in_specifier_qualifier_list571)
+                        self.following.append(self.FOLLOW_type_qualifier_in_specifier_qualifier_list574)
                         self.type_qualifier()
                         self.following.pop()
                         if self.failed:
@@ -1818,7 +1818,7 @@ class CParser(Parser):
 
                     elif alt17 == 2:
                         # C.g:197:23: type_specifier
-                        self.following.append(self.FOLLOW_type_specifier_in_specifier_qualifier_list575)
+                        self.following.append(self.FOLLOW_type_specifier_in_specifier_qualifier_list578)
                         self.type_specifier()
                         self.following.pop()
                         if self.failed:
@@ -1869,7 +1869,7 @@ class CParser(Parser):
 
                 # C.g:201:2: ( struct_declarator ( ',' struct_declarator )* )
                 # C.g:201:4: struct_declarator ( ',' struct_declarator )*
-                self.following.append(self.FOLLOW_struct_declarator_in_struct_declarator_list589)
+                self.following.append(self.FOLLOW_struct_declarator_in_struct_declarator_list592)
                 self.struct_declarator()
                 self.following.pop()
                 if self.failed:
@@ -1885,10 +1885,10 @@ class CParser(Parser):
 
                     if alt18 == 1:
                         # C.g:201:23: ',' struct_declarator
-                        self.match(self.input, 27, self.FOLLOW_27_in_struct_declarator_list592)
+                        self.match(self.input, 27, self.FOLLOW_27_in_struct_declarator_list595)
                         if self.failed:
                             return 
-                        self.following.append(self.FOLLOW_struct_declarator_in_struct_declarator_list594)
+                        self.following.append(self.FOLLOW_struct_declarator_in_struct_declarator_list597)
                         self.struct_declarator()
                         self.following.pop()
                         if self.failed:
@@ -1946,7 +1946,7 @@ class CParser(Parser):
 
                 if alt20 == 1:
                     # C.g:205:4: declarator ( ':' constant_expression )?
-                    self.following.append(self.FOLLOW_declarator_in_struct_declarator607)
+                    self.following.append(self.FOLLOW_declarator_in_struct_declarator610)
                     self.declarator()
                     self.following.pop()
                     if self.failed:
@@ -1959,10 +1959,10 @@ class CParser(Parser):
                         alt19 = 1
                     if alt19 == 1:
                         # C.g:205:16: ':' constant_expression
-                        self.match(self.input, 51, self.FOLLOW_51_in_struct_declarator610)
+                        self.match(self.input, 51, self.FOLLOW_51_in_struct_declarator613)
                         if self.failed:
                             return 
-                        self.following.append(self.FOLLOW_constant_expression_in_struct_declarator612)
+                        self.following.append(self.FOLLOW_constant_expression_in_struct_declarator615)
                         self.constant_expression()
                         self.following.pop()
                         if self.failed:
@@ -1974,10 +1974,10 @@ class CParser(Parser):
 
                 elif alt20 == 2:
                     # C.g:206:4: ':' constant_expression
-                    self.match(self.input, 51, self.FOLLOW_51_in_struct_declarator619)
+                    self.match(self.input, 51, self.FOLLOW_51_in_struct_declarator622)
                     if self.failed:
                         return 
-                    self.following.append(self.FOLLOW_constant_expression_in_struct_declarator621)
+                    self.following.append(self.FOLLOW_constant_expression_in_struct_declarator624)
                     self.constant_expression()
                     self.following.pop()
                     if self.failed:
@@ -2062,49 +2062,49 @@ class CParser(Parser):
 
                 if alt21 == 1:
                     # C.g:211:4: 'enum' '{' enumerator_list '}'
-                    self.match(self.input, 52, self.FOLLOW_52_in_enum_specifier639)
+                    self.match(self.input, 52, self.FOLLOW_52_in_enum_specifier642)
                     if self.failed:
                         return retval
-                    self.match(self.input, 47, self.FOLLOW_47_in_enum_specifier641)
+                    self.match(self.input, 47, self.FOLLOW_47_in_enum_specifier644)
                     if self.failed:
                         return retval
-                    self.following.append(self.FOLLOW_enumerator_list_in_enum_specifier643)
+                    self.following.append(self.FOLLOW_enumerator_list_in_enum_specifier646)
                     self.enumerator_list()
                     self.following.pop()
                     if self.failed:
                         return retval
-                    self.match(self.input, 48, self.FOLLOW_48_in_enum_specifier645)
+                    self.match(self.input, 48, self.FOLLOW_48_in_enum_specifier648)
                     if self.failed:
                         return retval
 
 
                 elif alt21 == 2:
                     # C.g:212:4: 'enum' IDENTIFIER '{' enumerator_list '}'
-                    self.match(self.input, 52, self.FOLLOW_52_in_enum_specifier650)
+                    self.match(self.input, 52, self.FOLLOW_52_in_enum_specifier653)
                     if self.failed:
                         return retval
-                    self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_enum_specifier652)
+                    self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_enum_specifier655)
                     if self.failed:
                         return retval
-                    self.match(self.input, 47, self.FOLLOW_47_in_enum_specifier654)
+                    self.match(self.input, 47, self.FOLLOW_47_in_enum_specifier657)
                     if self.failed:
                         return retval
-                    self.following.append(self.FOLLOW_enumerator_list_in_enum_specifier656)
+                    self.following.append(self.FOLLOW_enumerator_list_in_enum_specifier659)
                     self.enumerator_list()
                     self.following.pop()
                     if self.failed:
                         return retval
-                    self.match(self.input, 48, self.FOLLOW_48_in_enum_specifier658)
+                    self.match(self.input, 48, self.FOLLOW_48_in_enum_specifier661)
                     if self.failed:
                         return retval
 
 
                 elif alt21 == 3:
                     # C.g:213:4: 'enum' IDENTIFIER
-                    self.match(self.input, 52, self.FOLLOW_52_in_enum_specifier663)
+                    self.match(self.input, 52, self.FOLLOW_52_in_enum_specifier666)
                     if self.failed:
                         return retval
-                    self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_enum_specifier665)
+                    self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_enum_specifier668)
                     if self.failed:
                         return retval
 
@@ -2138,7 +2138,7 @@ class CParser(Parser):
 
                 # C.g:217:2: ( enumerator ( ',' enumerator )* )
                 # C.g:217:4: enumerator ( ',' enumerator )*
-                self.following.append(self.FOLLOW_enumerator_in_enumerator_list676)
+                self.following.append(self.FOLLOW_enumerator_in_enumerator_list679)
                 self.enumerator()
                 self.following.pop()
                 if self.failed:
@@ -2154,10 +2154,10 @@ class CParser(Parser):
 
                     if alt22 == 1:
                         # C.g:217:16: ',' enumerator
-                        self.match(self.input, 27, self.FOLLOW_27_in_enumerator_list679)
+                        self.match(self.input, 27, self.FOLLOW_27_in_enumerator_list682)
                         if self.failed:
                             return 
-                        self.following.append(self.FOLLOW_enumerator_in_enumerator_list681)
+                        self.following.append(self.FOLLOW_enumerator_in_enumerator_list684)
                         self.enumerator()
                         self.following.pop()
                         if self.failed:
@@ -2198,7 +2198,7 @@ class CParser(Parser):
 
                 # C.g:221:2: ( IDENTIFIER ( '=' constant_expression )? )
                 # C.g:221:4: IDENTIFIER ( '=' constant_expression )?
-                self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_enumerator694)
+                self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_enumerator697)
                 if self.failed:
                     return 
                 # C.g:221:15: ( '=' constant_expression )?
@@ -2209,10 +2209,10 @@ class CParser(Parser):
                     alt23 = 1
                 if alt23 == 1:
                     # C.g:221:16: '=' constant_expression
-                    self.match(self.input, 28, self.FOLLOW_28_in_enumerator697)
+                    self.match(self.input, 28, self.FOLLOW_28_in_enumerator700)
                     if self.failed:
                         return 
-                    self.following.append(self.FOLLOW_constant_expression_in_enumerator699)
+                    self.following.append(self.FOLLOW_constant_expression_in_enumerator702)
                     self.constant_expression()
                     self.following.pop()
                     if self.failed:
@@ -2309,9 +2309,9 @@ class CParser(Parser):
                 if LA32 == 68:
                     LA32_1 = self.input.LA(2)
 
-                    if (self.synpred62()) :
+                    if (self.synpred63()) :
                         alt32 = 1
-                    elif (self.synpred67()) :
+                    elif (self.synpred68()) :
                         alt32 = 2
                     elif (True) :
                         alt32 = 3
@@ -2329,9 +2329,9 @@ class CParser(Parser):
                     if LA32 == 62:
                         LA32_43 = self.input.LA(3)
 
-                        if (self.synpred62()) :
+                        if (self.synpred63()) :
                             alt32 = 1
-                        elif (self.synpred67()) :
+                        elif (self.synpred68()) :
                             alt32 = 2
                         else:
                             if self.backtracking > 0:
@@ -2345,9 +2345,9 @@ class CParser(Parser):
                     elif LA32 == 63:
                         LA32_44 = self.input.LA(3)
 
-                        if (self.synpred62()) :
+                        if (self.synpred63()) :
                             alt32 = 1
-                        elif (self.synpred67()) :
+                        elif (self.synpred68()) :
                             alt32 = 2
                         else:
                             if self.backtracking > 0:
@@ -2361,9 +2361,9 @@ class CParser(Parser):
                     elif LA32 == IDENTIFIER:
                         LA32_45 = self.input.LA(3)
 
-                        if (self.synpred62()) :
+                        if (self.synpred63()) :
                             alt32 = 1
-                        elif (self.synpred67()) :
+                        elif (self.synpred68()) :
                             alt32 = 2
                         else:
                             if self.backtracking > 0:
@@ -2377,9 +2377,9 @@ class CParser(Parser):
                     elif LA32 == 64:
                         LA32_46 = self.input.LA(3)
 
-                        if (self.synpred62()) :
+                        if (self.synpred63()) :
                             alt32 = 1
-                        elif (self.synpred67()) :
+                        elif (self.synpred68()) :
                             alt32 = 2
                         else:
                             if self.backtracking > 0:
@@ -2406,9 +2406,9 @@ class CParser(Parser):
                     if LA32 == 63:
                         LA32_48 = self.input.LA(3)
 
-                        if (self.synpred62()) :
+                        if (self.synpred63()) :
                             alt32 = 1
-                        elif (self.synpred67()) :
+                        elif (self.synpred68()) :
                             alt32 = 2
                         else:
                             if self.backtracking > 0:
@@ -2422,9 +2422,9 @@ class CParser(Parser):
                     elif LA32 == IDENTIFIER:
                         LA32_49 = self.input.LA(3)
 
-                        if (self.synpred62()) :
+                        if (self.synpred63()) :
                             alt32 = 1
-                        elif (self.synpred67()) :
+                        elif (self.synpred68()) :
                             alt32 = 2
                         else:
                             if self.backtracking > 0:
@@ -2438,9 +2438,9 @@ class CParser(Parser):
                     elif LA32 == 64:
                         LA32_50 = self.input.LA(3)
 
-                        if (self.synpred62()) :
+                        if (self.synpred63()) :
                             alt32 = 1
-                        elif (self.synpred67()) :
+                        elif (self.synpred68()) :
                             alt32 = 2
                         else:
                             if self.backtracking > 0:
@@ -2464,40 +2464,40 @@ class CParser(Parser):
 
                 elif LA32 == 63:
                     LA32 = self.input.LA(2)
-                    if LA32 == IDENTIFIER:
-                        LA32_52 = self.input.LA(3)
+                    if LA32 == 68:
+                        alt32 = 2
+                    elif LA32 == IDENTIFIER:
+                        LA32_53 = self.input.LA(3)
 
-                        if (self.synpred62()) :
+                        if (self.synpred63()) :
                             alt32 = 1
-                        elif (self.synpred67()) :
+                        elif (self.synpred68()) :
                             alt32 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return retval
 
-                            nvae = NoViableAltException("235:1: declarator : ( ( pointer )? ( 'EFIAPI' )? ( 'EFI_BOOTSERVICE' )? ( 'EFI_RUNTIMESERVICE' )? direct_declarator | ( 'EFIAPI' )? ( 'EFI_BOOTSERVICE' )? ( 'EFI_RUNTIMESERVICE' )? ( pointer )? direct_declarator | pointer );", 32, 52, self.input)
+                            nvae = NoViableAltException("235:1: declarator : ( ( pointer )? ( 'EFIAPI' )? ( 'EFI_BOOTSERVICE' )? ( 'EFI_RUNTIMESERVICE' )? direct_declarator | ( 'EFIAPI' )? ( 'EFI_BOOTSERVICE' )? ( 'EFI_RUNTIMESERVICE' )? ( pointer )? direct_declarator | pointer );", 32, 53, self.input)
 
                             raise nvae
 
                     elif LA32 == 64:
-                        LA32_53 = self.input.LA(3)
+                        LA32_54 = self.input.LA(3)
 
-                        if (self.synpred62()) :
+                        if (self.synpred63()) :
                             alt32 = 1
-                        elif (self.synpred67()) :
+                        elif (self.synpred68()) :
                             alt32 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return retval
 
-                            nvae = NoViableAltException("235:1: declarator : ( ( pointer )? ( 'EFIAPI' )? ( 'EFI_BOOTSERVICE' )? ( 'EFI_RUNTIMESERVICE' )? direct_declarator | ( 'EFIAPI' )? ( 'EFI_BOOTSERVICE' )? ( 'EFI_RUNTIMESERVICE' )? ( pointer )? direct_declarator | pointer );", 32, 53, self.input)
+                            nvae = NoViableAltException("235:1: declarator : ( ( pointer )? ( 'EFIAPI' )? ( 'EFI_BOOTSERVICE' )? ( 'EFI_RUNTIMESERVICE' )? direct_declarator | ( 'EFIAPI' )? ( 'EFI_BOOTSERVICE' )? ( 'EFI_RUNTIMESERVICE' )? ( pointer )? direct_declarator | pointer );", 32, 54, self.input)
 
                             raise nvae
 
-                    elif LA32 == 68:
-                        alt32 = 2
                     else:
                         if self.backtracking > 0:
                             self.failed = True
@@ -2510,9 +2510,9 @@ class CParser(Parser):
                 elif LA32 == IDENTIFIER:
                     LA32_5 = self.input.LA(2)
 
-                    if (self.synpred62()) :
+                    if (self.synpred63()) :
                         alt32 = 1
-                    elif (self.synpred67()) :
+                    elif (self.synpred68()) :
                         alt32 = 2
                     else:
                         if self.backtracking > 0:
@@ -2528,9 +2528,9 @@ class CParser(Parser):
                     if LA32 == 68:
                         LA32_89 = self.input.LA(3)
 
-                        if (self.synpred62()) :
+                        if (self.synpred63()) :
                             alt32 = 1
-                        elif (self.synpred67()) :
+                        elif (self.synpred68()) :
                             alt32 = 2
                         else:
                             if self.backtracking > 0:
@@ -2544,9 +2544,9 @@ class CParser(Parser):
                     elif LA32 == 61:
                         LA32_90 = self.input.LA(3)
 
-                        if (self.synpred62()) :
+                        if (self.synpred63()) :
                             alt32 = 1
-                        elif (self.synpred67()) :
+                        elif (self.synpred68()) :
                             alt32 = 2
                         else:
                             if self.backtracking > 0:
@@ -2560,9 +2560,9 @@ class CParser(Parser):
                     elif LA32 == 62:
                         LA32_91 = self.input.LA(3)
 
-                        if (self.synpred62()) :
+                        if (self.synpred63()) :
                             alt32 = 1
-                        elif (self.synpred67()) :
+                        elif (self.synpred68()) :
                             alt32 = 2
                         else:
                             if self.backtracking > 0:
@@ -2576,9 +2576,9 @@ class CParser(Parser):
                     elif LA32 == 63:
                         LA32_92 = self.input.LA(3)
 
-                        if (self.synpred62()) :
+                        if (self.synpred63()) :
                             alt32 = 1
-                        elif (self.synpred67()) :
+                        elif (self.synpred68()) :
                             alt32 = 2
                         else:
                             if self.backtracking > 0:
@@ -2592,9 +2592,9 @@ class CParser(Parser):
                     elif LA32 == IDENTIFIER:
                         LA32_93 = self.input.LA(3)
 
-                        if (self.synpred62()) :
+                        if (self.synpred63()) :
                             alt32 = 1
-                        elif (self.synpred67()) :
+                        elif (self.synpred68()) :
                             alt32 = 2
                         else:
                             if self.backtracking > 0:
@@ -2608,9 +2608,9 @@ class CParser(Parser):
                     elif LA32 == 64:
                         LA32_94 = self.input.LA(3)
 
-                        if (self.synpred62()) :
+                        if (self.synpred63()) :
                             alt32 = 1
-                        elif (self.synpred67()) :
+                        elif (self.synpred68()) :
                             alt32 = 2
                         else:
                             if self.backtracking > 0:
@@ -2649,7 +2649,7 @@ class CParser(Parser):
                         alt24 = 1
                     if alt24 == 1:
                         # C.g:0:0: pointer
-                        self.following.append(self.FOLLOW_pointer_in_declarator758)
+                        self.following.append(self.FOLLOW_pointer_in_declarator761)
                         self.pointer()
                         self.following.pop()
                         if self.failed:
@@ -2665,7 +2665,7 @@ class CParser(Parser):
                         alt25 = 1
                     if alt25 == 1:
                         # C.g:236:14: 'EFIAPI'
-                        self.match(self.input, 61, self.FOLLOW_61_in_declarator762)
+                        self.match(self.input, 61, self.FOLLOW_61_in_declarator765)
                         if self.failed:
                             return retval
 
@@ -2679,7 +2679,7 @@ class CParser(Parser):
                         alt26 = 1
                     if alt26 == 1:
                         # C.g:236:26: 'EFI_BOOTSERVICE'
-                        self.match(self.input, 62, self.FOLLOW_62_in_declarator767)
+                        self.match(self.input, 62, self.FOLLOW_62_in_declarator770)
                         if self.failed:
                             return retval
 
@@ -2693,13 +2693,13 @@ class CParser(Parser):
                         alt27 = 1
                     if alt27 == 1:
                         # C.g:236:47: 'EFI_RUNTIMESERVICE'
-                        self.match(self.input, 63, self.FOLLOW_63_in_declarator772)
+                        self.match(self.input, 63, self.FOLLOW_63_in_declarator775)
                         if self.failed:
                             return retval
 
 
 
-                    self.following.append(self.FOLLOW_direct_declarator_in_declarator776)
+                    self.following.append(self.FOLLOW_direct_declarator_in_declarator779)
                     self.direct_declarator()
                     self.following.pop()
                     if self.failed:
@@ -2716,7 +2716,7 @@ class CParser(Parser):
                         alt28 = 1
                     if alt28 == 1:
                         # C.g:237:5: 'EFIAPI'
-                        self.match(self.input, 61, self.FOLLOW_61_in_declarator782)
+                        self.match(self.input, 61, self.FOLLOW_61_in_declarator785)
                         if self.failed:
                             return retval
 
@@ -2730,7 +2730,7 @@ class CParser(Parser):
                         alt29 = 1
                     if alt29 == 1:
                         # C.g:237:17: 'EFI_BOOTSERVICE'
-                        self.match(self.input, 62, self.FOLLOW_62_in_declarator787)
+                        self.match(self.input, 62, self.FOLLOW_62_in_declarator790)
                         if self.failed:
                             return retval
 
@@ -2744,7 +2744,7 @@ class CParser(Parser):
                         alt30 = 1
                     if alt30 == 1:
                         # C.g:237:38: 'EFI_RUNTIMESERVICE'
-                        self.match(self.input, 63, self.FOLLOW_63_in_declarator792)
+                        self.match(self.input, 63, self.FOLLOW_63_in_declarator795)
                         if self.failed:
                             return retval
 
@@ -2758,7 +2758,7 @@ class CParser(Parser):
                         alt31 = 1
                     if alt31 == 1:
                         # C.g:0:0: pointer
-                        self.following.append(self.FOLLOW_pointer_in_declarator796)
+                        self.following.append(self.FOLLOW_pointer_in_declarator799)
                         self.pointer()
                         self.following.pop()
                         if self.failed:
@@ -2766,7 +2766,7 @@ class CParser(Parser):
 
 
 
-                    self.following.append(self.FOLLOW_direct_declarator_in_declarator799)
+                    self.following.append(self.FOLLOW_direct_declarator_in_declarator802)
                     self.direct_declarator()
                     self.following.pop()
                     if self.failed:
@@ -2775,7 +2775,7 @@ class CParser(Parser):
 
                 elif alt32 == 3:
                     # C.g:238:4: pointer
-                    self.following.append(self.FOLLOW_pointer_in_declarator804)
+                    self.following.append(self.FOLLOW_pointer_in_declarator807)
                     self.pointer()
                     self.following.pop()
                     if self.failed:
@@ -2828,7 +2828,7 @@ class CParser(Parser):
 
                 if alt35 == 1:
                     # C.g:242:4: IDENTIFIER ( declarator_suffix )*
-                    self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_direct_declarator815)
+                    self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_direct_declarator818)
                     if self.failed:
                         return 
                     # C.g:242:15: ( declarator_suffix )*
@@ -2841,133 +2841,133 @@ class CParser(Parser):
                             if LA33 == 65:
                                 LA33_34 = self.input.LA(3)
 
-                                if (self.synpred68()) :
+                                if (self.synpred69()) :
                                     alt33 = 1
 
 
                             elif LA33 == IDENTIFIER:
-                                LA33_39 = self.input.LA(3)
+                                LA33_41 = self.input.LA(3)
 
-                                if (self.synpred68()) :
+                                if (self.synpred69()) :
                                     alt33 = 1
 
 
                             elif LA33 == 29 or LA33 == 30 or LA33 == 31 or LA33 == 32 or LA33 == 33:
                                 LA33_42 = self.input.LA(3)
 
-                                if (self.synpred68()) :
+                                if (self.synpred69()) :
                                     alt33 = 1
 
 
                             elif LA33 == 34:
                                 LA33_43 = self.input.LA(3)
 
-                                if (self.synpred68()) :
+                                if (self.synpred69()) :
                                     alt33 = 1
 
 
                             elif LA33 == 35:
                                 LA33_44 = self.input.LA(3)
 
-                                if (self.synpred68()) :
+                                if (self.synpred69()) :
                                     alt33 = 1
 
 
                             elif LA33 == 36:
                                 LA33_45 = self.input.LA(3)
 
-                                if (self.synpred68()) :
+                                if (self.synpred69()) :
                                     alt33 = 1
 
 
                             elif LA33 == 37:
                                 LA33_46 = self.input.LA(3)
 
-                                if (self.synpred68()) :
+                                if (self.synpred69()) :
                                     alt33 = 1
 
 
                             elif LA33 == 38:
                                 LA33_47 = self.input.LA(3)
 
-                                if (self.synpred68()) :
+                                if (self.synpred69()) :
                                     alt33 = 1
 
 
                             elif LA33 == 39:
                                 LA33_48 = self.input.LA(3)
 
-                                if (self.synpred68()) :
+                                if (self.synpred69()) :
                                     alt33 = 1
 
 
                             elif LA33 == 40:
                                 LA33_49 = self.input.LA(3)
 
-                                if (self.synpred68()) :
+                                if (self.synpred69()) :
                                     alt33 = 1
 
 
                             elif LA33 == 41:
                                 LA33_50 = self.input.LA(3)
 
-                                if (self.synpred68()) :
+                                if (self.synpred69()) :
                                     alt33 = 1
 
 
                             elif LA33 == 42:
                                 LA33_51 = self.input.LA(3)
 
-                                if (self.synpred68()) :
+                                if (self.synpred69()) :
                                     alt33 = 1
 
 
                             elif LA33 == 43:
                                 LA33_52 = self.input.LA(3)
 
-                                if (self.synpred68()) :
+                                if (self.synpred69()) :
                                     alt33 = 1
 
 
                             elif LA33 == 44:
                                 LA33_53 = self.input.LA(3)
 
-                                if (self.synpred68()) :
+                                if (self.synpred69()) :
                                     alt33 = 1
 
 
                             elif LA33 == 45:
                                 LA33_54 = self.input.LA(3)
 
-                                if (self.synpred68()) :
+                                if (self.synpred69()) :
                                     alt33 = 1
 
 
                             elif LA33 == 46:
                                 LA33_55 = self.input.LA(3)
 
-                                if (self.synpred68()) :
+                                if (self.synpred69()) :
                                     alt33 = 1
 
 
                             elif LA33 == 49 or LA33 == 50:
                                 LA33_56 = self.input.LA(3)
 
-                                if (self.synpred68()) :
+                                if (self.synpred69()) :
                                     alt33 = 1
 
 
                             elif LA33 == 52:
                                 LA33_57 = self.input.LA(3)
 
-                                if (self.synpred68()) :
+                                if (self.synpred69()) :
                                     alt33 = 1
 
 
                             elif LA33 == 53 or LA33 == 54 or LA33 == 55 or LA33 == 56 or LA33 == 57 or LA33 == 58 or LA33 == 59 or LA33 == 60:
                                 LA33_58 = self.input.LA(3)
 
-                                if (self.synpred68()) :
+                                if (self.synpred69()) :
                                     alt33 = 1
 
 
@@ -2977,91 +2977,91 @@ class CParser(Parser):
                             if LA33 == 67:
                                 LA33_59 = self.input.LA(3)
 
-                                if (self.synpred68()) :
+                                if (self.synpred69()) :
                                     alt33 = 1
 
 
                             elif LA33 == 64:
                                 LA33_60 = self.input.LA(3)
 
-                                if (self.synpred68()) :
+                                if (self.synpred69()) :
                                     alt33 = 1
 
 
                             elif LA33 == IDENTIFIER:
                                 LA33_61 = self.input.LA(3)
 
-                                if (self.synpred68()) :
+                                if (self.synpred69()) :
                                     alt33 = 1
 
 
                             elif LA33 == HEX_LITERAL:
                                 LA33_62 = self.input.LA(3)
 
-                                if (self.synpred68()) :
+                                if (self.synpred69()) :
                                     alt33 = 1
 
 
                             elif LA33 == OCTAL_LITERAL:
                                 LA33_63 = self.input.LA(3)
 
-                                if (self.synpred68()) :
+                                if (self.synpred69()) :
                                     alt33 = 1
 
 
                             elif LA33 == DECIMAL_LITERAL:
                                 LA33_64 = self.input.LA(3)
 
-                                if (self.synpred68()) :
+                                if (self.synpred69()) :
                                     alt33 = 1
 
 
                             elif LA33 == CHARACTER_LITERAL:
                                 LA33_65 = self.input.LA(3)
 
-                                if (self.synpred68()) :
+                                if (self.synpred69()) :
                                     alt33 = 1
 
 
                             elif LA33 == STRING_LITERAL:
                                 LA33_66 = self.input.LA(3)
 
-                                if (self.synpred68()) :
+                                if (self.synpred69()) :
                                     alt33 = 1
 
 
                             elif LA33 == FLOATING_POINT_LITERAL:
                                 LA33_67 = self.input.LA(3)
 
-                                if (self.synpred68()) :
+                                if (self.synpred69()) :
                                     alt33 = 1
 
 
                             elif LA33 == 74:
                                 LA33_68 = self.input.LA(3)
 
-                                if (self.synpred68()) :
+                                if (self.synpred69()) :
                                     alt33 = 1
 
 
                             elif LA33 == 75:
                                 LA33_69 = self.input.LA(3)
 
-                                if (self.synpred68()) :
+                                if (self.synpred69()) :
                                     alt33 = 1
 
 
                             elif LA33 == 68 or LA33 == 70 or LA33 == 71 or LA33 == 79 or LA33 == 80 or LA33 == 81:
                                 LA33_70 = self.input.LA(3)
 
-                                if (self.synpred68()) :
+                                if (self.synpred69()) :
                                     alt33 = 1
 
 
                             elif LA33 == 76:
                                 LA33_71 = self.input.LA(3)
 
-                                if (self.synpred68()) :
+                                if (self.synpred69()) :
                                     alt33 = 1
 
 
@@ -3070,7 +3070,7 @@ class CParser(Parser):
 
                         if alt33 == 1:
                             # C.g:0:0: declarator_suffix
-                            self.following.append(self.FOLLOW_declarator_suffix_in_direct_declarator817)
+                            self.following.append(self.FOLLOW_declarator_suffix_in_direct_declarator820)
                             self.declarator_suffix()
                             self.following.pop()
                             if self.failed:
@@ -3085,15 +3085,15 @@ class CParser(Parser):
 
                 elif alt35 == 2:
                     # C.g:243:4: '(' declarator ')' ( declarator_suffix )+
-                    self.match(self.input, 64, self.FOLLOW_64_in_direct_declarator823)
+                    self.match(self.input, 64, self.FOLLOW_64_in_direct_declarator826)
                     if self.failed:
                         return 
-                    self.following.append(self.FOLLOW_declarator_in_direct_declarator825)
+                    self.following.append(self.FOLLOW_declarator_in_direct_declarator828)
                     self.declarator()
                     self.following.pop()
                     if self.failed:
                         return 
-                    self.match(self.input, 65, self.FOLLOW_65_in_direct_declarator827)
+                    self.match(self.input, 65, self.FOLLOW_65_in_direct_declarator830)
                     if self.failed:
                         return 
                     # C.g:243:23: ( declarator_suffix )+
@@ -3107,133 +3107,133 @@ class CParser(Parser):
                             if LA34 == 65:
                                 LA34_34 = self.input.LA(3)
 
-                                if (self.synpred70()) :
+                                if (self.synpred71()) :
                                     alt34 = 1
 
 
                             elif LA34 == IDENTIFIER:
-                                LA34_39 = self.input.LA(3)
+                                LA34_41 = self.input.LA(3)
 
-                                if (self.synpred70()) :
+                                if (self.synpred71()) :
                                     alt34 = 1
 
 
                             elif LA34 == 29 or LA34 == 30 or LA34 == 31 or LA34 == 32 or LA34 == 33:
                                 LA34_42 = self.input.LA(3)
 
-                                if (self.synpred70()) :
+                                if (self.synpred71()) :
                                     alt34 = 1
 
 
                             elif LA34 == 34:
                                 LA34_43 = self.input.LA(3)
 
-                                if (self.synpred70()) :
+                                if (self.synpred71()) :
                                     alt34 = 1
 
 
                             elif LA34 == 35:
                                 LA34_44 = self.input.LA(3)
 
-                                if (self.synpred70()) :
+                                if (self.synpred71()) :
                                     alt34 = 1
 
 
                             elif LA34 == 36:
                                 LA34_45 = self.input.LA(3)
 
-                                if (self.synpred70()) :
+                                if (self.synpred71()) :
                                     alt34 = 1
 
 
                             elif LA34 == 37:
                                 LA34_46 = self.input.LA(3)
 
-                                if (self.synpred70()) :
+                                if (self.synpred71()) :
                                     alt34 = 1
 
 
                             elif LA34 == 38:
                                 LA34_47 = self.input.LA(3)
 
-                                if (self.synpred70()) :
+                                if (self.synpred71()) :
                                     alt34 = 1
 
 
                             elif LA34 == 39:
                                 LA34_48 = self.input.LA(3)
 
-                                if (self.synpred70()) :
+                                if (self.synpred71()) :
                                     alt34 = 1
 
 
                             elif LA34 == 40:
                                 LA34_49 = self.input.LA(3)
 
-                                if (self.synpred70()) :
+                                if (self.synpred71()) :
                                     alt34 = 1
 
 
                             elif LA34 == 41:
                                 LA34_50 = self.input.LA(3)
 
-                                if (self.synpred70()) :
+                                if (self.synpred71()) :
                                     alt34 = 1
 
 
                             elif LA34 == 42:
                                 LA34_51 = self.input.LA(3)
 
-                                if (self.synpred70()) :
+                                if (self.synpred71()) :
                                     alt34 = 1
 
 
                             elif LA34 == 43:
                                 LA34_52 = self.input.LA(3)
 
-                                if (self.synpred70()) :
+                                if (self.synpred71()) :
                                     alt34 = 1
 
 
                             elif LA34 == 44:
                                 LA34_53 = self.input.LA(3)
 
-                                if (self.synpred70()) :
+                                if (self.synpred71()) :
                                     alt34 = 1
 
 
                             elif LA34 == 45:
                                 LA34_54 = self.input.LA(3)
 
-                                if (self.synpred70()) :
+                                if (self.synpred71()) :
                                     alt34 = 1
 
 
                             elif LA34 == 46:
                                 LA34_55 = self.input.LA(3)
 
-                                if (self.synpred70()) :
+                                if (self.synpred71()) :
                                     alt34 = 1
 
 
                             elif LA34 == 49 or LA34 == 50:
                                 LA34_56 = self.input.LA(3)
 
-                                if (self.synpred70()) :
+                                if (self.synpred71()) :
                                     alt34 = 1
 
 
                             elif LA34 == 52:
                                 LA34_57 = self.input.LA(3)
 
-                                if (self.synpred70()) :
+                                if (self.synpred71()) :
                                     alt34 = 1
 
 
                             elif LA34 == 53 or LA34 == 54 or LA34 == 55 or LA34 == 56 or LA34 == 57 or LA34 == 58 or LA34 == 59 or LA34 == 60:
                                 LA34_58 = self.input.LA(3)
 
-                                if (self.synpred70()) :
+                                if (self.synpred71()) :
                                     alt34 = 1
 
 
@@ -3243,91 +3243,91 @@ class CParser(Parser):
                             if LA34 == 67:
                                 LA34_59 = self.input.LA(3)
 
-                                if (self.synpred70()) :
+                                if (self.synpred71()) :
                                     alt34 = 1
 
 
                             elif LA34 == 64:
                                 LA34_60 = self.input.LA(3)
 
-                                if (self.synpred70()) :
+                                if (self.synpred71()) :
                                     alt34 = 1
 
 
                             elif LA34 == IDENTIFIER:
                                 LA34_61 = self.input.LA(3)
 
-                                if (self.synpred70()) :
+                                if (self.synpred71()) :
                                     alt34 = 1
 
 
                             elif LA34 == HEX_LITERAL:
                                 LA34_62 = self.input.LA(3)
 
-                                if (self.synpred70()) :
+                                if (self.synpred71()) :
                                     alt34 = 1
 
 
                             elif LA34 == OCTAL_LITERAL:
                                 LA34_63 = self.input.LA(3)
 
-                                if (self.synpred70()) :
+                                if (self.synpred71()) :
                                     alt34 = 1
 
 
                             elif LA34 == DECIMAL_LITERAL:
                                 LA34_64 = self.input.LA(3)
 
-                                if (self.synpred70()) :
+                                if (self.synpred71()) :
                                     alt34 = 1
 
 
                             elif LA34 == CHARACTER_LITERAL:
                                 LA34_65 = self.input.LA(3)
 
-                                if (self.synpred70()) :
+                                if (self.synpred71()) :
                                     alt34 = 1
 
 
                             elif LA34 == STRING_LITERAL:
                                 LA34_66 = self.input.LA(3)
 
-                                if (self.synpred70()) :
+                                if (self.synpred71()) :
                                     alt34 = 1
 
 
                             elif LA34 == FLOATING_POINT_LITERAL:
                                 LA34_67 = self.input.LA(3)
 
-                                if (self.synpred70()) :
+                                if (self.synpred71()) :
                                     alt34 = 1
 
 
                             elif LA34 == 74:
                                 LA34_68 = self.input.LA(3)
 
-                                if (self.synpred70()) :
+                                if (self.synpred71()) :
                                     alt34 = 1
 
 
                             elif LA34 == 75:
                                 LA34_69 = self.input.LA(3)
 
-                                if (self.synpred70()) :
+                                if (self.synpred71()) :
                                     alt34 = 1
 
 
                             elif LA34 == 68 or LA34 == 70 or LA34 == 71 or LA34 == 79 or LA34 == 80 or LA34 == 81:
                                 LA34_70 = self.input.LA(3)
 
-                                if (self.synpred70()) :
+                                if (self.synpred71()) :
                                     alt34 = 1
 
 
                             elif LA34 == 76:
                                 LA34_71 = self.input.LA(3)
 
-                                if (self.synpred70()) :
+                                if (self.synpred71()) :
                                     alt34 = 1
 
 
@@ -3336,7 +3336,7 @@ class CParser(Parser):
 
                         if alt34 == 1:
                             # C.g:0:0: declarator_suffix
-                            self.following.append(self.FOLLOW_declarator_suffix_in_direct_declarator829)
+                            self.following.append(self.FOLLOW_declarator_suffix_in_direct_declarator832)
                             self.declarator_suffix()
                             self.following.pop()
                             if self.failed:
@@ -3408,24 +3408,24 @@ class CParser(Parser):
                     LA36 = self.input.LA(2)
                     if LA36 == 65:
                         alt36 = 5
-                    elif LA36 == 29 or LA36 == 30 or LA36 == 31 or LA36 == 32 or LA36 == 33 or LA36 == 34 or LA36 == 35 or LA36 == 36 or LA36 == 37 or LA36 == 38 or LA36 == 39 or LA36 == 40 or LA36 == 41 or LA36 == 42 or LA36 == 43 or LA36 == 44 or LA36 == 45 or LA36 == 46 or LA36 == 49 or LA36 == 50 or LA36 == 52 or LA36 == 53 or LA36 == 54 or LA36 == 55 or LA36 == 56 or LA36 == 57 or LA36 == 58 or LA36 == 59 or LA36 == 60:
-                        alt36 = 3
                     elif LA36 == IDENTIFIER:
-                        LA36_33 = self.input.LA(3)
+                        LA36_17 = self.input.LA(3)
 
-                        if (self.synpred73()) :
+                        if (self.synpred74()) :
                             alt36 = 3
-                        elif (self.synpred74()) :
+                        elif (self.synpred75()) :
                             alt36 = 4
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("246:1: declarator_suffix : ( '[' constant_expression ']' | '[' ']' | '(' parameter_type_list ')' | '(' identifier_list ')' | '(' ')' );", 36, 33, self.input)
+                            nvae = NoViableAltException("246:1: declarator_suffix : ( '[' constant_expression ']' | '[' ']' | '(' parameter_type_list ')' | '(' identifier_list ')' | '(' ')' );", 36, 17, self.input)
 
                             raise nvae
 
+                    elif LA36 == 29 or LA36 == 30 or LA36 == 31 or LA36 == 32 or LA36 == 33 or LA36 == 34 or LA36 == 35 or LA36 == 36 or LA36 == 37 or LA36 == 38 or LA36 == 39 or LA36 == 40 or LA36 == 41 or LA36 == 42 or LA36 == 43 or LA36 == 44 or LA36 == 45 or LA36 == 46 or LA36 == 49 or LA36 == 50 or LA36 == 52 or LA36 == 53 or LA36 == 54 or LA36 == 55 or LA36 == 56 or LA36 == 57 or LA36 == 58 or LA36 == 59 or LA36 == 60:
+                        alt36 = 3
                     else:
                         if self.backtracking > 0:
                             self.failed = True
@@ -3446,65 +3446,65 @@ class CParser(Parser):
 
                 if alt36 == 1:
                     # C.g:247:6: '[' constant_expression ']'
-                    self.match(self.input, 66, self.FOLLOW_66_in_declarator_suffix843)
+                    self.match(self.input, 66, self.FOLLOW_66_in_declarator_suffix846)
                     if self.failed:
                         return 
-                    self.following.append(self.FOLLOW_constant_expression_in_declarator_suffix845)
+                    self.following.append(self.FOLLOW_constant_expression_in_declarator_suffix848)
                     self.constant_expression()
                     self.following.pop()
                     if self.failed:
                         return 
-                    self.match(self.input, 67, self.FOLLOW_67_in_declarator_suffix847)
+                    self.match(self.input, 67, self.FOLLOW_67_in_declarator_suffix850)
                     if self.failed:
                         return 
 
 
                 elif alt36 == 2:
                     # C.g:248:9: '[' ']'
-                    self.match(self.input, 66, self.FOLLOW_66_in_declarator_suffix857)
+                    self.match(self.input, 66, self.FOLLOW_66_in_declarator_suffix860)
                     if self.failed:
                         return 
-                    self.match(self.input, 67, self.FOLLOW_67_in_declarator_suffix859)
+                    self.match(self.input, 67, self.FOLLOW_67_in_declarator_suffix862)
                     if self.failed:
                         return 
 
 
                 elif alt36 == 3:
                     # C.g:249:9: '(' parameter_type_list ')'
-                    self.match(self.input, 64, self.FOLLOW_64_in_declarator_suffix869)
+                    self.match(self.input, 64, self.FOLLOW_64_in_declarator_suffix872)
                     if self.failed:
                         return 
-                    self.following.append(self.FOLLOW_parameter_type_list_in_declarator_suffix871)
+                    self.following.append(self.FOLLOW_parameter_type_list_in_declarator_suffix874)
                     self.parameter_type_list()
                     self.following.pop()
                     if self.failed:
                         return 
-                    self.match(self.input, 65, self.FOLLOW_65_in_declarator_suffix873)
+                    self.match(self.input, 65, self.FOLLOW_65_in_declarator_suffix876)
                     if self.failed:
                         return 
 
 
                 elif alt36 == 4:
                     # C.g:250:9: '(' identifier_list ')'
-                    self.match(self.input, 64, self.FOLLOW_64_in_declarator_suffix883)
+                    self.match(self.input, 64, self.FOLLOW_64_in_declarator_suffix886)
                     if self.failed:
                         return 
-                    self.following.append(self.FOLLOW_identifier_list_in_declarator_suffix885)
+                    self.following.append(self.FOLLOW_identifier_list_in_declarator_suffix888)
                     self.identifier_list()
                     self.following.pop()
                     if self.failed:
                         return 
-                    self.match(self.input, 65, self.FOLLOW_65_in_declarator_suffix887)
+                    self.match(self.input, 65, self.FOLLOW_65_in_declarator_suffix890)
                     if self.failed:
                         return 
 
 
                 elif alt36 == 5:
                     # C.g:251:9: '(' ')'
-                    self.match(self.input, 64, self.FOLLOW_64_in_declarator_suffix897)
+                    self.match(self.input, 64, self.FOLLOW_64_in_declarator_suffix900)
                     if self.failed:
                         return 
-                    self.match(self.input, 65, self.FOLLOW_65_in_declarator_suffix899)
+                    self.match(self.input, 65, self.FOLLOW_65_in_declarator_suffix902)
                     if self.failed:
                         return 
 
@@ -3540,13 +3540,11 @@ class CParser(Parser):
 
                 if (LA39_0 == 68) :
                     LA39 = self.input.LA(2)
-                    if LA39 == EOF or LA39 == IDENTIFIER or LA39 == 25 or LA39 == 26 or LA39 == 27 or LA39 == 28 or LA39 == 29 or LA39 == 30 or LA39 == 31 or LA39 == 32 or LA39 == 33 or LA39 == 34 or LA39 == 35 or LA39 == 36 or LA39 == 37 or LA39 == 38 or LA39 == 39 or LA39 == 40 or LA39 == 41 or LA39 == 42 or LA39 == 43 or LA39 == 44 or LA39 == 45 or LA39 == 46 or LA39 == 47 or LA39 == 49 or LA39 == 50 or LA39 == 51 or LA39 == 52 or LA39 == 61 or LA39 == 62 or LA39 == 63 or LA39 == 64 or LA39 == 65 or LA39 == 66:
-                        alt39 = 3
-                    elif LA39 == 57:
-                        LA39_24 = self.input.LA(3)
+                    if LA39 == 68:
+                        LA39_2 = self.input.LA(3)
 
-                        if (self.synpred77()) :
-                            alt39 = 1
+                        if (self.synpred79()) :
+                            alt39 = 2
                         elif (True) :
                             alt39 = 3
                         else:
@@ -3554,14 +3552,16 @@ class CParser(Parser):
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("254:1: pointer : ( '*' ( type_qualifier )+ ( pointer )? | '*' pointer | '*' );", 39, 24, self.input)
+                            nvae = NoViableAltException("254:1: pointer : ( '*' ( type_qualifier )+ ( pointer )? | '*' pointer | '*' );", 39, 2, self.input)
 
                             raise nvae
 
-                    elif LA39 == 53 or LA39 == 54 or LA39 == 55 or LA39 == 56 or LA39 == 58 or LA39 == 59 or LA39 == 60:
-                        LA39_32 = self.input.LA(3)
+                    elif LA39 == EOF or LA39 == IDENTIFIER or LA39 == 25 or LA39 == 26 or LA39 == 27 or LA39 == 28 or LA39 == 29 or LA39 == 30 or LA39 == 31 or LA39 == 32 or LA39 == 33 or LA39 == 34 or LA39 == 35 or LA39 == 36 or LA39 == 37 or LA39 == 38 or LA39 == 39 or LA39 == 40 or LA39 == 41 or LA39 == 42 or LA39 == 43 or LA39 == 44 or LA39 == 45 or LA39 == 46 or LA39 == 47 or LA39 == 49 or LA39 == 50 or LA39 == 51 or LA39 == 52 or LA39 == 61 or LA39 == 62 or LA39 == 63 or LA39 == 64 or LA39 == 65 or LA39 == 66:
+                        alt39 = 3
+                    elif LA39 == 57:
+                        LA39_25 = self.input.LA(3)
 
-                        if (self.synpred77()) :
+                        if (self.synpred78()) :
                             alt39 = 1
                         elif (True) :
                             alt39 = 3
@@ -3570,15 +3570,15 @@ class CParser(Parser):
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("254:1: pointer : ( '*' ( type_qualifier )+ ( pointer )? | '*' pointer | '*' );", 39, 32, self.input)
+                            nvae = NoViableAltException("254:1: pointer : ( '*' ( type_qualifier )+ ( pointer )? | '*' pointer | '*' );", 39, 25, self.input)
 
                             raise nvae
 
-                    elif LA39 == 68:
+                    elif LA39 == 53 or LA39 == 54 or LA39 == 55 or LA39 == 56 or LA39 == 58 or LA39 == 59 or LA39 == 60:
                         LA39_33 = self.input.LA(3)
 
                         if (self.synpred78()) :
-                            alt39 = 2
+                            alt39 = 1
                         elif (True) :
                             alt39 = 3
                         else:
@@ -3610,7 +3610,7 @@ class CParser(Parser):
 
                 if alt39 == 1:
                     # C.g:255:4: '*' ( type_qualifier )+ ( pointer )?
-                    self.match(self.input, 68, self.FOLLOW_68_in_pointer910)
+                    self.match(self.input, 68, self.FOLLOW_68_in_pointer913)
                     if self.failed:
                         return 
                     # C.g:255:8: ( type_qualifier )+
@@ -3622,14 +3622,14 @@ class CParser(Parser):
                         if (LA37_0 == 57) :
                             LA37_24 = self.input.LA(2)
 
-                            if (self.synpred75()) :
+                            if (self.synpred76()) :
                                 alt37 = 1
 
 
                         elif ((53 <= LA37_0 <= 56) or (58 <= LA37_0 <= 60)) :
                             LA37_32 = self.input.LA(2)
 
-                            if (self.synpred75()) :
+                            if (self.synpred76()) :
                                 alt37 = 1
 
 
@@ -3637,7 +3637,7 @@ class CParser(Parser):
 
                         if alt37 == 1:
                             # C.g:0:0: type_qualifier
-                            self.following.append(self.FOLLOW_type_qualifier_in_pointer912)
+                            self.following.append(self.FOLLOW_type_qualifier_in_pointer915)
                             self.type_qualifier()
                             self.following.pop()
                             if self.failed:
@@ -3665,11 +3665,11 @@ class CParser(Parser):
                     if (LA38_0 == 68) :
                         LA38_1 = self.input.LA(2)
 
-                        if (self.synpred76()) :
+                        if (self.synpred77()) :
                             alt38 = 1
                     if alt38 == 1:
                         # C.g:0:0: pointer
-                        self.following.append(self.FOLLOW_pointer_in_pointer915)
+                        self.following.append(self.FOLLOW_pointer_in_pointer918)
                         self.pointer()
                         self.following.pop()
                         if self.failed:
@@ -3681,10 +3681,10 @@ class CParser(Parser):
 
                 elif alt39 == 2:
                     # C.g:256:4: '*' pointer
-                    self.match(self.input, 68, self.FOLLOW_68_in_pointer921)
+                    self.match(self.input, 68, self.FOLLOW_68_in_pointer924)
                     if self.failed:
                         return 
-                    self.following.append(self.FOLLOW_pointer_in_pointer923)
+                    self.following.append(self.FOLLOW_pointer_in_pointer926)
                     self.pointer()
                     self.following.pop()
                     if self.failed:
@@ -3693,7 +3693,7 @@ class CParser(Parser):
 
                 elif alt39 == 3:
                     # C.g:257:4: '*'
-                    self.match(self.input, 68, self.FOLLOW_68_in_pointer928)
+                    self.match(self.input, 68, self.FOLLOW_68_in_pointer931)
                     if self.failed:
                         return 
 
@@ -3725,7 +3725,7 @@ class CParser(Parser):
 
                 # C.g:261:2: ( parameter_list ( ',' '...' )? )
                 # C.g:261:4: parameter_list ( ',' '...' )?
-                self.following.append(self.FOLLOW_parameter_list_in_parameter_type_list939)
+                self.following.append(self.FOLLOW_parameter_list_in_parameter_type_list942)
                 self.parameter_list()
                 self.following.pop()
                 if self.failed:
@@ -3738,10 +3738,10 @@ class CParser(Parser):
                     alt40 = 1
                 if alt40 == 1:
                     # C.g:261:20: ',' '...'
-                    self.match(self.input, 27, self.FOLLOW_27_in_parameter_type_list942)
+                    self.match(self.input, 27, self.FOLLOW_27_in_parameter_type_list945)
                     if self.failed:
                         return 
-                    self.match(self.input, 69, self.FOLLOW_69_in_parameter_type_list944)
+                    self.match(self.input, 69, self.FOLLOW_69_in_parameter_type_list947)
                     if self.failed:
                         return 
 
@@ -3777,7 +3777,7 @@ class CParser(Parser):
 
                 # C.g:265:2: ( parameter_declaration ( ',' ( 'OPTIONAL' )? parameter_declaration )* )
                 # C.g:265:4: parameter_declaration ( ',' ( 'OPTIONAL' )? parameter_declaration )*
-                self.following.append(self.FOLLOW_parameter_declaration_in_parameter_list957)
+                self.following.append(self.FOLLOW_parameter_declaration_in_parameter_list960)
                 self.parameter_declaration()
                 self.following.pop()
                 if self.failed:
@@ -3798,7 +3798,7 @@ class CParser(Parser):
 
                     if alt42 == 1:
                         # C.g:265:27: ',' ( 'OPTIONAL' )? parameter_declaration
-                        self.match(self.input, 27, self.FOLLOW_27_in_parameter_list960)
+                        self.match(self.input, 27, self.FOLLOW_27_in_parameter_list963)
                         if self.failed:
                             return 
                         # C.g:265:31: ( 'OPTIONAL' )?
@@ -3808,17 +3808,17 @@ class CParser(Parser):
                         if (LA41_0 == 57) :
                             LA41_1 = self.input.LA(2)
 
-                            if (self.synpred80()) :
+                            if (self.synpred81()) :
                                 alt41 = 1
                         if alt41 == 1:
                             # C.g:265:32: 'OPTIONAL'
-                            self.match(self.input, 57, self.FOLLOW_57_in_parameter_list963)
+                            self.match(self.input, 57, self.FOLLOW_57_in_parameter_list966)
                             if self.failed:
                                 return 
 
 
 
-                        self.following.append(self.FOLLOW_parameter_declaration_in_parameter_list967)
+                        self.following.append(self.FOLLOW_parameter_declaration_in_parameter_list970)
                         self.parameter_declaration()
                         self.following.pop()
                         if self.failed:
@@ -3866,7 +3866,7 @@ class CParser(Parser):
                 elif (LA45_0 == IDENTIFIER) :
                     LA45_17 = self.input.LA(2)
 
-                    if (self.synpred85()) :
+                    if (self.synpred86()) :
                         alt45 = 1
                     elif (True) :
                         alt45 = 2
@@ -3890,7 +3890,7 @@ class CParser(Parser):
 
                 if alt45 == 1:
                     # C.g:269:4: declaration_specifiers ( declarator | abstract_declarator )* ( 'OPTIONAL' )?
-                    self.following.append(self.FOLLOW_declaration_specifiers_in_parameter_declaration980)
+                    self.following.append(self.FOLLOW_declaration_specifiers_in_parameter_declaration983)
                     self.declaration_specifiers()
                     self.following.pop()
                     if self.failed:
@@ -3902,9 +3902,9 @@ class CParser(Parser):
                         if LA43 == 68:
                             LA43_5 = self.input.LA(2)
 
-                            if (self.synpred82()) :
+                            if (self.synpred83()) :
                                 alt43 = 1
-                            elif (self.synpred83()) :
+                            elif (self.synpred84()) :
                                 alt43 = 2
 
 
@@ -3914,42 +3914,42 @@ class CParser(Parser):
                             LA43 = self.input.LA(2)
                             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 == 43 or LA43 == 44 or LA43 == 45 or LA43 == 46 or LA43 == 49 or LA43 == 50 or LA43 == 52 or LA43 == 53 or LA43 == 54 or LA43 == 55 or LA43 == 56 or LA43 == 57 or LA43 == 58 or LA43 == 59 or LA43 == 60 or LA43 == 65 or LA43 == 66:
                                 alt43 = 2
-                            elif LA43 == IDENTIFIER:
-                                LA43_41 = self.input.LA(3)
+                            elif LA43 == 68:
+                                LA43_25 = self.input.LA(3)
 
-                                if (self.synpred82()) :
+                                if (self.synpred83()) :
                                     alt43 = 1
-                                elif (self.synpred83()) :
+                                elif (self.synpred84()) :
                                     alt43 = 2
 
 
-                            elif LA43 == 68:
-                                LA43_43 = self.input.LA(3)
+                            elif LA43 == 61 or LA43 == 62 or LA43 == 63:
+                                alt43 = 1
+                            elif LA43 == IDENTIFIER:
+                                LA43_29 = self.input.LA(3)
 
-                                if (self.synpred82()) :
+                                if (self.synpred83()) :
                                     alt43 = 1
-                                elif (self.synpred83()) :
+                                elif (self.synpred84()) :
                                     alt43 = 2
 
 
                             elif LA43 == 64:
-                                LA43_44 = self.input.LA(3)
+                                LA43_30 = self.input.LA(3)
 
-                                if (self.synpred82()) :
+                                if (self.synpred83()) :
                                     alt43 = 1
-                                elif (self.synpred83()) :
+                                elif (self.synpred84()) :
                                     alt43 = 2
 
 
-                            elif LA43 == 61 or LA43 == 62 or LA43 == 63:
-                                alt43 = 1
 
                         elif LA43 == 66:
                             alt43 = 2
 
                         if alt43 == 1:
                             # C.g:269:28: declarator
-                            self.following.append(self.FOLLOW_declarator_in_parameter_declaration983)
+                            self.following.append(self.FOLLOW_declarator_in_parameter_declaration986)
                             self.declarator()
                             self.following.pop()
                             if self.failed:
@@ -3958,7 +3958,7 @@ class CParser(Parser):
 
                         elif alt43 == 2:
                             # C.g:269:39: abstract_declarator
-                            self.following.append(self.FOLLOW_abstract_declarator_in_parameter_declaration985)
+                            self.following.append(self.FOLLOW_abstract_declarator_in_parameter_declaration988)
                             self.abstract_declarator()
                             self.following.pop()
                             if self.failed:
@@ -3977,7 +3977,7 @@ class CParser(Parser):
                         alt44 = 1
                     if alt44 == 1:
                         # C.g:269:62: 'OPTIONAL'
-                        self.match(self.input, 57, self.FOLLOW_57_in_parameter_declaration990)
+                        self.match(self.input, 57, self.FOLLOW_57_in_parameter_declaration993)
                         if self.failed:
                             return 
 
@@ -3987,7 +3987,7 @@ class CParser(Parser):
 
                 elif alt45 == 2:
                     # C.g:271:4: IDENTIFIER
-                    self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_parameter_declaration999)
+                    self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_parameter_declaration1002)
                     if self.failed:
                         return 
 
@@ -4019,7 +4019,7 @@ class CParser(Parser):
 
                 # C.g:275:2: ( IDENTIFIER ( ',' IDENTIFIER )* )
                 # C.g:275:4: IDENTIFIER ( ',' IDENTIFIER )*
-                self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_identifier_list1010)
+                self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_identifier_list1013)
                 if self.failed:
                     return 
                 # C.g:276:2: ( ',' IDENTIFIER )*
@@ -4033,10 +4033,10 @@ class CParser(Parser):
 
                     if alt46 == 1:
                         # C.g:276:3: ',' IDENTIFIER
-                        self.match(self.input, 27, self.FOLLOW_27_in_identifier_list1014)
+                        self.match(self.input, 27, self.FOLLOW_27_in_identifier_list1017)
                         if self.failed:
                             return 
-                        self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_identifier_list1016)
+                        self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_identifier_list1019)
                         if self.failed:
                             return 
 
@@ -4082,7 +4082,7 @@ class CParser(Parser):
                 elif (LA48_0 == IDENTIFIER) :
                     LA48_17 = self.input.LA(2)
 
-                    if (self.synpred88()) :
+                    if (self.synpred89()) :
                         alt48 = 1
                     elif (True) :
                         alt48 = 2
@@ -4106,7 +4106,7 @@ class CParser(Parser):
 
                 if alt48 == 1:
                     # C.g:280:4: specifier_qualifier_list ( abstract_declarator )?
-                    self.following.append(self.FOLLOW_specifier_qualifier_list_in_type_name1029)
+                    self.following.append(self.FOLLOW_specifier_qualifier_list_in_type_name1032)
                     self.specifier_qualifier_list()
                     self.following.pop()
                     if self.failed:
@@ -4119,7 +4119,7 @@ class CParser(Parser):
                         alt47 = 1
                     if alt47 == 1:
                         # C.g:0:0: abstract_declarator
-                        self.following.append(self.FOLLOW_abstract_declarator_in_type_name1031)
+                        self.following.append(self.FOLLOW_abstract_declarator_in_type_name1034)
                         self.abstract_declarator()
                         self.following.pop()
                         if self.failed:
@@ -4131,7 +4131,7 @@ class CParser(Parser):
 
                 elif alt48 == 2:
                     # C.g:281:4: type_id
-                    self.following.append(self.FOLLOW_type_id_in_type_name1037)
+                    self.following.append(self.FOLLOW_type_id_in_type_name1040)
                     self.type_id()
                     self.following.pop()
                     if self.failed:
@@ -4182,7 +4182,7 @@ class CParser(Parser):
 
                 if alt50 == 1:
                     # C.g:285:4: pointer ( direct_abstract_declarator )?
-                    self.following.append(self.FOLLOW_pointer_in_abstract_declarator1048)
+                    self.following.append(self.FOLLOW_pointer_in_abstract_declarator1051)
                     self.pointer()
                     self.following.pop()
                     if self.failed:
@@ -4196,183 +4196,183 @@ class CParser(Parser):
                         if LA49 == 65:
                             LA49_12 = self.input.LA(3)
 
-                            if (self.synpred89()) :
+                            if (self.synpred90()) :
                                 alt49 = 1
                         elif LA49 == 68:
                             LA49_13 = self.input.LA(3)
 
-                            if (self.synpred89()) :
-                                alt49 = 1
-                        elif LA49 == IDENTIFIER:
-                            LA49_17 = self.input.LA(3)
-
-                            if (self.synpred89()) :
+                            if (self.synpred90()) :
                                 alt49 = 1
                         elif LA49 == 64:
-                            LA49_18 = self.input.LA(3)
+                            LA49_14 = self.input.LA(3)
 
-                            if (self.synpred89()) :
+                            if (self.synpred90()) :
                                 alt49 = 1
                         elif LA49 == 66:
+                            LA49_15 = self.input.LA(3)
+
+                            if (self.synpred90()) :
+                                alt49 = 1
+                        elif LA49 == IDENTIFIER:
                             LA49_19 = self.input.LA(3)
 
-                            if (self.synpred89()) :
+                            if (self.synpred90()) :
                                 alt49 = 1
                         elif LA49 == 29 or LA49 == 30 or LA49 == 31 or LA49 == 32 or LA49 == 33:
                             LA49_20 = self.input.LA(3)
 
-                            if (self.synpred89()) :
+                            if (self.synpred90()) :
                                 alt49 = 1
                         elif LA49 == 34:
                             LA49_21 = self.input.LA(3)
 
-                            if (self.synpred89()) :
+                            if (self.synpred90()) :
                                 alt49 = 1
                         elif LA49 == 35:
                             LA49_22 = self.input.LA(3)
 
-                            if (self.synpred89()) :
+                            if (self.synpred90()) :
                                 alt49 = 1
                         elif LA49 == 36:
                             LA49_23 = self.input.LA(3)
 
-                            if (self.synpred89()) :
+                            if (self.synpred90()) :
                                 alt49 = 1
                         elif LA49 == 37:
                             LA49_24 = self.input.LA(3)
 
-                            if (self.synpred89()) :
+                            if (self.synpred90()) :
                                 alt49 = 1
                         elif LA49 == 38:
                             LA49_25 = self.input.LA(3)
 
-                            if (self.synpred89()) :
+                            if (self.synpred90()) :
                                 alt49 = 1
                         elif LA49 == 39:
                             LA49_26 = self.input.LA(3)
 
-                            if (self.synpred89()) :
+                            if (self.synpred90()) :
                                 alt49 = 1
                         elif LA49 == 40:
                             LA49_27 = self.input.LA(3)
 
-                            if (self.synpred89()) :
+                            if (self.synpred90()) :
                                 alt49 = 1
                         elif LA49 == 41:
                             LA49_28 = self.input.LA(3)
 
-                            if (self.synpred89()) :
+                            if (self.synpred90()) :
                                 alt49 = 1
                         elif LA49 == 42:
                             LA49_29 = self.input.LA(3)
 
-                            if (self.synpred89()) :
+                            if (self.synpred90()) :
                                 alt49 = 1
                         elif LA49 == 43:
                             LA49_30 = self.input.LA(3)
 
-                            if (self.synpred89()) :
+                            if (self.synpred90()) :
                                 alt49 = 1
                         elif LA49 == 44:
                             LA49_31 = self.input.LA(3)
 
-                            if (self.synpred89()) :
+                            if (self.synpred90()) :
                                 alt49 = 1
                         elif LA49 == 45:
                             LA49_32 = self.input.LA(3)
 
-                            if (self.synpred89()) :
+                            if (self.synpred90()) :
                                 alt49 = 1
                         elif LA49 == 46:
                             LA49_33 = self.input.LA(3)
 
-                            if (self.synpred89()) :
+                            if (self.synpred90()) :
                                 alt49 = 1
                         elif LA49 == 49 or LA49 == 50:
                             LA49_34 = self.input.LA(3)
 
-                            if (self.synpred89()) :
+                            if (self.synpred90()) :
                                 alt49 = 1
                         elif LA49 == 52:
                             LA49_35 = self.input.LA(3)
 
-                            if (self.synpred89()) :
+                            if (self.synpred90()) :
                                 alt49 = 1
                         elif LA49 == 53 or LA49 == 54 or LA49 == 55 or LA49 == 56 or LA49 == 57 or LA49 == 58 or LA49 == 59 or LA49 == 60:
                             LA49_36 = self.input.LA(3)
 
-                            if (self.synpred89()) :
+                            if (self.synpred90()) :
                                 alt49 = 1
                     elif (LA49_0 == 66) :
                         LA49 = self.input.LA(2)
                         if LA49 == 67:
                             LA49_37 = self.input.LA(3)
 
-                            if (self.synpred89()) :
+                            if (self.synpred90()) :
                                 alt49 = 1
                         elif LA49 == 64:
                             LA49_38 = self.input.LA(3)
 
-                            if (self.synpred89()) :
+                            if (self.synpred90()) :
                                 alt49 = 1
                         elif LA49 == IDENTIFIER:
                             LA49_39 = self.input.LA(3)
 
-                            if (self.synpred89()) :
+                            if (self.synpred90()) :
                                 alt49 = 1
                         elif LA49 == HEX_LITERAL:
                             LA49_40 = self.input.LA(3)
 
-                            if (self.synpred89()) :
+                            if (self.synpred90()) :
                                 alt49 = 1
                         elif LA49 == OCTAL_LITERAL:
                             LA49_41 = self.input.LA(3)
 
-                            if (self.synpred89()) :
+                            if (self.synpred90()) :
                                 alt49 = 1
                         elif LA49 == DECIMAL_LITERAL:
                             LA49_42 = self.input.LA(3)
 
-                            if (self.synpred89()) :
+                            if (self.synpred90()) :
                                 alt49 = 1
                         elif LA49 == CHARACTER_LITERAL:
                             LA49_43 = self.input.LA(3)
 
-                            if (self.synpred89()) :
+                            if (self.synpred90()) :
                                 alt49 = 1
                         elif LA49 == STRING_LITERAL:
                             LA49_44 = self.input.LA(3)
 
-                            if (self.synpred89()) :
+                            if (self.synpred90()) :
                                 alt49 = 1
                         elif LA49 == FLOATING_POINT_LITERAL:
                             LA49_45 = self.input.LA(3)
 
-                            if (self.synpred89()) :
+                            if (self.synpred90()) :
                                 alt49 = 1
                         elif LA49 == 74:
                             LA49_46 = self.input.LA(3)
 
-                            if (self.synpred89()) :
+                            if (self.synpred90()) :
                                 alt49 = 1
                         elif LA49 == 75:
                             LA49_47 = self.input.LA(3)
 
-                            if (self.synpred89()) :
+                            if (self.synpred90()) :
                                 alt49 = 1
                         elif LA49 == 68 or LA49 == 70 or LA49 == 71 or LA49 == 79 or LA49 == 80 or LA49 == 81:
                             LA49_48 = self.input.LA(3)
 
-                            if (self.synpred89()) :
+                            if (self.synpred90()) :
                                 alt49 = 1
                         elif LA49 == 76:
                             LA49_49 = self.input.LA(3)
 
-                            if (self.synpred89()) :
+                            if (self.synpred90()) :
                                 alt49 = 1
                     if alt49 == 1:
                         # C.g:0:0: direct_abstract_declarator
-                        self.following.append(self.FOLLOW_direct_abstract_declarator_in_abstract_declarator1050)
+                        self.following.append(self.FOLLOW_direct_abstract_declarator_in_abstract_declarator1053)
                         self.direct_abstract_declarator()
                         self.following.pop()
                         if self.failed:
@@ -4384,7 +4384,7 @@ class CParser(Parser):
 
                 elif alt50 == 2:
                     # C.g:286:4: direct_abstract_declarator
-                    self.following.append(self.FOLLOW_direct_abstract_declarator_in_abstract_declarator1056)
+                    self.following.append(self.FOLLOW_direct_abstract_declarator_in_abstract_declarator1059)
                     self.direct_abstract_declarator()
                     self.following.pop()
                     if self.failed:
@@ -4451,22 +4451,22 @@ class CParser(Parser):
 
                 if alt51 == 1:
                     # C.g:290:6: '(' abstract_declarator ')'
-                    self.match(self.input, 64, self.FOLLOW_64_in_direct_abstract_declarator1069)
+                    self.match(self.input, 64, self.FOLLOW_64_in_direct_abstract_declarator1072)
                     if self.failed:
                         return 
-                    self.following.append(self.FOLLOW_abstract_declarator_in_direct_abstract_declarator1071)
+                    self.following.append(self.FOLLOW_abstract_declarator_in_direct_abstract_declarator1074)
                     self.abstract_declarator()
                     self.following.pop()
                     if self.failed:
                         return 
-                    self.match(self.input, 65, self.FOLLOW_65_in_direct_abstract_declarator1073)
+                    self.match(self.input, 65, self.FOLLOW_65_in_direct_abstract_declarator1076)
                     if self.failed:
                         return 
 
 
                 elif alt51 == 2:
                     # C.g:290:36: abstract_declarator_suffix
-                    self.following.append(self.FOLLOW_abstract_declarator_suffix_in_direct_abstract_declarator1077)
+                    self.following.append(self.FOLLOW_abstract_declarator_suffix_in_direct_abstract_declarator1080)
                     self.abstract_declarator_suffix()
                     self.following.pop()
                     if self.failed:
@@ -4484,133 +4484,133 @@ class CParser(Parser):
                         if LA52 == 65:
                             LA52_12 = self.input.LA(3)
 
-                            if (self.synpred92()) :
+                            if (self.synpred93()) :
                                 alt52 = 1
 
 
                         elif LA52 == IDENTIFIER:
-                            LA52_17 = self.input.LA(3)
+                            LA52_19 = self.input.LA(3)
 
-                            if (self.synpred92()) :
+                            if (self.synpred93()) :
                                 alt52 = 1
 
 
                         elif LA52 == 29 or LA52 == 30 or LA52 == 31 or LA52 == 32 or LA52 == 33:
-                            LA52_19 = self.input.LA(3)
+                            LA52_20 = self.input.LA(3)
 
-                            if (self.synpred92()) :
+                            if (self.synpred93()) :
                                 alt52 = 1
 
 
                         elif LA52 == 34:
-                            LA52_20 = self.input.LA(3)
+                            LA52_21 = self.input.LA(3)
 
-                            if (self.synpred92()) :
+                            if (self.synpred93()) :
                                 alt52 = 1
 
 
                         elif LA52 == 35:
-                            LA52_21 = self.input.LA(3)
+                            LA52_22 = self.input.LA(3)
 
-                            if (self.synpred92()) :
+                            if (self.synpred93()) :
                                 alt52 = 1
 
 
                         elif LA52 == 36:
-                            LA52_22 = self.input.LA(3)
+                            LA52_23 = self.input.LA(3)
 
-                            if (self.synpred92()) :
+                            if (self.synpred93()) :
                                 alt52 = 1
 
 
                         elif LA52 == 37:
-                            LA52_23 = self.input.LA(3)
+                            LA52_24 = self.input.LA(3)
 
-                            if (self.synpred92()) :
+                            if (self.synpred93()) :
                                 alt52 = 1
 
 
                         elif LA52 == 38:
-                            LA52_24 = self.input.LA(3)
+                            LA52_25 = self.input.LA(3)
 
-                            if (self.synpred92()) :
+                            if (self.synpred93()) :
                                 alt52 = 1
 
 
                         elif LA52 == 39:
-                            LA52_25 = self.input.LA(3)
+                            LA52_26 = self.input.LA(3)
 
-                            if (self.synpred92()) :
+                            if (self.synpred93()) :
                                 alt52 = 1
 
 
                         elif LA52 == 40:
-                            LA52_26 = self.input.LA(3)
+                            LA52_27 = self.input.LA(3)
 
-                            if (self.synpred92()) :
+                            if (self.synpred93()) :
                                 alt52 = 1
 
 
                         elif LA52 == 41:
-                            LA52_27 = self.input.LA(3)
+                            LA52_28 = self.input.LA(3)
 
-                            if (self.synpred92()) :
+                            if (self.synpred93()) :
                                 alt52 = 1
 
 
                         elif LA52 == 42:
-                            LA52_28 = self.input.LA(3)
+                            LA52_29 = self.input.LA(3)
 
-                            if (self.synpred92()) :
+                            if (self.synpred93()) :
                                 alt52 = 1
 
 
                         elif LA52 == 43:
-                            LA52_29 = self.input.LA(3)
+                            LA52_30 = self.input.LA(3)
 
-                            if (self.synpred92()) :
+                            if (self.synpred93()) :
                                 alt52 = 1
 
 
                         elif LA52 == 44:
-                            LA52_30 = self.input.LA(3)
+                            LA52_31 = self.input.LA(3)
 
-                            if (self.synpred92()) :
+                            if (self.synpred93()) :
                                 alt52 = 1
 
 
                         elif LA52 == 45:
-                            LA52_31 = self.input.LA(3)
+                            LA52_32 = self.input.LA(3)
 
-                            if (self.synpred92()) :
+                            if (self.synpred93()) :
                                 alt52 = 1
 
 
                         elif LA52 == 46:
-                            LA52_32 = self.input.LA(3)
+                            LA52_33 = self.input.LA(3)
 
-                            if (self.synpred92()) :
+                            if (self.synpred93()) :
                                 alt52 = 1
 
 
                         elif LA52 == 49 or LA52 == 50:
-                            LA52_33 = self.input.LA(3)
+                            LA52_34 = self.input.LA(3)
 
-                            if (self.synpred92()) :
+                            if (self.synpred93()) :
                                 alt52 = 1
 
 
                         elif LA52 == 52:
-                            LA52_34 = self.input.LA(3)
+                            LA52_35 = self.input.LA(3)
 
-                            if (self.synpred92()) :
+                            if (self.synpred93()) :
                                 alt52 = 1
 
 
                         elif LA52 == 53 or LA52 == 54 or LA52 == 55 or LA52 == 56 or LA52 == 57 or LA52 == 58 or LA52 == 59 or LA52 == 60:
-                            LA52_35 = self.input.LA(3)
+                            LA52_36 = self.input.LA(3)
 
-                            if (self.synpred92()) :
+                            if (self.synpred93()) :
                                 alt52 = 1
 
 
@@ -4620,91 +4620,91 @@ class CParser(Parser):
                         if LA52 == 67:
                             LA52_37 = self.input.LA(3)
 
-                            if (self.synpred92()) :
+                            if (self.synpred93()) :
                                 alt52 = 1
 
 
                         elif LA52 == 64:
                             LA52_38 = self.input.LA(3)
 
-                            if (self.synpred92()) :
+                            if (self.synpred93()) :
                                 alt52 = 1
 
 
                         elif LA52 == IDENTIFIER:
                             LA52_39 = self.input.LA(3)
 
-                            if (self.synpred92()) :
+                            if (self.synpred93()) :
                                 alt52 = 1
 
 
                         elif LA52 == HEX_LITERAL:
                             LA52_40 = self.input.LA(3)
 
-                            if (self.synpred92()) :
+                            if (self.synpred93()) :
                                 alt52 = 1
 
 
                         elif LA52 == OCTAL_LITERAL:
                             LA52_41 = self.input.LA(3)
 
-                            if (self.synpred92()) :
+                            if (self.synpred93()) :
                                 alt52 = 1
 
 
                         elif LA52 == DECIMAL_LITERAL:
                             LA52_42 = self.input.LA(3)
 
-                            if (self.synpred92()) :
+                            if (self.synpred93()) :
                                 alt52 = 1
 
 
                         elif LA52 == CHARACTER_LITERAL:
                             LA52_43 = self.input.LA(3)
 
-                            if (self.synpred92()) :
+                            if (self.synpred93()) :
                                 alt52 = 1
 
 
                         elif LA52 == STRING_LITERAL:
                             LA52_44 = self.input.LA(3)
 
-                            if (self.synpred92()) :
+                            if (self.synpred93()) :
                                 alt52 = 1
 
 
                         elif LA52 == FLOATING_POINT_LITERAL:
                             LA52_45 = self.input.LA(3)
 
-                            if (self.synpred92()) :
+                            if (self.synpred93()) :
                                 alt52 = 1
 
 
                         elif LA52 == 74:
                             LA52_46 = self.input.LA(3)
 
-                            if (self.synpred92()) :
+                            if (self.synpred93()) :
                                 alt52 = 1
 
 
                         elif LA52 == 75:
                             LA52_47 = self.input.LA(3)
 
-                            if (self.synpred92()) :
+                            if (self.synpred93()) :
                                 alt52 = 1
 
 
                         elif LA52 == 68 or LA52 == 70 or LA52 == 71 or LA52 == 79 or LA52 == 80 or LA52 == 81:
                             LA52_48 = self.input.LA(3)
 
-                            if (self.synpred92()) :
+                            if (self.synpred93()) :
                                 alt52 = 1
 
 
                         elif LA52 == 76:
                             LA52_49 = self.input.LA(3)
 
-                            if (self.synpred92()) :
+                            if (self.synpred93()) :
                                 alt52 = 1
 
 
@@ -4713,7 +4713,7 @@ class CParser(Parser):
 
                     if alt52 == 1:
                         # C.g:0:0: abstract_declarator_suffix
-                        self.following.append(self.FOLLOW_abstract_declarator_suffix_in_direct_abstract_declarator1081)
+                        self.following.append(self.FOLLOW_abstract_declarator_suffix_in_direct_abstract_declarator1084)
                         self.abstract_declarator_suffix()
                         self.following.pop()
                         if self.failed:
@@ -4799,50 +4799,50 @@ class CParser(Parser):
 
                 if alt53 == 1:
                     # C.g:294:4: '[' ']'
-                    self.match(self.input, 66, self.FOLLOW_66_in_abstract_declarator_suffix1093)
+                    self.match(self.input, 66, self.FOLLOW_66_in_abstract_declarator_suffix1096)
                     if self.failed:
                         return 
-                    self.match(self.input, 67, self.FOLLOW_67_in_abstract_declarator_suffix1095)
+                    self.match(self.input, 67, self.FOLLOW_67_in_abstract_declarator_suffix1098)
                     if self.failed:
                         return 
 
 
                 elif alt53 == 2:
                     # C.g:295:4: '[' constant_expression ']'
-                    self.match(self.input, 66, self.FOLLOW_66_in_abstract_declarator_suffix1100)
+                    self.match(self.input, 66, self.FOLLOW_66_in_abstract_declarator_suffix1103)
                     if self.failed:
                         return 
-                    self.following.append(self.FOLLOW_constant_expression_in_abstract_declarator_suffix1102)
+                    self.following.append(self.FOLLOW_constant_expression_in_abstract_declarator_suffix1105)
                     self.constant_expression()
                     self.following.pop()
                     if self.failed:
                         return 
-                    self.match(self.input, 67, self.FOLLOW_67_in_abstract_declarator_suffix1104)
+                    self.match(self.input, 67, self.FOLLOW_67_in_abstract_declarator_suffix1107)
                     if self.failed:
                         return 
 
 
                 elif alt53 == 3:
                     # C.g:296:4: '(' ')'
-                    self.match(self.input, 64, self.FOLLOW_64_in_abstract_declarator_suffix1109)
+                    self.match(self.input, 64, self.FOLLOW_64_in_abstract_declarator_suffix1112)
                     if self.failed:
                         return 
-                    self.match(self.input, 65, self.FOLLOW_65_in_abstract_declarator_suffix1111)
+                    self.match(self.input, 65, self.FOLLOW_65_in_abstract_declarator_suffix1114)
                     if self.failed:
                         return 
 
 
                 elif alt53 == 4:
                     # C.g:297:4: '(' parameter_type_list ')'
-                    self.match(self.input, 64, self.FOLLOW_64_in_abstract_declarator_suffix1116)
+                    self.match(self.input, 64, self.FOLLOW_64_in_abstract_declarator_suffix1119)
                     if self.failed:
                         return 
-                    self.following.append(self.FOLLOW_parameter_type_list_in_abstract_declarator_suffix1118)
+                    self.following.append(self.FOLLOW_parameter_type_list_in_abstract_declarator_suffix1121)
                     self.parameter_type_list()
                     self.following.pop()
                     if self.failed:
                         return 
-                    self.match(self.input, 65, self.FOLLOW_65_in_abstract_declarator_suffix1120)
+                    self.match(self.input, 65, self.FOLLOW_65_in_abstract_declarator_suffix1123)
                     if self.failed:
                         return 
 
@@ -4891,7 +4891,7 @@ class CParser(Parser):
 
                 if alt55 == 1:
                     # C.g:302:4: assignment_expression
-                    self.following.append(self.FOLLOW_assignment_expression_in_initializer1133)
+                    self.following.append(self.FOLLOW_assignment_expression_in_initializer1136)
                     self.assignment_expression()
                     self.following.pop()
                     if self.failed:
@@ -4900,10 +4900,10 @@ class CParser(Parser):
 
                 elif alt55 == 2:
                     # C.g:303:4: '{' initializer_list ( ',' )? '}'
-                    self.match(self.input, 47, self.FOLLOW_47_in_initializer1138)
+                    self.match(self.input, 47, self.FOLLOW_47_in_initializer1141)
                     if self.failed:
                         return 
-                    self.following.append(self.FOLLOW_initializer_list_in_initializer1140)
+                    self.following.append(self.FOLLOW_initializer_list_in_initializer1143)
                     self.initializer_list()
                     self.following.pop()
                     if self.failed:
@@ -4916,13 +4916,13 @@ class CParser(Parser):
                         alt54 = 1
                     if alt54 == 1:
                         # C.g:0:0: ','
-                        self.match(self.input, 27, self.FOLLOW_27_in_initializer1142)
+                        self.match(self.input, 27, self.FOLLOW_27_in_initializer1145)
                         if self.failed:
                             return 
 
 
 
-                    self.match(self.input, 48, self.FOLLOW_48_in_initializer1145)
+                    self.match(self.input, 48, self.FOLLOW_48_in_initializer1148)
                     if self.failed:
                         return 
 
@@ -4954,7 +4954,7 @@ class CParser(Parser):
 
                 # C.g:307:2: ( initializer ( ',' initializer )* )
                 # C.g:307:4: initializer ( ',' initializer )*
-                self.following.append(self.FOLLOW_initializer_in_initializer_list1156)
+                self.following.append(self.FOLLOW_initializer_in_initializer_list1159)
                 self.initializer()
                 self.following.pop()
                 if self.failed:
@@ -4975,10 +4975,10 @@ class CParser(Parser):
 
                     if alt56 == 1:
                         # C.g:307:17: ',' initializer
-                        self.match(self.input, 27, self.FOLLOW_27_in_initializer_list1159)
+                        self.match(self.input, 27, self.FOLLOW_27_in_initializer_list1162)
                         if self.failed:
                             return 
-                        self.following.append(self.FOLLOW_initializer_in_initializer_list1161)
+                        self.following.append(self.FOLLOW_initializer_in_initializer_list1164)
                         self.initializer()
                         self.following.pop()
                         if self.failed:
@@ -5027,7 +5027,7 @@ class CParser(Parser):
 
                 # C.g:313:2: ( assignment_expression ( ',' assignment_expression )* )
                 # C.g:313:6: assignment_expression ( ',' assignment_expression )*
-                self.following.append(self.FOLLOW_assignment_expression_in_argument_expression_list1179)
+                self.following.append(self.FOLLOW_assignment_expression_in_argument_expression_list1182)
                 self.assignment_expression()
                 self.following.pop()
                 if self.failed:
@@ -5043,10 +5043,10 @@ class CParser(Parser):
 
                     if alt57 == 1:
                         # C.g:313:29: ',' assignment_expression
-                        self.match(self.input, 27, self.FOLLOW_27_in_argument_expression_list1182)
+                        self.match(self.input, 27, self.FOLLOW_27_in_argument_expression_list1185)
                         if self.failed:
                             return retval
-                        self.following.append(self.FOLLOW_assignment_expression_in_argument_expression_list1184)
+                        self.following.append(self.FOLLOW_assignment_expression_in_argument_expression_list1187)
                         self.assignment_expression()
                         self.following.pop()
                         if self.failed:
@@ -5091,7 +5091,7 @@ class CParser(Parser):
                 # C.g:317:4: ( multiplicative_expression ) ( '+' multiplicative_expression | '-' multiplicative_expression )*
                 # C.g:317:4: ( multiplicative_expression )
                 # C.g:317:5: multiplicative_expression
-                self.following.append(self.FOLLOW_multiplicative_expression_in_additive_expression1198)
+                self.following.append(self.FOLLOW_multiplicative_expression_in_additive_expression1201)
                 self.multiplicative_expression()
                 self.following.pop()
                 if self.failed:
@@ -5112,10 +5112,10 @@ class CParser(Parser):
 
                     if alt58 == 1:
                         # C.g:317:33: '+' multiplicative_expression
-                        self.match(self.input, 70, self.FOLLOW_70_in_additive_expression1202)
+                        self.match(self.input, 70, self.FOLLOW_70_in_additive_expression1205)
                         if self.failed:
                             return 
-                        self.following.append(self.FOLLOW_multiplicative_expression_in_additive_expression1204)
+                        self.following.append(self.FOLLOW_multiplicative_expression_in_additive_expression1207)
                         self.multiplicative_expression()
                         self.following.pop()
                         if self.failed:
@@ -5124,10 +5124,10 @@ class CParser(Parser):
 
                     elif alt58 == 2:
                         # C.g:317:65: '-' multiplicative_expression
-                        self.match(self.input, 71, self.FOLLOW_71_in_additive_expression1208)
+                        self.match(self.input, 71, self.FOLLOW_71_in_additive_expression1211)
                         if self.failed:
                             return 
-                        self.following.append(self.FOLLOW_multiplicative_expression_in_additive_expression1210)
+                        self.following.append(self.FOLLOW_multiplicative_expression_in_additive_expression1213)
                         self.multiplicative_expression()
                         self.following.pop()
                         if self.failed:
@@ -5170,7 +5170,7 @@ class CParser(Parser):
                 # C.g:321:4: ( cast_expression ) ( '*' cast_expression | '/' cast_expression | '%' cast_expression )*
                 # C.g:321:4: ( cast_expression )
                 # C.g:321:5: cast_expression
-                self.following.append(self.FOLLOW_cast_expression_in_multiplicative_expression1224)
+                self.following.append(self.FOLLOW_cast_expression_in_multiplicative_expression1227)
                 self.cast_expression()
                 self.following.pop()
                 if self.failed:
@@ -5191,10 +5191,10 @@ class CParser(Parser):
 
                     if alt59 == 1:
                         # C.g:321:23: '*' cast_expression
-                        self.match(self.input, 68, self.FOLLOW_68_in_multiplicative_expression1228)
+                        self.match(self.input, 68, self.FOLLOW_68_in_multiplicative_expression1231)
                         if self.failed:
                             return 
-                        self.following.append(self.FOLLOW_cast_expression_in_multiplicative_expression1230)
+                        self.following.append(self.FOLLOW_cast_expression_in_multiplicative_expression1233)
                         self.cast_expression()
                         self.following.pop()
                         if self.failed:
@@ -5203,10 +5203,10 @@ class CParser(Parser):
 
                     elif alt59 == 2:
                         # C.g:321:45: '/' cast_expression
-                        self.match(self.input, 72, self.FOLLOW_72_in_multiplicative_expression1234)
+                        self.match(self.input, 72, self.FOLLOW_72_in_multiplicative_expression1237)
                         if self.failed:
                             return 
-                        self.following.append(self.FOLLOW_cast_expression_in_multiplicative_expression1236)
+                        self.following.append(self.FOLLOW_cast_expression_in_multiplicative_expression1239)
                         self.cast_expression()
                         self.following.pop()
                         if self.failed:
@@ -5215,10 +5215,10 @@ class CParser(Parser):
 
                     elif alt59 == 3:
                         # C.g:321:67: '%' cast_expression
-                        self.match(self.input, 73, self.FOLLOW_73_in_multiplicative_expression1240)
+                        self.match(self.input, 73, self.FOLLOW_73_in_multiplicative_expression1243)
                         if self.failed:
                             return 
-                        self.following.append(self.FOLLOW_cast_expression_in_multiplicative_expression1242)
+                        self.following.append(self.FOLLOW_cast_expression_in_multiplicative_expression1245)
                         self.cast_expression()
                         self.following.pop()
                         if self.failed:
@@ -5263,12 +5263,10 @@ class CParser(Parser):
 
                 if (LA60_0 == 64) :
                     LA60 = self.input.LA(2)
-                    if LA60 == 34 or LA60 == 35 or LA60 == 36 or LA60 == 37 or LA60 == 38 or LA60 == 39 or LA60 == 40 or LA60 == 41 or LA60 == 42 or LA60 == 43 or LA60 == 44 or LA60 == 45 or LA60 == 46 or LA60 == 49 or LA60 == 50 or LA60 == 52 or LA60 == 53 or LA60 == 54 or LA60 == 55 or LA60 == 56 or LA60 == 57 or LA60 == 58 or LA60 == 59 or LA60 == 60:
-                        alt60 = 1
-                    elif LA60 == IDENTIFIER:
-                        LA60_29 = self.input.LA(3)
+                    if LA60 == IDENTIFIER:
+                        LA60_13 = self.input.LA(3)
 
-                        if (self.synpred105()) :
+                        if (self.synpred106()) :
                             alt60 = 1
                         elif (True) :
                             alt60 = 2
@@ -5277,12 +5275,14 @@ class CParser(Parser):
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("324:1: cast_expression : ( '(' type_name ')' cast_expression | unary_expression );", 60, 29, self.input)
+                            nvae = NoViableAltException("324:1: cast_expression : ( '(' type_name ')' cast_expression | unary_expression );", 60, 13, self.input)
 
                             raise nvae
 
                     elif LA60 == HEX_LITERAL or LA60 == OCTAL_LITERAL or LA60 == DECIMAL_LITERAL or LA60 == CHARACTER_LITERAL or LA60 == STRING_LITERAL or LA60 == FLOATING_POINT_LITERAL or LA60 == 64 or LA60 == 68 or LA60 == 70 or LA60 == 71 or LA60 == 74 or LA60 == 75 or LA60 == 76 or LA60 == 79 or LA60 == 80 or LA60 == 81:
                         alt60 = 2
+                    elif LA60 == 34 or LA60 == 35 or LA60 == 36 or LA60 == 37 or LA60 == 38 or LA60 == 39 or LA60 == 40 or LA60 == 41 or LA60 == 42 or LA60 == 43 or LA60 == 44 or LA60 == 45 or LA60 == 46 or LA60 == 49 or LA60 == 50 or LA60 == 52 or LA60 == 53 or LA60 == 54 or LA60 == 55 or LA60 == 56 or LA60 == 57 or LA60 == 58 or LA60 == 59 or LA60 == 60:
+                        alt60 = 1
                     else:
                         if self.backtracking > 0:
                             self.failed = True
@@ -5305,18 +5305,18 @@ class CParser(Parser):
 
                 if alt60 == 1:
                     # C.g:325:4: '(' type_name ')' cast_expression
-                    self.match(self.input, 64, self.FOLLOW_64_in_cast_expression1255)
+                    self.match(self.input, 64, self.FOLLOW_64_in_cast_expression1258)
                     if self.failed:
                         return 
-                    self.following.append(self.FOLLOW_type_name_in_cast_expression1257)
+                    self.following.append(self.FOLLOW_type_name_in_cast_expression1260)
                     self.type_name()
                     self.following.pop()
                     if self.failed:
                         return 
-                    self.match(self.input, 65, self.FOLLOW_65_in_cast_expression1259)
+                    self.match(self.input, 65, self.FOLLOW_65_in_cast_expression1262)
                     if self.failed:
                         return 
-                    self.following.append(self.FOLLOW_cast_expression_in_cast_expression1261)
+                    self.following.append(self.FOLLOW_cast_expression_in_cast_expression1264)
                     self.cast_expression()
                     self.following.pop()
                     if self.failed:
@@ -5325,7 +5325,7 @@ class CParser(Parser):
 
                 elif alt60 == 2:
                     # C.g:326:4: unary_expression
-                    self.following.append(self.FOLLOW_unary_expression_in_cast_expression1266)
+                    self.following.append(self.FOLLOW_unary_expression_in_cast_expression1269)
                     self.unary_expression()
                     self.following.pop()
                     if self.failed:
@@ -5374,7 +5374,7 @@ class CParser(Parser):
                     if (LA61_12 == 64) :
                         LA61_13 = self.input.LA(3)
 
-                        if (self.synpred110()) :
+                        if (self.synpred111()) :
                             alt61 = 5
                         elif (True) :
                             alt61 = 6
@@ -5409,7 +5409,7 @@ class CParser(Parser):
 
                 if alt61 == 1:
                     # C.g:330:4: postfix_expression
-                    self.following.append(self.FOLLOW_postfix_expression_in_unary_expression1277)
+                    self.following.append(self.FOLLOW_postfix_expression_in_unary_expression1280)
                     self.postfix_expression()
                     self.following.pop()
                     if self.failed:
@@ -5418,10 +5418,10 @@ class CParser(Parser):
 
                 elif alt61 == 2:
                     # C.g:331:4: '++' unary_expression
-                    self.match(self.input, 74, self.FOLLOW_74_in_unary_expression1282)
+                    self.match(self.input, 74, self.FOLLOW_74_in_unary_expression1285)
                     if self.failed:
                         return 
-                    self.following.append(self.FOLLOW_unary_expression_in_unary_expression1284)
+                    self.following.append(self.FOLLOW_unary_expression_in_unary_expression1287)
                     self.unary_expression()
                     self.following.pop()
                     if self.failed:
@@ -5430,10 +5430,10 @@ class CParser(Parser):
 
                 elif alt61 == 3:
                     # C.g:332:4: '--' unary_expression
-                    self.match(self.input, 75, self.FOLLOW_75_in_unary_expression1289)
+                    self.match(self.input, 75, self.FOLLOW_75_in_unary_expression1292)
                     if self.failed:
                         return 
-                    self.following.append(self.FOLLOW_unary_expression_in_unary_expression1291)
+                    self.following.append(self.FOLLOW_unary_expression_in_unary_expression1294)
                     self.unary_expression()
                     self.following.pop()
                     if self.failed:
@@ -5442,12 +5442,12 @@ class CParser(Parser):
 
                 elif alt61 == 4:
                     # C.g:333:4: unary_operator cast_expression
-                    self.following.append(self.FOLLOW_unary_operator_in_unary_expression1296)
+                    self.following.append(self.FOLLOW_unary_operator_in_unary_expression1299)
                     self.unary_operator()
                     self.following.pop()
                     if self.failed:
                         return 
-                    self.following.append(self.FOLLOW_cast_expression_in_unary_expression1298)
+                    self.following.append(self.FOLLOW_cast_expression_in_unary_expression1301)
                     self.cast_expression()
                     self.following.pop()
                     if self.failed:
@@ -5456,10 +5456,10 @@ class CParser(Parser):
 
                 elif alt61 == 5:
                     # C.g:334:4: 'sizeof' unary_expression
-                    self.match(self.input, 76, self.FOLLOW_76_in_unary_expression1303)
+                    self.match(self.input, 76, self.FOLLOW_76_in_unary_expression1306)
                     if self.failed:
                         return 
-                    self.following.append(self.FOLLOW_unary_expression_in_unary_expression1305)
+                    self.following.append(self.FOLLOW_unary_expression_in_unary_expression1308)
                     self.unary_expression()
                     self.following.pop()
                     if self.failed:
@@ -5468,18 +5468,18 @@ class CParser(Parser):
 
                 elif alt61 == 6:
                     # C.g:335:4: 'sizeof' '(' type_name ')'
-                    self.match(self.input, 76, self.FOLLOW_76_in_unary_expression1310)
+                    self.match(self.input, 76, self.FOLLOW_76_in_unary_expression1313)
                     if self.failed:
                         return 
-                    self.match(self.input, 64, self.FOLLOW_64_in_unary_expression1312)
+                    self.match(self.input, 64, self.FOLLOW_64_in_unary_expression1315)
                     if self.failed:
                         return 
-                    self.following.append(self.FOLLOW_type_name_in_unary_expression1314)
+                    self.following.append(self.FOLLOW_type_name_in_unary_expression1317)
                     self.type_name()
                     self.following.pop()
                     if self.failed:
                         return 
-                    self.match(self.input, 65, self.FOLLOW_65_in_unary_expression1316)
+                    self.match(self.input, 65, self.FOLLOW_65_in_unary_expression1319)
                     if self.failed:
                         return 
 
@@ -5518,7 +5518,7 @@ class CParser(Parser):
 
                 # C.g:339:2: (p= primary_expression ( '[' expression ']' | '(' a= ')' | '(' c= argument_expression_list b= ')' | '.' IDENTIFIER | '*' IDENTIFIER | '->' IDENTIFIER | '++' | '--' )* )
                 # C.g:339:6: p= primary_expression ( '[' expression ']' | '(' a= ')' | '(' c= argument_expression_list b= ')' | '.' IDENTIFIER | '*' IDENTIFIER | '->' IDENTIFIER | '++' | '--' )*
-                self.following.append(self.FOLLOW_primary_expression_in_postfix_expression1331)
+                self.following.append(self.FOLLOW_primary_expression_in_postfix_expression1334)
                 p = self.primary_expression()
                 self.following.pop()
                 if self.failed:
@@ -5533,7 +5533,7 @@ class CParser(Parser):
                         if (LA62_1 == IDENTIFIER) :
                             LA62_29 = self.input.LA(3)
 
-                            if (self.synpred115()) :
+                            if (self.synpred116()) :
                                 alt62 = 5
 
 
@@ -5561,26 +5561,26 @@ class CParser(Parser):
 
                     if alt62 == 1:
                         # C.g:340:13: '[' expression ']'
-                        self.match(self.input, 66, self.FOLLOW_66_in_postfix_expression1345)
+                        self.match(self.input, 66, self.FOLLOW_66_in_postfix_expression1348)
                         if self.failed:
                             return 
-                        self.following.append(self.FOLLOW_expression_in_postfix_expression1347)
+                        self.following.append(self.FOLLOW_expression_in_postfix_expression1350)
                         self.expression()
                         self.following.pop()
                         if self.failed:
                             return 
-                        self.match(self.input, 67, self.FOLLOW_67_in_postfix_expression1349)
+                        self.match(self.input, 67, self.FOLLOW_67_in_postfix_expression1352)
                         if self.failed:
                             return 
 
 
                     elif alt62 == 2:
                         # C.g:341:13: '(' a= ')'
-                        self.match(self.input, 64, self.FOLLOW_64_in_postfix_expression1363)
+                        self.match(self.input, 64, self.FOLLOW_64_in_postfix_expression1366)
                         if self.failed:
                             return 
                         a = self.input.LT(1)
-                        self.match(self.input, 65, self.FOLLOW_65_in_postfix_expression1367)
+                        self.match(self.input, 65, self.FOLLOW_65_in_postfix_expression1370)
                         if self.failed:
                             return 
                         if self.backtracking == 0:
@@ -5590,16 +5590,16 @@ class CParser(Parser):
 
                     elif alt62 == 3:
                         # C.g:342:13: '(' c= argument_expression_list b= ')'
-                        self.match(self.input, 64, self.FOLLOW_64_in_postfix_expression1382)
+                        self.match(self.input, 64, self.FOLLOW_64_in_postfix_expression1385)
                         if self.failed:
                             return 
-                        self.following.append(self.FOLLOW_argument_expression_list_in_postfix_expression1386)
+                        self.following.append(self.FOLLOW_argument_expression_list_in_postfix_expression1389)
                         c = self.argument_expression_list()
                         self.following.pop()
                         if self.failed:
                             return 
                         b = self.input.LT(1)
-                        self.match(self.input, 65, self.FOLLOW_65_in_postfix_expression1390)
+                        self.match(self.input, 65, self.FOLLOW_65_in_postfix_expression1393)
                         if self.failed:
                             return 
                         if self.backtracking == 0:
@@ -5609,44 +5609,44 @@ class CParser(Parser):
 
                     elif alt62 == 4:
                         # C.g:343:13: '.' IDENTIFIER
-                        self.match(self.input, 77, self.FOLLOW_77_in_postfix_expression1406)
+                        self.match(self.input, 77, self.FOLLOW_77_in_postfix_expression1409)
                         if self.failed:
                             return 
-                        self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_postfix_expression1408)
+                        self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_postfix_expression1411)
                         if self.failed:
                             return 
 
 
                     elif alt62 == 5:
                         # C.g:344:13: '*' IDENTIFIER
-                        self.match(self.input, 68, self.FOLLOW_68_in_postfix_expression1422)
+                        self.match(self.input, 68, self.FOLLOW_68_in_postfix_expression1425)
                         if self.failed:
                             return 
-                        self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_postfix_expression1424)
+                        self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_postfix_expression1427)
                         if self.failed:
                             return 
 
 
                     elif alt62 == 6:
                         # C.g:345:13: '->' IDENTIFIER
-                        self.match(self.input, 78, self.FOLLOW_78_in_postfix_expression1438)
+                        self.match(self.input, 78, self.FOLLOW_78_in_postfix_expression1441)
                         if self.failed:
                             return 
-                        self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_postfix_expression1440)
+                        self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_postfix_expression1443)
                         if self.failed:
                             return 
 
 
                     elif alt62 == 7:
                         # C.g:346:13: '++'
-                        self.match(self.input, 74, self.FOLLOW_74_in_postfix_expression1454)
+                        self.match(self.input, 74, self.FOLLOW_74_in_postfix_expression1457)
                         if self.failed:
                             return 
 
 
                     elif alt62 == 8:
                         # C.g:347:13: '--'
-                        self.match(self.input, 75, self.FOLLOW_75_in_postfix_expression1468)
+                        self.match(self.input, 75, self.FOLLOW_75_in_postfix_expression1471)
                         if self.failed:
                             return 
 
@@ -5758,14 +5758,14 @@ class CParser(Parser):
 
                 if alt63 == 1:
                     # C.g:361:4: IDENTIFIER
-                    self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_primary_expression1526)
+                    self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_primary_expression1529)
                     if self.failed:
                         return retval
 
 
                 elif alt63 == 2:
                     # C.g:362:4: constant
-                    self.following.append(self.FOLLOW_constant_in_primary_expression1531)
+                    self.following.append(self.FOLLOW_constant_in_primary_expression1534)
                     self.constant()
                     self.following.pop()
                     if self.failed:
@@ -5774,15 +5774,15 @@ class CParser(Parser):
 
                 elif alt63 == 3:
                     # C.g:363:4: '(' expression ')'
-                    self.match(self.input, 64, self.FOLLOW_64_in_primary_expression1536)
+                    self.match(self.input, 64, self.FOLLOW_64_in_primary_expression1539)
                     if self.failed:
                         return retval
-                    self.following.append(self.FOLLOW_expression_in_primary_expression1538)
+                    self.following.append(self.FOLLOW_expression_in_primary_expression1541)
                     self.expression()
                     self.following.pop()
                     if self.failed:
                         return retval
-                    self.match(self.input, 65, self.FOLLOW_65_in_primary_expression1540)
+                    self.match(self.input, 65, self.FOLLOW_65_in_primary_expression1543)
                     if self.failed:
                         return retval
 
@@ -5840,28 +5840,28 @@ class CParser(Parser):
 
                 if alt65 == 1:
                     # C.g:367:9: HEX_LITERAL
-                    self.match(self.input, HEX_LITERAL, self.FOLLOW_HEX_LITERAL_in_constant1556)
+                    self.match(self.input, HEX_LITERAL, self.FOLLOW_HEX_LITERAL_in_constant1559)
                     if self.failed:
                         return 
 
 
                 elif alt65 == 2:
                     # C.g:368:9: OCTAL_LITERAL
-                    self.match(self.input, OCTAL_LITERAL, self.FOLLOW_OCTAL_LITERAL_in_constant1566)
+                    self.match(self.input, OCTAL_LITERAL, self.FOLLOW_OCTAL_LITERAL_in_constant1569)
                     if self.failed:
                         return 
 
 
                 elif alt65 == 3:
                     # C.g:369:9: DECIMAL_LITERAL
-                    self.match(self.input, DECIMAL_LITERAL, self.FOLLOW_DECIMAL_LITERAL_in_constant1576)
+                    self.match(self.input, DECIMAL_LITERAL, self.FOLLOW_DECIMAL_LITERAL_in_constant1579)
                     if self.failed:
                         return 
 
 
                 elif alt65 == 4:
                     # C.g:370:7: CHARACTER_LITERAL
-                    self.match(self.input, CHARACTER_LITERAL, self.FOLLOW_CHARACTER_LITERAL_in_constant1584)
+                    self.match(self.input, CHARACTER_LITERAL, self.FOLLOW_CHARACTER_LITERAL_in_constant1587)
                     if self.failed:
                         return 
 
@@ -5880,7 +5880,7 @@ class CParser(Parser):
 
                         if alt64 == 1:
                             # C.g:0:0: STRING_LITERAL
-                            self.match(self.input, STRING_LITERAL, self.FOLLOW_STRING_LITERAL_in_constant1592)
+                            self.match(self.input, STRING_LITERAL, self.FOLLOW_STRING_LITERAL_in_constant1595)
                             if self.failed:
                                 return 
 
@@ -5903,7 +5903,7 @@ class CParser(Parser):
 
                 elif alt65 == 6:
                     # C.g:372:9: FLOATING_POINT_LITERAL
-                    self.match(self.input, FLOATING_POINT_LITERAL, self.FOLLOW_FLOATING_POINT_LITERAL_in_constant1603)
+                    self.match(self.input, FLOATING_POINT_LITERAL, self.FOLLOW_FLOATING_POINT_LITERAL_in_constant1606)
                     if self.failed:
                         return 
 
@@ -5943,7 +5943,7 @@ class CParser(Parser):
 
                 # C.g:378:2: ( assignment_expression ( ',' assignment_expression )* )
                 # C.g:378:4: assignment_expression ( ',' assignment_expression )*
-                self.following.append(self.FOLLOW_assignment_expression_in_expression1619)
+                self.following.append(self.FOLLOW_assignment_expression_in_expression1622)
                 self.assignment_expression()
                 self.following.pop()
                 if self.failed:
@@ -5959,10 +5959,10 @@ class CParser(Parser):
 
                     if alt66 == 1:
                         # C.g:378:27: ',' assignment_expression
-                        self.match(self.input, 27, self.FOLLOW_27_in_expression1622)
+                        self.match(self.input, 27, self.FOLLOW_27_in_expression1625)
                         if self.failed:
                             return retval
-                        self.following.append(self.FOLLOW_assignment_expression_in_expression1624)
+                        self.following.append(self.FOLLOW_assignment_expression_in_expression1627)
                         self.assignment_expression()
                         self.following.pop()
                         if self.failed:
@@ -6005,7 +6005,7 @@ class CParser(Parser):
 
                 # C.g:382:2: ( conditional_expression )
                 # C.g:382:4: conditional_expression
-                self.following.append(self.FOLLOW_conditional_expression_in_constant_expression1637)
+                self.following.append(self.FOLLOW_conditional_expression_in_constant_expression1640)
                 self.conditional_expression()
                 self.following.pop()
                 if self.failed:
@@ -6046,7 +6046,7 @@ class CParser(Parser):
                     if LA67 == 66:
                         LA67_13 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6062,7 +6062,7 @@ class CParser(Parser):
                     elif LA67 == 64:
                         LA67_14 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6078,7 +6078,7 @@ class CParser(Parser):
                     elif LA67 == 77:
                         LA67_15 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6094,7 +6094,7 @@ class CParser(Parser):
                     elif LA67 == 68:
                         LA67_16 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6110,7 +6110,7 @@ class CParser(Parser):
                     elif LA67 == 78:
                         LA67_17 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6126,7 +6126,7 @@ class CParser(Parser):
                     elif LA67 == 74:
                         LA67_18 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6142,7 +6142,7 @@ class CParser(Parser):
                     elif LA67 == 75:
                         LA67_19 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6173,7 +6173,7 @@ class CParser(Parser):
                     if LA67 == 66:
                         LA67_41 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6189,7 +6189,7 @@ class CParser(Parser):
                     elif LA67 == 64:
                         LA67_42 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6205,7 +6205,7 @@ class CParser(Parser):
                     elif LA67 == 77:
                         LA67_43 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6221,7 +6221,7 @@ class CParser(Parser):
                     elif LA67 == 68:
                         LA67_44 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6237,7 +6237,7 @@ class CParser(Parser):
                     elif LA67 == 78:
                         LA67_45 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6253,7 +6253,7 @@ class CParser(Parser):
                     elif LA67 == 74:
                         LA67_46 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6269,7 +6269,7 @@ class CParser(Parser):
                     elif LA67 == 75:
                         LA67_47 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6282,10 +6282,10 @@ class CParser(Parser):
 
                             raise nvae
 
-                    elif LA67 == EOF or LA67 == 25 or LA67 == 27 or LA67 == 48 or LA67 == 51 or LA67 == 65 or LA67 == 67 or LA67 == 70 or LA67 == 71 or LA67 == 72 or LA67 == 73 or LA67 == 79 or LA67 == 92 or LA67 == 93 or LA67 == 94 or LA67 == 95 or LA67 == 96 or LA67 == 97 or LA67 == 98 or LA67 == 99 or LA67 == 100 or LA67 == 101 or LA67 == 102 or LA67 == 103 or LA67 == 104:
-                        alt67 = 2
                     elif LA67 == 28 or LA67 == 82 or LA67 == 83 or LA67 == 84 or LA67 == 85 or LA67 == 86 or LA67 == 87 or LA67 == 88 or LA67 == 89 or LA67 == 90 or LA67 == 91:
                         alt67 = 1
+                    elif LA67 == EOF or LA67 == 25 or LA67 == 27 or LA67 == 48 or LA67 == 51 or LA67 == 65 or LA67 == 67 or LA67 == 70 or LA67 == 71 or LA67 == 72 or LA67 == 73 or LA67 == 79 or LA67 == 92 or LA67 == 93 or LA67 == 94 or LA67 == 95 or LA67 == 96 or LA67 == 97 or LA67 == 98 or LA67 == 99 or LA67 == 100 or LA67 == 101 or LA67 == 102 or LA67 == 103 or LA67 == 104:
+                        alt67 = 2
                     else:
                         if self.backtracking > 0:
                             self.failed = True
@@ -6300,7 +6300,7 @@ class CParser(Parser):
                     if LA67 == 66:
                         LA67_69 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6316,7 +6316,7 @@ class CParser(Parser):
                     elif LA67 == 64:
                         LA67_70 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6332,7 +6332,7 @@ class CParser(Parser):
                     elif LA67 == 77:
                         LA67_71 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6348,7 +6348,7 @@ class CParser(Parser):
                     elif LA67 == 68:
                         LA67_72 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6364,7 +6364,7 @@ class CParser(Parser):
                     elif LA67 == 78:
                         LA67_73 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6380,7 +6380,7 @@ class CParser(Parser):
                     elif LA67 == 74:
                         LA67_74 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6396,7 +6396,7 @@ class CParser(Parser):
                     elif LA67 == 75:
                         LA67_75 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6427,7 +6427,7 @@ class CParser(Parser):
                     if LA67 == 66:
                         LA67_97 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6443,7 +6443,7 @@ class CParser(Parser):
                     elif LA67 == 64:
                         LA67_98 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6459,7 +6459,7 @@ class CParser(Parser):
                     elif LA67 == 77:
                         LA67_99 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6475,7 +6475,7 @@ class CParser(Parser):
                     elif LA67 == 68:
                         LA67_100 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6491,7 +6491,7 @@ class CParser(Parser):
                     elif LA67 == 78:
                         LA67_101 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6507,7 +6507,7 @@ class CParser(Parser):
                     elif LA67 == 74:
                         LA67_102 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6523,7 +6523,7 @@ class CParser(Parser):
                     elif LA67 == 75:
                         LA67_103 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6554,7 +6554,7 @@ class CParser(Parser):
                     if LA67 == 66:
                         LA67_125 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6570,7 +6570,7 @@ class CParser(Parser):
                     elif LA67 == 64:
                         LA67_126 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6586,7 +6586,7 @@ class CParser(Parser):
                     elif LA67 == 77:
                         LA67_127 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6602,7 +6602,7 @@ class CParser(Parser):
                     elif LA67 == 68:
                         LA67_128 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6618,7 +6618,7 @@ class CParser(Parser):
                     elif LA67 == 78:
                         LA67_129 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6634,7 +6634,7 @@ class CParser(Parser):
                     elif LA67 == 74:
                         LA67_130 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6650,7 +6650,7 @@ class CParser(Parser):
                     elif LA67 == 75:
                         LA67_131 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6663,10 +6663,10 @@ class CParser(Parser):
 
                             raise nvae
 
-                    elif LA67 == 28 or LA67 == 82 or LA67 == 83 or LA67 == 84 or LA67 == 85 or LA67 == 86 or LA67 == 87 or LA67 == 88 or LA67 == 89 or LA67 == 90 or LA67 == 91:
-                        alt67 = 1
                     elif LA67 == EOF or LA67 == 25 or LA67 == 27 or LA67 == 48 or LA67 == 51 or LA67 == 65 or LA67 == 67 or LA67 == 70 or LA67 == 71 or LA67 == 72 or LA67 == 73 or LA67 == 79 or LA67 == 92 or LA67 == 93 or LA67 == 94 or LA67 == 95 or LA67 == 96 or LA67 == 97 or LA67 == 98 or LA67 == 99 or LA67 == 100 or LA67 == 101 or LA67 == 102 or LA67 == 103 or LA67 == 104:
                         alt67 = 2
+                    elif LA67 == 28 or LA67 == 82 or LA67 == 83 or LA67 == 84 or LA67 == 85 or LA67 == 86 or LA67 == 87 or LA67 == 88 or LA67 == 89 or LA67 == 90 or LA67 == 91:
+                        alt67 = 1
                     else:
                         if self.backtracking > 0:
                             self.failed = True
@@ -6681,7 +6681,7 @@ class CParser(Parser):
                     if LA67 == 66:
                         LA67_153 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6697,7 +6697,7 @@ class CParser(Parser):
                     elif LA67 == 64:
                         LA67_154 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6713,7 +6713,7 @@ class CParser(Parser):
                     elif LA67 == 77:
                         LA67_155 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6729,7 +6729,7 @@ class CParser(Parser):
                     elif LA67 == 68:
                         LA67_156 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6745,7 +6745,7 @@ class CParser(Parser):
                     elif LA67 == 78:
                         LA67_157 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6761,7 +6761,7 @@ class CParser(Parser):
                     elif LA67 == 74:
                         LA67_158 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6777,7 +6777,7 @@ class CParser(Parser):
                     elif LA67 == 75:
                         LA67_159 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6795,7 +6795,7 @@ class CParser(Parser):
                     elif LA67 == STRING_LITERAL:
                         LA67_161 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6824,7 +6824,7 @@ class CParser(Parser):
                     if LA67 == 66:
                         LA67_182 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6840,7 +6840,7 @@ class CParser(Parser):
                     elif LA67 == 64:
                         LA67_183 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6856,7 +6856,7 @@ class CParser(Parser):
                     elif LA67 == 77:
                         LA67_184 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6872,7 +6872,7 @@ class CParser(Parser):
                     elif LA67 == 68:
                         LA67_185 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6888,7 +6888,7 @@ class CParser(Parser):
                     elif LA67 == 78:
                         LA67_186 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6904,7 +6904,7 @@ class CParser(Parser):
                     elif LA67 == 74:
                         LA67_187 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6920,7 +6920,7 @@ class CParser(Parser):
                     elif LA67 == 75:
                         LA67_188 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6933,10 +6933,10 @@ class CParser(Parser):
 
                             raise nvae
 
-                    elif LA67 == EOF or LA67 == 25 or LA67 == 27 or LA67 == 48 or LA67 == 51 or LA67 == 65 or LA67 == 67 or LA67 == 70 or LA67 == 71 or LA67 == 72 or LA67 == 73 or LA67 == 79 or LA67 == 92 or LA67 == 93 or LA67 == 94 or LA67 == 95 or LA67 == 96 or LA67 == 97 or LA67 == 98 or LA67 == 99 or LA67 == 100 or LA67 == 101 or LA67 == 102 or LA67 == 103 or LA67 == 104:
-                        alt67 = 2
                     elif LA67 == 28 or LA67 == 82 or LA67 == 83 or LA67 == 84 or LA67 == 85 or LA67 == 86 or LA67 == 87 or LA67 == 88 or LA67 == 89 or LA67 == 90 or LA67 == 91:
                         alt67 = 1
+                    elif LA67 == EOF or LA67 == 25 or LA67 == 27 or LA67 == 48 or LA67 == 51 or LA67 == 65 or LA67 == 67 or LA67 == 70 or LA67 == 71 or LA67 == 72 or LA67 == 73 or LA67 == 79 or LA67 == 92 or LA67 == 93 or LA67 == 94 or LA67 == 95 or LA67 == 96 or LA67 == 97 or LA67 == 98 or LA67 == 99 or LA67 == 100 or LA67 == 101 or LA67 == 102 or LA67 == 103 or LA67 == 104:
+                        alt67 = 2
                     else:
                         if self.backtracking > 0:
                             self.failed = True
@@ -6948,10 +6948,12 @@ class CParser(Parser):
 
                 elif LA67 == 64:
                     LA67 = self.input.LA(2)
-                    if LA67 == IDENTIFIER:
-                        LA67_210 = self.input.LA(3)
+                    if LA67 == 34 or LA67 == 35 or LA67 == 36 or LA67 == 37 or LA67 == 38 or LA67 == 39 or LA67 == 40 or LA67 == 41 or LA67 == 42 or LA67 == 43 or LA67 == 44 or LA67 == 45 or LA67 == 46 or LA67 == 49 or LA67 == 50 or LA67 == 52 or LA67 == 53 or LA67 == 54 or LA67 == 55 or LA67 == 56 or LA67 == 57 or LA67 == 58 or LA67 == 59 or LA67 == 60:
+                        alt67 = 2
+                    elif LA67 == IDENTIFIER:
+                        LA67_226 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6960,14 +6962,14 @@ class CParser(Parser):
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("385:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 67, 210, self.input)
+                            nvae = NoViableAltException("385:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 67, 226, self.input)
 
                             raise nvae
 
                     elif LA67 == HEX_LITERAL:
-                        LA67_211 = self.input.LA(3)
+                        LA67_227 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6976,14 +6978,14 @@ class CParser(Parser):
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("385:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 67, 211, self.input)
+                            nvae = NoViableAltException("385:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 67, 227, self.input)
 
                             raise nvae
 
                     elif LA67 == OCTAL_LITERAL:
-                        LA67_212 = self.input.LA(3)
+                        LA67_228 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -6992,14 +6994,14 @@ class CParser(Parser):
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("385:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 67, 212, self.input)
+                            nvae = NoViableAltException("385:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 67, 228, self.input)
 
                             raise nvae
 
                     elif LA67 == DECIMAL_LITERAL:
-                        LA67_213 = self.input.LA(3)
+                        LA67_229 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7008,14 +7010,14 @@ class CParser(Parser):
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("385:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 67, 213, self.input)
+                            nvae = NoViableAltException("385:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 67, 229, self.input)
 
                             raise nvae
 
                     elif LA67 == CHARACTER_LITERAL:
-                        LA67_214 = self.input.LA(3)
+                        LA67_230 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7024,14 +7026,14 @@ class CParser(Parser):
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("385:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 67, 214, self.input)
+                            nvae = NoViableAltException("385:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 67, 230, self.input)
 
                             raise nvae
 
                     elif LA67 == STRING_LITERAL:
-                        LA67_215 = self.input.LA(3)
+                        LA67_231 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7040,14 +7042,14 @@ class CParser(Parser):
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("385:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 67, 215, self.input)
+                            nvae = NoViableAltException("385:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 67, 231, self.input)
 
                             raise nvae
 
                     elif LA67 == FLOATING_POINT_LITERAL:
-                        LA67_216 = self.input.LA(3)
+                        LA67_232 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7056,14 +7058,14 @@ class CParser(Parser):
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("385:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 67, 216, self.input)
+                            nvae = NoViableAltException("385:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 67, 232, self.input)
 
                             raise nvae
 
                     elif LA67 == 64:
-                        LA67_217 = self.input.LA(3)
+                        LA67_233 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7072,14 +7074,14 @@ class CParser(Parser):
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("385:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 67, 217, self.input)
+                            nvae = NoViableAltException("385:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 67, 233, self.input)
 
                             raise nvae
 
                     elif LA67 == 74:
-                        LA67_218 = self.input.LA(3)
+                        LA67_234 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7088,14 +7090,14 @@ class CParser(Parser):
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("385:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 67, 218, self.input)
+                            nvae = NoViableAltException("385:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 67, 234, self.input)
 
                             raise nvae
 
                     elif LA67 == 75:
-                        LA67_219 = self.input.LA(3)
+                        LA67_235 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7104,14 +7106,14 @@ class CParser(Parser):
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("385:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 67, 219, self.input)
+                            nvae = NoViableAltException("385:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 67, 235, self.input)
 
                             raise nvae
 
                     elif LA67 == 68 or LA67 == 70 or LA67 == 71 or LA67 == 79 or LA67 == 80 or LA67 == 81:
-                        LA67_220 = self.input.LA(3)
+                        LA67_236 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7120,14 +7122,14 @@ class CParser(Parser):
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("385:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 67, 220, self.input)
+                            nvae = NoViableAltException("385:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 67, 236, self.input)
 
                             raise nvae
 
                     elif LA67 == 76:
-                        LA67_221 = self.input.LA(3)
+                        LA67_237 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7136,12 +7138,10 @@ class CParser(Parser):
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("385:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 67, 221, self.input)
+                            nvae = NoViableAltException("385:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 67, 237, self.input)
 
                             raise nvae
 
-                    elif LA67 == 34 or LA67 == 35 or LA67 == 36 or LA67 == 37 or LA67 == 38 or LA67 == 39 or LA67 == 40 or LA67 == 41 or LA67 == 42 or LA67 == 43 or LA67 == 44 or LA67 == 45 or LA67 == 46 or LA67 == 49 or LA67 == 50 or LA67 == 52 or LA67 == 53 or LA67 == 54 or LA67 == 55 or LA67 == 56 or LA67 == 57 or LA67 == 58 or LA67 == 59 or LA67 == 60:
-                        alt67 = 2
                     else:
                         if self.backtracking > 0:
                             self.failed = True
@@ -7156,7 +7156,7 @@ class CParser(Parser):
                     if LA67 == IDENTIFIER:
                         LA67_238 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7172,7 +7172,7 @@ class CParser(Parser):
                     elif LA67 == HEX_LITERAL:
                         LA67_239 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7188,7 +7188,7 @@ class CParser(Parser):
                     elif LA67 == OCTAL_LITERAL:
                         LA67_240 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7204,7 +7204,7 @@ class CParser(Parser):
                     elif LA67 == DECIMAL_LITERAL:
                         LA67_241 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7220,7 +7220,7 @@ class CParser(Parser):
                     elif LA67 == CHARACTER_LITERAL:
                         LA67_242 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7236,7 +7236,7 @@ class CParser(Parser):
                     elif LA67 == STRING_LITERAL:
                         LA67_243 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7252,7 +7252,7 @@ class CParser(Parser):
                     elif LA67 == FLOATING_POINT_LITERAL:
                         LA67_244 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7268,7 +7268,7 @@ class CParser(Parser):
                     elif LA67 == 64:
                         LA67_245 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7284,7 +7284,7 @@ class CParser(Parser):
                     elif LA67 == 74:
                         LA67_246 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7300,7 +7300,7 @@ class CParser(Parser):
                     elif LA67 == 75:
                         LA67_247 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7316,7 +7316,7 @@ class CParser(Parser):
                     elif LA67 == 68 or LA67 == 70 or LA67 == 71 or LA67 == 79 or LA67 == 80 or LA67 == 81:
                         LA67_248 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7332,7 +7332,7 @@ class CParser(Parser):
                     elif LA67 == 76:
                         LA67_249 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7359,7 +7359,7 @@ class CParser(Parser):
                     if LA67 == IDENTIFIER:
                         LA67_250 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7375,7 +7375,7 @@ class CParser(Parser):
                     elif LA67 == HEX_LITERAL:
                         LA67_251 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7391,7 +7391,7 @@ class CParser(Parser):
                     elif LA67 == OCTAL_LITERAL:
                         LA67_252 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7407,7 +7407,7 @@ class CParser(Parser):
                     elif LA67 == DECIMAL_LITERAL:
                         LA67_253 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7423,7 +7423,7 @@ class CParser(Parser):
                     elif LA67 == CHARACTER_LITERAL:
                         LA67_254 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7439,7 +7439,7 @@ class CParser(Parser):
                     elif LA67 == STRING_LITERAL:
                         LA67_255 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7455,7 +7455,7 @@ class CParser(Parser):
                     elif LA67 == FLOATING_POINT_LITERAL:
                         LA67_256 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7471,7 +7471,7 @@ class CParser(Parser):
                     elif LA67 == 64:
                         LA67_257 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7487,7 +7487,7 @@ class CParser(Parser):
                     elif LA67 == 74:
                         LA67_258 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7503,7 +7503,7 @@ class CParser(Parser):
                     elif LA67 == 75:
                         LA67_259 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7519,7 +7519,7 @@ class CParser(Parser):
                     elif LA67 == 68 or LA67 == 70 or LA67 == 71 or LA67 == 79 or LA67 == 80 or LA67 == 81:
                         LA67_260 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7535,7 +7535,7 @@ class CParser(Parser):
                     elif LA67 == 76:
                         LA67_261 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7562,7 +7562,7 @@ class CParser(Parser):
                     if LA67 == 64:
                         LA67_262 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7578,7 +7578,7 @@ class CParser(Parser):
                     elif LA67 == IDENTIFIER:
                         LA67_263 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7594,7 +7594,7 @@ class CParser(Parser):
                     elif LA67 == HEX_LITERAL:
                         LA67_264 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7610,7 +7610,7 @@ class CParser(Parser):
                     elif LA67 == OCTAL_LITERAL:
                         LA67_265 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7626,7 +7626,7 @@ class CParser(Parser):
                     elif LA67 == DECIMAL_LITERAL:
                         LA67_266 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7642,7 +7642,7 @@ class CParser(Parser):
                     elif LA67 == CHARACTER_LITERAL:
                         LA67_267 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7658,7 +7658,7 @@ class CParser(Parser):
                     elif LA67 == STRING_LITERAL:
                         LA67_268 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7674,7 +7674,7 @@ class CParser(Parser):
                     elif LA67 == FLOATING_POINT_LITERAL:
                         LA67_269 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7690,7 +7690,7 @@ class CParser(Parser):
                     elif LA67 == 74:
                         LA67_270 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7706,7 +7706,7 @@ class CParser(Parser):
                     elif LA67 == 75:
                         LA67_271 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7722,7 +7722,7 @@ class CParser(Parser):
                     elif LA67 == 68 or LA67 == 70 or LA67 == 71 or LA67 == 79 or LA67 == 80 or LA67 == 81:
                         LA67_272 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7738,7 +7738,7 @@ class CParser(Parser):
                     elif LA67 == 76:
                         LA67_273 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7765,7 +7765,7 @@ class CParser(Parser):
                     if LA67 == 64:
                         LA67_274 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7781,7 +7781,7 @@ class CParser(Parser):
                     elif LA67 == IDENTIFIER:
                         LA67_275 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7797,7 +7797,7 @@ class CParser(Parser):
                     elif LA67 == HEX_LITERAL:
                         LA67_276 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7813,7 +7813,7 @@ class CParser(Parser):
                     elif LA67 == OCTAL_LITERAL:
                         LA67_277 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7829,7 +7829,7 @@ class CParser(Parser):
                     elif LA67 == DECIMAL_LITERAL:
                         LA67_278 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7845,7 +7845,7 @@ class CParser(Parser):
                     elif LA67 == CHARACTER_LITERAL:
                         LA67_279 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7861,7 +7861,7 @@ class CParser(Parser):
                     elif LA67 == STRING_LITERAL:
                         LA67_280 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7877,7 +7877,7 @@ class CParser(Parser):
                     elif LA67 == FLOATING_POINT_LITERAL:
                         LA67_281 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7893,7 +7893,7 @@ class CParser(Parser):
                     elif LA67 == 74:
                         LA67_282 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7909,7 +7909,7 @@ class CParser(Parser):
                     elif LA67 == 75:
                         LA67_283 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7925,7 +7925,7 @@ class CParser(Parser):
                     elif LA67 == 68 or LA67 == 70 or LA67 == 71 or LA67 == 79 or LA67 == 80 or LA67 == 81:
                         LA67_284 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7941,7 +7941,7 @@ class CParser(Parser):
                     elif LA67 == 76:
                         LA67_285 = self.input.LA(3)
 
-                        if (self.synpred133()) :
+                        if (self.synpred134()) :
                             alt67 = 1
                         elif (True) :
                             alt67 = 2
@@ -7974,17 +7974,17 @@ class CParser(Parser):
 
                 if alt67 == 1:
                     # C.g:386:4: lvalue assignment_operator assignment_expression
-                    self.following.append(self.FOLLOW_lvalue_in_assignment_expression1648)
+                    self.following.append(self.FOLLOW_lvalue_in_assignment_expression1651)
                     self.lvalue()
                     self.following.pop()
                     if self.failed:
                         return 
-                    self.following.append(self.FOLLOW_assignment_operator_in_assignment_expression1650)
+                    self.following.append(self.FOLLOW_assignment_operator_in_assignment_expression1653)
                     self.assignment_operator()
                     self.following.pop()
                     if self.failed:
                         return 
-                    self.following.append(self.FOLLOW_assignment_expression_in_assignment_expression1652)
+                    self.following.append(self.FOLLOW_assignment_expression_in_assignment_expression1655)
                     self.assignment_expression()
                     self.following.pop()
                     if self.failed:
@@ -7993,7 +7993,7 @@ class CParser(Parser):
 
                 elif alt67 == 2:
                     # C.g:387:4: conditional_expression
-                    self.following.append(self.FOLLOW_conditional_expression_in_assignment_expression1657)
+                    self.following.append(self.FOLLOW_conditional_expression_in_assignment_expression1660)
                     self.conditional_expression()
                     self.following.pop()
                     if self.failed:
@@ -8027,7 +8027,7 @@ class CParser(Parser):
 
                 # C.g:391:2: ( unary_expression )
                 # C.g:391:4: unary_expression
-                self.following.append(self.FOLLOW_unary_expression_in_lvalue1669)
+                self.following.append(self.FOLLOW_unary_expression_in_lvalue1672)
                 self.unary_expression()
                 self.following.pop()
                 if self.failed:
@@ -8112,7 +8112,7 @@ class CParser(Parser):
 
                 # C.g:409:2: (e= logical_or_expression ( '?' expression ':' conditional_expression )? )
                 # C.g:409:4: e= logical_or_expression ( '?' expression ':' conditional_expression )?
-                self.following.append(self.FOLLOW_logical_or_expression_in_conditional_expression1743)
+                self.following.append(self.FOLLOW_logical_or_expression_in_conditional_expression1746)
                 e = self.logical_or_expression()
                 self.following.pop()
                 if self.failed:
@@ -8125,18 +8125,18 @@ class CParser(Parser):
                     alt68 = 1
                 if alt68 == 1:
                     # C.g:409:29: '?' expression ':' conditional_expression
-                    self.match(self.input, 92, self.FOLLOW_92_in_conditional_expression1746)
+                    self.match(self.input, 92, self.FOLLOW_92_in_conditional_expression1749)
                     if self.failed:
                         return 
-                    self.following.append(self.FOLLOW_expression_in_conditional_expression1748)
+                    self.following.append(self.FOLLOW_expression_in_conditional_expression1751)
                     self.expression()
                     self.following.pop()
                     if self.failed:
                         return 
-                    self.match(self.input, 51, self.FOLLOW_51_in_conditional_expression1750)
+                    self.match(self.input, 51, self.FOLLOW_51_in_conditional_expression1753)
                     if self.failed:
                         return 
-                    self.following.append(self.FOLLOW_conditional_expression_in_conditional_expression1752)
+                    self.following.append(self.FOLLOW_conditional_expression_in_conditional_expression1755)
                     self.conditional_expression()
                     self.following.pop()
                     if self.failed:
@@ -8185,7 +8185,7 @@ class CParser(Parser):
 
                 # C.g:413:2: ( logical_and_expression ( '||' logical_and_expression )* )
                 # C.g:413:4: logical_and_expression ( '||' logical_and_expression )*
-                self.following.append(self.FOLLOW_logical_and_expression_in_logical_or_expression1767)
+                self.following.append(self.FOLLOW_logical_and_expression_in_logical_or_expression1770)
                 self.logical_and_expression()
                 self.following.pop()
                 if self.failed:
@@ -8201,10 +8201,10 @@ class CParser(Parser):
 
                     if alt69 == 1:
                         # C.g:413:28: '||' logical_and_expression
-                        self.match(self.input, 93, self.FOLLOW_93_in_logical_or_expression1770)
+                        self.match(self.input, 93, self.FOLLOW_93_in_logical_or_expression1773)
                         if self.failed:
                             return retval
-                        self.following.append(self.FOLLOW_logical_and_expression_in_logical_or_expression1772)
+                        self.following.append(self.FOLLOW_logical_and_expression_in_logical_or_expression1775)
                         self.logical_and_expression()
                         self.following.pop()
                         if self.failed:
@@ -8247,7 +8247,7 @@ class CParser(Parser):
 
                 # C.g:417:2: ( inclusive_or_expression ( '&&' inclusive_or_expression )* )
                 # C.g:417:4: inclusive_or_expression ( '&&' inclusive_or_expression )*
-                self.following.append(self.FOLLOW_inclusive_or_expression_in_logical_and_expression1785)
+                self.following.append(self.FOLLOW_inclusive_or_expression_in_logical_and_expression1788)
                 self.inclusive_or_expression()
                 self.following.pop()
                 if self.failed:
@@ -8263,10 +8263,10 @@ class CParser(Parser):
 
                     if alt70 == 1:
                         # C.g:417:29: '&&' inclusive_or_expression
-                        self.match(self.input, 94, self.FOLLOW_94_in_logical_and_expression1788)
+                        self.match(self.input, 94, self.FOLLOW_94_in_logical_and_expression1791)
                         if self.failed:
                             return 
-                        self.following.append(self.FOLLOW_inclusive_or_expression_in_logical_and_expression1790)
+                        self.following.append(self.FOLLOW_inclusive_or_expression_in_logical_and_expression1793)
                         self.inclusive_or_expression()
                         self.following.pop()
                         if self.failed:
@@ -8307,7 +8307,7 @@ class CParser(Parser):
 
                 # C.g:421:2: ( exclusive_or_expression ( '|' exclusive_or_expression )* )
                 # C.g:421:4: exclusive_or_expression ( '|' exclusive_or_expression )*
-                self.following.append(self.FOLLOW_exclusive_or_expression_in_inclusive_or_expression1803)
+                self.following.append(self.FOLLOW_exclusive_or_expression_in_inclusive_or_expression1806)
                 self.exclusive_or_expression()
                 self.following.pop()
                 if self.failed:
@@ -8323,10 +8323,10 @@ class CParser(Parser):
 
                     if alt71 == 1:
                         # C.g:421:29: '|' exclusive_or_expression
-                        self.match(self.input, 95, self.FOLLOW_95_in_inclusive_or_expression1806)
+                        self.match(self.input, 95, self.FOLLOW_95_in_inclusive_or_expression1809)
                         if self.failed:
                             return 
-                        self.following.append(self.FOLLOW_exclusive_or_expression_in_inclusive_or_expression1808)
+                        self.following.append(self.FOLLOW_exclusive_or_expression_in_inclusive_or_expression1811)
                         self.exclusive_or_expression()
                         self.following.pop()
                         if self.failed:
@@ -8367,7 +8367,7 @@ class CParser(Parser):
 
                 # C.g:425:2: ( and_expression ( '^' and_expression )* )
                 # C.g:425:4: and_expression ( '^' and_expression )*
-                self.following.append(self.FOLLOW_and_expression_in_exclusive_or_expression1821)
+                self.following.append(self.FOLLOW_and_expression_in_exclusive_or_expression1824)
                 self.and_expression()
                 self.following.pop()
                 if self.failed:
@@ -8383,10 +8383,10 @@ class CParser(Parser):
 
                     if alt72 == 1:
                         # C.g:425:20: '^' and_expression
-                        self.match(self.input, 96, self.FOLLOW_96_in_exclusive_or_expression1824)
+                        self.match(self.input, 96, self.FOLLOW_96_in_exclusive_or_expression1827)
                         if self.failed:
                             return 
-                        self.following.append(self.FOLLOW_and_expression_in_exclusive_or_expression1826)
+                        self.following.append(self.FOLLOW_and_expression_in_exclusive_or_expression1829)
                         self.and_expression()
                         self.following.pop()
                         if self.failed:
@@ -8427,7 +8427,7 @@ class CParser(Parser):
 
                 # C.g:429:2: ( equality_expression ( '&' equality_expression )* )
                 # C.g:429:4: equality_expression ( '&' equality_expression )*
-                self.following.append(self.FOLLOW_equality_expression_in_and_expression1839)
+                self.following.append(self.FOLLOW_equality_expression_in_and_expression1842)
                 self.equality_expression()
                 self.following.pop()
                 if self.failed:
@@ -8443,10 +8443,10 @@ class CParser(Parser):
 
                     if alt73 == 1:
                         # C.g:429:25: '&' equality_expression
-                        self.match(self.input, 79, self.FOLLOW_79_in_and_expression1842)
+                        self.match(self.input, 79, self.FOLLOW_79_in_and_expression1845)
                         if self.failed:
                             return 
-                        self.following.append(self.FOLLOW_equality_expression_in_and_expression1844)
+                        self.following.append(self.FOLLOW_equality_expression_in_and_expression1847)
                         self.equality_expression()
                         self.following.pop()
                         if self.failed:
@@ -8487,7 +8487,7 @@ class CParser(Parser):
 
                 # C.g:432:2: ( relational_expression ( ( '==' | '!=' ) relational_expression )* )
                 # C.g:432:4: relational_expression ( ( '==' | '!=' ) relational_expression )*
-                self.following.append(self.FOLLOW_relational_expression_in_equality_expression1856)
+                self.following.append(self.FOLLOW_relational_expression_in_equality_expression1859)
                 self.relational_expression()
                 self.following.pop()
                 if self.failed:
@@ -8515,12 +8515,12 @@ class CParser(Parser):
 
                             mse = MismatchedSetException(None, self.input)
                             self.recoverFromMismatchedSet(
-                                self.input, mse, self.FOLLOW_set_in_equality_expression1859
+                                self.input, mse, self.FOLLOW_set_in_equality_expression1862
                                 )
                             raise mse
 
 
-                        self.following.append(self.FOLLOW_relational_expression_in_equality_expression1865)
+                        self.following.append(self.FOLLOW_relational_expression_in_equality_expression1868)
                         self.relational_expression()
                         self.following.pop()
                         if self.failed:
@@ -8561,7 +8561,7 @@ class CParser(Parser):
 
                 # C.g:436:2: ( shift_expression ( ( '<' | '>' | '<=' | '>=' ) shift_expression )* )
                 # C.g:436:4: shift_expression ( ( '<' | '>' | '<=' | '>=' ) shift_expression )*
-                self.following.append(self.FOLLOW_shift_expression_in_relational_expression1879)
+                self.following.append(self.FOLLOW_shift_expression_in_relational_expression1882)
                 self.shift_expression()
                 self.following.pop()
                 if self.failed:
@@ -8589,12 +8589,12 @@ class CParser(Parser):
 
                             mse = MismatchedSetException(None, self.input)
                             self.recoverFromMismatchedSet(
-                                self.input, mse, self.FOLLOW_set_in_relational_expression1882
+                                self.input, mse, self.FOLLOW_set_in_relational_expression1885
                                 )
                             raise mse
 
 
-                        self.following.append(self.FOLLOW_shift_expression_in_relational_expression1892)
+                        self.following.append(self.FOLLOW_shift_expression_in_relational_expression1895)
                         self.shift_expression()
                         self.following.pop()
                         if self.failed:
@@ -8635,7 +8635,7 @@ class CParser(Parser):
 
                 # C.g:440:2: ( additive_expression ( ( '<<' | '>>' ) additive_expression )* )
                 # C.g:440:4: additive_expression ( ( '<<' | '>>' ) additive_expression )*
-                self.following.append(self.FOLLOW_additive_expression_in_shift_expression1905)
+                self.following.append(self.FOLLOW_additive_expression_in_shift_expression1908)
                 self.additive_expression()
                 self.following.pop()
                 if self.failed:
@@ -8663,12 +8663,12 @@ class CParser(Parser):
 
                             mse = MismatchedSetException(None, self.input)
                             self.recoverFromMismatchedSet(
-                                self.input, mse, self.FOLLOW_set_in_shift_expression1908
+                                self.input, mse, self.FOLLOW_set_in_shift_expression1911
                                 )
                             raise mse
 
 
-                        self.following.append(self.FOLLOW_additive_expression_in_shift_expression1914)
+                        self.following.append(self.FOLLOW_additive_expression_in_shift_expression1917)
                         self.additive_expression()
                         self.following.pop()
                         if self.failed:
@@ -8715,9 +8715,9 @@ class CParser(Parser):
                     if LA77 == 64:
                         LA77_44 = self.input.LA(3)
 
-                        if (self.synpred160()) :
+                        if (self.synpred161()) :
                             alt77 = 3
-                        elif (self.synpred164()) :
+                        elif (self.synpred165()) :
                             alt77 = 7
                         elif (True) :
                             alt77 = 8
@@ -8737,7 +8737,7 @@ class CParser(Parser):
                     elif LA77 == 68:
                         LA77_48 = self.input.LA(3)
 
-                        if (self.synpred160()) :
+                        if (self.synpred161()) :
                             alt77 = 3
                         elif (True) :
                             alt77 = 8
@@ -8750,10 +8750,12 @@ class CParser(Parser):
 
                             raise nvae
 
+                    elif LA77 == IDENTIFIER or LA77 == 29 or LA77 == 30 or LA77 == 31 or LA77 == 32 or LA77 == 33 or LA77 == 34 or LA77 == 35 or LA77 == 36 or LA77 == 37 or LA77 == 38 or LA77 == 39 or LA77 == 40 or LA77 == 41 or LA77 == 42 or LA77 == 43 or LA77 == 44 or LA77 == 45 or LA77 == 46 or LA77 == 49 or LA77 == 50 or LA77 == 52 or LA77 == 53 or LA77 == 54 or LA77 == 55 or LA77 == 56 or LA77 == 57 or LA77 == 58 or LA77 == 59 or LA77 == 60 or LA77 == 61 or LA77 == 62 or LA77 == 63:
+                        alt77 = 8
                     elif LA77 == 25:
-                        LA77_67 = self.input.LA(3)
+                        LA77_57 = self.input.LA(3)
 
-                        if (self.synpred160()) :
+                        if (self.synpred161()) :
                             alt77 = 3
                         elif (True) :
                             alt77 = 8
@@ -8762,12 +8764,10 @@ class CParser(Parser):
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("445:1: statement : ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | declaration );", 77, 67, self.input)
+                            nvae = NoViableAltException("445:1: statement : ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | declaration );", 77, 57, self.input)
 
                             raise nvae
 
-                    elif LA77 == IDENTIFIER or LA77 == 29 or LA77 == 30 or LA77 == 31 or LA77 == 32 or LA77 == 33 or LA77 == 34 or LA77 == 35 or LA77 == 36 or LA77 == 37 or LA77 == 38 or LA77 == 39 or LA77 == 40 or LA77 == 41 or LA77 == 42 or LA77 == 43 or LA77 == 44 or LA77 == 45 or LA77 == 46 or LA77 == 49 or LA77 == 50 or LA77 == 52 or LA77 == 53 or LA77 == 54 or LA77 == 55 or LA77 == 56 or LA77 == 57 or LA77 == 58 or LA77 == 59 or LA77 == 60 or LA77 == 61 or LA77 == 62 or LA77 == 63:
-                        alt77 = 8
                     else:
                         if self.backtracking > 0:
                             self.failed = True
@@ -8802,7 +8802,7 @@ class CParser(Parser):
 
                 if alt77 == 1:
                     # C.g:446:4: labeled_statement
-                    self.following.append(self.FOLLOW_labeled_statement_in_statement1929)
+                    self.following.append(self.FOLLOW_labeled_statement_in_statement1932)
                     self.labeled_statement()
                     self.following.pop()
                     if self.failed:
@@ -8811,7 +8811,7 @@ class CParser(Parser):
 
                 elif alt77 == 2:
                     # C.g:447:4: compound_statement
-                    self.following.append(self.FOLLOW_compound_statement_in_statement1934)
+                    self.following.append(self.FOLLOW_compound_statement_in_statement1937)
                     self.compound_statement()
                     self.following.pop()
                     if self.failed:
@@ -8820,7 +8820,7 @@ class CParser(Parser):
 
                 elif alt77 == 3:
                     # C.g:448:4: expression_statement
-                    self.following.append(self.FOLLOW_expression_statement_in_statement1939)
+                    self.following.append(self.FOLLOW_expression_statement_in_statement1942)
                     self.expression_statement()
                     self.following.pop()
                     if self.failed:
@@ -8829,7 +8829,7 @@ class CParser(Parser):
 
                 elif alt77 == 4:
                     # C.g:449:4: selection_statement
-                    self.following.append(self.FOLLOW_selection_statement_in_statement1944)
+                    self.following.append(self.FOLLOW_selection_statement_in_statement1947)
                     self.selection_statement()
                     self.following.pop()
                     if self.failed:
@@ -8838,7 +8838,7 @@ class CParser(Parser):
 
                 elif alt77 == 5:
                     # C.g:450:4: iteration_statement
-                    self.following.append(self.FOLLOW_iteration_statement_in_statement1949)
+                    self.following.append(self.FOLLOW_iteration_statement_in_statement1952)
                     self.iteration_statement()
                     self.following.pop()
                     if self.failed:
@@ -8847,7 +8847,7 @@ class CParser(Parser):
 
                 elif alt77 == 6:
                     # C.g:451:4: jump_statement
-                    self.following.append(self.FOLLOW_jump_statement_in_statement1954)
+                    self.following.append(self.FOLLOW_jump_statement_in_statement1957)
                     self.jump_statement()
                     self.following.pop()
                     if self.failed:
@@ -8856,7 +8856,7 @@ class CParser(Parser):
 
                 elif alt77 == 7:
                     # C.g:452:4: macro_statement
-                    self.following.append(self.FOLLOW_macro_statement_in_statement1959)
+                    self.following.append(self.FOLLOW_macro_statement_in_statement1962)
                     self.macro_statement()
                     self.following.pop()
                     if self.failed:
@@ -8865,7 +8865,7 @@ class CParser(Parser):
 
                 elif alt77 == 8:
                     # C.g:453:4: declaration
-                    self.following.append(self.FOLLOW_declaration_in_statement1964)
+                    self.following.append(self.FOLLOW_declaration_in_statement1967)
                     self.declaration()
                     self.following.pop()
                     if self.failed:
@@ -8899,10 +8899,10 @@ class CParser(Parser):
 
                 # C.g:457:2: ( IDENTIFIER '(' ( IDENTIFIER | ( declaration )* ( statement_list )? ) ')' )
                 # C.g:457:4: IDENTIFIER '(' ( IDENTIFIER | ( declaration )* ( statement_list )? ) ')'
-                self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_macro_statement1975)
+                self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_macro_statement1978)
                 if self.failed:
                     return 
-                self.match(self.input, 64, self.FOLLOW_64_in_macro_statement1977)
+                self.match(self.input, 64, self.FOLLOW_64_in_macro_statement1980)
                 if self.failed:
                     return 
                 # C.g:457:19: ( IDENTIFIER | ( declaration )* ( statement_list )? )
@@ -8938,7 +8938,7 @@ class CParser(Parser):
 
                 if alt80 == 1:
                     # C.g:457:20: IDENTIFIER
-                    self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_macro_statement1980)
+                    self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_macro_statement1983)
                     if self.failed:
                         return 
 
@@ -8952,170 +8952,170 @@ class CParser(Parser):
                         if LA78 == IDENTIFIER:
                             LA78 = self.input.LA(2)
                             if LA78 == 64:
-                                LA78_46 = self.input.LA(3)
+                                LA78_45 = self.input.LA(3)
 
-                                if (self.synpred166()) :
+                                if (self.synpred167()) :
                                     alt78 = 1
 
 
                             elif LA78 == 68:
                                 LA78_47 = self.input.LA(3)
 
-                                if (self.synpred166()) :
+                                if (self.synpred167()) :
                                     alt78 = 1
 
 
                             elif LA78 == 61:
                                 LA78_48 = self.input.LA(3)
 
-                                if (self.synpred166()) :
+                                if (self.synpred167()) :
                                     alt78 = 1
 
 
                             elif LA78 == 62:
                                 LA78_49 = self.input.LA(3)
 
-                                if (self.synpred166()) :
+                                if (self.synpred167()) :
                                     alt78 = 1
 
 
                             elif LA78 == 63:
                                 LA78_50 = self.input.LA(3)
 
-                                if (self.synpred166()) :
+                                if (self.synpred167()) :
                                     alt78 = 1
 
 
                             elif LA78 == IDENTIFIER:
                                 LA78_51 = self.input.LA(3)
 
-                                if (self.synpred166()) :
+                                if (self.synpred167()) :
                                     alt78 = 1
 
 
                             elif LA78 == 25:
                                 LA78_52 = self.input.LA(3)
 
-                                if (self.synpred166()) :
+                                if (self.synpred167()) :
                                     alt78 = 1
 
 
                             elif LA78 == 29 or LA78 == 30 or LA78 == 31 or LA78 == 32 or LA78 == 33:
                                 LA78_53 = self.input.LA(3)
 
-                                if (self.synpred166()) :
+                                if (self.synpred167()) :
                                     alt78 = 1
 
 
                             elif LA78 == 34:
                                 LA78_54 = self.input.LA(3)
 
-                                if (self.synpred166()) :
+                                if (self.synpred167()) :
                                     alt78 = 1
 
 
                             elif LA78 == 35:
                                 LA78_55 = self.input.LA(3)
 
-                                if (self.synpred166()) :
+                                if (self.synpred167()) :
                                     alt78 = 1
 
 
                             elif LA78 == 36:
                                 LA78_56 = self.input.LA(3)
 
-                                if (self.synpred166()) :
+                                if (self.synpred167()) :
                                     alt78 = 1
 
 
                             elif LA78 == 37:
                                 LA78_57 = self.input.LA(3)
 
-                                if (self.synpred166()) :
+                                if (self.synpred167()) :
                                     alt78 = 1
 
 
                             elif LA78 == 38:
                                 LA78_58 = self.input.LA(3)
 
-                                if (self.synpred166()) :
+                                if (self.synpred167()) :
                                     alt78 = 1
 
 
                             elif LA78 == 39:
                                 LA78_59 = self.input.LA(3)
 
-                                if (self.synpred166()) :
+                                if (self.synpred167()) :
                                     alt78 = 1
 
 
                             elif LA78 == 40:
                                 LA78_60 = self.input.LA(3)
 
-                                if (self.synpred166()) :
+                                if (self.synpred167()) :
                                     alt78 = 1
 
 
                             elif LA78 == 41:
                                 LA78_61 = self.input.LA(3)
 
-                                if (self.synpred166()) :
+                                if (self.synpred167()) :
                                     alt78 = 1
 
 
                             elif LA78 == 42:
                                 LA78_62 = self.input.LA(3)
 
-                                if (self.synpred166()) :
+                                if (self.synpred167()) :
                                     alt78 = 1
 
 
                             elif LA78 == 43:
                                 LA78_63 = self.input.LA(3)
 
-                                if (self.synpred166()) :
+                                if (self.synpred167()) :
                                     alt78 = 1
 
 
                             elif LA78 == 44:
                                 LA78_64 = self.input.LA(3)
 
-                                if (self.synpred166()) :
+                                if (self.synpred167()) :
                                     alt78 = 1
 
 
                             elif LA78 == 45:
                                 LA78_65 = self.input.LA(3)
 
-                                if (self.synpred166()) :
+                                if (self.synpred167()) :
                                     alt78 = 1
 
 
                             elif LA78 == 46:
                                 LA78_66 = self.input.LA(3)
 
-                                if (self.synpred166()) :
+                                if (self.synpred167()) :
                                     alt78 = 1
 
 
                             elif LA78 == 49 or LA78 == 50:
                                 LA78_67 = self.input.LA(3)
 
-                                if (self.synpred166()) :
+                                if (self.synpred167()) :
                                     alt78 = 1
 
 
                             elif LA78 == 52:
                                 LA78_68 = self.input.LA(3)
 
-                                if (self.synpred166()) :
+                                if (self.synpred167()) :
                                     alt78 = 1
 
 
                             elif LA78 == 53 or LA78 == 54 or LA78 == 55 or LA78 == 56 or LA78 == 57 or LA78 == 58 or LA78 == 59 or LA78 == 60:
                                 LA78_69 = self.input.LA(3)
 
-                                if (self.synpred166()) :
+                                if (self.synpred167()) :
                                     alt78 = 1
 
 
@@ -9125,161 +9125,161 @@ class CParser(Parser):
                             if LA78 == 29 or LA78 == 30 or LA78 == 31 or LA78 == 32 or LA78 == 33:
                                 LA78_90 = self.input.LA(3)
 
-                                if (self.synpred166()) :
+                                if (self.synpred167()) :
                                     alt78 = 1
 
 
                             elif LA78 == 34:
                                 LA78_91 = self.input.LA(3)
 
-                                if (self.synpred166()) :
+                                if (self.synpred167()) :
                                     alt78 = 1
 
 
                             elif LA78 == 35:
                                 LA78_92 = self.input.LA(3)
 
-                                if (self.synpred166()) :
+                                if (self.synpred167()) :
                                     alt78 = 1
 
 
                             elif LA78 == 36:
                                 LA78_93 = self.input.LA(3)
 
-                                if (self.synpred166()) :
+                                if (self.synpred167()) :
                                     alt78 = 1
 
 
                             elif LA78 == 37:
                                 LA78_94 = self.input.LA(3)
 
-                                if (self.synpred166()) :
+                                if (self.synpred167()) :
             &n