ECC: Fix C parser to accommodate debug macro strings.
authorjlin16 <jlin16@7335b38e-4728-0410-8992-fb3ffe349368>
Wed, 4 Jun 2008 07:42:35 +0000 (07:42 +0000)
committerjlin16 <jlin16@7335b38e-4728-0410-8992-fb3ffe349368>
Wed, 4 Jun 2008 07:42:35 +0000 (07:42 +0000)
git-svn-id: https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools@1248 7335b38e-4728-0410-8992-fb3ffe349368

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

index 4825b8a..e3881b7 100644 (file)
@@ -387,7 +387,7 @@ constant
     |   OCTAL_LITERAL\r
     |   DECIMAL_LITERAL\r
     |  CHARACTER_LITERAL\r
-    |  STRING_LITERAL+\r
+    |  (IDENTIFIER* STRING_LITERAL+)+ IDENTIFIER*\r
     |   FLOATING_POINT_LITERAL\r
     ;\r
 \r
index 688a3b9..45dfa59 100644 (file)
@@ -1,4 +1,4 @@
-# $ANTLR 3.0.1 C.g 2008-05-21 14:36:29
+# $ANTLR 3.0.1 C.g 2008-06-04 15:08:54
 
 from antlr3 import *
 from antlr3.compat import set, frozenset
index bc4969c..2de293e 100644 (file)
@@ -1,4 +1,4 @@
-# $ANTLR 3.0.1 C.g 2008-05-21 14:36:28
+# $ANTLR 3.0.1 C.g 2008-06-04 15:08:53
 
 from antlr3 import *
 from antlr3.compat import set, frozenset
@@ -578,95 +578,95 @@ class CParser(Parser):
                     alt4 = 1
                 elif LA4 == IDENTIFIER:
                     LA4 = self.input.LA(2)
-                    if LA4 == 65:
-                        alt4 = 1
-                    elif LA4 == 58:
+                    if LA4 == 61:
                         LA4_21 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
-                    elif LA4 == 59:
-                        LA4_22 = self.input.LA(3)
-
-                        if (self.synpred7()) :
-                            alt4 = 1
-                    elif LA4 == 60:
+                    elif LA4 == 29 or LA4 == 30 or LA4 == 31 or LA4 == 32 or LA4 == 33:
                         LA4_23 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
-                    elif LA4 == IDENTIFIER:
+                    elif LA4 == 34:
                         LA4_24 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
-                    elif LA4 == 61:
+                    elif LA4 == 35:
                         LA4_25 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
-                    elif LA4 == 29 or LA4 == 30 or LA4 == 31 or LA4 == 32 or LA4 == 33:
+                    elif LA4 == 36:
                         LA4_26 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
-                    elif LA4 == 34:
+                    elif LA4 == 37:
                         LA4_27 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
-                    elif LA4 == 35:
+                    elif LA4 == 38:
                         LA4_28 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
-                    elif LA4 == 36:
+                    elif LA4 == 39:
                         LA4_29 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
-                    elif LA4 == 37:
+                    elif LA4 == 40:
                         LA4_30 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
-                    elif LA4 == 38:
+                    elif LA4 == 41:
                         LA4_31 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
-                    elif LA4 == 39:
+                    elif LA4 == 42:
                         LA4_32 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
-                    elif LA4 == 40:
+                    elif LA4 == 45 or LA4 == 46:
                         LA4_33 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
-                    elif LA4 == 41:
+                    elif LA4 == 48:
                         LA4_34 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
-                    elif LA4 == 42:
+                    elif LA4 == IDENTIFIER:
                         LA4_35 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
-                    elif LA4 == 45 or LA4 == 46:
+                    elif LA4 == 58:
                         LA4_36 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
-                    elif LA4 == 48:
-                        LA4_37 = self.input.LA(3)
+                    elif LA4 == 65:
+                        alt4 = 1
+                    elif LA4 == 59:
+                        LA4_39 = self.input.LA(3)
+
+                        if (self.synpred7()) :
+                            alt4 = 1
+                    elif LA4 == 60:
+                        LA4_40 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
                     elif LA4 == 49 or LA4 == 50 or LA4 == 51 or LA4 == 52 or LA4 == 53 or LA4 == 54 or LA4 == 55 or LA4 == 56 or LA4 == 57:
-                        LA4_38 = self.input.LA(3)
+                        LA4_41 = self.input.LA(3)
 
                         if (self.synpred7()) :
                             alt4 = 1
@@ -865,13 +865,13 @@ class CParser(Parser):
                     elif LA7 == IDENTIFIER:
                         LA7_13 = self.input.LA(2)
 
-                        if (LA7_13 == IDENTIFIER or (29 <= LA7_13 <= 42) or (45 <= LA7_13 <= 46) or (48 <= LA7_13 <= 60) or LA7_13 == 65) :
-                            alt7 = 1
-                        elif (LA7_13 == 61) :
-                            LA7_25 = self.input.LA(3)
+                        if (LA7_13 == 61) :
+                            LA7_21 = self.input.LA(3)
 
                             if (self.synpred10()) :
                                 alt7 = 1
+                        elif (LA7_13 == IDENTIFIER or (29 <= LA7_13 <= 42) or (45 <= LA7_13 <= 46) or (48 <= LA7_13 <= 60) or LA7_13 == 65) :
+                            alt7 = 1
                     elif LA7 == 58:
                         LA7_14 = self.input.LA(2)
 
@@ -1784,29 +1784,29 @@ class CParser(Parser):
 
                     elif LA17 == IDENTIFIER:
                         LA17 = self.input.LA(2)
-                        if LA17 == 63:
-                            LA17_89 = self.input.LA(3)
+                        if LA17 == EOF or LA17 == IDENTIFIER or LA17 == 34 or LA17 == 35 or LA17 == 36 or LA17 == 37 or LA17 == 38 or LA17 == 39 or LA17 == 40 or LA17 == 41 or LA17 == 42 or LA17 == 45 or LA17 == 46 or LA17 == 48 or LA17 == 49 or LA17 == 50 or LA17 == 51 or LA17 == 52 or LA17 == 53 or LA17 == 54 or LA17 == 55 or LA17 == 56 or LA17 == 57 or LA17 == 58 or LA17 == 59 or LA17 == 60 or LA17 == 62 or LA17 == 65:
+                            alt17 = 2
+                        elif LA17 == 61:
+                            LA17_94 = self.input.LA(3)
 
                             if (self.synpred40()) :
                                 alt17 = 2
 
 
-                        elif LA17 == 61:
-                            LA17_90 = self.input.LA(3)
+                        elif LA17 == 47:
+                            LA17_95 = self.input.LA(3)
 
                             if (self.synpred40()) :
                                 alt17 = 2
 
 
-                        elif LA17 == 47:
-                            LA17_91 = self.input.LA(3)
+                        elif LA17 == 63:
+                            LA17_96 = self.input.LA(3)
 
                             if (self.synpred40()) :
                                 alt17 = 2
 
 
-                        elif LA17 == EOF or LA17 == IDENTIFIER or LA17 == 34 or LA17 == 35 or LA17 == 36 or LA17 == 37 or LA17 == 38 or LA17 == 39 or LA17 == 40 or LA17 == 41 or LA17 == 42 or LA17 == 45 or LA17 == 46 or LA17 == 48 or LA17 == 49 or LA17 == 50 or LA17 == 51 or LA17 == 52 or LA17 == 53 or LA17 == 54 or LA17 == 55 or LA17 == 56 or LA17 == 57 or LA17 == 58 or LA17 == 59 or LA17 == 60 or LA17 == 62 or LA17 == 65:
-                            alt17 = 2
 
                     elif LA17 == 49 or LA17 == 50 or LA17 == 51 or LA17 == 52 or LA17 == 53 or LA17 == 54 or LA17 == 55 or LA17 == 56 or LA17 == 57:
                         alt17 = 1
@@ -2030,24 +2030,24 @@ class CParser(Parser):
                 if (LA23_0 == 48) :
                     LA23_1 = self.input.LA(2)
 
-                    if (LA23_1 == 43) :
-                        alt23 = 1
-                    elif (LA23_1 == IDENTIFIER) :
-                        LA23_3 = self.input.LA(3)
+                    if (LA23_1 == IDENTIFIER) :
+                        LA23_2 = self.input.LA(3)
 
-                        if (LA23_3 == 43) :
+                        if (LA23_2 == 43) :
                             alt23 = 2
-                        elif (LA23_3 == EOF or LA23_3 == IDENTIFIER or LA23_3 == 25 or LA23_3 == 27 or (29 <= LA23_3 <= 42) or (45 <= LA23_3 <= 63) or LA23_3 == 65) :
+                        elif (LA23_2 == EOF or LA23_2 == IDENTIFIER or LA23_2 == 25 or LA23_2 == 27 or (29 <= LA23_2 <= 42) or (45 <= LA23_2 <= 63) or LA23_2 == 65) :
                             alt23 = 3
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return retval
 
-                            nvae = NoViableAltException("213:1: enum_specifier options {k=3; } : ( 'enum' '{' enumerator_list ( ',' )? '}' | 'enum' IDENTIFIER '{' enumerator_list ( ',' )? '}' | 'enum' IDENTIFIER );", 23, 3, self.input)
+                            nvae = NoViableAltException("213:1: enum_specifier options {k=3; } : ( 'enum' '{' enumerator_list ( ',' )? '}' | 'enum' IDENTIFIER '{' enumerator_list ( ',' )? '}' | 'enum' IDENTIFIER );", 23, 2, self.input)
 
                             raise nvae
 
+                    elif (LA23_1 == 43) :
+                        alt23 = 1
                     else:
                         if self.backtracking > 0:
                             self.failed = True
@@ -2512,119 +2512,119 @@ class CParser(Parser):
                                     alt31 = 1
 
 
-                            elif LA31 == 29 or LA31 == 30 or LA31 == 31 or LA31 == 32 or LA31 == 33:
+                            elif LA31 == 65:
                                 LA31_31 = self.input.LA(3)
 
                                 if (self.synpred66()) :
                                     alt31 = 1
 
 
-                            elif LA31 == 34:
-                                LA31_32 = self.input.LA(3)
-
-                                if (self.synpred66()) :
-                                    alt31 = 1
-
-
-                            elif LA31 == 35:
-                                LA31_33 = self.input.LA(3)
-
-                                if (self.synpred66()) :
-                                    alt31 = 1
-
-
-                            elif LA31 == 36:
+                            elif LA31 == 58:
                                 LA31_34 = self.input.LA(3)
 
                                 if (self.synpred66()) :
                                     alt31 = 1
 
 
-                            elif LA31 == 37:
+                            elif LA31 == 59:
                                 LA31_35 = self.input.LA(3)
 
                                 if (self.synpred66()) :
                                     alt31 = 1
 
 
-                            elif LA31 == 38:
+                            elif LA31 == 60:
                                 LA31_36 = self.input.LA(3)
 
                                 if (self.synpred66()) :
                                     alt31 = 1
 
 
-                            elif LA31 == 39:
+                            elif LA31 == IDENTIFIER:
                                 LA31_37 = self.input.LA(3)
 
                                 if (self.synpred66()) :
                                     alt31 = 1
 
 
-                            elif LA31 == 40:
+                            elif LA31 == 29 or LA31 == 30 or LA31 == 31 or LA31 == 32 or LA31 == 33:
                                 LA31_38 = self.input.LA(3)
 
                                 if (self.synpred66()) :
                                     alt31 = 1
 
 
-                            elif LA31 == 41:
+                            elif LA31 == 34:
                                 LA31_39 = self.input.LA(3)
 
                                 if (self.synpred66()) :
                                     alt31 = 1
 
 
-                            elif LA31 == 42:
+                            elif LA31 == 35:
                                 LA31_40 = self.input.LA(3)
 
                                 if (self.synpred66()) :
                                     alt31 = 1
 
 
-                            elif LA31 == 45 or LA31 == 46:
+                            elif LA31 == 36:
                                 LA31_41 = self.input.LA(3)
 
                                 if (self.synpred66()) :
                                     alt31 = 1
 
 
-                            elif LA31 == 48:
+                            elif LA31 == 37:
                                 LA31_42 = self.input.LA(3)
 
                                 if (self.synpred66()) :
                                     alt31 = 1
 
 
-                            elif LA31 == IDENTIFIER:
+                            elif LA31 == 38:
                                 LA31_43 = self.input.LA(3)
 
                                 if (self.synpred66()) :
                                     alt31 = 1
 
 
-                            elif LA31 == 58:
+                            elif LA31 == 39:
                                 LA31_44 = self.input.LA(3)
 
                                 if (self.synpred66()) :
                                     alt31 = 1
 
 
-                            elif LA31 == 65:
+                            elif LA31 == 40:
                                 LA31_45 = self.input.LA(3)
 
                                 if (self.synpred66()) :
                                     alt31 = 1
 
 
-                            elif LA31 == 59:
+                            elif LA31 == 41:
+                                LA31_46 = self.input.LA(3)
+
+                                if (self.synpred66()) :
+                                    alt31 = 1
+
+
+                            elif LA31 == 42:
+                                LA31_47 = self.input.LA(3)
+
+                                if (self.synpred66()) :
+                                    alt31 = 1
+
+
+                            elif LA31 == 45 or LA31 == 46:
                                 LA31_48 = self.input.LA(3)
 
                                 if (self.synpred66()) :
                                     alt31 = 1
 
 
-                            elif LA31 == 60:
+                            elif LA31 == 48:
                                 LA31_49 = self.input.LA(3)
 
                                 if (self.synpred66()) :
@@ -2795,119 +2795,119 @@ class CParser(Parser):
                                     alt33 = 1
 
 
-                            elif LA33 == 29 or LA33 == 30 or LA33 == 31 or LA33 == 32 or LA33 == 33:
+                            elif LA33 == 65:
                                 LA33_31 = self.input.LA(3)
 
                                 if (self.synpred69()) :
                                     alt33 = 1
 
 
-                            elif LA33 == 34:
-                                LA33_32 = self.input.LA(3)
-
-                                if (self.synpred69()) :
-                                    alt33 = 1
-
-
-                            elif LA33 == 35:
-                                LA33_33 = self.input.LA(3)
-
-                                if (self.synpred69()) :
-                                    alt33 = 1
-
-
-                            elif LA33 == 36:
+                            elif LA33 == 58:
                                 LA33_34 = self.input.LA(3)
 
                                 if (self.synpred69()) :
                                     alt33 = 1
 
 
-                            elif LA33 == 37:
+                            elif LA33 == 59:
                                 LA33_35 = self.input.LA(3)
 
                                 if (self.synpred69()) :
                                     alt33 = 1
 
 
-                            elif LA33 == 38:
+                            elif LA33 == 60:
                                 LA33_36 = self.input.LA(3)
 
                                 if (self.synpred69()) :
                                     alt33 = 1
 
 
-                            elif LA33 == 39:
+                            elif LA33 == IDENTIFIER:
                                 LA33_37 = self.input.LA(3)
 
                                 if (self.synpred69()) :
                                     alt33 = 1
 
 
-                            elif LA33 == 40:
+                            elif LA33 == 29 or LA33 == 30 or LA33 == 31 or LA33 == 32 or LA33 == 33:
                                 LA33_38 = self.input.LA(3)
 
                                 if (self.synpred69()) :
                                     alt33 = 1
 
 
-                            elif LA33 == 41:
+                            elif LA33 == 34:
                                 LA33_39 = self.input.LA(3)
 
                                 if (self.synpred69()) :
                                     alt33 = 1
 
 
-                            elif LA33 == 42:
+                            elif LA33 == 35:
                                 LA33_40 = self.input.LA(3)
 
                                 if (self.synpred69()) :
                                     alt33 = 1
 
 
-                            elif LA33 == 45 or LA33 == 46:
+                            elif LA33 == 36:
                                 LA33_41 = self.input.LA(3)
 
                                 if (self.synpred69()) :
                                     alt33 = 1
 
 
-                            elif LA33 == 48:
+                            elif LA33 == 37:
                                 LA33_42 = self.input.LA(3)
 
                                 if (self.synpred69()) :
                                     alt33 = 1
 
 
-                            elif LA33 == IDENTIFIER:
+                            elif LA33 == 38:
                                 LA33_43 = self.input.LA(3)
 
                                 if (self.synpred69()) :
                                     alt33 = 1
 
 
-                            elif LA33 == 58:
+                            elif LA33 == 39:
                                 LA33_44 = self.input.LA(3)
 
                                 if (self.synpred69()) :
                                     alt33 = 1
 
 
-                            elif LA33 == 65:
+                            elif LA33 == 40:
                                 LA33_45 = self.input.LA(3)
 
                                 if (self.synpred69()) :
                                     alt33 = 1
 
 
-                            elif LA33 == 59:
+                            elif LA33 == 41:
+                                LA33_46 = self.input.LA(3)
+
+                                if (self.synpred69()) :
+                                    alt33 = 1
+
+
+                            elif LA33 == 42:
+                                LA33_47 = self.input.LA(3)
+
+                                if (self.synpred69()) :
+                                    alt33 = 1
+
+
+                            elif LA33 == 45 or LA33 == 46:
                                 LA33_48 = self.input.LA(3)
 
                                 if (self.synpred69()) :
                                     alt33 = 1
 
 
-                            elif LA33 == 60:
+                            elif LA33 == 48:
                                 LA33_49 = self.input.LA(3)
 
                                 if (self.synpred69()) :
@@ -3092,10 +3092,8 @@ class CParser(Parser):
                     LA35 = self.input.LA(2)
                     if LA35 == 62:
                         alt35 = 5
-                    elif LA35 == 29 or LA35 == 30 or LA35 == 31 or LA35 == 32 or LA35 == 33 or LA35 == 34 or LA35 == 35 or LA35 == 36 or LA35 == 37 or LA35 == 38 or LA35 == 39 or LA35 == 40 or LA35 == 41 or LA35 == 42 or LA35 == 45 or LA35 == 46 or LA35 == 48 or LA35 == 49 or LA35 == 50 or LA35 == 51 or LA35 == 52 or LA35 == 53 or LA35 == 54 or LA35 == 55 or LA35 == 56 or LA35 == 57 or LA35 == 58 or LA35 == 59 or LA35 == 60 or LA35 == 65:
-                        alt35 = 3
                     elif LA35 == IDENTIFIER:
-                        LA35_29 = self.input.LA(3)
+                        LA35_17 = self.input.LA(3)
 
                         if (self.synpred72()) :
                             alt35 = 3
@@ -3106,10 +3104,12 @@ class CParser(Parser):
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("254:1: declarator_suffix : ( '[' constant_expression ']' | '[' ']' | '(' parameter_type_list ')' | '(' identifier_list ')' | '(' ')' );", 35, 29, self.input)
+                            nvae = NoViableAltException("254:1: declarator_suffix : ( '[' constant_expression ']' | '[' ']' | '(' parameter_type_list ')' | '(' identifier_list ')' | '(' ')' );", 35, 17, self.input)
 
                             raise nvae
 
+                    elif LA35 == 29 or LA35 == 30 or LA35 == 31 or LA35 == 32 or LA35 == 33 or LA35 == 34 or LA35 == 35 or LA35 == 36 or LA35 == 37 or LA35 == 38 or LA35 == 39 or LA35 == 40 or LA35 == 41 or LA35 == 42 or LA35 == 45 or LA35 == 46 or LA35 == 48 or LA35 == 49 or LA35 == 50 or LA35 == 51 or LA35 == 52 or LA35 == 53 or LA35 == 54 or LA35 == 55 or LA35 == 56 or LA35 == 57 or LA35 == 58 or LA35 == 59 or LA35 == 60 or LA35 == 65:
+                        alt35 = 3
                     else:
                         if self.backtracking > 0:
                             self.failed = True
@@ -3224,11 +3224,11 @@ class CParser(Parser):
 
                 if (LA38_0 == 65) :
                     LA38 = self.input.LA(2)
-                    if LA38 == 65:
+                    if LA38 == 58:
                         LA38_2 = self.input.LA(3)
 
-                        if (self.synpred77()) :
-                            alt38 = 2
+                        if (self.synpred76()) :
+                            alt38 = 1
                         elif (True) :
                             alt38 = 3
                         else:
@@ -3240,11 +3240,11 @@ class CParser(Parser):
 
                             raise nvae
 
-                    elif LA38 == 58:
+                    elif LA38 == 65:
                         LA38_3 = self.input.LA(3)
 
-                        if (self.synpred76()) :
-                            alt38 = 1
+                        if (self.synpred77()) :
+                            alt38 = 2
                         elif (True) :
                             alt38 = 3
                         else:
@@ -3288,10 +3288,8 @@ class CParser(Parser):
 
                             raise nvae
 
-                    elif LA38 == EOF or LA38 == IDENTIFIER or LA38 == 25 or LA38 == 26 or LA38 == 27 or LA38 == 28 or LA38 == 29 or LA38 == 30 or LA38 == 31 or LA38 == 32 or LA38 == 33 or LA38 == 34 or LA38 == 35 or LA38 == 36 or LA38 == 37 or LA38 == 38 or LA38 == 39 or LA38 == 40 or LA38 == 41 or LA38 == 42 or LA38 == 43 or LA38 == 45 or LA38 == 46 or LA38 == 47 or LA38 == 48 or LA38 == 61 or LA38 == 62 or LA38 == 63:
-                        alt38 = 3
                     elif LA38 == 53:
-                        LA38_21 = self.input.LA(3)
+                        LA38_6 = self.input.LA(3)
 
                         if (self.synpred76()) :
                             alt38 = 1
@@ -3302,10 +3300,12 @@ class CParser(Parser):
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("262:1: pointer : ( '*' ( type_qualifier )+ ( pointer )? | '*' pointer | '*' );", 38, 21, self.input)
+                            nvae = NoViableAltException("262:1: pointer : ( '*' ( type_qualifier )+ ( pointer )? | '*' pointer | '*' );", 38, 6, self.input)
 
                             raise nvae
 
+                    elif LA38 == EOF or LA38 == IDENTIFIER or LA38 == 25 or LA38 == 26 or LA38 == 27 or LA38 == 28 or LA38 == 29 or LA38 == 30 or LA38 == 31 or LA38 == 32 or LA38 == 33 or LA38 == 34 or LA38 == 35 or LA38 == 36 or LA38 == 37 or LA38 == 38 or LA38 == 39 or LA38 == 40 or LA38 == 41 or LA38 == 42 or LA38 == 43 or LA38 == 45 or LA38 == 46 or LA38 == 47 or LA38 == 48 or LA38 == 61 or LA38 == 62 or LA38 == 63:
+                        alt38 = 3
                     elif LA38 == 49 or LA38 == 50 or LA38 == 51 or LA38 == 52 or LA38 == 54 or LA38 == 55 or LA38 == 56 or LA38 == 57:
                         LA38_29 = self.input.LA(3)
 
@@ -3687,8 +3687,8 @@ 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 == 45 or LA43 == 46 or LA43 == 48 or LA43 == 49 or LA43 == 50 or LA43 == 51 or LA43 == 52 or LA43 == 53 or LA43 == 54 or LA43 == 55 or LA43 == 56 or LA43 == 57 or LA43 == 62 or LA43 == 63:
                                 alt43 = 2
-                            elif LA43 == IDENTIFIER:
-                                LA43_37 = self.input.LA(3)
+                            elif LA43 == 58:
+                                LA43_25 = self.input.LA(3)
 
                                 if (self.synpred82()) :
                                     alt43 = 1
@@ -3696,8 +3696,8 @@ class CParser(Parser):
                                     alt43 = 2
 
 
-                            elif LA43 == 58:
-                                LA43_38 = self.input.LA(3)
+                            elif LA43 == 65:
+                                LA43_26 = self.input.LA(3)
 
                                 if (self.synpred82()) :
                                     alt43 = 1
@@ -3705,8 +3705,8 @@ class CParser(Parser):
                                     alt43 = 2
 
 
-                            elif LA43 == 65:
-                                LA43_39 = self.input.LA(3)
+                            elif LA43 == 59:
+                                LA43_27 = self.input.LA(3)
 
                                 if (self.synpred82()) :
                                     alt43 = 1
@@ -3714,8 +3714,8 @@ class CParser(Parser):
                                     alt43 = 2
 
 
-                            elif LA43 == 61:
-                                LA43_40 = self.input.LA(3)
+                            elif LA43 == 60:
+                                LA43_28 = self.input.LA(3)
 
                                 if (self.synpred82()) :
                                     alt43 = 1
@@ -3723,8 +3723,8 @@ class CParser(Parser):
                                     alt43 = 2
 
 
-                            elif LA43 == 59:
-                                LA43_42 = self.input.LA(3)
+                            elif LA43 == IDENTIFIER:
+                                LA43_29 = self.input.LA(3)
 
                                 if (self.synpred82()) :
                                     alt43 = 1
@@ -3732,8 +3732,8 @@ class CParser(Parser):
                                     alt43 = 2
 
 
-                            elif LA43 == 60:
-                                LA43_43 = self.input.LA(3)
+                            elif LA43 == 61:
+                                LA43_30 = self.input.LA(3)
 
                                 if (self.synpred82()) :
                                     alt43 = 1
@@ -4018,97 +4018,97 @@ class CParser(Parser):
 
                             if (self.synpred90()) :
                                 alt50 = 1
-                        elif LA50 == 29 or LA50 == 30 or LA50 == 31 or LA50 == 32 or LA50 == 33:
+                        elif LA50 == 65:
                             LA50_13 = self.input.LA(3)
 
                             if (self.synpred90()) :
                                 alt50 = 1
-                        elif LA50 == 34:
+                        elif LA50 == 61:
                             LA50_14 = self.input.LA(3)
 
                             if (self.synpred90()) :
                                 alt50 = 1
-                        elif LA50 == 35:
+                        elif LA50 == 63:
                             LA50_15 = self.input.LA(3)
 
                             if (self.synpred90()) :
                                 alt50 = 1
-                        elif LA50 == 36:
+                        elif LA50 == 58:
                             LA50_16 = self.input.LA(3)
 
                             if (self.synpred90()) :
                                 alt50 = 1
-                        elif LA50 == 37:
+                        elif LA50 == 59:
                             LA50_17 = self.input.LA(3)
 
                             if (self.synpred90()) :
                                 alt50 = 1
-                        elif LA50 == 38:
+                        elif LA50 == 60:
                             LA50_18 = self.input.LA(3)
 
                             if (self.synpred90()) :
                                 alt50 = 1
-                        elif LA50 == 39:
+                        elif LA50 == IDENTIFIER:
                             LA50_19 = self.input.LA(3)
 
                             if (self.synpred90()) :
                                 alt50 = 1
-                        elif LA50 == 40:
+                        elif LA50 == 29 or LA50 == 30 or LA50 == 31 or LA50 == 32 or LA50 == 33:
                             LA50_20 = self.input.LA(3)
 
                             if (self.synpred90()) :
                                 alt50 = 1
-                        elif LA50 == 41:
+                        elif LA50 == 34:
                             LA50_21 = self.input.LA(3)
 
                             if (self.synpred90()) :
                                 alt50 = 1
-                        elif LA50 == 42:
+                        elif LA50 == 35:
                             LA50_22 = self.input.LA(3)
 
                             if (self.synpred90()) :
                                 alt50 = 1
-                        elif LA50 == 45 or LA50 == 46:
+                        elif LA50 == 36:
                             LA50_23 = self.input.LA(3)
 
                             if (self.synpred90()) :
                                 alt50 = 1
-                        elif LA50 == 48:
+                        elif LA50 == 37:
                             LA50_24 = self.input.LA(3)
 
                             if (self.synpred90()) :
                                 alt50 = 1
-                        elif LA50 == IDENTIFIER:
+                        elif LA50 == 38:
                             LA50_25 = self.input.LA(3)
 
                             if (self.synpred90()) :
                                 alt50 = 1
-                        elif LA50 == 58:
+                        elif LA50 == 39:
                             LA50_26 = self.input.LA(3)
 
                             if (self.synpred90()) :
                                 alt50 = 1
-                        elif LA50 == 65:
+                        elif LA50 == 40:
                             LA50_27 = self.input.LA(3)
 
                             if (self.synpred90()) :
                                 alt50 = 1
-                        elif LA50 == 61:
+                        elif LA50 == 41:
                             LA50_28 = self.input.LA(3)
 
                             if (self.synpred90()) :
                                 alt50 = 1
-                        elif LA50 == 63:
+                        elif LA50 == 42:
                             LA50_29 = self.input.LA(3)
 
                             if (self.synpred90()) :
                                 alt50 = 1
-                        elif LA50 == 59:
+                        elif LA50 == 45 or LA50 == 46:
                             LA50_30 = self.input.LA(3)
 
                             if (self.synpred90()) :
                                 alt50 = 1
-                        elif LA50 == 60:
+                        elif LA50 == 48:
                             LA50_31 = self.input.LA(3)
 
                             if (self.synpred90()) :
@@ -4318,119 +4318,119 @@ class CParser(Parser):
                                 alt53 = 1
 
 
-                        elif LA53 == 29 or LA53 == 30 or LA53 == 31 or LA53 == 32 or LA53 == 33:
+                        elif LA53 == 65:
                             LA53_13 = self.input.LA(3)
 
                             if (self.synpred93()) :
                                 alt53 = 1
 
 
-                        elif LA53 == 34:
-                            LA53_14 = self.input.LA(3)
-
-                            if (self.synpred93()) :
-                                alt53 = 1
-
-
-                        elif LA53 == 35:
-                            LA53_15 = self.input.LA(3)
-
-                            if (self.synpred93()) :
-                                alt53 = 1
-
-
-                        elif LA53 == 36:
+                        elif LA53 == 58:
                             LA53_16 = self.input.LA(3)
 
                             if (self.synpred93()) :
                                 alt53 = 1
 
 
-                        elif LA53 == 37:
+                        elif LA53 == 59:
                             LA53_17 = self.input.LA(3)
 
                             if (self.synpred93()) :
                                 alt53 = 1
 
 
-                        elif LA53 == 38:
+                        elif LA53 == 60:
                             LA53_18 = self.input.LA(3)
 
                             if (self.synpred93()) :
                                 alt53 = 1
 
 
-                        elif LA53 == 39:
+                        elif LA53 == IDENTIFIER:
                             LA53_19 = self.input.LA(3)
 
                             if (self.synpred93()) :
                                 alt53 = 1
 
 
-                        elif LA53 == 40:
+                        elif LA53 == 29 or LA53 == 30 or LA53 == 31 or LA53 == 32 or LA53 == 33:
                             LA53_20 = self.input.LA(3)
 
                             if (self.synpred93()) :
                                 alt53 = 1
 
 
-                        elif LA53 == 41:
+                        elif LA53 == 34:
                             LA53_21 = self.input.LA(3)
 
                             if (self.synpred93()) :
                                 alt53 = 1
 
 
-                        elif LA53 == 42:
+                        elif LA53 == 35:
                             LA53_22 = self.input.LA(3)
 
                             if (self.synpred93()) :
                                 alt53 = 1
 
 
-                        elif LA53 == 45 or LA53 == 46:
+                        elif LA53 == 36:
                             LA53_23 = self.input.LA(3)
 
                             if (self.synpred93()) :
                                 alt53 = 1
 
 
-                        elif LA53 == 48:
+                        elif LA53 == 37:
                             LA53_24 = self.input.LA(3)
 
                             if (self.synpred93()) :
                                 alt53 = 1
 
 
-                        elif LA53 == IDENTIFIER:
+                        elif LA53 == 38:
                             LA53_25 = self.input.LA(3)
 
                             if (self.synpred93()) :
                                 alt53 = 1
 
 
-                        elif LA53 == 58:
+                        elif LA53 == 39:
                             LA53_26 = self.input.LA(3)
 
                             if (self.synpred93()) :
                                 alt53 = 1
 
 
-                        elif LA53 == 65:
+                        elif LA53 == 40:
                             LA53_27 = self.input.LA(3)
 
                             if (self.synpred93()) :
                                 alt53 = 1
 
 
-                        elif LA53 == 59:
+                        elif LA53 == 41:
+                            LA53_28 = self.input.LA(3)
+
+                            if (self.synpred93()) :
+                                alt53 = 1
+
+
+                        elif LA53 == 42:
+                            LA53_29 = self.input.LA(3)
+
+                            if (self.synpred93()) :
+                                alt53 = 1
+
+
+                        elif LA53 == 45 or LA53 == 46:
                             LA53_30 = self.input.LA(3)
 
                             if (self.synpred93()) :
                                 alt53 = 1
 
 
-                        elif LA53 == 60:
+                        elif LA53 == 48:
                             LA53_31 = self.input.LA(3)
 
                             if (self.synpred93()) :
@@ -5412,10 +5412,8 @@ class CParser(Parser):
                         LA65 = self.input.LA(2)
                         if LA65 == 62:
                             alt65 = 2
-                        elif LA65 == 29 or LA65 == 30 or LA65 == 31 or LA65 == 32 or LA65 == 33 or LA65 == 34 or LA65 == 35 or LA65 == 36 or LA65 == 37 or LA65 == 38 or LA65 == 39 or LA65 == 40 or LA65 == 41 or LA65 == 42 or LA65 == 45 or LA65 == 46 or LA65 == 48 or LA65 == 49 or LA65 == 50 or LA65 == 51 or LA65 == 52 or LA65 == 53 or LA65 == 54 or LA65 == 55 or LA65 == 56 or LA65 == 57 or LA65 == 58 or LA65 == 59 or LA65 == 60:
-                            alt65 = 4
                         elif LA65 == IDENTIFIER:
-                            LA65_55 = self.input.LA(3)
+                            LA65_43 = self.input.LA(3)
 
                             if (self.synpred116()) :
                                 alt65 = 3
@@ -5423,8 +5421,10 @@ class CParser(Parser):
                                 alt65 = 4
 
 
+                        elif LA65 == HEX_LITERAL or LA65 == OCTAL_LITERAL or LA65 == DECIMAL_LITERAL or LA65 == CHARACTER_LITERAL or LA65 == STRING_LITERAL or LA65 == FLOATING_POINT_LITERAL or LA65 == 61 or LA65 == 67 or LA65 == 68 or LA65 == 71 or LA65 == 72 or LA65 == 73 or LA65 == 76 or LA65 == 77 or LA65 == 78:
+                            alt65 = 3
                         elif LA65 == 65:
-                            LA65_57 = self.input.LA(3)
+                            LA65_53 = self.input.LA(3)
 
                             if (self.synpred116()) :
                                 alt65 = 3
@@ -5432,8 +5432,8 @@ class CParser(Parser):
                                 alt65 = 4
 
 
-                        elif LA65 == HEX_LITERAL or LA65 == OCTAL_LITERAL or LA65 == DECIMAL_LITERAL or LA65 == CHARACTER_LITERAL or LA65 == STRING_LITERAL or LA65 == FLOATING_POINT_LITERAL or LA65 == 61 or LA65 == 67 or LA65 == 68 or LA65 == 71 or LA65 == 72 or LA65 == 73 or LA65 == 76 or LA65 == 77 or LA65 == 78:
-                            alt65 = 3
+                        elif LA65 == 29 or LA65 == 30 or LA65 == 31 or LA65 == 32 or LA65 == 33 or LA65 == 34 or LA65 == 35 or LA65 == 36 or LA65 == 37 or LA65 == 38 or LA65 == 39 or LA65 == 40 or LA65 == 41 or LA65 == 42 or LA65 == 45 or LA65 == 46 or LA65 == 48 or LA65 == 49 or LA65 == 50 or LA65 == 51 or LA65 == 52 or LA65 == 53 or LA65 == 54 or LA65 == 55 or LA65 == 56 or LA65 == 57 or LA65 == 58 or LA65 == 59 or LA65 == 60:
+                            alt65 = 4
 
                     elif LA65 == 74:
                         alt65 = 5
@@ -5715,7 +5715,21 @@ class CParser(Parser):
                 alt67 = 3
                 LA67 = self.input.LA(1)
                 if LA67 == IDENTIFIER:
-                    alt67 = 1
+                    LA67_1 = self.input.LA(2)
+
+                    if (LA67_1 == IDENTIFIER or LA67_1 == STRING_LITERAL) :
+                        alt67 = 2
+                    elif (LA67_1 == EOF or LA67_1 == 25 or (27 <= LA67_1 <= 28) or LA67_1 == 44 or LA67_1 == 47 or LA67_1 == 53 or (61 <= LA67_1 <= 65) or (67 <= LA67_1 <= 72) or (74 <= LA67_1 <= 76) or (79 <= LA67_1 <= 101)) :
+                        alt67 = 1
+                    else:
+                        if self.backtracking > 0:
+                            self.failed = True
+                            return retval
+
+                        nvae = NoViableAltException("379:1: primary_expression : ( IDENTIFIER | constant | '(' expression ')' );", 67, 1, self.input)
+
+                        raise nvae
+
                 elif LA67 == HEX_LITERAL or LA67 == OCTAL_LITERAL or LA67 == DECIMAL_LITERAL or LA67 == CHARACTER_LITERAL or LA67 == STRING_LITERAL or LA67 == FLOATING_POINT_LITERAL:
                     alt67 = 2
                 elif LA67 == 61:
@@ -5778,7 +5792,7 @@ class CParser(Parser):
 
 
     # $ANTLR start constant
-    # C.g:385:1: constant : ( HEX_LITERAL | OCTAL_LITERAL | DECIMAL_LITERAL | CHARACTER_LITERAL | ( STRING_LITERAL )+ | FLOATING_POINT_LITERAL );
+    # C.g:385:1: constant : ( HEX_LITERAL | OCTAL_LITERAL | DECIMAL_LITERAL | CHARACTER_LITERAL | ( ( IDENTIFIER )* ( STRING_LITERAL )+ )+ ( IDENTIFIER )* | FLOATING_POINT_LITERAL );
     def constant(self, ):
 
         constant_StartIndex = self.input.index()
@@ -5787,96 +5801,183 @@ class CParser(Parser):
                 if self.backtracking > 0 and self.alreadyParsedRule(self.input, 45):
                     return 
 
-                # C.g:386:5: ( HEX_LITERAL | OCTAL_LITERAL | DECIMAL_LITERAL | CHARACTER_LITERAL | ( STRING_LITERAL )+ | FLOATING_POINT_LITERAL )
-                alt69 = 6
-                LA69 = self.input.LA(1)
-                if LA69 == HEX_LITERAL:
-                    alt69 = 1
-                elif LA69 == OCTAL_LITERAL:
-                    alt69 = 2
-                elif LA69 == DECIMAL_LITERAL:
-                    alt69 = 3
-                elif LA69 == CHARACTER_LITERAL:
-                    alt69 = 4
-                elif LA69 == STRING_LITERAL:
-                    alt69 = 5
-                elif LA69 == FLOATING_POINT_LITERAL:
-                    alt69 = 6
+                # C.g:386:5: ( HEX_LITERAL | OCTAL_LITERAL | DECIMAL_LITERAL | CHARACTER_LITERAL | ( ( IDENTIFIER )* ( STRING_LITERAL )+ )+ ( IDENTIFIER )* | FLOATING_POINT_LITERAL )
+                alt72 = 6
+                LA72 = self.input.LA(1)
+                if LA72 == HEX_LITERAL:
+                    alt72 = 1
+                elif LA72 == OCTAL_LITERAL:
+                    alt72 = 2
+                elif LA72 == DECIMAL_LITERAL:
+                    alt72 = 3
+                elif LA72 == CHARACTER_LITERAL:
+                    alt72 = 4
+                elif LA72 == IDENTIFIER or LA72 == STRING_LITERAL:
+                    alt72 = 5
+                elif LA72 == FLOATING_POINT_LITERAL:
+                    alt72 = 6
                 else:
                     if self.backtracking > 0:
                         self.failed = True
                         return 
 
-                    nvae = NoViableAltException("385:1: constant : ( HEX_LITERAL | OCTAL_LITERAL | DECIMAL_LITERAL | CHARACTER_LITERAL | ( STRING_LITERAL )+ | FLOATING_POINT_LITERAL );", 69, 0, self.input)
+                    nvae = NoViableAltException("385:1: constant : ( HEX_LITERAL | OCTAL_LITERAL | DECIMAL_LITERAL | CHARACTER_LITERAL | ( ( IDENTIFIER )* ( STRING_LITERAL )+ )+ ( IDENTIFIER )* | FLOATING_POINT_LITERAL );", 72, 0, self.input)
 
                     raise nvae
 
-                if alt69 == 1:
+                if alt72 == 1:
                     # C.g:386:9: HEX_LITERAL
                     self.match(self.input, HEX_LITERAL, self.FOLLOW_HEX_LITERAL_in_constant1628)
                     if self.failed:
                         return 
 
 
-                elif alt69 == 2:
+                elif alt72 == 2:
                     # C.g:387:9: OCTAL_LITERAL
                     self.match(self.input, OCTAL_LITERAL, self.FOLLOW_OCTAL_LITERAL_in_constant1638)
                     if self.failed:
                         return 
 
 
-                elif alt69 == 3:
+                elif alt72 == 3:
                     # C.g:388:9: DECIMAL_LITERAL
                     self.match(self.input, DECIMAL_LITERAL, self.FOLLOW_DECIMAL_LITERAL_in_constant1648)
                     if self.failed:
                         return 
 
 
-                elif alt69 == 4:
+                elif alt72 == 4:
                     # C.g:389:7: CHARACTER_LITERAL
                     self.match(self.input, CHARACTER_LITERAL, self.FOLLOW_CHARACTER_LITERAL_in_constant1656)
                     if self.failed:
                         return 
 
 
-                elif alt69 == 5:
-                    # C.g:390:7: ( STRING_LITERAL )+
-                    # C.g:390:7: ( STRING_LITERAL )+
-                    cnt68 = 0
-                    while True: #loop68
-                        alt68 = 2
-                        LA68_0 = self.input.LA(1)
+                elif alt72 == 5:
+                    # C.g:390:7: ( ( IDENTIFIER )* ( STRING_LITERAL )+ )+ ( IDENTIFIER )*
+                    # C.g:390:7: ( ( IDENTIFIER )* ( STRING_LITERAL )+ )+
+                    cnt70 = 0
+                    while True: #loop70
+                        alt70 = 2
+                        LA70_0 = self.input.LA(1)
 
-                        if (LA68_0 == STRING_LITERAL) :
-                            alt68 = 1
+                        if (LA70_0 == IDENTIFIER) :
+                            LA70_1 = self.input.LA(2)
+
+                            if (LA70_1 == IDENTIFIER) :
+                                LA70_61 = self.input.LA(3)
+
+                                if (self.synpred137()) :
+                                    alt70 = 1
+
+
+                            elif (LA70_1 == STRING_LITERAL) :
+                                alt70 = 1
+
+
+                        elif (LA70_0 == STRING_LITERAL) :
+                            alt70 = 1
+
+
+                        if alt70 == 1:
+                            # C.g:390:8: ( IDENTIFIER )* ( STRING_LITERAL )+
+                            # C.g:390:8: ( IDENTIFIER )*
+                            while True: #loop68
+                                alt68 = 2
+                                LA68_0 = self.input.LA(1)
+
+                                if (LA68_0 == IDENTIFIER) :
+                                    alt68 = 1
+
+
+                                if alt68 == 1:
+                                    # C.g:0:0: IDENTIFIER
+                                    self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_constant1665)
+                                    if self.failed:
+                                        return 
+
+
+                                else:
+                                    break #loop68
+
+
+                            # C.g:390:20: ( STRING_LITERAL )+
+                            cnt69 = 0
+                            while True: #loop69
+                                alt69 = 2
+                                LA69_0 = self.input.LA(1)
+
+                                if (LA69_0 == STRING_LITERAL) :
+                                    LA69_31 = self.input.LA(2)
+
+                                    if (self.synpred136()) :
+                                        alt69 = 1
+
+
+
+
+                                if alt69 == 1:
+                                    # C.g:0:0: STRING_LITERAL
+                                    self.match(self.input, STRING_LITERAL, self.FOLLOW_STRING_LITERAL_in_constant1668)
+                                    if self.failed:
+                                        return 
+
+
+                                else:
+                                    if cnt69 >= 1:
+                                        break #loop69
+
+                                    if self.backtracking > 0:
+                                        self.failed = True
+                                        return 
+
+                                    eee = EarlyExitException(69, self.input)
+                                    raise eee
+
+                                cnt69 += 1
 
 
-                        if alt68 == 1:
-                            # C.g:0:0: STRING_LITERAL
-                            self.match(self.input, STRING_LITERAL, self.FOLLOW_STRING_LITERAL_in_constant1664)
-                            if self.failed:
-                                return 
 
 
                         else:
-                            if cnt68 >= 1:
-                                break #loop68
+                            if cnt70 >= 1:
+                                break #loop70
 
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            eee = EarlyExitException(68, self.input)
+                            eee = EarlyExitException(70, self.input)
                             raise eee
 
-                        cnt68 += 1
+                        cnt70 += 1
 
 
+                    # C.g:390:38: ( IDENTIFIER )*
+                    while True: #loop71
+                        alt71 = 2
+                        LA71_0 = self.input.LA(1)
+
+                        if (LA71_0 == IDENTIFIER) :
+                            alt71 = 1
 
 
-                elif alt69 == 6:
+                        if alt71 == 1:
+                            # C.g:0:0: IDENTIFIER
+                            self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_constant1673)
+                            if self.failed:
+                                return 
+
+
+                        else:
+                            break #loop71
+
+
+
+
+                elif alt72 == 6:
                     # C.g:391:9: FLOATING_POINT_LITERAL
-                    self.match(self.input, FLOATING_POINT_LITERAL, self.FOLLOW_FLOATING_POINT_LITERAL_in_constant1675)
+                    self.match(self.input, FLOATING_POINT_LITERAL, self.FOLLOW_FLOATING_POINT_LITERAL_in_constant1684)
                     if self.failed:
                         return 
 
@@ -5916,26 +6017,26 @@ class CParser(Parser):
 
                 # C.g:397:2: ( assignment_expression ( ',' assignment_expression )* )
                 # C.g:397:4: assignment_expression ( ',' assignment_expression )*
-                self.following.append(self.FOLLOW_assignment_expression_in_expression1691)
+                self.following.append(self.FOLLOW_assignment_expression_in_expression1700)
                 self.assignment_expression()
                 self.following.pop()
                 if self.failed:
                     return retval
                 # C.g:397:26: ( ',' assignment_expression )*
-                while True: #loop70
-                    alt70 = 2
-                    LA70_0 = self.input.LA(1)
+                while True: #loop73
+                    alt73 = 2
+                    LA73_0 = self.input.LA(1)
 
-                    if (LA70_0 == 27) :
-                        alt70 = 1
+                    if (LA73_0 == 27) :
+                        alt73 = 1
 
 
-                    if alt70 == 1:
+                    if alt73 == 1:
                         # C.g:397:27: ',' assignment_expression
-                        self.match(self.input, 27, self.FOLLOW_27_in_expression1694)
+                        self.match(self.input, 27, self.FOLLOW_27_in_expression1703)
                         if self.failed:
                             return retval
-                        self.following.append(self.FOLLOW_assignment_expression_in_expression1696)
+                        self.following.append(self.FOLLOW_assignment_expression_in_expression1705)
                         self.assignment_expression()
                         self.following.pop()
                         if self.failed:
@@ -5943,7 +6044,7 @@ class CParser(Parser):
 
 
                     else:
-                        break #loop70
+                        break #loop73
 
 
 
@@ -5978,7 +6079,7 @@ class CParser(Parser):
 
                 # C.g:401:2: ( conditional_expression )
                 # C.g:401:4: conditional_expression
-                self.following.append(self.FOLLOW_conditional_expression_in_constant_expression1709)
+                self.following.append(self.FOLLOW_conditional_expression_in_constant_expression1718)
                 self.conditional_expression()
                 self.following.pop()
                 if self.failed:
@@ -6012,1309 +6113,1357 @@ class CParser(Parser):
                     return 
 
                 # C.g:405:2: ( lvalue assignment_operator assignment_expression | conditional_expression )
-                alt71 = 2
-                LA71 = self.input.LA(1)
-                if LA71 == IDENTIFIER:
-                    LA71 = self.input.LA(2)
-                    if LA71 == 63:
-                        LA71_13 = self.input.LA(3)
-
-                        if (self.synpred138()) :
-                            alt71 = 1
+                alt74 = 2
+                LA74 = self.input.LA(1)
+                if LA74 == IDENTIFIER:
+                    LA74 = self.input.LA(2)
+                    if LA74 == STRING_LITERAL:
+                        LA74_13 = self.input.LA(3)
+
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 13, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 13, self.input)
 
                             raise nvae
 
-                    elif LA71 == 61:
-                        LA71_14 = self.input.LA(3)
+                    elif LA74 == IDENTIFIER:
+                        LA74_14 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 14, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 14, self.input)
 
                             raise nvae
 
-                    elif LA71 == 74:
-                        LA71_15 = self.input.LA(3)
+                    elif LA74 == 63:
+                        LA74_15 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 15, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 15, self.input)
 
                             raise nvae
 
-                    elif LA71 == 65:
-                        LA71_16 = self.input.LA(3)
+                    elif LA74 == 61:
+                        LA74_16 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 16, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 16, self.input)
 
                             raise nvae
 
-                    elif LA71 == 75:
-                        LA71_17 = self.input.LA(3)
+                    elif LA74 == 74:
+                        LA74_17 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 17, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 17, self.input)
 
                             raise nvae
 
-                    elif LA71 == 71:
-                        LA71_18 = self.input.LA(3)
+                    elif LA74 == 65:
+                        LA74_18 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 18, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 18, self.input)
 
                             raise nvae
 
-                    elif LA71 == 72:
-                        LA71_19 = self.input.LA(3)
+                    elif LA74 == 75:
+                        LA74_19 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 19, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 19, self.input)
 
                             raise nvae
 
-                    elif LA71 == EOF or LA71 == 25 or LA71 == 27 or LA71 == 44 or LA71 == 47 or LA71 == 53 or LA71 == 62 or LA71 == 64 or LA71 == 67 or LA71 == 68 or LA71 == 69 or LA71 == 70 or LA71 == 76 or LA71 == 89 or LA71 == 90 or LA71 == 91 or LA71 == 92 or LA71 == 93 or LA71 == 94 or LA71 == 95 or LA71 == 96 or LA71 == 97 or LA71 == 98 or LA71 == 99 or LA71 == 100 or LA71 == 101:
-                        alt71 = 2
-                    elif LA71 == 28 or LA71 == 79 or LA71 == 80 or LA71 == 81 or LA71 == 82 or LA71 == 83 or LA71 == 84 or LA71 == 85 or LA71 == 86 or LA71 == 87 or LA71 == 88:
-                        alt71 = 1
+                    elif LA74 == 71:
+                        LA74_20 = self.input.LA(3)
+
+                        if (self.synpred141()) :
+                            alt74 = 1
+                        elif (True) :
+                            alt74 = 2
+                        else:
+                            if self.backtracking > 0:
+                                self.failed = True
+                                return 
+
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 20, self.input)
+
+                            raise nvae
+
+                    elif LA74 == 72:
+                        LA74_21 = self.input.LA(3)
+
+                        if (self.synpred141()) :
+                            alt74 = 1
+                        elif (True) :
+                            alt74 = 2
+                        else:
+                            if self.backtracking > 0:
+                                self.failed = True
+                                return 
+
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 21, self.input)
+
+                            raise nvae
+
+                    elif LA74 == 28 or LA74 == 79 or LA74 == 80 or LA74 == 81 or LA74 == 82 or LA74 == 83 or LA74 == 84 or LA74 == 85 or LA74 == 86 or LA74 == 87 or LA74 == 88:
+                        alt74 = 1
+                    elif LA74 == EOF or LA74 == 25 or LA74 == 27 or LA74 == 44 or LA74 == 47 or LA74 == 53 or LA74 == 62 or LA74 == 64 or LA74 == 67 or LA74 == 68 or LA74 == 69 or LA74 == 70 or LA74 == 76 or LA74 == 89 or LA74 == 90 or LA74 == 91 or LA74 == 92 or LA74 == 93 or LA74 == 94 or LA74 == 95 or LA74 == 96 or LA74 == 97 or LA74 == 98 or LA74 == 99 or LA74 == 100 or LA74 == 101:
+                        alt74 = 2
                     else:
                         if self.backtracking > 0:
                             self.failed = True
                             return 
 
-                        nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 1, self.input)
+                        nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 1, self.input)
 
                         raise nvae
 
-                elif LA71 == HEX_LITERAL:
-                    LA71 = self.input.LA(2)
-                    if LA71 == 63:
-                        LA71_42 = self.input.LA(3)
+                elif LA74 == HEX_LITERAL:
+                    LA74 = self.input.LA(2)
+                    if LA74 == 63:
+                        LA74_44 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 42, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 44, self.input)
 
                             raise nvae
 
-                    elif LA71 == 61:
-                        LA71_43 = self.input.LA(3)
+                    elif LA74 == 61:
+                        LA74_45 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 43, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 45, self.input)
 
                             raise nvae
 
-                    elif LA71 == 74:
-                        LA71_44 = self.input.LA(3)
+                    elif LA74 == 74:
+                        LA74_46 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 44, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 46, self.input)
 
                             raise nvae
 
-                    elif LA71 == 65:
-                        LA71_45 = self.input.LA(3)
+                    elif LA74 == 65:
+                        LA74_47 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 45, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 47, self.input)
 
                             raise nvae
 
-                    elif LA71 == 75:
-                        LA71_46 = self.input.LA(3)
+                    elif LA74 == 75:
+                        LA74_48 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 46, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 48, self.input)
 
                             raise nvae
 
-                    elif LA71 == 71:
-                        LA71_47 = self.input.LA(3)
+                    elif LA74 == 71:
+                        LA74_49 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 47, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 49, self.input)
 
                             raise nvae
 
-                    elif LA71 == 72:
-                        LA71_48 = self.input.LA(3)
+                    elif LA74 == 72:
+                        LA74_50 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 48, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 50, self.input)
 
                             raise nvae
 
-                    elif LA71 == EOF or LA71 == 25 or LA71 == 27 or LA71 == 44 or LA71 == 47 or LA71 == 53 or LA71 == 62 or LA71 == 64 or LA71 == 67 or LA71 == 68 or LA71 == 69 or LA71 == 70 or LA71 == 76 or LA71 == 89 or LA71 == 90 or LA71 == 91 or LA71 == 92 or LA71 == 93 or LA71 == 94 or LA71 == 95 or LA71 == 96 or LA71 == 97 or LA71 == 98 or LA71 == 99 or LA71 == 100 or LA71 == 101:
-                        alt71 = 2
-                    elif LA71 == 28 or LA71 == 79 or LA71 == 80 or LA71 == 81 or LA71 == 82 or LA71 == 83 or LA71 == 84 or LA71 == 85 or LA71 == 86 or LA71 == 87 or LA71 == 88:
-                        alt71 = 1
+                    elif LA74 == EOF or LA74 == 25 or LA74 == 27 or LA74 == 44 or LA74 == 47 or LA74 == 53 or LA74 == 62 or LA74 == 64 or LA74 == 67 or LA74 == 68 or LA74 == 69 or LA74 == 70 or LA74 == 76 or LA74 == 89 or LA74 == 90 or LA74 == 91 or LA74 == 92 or LA74 == 93 or LA74 == 94 or LA74 == 95 or LA74 == 96 or LA74 == 97 or LA74 == 98 or LA74 == 99 or LA74 == 100 or LA74 == 101:
+                        alt74 = 2
+                    elif LA74 == 28 or LA74 == 79 or LA74 == 80 or LA74 == 81 or LA74 == 82 or LA74 == 83 or LA74 == 84 or LA74 == 85 or LA74 == 86 or LA74 == 87 or LA74 == 88:
+                        alt74 = 1
                     else:
                         if self.backtracking > 0:
                             self.failed = True
                             return 
 
-                        nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 2, self.input)
+                        nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 2, self.input)
 
                         raise nvae
 
-                elif LA71 == OCTAL_LITERAL:
-                    LA71 = self.input.LA(2)
-                    if LA71 == 63:
-                        LA71_71 = self.input.LA(3)
+                elif LA74 == OCTAL_LITERAL:
+                    LA74 = self.input.LA(2)
+                    if LA74 == 63:
+                        LA74_73 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 71, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 73, self.input)
 
                             raise nvae
 
-                    elif LA71 == 61:
-                        LA71_72 = self.input.LA(3)
+                    elif LA74 == 61:
+                        LA74_74 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 72, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 74, self.input)
 
                             raise nvae
 
-                    elif LA71 == 74:
-                        LA71_73 = self.input.LA(3)
+                    elif LA74 == 74:
+                        LA74_75 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 73, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 75, self.input)
 
                             raise nvae
 
-                    elif LA71 == 65:
-                        LA71_74 = self.input.LA(3)
+                    elif LA74 == 65:
+                        LA74_76 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 74, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 76, self.input)
 
                             raise nvae
 
-                    elif LA71 == 75:
-                        LA71_75 = self.input.LA(3)
+                    elif LA74 == 75:
+                        LA74_77 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 75, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 77, self.input)
 
                             raise nvae
 
-                    elif LA71 == 71:
-                        LA71_76 = self.input.LA(3)
+                    elif LA74 == 71:
+                        LA74_78 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 76, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 78, self.input)
 
                             raise nvae
 
-                    elif LA71 == 72:
-                        LA71_77 = self.input.LA(3)
+                    elif LA74 == 72:
+                        LA74_79 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 77, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 79, self.input)
 
                             raise nvae
 
-                    elif LA71 == EOF or LA71 == 25 or LA71 == 27 or LA71 == 44 or LA71 == 47 or LA71 == 53 or LA71 == 62 or LA71 == 64 or LA71 == 67 or LA71 == 68 or LA71 == 69 or LA71 == 70 or LA71 == 76 or LA71 == 89 or LA71 == 90 or LA71 == 91 or LA71 == 92 or LA71 == 93 or LA71 == 94 or LA71 == 95 or LA71 == 96 or LA71 == 97 or LA71 == 98 or LA71 == 99 or LA71 == 100 or LA71 == 101:
-                        alt71 = 2
-                    elif LA71 == 28 or LA71 == 79 or LA71 == 80 or LA71 == 81 or LA71 == 82 or LA71 == 83 or LA71 == 84 or LA71 == 85 or LA71 == 86 or LA71 == 87 or LA71 == 88:
-                        alt71 = 1
+                    elif LA74 == EOF or LA74 == 25 or LA74 == 27 or LA74 == 44 or LA74 == 47 or LA74 == 53 or LA74 == 62 or LA74 == 64 or LA74 == 67 or LA74 == 68 or LA74 == 69 or LA74 == 70 or LA74 == 76 or LA74 == 89 or LA74 == 90 or LA74 == 91 or LA74 == 92 or LA74 == 93 or LA74 == 94 or LA74 == 95 or LA74 == 96 or LA74 == 97 or LA74 == 98 or LA74 == 99 or LA74 == 100 or LA74 == 101:
+                        alt74 = 2
+                    elif LA74 == 28 or LA74 == 79 or LA74 == 80 or LA74 == 81 or LA74 == 82 or LA74 == 83 or LA74 == 84 or LA74 == 85 or LA74 == 86 or LA74 == 87 or LA74 == 88:
+                        alt74 = 1
                     else:
                         if self.backtracking > 0:
                             self.failed = True
                             return 
 
-                        nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 3, self.input)
+                        nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 3, self.input)
 
                         raise nvae
 
-                elif LA71 == DECIMAL_LITERAL:
-                    LA71 = self.input.LA(2)
-                    if LA71 == 63:
-                        LA71_100 = self.input.LA(3)
+                elif LA74 == DECIMAL_LITERAL:
+                    LA74 = self.input.LA(2)
+                    if LA74 == 63:
+                        LA74_102 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 100, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 102, self.input)
 
                             raise nvae
 
-                    elif LA71 == 61:
-                        LA71_101 = self.input.LA(3)
+                    elif LA74 == 61:
+                        LA74_103 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 101, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 103, self.input)
 
                             raise nvae
 
-                    elif LA71 == 74:
-                        LA71_102 = self.input.LA(3)
+                    elif LA74 == 74:
+                        LA74_104 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 102, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 104, self.input)
 
                             raise nvae
 
-                    elif LA71 == 65:
-                        LA71_103 = self.input.LA(3)
+                    elif LA74 == 65:
+                        LA74_105 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 103, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 105, self.input)
 
                             raise nvae
 
-                    elif LA71 == 75:
-                        LA71_104 = self.input.LA(3)
+                    elif LA74 == 75:
+                        LA74_106 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 104, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 106, self.input)
 
                             raise nvae
 
-                    elif LA71 == 71:
-                        LA71_105 = self.input.LA(3)
+                    elif LA74 == 71:
+                        LA74_107 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 105, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 107, self.input)
 
                             raise nvae
 
-                    elif LA71 == 72:
-                        LA71_106 = self.input.LA(3)
+                    elif LA74 == 72:
+                        LA74_108 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 106, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 108, self.input)
 
                             raise nvae
 
-                    elif LA71 == 28 or LA71 == 79 or LA71 == 80 or LA71 == 81 or LA71 == 82 or LA71 == 83 or LA71 == 84 or LA71 == 85 or LA71 == 86 or LA71 == 87 or LA71 == 88:
-                        alt71 = 1
-                    elif LA71 == EOF or LA71 == 25 or LA71 == 27 or LA71 == 44 or LA71 == 47 or LA71 == 53 or LA71 == 62 or LA71 == 64 or LA71 == 67 or LA71 == 68 or LA71 == 69 or LA71 == 70 or LA71 == 76 or LA71 == 89 or LA71 == 90 or LA71 == 91 or LA71 == 92 or LA71 == 93 or LA71 == 94 or LA71 == 95 or LA71 == 96 or LA71 == 97 or LA71 == 98 or LA71 == 99 or LA71 == 100 or LA71 == 101:
-                        alt71 = 2
+                    elif LA74 == 28 or LA74 == 79 or LA74 == 80 or LA74 == 81 or LA74 == 82 or LA74 == 83 or LA74 == 84 or LA74 == 85 or LA74 == 86 or LA74 == 87 or LA74 == 88:
+                        alt74 = 1
+                    elif LA74 == EOF or LA74 == 25 or LA74 == 27 or LA74 == 44 or LA74 == 47 or LA74 == 53 or LA74 == 62 or LA74 == 64 or LA74 == 67 or LA74 == 68 or LA74 == 69 or LA74 == 70 or LA74 == 76 or LA74 == 89 or LA74 == 90 or LA74 == 91 or LA74 == 92 or LA74 == 93 or LA74 == 94 or LA74 == 95 or LA74 == 96 or LA74 == 97 or LA74 == 98 or LA74 == 99 or LA74 == 100 or LA74 == 101:
+                        alt74 = 2
                     else:
                         if self.backtracking > 0:
                             self.failed = True
                             return 
 
-                        nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 4, self.input)
+                        nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 4, self.input)
 
                         raise nvae
 
-                elif LA71 == CHARACTER_LITERAL:
-                    LA71 = self.input.LA(2)
-                    if LA71 == 63:
-                        LA71_129 = self.input.LA(3)
+                elif LA74 == CHARACTER_LITERAL:
+                    LA74 = self.input.LA(2)
+                    if LA74 == 63:
+                        LA74_131 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 129, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 131, self.input)
 
                             raise nvae
 
-                    elif LA71 == 61:
-                        LA71_130 = self.input.LA(3)
+                    elif LA74 == 61:
+                        LA74_132 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 130, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 132, self.input)
 
                             raise nvae
 
-                    elif LA71 == 74:
-                        LA71_131 = self.input.LA(3)
+                    elif LA74 == 74:
+                        LA74_133 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 131, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 133, self.input)
 
                             raise nvae
 
-                    elif LA71 == 65:
-                        LA71_132 = self.input.LA(3)
+                    elif LA74 == 65:
+                        LA74_134 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 132, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 134, self.input)
 
                             raise nvae
 
-                    elif LA71 == 75:
-                        LA71_133 = self.input.LA(3)
+                    elif LA74 == 75:
+                        LA74_135 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 133, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 135, self.input)
 
                             raise nvae
 
-                    elif LA71 == 71:
-                        LA71_134 = self.input.LA(3)
+                    elif LA74 == 71:
+                        LA74_136 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 134, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 136, self.input)
 
                             raise nvae
 
-                    elif LA71 == 72:
-                        LA71_135 = self.input.LA(3)
+                    elif LA74 == 72:
+                        LA74_137 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 135, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 137, self.input)
 
                             raise nvae
 
-                    elif LA71 == EOF or LA71 == 25 or LA71 == 27 or LA71 == 44 or LA71 == 47 or LA71 == 53 or LA71 == 62 or LA71 == 64 or LA71 == 67 or LA71 == 68 or LA71 == 69 or LA71 == 70 or LA71 == 76 or LA71 == 89 or LA71 == 90 or LA71 == 91 or LA71 == 92 or LA71 == 93 or LA71 == 94 or LA71 == 95 or LA71 == 96 or LA71 == 97 or LA71 == 98 or LA71 == 99 or LA71 == 100 or LA71 == 101:
-                        alt71 = 2
-                    elif LA71 == 28 or LA71 == 79 or LA71 == 80 or LA71 == 81 or LA71 == 82 or LA71 == 83 or LA71 == 84 or LA71 == 85 or LA71 == 86 or LA71 == 87 or LA71 == 88:
-                        alt71 = 1
+                    elif LA74 == EOF or LA74 == 25 or LA74 == 27 or LA74 == 44 or LA74 == 47 or LA74 == 53 or LA74 == 62 or LA74 == 64 or LA74 == 67 or LA74 == 68 or LA74 == 69 or LA74 == 70 or LA74 == 76 or LA74 == 89 or LA74 == 90 or LA74 == 91 or LA74 == 92 or LA74 == 93 or LA74 == 94 or LA74 == 95 or LA74 == 96 or LA74 == 97 or LA74 == 98 or LA74 == 99 or LA74 == 100 or LA74 == 101:
+                        alt74 = 2
+                    elif LA74 == 28 or LA74 == 79 or LA74 == 80 or LA74 == 81 or LA74 == 82 or LA74 == 83 or LA74 == 84 or LA74 == 85 or LA74 == 86 or LA74 == 87 or LA74 == 88:
+                        alt74 = 1
                     else:
                         if self.backtracking > 0:
                             self.failed = True
                             return 
 
-                        nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 5, self.input)
+                        nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 5, self.input)
 
                         raise nvae
 
-                elif LA71 == STRING_LITERAL:
-                    LA71 = self.input.LA(2)
-                    if LA71 == 63:
-                        LA71_158 = self.input.LA(3)
+                elif LA74 == STRING_LITERAL:
+                    LA74 = self.input.LA(2)
+                    if LA74 == IDENTIFIER:
+                        LA74_160 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 158, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 160, self.input)
 
                             raise nvae
 
-                    elif LA71 == 61:
-                        LA71_159 = self.input.LA(3)
+                    elif LA74 == 63:
+                        LA74_161 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 159, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 161, self.input)
 
                             raise nvae
 
-                    elif LA71 == 74:
-                        LA71_160 = self.input.LA(3)
+                    elif LA74 == 61:
+                        LA74_162 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 160, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 162, self.input)
 
                             raise nvae
 
-                    elif LA71 == 65:
-                        LA71_161 = self.input.LA(3)
+                    elif LA74 == 74:
+                        LA74_163 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 161, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 163, self.input)
 
                             raise nvae
 
-                    elif LA71 == 75:
-                        LA71_162 = self.input.LA(3)
+                    elif LA74 == 65:
+                        LA74_164 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 162, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 164, self.input)
 
                             raise nvae
 
-                    elif LA71 == 71:
-                        LA71_163 = self.input.LA(3)
+                    elif LA74 == 75:
+                        LA74_165 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 163, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 165, self.input)
 
                             raise nvae
 
-                    elif LA71 == 72:
-                        LA71_164 = self.input.LA(3)
+                    elif LA74 == 71:
+                        LA74_166 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 164, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 166, self.input)
 
                             raise nvae
 
-                    elif LA71 == EOF or LA71 == 25 or LA71 == 27 or LA71 == 44 or LA71 == 47 or LA71 == 53 or LA71 == 62 or LA71 == 64 or LA71 == 67 or LA71 == 68 or LA71 == 69 or LA71 == 70 or LA71 == 76 or LA71 == 89 or LA71 == 90 or LA71 == 91 or LA71 == 92 or LA71 == 93 or LA71 == 94 or LA71 == 95 or LA71 == 96 or LA71 == 97 or LA71 == 98 or LA71 == 99 or LA71 == 100 or LA71 == 101:
-                        alt71 = 2
-                    elif LA71 == STRING_LITERAL:
-                        LA71_186 = self.input.LA(3)
+                    elif LA74 == 72:
+                        LA74_167 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 186, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 167, self.input)
 
                             raise nvae
 
-                    elif LA71 == 28 or LA71 == 79 or LA71 == 80 or LA71 == 81 or LA71 == 82 or LA71 == 83 or LA71 == 84 or LA71 == 85 or LA71 == 86 or LA71 == 87 or LA71 == 88:
-                        alt71 = 1
+                    elif LA74 == 28 or LA74 == 79 or LA74 == 80 or LA74 == 81 or LA74 == 82 or LA74 == 83 or LA74 == 84 or LA74 == 85 or LA74 == 86 or LA74 == 87 or LA74 == 88:
+                        alt74 = 1
+                    elif LA74 == STRING_LITERAL:
+                        LA74_169 = self.input.LA(3)
+
+                        if (self.synpred141()) :
+                            alt74 = 1
+                        elif (True) :
+                            alt74 = 2
+                        else:
+                            if self.backtracking > 0:
+                                self.failed = True
+                                return 
+
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 169, self.input)
+
+                            raise nvae
+
+                    elif LA74 == EOF or LA74 == 25 or LA74 == 27 or LA74 == 44 or LA74 == 47 or LA74 == 53 or LA74 == 62 or LA74 == 64 or LA74 == 67 or LA74 == 68 or LA74 == 69 or LA74 == 70 or LA74 == 76 or LA74 == 89 or LA74 == 90 or LA74 == 91 or LA74 == 92 or LA74 == 93 or LA74 == 94 or LA74 == 95 or LA74 == 96 or LA74 == 97 or LA74 == 98 or LA74 == 99 or LA74 == 100 or LA74 == 101:
+                        alt74 = 2
                     else:
                         if self.backtracking > 0:
                             self.failed = True
                             return 
 
-                        nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 6, self.input)
+                        nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 6, self.input)
 
                         raise nvae
 
-                elif LA71 == FLOATING_POINT_LITERAL:
-                    LA71 = self.input.LA(2)
-                    if LA71 == 63:
-                        LA71_188 = self.input.LA(3)
+                elif LA74 == FLOATING_POINT_LITERAL:
+                    LA74 = self.input.LA(2)
+                    if LA74 == 63:
+                        LA74_191 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 188, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 191, self.input)
 
                             raise nvae
 
-                    elif LA71 == 61:
-                        LA71_189 = self.input.LA(3)
+                    elif LA74 == 61:
+                        LA74_192 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 189, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 192, self.input)
 
                             raise nvae
 
-                    elif LA71 == 74:
-                        LA71_190 = self.input.LA(3)
+                    elif LA74 == 74:
+                        LA74_193 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 190, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 193, self.input)
 
                             raise nvae
 
-                    elif LA71 == 65:
-                        LA71_191 = self.input.LA(3)
+                    elif LA74 == 65:
+                        LA74_194 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 191, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 194, self.input)
 
                             raise nvae
 
-                    elif LA71 == 75:
-                        LA71_192 = self.input.LA(3)
+                    elif LA74 == 75:
+                        LA74_195 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 192, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 195, self.input)
 
                             raise nvae
 
-                    elif LA71 == 71:
-                        LA71_193 = self.input.LA(3)
+                    elif LA74 == 71:
+                        LA74_196 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 193, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 196, self.input)
 
                             raise nvae
 
-                    elif LA71 == 72:
-                        LA71_194 = self.input.LA(3)
+                    elif LA74 == 72:
+                        LA74_197 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 194, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 197, self.input)
 
                             raise nvae
 
-                    elif LA71 == 28 or LA71 == 79 or LA71 == 80 or LA71 == 81 or LA71 == 82 or LA71 == 83 or LA71 == 84 or LA71 == 85 or LA71 == 86 or LA71 == 87 or LA71 == 88:
-                        alt71 = 1
-                    elif LA71 == EOF or LA71 == 25 or LA71 == 27 or LA71 == 44 or LA71 == 47 or LA71 == 53 or LA71 == 62 or LA71 == 64 or LA71 == 67 or LA71 == 68 or LA71 == 69 or LA71 == 70 or LA71 == 76 or LA71 == 89 or LA71 == 90 or LA71 == 91 or LA71 == 92 or LA71 == 93 or LA71 == 94 or LA71 == 95 or LA71 == 96 or LA71 == 97 or LA71 == 98 or LA71 == 99 or LA71 == 100 or LA71 == 101:
-                        alt71 = 2
+                    elif LA74 == EOF or LA74 == 25 or LA74 == 27 or LA74 == 44 or LA74 == 47 or LA74 == 53 or LA74 == 62 or LA74 == 64 or LA74 == 67 or LA74 == 68 or LA74 == 69 or LA74 == 70 or LA74 == 76 or LA74 == 89 or LA74 == 90 or LA74 == 91 or LA74 == 92 or LA74 == 93 or LA74 == 94 or LA74 == 95 or LA74 == 96 or LA74 == 97 or LA74 == 98 or LA74 == 99 or LA74 == 100 or LA74 == 101:
+                        alt74 = 2
+                    elif LA74 == 28 or LA74 == 79 or LA74 == 80 or LA74 == 81 or LA74 == 82 or LA74 == 83 or LA74 == 84 or LA74 == 85 or LA74 == 86 or LA74 == 87 or LA74 == 88:
+                        alt74 = 1
                     else:
                         if self.backtracking > 0:
                             self.failed = True
                             return 
 
-                        nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 7, self.input)
+                        nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 7, self.input)
 
                         raise nvae
 
-                elif LA71 == 61:
-                    LA71 = self.input.LA(2)
-                    if LA71 == IDENTIFIER:
-                        LA71_217 = self.input.LA(3)
+                elif LA74 == 61:
+                    LA74 = self.input.LA(2)
+                    if LA74 == 34 or LA74 == 35 or LA74 == 36 or LA74 == 37 or LA74 == 38 or LA74 == 39 or LA74 == 40 or LA74 == 41 or LA74 == 42 or LA74 == 45 or LA74 == 46 or LA74 == 48 or LA74 == 49 or LA74 == 50 or LA74 == 51 or LA74 == 52 or LA74 == 53 or LA74 == 54 or LA74 == 55 or LA74 == 56 or LA74 == 57 or LA74 == 58 or LA74 == 59 or LA74 == 60:
+                        alt74 = 2
+                    elif LA74 == IDENTIFIER:
+                        LA74_232 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 217, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 232, self.input)
 
                             raise nvae
 
-                    elif LA71 == HEX_LITERAL:
-                        LA71_218 = self.input.LA(3)
+                    elif LA74 == HEX_LITERAL:
+                        LA74_233 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 218, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 233, self.input)
 
                             raise nvae
 
-                    elif LA71 == OCTAL_LITERAL:
-                        LA71_219 = self.input.LA(3)
+                    elif LA74 == OCTAL_LITERAL:
+                        LA74_234 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 219, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 234, self.input)
 
                             raise nvae
 
-                    elif LA71 == DECIMAL_LITERAL:
-                        LA71_220 = self.input.LA(3)
+                    elif LA74 == DECIMAL_LITERAL:
+                        LA74_235 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 220, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 235, self.input)
 
                             raise nvae
 
-                    elif LA71 == CHARACTER_LITERAL:
-                        LA71_221 = self.input.LA(3)
+                    elif LA74 == CHARACTER_LITERAL:
+                        LA74_236 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 221, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 236, self.input)
 
                             raise nvae
 
-                    elif LA71 == STRING_LITERAL:
-                        LA71_222 = self.input.LA(3)
+                    elif LA74 == STRING_LITERAL:
+                        LA74_237 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 222, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 237, self.input)
 
                             raise nvae
 
-                    elif LA71 == FLOATING_POINT_LITERAL:
-                        LA71_223 = self.input.LA(3)
+                    elif LA74 == FLOATING_POINT_LITERAL:
+                        LA74_238 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 223, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 238, self.input)
 
                             raise nvae
 
-                    elif LA71 == 61:
-                        LA71_224 = self.input.LA(3)
+                    elif LA74 == 61:
+                        LA74_239 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 224, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 239, self.input)
 
                             raise nvae
 
-                    elif LA71 == 71:
-                        LA71_225 = self.input.LA(3)
+                    elif LA74 == 71:
+                        LA74_240 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 225, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 240, self.input)
 
                             raise nvae
 
-                    elif LA71 == 72:
-                        LA71_226 = self.input.LA(3)
+                    elif LA74 == 72:
+                        LA74_241 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 226, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 241, self.input)
 
                             raise nvae
 
-                    elif LA71 == 65 or LA71 == 67 or LA71 == 68 or LA71 == 76 or LA71 == 77 or LA71 == 78:
-                        LA71_227 = self.input.LA(3)
+                    elif LA74 == 65 or LA74 == 67 or LA74 == 68 or LA74 == 76 or LA74 == 77 or LA74 == 78:
+                        LA74_242 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 227, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 242, self.input)
 
                             raise nvae
 
-                    elif LA71 == 73:
-                        LA71_228 = self.input.LA(3)
+                    elif LA74 == 73:
+                        LA74_243 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 228, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 243, self.input)
 
                             raise nvae
 
-                    elif LA71 == 34 or LA71 == 35 or LA71 == 36 or LA71 == 37 or LA71 == 38 or LA71 == 39 or LA71 == 40 or LA71 == 41 or LA71 == 42 or LA71 == 45 or LA71 == 46 or LA71 == 48 or LA71 == 49 or LA71 == 50 or LA71 == 51 or LA71 == 52 or LA71 == 53 or LA71 == 54 or LA71 == 55 or LA71 == 56 or LA71 == 57 or LA71 == 58 or LA71 == 59 or LA71 == 60:
-                        alt71 = 2
                     else:
                         if self.backtracking > 0:
                             self.failed = True
                             return 
 
-                        nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 8, self.input)
+                        nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 8, self.input)
 
                         raise nvae
 
-                elif LA71 == 71:
-                    LA71 = self.input.LA(2)
-                    if LA71 == IDENTIFIER:
-                        LA71_241 = self.input.LA(3)
+                elif LA74 == 71:
+                    LA74 = self.input.LA(2)
+                    if LA74 == IDENTIFIER:
+                        LA74_244 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 241, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 244, self.input)
 
                             raise nvae
 
-                    elif LA71 == HEX_LITERAL:
-                        LA71_242 = self.input.LA(3)
+                    elif LA74 == HEX_LITERAL:
+                        LA74_245 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 242, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 245, self.input)
 
                             raise nvae
 
-                    elif LA71 == OCTAL_LITERAL:
-                        LA71_243 = self.input.LA(3)
+                    elif LA74 == OCTAL_LITERAL:
+                        LA74_246 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 243, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 246, self.input)
 
                             raise nvae
 
-                    elif LA71 == DECIMAL_LITERAL:
-                        LA71_244 = self.input.LA(3)
+                    elif LA74 == DECIMAL_LITERAL:
+                        LA74_247 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 244, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 247, self.input)
 
                             raise nvae
 
-                    elif LA71 == CHARACTER_LITERAL:
-                        LA71_245 = self.input.LA(3)
+                    elif LA74 == CHARACTER_LITERAL:
+                        LA74_248 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 245, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 248, self.input)
 
                             raise nvae
 
-                    elif LA71 == STRING_LITERAL:
-                        LA71_246 = self.input.LA(3)
+                    elif LA74 == STRING_LITERAL:
+                        LA74_249 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 246, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 249, self.input)
 
                             raise nvae
 
-                    elif LA71 == FLOATING_POINT_LITERAL:
-                        LA71_247 = self.input.LA(3)
+                    elif LA74 == FLOATING_POINT_LITERAL:
+                        LA74_250 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 247, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 250, self.input)
 
                             raise nvae
 
-                    elif LA71 == 61:
-                        LA71_248 = self.input.LA(3)
+                    elif LA74 == 61:
+                        LA74_251 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 248, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 251, self.input)
 
                             raise nvae
 
-                    elif LA71 == 71:
-                        LA71_249 = self.input.LA(3)
+                    elif LA74 == 71:
+                        LA74_252 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 249, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 252, self.input)
 
                             raise nvae
 
-                    elif LA71 == 72:
-                        LA71_250 = self.input.LA(3)
+                    elif LA74 == 72:
+                        LA74_253 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 250, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 253, self.input)
 
                             raise nvae
 
-                    elif LA71 == 65 or LA71 == 67 or LA71 == 68 or LA71 == 76 or LA71 == 77 or LA71 == 78:
-                        LA71_251 = self.input.LA(3)
+                    elif LA74 == 65 or LA74 == 67 or LA74 == 68 or LA74 == 76 or LA74 == 77 or LA74 == 78:
+                        LA74_254 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 251, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 254, self.input)
 
                             raise nvae
 
-                    elif LA71 == 73:
-                        LA71_252 = self.input.LA(3)
+                    elif LA74 == 73:
+                        LA74_255 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 252, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 255, self.input)
 
                             raise nvae
 
@@ -7323,201 +7472,201 @@ class CParser(Parser):
                             self.failed = True
                             return 
 
-                        nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 9, self.input)
+                        nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 9, self.input)
 
                         raise nvae
 
-                elif LA71 == 72:
-                    LA71 = self.input.LA(2)
-                    if LA71 == IDENTIFIER:
-                        LA71_253 = self.input.LA(3)
+                elif LA74 == 72:
+                    LA74 = self.input.LA(2)
+                    if LA74 == IDENTIFIER:
+                        LA74_256 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 253, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 256, self.input)
 
                             raise nvae
 
-                    elif LA71 == HEX_LITERAL:
-                        LA71_254 = self.input.LA(3)
+                    elif LA74 == HEX_LITERAL:
+                        LA74_257 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 254, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 257, self.input)
 
                             raise nvae
 
-                    elif LA71 == OCTAL_LITERAL:
-                        LA71_255 = self.input.LA(3)
+                    elif LA74 == OCTAL_LITERAL:
+                        LA74_258 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 255, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 258, self.input)
 
                             raise nvae
 
-                    elif LA71 == DECIMAL_LITERAL:
-                        LA71_256 = self.input.LA(3)
+                    elif LA74 == DECIMAL_LITERAL:
+                        LA74_259 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 256, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 259, self.input)
 
                             raise nvae
 
-                    elif LA71 == CHARACTER_LITERAL:
-                        LA71_257 = self.input.LA(3)
+                    elif LA74 == CHARACTER_LITERAL:
+                        LA74_260 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 257, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 260, self.input)
 
                             raise nvae
 
-                    elif LA71 == STRING_LITERAL:
-                        LA71_258 = self.input.LA(3)
+                    elif LA74 == STRING_LITERAL:
+                        LA74_261 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 258, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 261, self.input)
 
                             raise nvae
 
-                    elif LA71 == FLOATING_POINT_LITERAL:
-                        LA71_259 = self.input.LA(3)
+                    elif LA74 == FLOATING_POINT_LITERAL:
+                        LA74_262 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 259, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 262, self.input)
 
                             raise nvae
 
-                    elif LA71 == 61:
-                        LA71_260 = self.input.LA(3)
+                    elif LA74 == 61:
+                        LA74_263 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 260, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 263, self.input)
 
                             raise nvae
 
-                    elif LA71 == 71:
-                        LA71_261 = self.input.LA(3)
+                    elif LA74 == 71:
+                        LA74_264 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 261, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 264, self.input)
 
                             raise nvae
 
-                    elif LA71 == 72:
-                        LA71_262 = self.input.LA(3)
+                    elif LA74 == 72:
+                        LA74_265 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 262, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 265, self.input)
 
                             raise nvae
 
-                    elif LA71 == 65 or LA71 == 67 or LA71 == 68 or LA71 == 76 or LA71 == 77 or LA71 == 78:
-                        LA71_263 = self.input.LA(3)
+                    elif LA74 == 65 or LA74 == 67 or LA74 == 68 or LA74 == 76 or LA74 == 77 or LA74 == 78:
+                        LA74_266 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 263, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 266, self.input)
 
                             raise nvae
 
-                    elif LA71 == 73:
-                        LA71_264 = self.input.LA(3)
+                    elif LA74 == 73:
+                        LA74_267 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 264, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 267, self.input)
 
                             raise nvae
 
@@ -7526,201 +7675,201 @@ class CParser(Parser):
                             self.failed = True
                             return 
 
-                        nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 10, self.input)
+                        nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 10, self.input)
 
                         raise nvae
 
-                elif LA71 == 65 or LA71 == 67 or LA71 == 68 or LA71 == 76 or LA71 == 77 or LA71 == 78:
-                    LA71 = self.input.LA(2)
-                    if LA71 == 61:
-                        LA71_265 = self.input.LA(3)
+                elif LA74 == 65 or LA74 == 67 or LA74 == 68 or LA74 == 76 or LA74 == 77 or LA74 == 78:
+                    LA74 = self.input.LA(2)
+                    if LA74 == 61:
+                        LA74_268 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 265, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 268, self.input)
 
                             raise nvae
 
-                    elif LA71 == IDENTIFIER:
-                        LA71_266 = self.input.LA(3)
+                    elif LA74 == IDENTIFIER:
+                        LA74_269 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 266, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 269, self.input)
 
                             raise nvae
 
-                    elif LA71 == HEX_LITERAL:
-                        LA71_267 = self.input.LA(3)
+                    elif LA74 == HEX_LITERAL:
+                        LA74_270 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 267, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 270, self.input)
 
                             raise nvae
 
-                    elif LA71 == OCTAL_LITERAL:
-                        LA71_268 = self.input.LA(3)
+                    elif LA74 == OCTAL_LITERAL:
+                        LA74_271 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 268, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 271, self.input)
 
                             raise nvae
 
-                    elif LA71 == DECIMAL_LITERAL:
-                        LA71_269 = self.input.LA(3)
+                    elif LA74 == DECIMAL_LITERAL:
+                        LA74_272 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 269, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 272, self.input)
 
                             raise nvae
 
-                    elif LA71 == CHARACTER_LITERAL:
-                        LA71_270 = self.input.LA(3)
+                    elif LA74 == CHARACTER_LITERAL:
+                        LA74_273 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 270, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 273, self.input)
 
                             raise nvae
 
-                    elif LA71 == STRING_LITERAL:
-                        LA71_271 = self.input.LA(3)
+                    elif LA74 == STRING_LITERAL:
+                        LA74_274 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 271, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 274, self.input)
 
                             raise nvae
 
-                    elif LA71 == FLOATING_POINT_LITERAL:
-                        LA71_272 = self.input.LA(3)
+                    elif LA74 == FLOATING_POINT_LITERAL:
+                        LA74_275 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 272, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 275, self.input)
 
                             raise nvae
 
-                    elif LA71 == 71:
-                        LA71_273 = self.input.LA(3)
+                    elif LA74 == 71:
+                        LA74_276 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 273, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 276, self.input)
 
                             raise nvae
 
-                    elif LA71 == 72:
-                        LA71_274 = self.input.LA(3)
+                    elif LA74 == 72:
+                        LA74_277 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 274, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 277, self.input)
 
                             raise nvae
 
-                    elif LA71 == 65 or LA71 == 67 or LA71 == 68 or LA71 == 76 or LA71 == 77 or LA71 == 78:
-                        LA71_275 = self.input.LA(3)
+                    elif LA74 == 65 or LA74 == 67 or LA74 == 68 or LA74 == 76 or LA74 == 77 or LA74 == 78:
+                        LA74_278 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 275, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 278, self.input)
 
                             raise nvae
 
-                    elif LA71 == 73:
-                        LA71_276 = self.input.LA(3)
+                    elif LA74 == 73:
+                        LA74_279 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 276, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 279, self.input)
 
                             raise nvae
 
@@ -7729,201 +7878,201 @@ class CParser(Parser):
                             self.failed = True
                             return 
 
-                        nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 11, self.input)
+                        nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 11, self.input)
 
                         raise nvae
 
-                elif LA71 == 73:
-                    LA71 = self.input.LA(2)
-                    if LA71 == 61:
-                        LA71_277 = self.input.LA(3)
+                elif LA74 == 73:
+                    LA74 = self.input.LA(2)
+                    if LA74 == 61:
+                        LA74_280 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 277, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 280, self.input)
 
                             raise nvae
 
-                    elif LA71 == IDENTIFIER:
-                        LA71_278 = self.input.LA(3)
+                    elif LA74 == IDENTIFIER:
+                        LA74_281 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 278, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 281, self.input)
 
                             raise nvae
 
-                    elif LA71 == HEX_LITERAL:
-                        LA71_279 = self.input.LA(3)
+                    elif LA74 == HEX_LITERAL:
+                        LA74_282 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 279, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 282, self.input)
 
                             raise nvae
 
-                    elif LA71 == OCTAL_LITERAL:
-                        LA71_280 = self.input.LA(3)
+                    elif LA74 == OCTAL_LITERAL:
+                        LA74_283 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 280, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 283, self.input)
 
                             raise nvae
 
-                    elif LA71 == DECIMAL_LITERAL:
-                        LA71_281 = self.input.LA(3)
+                    elif LA74 == DECIMAL_LITERAL:
+                        LA74_284 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 281, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 284, self.input)
 
                             raise nvae
 
-                    elif LA71 == CHARACTER_LITERAL:
-                        LA71_282 = self.input.LA(3)
+                    elif LA74 == CHARACTER_LITERAL:
+                        LA74_285 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 282, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 285, self.input)
 
                             raise nvae
 
-                    elif LA71 == STRING_LITERAL:
-                        LA71_283 = self.input.LA(3)
+                    elif LA74 == STRING_LITERAL:
+                        LA74_286 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 283, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 286, self.input)
 
                             raise nvae
 
-                    elif LA71 == FLOATING_POINT_LITERAL:
-                        LA71_284 = self.input.LA(3)
+                    elif LA74 == FLOATING_POINT_LITERAL:
+                        LA74_287 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 284, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 287, self.input)
 
                             raise nvae
 
-                    elif LA71 == 71:
-                        LA71_285 = self.input.LA(3)
+                    elif LA74 == 71:
+                        LA74_288 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 285, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 288, self.input)
 
                             raise nvae
 
-                    elif LA71 == 72:
-                        LA71_286 = self.input.LA(3)
+                    elif LA74 == 72:
+                        LA74_289 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 286, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 289, self.input)
 
                             raise nvae
 
-                    elif LA71 == 65 or LA71 == 67 or LA71 == 68 or LA71 == 76 or LA71 == 77 or LA71 == 78:
-                        LA71_287 = self.input.LA(3)
+                    elif LA74 == 65 or LA74 == 67 or LA74 == 68 or LA74 == 76 or LA74 == 77 or LA74 == 78:
+                        LA74_290 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 287, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 290, self.input)
 
                             raise nvae
 
-                    elif LA71 == 73:
-                        LA71_288 = self.input.LA(3)
+                    elif LA74 == 73:
+                        LA74_291 = self.input.LA(3)
 
-                        if (self.synpred138()) :
-                            alt71 = 1
+                        if (self.synpred141()) :
+                            alt74 = 1
                         elif (True) :
-                            alt71 = 2
+                            alt74 = 2
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 288, self.input)
+                            nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 291, self.input)
 
                             raise nvae
 
@@ -7932,7 +8081,7 @@ class CParser(Parser):
                             self.failed = True
                             return 
 
-                        nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 12, self.input)
+                        nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 12, self.input)
 
                         raise nvae
 
@@ -7941,32 +8090,32 @@ class CParser(Parser):
                         self.failed = True
                         return 
 
-                    nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 71, 0, self.input)
+                    nvae = NoViableAltException("404:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 0, self.input)
 
                     raise nvae
 
-                if alt71 == 1:
+                if alt74 == 1:
                     # C.g:405:4: lvalue assignment_operator assignment_expression
-                    self.following.append(self.FOLLOW_lvalue_in_assignment_expression1720)
+                    self.following.append(self.FOLLOW_lvalue_in_assignment_expression1729)
                     self.lvalue()
                     self.following.pop()
                     if self.failed:
                         return 
-                    self.following.append(self.FOLLOW_assignment_operator_in_assignment_expression1722)
+                    self.following.append(self.FOLLOW_assignment_operator_in_assignment_expression1731)
                     self.assignment_operator()
                     self.following.pop()
                     if self.failed:
                         return 
-                    self.following.append(self.FOLLOW_assignment_expression_in_assignment_expression1724)
+                    self.following.append(self.FOLLOW_assignment_expression_in_assignment_expression1733)
                     self.assignment_expression()
                     self.following.pop()
                     if self.failed:
                         return 
 
 
-                elif alt71 == 2:
+                elif alt74 == 2:
                     # C.g:406:4: conditional_expression
-                    self.following.append(self.FOLLOW_conditional_expression_in_assignment_expression1729)
+                    self.following.append(self.FOLLOW_conditional_expression_in_assignment_expression1738)
                     self.conditional_expression()
                     self.following.pop()
                     if self.failed:
@@ -8000,7 +8149,7 @@ class CParser(Parser):
 
                 # C.g:410:2: ( unary_expression )
                 # C.g:410:4: unary_expression
-                self.following.append(self.FOLLOW_unary_expression_in_lvalue1741)
+                self.following.append(self.FOLLOW_unary_expression_in_lvalue1750)
                 self.unary_expression()
                 self.following.pop()
                 if self.failed:
@@ -8085,31 +8234,31 @@ class CParser(Parser):
 
                 # C.g:428:2: (e= logical_or_expression ( '?' expression ':' conditional_expression )? )
                 # C.g:428:4: e= logical_or_expression ( '?' expression ':' conditional_expression )?
-                self.following.append(self.FOLLOW_logical_or_expression_in_conditional_expression1815)
+                self.following.append(self.FOLLOW_logical_or_expression_in_conditional_expression1824)
                 e = self.logical_or_expression()
                 self.following.pop()
                 if self.failed:
                     return 
                 # C.g:428:28: ( '?' expression ':' conditional_expression )?
-                alt72 = 2
-                LA72_0 = self.input.LA(1)
+                alt75 = 2
+                LA75_0 = self.input.LA(1)
 
-                if (LA72_0 == 89) :
-                    alt72 = 1
-                if alt72 == 1:
+                if (LA75_0 == 89) :
+                    alt75 = 1
+                if alt75 == 1:
                     # C.g:428:29: '?' expression ':' conditional_expression
-                    self.match(self.input, 89, self.FOLLOW_89_in_conditional_expression1818)
+                    self.match(self.input, 89, self.FOLLOW_89_in_conditional_expression1827)
                     if self.failed:
                         return 
-                    self.following.append(self.FOLLOW_expression_in_conditional_expression1820)
+                    self.following.append(self.FOLLOW_expression_in_conditional_expression1829)
                     self.expression()
                     self.following.pop()
                     if self.failed:
                         return 
-                    self.match(self.input, 47, self.FOLLOW_47_in_conditional_expression1822)
+                    self.match(self.input, 47, self.FOLLOW_47_in_conditional_expression1831)
                     if self.failed:
                         return 
-                    self.following.append(self.FOLLOW_conditional_expression_in_conditional_expression1824)
+                    self.following.append(self.FOLLOW_conditional_expression_in_conditional_expression1833)
                     self.conditional_expression()
                     self.following.pop()
                     if self.failed:
@@ -8158,26 +8307,26 @@ class CParser(Parser):
 
                 # C.g:432:2: ( logical_and_expression ( '||' logical_and_expression )* )
                 # C.g:432:4: logical_and_expression ( '||' logical_and_expression )*
-                self.following.append(self.FOLLOW_logical_and_expression_in_logical_or_expression1839)
+                self.following.append(self.FOLLOW_logical_and_expression_in_logical_or_expression1848)
                 self.logical_and_expression()
                 self.following.pop()
                 if self.failed:
                     return retval
                 # C.g:432:27: ( '||' logical_and_expression )*
-                while True: #loop73
-                    alt73 = 2
-                    LA73_0 = self.input.LA(1)
+                while True: #loop76
+                    alt76 = 2
+                    LA76_0 = self.input.LA(1)
 
-                    if (LA73_0 == 90) :
-                        alt73 = 1
+                    if (LA76_0 == 90) :
+                        alt76 = 1
 
 
-                    if alt73 == 1:
+                    if alt76 == 1:
                         # C.g:432:28: '||' logical_and_expression
-                        self.match(self.input, 90, self.FOLLOW_90_in_logical_or_expression1842)
+                        self.match(self.input, 90, self.FOLLOW_90_in_logical_or_expression1851)
                         if self.failed:
                             return retval
-                        self.following.append(self.FOLLOW_logical_and_expression_in_logical_or_expression1844)
+                        self.following.append(self.FOLLOW_logical_and_expression_in_logical_or_expression1853)
                         self.logical_and_expression()
                         self.following.pop()
                         if self.failed:
@@ -8185,7 +8334,7 @@ class CParser(Parser):
 
 
                     else:
-                        break #loop73
+                        break #loop76
 
 
 
@@ -8220,26 +8369,26 @@ class CParser(Parser):
 
                 # C.g:436:2: ( inclusive_or_expression ( '&&' inclusive_or_expression )* )
                 # C.g:436:4: inclusive_or_expression ( '&&' inclusive_or_expression )*
-                self.following.append(self.FOLLOW_inclusive_or_expression_in_logical_and_expression1857)
+                self.following.append(self.FOLLOW_inclusive_or_expression_in_logical_and_expression1866)
                 self.inclusive_or_expression()
                 self.following.pop()
                 if self.failed:
                     return 
                 # C.g:436:28: ( '&&' inclusive_or_expression )*
-                while True: #loop74
-                    alt74 = 2
-                    LA74_0 = self.input.LA(1)
+                while True: #loop77
+                    alt77 = 2
+                    LA77_0 = self.input.LA(1)
 
-                    if (LA74_0 == 91) :
-                        alt74 = 1
+                    if (LA77_0 == 91) :
+                        alt77 = 1
 
 
-                    if alt74 == 1:
+                    if alt77 == 1:
                         # C.g:436:29: '&&' inclusive_or_expression
-                        self.match(self.input, 91, self.FOLLOW_91_in_logical_and_expression1860)
+                        self.match(self.input, 91, self.FOLLOW_91_in_logical_and_expression1869)
                         if self.failed:
                             return 
-                        self.following.append(self.FOLLOW_inclusive_or_expression_in_logical_and_expression1862)
+                        self.following.append(self.FOLLOW_inclusive_or_expression_in_logical_and_expression1871)
                         self.inclusive_or_expression()
                         self.following.pop()
                         if self.failed:
@@ -8247,7 +8396,7 @@ class CParser(Parser):
 
 
                     else:
-                        break #loop74
+                        break #loop77
 
 
 
@@ -8280,26 +8429,26 @@ class CParser(Parser):
 
                 # C.g:440:2: ( exclusive_or_expression ( '|' exclusive_or_expression )* )
                 # C.g:440:4: exclusive_or_expression ( '|' exclusive_or_expression )*
-                self.following.append(self.FOLLOW_exclusive_or_expression_in_inclusive_or_expression1875)
+                self.following.append(self.FOLLOW_exclusive_or_expression_in_inclusive_or_expression1884)
                 self.exclusive_or_expression()
                 self.following.pop()
                 if self.failed:
                     return 
                 # C.g:440:28: ( '|' exclusive_or_expression )*
-                while True: #loop75
-                    alt75 = 2
-                    LA75_0 = self.input.LA(1)
+                while True: #loop78
+                    alt78 = 2
+                    LA78_0 = self.input.LA(1)
 
-                    if (LA75_0 == 92) :
-                        alt75 = 1
+                    if (LA78_0 == 92) :
+                        alt78 = 1
 
 
-                    if alt75 == 1:
+                    if alt78 == 1:
                         # C.g:440:29: '|' exclusive_or_expression
-                        self.match(self.input, 92, self.FOLLOW_92_in_inclusive_or_expression1878)
+                        self.match(self.input, 92, self.FOLLOW_92_in_inclusive_or_expression1887)
                         if self.failed:
                             return 
-                        self.following.append(self.FOLLOW_exclusive_or_expression_in_inclusive_or_expression1880)
+                        self.following.append(self.FOLLOW_exclusive_or_expression_in_inclusive_or_expression1889)
                         self.exclusive_or_expression()
                         self.following.pop()
                         if self.failed:
@@ -8307,7 +8456,7 @@ class CParser(Parser):
 
 
                     else:
-                        break #loop75
+                        break #loop78
 
 
 
@@ -8340,26 +8489,26 @@ class CParser(Parser):
 
                 # C.g:444:2: ( and_expression ( '^' and_expression )* )
                 # C.g:444:4: and_expression ( '^' and_expression )*
-                self.following.append(self.FOLLOW_and_expression_in_exclusive_or_expression1893)
+                self.following.append(self.FOLLOW_and_expression_in_exclusive_or_expression1902)
                 self.and_expression()
                 self.following.pop()
                 if self.failed:
                     return 
                 # C.g:444:19: ( '^' and_expression )*
-                while True: #loop76
-                    alt76 = 2
-                    LA76_0 = self.input.LA(1)
+                while True: #loop79
+                    alt79 = 2
+                    LA79_0 = self.input.LA(1)
 
-                    if (LA76_0 == 93) :
-                        alt76 = 1
+                    if (LA79_0 == 93) :
+                        alt79 = 1
 
 
-                    if alt76 == 1:
+                    if alt79 == 1:
                         # C.g:444:20: '^' and_expression
-                        self.match(self.input, 93, self.FOLLOW_93_in_exclusive_or_expression1896)
+                        self.match(self.input, 93, self.FOLLOW_93_in_exclusive_or_expression1905)
                         if self.failed:
                             return 
-                        self.following.append(self.FOLLOW_and_expression_in_exclusive_or_expression1898)
+                        self.following.append(self.FOLLOW_and_expression_in_exclusive_or_expression1907)
                         self.and_expression()
                         self.following.pop()
                         if self.failed:
@@ -8367,7 +8516,7 @@ class CParser(Parser):
 
 
                     else:
-                        break #loop76
+                        break #loop79
 
 
 
@@ -8400,26 +8549,26 @@ class CParser(Parser):
 
                 # C.g:448:2: ( equality_expression ( '&' equality_expression )* )
                 # C.g:448:4: equality_expression ( '&' equality_expression )*
-                self.following.append(self.FOLLOW_equality_expression_in_and_expression1911)
+                self.following.append(self.FOLLOW_equality_expression_in_and_expression1920)
                 self.equality_expression()
                 self.following.pop()
                 if self.failed:
                     return 
                 # C.g:448:24: ( '&' equality_expression )*
-                while True: #loop77
-                    alt77 = 2
-                    LA77_0 = self.input.LA(1)
+                while True: #loop80
+                    alt80 = 2
+                    LA80_0 = self.input.LA(1)
 
-                    if (LA77_0 == 76) :
-                        alt77 = 1
+                    if (LA80_0 == 76) :
+                        alt80 = 1
 
 
-                    if alt77 == 1:
+                    if alt80 == 1:
                         # C.g:448:25: '&' equality_expression
-                        self.match(self.input, 76, self.FOLLOW_76_in_and_expression1914)
+                        self.match(self.input, 76, self.FOLLOW_76_in_and_expression1923)
                         if self.failed:
                             return 
-                        self.following.append(self.FOLLOW_equality_expression_in_and_expression1916)
+                        self.following.append(self.FOLLOW_equality_expression_in_and_expression1925)
                         self.equality_expression()
                         self.following.pop()
                         if self.failed:
@@ -8427,7 +8576,7 @@ class CParser(Parser):
 
 
                     else:
-                        break #loop77
+                        break #loop80
 
 
 
@@ -8460,21 +8609,21 @@ class CParser(Parser):
 
                 # C.g:451:2: ( relational_expression ( ( '==' | '!=' ) relational_expression )* )
                 # C.g:451:4: relational_expression ( ( '==' | '!=' ) relational_expression )*
-                self.following.append(self.FOLLOW_relational_expression_in_equality_expression1928)
+                self.following.append(self.FOLLOW_relational_expression_in_equality_expression1937)
                 self.relational_expression()
                 self.following.pop()
                 if self.failed:
                     return 
                 # C.g:451:26: ( ( '==' | '!=' ) relational_expression )*
-                while True: #loop78
-                    alt78 = 2
-                    LA78_0 = self.input.LA(1)
+                while True: #loop81
+                    alt81 = 2
+                    LA81_0 = self.input.LA(1)
 
-                    if ((94 <= LA78_0 <= 95)) :
-                        alt78 = 1
+                    if ((94 <= LA81_0 <= 95)) :
+                        alt81 = 1
 
 
-                    if alt78 == 1:
+                    if alt81 == 1:
                         # C.g:451:27: ( '==' | '!=' ) relational_expression
                         if (94 <= self.input.LA(1) <= 95):
                             self.input.consume();
@@ -8488,12 +8637,12 @@ class CParser(Parser):
 
                             mse = MismatchedSetException(None, self.input)
                             self.recoverFromMismatchedSet(
-                                self.input, mse, self.FOLLOW_set_in_equality_expression1931
+                                self.input, mse, self.FOLLOW_set_in_equality_expression1940
                                 )
                             raise mse
 
 
-                        self.following.append(self.FOLLOW_relational_expression_in_equality_expression1937)
+                        self.following.append(self.FOLLOW_relational_expression_in_equality_expression1946)
                         self.relational_expression()
                         self.following.pop()
                         if self.failed:
@@ -8501,7 +8650,7 @@ class CParser(Parser):
 
 
                     else:
-                        break #loop78
+                        break #loop81
 
 
 
@@ -8534,21 +8683,21 @@ class CParser(Parser):
 
                 # C.g:455:2: ( shift_expression ( ( '<' | '>' | '<=' | '>=' ) shift_expression )* )
                 # C.g:455:4: shift_expression ( ( '<' | '>' | '<=' | '>=' ) shift_expression )*
-                self.following.append(self.FOLLOW_shift_expression_in_relational_expression1951)
+                self.following.append(self.FOLLOW_shift_expression_in_relational_expression1960)
                 self.shift_expression()
                 self.following.pop()
                 if self.failed:
                     return 
                 # C.g:455:21: ( ( '<' | '>' | '<=' | '>=' ) shift_expression )*
-                while True: #loop79
-                    alt79 = 2
-                    LA79_0 = self.input.LA(1)
+                while True: #loop82
+                    alt82 = 2
+                    LA82_0 = self.input.LA(1)
 
-                    if ((96 <= LA79_0 <= 99)) :
-                        alt79 = 1
+                    if ((96 <= LA82_0 <= 99)) :
+                        alt82 = 1
 
 
-                    if alt79 == 1:
+                    if alt82 == 1:
                         # C.g:455:22: ( '<' | '>' | '<=' | '>=' ) shift_expression
                         if (96 <= self.input.LA(1) <= 99):
                             self.input.consume();
@@ -8562,12 +8711,12 @@ class CParser(Parser):
 
                             mse = MismatchedSetException(None, self.input)
                             self.recoverFromMismatchedSet(
-                                self.input, mse, self.FOLLOW_set_in_relational_expression1954
+                                self.input, mse, self.FOLLOW_set_in_relational_expression1963
                                 )
                             raise mse
 
 
-                        self.following.append(self.FOLLOW_shift_expression_in_relational_expression1964)
+                        self.following.append(self.FOLLOW_shift_expression_in_relational_expression1973)
                         self.shift_expression()
                         self.following.pop()
                         if self.failed:
@@ -8575,7 +8724,7 @@ class CParser(Parser):
 
 
                     else:
-                        break #loop79
+                        break #loop82
 
 
 
@@ -8608,21 +8757,21 @@ class CParser(Parser):
 
                 # C.g:459:2: ( additive_expression ( ( '<<' | '>>' ) additive_expression )* )
                 # C.g:459:4: additive_expression ( ( '<<' | '>>' ) additive_expression )*
-                self.following.append(self.FOLLOW_additive_expression_in_shift_expression1977)
+                self.following.append(self.FOLLOW_additive_expression_in_shift_expression1986)
                 self.additive_expression()
                 self.following.pop()
                 if self.failed:
                     return 
                 # C.g:459:24: ( ( '<<' | '>>' ) additive_expression )*
-                while True: #loop80
-                    alt80 = 2
-                    LA80_0 = self.input.LA(1)
+                while True: #loop83
+                    alt83 = 2
+                    LA83_0 = self.input.LA(1)
 
-                    if ((100 <= LA80_0 <= 101)) :
-                        alt80 = 1
+                    if ((100 <= LA83_0 <= 101)) :
+                        alt83 = 1
 
 
-                    if alt80 == 1:
+                    if alt83 == 1:
                         # C.g:459:25: ( '<<' | '>>' ) additive_expression
                         if (100 <= self.input.LA(1) <= 101):
                             self.input.consume();
@@ -8636,12 +8785,12 @@ class CParser(Parser):
 
                             mse = MismatchedSetException(None, self.input)
                             self.recoverFromMismatchedSet(
-                                self.input, mse, self.FOLLOW_set_in_shift_expression1980
+                                self.input, mse, self.FOLLOW_set_in_shift_expression1989
                                 )
                             raise mse
 
 
-                        self.following.append(self.FOLLOW_additive_expression_in_shift_expression1986)
+                        self.following.append(self.FOLLOW_additive_expression_in_shift_expression1995)
                         self.additive_expression()
                         self.following.pop()
                         if self.failed:
@@ -8649,7 +8798,7 @@ class CParser(Parser):
 
 
                     else:
-                        break #loop80
+                        break #loop83
 
 
 
@@ -8681,186 +8830,202 @@ class CParser(Parser):
                     return 
 
                 # C.g:465:2: ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | asm_statement | asm1_statement | declaration )
-                alt81 = 10
-                LA81 = self.input.LA(1)
-                if LA81 == IDENTIFIER:
-                    LA81 = self.input.LA(2)
-                    if LA81 == 61:
-                        LA81_42 = self.input.LA(3)
-
-                        if (self.synpred165()) :
-                            alt81 = 3
-                        elif (self.synpred169()) :
-                            alt81 = 7
+                alt84 = 10
+                LA84 = self.input.LA(1)
+                if LA84 == IDENTIFIER:
+                    LA84 = self.input.LA(2)
+                    if LA84 == 47:
+                        alt84 = 1
+                    elif LA84 == 61:
+                        LA84_43 = self.input.LA(3)
+
+                        if (self.synpred168()) :
+                            alt84 = 3
+                        elif (self.synpred172()) :
+                            alt84 = 7
                         elif (True) :
-                            alt81 = 10
+                            alt84 = 10
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("464:1: statement : ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | asm_statement | asm1_statement | declaration );", 81, 42, self.input)
+                            nvae = NoViableAltException("464:1: statement : ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | asm_statement | asm1_statement | declaration );", 84, 43, self.input)
 
                             raise nvae
 
-                    elif LA81 == 47:
-                        alt81 = 1
-                    elif LA81 == 65:
-                        LA81_44 = self.input.LA(3)
+                    elif LA84 == STRING_LITERAL or LA84 == 27 or LA84 == 28 or LA84 == 63 or LA84 == 67 or LA84 == 68 or LA84 == 69 or LA84 == 70 or LA84 == 71 or LA84 == 72 or LA84 == 74 or LA84 == 75 or LA84 == 76 or LA84 == 79 or LA84 == 80 or LA84 == 81 or LA84 == 82 or LA84 == 83 or LA84 == 84 or LA84 == 85 or LA84 == 86 or LA84 == 87 or LA84 == 88 or LA84 == 89 or LA84 == 90 or LA84 == 91 or LA84 == 92 or LA84 == 93 or LA84 == 94 or LA84 == 95 or LA84 == 96 or LA84 == 97 or LA84 == 98 or LA84 == 99 or LA84 == 100 or LA84 == 101:
+                        alt84 = 3
+                    elif LA84 == 65:
+                        LA84_46 = self.input.LA(3)
+
+                        if (self.synpred168()) :
+                            alt84 = 3
+                        elif (True) :
+                            alt84 = 10
+                        else:
+                            if self.backtracking > 0:
+                                self.failed = True
+                                return 
+
+                            nvae = NoViableAltException("464:1: statement : ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | asm_statement | asm1_statement | declaration );", 84, 46, self.input)
+
+                            raise nvae
+
+                    elif LA84 == 25:
+                        LA84_64 = self.input.LA(3)
 
-                        if (self.synpred165()) :
-                            alt81 = 3
+                        if (self.synpred168()) :
+                            alt84 = 3
                         elif (True) :
-                            alt81 = 10
+                            alt84 = 10
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("464:1: statement : ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | asm_statement | asm1_statement | declaration );", 81, 44, self.input)
+                            nvae = NoViableAltException("464:1: statement : ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | asm_statement | asm1_statement | declaration );", 84, 64, self.input)
 
                             raise nvae
 
-                    elif LA81 == IDENTIFIER or LA81 == 29 or LA81 == 30 or LA81 == 31 or LA81 == 32 or LA81 == 33 or LA81 == 34 or LA81 == 35 or LA81 == 36 or LA81 == 37 or LA81 == 38 or LA81 == 39 or LA81 == 40 or LA81 == 41 or LA81 == 42 or LA81 == 45 or LA81 == 46 or LA81 == 48 or LA81 == 49 or LA81 == 50 or LA81 == 51 or LA81 == 52 or LA81 == 53 or LA81 == 54 or LA81 == 55 or LA81 == 56 or LA81 == 57 or LA81 == 58 or LA81 == 59 or LA81 == 60:
-                        alt81 = 10
-                    elif LA81 == 25:
-                        LA81_49 = self.input.LA(3)
+                    elif LA84 == IDENTIFIER:
+                        LA84_66 = self.input.LA(3)
 
-                        if (self.synpred165()) :
-                            alt81 = 3
+                        if (self.synpred168()) :
+                            alt84 = 3
                         elif (True) :
-                            alt81 = 10
+                            alt84 = 10
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("464:1: statement : ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | asm_statement | asm1_statement | declaration );", 81, 49, self.input)
+                            nvae = NoViableAltException("464:1: statement : ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | asm_statement | asm1_statement | declaration );", 84, 66, self.input)
 
                             raise nvae
 
-                    elif LA81 == 27 or LA81 == 28 or LA81 == 63 or LA81 == 67 or LA81 == 68 or LA81 == 69 or LA81 == 70 or LA81 == 71 or LA81 == 72 or LA81 == 74 or LA81 == 75 or LA81 == 76 or LA81 == 79 or LA81 == 80 or LA81 == 81 or LA81 == 82 or LA81 == 83 or LA81 == 84 or LA81 == 85 or LA81 == 86 or LA81 == 87 or LA81 == 88 or LA81 == 89 or LA81 == 90 or LA81 == 91 or LA81 == 92 or LA81 == 93 or LA81 == 94 or LA81 == 95 or LA81 == 96 or LA81 == 97 or LA81 == 98 or LA81 == 99 or LA81 == 100 or LA81 == 101:
-                        alt81 = 3
+                    elif LA84 == 29 or LA84 == 30 or LA84 == 31 or LA84 == 32 or LA84 == 33 or LA84 == 34 or LA84 == 35 or LA84 == 36 or LA84 == 37 or LA84 == 38 or LA84 == 39 or LA84 == 40 or LA84 == 41 or LA84 == 42 or LA84 == 45 or LA84 == 46 or LA84 == 48 or LA84 == 49 or LA84 == 50 or LA84 == 51 or LA84 == 52 or LA84 == 53 or LA84 == 54 or LA84 == 55 or LA84 == 56 or LA84 == 57 or LA84 == 58 or LA84 == 59 or LA84 == 60:
+                        alt84 = 10
                     else:
                         if self.backtracking > 0:
                             self.failed = True
                             return 
 
-                        nvae = NoViableAltException("464:1: statement : ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | asm_statement | asm1_statement | declaration );", 81, 1, self.input)
+                        nvae = NoViableAltException("464:1: statement : ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | asm_statement | asm1_statement | declaration );", 84, 1, self.input)
 
                         raise nvae
 
-                elif LA81 == 104 or LA81 == 105:
-                    alt81 = 1
-                elif LA81 == 43:
-                    alt81 = 2
-                elif LA81 == HEX_LITERAL or LA81 == OCTAL_LITERAL or LA81 == DECIMAL_LITERAL or LA81 == CHARACTER_LITERAL or LA81 == STRING_LITERAL or LA81 == FLOATING_POINT_LITERAL or LA81 == 25 or LA81 == 61 or LA81 == 65 or LA81 == 67 or LA81 == 68 or LA81 == 71 or LA81 == 72 or LA81 == 73 or LA81 == 76 or LA81 == 77 or LA81 == 78:
-                    alt81 = 3
-                elif LA81 == 106 or LA81 == 108:
-                    alt81 = 4
-                elif LA81 == 109 or LA81 == 110 or LA81 == 111:
-                    alt81 = 5
-                elif LA81 == 112 or LA81 == 113 or LA81 == 114 or LA81 == 115:
-                    alt81 = 6
-                elif LA81 == 103:
-                    alt81 = 8
-                elif LA81 == 102:
-                    alt81 = 9
-                elif LA81 == 26 or LA81 == 29 or LA81 == 30 or LA81 == 31 or LA81 == 32 or LA81 == 33 or LA81 == 34 or LA81 == 35 or LA81 == 36 or LA81 == 37 or LA81 == 38 or LA81 == 39 or LA81 == 40 or LA81 == 41 or LA81 == 42 or LA81 == 45 or LA81 == 46 or LA81 == 48 or LA81 == 49 or LA81 == 50 or LA81 == 51 or LA81 == 52 or LA81 == 53 or LA81 == 54 or LA81 == 55 or LA81 == 56 or LA81 == 57 or LA81 == 58 or LA81 == 59 or LA81 == 60:
-                    alt81 = 10
+                elif LA84 == 104 or LA84 == 105:
+                    alt84 = 1
+                elif LA84 == 43:
+                    alt84 = 2
+                elif LA84 == HEX_LITERAL or LA84 == OCTAL_LITERAL or LA84 == DECIMAL_LITERAL or LA84 == CHARACTER_LITERAL or LA84 == STRING_LITERAL or LA84 == FLOATING_POINT_LITERAL or LA84 == 25 or LA84 == 61 or LA84 == 65 or LA84 == 67 or LA84 == 68 or LA84 == 71 or LA84 == 72 or LA84 == 73 or LA84 == 76 or LA84 == 77 or LA84 == 78:
+                    alt84 = 3
+                elif LA84 == 106 or LA84 == 108:
+                    alt84 = 4
+                elif LA84 == 109 or LA84 == 110 or LA84 == 111:
+                    alt84 = 5
+                elif LA84 == 112 or LA84 == 113 or LA84 == 114 or LA84 == 115:
+                    alt84 = 6
+                elif LA84 == 103:
+                    alt84 = 8
+                elif LA84 == 102:
+                    alt84 = 9
+                elif LA84 == 26 or LA84 == 29 or LA84 == 30 or LA84 == 31 or LA84 == 32 or LA84 == 33 or LA84 == 34 or LA84 == 35 or LA84 == 36 or LA84 == 37 or LA84 == 38 or LA84 == 39 or LA84 == 40 or LA84 == 41 or LA84 == 42 or LA84 == 45 or LA84 == 46 or LA84 == 48 or LA84 == 49 or LA84 == 50 or LA84 == 51 or LA84 == 52 or LA84 == 53 or LA84 == 54 or LA84 == 55 or LA84 == 56 or LA84 == 57 or LA84 == 58 or LA84 == 59 or LA84 == 60:
+                    alt84 = 10
                 else:
                     if self.backtracking > 0:
                         self.failed = True
                         return 
 
-                    nvae = NoViableAltException("464:1: statement : ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | asm_statement | asm1_statement | declaration );", 81, 0, self.input)
+                    nvae = NoViableAltException("464:1: statement : ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | asm_statement | asm1_statement | declaration );", 84, 0, self.input)
 
                     raise nvae
 
-                if alt81 == 1:
+                if alt84 == 1:
                     # C.g:465:4: labeled_statement
-                    self.following.append(self.FOLLOW_labeled_statement_in_statement2001)
+                    self.following.append(self.FOLLOW_labeled_statement_in_statement2010)
                     self.labeled_statement()
                     self.following.pop()
                     if self.failed:
                         return 
 
 
-                elif alt81 == 2:
+                elif alt84 == 2:
                     # C.g:466:4: compound_statement
-                    self.following.append(self.FOLLOW_compound_statement_in_statement2006)
+                    self.following.append(self.FOLLOW_compound_statement_in_statement2015)
                     self.compound_statement()
                     self.following.pop()
                     if self.failed:
                         return 
 
 
-                elif alt81 == 3:
+                elif alt84 == 3:
                     # C.g:467:4: expression_statement
-                    self.following.append(self.FOLLOW_expression_statement_in_statement2011)
+                    self.following.append(self.FOLLOW_expression_statement_in_statement2020)
                     self.expression_statement()
                     self.following.pop()
                     if self.failed:
                         return 
 
 
-                elif alt81 == 4:
+                elif alt84 == 4:
                     # C.g:468:4: selection_statement
-                    self.following.append(self.FOLLOW_selection_statement_in_statement2016)
+                    self.following.append(self.FOLLOW_selection_statement_in_statement2025)
                     self.selection_statement()
                     self.following.pop()
                     if self.failed:
                         return 
 
 
-                elif alt81 == 5:
+                elif alt84 == 5:
                     # C.g:469:4: iteration_statement
-                    self.following.append(self.FOLLOW_iteration_statement_in_statement2021)
+                    self.following.append(self.FOLLOW_iteration_statement_in_statement2030)
                     self.iteration_statement()
                     self.following.pop()
                     if self.failed:
                         return 
 
 
-                elif alt81 == 6:
+                elif alt84 == 6:
                     # C.g:470:4: jump_statement
-                    self.following.append(self.FOLLOW_jump_statement_in_statement2026)
+                    self.following.append(self.FOLLOW_jump_statement_in_statement2035)
                     self.jump_statement()
                     self.following.pop()
                     if self.failed:
                         return 
 
 
-                elif alt81 == 7:
+                elif alt84 == 7:
                     # C.g:471:4: macro_statement
-                    self.following.append(self.FOLLOW_macro_statement_in_statement2031)
+                    self.following.append(self.FOLLOW_macro_statement_in_statement2040)
                     self.macro_statement()
                     self.following.pop()
                     if self.failed:
                         return 
 
 
-                elif alt81 == 8:
+                elif alt84 == 8:
                     # C.g:472:4: asm_statement
-                    self.following.append(self.FOLLOW_asm_statement_in_statement2036)
+                    self.following.append(self.FOLLOW_asm_statement_in_statement2045)
                     self.asm_statement()
                     self.following.pop()
                     if self.failed:
                         return 
 
 
-                elif alt81 == 9:
+                elif alt84 == 9:
                     # C.g:473:4: asm1_statement
-                    self.following.append(self.FOLLOW_asm1_statement_in_statement2041)
+                    self.following.append(self.FOLLOW_asm1_statement_in_statement2050)
                     self.asm1_statement()
                     self.following.pop()
                     if self.failed:
                         return 
 
 
-                elif alt81 == 10:
+                elif alt84 == 10:
                     # C.g:474:4: declaration
-                    self.following.append(self.FOLLOW_declaration_in_statement2046)
+                    self.following.append(self.FOLLOW_declaration_in_statement2055)
                     self.declaration()
                     self.following.pop()
                     if self.failed:
@@ -8894,22 +9059,22 @@ class CParser(Parser):
 
                 # C.g:478:2: ( '_asm' '{' (~ ( '}' ) )* '}' )
                 # C.g:478:4: '_asm' '{' (~ ( '}' ) )* '}'
-                self.match(self.input, 102, self.FOLLOW_102_in_asm1_statement2057)
+                self.match(self.input, 102, self.FOLLOW_102_in_asm1_statement2066)
                 if self.failed:
                     return 
-                self.match(self.input, 43, self.FOLLOW_43_in_asm1_statement2059)
+                self.match(self.input, 43, self.FOLLOW_43_in_asm1_statement2068)
                 if self.failed:
                     return 
                 # C.g:478:15: (~ ( '}' ) )*
-                while True: #loop82
-                    alt82 = 2
-                    LA82_0 = self.input.LA(1)
+                while True: #loop85
+                    alt85 = 2
+                    LA85_0 = self.input.LA(1)
 
-                    if ((IDENTIFIER <= LA82_0 <= 43) or (45 <= LA82_0 <= 115)) :
-                        alt82 = 1
+                    if ((IDENTIFIER <= LA85_0 <= 43) or (45 <= LA85_0 <= 115)) :
+                        alt85 = 1
 
 
-                    if alt82 == 1:
+                    if alt85 == 1:
                         # C.g:478:16: ~ ( '}' )
                         if (IDENTIFIER <= self.input.LA(1) <= 43) or (45 <= self.input.LA(1) <= 115):
                             self.input.consume();
@@ -8923,7 +9088,7 @@ class CParser(Parser):
 
                             mse = MismatchedSetException(None, self.input)
                             self.recoverFromMismatchedSet(
-                                self.input, mse, self.FOLLOW_set_in_asm1_statement2062
+                                self.input, mse, self.FOLLOW_set_in_asm1_statement2071
                                 )
                             raise mse
 
@@ -8931,10 +9096,10 @@ class CParser(Parser):
 
 
                     else:
-                        break #loop82
+                        break #loop85
 
 
-                self.match(self.input, 44, self.FOLLOW_44_in_asm1_statement2069)
+                self.match(self.input, 44, self.FOLLOW_44_in_asm1_statement2078)
                 if self.failed:
                     return 
 
@@ -8967,22 +9132,22 @@ class CParser(Parser):
 
                 # C.g:482:2: ( '__asm' '{' (~ ( '}' ) )* '}' )
                 # C.g:482:4: '__asm' '{' (~ ( '}' ) )* '}'
-                self.match(self.input, 103, self.FOLLOW_103_in_asm_statement2080)
+                self.match(self.input, 103, self.FOLLOW_103_in_asm_statement2089)
                 if self.failed:
                     return 
-                self.match(self.input, 43, self.FOLLOW_43_in_asm_statement2082)
+                self.match(self.input, 43, self.FOLLOW_43_in_asm_statement2091)
                 if self.failed:
                     return 
                 # C.g:482:16: (~ ( '}' ) )*
-                while True: #loop83
-                    alt83 = 2
-                    LA83_0 = self.input.LA(1)
+                while True: #loop86
+                    alt86 = 2
+                    LA86_0 = self.input.LA(1)
 
-                    if ((IDENTIFIER <= LA83_0 <= 43) or (45 <= LA83_0 <= 115)) :
-                        alt83 = 1
+                    if ((IDENTIFIER <= LA86_0 <= 43) or (45 <= LA86_0 <= 115)) :
+                        alt86 = 1
 
 
-                    if alt83 == 1:
+                    if alt86 == 1:
                         # C.g:482:17: ~ ( '}' )
                         if (IDENTIFIER <= self.input.LA(1) <= 43) or (45 <= self.input.LA(1) <= 115):
                             self.input.consume();
@@ -8996,7 +9161,7 @@ class CParser(Parser):
 
                             mse = MismatchedSetException(None, self.input)
                             self.recoverFromMismatchedSet(
-                                self.input, mse, self.FOLLOW_set_in_asm_statement2085
+                                self.input, mse, self.FOLLOW_set_in_asm_statement2094
                                 )
                             raise mse
 
@@ -9004,10 +9169,10 @@ class CParser(Parser):
 
 
                     else:
-                        break #loop83
+                        break #loop86
 
 
-                self.match(self.input, 44, self.FOLLOW_44_in_asm_statement2092)
+                self.match(self.input, 44, self.FOLLOW_44_in_asm_statement2101)
                 if self.failed:
                     return 
 
@@ -9040,1910 +9205,1910 @@ class CParser(Parser):
 
                 # C.g:486:2: ( IDENTIFIER '(' ( declaration )* ( statement_list )? ( expression )? ')' )
                 # C.g:486:4: IDENTIFIER '(' ( declaration )* ( statement_list )? ( expression )? ')'
-                self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_macro_statement2104)
+                self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_macro_statement2113)
                 if self.failed:
                     return 
-                self.match(self.input, 61, self.FOLLOW_61_in_macro_statement2106)
+                self.match(self.input, 61, self.FOLLOW_61_in_macro_statement2115)
                 if self.failed:
                     return 
                 # C.g:486:19: ( declaration )*
-                while True: #loop84
-                    alt84 = 2
-                    LA84 = self.input.LA(1)
-                    if LA84 == IDENTIFIER:
-                        LA84 = self.input.LA(2)
-                        if LA84 == 61:
-                            LA84_43 = self.input.LA(3)
+                while True: #loop87
+                    alt87 = 2
+                    LA87 = self.input.LA(1)
+                    if LA87 == IDENTIFIER:
+                        LA87 = self.input.LA(2)
+                        if LA87 == 61:
+                            LA87_43 = self.input.LA(3)
 
-                            if (self.synpred174()) :
-                                alt84 = 1
+                            if (self.synpred177()) :
+                                alt87 = 1