ECC: modify C parser to deal with embedded asm statements.
authorjlin16 <jlin16@7335b38e-4728-0410-8992-fb3ffe349368>
Thu, 10 Apr 2008 09:13:35 +0000 (09:13 +0000)
committerjlin16 <jlin16@7335b38e-4728-0410-8992-fb3ffe349368>
Thu, 10 Apr 2008 09:13:35 +0000 (09:13 +0000)
git-svn-id: https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools@1139 7335b38e-4728-0410-8992-fb3ffe349368

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

index 435b7a8..0276051 100644 (file)
@@ -469,9 +469,19 @@ statement
        | iteration_statement\r
        | jump_statement\r
        | macro_statement\r
+       | asm_statement\r
+       | asm1_statement\r
        | declaration\r
        ;\r
 \r
+asm1_statement\r
+       : '_asm' '{' (~('}'))* '}'\r
+       ;\r
+\r
+asm_statement\r
+       : '__asm' '{' (~('}'))* '}'\r
+       ;\r
+       \r
 macro_statement\r
        : IDENTIFIER '(' declaration*  statement_list? expression? ')'\r
        ;\r
index 4a4fb66..2f7c63f 100644 (file)
@@ -1,4 +1,4 @@
-# $ANTLR 3.0.1 C.g 2008-04-08 11:34:28
+# $ANTLR 3.0.1 C.g 2008-04-10 16:47:13
 
 from antlr3 import *
 from antlr3.compat import set, frozenset
@@ -8,6 +8,8 @@ from antlr3.compat import set, frozenset
 HIDDEN = BaseRecognizer.HIDDEN
 
 # token types
+T114=114
+T115=115
 FloatTypeSuffix=16
 LETTER=11
 T29=29
@@ -103,7 +105,7 @@ T95=95
 T96=96
 OCTAL_LITERAL=6
 T94=94
-Tokens=114
+Tokens=116
 T93=93
 T92=92
 T91=91
@@ -1906,9 +1908,9 @@ class CLexer(Lexer):
         try:
             self.type = T102
 
-            # C.g:84:6: ( 'case' )
-            # C.g:84:8: 'case'
-            self.match("case")
+            # C.g:84:6: ( '_asm' )
+            # C.g:84:8: '_asm'
+            self.match("_asm")
 
 
 
@@ -1929,9 +1931,9 @@ class CLexer(Lexer):
         try:
             self.type = T103
 
-            # C.g:85:6: ( 'default' )
-            # C.g:85:8: 'default'
-            self.match("default")
+            # C.g:85:6: ( '__asm' )
+            # C.g:85:8: '__asm'
+            self.match("__asm")
 
 
 
@@ -1952,9 +1954,9 @@ class CLexer(Lexer):
         try:
             self.type = T104
 
-            # C.g:86:6: ( 'if' )
-            # C.g:86:8: 'if'
-            self.match("if")
+            # C.g:86:6: ( 'case' )
+            # C.g:86:8: 'case'
+            self.match("case")
 
 
 
@@ -1975,9 +1977,9 @@ class CLexer(Lexer):
         try:
             self.type = T105
 
-            # C.g:87:6: ( 'else' )
-            # C.g:87:8: 'else'
-            self.match("else")
+            # C.g:87:6: ( 'default' )
+            # C.g:87:8: 'default'
+            self.match("default")
 
 
 
@@ -1998,9 +2000,9 @@ class CLexer(Lexer):
         try:
             self.type = T106
 
-            # C.g:88:6: ( 'switch' )
-            # C.g:88:8: 'switch'
-            self.match("switch")
+            # C.g:88:6: ( 'if' )
+            # C.g:88:8: 'if'
+            self.match("if")
 
 
 
@@ -2021,9 +2023,9 @@ class CLexer(Lexer):
         try:
             self.type = T107
 
-            # C.g:89:6: ( 'while' )
-            # C.g:89:8: 'while'
-            self.match("while")
+            # C.g:89:6: ( 'else' )
+            # C.g:89:8: 'else'
+            self.match("else")
 
 
 
@@ -2044,9 +2046,9 @@ class CLexer(Lexer):
         try:
             self.type = T108
 
-            # C.g:90:6: ( 'do' )
-            # C.g:90:8: 'do'
-            self.match("do")
+            # C.g:90:6: ( 'switch' )
+            # C.g:90:8: 'switch'
+            self.match("switch")
 
 
 
@@ -2067,9 +2069,9 @@ class CLexer(Lexer):
         try:
             self.type = T109
 
-            # C.g:91:6: ( 'for' )
-            # C.g:91:8: 'for'
-            self.match("for")
+            # C.g:91:6: ( 'while' )
+            # C.g:91:8: 'while'
+            self.match("while")
 
 
 
@@ -2090,9 +2092,9 @@ class CLexer(Lexer):
         try:
             self.type = T110
 
-            # C.g:92:6: ( 'goto' )
-            # C.g:92:8: 'goto'
-            self.match("goto")
+            # C.g:92:6: ( 'do' )
+            # C.g:92:8: 'do'
+            self.match("do")
 
 
 
@@ -2113,9 +2115,9 @@ class CLexer(Lexer):
         try:
             self.type = T111
 
-            # C.g:93:6: ( 'continue' )
-            # C.g:93:8: 'continue'
-            self.match("continue")
+            # C.g:93:6: ( 'for' )
+            # C.g:93:8: 'for'
+            self.match("for")
 
 
 
@@ -2136,9 +2138,9 @@ class CLexer(Lexer):
         try:
             self.type = T112
 
-            # C.g:94:6: ( 'break' )
-            # C.g:94:8: 'break'
-            self.match("break")
+            # C.g:94:6: ( 'goto' )
+            # C.g:94:8: 'goto'
+            self.match("goto")
 
 
 
@@ -2159,9 +2161,9 @@ class CLexer(Lexer):
         try:
             self.type = T113
 
-            # C.g:95:6: ( 'return' )
-            # C.g:95:8: 'return'
-            self.match("return")
+            # C.g:95:6: ( 'continue' )
+            # C.g:95:8: 'continue'
+            self.match("continue")
 
 
 
@@ -2176,17 +2178,63 @@ class CLexer(Lexer):
 
 
 
+    # $ANTLR start T114
+    def mT114(self, ):
+
+        try:
+            self.type = T114
+
+            # C.g:96:6: ( 'break' )
+            # C.g:96:8: 'break'
+            self.match("break")
+
+
+
+
+
+
+        finally:
+
+            pass
+
+    # $ANTLR end T114
+
+
+
+    # $ANTLR start T115
+    def mT115(self, ):
+
+        try:
+            self.type = T115
+
+            # C.g:97:6: ( 'return' )
+            # C.g:97:8: 'return'
+            self.match("return")
+
+
+
+
+
+
+        finally:
+
+            pass
+
+    # $ANTLR end T115
+
+
+
     # $ANTLR start IDENTIFIER
     def mIDENTIFIER(self, ):
 
         try:
             self.type = IDENTIFIER
 
-            # C.g:518:2: ( LETTER ( LETTER | '0' .. '9' )* )
-            # C.g:518:4: LETTER ( LETTER | '0' .. '9' )*
+            # C.g:528:2: ( LETTER ( LETTER | '0' .. '9' )* )
+            # C.g:528:4: LETTER ( LETTER | '0' .. '9' )*
             self.mLETTER()
 
-            # C.g:518:11: ( LETTER | '0' .. '9' )*
+            # C.g:528:11: ( LETTER | '0' .. '9' )*
             while True: #loop1
                 alt1 = 2
                 LA1_0 = self.input.LA(1)
@@ -2228,7 +2276,7 @@ class CLexer(Lexer):
     def mLETTER(self, ):
 
         try:
-            # C.g:523:2: ( '$' | 'A' .. 'Z' | 'a' .. 'z' | '_' )
+            # C.g:533:2: ( '$' | 'A' .. 'Z' | 'a' .. 'z' | '_' )
             # C.g:
             if self.input.LA(1) == u'$' or (u'A' <= self.input.LA(1) <= u'Z') or self.input.LA(1) == u'_' or (u'a' <= self.input.LA(1) <= u'z'):
                 self.input.consume();
@@ -2257,16 +2305,16 @@ class CLexer(Lexer):
         try:
             self.type = CHARACTER_LITERAL
 
-            # C.g:530:5: ( ( 'L' )? '\\'' ( EscapeSequence | ~ ( '\\'' | '\\\\' ) ) '\\'' )
-            # C.g:530:9: ( 'L' )? '\\'' ( EscapeSequence | ~ ( '\\'' | '\\\\' ) ) '\\''
-            # C.g:530:9: ( 'L' )?
+            # C.g:540:5: ( ( 'L' )? '\\'' ( EscapeSequence | ~ ( '\\'' | '\\\\' ) ) '\\'' )
+            # C.g:540:9: ( 'L' )? '\\'' ( EscapeSequence | ~ ( '\\'' | '\\\\' ) ) '\\''
+            # C.g:540:9: ( 'L' )?
             alt2 = 2
             LA2_0 = self.input.LA(1)
 
             if (LA2_0 == u'L') :
                 alt2 = 1
             if alt2 == 1:
-                # C.g:530:10: 'L'
+                # C.g:540:10: 'L'
                 self.match(u'L')
 
 
@@ -2274,7 +2322,7 @@ class CLexer(Lexer):
 
             self.match(u'\'')
 
-            # C.g:530:21: ( EscapeSequence | ~ ( '\\'' | '\\\\' ) )
+            # C.g:540:21: ( EscapeSequence | ~ ( '\\'' | '\\\\' ) )
             alt3 = 2
             LA3_0 = self.input.LA(1)
 
@@ -2283,18 +2331,18 @@ class CLexer(Lexer):
             elif ((u'\u0000' <= LA3_0 <= u'&') or (u'(' <= LA3_0 <= u'[') or (u']' <= LA3_0 <= u'\uFFFE')) :
                 alt3 = 2
             else:
-                nvae = NoViableAltException("530:21: ( EscapeSequence | ~ ( '\\'' | '\\\\' ) )", 3, 0, self.input)
+                nvae = NoViableAltException("540:21: ( EscapeSequence | ~ ( '\\'' | '\\\\' ) )", 3, 0, self.input)
 
                 raise nvae
 
             if alt3 == 1:
-                # C.g:530:23: EscapeSequence
+                # C.g:540:23: EscapeSequence
                 self.mEscapeSequence()
 
 
 
             elif alt3 == 2:
-                # C.g:530:40: ~ ( '\\'' | '\\\\' )
+                # C.g:540:40: ~ ( '\\'' | '\\\\' )
                 if (u'\u0000' <= self.input.LA(1) <= u'&') or (u'(' <= self.input.LA(1) <= u'[') or (u']' <= self.input.LA(1) <= u'\uFFFE'):
                     self.input.consume();
 
@@ -2327,16 +2375,16 @@ class CLexer(Lexer):
         try:
             self.type = STRING_LITERAL
 
-            # C.g:534:5: ( ( 'L' )? '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' )
-            # C.g:534:8: ( 'L' )? '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"'
-            # C.g:534:8: ( 'L' )?
+            # C.g:544:5: ( ( 'L' )? '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' )
+            # C.g:544:8: ( 'L' )? '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"'
+            # C.g:544:8: ( 'L' )?
             alt4 = 2
             LA4_0 = self.input.LA(1)
 
             if (LA4_0 == u'L') :
                 alt4 = 1
             if alt4 == 1:
-                # C.g:534:9: 'L'
+                # C.g:544:9: 'L'
                 self.match(u'L')
 
 
@@ -2344,7 +2392,7 @@ class CLexer(Lexer):
 
             self.match(u'"')
 
-            # C.g:534:19: ( EscapeSequence | ~ ( '\\\\' | '\"' ) )*
+            # C.g:544:19: ( EscapeSequence | ~ ( '\\\\' | '\"' ) )*
             while True: #loop5
                 alt5 = 3
                 LA5_0 = self.input.LA(1)
@@ -2356,13 +2404,13 @@ class CLexer(Lexer):
 
 
                 if alt5 == 1:
-                    # C.g:534:21: EscapeSequence
+                    # C.g:544:21: EscapeSequence
                     self.mEscapeSequence()
 
 
 
                 elif alt5 == 2:
-                    # C.g:534:38: ~ ( '\\\\' | '\"' )
+                    # C.g:544:38: ~ ( '\\\\' | '\"' )
                     if (u'\u0000' <= self.input.LA(1) <= u'!') or (u'#' <= self.input.LA(1) <= u'[') or (u']' <= self.input.LA(1) <= u'\uFFFE'):
                         self.input.consume();
 
@@ -2398,8 +2446,8 @@ class CLexer(Lexer):
         try:
             self.type = HEX_LITERAL
 
-            # C.g:537:13: ( '0' ( 'x' | 'X' ) ( HexDigit )+ ( IntegerTypeSuffix )? )
-            # C.g:537:15: '0' ( 'x' | 'X' ) ( HexDigit )+ ( IntegerTypeSuffix )?
+            # C.g:547:13: ( '0' ( 'x' | 'X' ) ( HexDigit )+ ( IntegerTypeSuffix )? )
+            # C.g:547:15: '0' ( 'x' | 'X' ) ( HexDigit )+ ( IntegerTypeSuffix )?
             self.match(u'0')
 
             if self.input.LA(1) == u'X' or self.input.LA(1) == u'x':
@@ -2411,7 +2459,7 @@ class CLexer(Lexer):
                 raise mse
 
 
-            # C.g:537:29: ( HexDigit )+
+            # C.g:547:29: ( HexDigit )+
             cnt6 = 0
             while True: #loop6
                 alt6 = 2
@@ -2422,7 +2470,7 @@ class CLexer(Lexer):
 
 
                 if alt6 == 1:
-                    # C.g:537:29: HexDigit
+                    # C.g:547:29: HexDigit
                     self.mHexDigit()
 
 
@@ -2437,14 +2485,14 @@ class CLexer(Lexer):
                 cnt6 += 1
 
 
-            # C.g:537:39: ( IntegerTypeSuffix )?
+            # C.g:547:39: ( IntegerTypeSuffix )?
             alt7 = 2
             LA7_0 = self.input.LA(1)
 
             if (LA7_0 == u'L' or LA7_0 == u'U' or LA7_0 == u'l' or LA7_0 == u'u') :
                 alt7 = 1
             if alt7 == 1:
-                # C.g:537:39: IntegerTypeSuffix
+                # C.g:547:39: IntegerTypeSuffix
                 self.mIntegerTypeSuffix()
 
 
@@ -2468,9 +2516,9 @@ class CLexer(Lexer):
         try:
             self.type = DECIMAL_LITERAL
 
-            # C.g:539:17: ( ( '0' | '1' .. '9' ( '0' .. '9' )* ) ( IntegerTypeSuffix )? )
-            # C.g:539:19: ( '0' | '1' .. '9' ( '0' .. '9' )* ) ( IntegerTypeSuffix )?
-            # C.g:539:19: ( '0' | '1' .. '9' ( '0' .. '9' )* )
+            # C.g:549:17: ( ( '0' | '1' .. '9' ( '0' .. '9' )* ) ( IntegerTypeSuffix )? )
+            # C.g:549:19: ( '0' | '1' .. '9' ( '0' .. '9' )* ) ( IntegerTypeSuffix )?
+            # C.g:549:19: ( '0' | '1' .. '9' ( '0' .. '9' )* )
             alt9 = 2
             LA9_0 = self.input.LA(1)
 
@@ -2479,21 +2527,21 @@ class CLexer(Lexer):
             elif ((u'1' <= LA9_0 <= u'9')) :
                 alt9 = 2
             else:
-                nvae = NoViableAltException("539:19: ( '0' | '1' .. '9' ( '0' .. '9' )* )", 9, 0, self.input)
+                nvae = NoViableAltException("549:19: ( '0' | '1' .. '9' ( '0' .. '9' )* )", 9, 0, self.input)
 
                 raise nvae
 
             if alt9 == 1:
-                # C.g:539:20: '0'
+                # C.g:549:20: '0'
                 self.match(u'0')
 
 
 
             elif alt9 == 2:
-                # C.g:539:26: '1' .. '9' ( '0' .. '9' )*
+                # C.g:549:26: '1' .. '9' ( '0' .. '9' )*
                 self.matchRange(u'1', u'9')
 
-                # C.g:539:35: ( '0' .. '9' )*
+                # C.g:549:35: ( '0' .. '9' )*
                 while True: #loop8
                     alt8 = 2
                     LA8_0 = self.input.LA(1)
@@ -2503,7 +2551,7 @@ class CLexer(Lexer):
 
 
                     if alt8 == 1:
-                        # C.g:539:35: '0' .. '9'
+                        # C.g:549:35: '0' .. '9'
                         self.matchRange(u'0', u'9')
 
 
@@ -2515,14 +2563,14 @@ class CLexer(Lexer):
 
 
 
-            # C.g:539:46: ( IntegerTypeSuffix )?
+            # C.g:549:46: ( IntegerTypeSuffix )?
             alt10 = 2
             LA10_0 = self.input.LA(1)
 
             if (LA10_0 == u'L' or LA10_0 == u'U' or LA10_0 == u'l' or LA10_0 == u'u') :
                 alt10 = 1
             if alt10 == 1:
-                # C.g:539:46: IntegerTypeSuffix
+                # C.g:549:46: IntegerTypeSuffix
                 self.mIntegerTypeSuffix()
 
 
@@ -2546,11 +2594,11 @@ class CLexer(Lexer):
         try:
             self.type = OCTAL_LITERAL
 
-            # C.g:541:15: ( '0' ( '0' .. '7' )+ ( IntegerTypeSuffix )? )
-            # C.g:541:17: '0' ( '0' .. '7' )+ ( IntegerTypeSuffix )?
+            # C.g:551:15: ( '0' ( '0' .. '7' )+ ( IntegerTypeSuffix )? )
+            # C.g:551:17: '0' ( '0' .. '7' )+ ( IntegerTypeSuffix )?
             self.match(u'0')
 
-            # C.g:541:21: ( '0' .. '7' )+
+            # C.g:551:21: ( '0' .. '7' )+
             cnt11 = 0
             while True: #loop11
                 alt11 = 2
@@ -2561,7 +2609,7 @@ class CLexer(Lexer):
 
 
                 if alt11 == 1:
-                    # C.g:541:22: '0' .. '7'
+                    # C.g:551:22: '0' .. '7'
                     self.matchRange(u'0', u'7')
 
 
@@ -2576,14 +2624,14 @@ class CLexer(Lexer):
                 cnt11 += 1
 
 
-            # C.g:541:33: ( IntegerTypeSuffix )?
+            # C.g:551:33: ( IntegerTypeSuffix )?
             alt12 = 2
             LA12_0 = self.input.LA(1)
 
             if (LA12_0 == u'L' or LA12_0 == u'U' or LA12_0 == u'l' or LA12_0 == u'u') :
                 alt12 = 1
             if alt12 == 1:
-                # C.g:541:33: IntegerTypeSuffix
+                # C.g:551:33: IntegerTypeSuffix
                 self.mIntegerTypeSuffix()
 
 
@@ -2605,8 +2653,8 @@ class CLexer(Lexer):
     def mHexDigit(self, ):
 
         try:
-            # C.g:544:10: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )
-            # C.g:544:12: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )
+            # C.g:554:10: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )
+            # C.g:554:12: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )
             if (u'0' <= self.input.LA(1) <= u'9') or (u'A' <= self.input.LA(1) <= u'F') or (u'a' <= self.input.LA(1) <= u'f'):
                 self.input.consume();
 
@@ -2632,7 +2680,7 @@ class CLexer(Lexer):
     def mIntegerTypeSuffix(self, ):
 
         try:
-            # C.g:548:2: ( ( 'u' | 'U' ) | ( 'l' | 'L' ) | ( 'u' | 'U' ) ( 'l' | 'L' ) | ( 'u' | 'U' ) ( 'l' | 'L' ) ( 'l' | 'L' ) )
+            # C.g:558:2: ( ( 'u' | 'U' ) | ( 'l' | 'L' ) | ( 'u' | 'U' ) ( 'l' | 'L' ) | ( 'u' | 'U' ) ( 'l' | 'L' ) ( 'l' | 'L' ) )
             alt13 = 4
             LA13_0 = self.input.LA(1)
 
@@ -2651,12 +2699,12 @@ class CLexer(Lexer):
             elif (LA13_0 == u'L' or LA13_0 == u'l') :
                 alt13 = 2
             else:
-                nvae = NoViableAltException("546:1: fragment IntegerTypeSuffix : ( ( 'u' | 'U' ) | ( 'l' | 'L' ) | ( 'u' | 'U' ) ( 'l' | 'L' ) | ( 'u' | 'U' ) ( 'l' | 'L' ) ( 'l' | 'L' ) );", 13, 0, self.input)
+                nvae = NoViableAltException("556:1: fragment IntegerTypeSuffix : ( ( 'u' | 'U' ) | ( 'l' | 'L' ) | ( 'u' | 'U' ) ( 'l' | 'L' ) | ( 'u' | 'U' ) ( 'l' | 'L' ) ( 'l' | 'L' ) );", 13, 0, self.input)
 
                 raise nvae
 
             if alt13 == 1:
-                # C.g:548:4: ( 'u' | 'U' )
+                # C.g:558:4: ( 'u' | 'U' )
                 if self.input.LA(1) == u'U' or self.input.LA(1) == u'u':
                     self.input.consume();
 
@@ -2669,7 +2717,7 @@ class CLexer(Lexer):
 
 
             elif alt13 == 2:
-                # C.g:549:4: ( 'l' | 'L' )
+                # C.g:559:4: ( 'l' | 'L' )
                 if self.input.LA(1) == u'L' or self.input.LA(1) == u'l':
                     self.input.consume();
 
@@ -2682,7 +2730,7 @@ class CLexer(Lexer):
 
 
             elif alt13 == 3:
-                # C.g:550:4: ( 'u' | 'U' ) ( 'l' | 'L' )
+                # C.g:560:4: ( 'u' | 'U' ) ( 'l' | 'L' )
                 if self.input.LA(1) == u'U' or self.input.LA(1) == u'u':
                     self.input.consume();
 
@@ -2704,7 +2752,7 @@ class CLexer(Lexer):
 
 
             elif alt13 == 4:
-                # C.g:551:4: ( 'u' | 'U' ) ( 'l' | 'L' ) ( 'l' | 'L' )
+                # C.g:561:4: ( 'u' | 'U' ) ( 'l' | 'L' ) ( 'l' | 'L' )
                 if self.input.LA(1) == u'U' or self.input.LA(1) == u'u':
                     self.input.consume();
 
@@ -2749,12 +2797,12 @@ class CLexer(Lexer):
         try:
             self.type = FLOATING_POINT_LITERAL
 
-            # C.g:555:5: ( ( '0' .. '9' )+ '.' ( '0' .. '9' )* ( Exponent )? ( FloatTypeSuffix )? | '.' ( '0' .. '9' )+ ( Exponent )? ( FloatTypeSuffix )? | ( '0' .. '9' )+ Exponent ( FloatTypeSuffix )? | ( '0' .. '9' )+ ( Exponent )? FloatTypeSuffix )
+            # C.g:565:5: ( ( '0' .. '9' )+ '.' ( '0' .. '9' )* ( Exponent )? ( FloatTypeSuffix )? | '.' ( '0' .. '9' )+ ( Exponent )? ( FloatTypeSuffix )? | ( '0' .. '9' )+ Exponent ( FloatTypeSuffix )? | ( '0' .. '9' )+ ( Exponent )? FloatTypeSuffix )
             alt25 = 4
             alt25 = self.dfa25.predict(self.input)
             if alt25 == 1:
-                # C.g:555:9: ( '0' .. '9' )+ '.' ( '0' .. '9' )* ( Exponent )? ( FloatTypeSuffix )?
-                # C.g:555:9: ( '0' .. '9' )+
+                # C.g:565:9: ( '0' .. '9' )+ '.' ( '0' .. '9' )* ( Exponent )? ( FloatTypeSuffix )?
+                # C.g:565:9: ( '0' .. '9' )+
                 cnt14 = 0
                 while True: #loop14
                     alt14 = 2
@@ -2765,7 +2813,7 @@ class CLexer(Lexer):
 
 
                     if alt14 == 1:
-                        # C.g:555:10: '0' .. '9'
+                        # C.g:565:10: '0' .. '9'
                         self.matchRange(u'0', u'9')
 
 
@@ -2782,7 +2830,7 @@ class CLexer(Lexer):
 
                 self.match(u'.')
 
-                # C.g:555:25: ( '0' .. '9' )*
+                # C.g:565:25: ( '0' .. '9' )*
                 while True: #loop15
                     alt15 = 2
                     LA15_0 = self.input.LA(1)
@@ -2792,7 +2840,7 @@ class CLexer(Lexer):
 
 
                     if alt15 == 1:
-                        # C.g:555:26: '0' .. '9'
+                        # C.g:565:26: '0' .. '9'
                         self.matchRange(u'0', u'9')
 
 
@@ -2801,27 +2849,27 @@ class CLexer(Lexer):
                         break #loop15
 
 
-                # C.g:555:37: ( Exponent )?
+                # C.g:565:37: ( Exponent )?
                 alt16 = 2
                 LA16_0 = self.input.LA(1)
 
                 if (LA16_0 == u'E' or LA16_0 == u'e') :
                     alt16 = 1
                 if alt16 == 1:
-                    # C.g:555:37: Exponent
+                    # C.g:565:37: Exponent
                     self.mExponent()
 
 
 
 
-                # C.g:555:47: ( FloatTypeSuffix )?
+                # C.g:565:47: ( FloatTypeSuffix )?
                 alt17 = 2
                 LA17_0 = self.input.LA(1)
 
                 if (LA17_0 == u'D' or LA17_0 == u'F' or LA17_0 == u'd' or LA17_0 == u'f') :
                     alt17 = 1
                 if alt17 == 1:
-                    # C.g:555:47: FloatTypeSuffix
+                    # C.g:565:47: FloatTypeSuffix
                     self.mFloatTypeSuffix()
 
 
@@ -2830,10 +2878,10 @@ class CLexer(Lexer):
 
 
             elif alt25 == 2:
-                # C.g:556:9: '.' ( '0' .. '9' )+ ( Exponent )? ( FloatTypeSuffix )?
+                # C.g:566:9: '.' ( '0' .. '9' )+ ( Exponent )? ( FloatTypeSuffix )?
                 self.match(u'.')
 
-                # C.g:556:13: ( '0' .. '9' )+
+                # C.g:566:13: ( '0' .. '9' )+
                 cnt18 = 0
                 while True: #loop18
                     alt18 = 2
@@ -2844,7 +2892,7 @@ class CLexer(Lexer):
 
 
                     if alt18 == 1:
-                        # C.g:556:14: '0' .. '9'
+                        # C.g:566:14: '0' .. '9'
                         self.matchRange(u'0', u'9')
 
 
@@ -2859,27 +2907,27 @@ class CLexer(Lexer):
                     cnt18 += 1
 
 
-                # C.g:556:25: ( Exponent )?
+                # C.g:566:25: ( Exponent )?
                 alt19 = 2
                 LA19_0 = self.input.LA(1)
 
                 if (LA19_0 == u'E' or LA19_0 == u'e') :
                     alt19 = 1
                 if alt19 == 1:
-                    # C.g:556:25: Exponent
+                    # C.g:566:25: Exponent
                     self.mExponent()
 
 
 
 
-                # C.g:556:35: ( FloatTypeSuffix )?
+                # C.g:566:35: ( FloatTypeSuffix )?
                 alt20 = 2
                 LA20_0 = self.input.LA(1)
 
                 if (LA20_0 == u'D' or LA20_0 == u'F' or LA20_0 == u'd' or LA20_0 == u'f') :
                     alt20 = 1
                 if alt20 == 1:
-                    # C.g:556:35: FloatTypeSuffix
+                    # C.g:566:35: FloatTypeSuffix
                     self.mFloatTypeSuffix()
 
 
@@ -2888,8 +2936,8 @@ class CLexer(Lexer):
 
 
             elif alt25 == 3:
-                # C.g:557:9: ( '0' .. '9' )+ Exponent ( FloatTypeSuffix )?
-                # C.g:557:9: ( '0' .. '9' )+
+                # C.g:567:9: ( '0' .. '9' )+ Exponent ( FloatTypeSuffix )?
+                # C.g:567:9: ( '0' .. '9' )+
                 cnt21 = 0
                 while True: #loop21
                     alt21 = 2
@@ -2900,7 +2948,7 @@ class CLexer(Lexer):
 
 
                     if alt21 == 1:
-                        # C.g:557:10: '0' .. '9'
+                        # C.g:567:10: '0' .. '9'
                         self.matchRange(u'0', u'9')
 
 
@@ -2917,14 +2965,14 @@ class CLexer(Lexer):
 
                 self.mExponent()
 
-                # C.g:557:30: ( FloatTypeSuffix )?
+                # C.g:567:30: ( FloatTypeSuffix )?
                 alt22 = 2
                 LA22_0 = self.input.LA(1)
 
                 if (LA22_0 == u'D' or LA22_0 == u'F' or LA22_0 == u'd' or LA22_0 == u'f') :
                     alt22 = 1
                 if alt22 == 1:
-                    # C.g:557:30: FloatTypeSuffix
+                    # C.g:567:30: FloatTypeSuffix
                     self.mFloatTypeSuffix()
 
 
@@ -2933,8 +2981,8 @@ class CLexer(Lexer):
 
 
             elif alt25 == 4:
-                # C.g:558:9: ( '0' .. '9' )+ ( Exponent )? FloatTypeSuffix
-                # C.g:558:9: ( '0' .. '9' )+
+                # C.g:568:9: ( '0' .. '9' )+ ( Exponent )? FloatTypeSuffix
+                # C.g:568:9: ( '0' .. '9' )+
                 cnt23 = 0
                 while True: #loop23
                     alt23 = 2
@@ -2945,7 +2993,7 @@ class CLexer(Lexer):
 
 
                     if alt23 == 1:
-                        # C.g:558:10: '0' .. '9'
+                        # C.g:568:10: '0' .. '9'
                         self.matchRange(u'0', u'9')
 
 
@@ -2960,14 +3008,14 @@ class CLexer(Lexer):
                     cnt23 += 1
 
 
-                # C.g:558:21: ( Exponent )?
+                # C.g:568:21: ( Exponent )?
                 alt24 = 2
                 LA24_0 = self.input.LA(1)
 
                 if (LA24_0 == u'E' or LA24_0 == u'e') :
                     alt24 = 1
                 if alt24 == 1:
-                    # C.g:558:21: Exponent
+                    # C.g:568:21: Exponent
                     self.mExponent()
 
 
@@ -2990,8 +3038,8 @@ class CLexer(Lexer):
     def mExponent(self, ):
 
         try:
-            # C.g:562:10: ( ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ )
-            # C.g:562:12: ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+
+            # C.g:572:10: ( ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ )
+            # C.g:572:12: ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+
             if self.input.LA(1) == u'E' or self.input.LA(1) == u'e':
                 self.input.consume();
 
@@ -3001,7 +3049,7 @@ class CLexer(Lexer):
                 raise mse
 
 
-            # C.g:562:22: ( '+' | '-' )?
+            # C.g:572:22: ( '+' | '-' )?
             alt26 = 2
             LA26_0 = self.input.LA(1)
 
@@ -3021,7 +3069,7 @@ class CLexer(Lexer):
 
 
 
-            # C.g:562:33: ( '0' .. '9' )+
+            # C.g:572:33: ( '0' .. '9' )+
             cnt27 = 0
             while True: #loop27
                 alt27 = 2
@@ -3032,7 +3080,7 @@ class CLexer(Lexer):
 
 
                 if alt27 == 1:
-                    # C.g:562:34: '0' .. '9'
+                    # C.g:572:34: '0' .. '9'
                     self.matchRange(u'0', u'9')
 
 
@@ -3063,8 +3111,8 @@ class CLexer(Lexer):
     def mFloatTypeSuffix(self, ):
 
         try:
-            # C.g:565:17: ( ( 'f' | 'F' | 'd' | 'D' ) )
-            # C.g:565:19: ( 'f' | 'F' | 'd' | 'D' )
+            # C.g:575:17: ( ( 'f' | 'F' | 'd' | 'D' ) )
+            # C.g:575:19: ( 'f' | 'F' | 'd' | 'D' )
             if self.input.LA(1) == u'D' or self.input.LA(1) == u'F' or self.input.LA(1) == u'd' or self.input.LA(1) == u'f':
                 self.input.consume();
 
@@ -3090,7 +3138,7 @@ class CLexer(Lexer):
     def mEscapeSequence(self, ):
 
         try:
-            # C.g:569:5: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | OctalEscape )
+            # C.g:579:5: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | OctalEscape )
             alt28 = 2
             LA28_0 = self.input.LA(1)
 
@@ -3102,17 +3150,17 @@ class CLexer(Lexer):
                 elif ((u'0' <= LA28_1 <= u'7')) :
                     alt28 = 2
                 else:
-                    nvae = NoViableAltException("567:1: fragment EscapeSequence : ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | OctalEscape );", 28, 1, self.input)
+                    nvae = NoViableAltException("577:1: fragment EscapeSequence : ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | OctalEscape );", 28, 1, self.input)
 
                     raise nvae
 
             else:
-                nvae = NoViableAltException("567:1: fragment EscapeSequence : ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | OctalEscape );", 28, 0, self.input)
+                nvae = NoViableAltException("577:1: fragment EscapeSequence : ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | OctalEscape );", 28, 0, self.input)
 
                 raise nvae
 
             if alt28 == 1:
-                # C.g:569:8: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' )
+                # C.g:579:8: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' )
                 self.match(u'\\')
 
                 if self.input.LA(1) == u'"' or self.input.LA(1) == u'\'' or self.input.LA(1) == u'\\' or self.input.LA(1) == u'b' or self.input.LA(1) == u'f' or self.input.LA(1) == u'n' or self.input.LA(1) == u'r' or self.input.LA(1) == u't':
@@ -3127,7 +3175,7 @@ class CLexer(Lexer):
 
 
             elif alt28 == 2:
-                # C.g:570:9: OctalEscape
+                # C.g:580:9: OctalEscape
                 self.mOctalEscape()
 
 
@@ -3145,7 +3193,7 @@ class CLexer(Lexer):
     def mOctalEscape(self, ):
 
         try:
-            # C.g:575:5: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
+            # C.g:585:5: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
             alt29 = 3
             LA29_0 = self.input.LA(1)
 
@@ -3172,35 +3220,35 @@ class CLexer(Lexer):
                     else:
                         alt29 = 3
                 else:
-                    nvae = NoViableAltException("573:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 29, 1, self.input)
+                    nvae = NoViableAltException("583:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 29, 1, self.input)
 
                     raise nvae
 
             else:
-                nvae = NoViableAltException("573:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 29, 0, self.input)
+                nvae = NoViableAltException("583:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 29, 0, self.input)
 
                 raise nvae
 
             if alt29 == 1:
-                # C.g:575:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
+                # C.g:585:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
                 self.match(u'\\')
 
-                # C.g:575:14: ( '0' .. '3' )
-                # C.g:575:15: '0' .. '3'
+                # C.g:585:14: ( '0' .. '3' )
+                # C.g:585:15: '0' .. '3'
                 self.matchRange(u'0', u'3')
 
 
 
 
-                # C.g:575:25: ( '0' .. '7' )
-                # C.g:575:26: '0' .. '7'
+                # C.g:585:25: ( '0' .. '7' )
+                # C.g:585:26: '0' .. '7'
                 self.matchRange(u'0', u'7')
 
 
 
 
-                # C.g:575:36: ( '0' .. '7' )
-                # C.g:575:37: '0' .. '7'
+                # C.g:585:36: ( '0' .. '7' )
+                # C.g:585:37: '0' .. '7'
                 self.matchRange(u'0', u'7')
 
 
@@ -3209,18 +3257,18 @@ class CLexer(Lexer):
 
 
             elif alt29 == 2:
-                # C.g:576:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
+                # C.g:586:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
                 self.match(u'\\')
 
-                # C.g:576:14: ( '0' .. '7' )
-                # C.g:576:15: '0' .. '7'
+                # C.g:586:14: ( '0' .. '7' )
+                # C.g:586:15: '0' .. '7'
                 self.matchRange(u'0', u'7')
 
 
 
 
-                # C.g:576:25: ( '0' .. '7' )
-                # C.g:576:26: '0' .. '7'
+                # C.g:586:25: ( '0' .. '7' )
+                # C.g:586:26: '0' .. '7'
                 self.matchRange(u'0', u'7')
 
 
@@ -3229,11 +3277,11 @@ class CLexer(Lexer):
 
 
             elif alt29 == 3:
-                # C.g:577:9: '\\\\' ( '0' .. '7' )
+                # C.g:587:9: '\\\\' ( '0' .. '7' )
                 self.match(u'\\')
 
-                # C.g:577:14: ( '0' .. '7' )
-                # C.g:577:15: '0' .. '7'
+                # C.g:587:14: ( '0' .. '7' )
+                # C.g:587:15: '0' .. '7'
                 self.matchRange(u'0', u'7')
 
 
@@ -3254,8 +3302,8 @@ class CLexer(Lexer):
     def mUnicodeEscape(self, ):
 
         try:
-            # C.g:582:5: ( '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit )
-            # C.g:582:9: '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit
+            # C.g:592:5: ( '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit )
+            # C.g:592:9: '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit
             self.match(u'\\')
 
             self.match(u'u')
@@ -3286,8 +3334,8 @@ class CLexer(Lexer):
         try:
             self.type = WS
 
-            # C.g:585:5: ( ( ' ' | '\\r' | '\\t' | '\\u000C' | '\\n' ) )
-            # C.g:585:8: ( ' ' | '\\r' | '\\t' | '\\u000C' | '\\n' )
+            # C.g:595:5: ( ( ' ' | '\\r' | '\\t' | '\\u000C' | '\\n' ) )
+            # C.g:595:8: ( ' ' | '\\r' | '\\t' | '\\u000C' | '\\n' )
             if (u'\t' <= self.input.LA(1) <= u'\n') or (u'\f' <= self.input.LA(1) <= u'\r') or self.input.LA(1) == u' ':
                 self.input.consume();
 
@@ -3318,10 +3366,10 @@ class CLexer(Lexer):
         try:
             self.type = BS
 
-            # C.g:589:5: ( ( '\\\\' ) )
-            # C.g:589:7: ( '\\\\' )
-            # C.g:589:7: ( '\\\\' )
-            # C.g:589:8: '\\\\'
+            # C.g:599:5: ( ( '\\\\' ) )
+            # C.g:599:7: ( '\\\\' )
+            # C.g:599:7: ( '\\\\' )
+            # C.g:599:8: '\\\\'
             self.match(u'\\')
 
 
@@ -3348,8 +3396,8 @@ class CLexer(Lexer):
         try:
             self.type = UnicodeVocabulary
 
-            # C.g:597:5: ( '\\u0003' .. '\\uFFFE' )
-            # C.g:597:7: '\\u0003' .. '\\uFFFE'
+            # C.g:607:5: ( '\\u0003' .. '\\uFFFE' )
+            # C.g:607:7: '\\u0003' .. '\\uFFFE'
             self.matchRange(u'\u0003', u'\uFFFE')
 
 
@@ -3370,12 +3418,12 @@ class CLexer(Lexer):
         try:
             self.type = COMMENT
 
-            # C.g:600:5: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            # C.g:600:9: '/*' ( options {greedy=false; } : . )* '*/'
+            # C.g:610:5: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            # C.g:610:9: '/*' ( options {greedy=false; } : . )* '*/'
             self.match("/*")
 
 
-            # C.g:600:14: ( options {greedy=false; } : . )*
+            # C.g:610:14: ( options {greedy=false; } : . )*
             while True: #loop30
                 alt30 = 2
                 LA30_0 = self.input.LA(1)
@@ -3394,7 +3442,7 @@ class CLexer(Lexer):
 
 
                 if alt30 == 1:
-                    # C.g:600:42: .
+                    # C.g:610:42: .
                     self.matchAny()
 
 
@@ -3427,12 +3475,12 @@ class CLexer(Lexer):
         try:
             self.type = LINE_COMMENT
 
-            # C.g:605:5: ( '//' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n' )
-            # C.g:605:7: '//' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n'
+            # C.g:615:5: ( '//' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n' )
+            # C.g:615:7: '//' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n'
             self.match("//")
 
 
-            # C.g:605:12: (~ ( '\\n' | '\\r' ) )*
+            # C.g:615:12: (~ ( '\\n' | '\\r' ) )*
             while True: #loop31
                 alt31 = 2
                 LA31_0 = self.input.LA(1)
@@ -3442,7 +3490,7 @@ class CLexer(Lexer):
 
 
                 if alt31 == 1:
-                    # C.g:605:12: ~ ( '\\n' | '\\r' )
+                    # C.g:615:12: ~ ( '\\n' | '\\r' )
                     if (u'\u0000' <= self.input.LA(1) <= u'\t') or (u'\u000B' <= self.input.LA(1) <= u'\f') or (u'\u000E' <= self.input.LA(1) <= u'\uFFFE'):
                         self.input.consume();
 
@@ -3458,14 +3506,14 @@ class CLexer(Lexer):
                     break #loop31
 
 
-            # C.g:605:26: ( '\\r' )?
+            # C.g:615:26: ( '\\r' )?
             alt32 = 2
             LA32_0 = self.input.LA(1)
 
             if (LA32_0 == u'\r') :
                 alt32 = 1
             if alt32 == 1:
-                # C.g:605:26: '\\r'
+                # C.g:615:26: '\\r'
                 self.match(u'\r')
 
 
@@ -3494,11 +3542,11 @@ class CLexer(Lexer):
         try:
             self.type = LINE_COMMAND
 
-            # C.g:610:5: ( '#' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n' )
-            # C.g:610:7: '#' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n'
+            # C.g:620:5: ( '#' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n' )
+            # C.g:620:7: '#' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n'
             self.match(u'#')
 
-            # C.g:610:11: (~ ( '\\n' | '\\r' ) )*
+            # C.g:620:11: (~ ( '\\n' | '\\r' ) )*
             while True: #loop33
                 alt33 = 2
                 LA33_0 = self.input.LA(1)
@@ -3508,7 +3556,7 @@ class CLexer(Lexer):
 
 
                 if alt33 == 1:
-                    # C.g:610:11: ~ ( '\\n' | '\\r' )
+                    # C.g:620:11: ~ ( '\\n' | '\\r' )
                     if (u'\u0000' <= self.input.LA(1) <= u'\t') or (u'\u000B' <= self.input.LA(1) <= u'\f') or (u'\u000E' <= self.input.LA(1) <= u'\uFFFE'):
                         self.input.consume();
 
@@ -3524,14 +3572,14 @@ class CLexer(Lexer):
                     break #loop33
 
 
-            # C.g:610:25: ( '\\r' )?
+            # C.g:620:25: ( '\\r' )?
             alt34 = 2
             LA34_0 = self.input.LA(1)
 
             if (LA34_0 == u'\r') :
                 alt34 = 1
             if alt34 == 1:
-                # C.g:610:25: '\\r'
+                # C.g:620:25: '\\r'
                 self.match(u'\r')
 
 
@@ -3555,8 +3603,8 @@ class CLexer(Lexer):
 
 
     def mTokens(self):
-        # C.g:1:8: ( T25 | T26 | T27 | T28 | T29 | T30 | T31 | T32 | T33 | T34 | T35 | T36 | T37 | T38 | T39 | T40 | T41 | T42 | T43 | T44 | T45 | T46 | T47 | T48 | T49 | T50 | T51 | T52 | T53 | T54 | T55 | T56 | T57 | T58 | T59 | T60 | T61 | T62 | T63 | T64 | T65 | T66 | T67 | T68 | T69 | T70 | T71 | T72 | T73 | T74 | T75 | T76 | T77 | T78 | T79 | T80 | T81 | T82 | T83 | T84 | T85 | T86 | T87 | T88 | T89 | T90 | T91 | T92 | T93 | T94 | T95 | T96 | T97 | T98 | T99 | T100 | T101 | T102 | T103 | T104 | T105 | T106 | T107 | T108 | T109 | T110 | T111 | T112 | T113 | IDENTIFIER | CHARACTER_LITERAL | STRING_LITERAL | HEX_LITERAL | DECIMAL_LITERAL | OCTAL_LITERAL | FLOATING_POINT_LITERAL | WS | BS | UnicodeVocabulary | COMMENT | LINE_COMMENT | LINE_COMMAND )
-        alt35 = 102
+        # C.g:1:8: ( T25 | T26 | T27 | T28 | T29 | T30 | T31 | T32 | T33 | T34 | T35 | T36 | T37 | T38 | T39 | T40 | T41 | T42 | T43 | T44 | T45 | T46 | T47 | T48 | T49 | T50 | T51 | T52 | T53 | T54 | T55 | T56 | T57 | T58 | T59 | T60 | T61 | T62 | T63 | T64 | T65 | T66 | T67 | T68 | T69 | T70 | T71 | T72 | T73 | T74 | T75 | T76 | T77 | T78 | T79 | T80 | T81 | T82 | T83 | T84 | T85 | T86 | T87 | T88 | T89 | T90 | T91 | T92 | T93 | T94 | T95 | T96 | T97 | T98 | T99 | T100 | T101 | T102 | T103 | T104 | T105 | T106 | T107 | T108 | T109 | T110 | T111 | T112 | T113 | T114 | T115 | IDENTIFIER | CHARACTER_LITERAL | STRING_LITERAL | HEX_LITERAL | DECIMAL_LITERAL | OCTAL_LITERAL | FLOATING_POINT_LITERAL | WS | BS | UnicodeVocabulary | COMMENT | LINE_COMMENT | LINE_COMMAND )
+        alt35 = 104
         alt35 = self.dfa35.predict(self.input)
         if alt35 == 1:
             # C.g:1:10: T25
@@ -4093,79 +4141,91 @@ class CLexer(Lexer):
 
 
         elif alt35 == 90:
-            # C.g:1:380: IDENTIFIER
-            self.mIDENTIFIER()
+            # C.g:1:380: T114
+            self.mT114()
 
 
 
         elif alt35 == 91:
-            # C.g:1:391: CHARACTER_LITERAL
-            self.mCHARACTER_LITERAL()
+            # C.g:1:385: T115
+            self.mT115()
 
 
 
         elif alt35 == 92:
-            # C.g:1:409: STRING_LITERAL
-            self.mSTRING_LITERAL()
+            # C.g:1:390: IDENTIFIER
+            self.mIDENTIFIER()
 
 
 
         elif alt35 == 93:
-            # C.g:1:424: HEX_LITERAL
-            self.mHEX_LITERAL()
+            # C.g:1:401: CHARACTER_LITERAL
+            self.mCHARACTER_LITERAL()
 
 
 
         elif alt35 == 94:
-            # C.g:1:436: DECIMAL_LITERAL
-            self.mDECIMAL_LITERAL()
+            # C.g:1:419: STRING_LITERAL
+            self.mSTRING_LITERAL()
 
 
 
         elif alt35 == 95:
-            # C.g:1:452: OCTAL_LITERAL
-            self.mOCTAL_LITERAL()
+            # C.g:1:434: HEX_LITERAL
+            self.mHEX_LITERAL()
 
 
 
         elif alt35 == 96:
-            # C.g:1:466: FLOATING_POINT_LITERAL
-            self.mFLOATING_POINT_LITERAL()
+            # C.g:1:446: DECIMAL_LITERAL
+            self.mDECIMAL_LITERAL()
 
 
 
         elif alt35 == 97:
-            # C.g:1:489: WS
-            self.mWS()
+            # C.g:1:462: OCTAL_LITERAL
+            self.mOCTAL_LITERAL()
 
 
 
         elif alt35 == 98:
-            # C.g:1:492: BS
-            self.mBS()
+            # C.g:1:476: FLOATING_POINT_LITERAL
+            self.mFLOATING_POINT_LITERAL()
 
 
 
         elif alt35 == 99:
-            # C.g:1:495: UnicodeVocabulary
-            self.mUnicodeVocabulary()
+            # C.g:1:499: WS
+            self.mWS()
 
 
 
         elif alt35 == 100:
-            # C.g:1:513: COMMENT
-            self.mCOMMENT()
+            # C.g:1:502: BS
+            self.mBS()
 
 
 
         elif alt35 == 101:
-            # C.g:1:521: LINE_COMMENT
-            self.mLINE_COMMENT()
+            # C.g:1:505: UnicodeVocabulary
+            self.mUnicodeVocabulary()
 
 
 
         elif alt35 == 102:
-            # C.g:1:534: LINE_COMMAND
+            # C.g:1:523: COMMENT
+            self.mCOMMENT()
+
+
+
+        elif alt35 == 103:
+            # C.g:1:531: LINE_COMMENT
+            self.mLINE_COMMENT()
+
+
+
+        elif alt35 == 104:
+            # C.g:1:544: LINE_COMMAND
             self.mLINE_COMMAND()
 
 
@@ -4223,227 +4283,229 @@ class CLexer(Lexer):
     # lookup tables for DFA #35
 
     DFA35_eot = DFA.unpack(
-        u"\2\uffff\1\74\1\uffff\1\77\14\74\3\uffff\7\74\4\uffff\1\146\1\150"
-        u"\1\154\1\160\1\164\1\166\1\171\1\uffff\1\174\1\177\1\u0082\1\u0084"
-        u"\1\u0087\1\uffff\4\74\1\uffff\2\71\2\u0090\2\uffff\1\71\2\uffff"
-        u"\1\74\4\uffff\17\74\1\u00a9\3\74\1\u00ae\2\74\3\uffff\1\u00b2\7"
-        u"\74\34\uffff\1\u00bb\2\uffff\1\u00bd\10\uffff\3\74\3\uffff\1\u00c1"
-        u"\1\uffff\1\u0090\3\uffff\23\74\1\u00d6\1\uffff\2\74\1\u00d9\1\74"
-        u"\1\uffff\3\74\1\uffff\1\74\1\u00df\5\74\4\uffff\3\74\1\uffff\2"
-        u"\74\1\u00eb\1\u00ec\6\74\1\u00f3\3\74\1\u00f7\1\74\1\u00f9\2\74"
-        u"\1\u00fc\1\uffff\1\u00fd\1\74\1\uffff\5\74\1\uffff\7\74\1\u010c"
-        u"\3\74\2\uffff\1\u0110\5\74\1\uffff\3\74\1\uffff\1\74\1\uffff\1"
-        u"\u011a\1\74\2\uffff\1\u011c\3\74\1\u0120\1\74\1\u0122\6\74\1\u0129"
-        u"\1\uffff\1\u012a\1\74\1\u012c\1\uffff\1\u012d\1\u012e\1\u012f\1"
-        u"\u0130\1\u0131\1\u0132\1\74\1\u0134\1\74\1\uffff\1\74\1\uffff\1"
-        u"\u0137\2\74\1\uffff\1\74\1\uffff\5\74\1\u0140\2\uffff\1\u0141\7"
-        u"\uffff\1\74\1\uffff\2\74\1\uffff\1\u0145\7\74\2\uffff\1\u014d\1"
-        u"\u014e\1\u014f\1\uffff\1\u0150\1\u0151\1\74\1\u0153\3\74\5\uffff"
-        u"\1\u0157\1\uffff\3\74\1\uffff\21\74\1\u016c\2\74\1\uffff\3\74\1"
-        u"\u0172\1\74\1\uffff\11\74\1\u017d\1\uffff"
+        u"\2\uffff\1\75\1\uffff\1\100\14\75\3\uffff\7\75\4\uffff\1\147\1"
+        u"\152\1\155\1\161\1\165\1\167\1\172\1\uffff\1\175\1\u0080\1\u0083"
+        u"\1\u0085\1\u0088\1\uffff\5\75\1\uffff\2\72\2\u0093\2\uffff\1\72"
+        u"\2\uffff\1\75\4\uffff\17\75\1\u00ac\3\75\1\u00b1\2\75\3\uffff\1"
+        u"\u00b5\7\75\34\uffff\1\u00be\2\uffff\1\u00c0\10\uffff\5\75\3\uffff"
+        u"\1\u00c6\1\uffff\1\u0093\3\uffff\23\75\1\u00db\1\uffff\1\75\1\u00dd"
+        u"\2\75\1\uffff\3\75\1\uffff\1\75\1\u00e4\5\75\4\uffff\5\75\1\uffff"
+        u"\2\75\1\u00f2\1\u00f3\6\75\1\u00fa\4\75\1\u00ff\2\75\1\u0102\1"
+        u"\u0103\1\uffff\1\u0104\1\uffff\6\75\1\uffff\7\75\1\u0113\1\75\1"
+        u"\u0115\3\75\2\uffff\2\75\1\u011b\3\75\1\uffff\4\75\1\uffff\1\75"
+        u"\1\u0124\3\uffff\1\u0125\3\75\1\u0129\1\75\1\u012b\6\75\1\u0132"
+        u"\1\uffff\1\u0133\1\uffff\1\u0134\1\75\1\u0136\1\u0137\1\u0138\1"
+        u"\uffff\1\u0139\1\u013a\1\u013b\1\75\1\u013d\1\u013e\2\75\2\uffff"
+        u"\1\u0141\2\75\1\uffff\1\75\1\uffff\5\75\1\u014a\3\uffff\1\u014b"
+        u"\6\uffff\1\75\2\uffff\2\75\1\uffff\1\u014f\7\75\2\uffff\1\u0157"
+        u"\1\u0158\1\u0159\1\uffff\1\u015a\1\u015b\1\75\1\u015d\3\75\5\uffff"
+        u"\1\u0161\1\uffff\3\75\1\uffff\21\75\1\u0176\2\75\1\uffff\3\75\1"
+        u"\u017c\1\75\1\uffff\11\75\1\u0187\1\uffff"
         )
 
     DFA35_eof = DFA.unpack(
-        u"\u017e\uffff"
+        u"\u0188\uffff"
         )
 
     DFA35_min = DFA.unpack(
         u"\1\3\1\uffff\1\171\1\uffff\1\75\1\154\1\150\1\165\1\145\1\124\1"
         u"\157\1\141\1\146\1\157\1\154\1\145\1\156\3\uffff\1\116\1\120\1"
         u"\117\1\116\1\117\1\114\1\106\4\uffff\1\75\1\56\1\53\1\55\1\52\1"
-        u"\75\1\46\1\uffff\1\75\1\74\3\75\1\uffff\1\150\1\157\1\162\1\42"
-        u"\1\uffff\2\0\2\56\2\uffff\1\0\2\uffff\1\160\4\uffff\1\164\1\165"
-        u"\1\163\1\157\1\141\1\147\1\151\1\164\1\147\1\101\1\151\1\141\1"
-        u"\156\1\163\1\164\1\44\1\156\1\157\1\162\1\44\1\146\1\151\3\uffff"
-        u"\1\44\2\124\1\116\1\101\1\114\1\117\1\111\34\uffff\1\75\2\uffff"
-        u"\1\75\10\uffff\1\151\1\164\1\145\3\uffff\1\56\1\uffff\1\56\3\uffff"
-        u"\2\145\1\155\1\145\1\162\1\164\1\165\1\145\1\156\1\164\1\157\1"
-        u"\165\1\151\1\124\1\144\1\141\1\162\1\163\1\145\1\44\1\uffff\1\147"
-        u"\1\141\1\44\1\142\1\uffff\1\141\1\151\1\157\1\uffff\1\111\1\44"
-        u"\1\123\1\114\1\101\1\102\1\101\4\uffff\1\154\1\157\1\141\1\uffff"
-        u"\1\144\1\162\2\44\1\164\1\151\1\143\1\157\1\145\1\143\1\44\1\162"
-        u"\1\163\1\111\1\44\1\164\1\44\1\164\1\151\1\44\1\uffff\1\44\1\164"
-        u"\1\uffff\1\154\1\165\1\147\1\156\1\117\1\uffff\1\124\1\111\1\124"
-        u"\1\101\1\102\1\120\1\145\1\44\1\153\1\145\1\156\2\uffff\1\44\1"
-        u"\143\1\164\1\146\1\144\1\150\1\uffff\1\156\1\164\1\103\1\uffff"
-        u"\1\151\1\uffff\1\44\1\156\2\uffff\1\44\1\145\1\154\1\156\1\44\1"
-        u"\116\1\44\1\107\1\111\1\114\1\125\1\117\1\111\1\44\1\uffff\1\44"
-        u"\1\146\1\44\1\uffff\6\44\1\145\1\44\1\154\1\uffff\1\165\1\uffff"
-        u"\1\44\1\164\1\145\1\uffff\1\101\1\uffff\1\116\1\114\1\137\1\116"
-        u"\1\117\1\44\2\uffff\1\44\7\uffff\1\162\1\uffff\2\145\1\uffff\1"
-        u"\44\1\144\1\114\2\105\1\122\2\124\2\uffff\3\44\1\uffff\2\44\1\104"
-        u"\1\44\1\105\1\111\1\123\5\uffff\1\44\1\uffff\2\115\1\105\1\uffff"
-        u"\1\117\1\105\1\122\1\126\1\123\1\126\2\105\1\111\1\137\1\122\1"
-        u"\103\1\111\1\126\1\105\1\106\1\111\1\44\1\137\1\103\1\uffff\1\125"
-        u"\1\105\1\116\1\44\1\122\1\uffff\1\105\1\106\1\105\1\122\1\105\1"
-        u"\116\1\103\1\105\1\104\1\44\1\uffff"
+        u"\75\1\46\1\uffff\1\75\1\74\3\75\1\uffff\1\137\1\150\1\157\1\162"
+        u"\1\42\1\uffff\2\0\2\56\2\uffff\1\0\2\uffff\1\160\4\uffff\1\164"
+        u"\1\165\1\163\1\141\1\157\1\147\1\151\1\164\1\147\1\101\1\151\1"
+        u"\156\1\141\1\163\1\164\1\44\1\156\1\162\1\157\1\44\1\146\1\151"
+        u"\3\uffff\1\44\2\124\1\116\1\101\1\114\1\117\1\111\34\uffff\1\75"
+        u"\2\uffff\1\75\10\uffff\1\141\1\163\1\151\1\164\1\145\3\uffff\1"
+        u"\56\1\uffff\1\56\3\uffff\2\145\1\155\1\145\1\165\1\164\1\162\1"
+        u"\156\1\145\1\164\1\157\1\151\1\165\1\124\1\141\1\144\1\163\1\162"
+        u"\1\145\1\44\1\uffff\1\147\1\44\1\141\1\142\1\uffff\1\141\1\151"
+        u"\1\157\1\uffff\1\111\1\44\1\123\1\114\1\101\1\102\1\101\4\uffff"
+        u"\1\163\1\155\1\154\1\157\1\141\1\uffff\1\144\1\162\2\44\1\143\1"
+        u"\151\1\164\1\145\1\157\1\143\1\44\1\163\1\162\1\111\1\164\1\44"
+        u"\1\151\1\164\2\44\1\uffff\1\44\1\uffff\1\164\1\154\1\165\1\147"
+        u"\1\156\1\117\1\uffff\1\124\1\111\1\124\1\101\1\102\1\120\1\155"
+        u"\1\44\1\145\1\44\1\153\1\145\1\156\2\uffff\1\164\1\143\1\44\1\144"
+        u"\1\146\1\150\1\uffff\1\164\1\156\1\103\1\151\1\uffff\1\156\1\44"
+        u"\3\uffff\1\44\1\145\1\154\1\156\1\44\1\116\1\44\1\107\1\111\1\114"
+        u"\1\125\1\117\1\111\1\44\1\uffff\1\44\1\uffff\1\44\1\146\3\44\1"
+        u"\uffff\3\44\1\145\2\44\1\154\1\165\2\uffff\1\44\1\164\1\145\1\uffff"
+        u"\1\101\1\uffff\1\116\1\114\1\137\1\116\1\117\1\44\3\uffff\1\44"
+        u"\6\uffff\1\162\2\uffff\2\145\1\uffff\1\44\1\144\1\114\2\105\1\122"
+        u"\2\124\2\uffff\3\44\1\uffff\2\44\1\104\1\44\1\105\1\111\1\123\5"
+        u"\uffff\1\44\1\uffff\2\115\1\105\1\uffff\1\117\1\105\1\122\1\126"
+        u"\1\123\1\126\2\105\1\111\1\137\1\122\1\103\1\111\1\126\1\105\1"
+        u"\106\1\111\1\44\1\137\1\103\1\uffff\1\125\1\105\1\116\1\44\1\122"
+        u"\1\uffff\1\105\1\106\1\105\1\122\1\105\1\116\1\103\1\105\1\104"
+        u"\1\44\1\uffff"
         )
 
     DFA35_max = DFA.unpack(
         u"\1\ufffe\1\uffff\1\171\1\uffff\1\75\1\170\1\167\1\165\1\145\1\124"
         u"\2\157\1\156\3\157\1\156\3\uffff\1\116\1\125\1\117\1\116\1\117"
         u"\1\114\1\106\4\uffff\1\75\1\71\1\75\1\76\3\75\1\uffff\2\75\1\76"
-        u"\1\75\1\174\1\uffff\1\150\1\157\1\162\1\47\1\uffff\2\ufffe\1\170"
-        u"\1\146\2\uffff\1\ufffe\2\uffff\1\160\4\uffff\1\164\1\165\1\163"
-        u"\1\157\1\162\1\172\1\151\2\164\1\101\1\154\1\141\1\156\1\163\1"
-        u"\164\1\172\1\156\1\157\1\162\1\172\1\146\1\163\3\uffff\1\172\2"
-        u"\124\1\116\1\101\1\114\1\117\1\111\34\uffff\1\75\2\uffff\1\75\10"
-        u"\uffff\1\151\1\164\1\145\3\uffff\1\146\1\uffff\1\146\3\uffff\2"
-        u"\145\1\155\1\145\1\162\1\164\1\165\1\145\1\156\1\164\1\157\1\165"
-        u"\1\151\1\124\1\144\1\141\1\162\1\164\1\145\1\172\1\uffff\1\147"
-        u"\1\141\1\172\1\142\1\uffff\1\141\1\151\1\157\1\uffff\1\111\1\172"
-        u"\1\123\1\114\1\101\1\102\1\137\4\uffff\1\154\1\157\1\141\1\uffff"
-        u"\1\144\1\162\2\172\1\164\1\151\1\143\1\157\1\145\1\143\1\172\1"
-        u"\162\1\163\1\111\1\172\1\164\1\172\1\164\1\151\1\172\1\uffff\1"
-        u"\172\1\164\1\uffff\1\154\1\165\1\147\1\156\1\117\1\uffff\1\124"
-        u"\1\111\1\124\1\101\1\122\1\120\1\145\1\172\1\153\1\145\1\156\2"
-        u"\uffff\1\172\1\143\1\164\1\146\1\144\1\150\1\uffff\1\156\1\164"
-        u"\1\103\1\uffff\1\151\1\uffff\1\172\1\156\2\uffff\1\172\1\145\1"
-        u"\154\1\156\1\172\1\116\1\172\1\107\1\111\1\114\1\125\1\117\1\111"
-        u"\1\172\1\uffff\1\172\1\146\1\172\1\uffff\6\172\1\145\1\172\1\154"
-        u"\1\uffff\1\165\1\uffff\1\172\1\164\1\145\1\uffff\1\101\1\uffff"
-        u"\1\116\1\114\1\137\1\116\1\117\1\172\2\uffff\1\172\7\uffff\1\162"
-        u"\1\uffff\2\145\1\uffff\1\172\1\144\1\114\2\105\1\122\2\124\2\uffff"
-        u"\3\172\1\uffff\2\172\1\104\1\172\1\105\1\111\1\123\5\uffff\1\172"
-        u"\1\uffff\2\115\1\105\1\uffff\1\117\1\105\1\122\1\126\1\123\1\126"
-        u"\2\105\1\111\1\137\1\122\1\103\1\111\1\126\1\105\1\106\1\111\1"
-        u"\172\1\137\1\103\1\uffff\1\125\1\105\1\116\1\172\1\122\1\uffff"
-        u"\1\105\1\106\1\105\1\122\1\105\1\116\1\103\1\105\1\104\1\172\1"
-        u"\uffff"
+        u"\1\75\1\174\1\uffff\1\141\1\150\1\157\1\162\1\47\1\uffff\2\ufffe"
+        u"\1\170\1\146\2\uffff\1\ufffe\2\uffff\1\160\4\uffff\1\164\1\165"
+        u"\1\163\1\162\1\157\1\172\1\151\2\164\1\101\1\154\1\156\1\141\1"
+        u"\163\1\164\1\172\1\156\1\162\1\157\1\172\1\146\1\163\3\uffff\1"
+        u"\172\2\124\1\116\1\101\1\114\1\117\1\111\34\uffff\1\75\2\uffff"
+        u"\1\75\10\uffff\1\141\1\163\1\151\1\164\1\145\3\uffff\1\146\1\uffff"
+        u"\1\146\3\uffff\2\145\1\155\1\145\1\165\1\164\1\162\1\156\1\145"
+        u"\1\164\1\157\1\151\1\165\1\124\1\141\1\144\1\164\1\162\1\145\1"
+        u"\172\1\uffff\1\147\1\172\1\141\1\142\1\uffff\1\141\1\151\1\157"
+        u"\1\uffff\1\111\1\172\1\123\1\114\1\101\1\102\1\137\4\uffff\1\163"
+        u"\1\155\1\154\1\157\1\141\1\uffff\1\144\1\162\2\172\1\143\1\151"
+        u"\1\164\1\145\1\157\1\143\1\172\1\163\1\162\1\111\1\164\1\172\1"
+        u"\151\1\164\2\172\1\uffff\1\172\1\uffff\1\164\1\154\1\165\1\147"
+        u"\1\156\1\117\1\uffff\1\124\1\111\1\124\1\101\1\122\1\120\1\155"
+        u"\1\172\1\145\1\172\1\153\1\145\1\156\2\uffff\1\164\1\143\1\172"
+        u"\1\144\1\146\1\150\1\uffff\1\164\1\156\1\103\1\151\1\uffff\1\156"
+        u"\1\172\3\uffff\1\172\1\145\1\154\1\156\1\172\1\116\1\172\1\107"
+        u"\1\111\1\114\1\125\1\117\1\111\1\172\1\uffff\1\172\1\uffff\1\172"
+        u"\1\146\3\172\1\uffff\3\172\1\145\2\172\1\154\1\165\2\uffff\1\172"
+        u"\1\164\1\145\1\uffff\1\101\1\uffff\1\116\1\114\1\137\1\116\1\117"
+        u"\1\172\3\uffff\1\172\6\uffff\1\162\2\uffff\2\145\1\uffff\1\172"
+        u"\1\144\1\114\2\105\1\122\2\124\2\uffff\3\172\1\uffff\2\172\1\104"
+        u"\1\172\1\105\1\111\1\123\5\uffff\1\172\1\uffff\2\115\1\105\1\uffff"
+        u"\1\117\1\105\1\122\1\126\1\123\1\126\2\105\1\111\1\137\1\122\1"
+        u"\103\1\111\1\126\1\105\1\106\1\111\1\172\1\137\1\103\1\uffff\1"
+        u"\125\1\105\1\116\1\172\1\122\1\uffff\1\105\1\106\1\105\1\122\1"
+        u"\105\1\116\1\103\1\105\1\104\1\172\1\uffff"
         )
 
     DFA35_accept = DFA.unpack(
         u"\1\uffff\1\1\1\uffff\1\3\15\uffff\1\23\1\24\1\27\7\uffff\1\45\1"
-        u"\46\1\47\1\50\7\uffff\1\65\5\uffff\1\101\4\uffff\1\132\4\uffff"
-        u"\1\141\1\142\1\uffff\1\143\1\1\1\uffff\1\132\1\3\1\106\1\4\26\uffff"
-        u"\1\23\1\24\1\27\10\uffff\1\45\1\46\1\47\1\50\1\67\1\51\1\52\1\62"
-        u"\1\140\1\57\1\72\1\53\1\63\1\60\1\73\1\54\1\144\1\145\1\70\1\55"
+        u"\46\1\47\1\50\7\uffff\1\65\5\uffff\1\101\5\uffff\1\134\4\uffff"
+        u"\1\143\1\144\1\uffff\1\145\1\1\1\uffff\1\134\1\3\1\106\1\4\26\uffff"
+        u"\1\23\1\24\1\27\10\uffff\1\45\1\46\1\47\1\50\1\67\1\51\1\52\1\142"
+        u"\1\62\1\57\1\72\1\53\1\60\1\73\1\63\1\54\1\146\1\147\1\70\1\55"
         u"\1\71\1\56\1\103\1\76\1\64\1\65\1\107\1\66\1\uffff\1\112\1\110"
-        u"\1\uffff\1\113\1\111\1\77\1\105\1\102\1\100\1\104\1\101\3\uffff"
-        u"\1\134\1\133\1\135\1\uffff\1\136\1\uffff\1\141\1\142\1\146\24\uffff"
-        u"\1\120\4\uffff\1\124\3\uffff\1\33\7\uffff\1\74\1\114\1\75\1\115"
-        u"\3\uffff\1\137\24\uffff\1\15\2\uffff\1\125\5\uffff\1\34\13\uffff"
-        u"\1\30\1\121\6\uffff\1\7\3\uffff\1\12\1\uffff\1\13\2\uffff\1\116"
-        u"\1\16\16\uffff\1\126\3\uffff\1\14\11\uffff\1\31\1\uffff\1\17\3"
-        u"\uffff\1\26\1\uffff\1\36\6\uffff\1\123\1\130\1\uffff\1\5\1\6\1"
-        u"\25\1\61\1\21\1\122\1\131\1\uffff\1\11\2\uffff\1\20\10\uffff\1"
-        u"\42\1\2\3\uffff\1\117\7\uffff\1\10\1\32\1\127\1\22\1\35\1\uffff"
-        u"\1\40\3\uffff\1\37\24\uffff\1\43\5\uffff\1\44\12\uffff\1\41"
+        u"\1\uffff\1\113\1\111\1\77\1\105\1\102\1\100\1\104\1\101\5\uffff"
+        u"\1\135\1\136\1\137\1\uffff\1\140\1\uffff\1\143\1\144\1\150\24\uffff"
+        u"\1\122\4\uffff\1\126\3\uffff\1\33\7\uffff\1\74\1\114\1\75\1\115"
+        u"\5\uffff\1\141\24\uffff\1\15\1\uffff\1\127\6\uffff\1\34\15\uffff"
+        u"\1\30\1\123\6\uffff\1\7\4\uffff\1\12\2\uffff\1\13\1\120\1\16\16"
+        u"\uffff\1\116\1\uffff\1\130\5\uffff\1\14\10\uffff\1\31\1\17\3\uffff"
+        u"\1\26\1\uffff\1\36\6\uffff\1\117\1\125\1\132\1\uffff\1\5\1\25\1"
+        u"\6\1\21\1\61\1\124\1\uffff\1\133\1\11\2\uffff\1\20\10\uffff\1\42"
+        u"\1\2\3\uffff\1\121\7\uffff\1\10\1\32\1\131\1\22\1\35\1\uffff\1"
+        u"\40\3\uffff\1\37\24\uffff\1\43\5\uffff\1\44\12\uffff\1\41"
         )
 
     DFA35_special = DFA.unpack(
-        u"\u017e\uffff"
+        u"\u0188\uffff"
         )
 
             
     DFA35_transition = [
-        DFA.unpack(u"\6\71\2\66\1\71\2\66\22\71\1\66\1\47\1\63\1\70\1\61"
-        u"\1\44\1\45\1\62\1\33\1\34\1\37\1\41\1\3\1\42\1\40\1\43\1\64\11"
-        u"\65\1\23\1\1\1\50\1\4\1\51\1\54\1\71\2\61\1\26\1\61\1\32\1\61\1"
-        u"\31\1\61\1\24\2\61\1\60\2\61\1\25\3\61\1\11\1\61\1\27\1\30\4\61"
-        u"\1\35\1\67\1\36\1\52\1\61\1\71\1\7\1\57\1\13\1\17\1\5\1\16\1\56"
-        u"\1\61\1\14\2\61\1\15\5\61\1\10\1\6\1\2\1\20\1\12\1\55\3\61\1\21"
-        u"\1\53\1\22\1\46\uff80\71"),
+        DFA.unpack(u"\6\72\2\67\1\72\2\67\22\72\1\67\1\47\1\64\1\71\1\62"
+        u"\1\44\1\45\1\63\1\33\1\34\1\37\1\41\1\3\1\42\1\40\1\43\1\65\11"
+        u"\66\1\23\1\1\1\50\1\4\1\51\1\54\1\72\2\62\1\26\1\62\1\32\1\62\1"
+        u"\31\1\62\1\24\2\62\1\61\2\62\1\25\3\62\1\11\1\62\1\27\1\30\4\62"
+        u"\1\35\1\70\1\36\1\52\1\55\1\72\1\7\1\60\1\13\1\17\1\5\1\16\1\57"
+        u"\1\62\1\14\2\62\1\15\5\62\1\10\1\6\1\2\1\20\1\12\1\56\3\62\1\21"
+        u"\1\53\1\22\1\46\uff80\72"),
         DFA.unpack(u""),
-        DFA.unpack(u"\1\73"),
+        DFA.unpack(u"\1\74"),
         DFA.unpack(u""),
-        DFA.unpack(u"\1\76"),
-        DFA.unpack(u"\1\102\1\uffff\1\101\11\uffff\1\100"),
-        DFA.unpack(u"\1\103\1\105\12\uffff\1\104\2\uffff\1\106"),
-        DFA.unpack(u"\1\107"),
+        DFA.unpack(u"\1\77"),
+        DFA.unpack(u"\1\103\1\uffff\1\102\11\uffff\1\101"),
+        DFA.unpack(u"\1\105\1\106\12\uffff\1\104\2\uffff\1\107"),
         DFA.unpack(u"\1\110"),
         DFA.unpack(u"\1\111"),
         DFA.unpack(u"\1\112"),
-        DFA.unpack(u"\1\115\6\uffff\1\113\6\uffff\1\114"),
-        DFA.unpack(u"\1\117\7\uffff\1\116"),
-        DFA.unpack(u"\1\120"),
-        DFA.unpack(u"\1\121\2\uffff\1\122"),
-        DFA.unpack(u"\1\124\11\uffff\1\123"),
-        DFA.unpack(u"\1\125"),
+        DFA.unpack(u"\1\113"),
+        DFA.unpack(u"\1\116\6\uffff\1\115\6\uffff\1\114"),
+        DFA.unpack(u"\1\120\7\uffff\1\117"),
+        DFA.unpack(u"\1\121"),
+        DFA.unpack(u"\1\123\2\uffff\1\122"),
+        DFA.unpack(u"\1\125\11\uffff\1\124"),
+        DFA.unpack(u"\1\126"),
         DFA.unpack(u""),
         DFA.unpack(u""),
         DFA.unpack(u""),
-        DFA.unpack(u"\1\131"),
-        DFA.unpack(u"\1\132\4\uffff\1\133"),
-        DFA.unpack(u"\1\134"),
+        DFA.unpack(u"\1\132"),
+        DFA.unpack(u"\1\133\4\uffff\1\134"),
         DFA.unpack(u"\1\135"),
         DFA.unpack(u"\1\136"),
         DFA.unpack(u"\1\137"),
         DFA.unpack(u"\1\140"),
+        DFA.unpack(u"\1\141"),
         DFA.unpack(u""),
         DFA.unpack(u""),
         DFA.unpack(u""),
         DFA.unpack(u""),
-        DFA.unpack(u"\1\145"),
-        DFA.unpack(u"\1\147\1\uffff\12\151"),
-        DFA.unpack(u"\1\152\21\uffff\1\153"),
-        DFA.unpack(u"\1\156\17\uffff\1\157\1\155"),
-        DFA.unpack(u"\1\161\4\uffff\1\162\15\uffff\1\163"),
-        DFA.unpack(u"\1\165"),
-        DFA.unpack(u"\1\167\26\uffff\1\170"),
+        DFA.unpack(u"\1\146"),
+        DFA.unpack(u"\1\150\1\uffff\12\151"),
+        DFA.unpack(u"\1\153\21\uffff\1\154"),
+        DFA.unpack(u"\1\156\17\uffff\1\157\1\160"),
+        DFA.unpack(u"\1\162\4\uffff\1\163\15\uffff\1\164"),
+        DFA.unpack(u"\1\166"),
+        DFA.unpack(u"\1\170\26\uffff\1\171"),
         DFA.unpack(u""),
-        DFA.unpack(u"\1\173"),
-        DFA.unpack(u"\1\175\1\176"),
-        DFA.unpack(u"\1\u0081\1\u0080"),
-        DFA.unpack(u"\1\u0083"),
-        DFA.unpack(u"\1\u0086\76\uffff\1\u0085"),
+        DFA.unpack(u"\1\174"),
+        DFA.unpack(u"\1\176\1\177"),
+        DFA.unpack(u"\1\u0082\1\u0081"),
+        DFA.unpack(u"\1\u0084"),
+        DFA.unpack(u"\1\u0087\76\uffff\1\u0086"),
         DFA.unpack(u""),
-        DFA.unpack(u"\1\u0089"),
-        DFA.unpack(u"\1\u008a"),
-        DFA.unpack(u"\1\u008b"),
-        DFA.unpack(u"\1\u008c\4\uffff\1\u008d"),
+        DFA.unpack(u"\1\u008a\1\uffff\1\u008b"),
+        DFA.unpack(u"\1\u008c"),
+        DFA.unpack(u"\1\u008d"),
+        DFA.unpack(u"\1\u008e"),
+        DFA.unpack(u"\1\u0090\4\uffff\1\u008f"),
         DFA.unpack(u""),
-        DFA.unpack(u"\47\u008d\1\uffff\uffd7\u008d"),
-        DFA.unpack(u"\uffff\u008c"),
-        DFA.unpack(u"\1\151\1\uffff\10\u008f\2\151\12\uffff\3\151\21\uffff"
-        u"\1\u008e\13\uffff\3\151\21\uffff\1\u008e"),
-        DFA.unpack(u"\1\151\1\uffff\12\u0091\12\uffff\3\151\35\uffff\3\151"),
+        DFA.unpack(u"\47\u008f\1\uffff\uffd7\u008f"),
+        DFA.unpack(u"\uffff\u0090"),
+        DFA.unpack(u"\1\151\1\uffff\10\u0092\2\151\12\uffff\3\151\21\uffff"
+        u"\1\u0091\13\uffff\3\151\21\uffff\1\u0091"),
+        DFA.unpack(u"\1\151\1\uffff\12\u0094\12\uffff\3\151\35\uffff\3\151"),
         DFA.unpack(u""),
         DFA.unpack(u""),
-        DFA.unpack(u"\uffff\u0094"),
+        DFA.unpack(u"\uffff\u0097"),
         DFA.unpack(u""),
         DFA.unpack(u""),
-        DFA.unpack(u"\1\u0095"),
+        DFA.unpack(u"\1\u0098"),
         DFA.unpack(u""),
         DFA.unpack(u""),
         DFA.unpack(u""),
         DFA.unpack(u""),
-        DFA.unpack(u"\1\u0096"),
-        DFA.unpack(u"\1\u0097"),
-        DFA.unpack(u"\1\u0098"),
         DFA.unpack(u"\1\u0099"),
-        DFA.unpack(u"\1\u009a\20\uffff\1\u009b"),
-        DFA.unpack(u"\1\u009d\22\uffff\1\u009c"),
+        DFA.unpack(u"\1\u009a"),
+        DFA.unpack(u"\1\u009b"),
+        DFA.unpack(u"\1\u009d\20\uffff\1\u009c"),
         DFA.unpack(u"\1\u009e"),
-        DFA.unpack(u"\1\u009f"),
-        DFA.unpack(u"\1\u00a1\14\uffff\1\u00a0"),
+        DFA.unpack(u"\1\u009f\22\uffff\1\u00a0"),
+        DFA.unpack(u"\1\u00a1"),
         DFA.unpack(u"\1\u00a2"),
-        DFA.unpack(u"\1\u00a3\2\uffff\1\u00a4"),
+        DFA.unpack(u"\1\u00a3\14\uffff\1\u00a4"),
         DFA.unpack(u"\1\u00a5"),
-        DFA.unpack(u"\1\u00a6"),
-        DFA.unpack(u"\1\u00a7"),
+        DFA.unpack(u"\1\u00a7\2\uffff\1\u00a6"),
         DFA.unpack(u"\1\u00a8"),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
+        DFA.unpack(u"\1\u00a9"),
         DFA.unpack(u"\1\u00aa"),
         DFA.unpack(u"\1\u00ab"),
-        DFA.unpack(u"\1\u00ac"),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\24\74\1\u00ad\5\74"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
+        DFA.unpack(u"\1\u00ad"),
+        DFA.unpack(u"\1\u00ae"),
         DFA.unpack(u"\1\u00af"),
-        DFA.unpack(u"\1\u00b1\11\uffff\1\u00b0"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\24\75\1\u00b0\5\75"),
+        DFA.unpack(u"\1\u00b2"),
+        DFA.unpack(u"\1\u00b4\11\uffff\1\u00b3"),
         DFA.unpack(u""),
         DFA.unpack(u""),
         DFA.unpack(u""),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
-        DFA.unpack(u"\1\u00b3"),
-        DFA.unpack(u"\1\u00b4"),
-        DFA.unpack(u"\1\u00b5"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
         DFA.unpack(u"\1\u00b6"),
         DFA.unpack(u"\1\u00b7"),
         DFA.unpack(u"\1\u00b8"),
         DFA.unpack(u"\1\u00b9"),
+        DFA.unpack(u"\1\u00ba"),
+        DFA.unpack(u"\1\u00bb"),
+        DFA.unpack(u"\1\u00bc"),
         DFA.unpack(u""),
         DFA.unpack(u""),
         DFA.unpack(u""),
@@ -4472,10 +4534,10 @@ class CLexer(Lexer):
         DFA.unpack(u""),
         DFA.unpack(u""),
         DFA.unpack(u""),
-        DFA.unpack(u"\1\u00ba"),
+        DFA.unpack(u"\1\u00bd"),
         DFA.unpack(u""),
         DFA.unpack(u""),
-        DFA.unpack(u"\1\u00bc"),
+        DFA.unpack(u"\1\u00bf"),
         DFA.unpack(u""),
         DFA.unpack(u""),
         DFA.unpack(u""),
@@ -4484,24 +4546,21 @@ class CLexer(Lexer):
         DFA.unpack(u""),
         DFA.unpack(u""),
         DFA.unpack(u""),
-        DFA.unpack(u"\1\u00be"),
-        DFA.unpack(u"\1\u00bf"),
-        DFA.unpack(u"\1\u00c0"),
+        DFA.unpack(u"\1\u00c1"),
+        DFA.unpack(u"\1\u00c2"),
+        DFA.unpack(u"\1\u00c3"),
+        DFA.unpack(u"\1\u00c4"),
+        DFA.unpack(u"\1\u00c5"),
         DFA.unpack(u""),
         DFA.unpack(u""),
         DFA.unpack(u""),
-        DFA.unpack(u"\1\151\1\uffff\10\u008f\2\151\12\uffff\3\151\35\uffff"
+        DFA.unpack(u"\1\151\1\uffff\10\u0092\2\151\12\uffff\3\151\35\uffff"
         u"\3\151"),
         DFA.unpack(u""),
-        DFA.unpack(u"\1\151\1\uffff\12\u0091\12\uffff\3\151\35\uffff\3\151"),
+        DFA.unpack(u"\1\151\1\uffff\12\u0094\12\uffff\3\151\35\uffff\3\151"),
         DFA.unpack(u""),
         DFA.unpack(u""),
         DFA.unpack(u""),
-        DFA.unpack(u"\1\u00c2"),
-        DFA.unpack(u"\1\u00c3"),
-        DFA.unpack(u"\1\u00c4"),
-        DFA.unpack(u"\1\u00c5"),
-        DFA.unpack(u"\1\u00c6"),
         DFA.unpack(u"\1\u00c7"),
         DFA.unpack(u"\1\u00c8"),
         DFA.unpack(u"\1\u00c9"),
@@ -4514,231 +4573,235 @@ class CLexer(Lexer):
         DFA.unpack(u"\1\u00d0"),
         DFA.unpack(u"\1\u00d1"),
         DFA.unpack(u"\1\u00d2"),
-        DFA.unpack(u"\1\u00d3\1\u00d4"),
+        DFA.unpack(u"\1\u00d3"),
+        DFA.unpack(u"\1\u00d4"),
         DFA.unpack(u"\1\u00d5"),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
-        DFA.unpack(u""),
-        DFA.unpack(u"\1\u00d7"),
-        DFA.unpack(u"\1\u00d8"),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
+        DFA.unpack(u"\1\u00d6"),
+        DFA.unpack(u"\1\u00d8\1\u00d7"),
+        DFA.unpack(u"\1\u00d9"),
         DFA.unpack(u"\1\u00da"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
         DFA.unpack(u""),
-        DFA.unpack(u"\1\u00db"),
         DFA.unpack(u"\1\u00dc"),
-        DFA.unpack(u"\1\u00dd"),
-        DFA.unpack(u""),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
         DFA.unpack(u"\1\u00de"),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
+        DFA.unpack(u"\1\u00df"),
+        DFA.unpack(u""),
         DFA.unpack(u"\1\u00e0"),
         DFA.unpack(u"\1\u00e1"),
         DFA.unpack(u"\1\u00e2"),
-        DFA.unpack(u"\1\u00e3"),
-        DFA.unpack(u"\1\u00e5\35\uffff\1\u00e4"),
-        DFA.unpack(u""),
-        DFA.unpack(u""),
-        DFA.unpack(u""),
         DFA.unpack(u""),
+        DFA.unpack(u"\1\u00e3"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
+        DFA.unpack(u"\1\u00e5"),
         DFA.unpack(u"\1\u00e6"),
         DFA.unpack(u"\1\u00e7"),
         DFA.unpack(u"\1\u00e8"),
+        DFA.unpack(u"\1\u00ea\35\uffff\1\u00e9"),
+        DFA.unpack(u""),
+        DFA.unpack(u""),
+        DFA.unpack(u""),
         DFA.unpack(u""),
-        DFA.unpack(u"\1\u00e9"),
-        DFA.unpack(u"\1\u00ea"),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
+        DFA.unpack(u"\1\u00eb"),
+        DFA.unpack(u"\1\u00ec"),
         DFA.unpack(u"\1\u00ed"),
         DFA.unpack(u"\1\u00ee"),
         DFA.unpack(u"\1\u00ef"),
+        DFA.unpack(u""),
         DFA.unpack(u"\1\u00f0"),
         DFA.unpack(u"\1\u00f1"),
-        DFA.unpack(u"\1\u00f2"),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
         DFA.unpack(u"\1\u00f4"),
         DFA.unpack(u"\1\u00f5"),
         DFA.unpack(u"\1\u00f6"),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
+        DFA.unpack(u"\1\u00f7"),
         DFA.unpack(u"\1\u00f8"),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
-        DFA.unpack(u"\1\u00fa"),
+        DFA.unpack(u"\1\u00f9"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
         DFA.unpack(u"\1\u00fb"),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
-        DFA.unpack(u""),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
+        DFA.unpack(u"\1\u00fc"),
+        DFA.unpack(u"\1\u00fd"),
         DFA.unpack(u"\1\u00fe"),
-        DFA.unpack(u""),
-        DFA.unpack(u"\1\u00ff"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
         DFA.unpack(u"\1\u0100"),
         DFA.unpack(u"\1\u0101"),
-        DFA.unpack(u"\1\u0102"),
-        DFA.unpack(u"\1\u0103"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
+        DFA.unpack(u""),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
         DFA.unpack(u""),
-        DFA.unpack(u"\1\u0104"),
         DFA.unpack(u"\1\u0105"),
         DFA.unpack(u"\1\u0106"),
         DFA.unpack(u"\1\u0107"),
-        DFA.unpack(u"\1\u0109\17\uffff\1\u0108"),
+        DFA.unpack(u"\1\u0108"),
+        DFA.unpack(u"\1\u0109"),
         DFA.unpack(u"\1\u010a"),
+        DFA.unpack(u""),
         DFA.unpack(u"\1\u010b"),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
+        DFA.unpack(u"\1\u010c"),
         DFA.unpack(u"\1\u010d"),
         DFA.unpack(u"\1\u010e"),
-        DFA.unpack(u"\1\u010f"),
-        DFA.unpack(u""),
-        DFA.unpack(u""),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
+        DFA.unpack(u"\1\u0110\17\uffff\1\u010f"),
         DFA.unpack(u"\1\u0111"),
         DFA.unpack(u"\1\u0112"),
-        DFA.unpack(u"\1\u0113"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
         DFA.unpack(u"\1\u0114"),
-        DFA.unpack(u"\1\u0115"),
-        DFA.unpack(u""),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
         DFA.unpack(u"\1\u0116"),
         DFA.unpack(u"\1\u0117"),
         DFA.unpack(u"\1\u0118"),
         DFA.unpack(u""),
-        DFA.unpack(u"\1\u0119"),
-        DFA.unpack(u""),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
-        DFA.unpack(u"\1\u011b"),
         DFA.unpack(u""),
-        DFA.unpack(u""),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
+        DFA.unpack(u"\1\u0119"),
+        DFA.unpack(u"\1\u011a"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
+        DFA.unpack(u"\1\u011c"),
         DFA.unpack(u"\1\u011d"),
         DFA.unpack(u"\1\u011e"),
+        DFA.unpack(u""),
         DFA.unpack(u"\1\u011f"),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
+        DFA.unpack(u"\1\u0120"),
         DFA.unpack(u"\1\u0121"),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
+        DFA.unpack(u"\1\u0122"),
+        DFA.unpack(u""),
         DFA.unpack(u"\1\u0123"),
-        DFA.unpack(u"\1\u0124"),
-        DFA.unpack(u"\1\u0125"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
+        DFA.unpack(u""),
+        DFA.unpack(u""),
+        DFA.unpack(u""),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
         DFA.unpack(u"\1\u0126"),
         DFA.unpack(u"\1\u0127"),
         DFA.unpack(u"\1\u0128"),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
+        DFA.unpack(u"\1\u012a"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
+        DFA.unpack(u"\1\u012c"),
+        DFA.unpack(u"\1\u012d"),
+        DFA.unpack(u"\1\u012e"),
+        DFA.unpack(u"\1\u012f"),
+        DFA.unpack(u"\1\u0130"),
+        DFA.unpack(u"\1\u0131"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
         DFA.unpack(u""),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
-        DFA.unpack(u"\1\u012b"),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
         DFA.unpack(u""),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
-        DFA.unpack(u"\1\u0133"),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
         DFA.unpack(u"\1\u0135"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
         DFA.unpack(u""),
-        DFA.unpack(u"\1\u0136"),
-        DFA.unpack(u""),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
-        DFA.unpack(u"\1\u0138"),
-        DFA.unpack(u"\1\u0139"),
-        DFA.unpack(u""),
-        DFA.unpack(u"\1\u013a"),
-        DFA.unpack(u""),
-        DFA.unpack(u"\1\u013b"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
         DFA.unpack(u"\1\u013c"),
-        DFA.unpack(u"\1\u013d"),
-        DFA.unpack(u"\1\u013e"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
         DFA.unpack(u"\1\u013f"),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
+        DFA.unpack(u"\1\u0140"),
         DFA.unpack(u""),
         DFA.unpack(u""),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
+        DFA.unpack(u"\1\u0142"),
+        DFA.unpack(u"\1\u0143"),
         DFA.unpack(u""),
+        DFA.unpack(u"\1\u0144"),
         DFA.unpack(u""),
+        DFA.unpack(u"\1\u0145"),
+        DFA.unpack(u"\1\u0146"),
+        DFA.unpack(u"\1\u0147"),
+        DFA.unpack(u"\1\u0148"),
+        DFA.unpack(u"\1\u0149"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
         DFA.unpack(u""),
         DFA.unpack(u""),
         DFA.unpack(u""),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
+        DFA.unpack(u""),
+        DFA.unpack(u""),
         DFA.unpack(u""),
         DFA.unpack(u""),
-        DFA.unpack(u"\1\u0142"),
         DFA.unpack(u""),
-        DFA.unpack(u"\1\u0143"),
-        DFA.unpack(u"\1\u0144"),
         DFA.unpack(u""),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
-        DFA.unpack(u"\1\u0146"),
-        DFA.unpack(u"\1\u0147"),
-        DFA.unpack(u"\1\u0148"),
-        DFA.unpack(u"\1\u0149"),
-        DFA.unpack(u"\1\u014a"),
-        DFA.unpack(u"\1\u014b"),
         DFA.unpack(u"\1\u014c"),
         DFA.unpack(u""),
         DFA.unpack(u""),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
+        DFA.unpack(u"\1\u014d"),
+        DFA.unpack(u"\1\u014e"),
         DFA.unpack(u""),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
+        DFA.unpack(u"\1\u0150"),
+        DFA.unpack(u"\1\u0151"),
         DFA.unpack(u"\1\u0152"),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
+        DFA.unpack(u"\1\u0153"),
         DFA.unpack(u"\1\u0154"),
         DFA.unpack(u"\1\u0155"),
         DFA.unpack(u"\1\u0156"),
         DFA.unpack(u""),
         DFA.unpack(u""),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
         DFA.unpack(u""),
-        DFA.unpack(u""),
-        DFA.unpack(u""),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
-        DFA.unpack(u""),
-        DFA.unpack(u"\1\u0158"),
-        DFA.unpack(u"\1\u0159"),
-        DFA.unpack(u"\1\u015a"),
-        DFA.unpack(u""),
-        DFA.unpack(u"\1\u015b"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
         DFA.unpack(u"\1\u015c"),
-        DFA.unpack(u"\1\u015d"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
         DFA.unpack(u"\1\u015e"),
         DFA.unpack(u"\1\u015f"),
         DFA.unpack(u"\1\u0160"),
-        DFA.unpack(u"\1\u0161"),
+        DFA.unpack(u""),
+        DFA.unpack(u""),
+        DFA.unpack(u""),
+        DFA.unpack(u""),
+        DFA.unpack(u""),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
+        DFA.unpack(u""),
         DFA.unpack(u"\1\u0162"),
         DFA.unpack(u"\1\u0163"),
         DFA.unpack(u"\1\u0164"),
+        DFA.unpack(u""),
         DFA.unpack(u"\1\u0165"),
         DFA.unpack(u"\1\u0166"),
         DFA.unpack(u"\1\u0167"),
@@ -4746,29 +4809,39 @@ class CLexer(Lexer):
         DFA.unpack(u"\1\u0169"),
         DFA.unpack(u"\1\u016a"),
         DFA.unpack(u"\1\u016b"),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
+        DFA.unpack(u"\1\u016c"),
         DFA.unpack(u"\1\u016d"),
         DFA.unpack(u"\1\u016e"),
-        DFA.unpack(u""),
         DFA.unpack(u"\1\u016f"),
         DFA.unpack(u"\1\u0170"),
         DFA.unpack(u"\1\u0171"),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
+        DFA.unpack(u"\1\u0172"),
         DFA.unpack(u"\1\u0173"),
-        DFA.unpack(u""),
         DFA.unpack(u"\1\u0174"),
         DFA.unpack(u"\1\u0175"),
-        DFA.unpack(u"\1\u0176"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
         DFA.unpack(u"\1\u0177"),
         DFA.unpack(u"\1\u0178"),
+        DFA.unpack(u""),
         DFA.unpack(u"\1\u0179"),
         DFA.unpack(u"\1\u017a"),
         DFA.unpack(u"\1\u017b"),
-        DFA.unpack(u"\1\u017c"),
-        DFA.unpack(u"\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff"
-        u"\32\74"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
+        DFA.unpack(u"\1\u017d"),
+        DFA.unpack(u""),
+        DFA.unpack(u"\1\u017e"),
+        DFA.unpack(u"\1\u017f"),
+        DFA.unpack(u"\1\u0180"),
+        DFA.unpack(u"\1\u0181"),
+        DFA.unpack(u"\1\u0182"),
+        DFA.unpack(u"\1\u0183"),
+        DFA.unpack(u"\1\u0184"),
+        DFA.unpack(u"\1\u0185"),
+        DFA.unpack(u"\1\u0186"),
+        DFA.unpack(u"\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff"
+        u"\32\75"),
         DFA.unpack(u"")
     ]
 
index fbc1a24..e6a9b78 100644 (file)
@@ -1,4 +1,4 @@
-# $ANTLR 3.0.1 C.g 2008-04-08 11:34:27
+# $ANTLR 3.0.1 C.g 2008-04-10 16:47:12
 
 from antlr3 import *
 from antlr3.compat import set, frozenset
@@ -52,8 +52,9 @@ tokenNames = [
     "'sizeof'", "'.'", "'->'", "'&'", "'~'", "'!'", "'*='", "'/='", "'%='", 
     "'+='", "'-='", "'<<='", "'>>='", "'&='", "'^='", "'|='", "'?'", "'||'", 
     "'&&'", "'|'", "'^'", "'=='", "'!='", "'<'", "'>'", "'<='", "'>='", 
-    "'<<'", "'>>'", "'case'", "'default'", "'if'", "'else'", "'switch'", 
-    "'while'", "'do'", "'for'", "'goto'", "'continue'", "'break'", "'return'"
+    "'<<'", "'>>'", "'_asm'", "'__asm'", "'case'", "'default'", "'if'", 
+    "'else'", "'switch'", "'while'", "'do'", "'for'", "'goto'", "'continue'", 
+    "'break'", "'return'"
 ]
 
 
@@ -1494,10 +1495,10 @@ class CParser(Parser):
                     if (LA15_1 == IDENTIFIER) :
                         LA15_2 = self.input.LA(3)
 
-                        if (LA15_2 == 43) :
-                            alt15 = 1
-                        elif (LA15_2 == EOF or LA15_2 == IDENTIFIER or LA15_2 == 25 or LA15_2 == 27 or (29 <= LA15_2 <= 42) or (45 <= LA15_2 <= 63) or LA15_2 == 65) :
+                        if (LA15_2 == EOF or LA15_2 == IDENTIFIER or LA15_2 == 25 or LA15_2 == 27 or (29 <= LA15_2 <= 42) or (45 <= LA15_2 <= 63) or LA15_2 == 65) :
                             alt15 = 2
+                        elif (LA15_2 == 43) :
+                            alt15 = 1
                         else:
                             if self.backtracking > 0:
                                 self.failed = True
@@ -2029,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
@@ -2511,127 +2512,127 @@ class CParser(Parser):
                                     alt31 = 1
 
 
-                            elif LA31 == 58:
+                            elif LA31 == 29 or LA31 == 30 or LA31 == 31 or LA31 == 32 or LA31 == 33:
                                 LA31_31 = self.input.LA(3)
 
                                 if (self.synpred66()) :
                                     alt31 = 1
 
 
-                            elif LA31 == 65:
+                            elif LA31 == 34:
                                 LA31_32 = self.input.LA(3)
 
                                 if (self.synpred66()) :
                                     alt31 = 1
 
 
-                            elif LA31 == 59:
+                            elif LA31 == 35:
                                 LA31_33 = self.input.LA(3)
 
                                 if (self.synpred66()) :
                                     alt31 = 1
 
 
-                            elif LA31 == 60:
+                            elif LA31 == 36:
                                 LA31_34 = self.input.LA(3)
 
                                 if (self.synpred66()) :
                                     alt31 = 1
 
 
-                            elif LA31 == IDENTIFIER:
+                            elif LA31 == 37:
                                 LA31_35 = self.input.LA(3)
 
                                 if (self.synpred66()) :
                                     alt31 = 1
 
 
-                            elif LA31 == 29 or LA31 == 30 or LA31 == 31 or LA31 == 32 or LA31 == 33:
+                            elif LA31 == 38:
+                                LA31_36 = self.input.LA(3)
+
+                                if (self.synpred66()) :
+                                    alt31 = 1
+
+
+                            elif LA31 == 39:
                                 LA31_37 = self.input.LA(3)
 
                                 if (self.synpred66()) :
                                     alt31 = 1
 
 
-                            elif LA31 == 34:
+                            elif LA31 == 40:
                                 LA31_38 = self.input.LA(3)
 
                                 if (self.synpred66()) :
                                     alt31 = 1
 
 
-                            elif LA31 == 35:
+                            elif LA31 == 41:
                                 LA31_39 = self.input.LA(3)
 
                                 if (self.synpred66()) :
                                     alt31 = 1
 
 
-                            elif LA31 == 36:
+                            elif LA31 == 42:
                                 LA31_40 = self.input.LA(3)
 
                                 if (self.synpred66()) :
                                     alt31 = 1
 
 
-                            elif LA31 == 37:
+                            elif LA31 == 45 or LA31 == 46:
                                 LA31_41 = self.input.LA(3)
 
                                 if (self.synpred66()) :
                                     alt31 = 1
 
 
-                            elif LA31 == 38:
+                            elif LA31 == 48:
                                 LA31_42 = self.input.LA(3)
 
                                 if (self.synpred66()) :
                                     alt31 = 1
 
 
-                            elif LA31 == 39:
+                            elif LA31 == IDENTIFIER:
                                 LA31_43 = self.input.LA(3)
 
                                 if (self.synpred66()) :
                                     alt31 = 1
 
 
-                            elif LA31 == 40:
+                            elif LA31 == 58:
                                 LA31_44 = self.input.LA(3)
 
                                 if (self.synpred66()) :
                                     alt31 = 1
 
 
-                            elif LA31 == 41:
+                            elif LA31 == 65:
                                 LA31_45 = self.input.LA(3)
 
                                 if (self.synpred66()) :
                                     alt31 = 1
 
 
-                            elif LA31 == 42:
-                                LA31_46 = self.input.LA(3)
-
-                                if (self.synpred66()) :
-                                    alt31 = 1
-
-
-                            elif LA31 == 45 or LA31 == 46:
-                                LA31_47 = self.input.LA(3)
+                            elif LA31 == 59:
+                                LA31_48 = self.input.LA(3)
 
                                 if (self.synpred66()) :
                                     alt31 = 1
 
 
-                            elif LA31 == 48:
-                                LA31_48 = self.input.LA(3)
+                            elif LA31 == 60:
+                                LA31_49 = self.input.LA(3)
 
                                 if (self.synpred66()) :
                                     alt31 = 1
 
 
                             elif LA31 == 49 or LA31 == 50 or LA31 == 51 or LA31 == 52 or LA31 == 53 or LA31 == 54 or LA31 == 55 or LA31 == 56 or LA31 == 57:
-                                LA31_49 = self.input.LA(3)
+                                LA31_50 = self.input.LA(3)
 
                                 if (self.synpred66()) :
                                     alt31 = 1
@@ -2794,127 +2795,127 @@ class CParser(Parser):
                                     alt33 = 1
 
 
-                            elif LA33 == 58:
+                            elif LA33 == 29 or LA33 == 30 or LA33 == 31 or LA33 == 32 or LA33 == 33:
                                 LA33_31 = self.input.LA(3)
 
                                 if (self.synpred69()) :
                                     alt33 = 1
 
 
-                            elif LA33 == 65:
+                            elif LA33 == 34:
                                 LA33_32 = self.input.LA(3)
 
                                 if (self.synpred69()) :
                                     alt33 = 1
 
 
-                            elif LA33 == 59:
+                            elif LA33 == 35:
                                 LA33_33 = self.input.LA(3)
 
                                 if (self.synpred69()) :
                                     alt33 = 1
 
 
-                            elif LA33 == 60:
+                            elif LA33 == 36:
                                 LA33_34 = self.input.LA(3)
 
                                 if (self.synpred69()) :
                                     alt33 = 1
 
 
-                            elif LA33 == IDENTIFIER:
+                            elif LA33 == 37:
                                 LA33_35 = self.input.LA(3)
 
                                 if (self.synpred69()) :
                                     alt33 = 1
 
 
-                            elif LA33 == 29 or LA33 == 30 or LA33 == 31 or LA33 == 32 or LA33 == 33:
+                            elif LA33 == 38:
+                                LA33_36 = self.input.LA(3)
+
+                                if (self.synpred69()) :
+                                    alt33 = 1
+
+
+                            elif LA33 == 39:
                                 LA33_37 = self.input.LA(3)
 
                                 if (self.synpred69()) :
                                     alt33 = 1
 
 
-                            elif LA33 == 34:
+                            elif LA33 == 40:
                                 LA33_38 = self.input.LA(3)
 
                                 if (self.synpred69()) :
                                     alt33 = 1
 
 
-                            elif LA33 == 35:
+                            elif LA33 == 41:
                                 LA33_39 = self.input.LA(3)
 
                                 if (self.synpred69()) :
                                     alt33 = 1
 
 
-                            elif LA33 == 36:
+                            elif LA33 == 42:
                                 LA33_40 = self.input.LA(3)
 
                                 if (self.synpred69()) :
                                     alt33 = 1
 
 
-                            elif LA33 == 37:
+                            elif LA33 == 45 or LA33 == 46:
                                 LA33_41 = self.input.LA(3)
 
                                 if (self.synpred69()) :
                                     alt33 = 1
 
 
-                            elif LA33 == 38:
+                            elif LA33 == 48:
                                 LA33_42 = self.input.LA(3)
 
                                 if (self.synpred69()) :
                                     alt33 = 1
 
 
-                            elif LA33 == 39:
+                            elif LA33 == IDENTIFIER:
                                 LA33_43 = self.input.LA(3)
 
                                 if (self.synpred69()) :
                                     alt33 = 1
 
 
-                            elif LA33 == 40:
+                            elif LA33 == 58:
                                 LA33_44 = self.input.LA(3)
 
                                 if (self.synpred69()) :
                                     alt33 = 1
 
 
-                            elif LA33 == 41:
+                            elif LA33 == 65:
                                 LA33_45 = self.input.LA(3)
 
                                 if (self.synpred69()) :
                                     alt33 = 1
 
 
-                            elif LA33 == 42:
-                                LA33_46 = self.input.LA(3)
-
-                                if (self.synpred69()) :
-                                    alt33 = 1
-
-
-                            elif LA33 == 45 or LA33 == 46:
-                                LA33_47 = self.input.LA(3)
+                            elif LA33 == 59:
+                                LA33_48 = self.input.LA(3)
 
                                 if (self.synpred69()) :
                                     alt33 = 1
 
 
-                            elif LA33 == 48:
-                                LA33_48 = self.input.LA(3)
+                            elif LA33 == 60:
+                                LA33_49 = self.input.LA(3)
 
                                 if (self.synpred69()) :
                                     alt33 = 1
 
 
                             elif LA33 == 49 or LA33 == 50 or LA33 == 51 or LA33 == 52 or LA33 == 53 or LA33 == 54 or LA33 == 55 or LA33 == 56 or LA33 == 57:
-                                LA33_49 = self.input.LA(3)
+                                LA33_50 = self.input.LA(3)
 
                                 if (self.synpred69()) :
                                     alt33 = 1
@@ -3223,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:
@@ -3239,7 +3240,7 @@ class CParser(Parser):
 
                             raise nvae
 
-                    elif LA38 == 58:
+                    elif LA38 == 59:
                         LA38_3 = self.input.LA(3)
 
                         if (self.synpred76()) :
@@ -3255,7 +3256,7 @@ class CParser(Parser):
 
                             raise nvae
 
-                    elif LA38 == 59:
+                    elif LA38 == 60:
                         LA38_4 = self.input.LA(3)
 
                         if (self.synpred76()) :
@@ -3271,8 +3272,10 @@ class CParser(Parser):
 
                             raise nvae
 
-                    elif LA38 == 60:
-                        LA38_5 = self.input.LA(3)
+                    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_20 = self.input.LA(3)
 
                         if (self.synpred76()) :
                             alt38 = 1
@@ -3283,14 +3286,12 @@ class CParser(Parser):
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("262:1: pointer : ( '*' ( type_qualifier )+ ( pointer )? | '*' pointer | '*' );", 38, 5, self.input)
+                            nvae = NoViableAltException("262:1: pointer : ( '*' ( type_qualifier )+ ( pointer )? | '*' pointer | '*' );", 38, 20, 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 == 53:
-                        LA38_21 = self.input.LA(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_28 = self.input.LA(3)
 
                         if (self.synpred76()) :
                             alt38 = 1
@@ -3301,15 +3302,15 @@ 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, 28, self.input)
 
                             raise nvae
 
-                    elif LA38 == 49 or LA38 == 50 or LA38 == 51 or LA38 == 52 or LA38 == 54 or LA38 == 55 or LA38 == 56 or LA38 == 57:
+                    elif LA38 == 65:
                         LA38_29 = self.input.LA(3)
 
-                        if (self.synpred76()) :
-                            alt38 = 1
+                        if (self.synpred77()) :
+                            alt38 = 2
                         elif (True) :
                             alt38 = 3
                         else:
@@ -3686,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 == 65:
-                                LA43_25 = self.input.LA(3)
+                            elif LA43 == IDENTIFIER:
+                                LA43_37 = self.input.LA(3)
 
                                 if (self.synpred82()) :
                                     alt43 = 1
@@ -3695,8 +3696,8 @@ class CParser(Parser):
                                     alt43 = 2
 
 
-                            elif LA43 == 61:
-                                LA43_26 = self.input.LA(3)
+                            elif LA43 == 58:
+                                LA43_38 = self.input.LA(3)
 
                                 if (self.synpred82()) :
                                     alt43 = 1
@@ -3704,8 +3705,8 @@ class CParser(Parser):
                                     alt43 = 2
 
 
-                            elif LA43 == 58:
-                                LA43_28 = self.input.LA(3)
+                            elif LA43 == 65:
+                                LA43_39 = self.input.LA(3)
 
                                 if (self.synpred82()) :
                                     alt43 = 1
@@ -3713,8 +3714,8 @@ class CParser(Parser):
                                     alt43 = 2
 
 
-                            elif LA43 == 59:
-                                LA43_29 = self.input.LA(3)
+                            elif LA43 == 61:
+                                LA43_40 = self.input.LA(3)
 
                                 if (self.synpred82()) :
                                     alt43 = 1
@@ -3722,8 +3723,8 @@ class CParser(Parser):
                                     alt43 = 2
 
 
-                            elif LA43 == 60:
-                                LA43_30 = self.input.LA(3)
+                            elif LA43 == 59:
+                                LA43_42 = self.input.LA(3)
 
                                 if (self.synpred82()) :
                                     alt43 = 1
@@ -3731,8 +3732,8 @@ class CParser(Parser):
                                     alt43 = 2
 
 
-                            elif LA43 == IDENTIFIER:
-                                LA43_31 = self.input.LA(3)
+                            elif LA43 == 60:
+                                LA43_43 = self.input.LA(3)
 
                                 if (self.synpred82()) :
                                     alt43 = 1
@@ -4241,7 +4242,7 @@ class CParser(Parser):
                     if LA52 == IDENTIFIER or LA52 == 29 or LA52 == 30 or LA52 == 31 or LA52 == 32 or LA52 == 33 or LA52 == 34 or LA52 == 35 or LA52 == 36 or LA52 == 37 or LA52 == 38 or LA52 == 39 or LA52 == 40 or LA52 == 41 or LA52 == 42 or LA52 == 45 or LA52 == 46 or LA52 == 48 or LA52 == 49 or LA52 == 50 or LA52 == 51 or LA52 == 52 or LA52 == 53 or LA52 == 54 or LA52 == 55 or LA52 == 56 or LA52 == 57 or LA52 == 58 or LA52 == 59 or LA52 == 60 or LA52 == 62:
                         alt52 = 2
                     elif LA52 == 65:
-                        LA52_18 = self.input.LA(3)
+                        LA52_4 = self.input.LA(3)
 
                         if (self.synpred92()) :
                             alt52 = 1
@@ -4252,7 +4253,7 @@ class CParser(Parser):
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("298:4: ( '(' abstract_declarator ')' | abstract_declarator_suffix )", 52, 18, self.input)
+                            nvae = NoViableAltException("298:4: ( '(' abstract_declarator ')' | abstract_declarator_suffix )", 52, 4, self.input)
 
                             raise nvae
 
@@ -5092,8 +5093,10 @@ class CParser(Parser):
 
                 if (LA61_0 == 61) :
                     LA61 = self.input.LA(2)
-                    if LA61 == IDENTIFIER:
-                        LA61_13 = self.input.LA(3)
+                    if LA61 == 34 or LA61 == 35 or LA61 == 36 or LA61 == 37 or LA61 == 38 or LA61 == 39 or LA61 == 40 or LA61 == 41 or LA61 == 42 or LA61 == 45 or LA61 == 46 or LA61 == 48 or LA61 == 49 or LA61 == 50 or LA61 == 51 or LA61 == 52 or LA61 == 53 or LA61 == 54 or LA61 == 55 or LA61 == 56 or LA61 == 57 or LA61 == 58 or LA61 == 59 or LA61 == 60:
+                        alt61 = 1
+                    elif LA61 == IDENTIFIER:
+                        LA61_25 = self.input.LA(3)
 
                         if (self.synpred106()) :
                             alt61 = 1
@@ -5104,14 +5107,12 @@ class CParser(Parser):
                                 self.failed = True
                                 return 
 
-                            nvae = NoViableAltException("332:1: cast_expression : ( '(' type_name ')' cast_expression | unary_expression );", 61, 13, self.input)
+                            nvae = NoViableAltException("332:1: cast_expression : ( '(' type_name ')' cast_expression | unary_expression );", 61, 25, self.input)
 
                             raise nvae
 
                     elif LA61 == HEX_LITERAL or LA61 == OCTAL_LITERAL or LA61 == DECIMAL_LITERAL or LA61 == CHARACTER_LITERAL or LA61 == STRING_LITERAL or LA61 == FLOATING_POINT_LITERAL or LA61 == 61 or LA61 == 65 or LA61 == 67 or LA61 == 68 or LA61 == 71 or LA61 == 72 or LA61 == 73 or LA61 == 76 or LA61 == 77 or LA61 == 78:
                         alt61 = 2
-                    elif LA61 == 34 or LA61 == 35 or LA61 == 36 or LA61 == 37 or LA61 == 38 or LA61 == 39 or LA61 == 40 or LA61 == 41 or LA61 == 42 or LA61 == 45 or LA61 == 46 or LA61 == 48 or LA61 == 49 or LA61 == 50 or LA61 == 51 or LA61 == 52 or LA61 == 53 or LA61 == 54 or LA61 == 55 or LA61 == 56 or LA61 == 57 or LA61 == 58 or LA61 == 59 or LA61 == 60:
-                        alt61 = 1
                     else:
                         if self.backtracking > 0:
                             self.failed = True
@@ -5383,8 +5384,10 @@ class CParser(Parser):
                         LA63 = self.input.LA(2)
                         if LA63 == 62:
                             alt63 = 2
+                        elif LA63 == 29 or LA63 == 30 or LA63 == 31 or LA63 == 32 or LA63 == 33 or LA63 == 34 or LA63 == 35 or LA63 == 36 or LA63 == 37 or LA63 == 38 or LA63 == 39 or LA63 == 40 or LA63 == 41 or LA63 == 42 or LA63 == 45 or LA63 == 46 or LA63 == 48 or LA63 == 49 or LA63 == 50 or LA63 == 51 or LA63 == 52 or LA63 == 53 or LA63 == 54 or LA63 == 55 or LA63 == 56 or LA63 == 57 or LA63 == 58 or LA63 == 59 or LA63 == 60:
+                            alt63 = 4
                         elif LA63 == IDENTIFIER:
-                            LA63_42 = self.input.LA(3)
+                            LA63_54 = self.input.LA(3)
 
                             if (self.synpred114()) :
                                 alt63 = 3
@@ -5392,10 +5395,8 @@ class CParser(Parser):
                                 alt63 = 4
 
 
-                        elif LA63 == HEX_LITERAL or LA63 == OCTAL_LITERAL or LA63 == DECIMAL_LITERAL or LA63 == CHARACTER_LITERAL or LA63 == STRING_LITERAL or LA63 == FLOATING_POINT_LITERAL or LA63 == 61 or LA63 == 67 or LA63 == 68 or LA63 == 71 or LA63 == 72 or LA63 == 73 or LA63 == 76 or LA63 == 77 or LA63 == 78:
-                            alt63 = 3
                         elif LA63 == 65:
-                            LA63_52 = self.input.LA(3)
+                            LA63_56 = self.input.LA(3)
 
                             if (self.synpred114()) :
                                 alt63 = 3
@@ -5403,8 +5404,8 @@ class CParser(Parser):
                                 alt63 = 4
 
 
-                        elif LA63 == 29 or LA63 == 30 or LA63 == 31 or LA63 == 32 or LA63 == 33 or LA63 == 34 or LA63 == 35 or LA63 == 36 or LA63 == 37 or LA63 == 38 or LA63 == 39 or LA63 == 40 or LA63 == 41 or LA63 == 42 or LA63 == 45 or LA63 == 46 or LA63 == 48 or LA63 == 49 or LA63 == 50 or LA63 == 51 or LA63 == 52 or LA63 == 53 or LA63 == 54 or LA63 == 55 or LA63 == 56 or LA63 == 57 or LA63 == 58 or LA63 == 59 or LA63 == 60:
-                            alt63 = 4
+                        elif LA63 == HEX_LITERAL or LA63 == OCTAL_LITERAL or LA63 == DECIMAL_LITERAL or LA63 == CHARACTER_LITERAL or LA63 == STRING_LITERAL or LA63 == FLOATING_POINT_LITERAL or LA63 == 61 or LA63 == 67 or LA63 == 68 or LA63 == 71 or LA63 == 72 or LA63 == 73 or LA63 == 76 or LA63 == 77 or LA63 == 78:
+                            alt63 = 3
 
                     elif LA63 == 74:
                         alt63 = 5
@@ -6226,10 +6227,10 @@ class CParser(Parser):
 
                             raise nvae
 
-                    elif LA69 == 28 or LA69 == 79 or LA69 == 80 or LA69 == 81 or LA69 == 82 or LA69 == 83 or LA69 == 84 or LA69 == 85 or LA69 == 86 or LA69 == 87 or LA69 == 88:
-                        alt69 = 1
                     elif LA69 == EOF or LA69 == 25 or LA69 == 27 or LA69 == 44 or LA69 == 47 or LA69 == 62 or LA69 == 64 or LA69 == 67 or LA69 == 68 or LA69 == 69 or LA69 == 70 or LA69 == 76 or LA69 == 89 or LA69 == 90 or LA69 == 91 or LA69 == 92 or LA69 == 93 or LA69 == 94 or LA69 == 95 or LA69 == 96 or LA69 == 97 or LA69 == 98 or LA69 == 99 or LA69 == 100 or LA69 == 101:
                         alt69 = 2
+                    elif LA69 == 28 or LA69 == 79 or LA69 == 80 or LA69 == 81 or LA69 == 82 or LA69 == 83 or LA69 == 84 or LA69 == 85 or LA69 == 86 or LA69 == 87 or LA69 == 88:
+                        alt69 = 1
                     else:
                         if self.backtracking > 0:
                             self.failed = True
@@ -6353,10 +6354,10 @@ class CParser(Parser):
 
                             raise nvae
 
-                    elif LA69 == EOF or LA69 == 25 or LA69 == 27 or LA69 == 44 or LA69 == 47 or LA69 == 62 or LA69 == 64 or LA69 == 67 or LA69 == 68 or LA69 == 69 or LA69 == 70 or LA69 == 76 or LA69 == 89 or LA69 == 90 or LA69 == 91 or LA69 == 92 or LA69 == 93 or LA69 == 94 or LA69 == 95 or LA69 == 96 or LA69 == 97 or LA69 == 98 or LA69 == 99 or LA69 == 100 or LA69 == 101:
-                        alt69 = 2
                     elif LA69 == 28 or LA69 == 79 or LA69 == 80 or LA69 == 81 or LA69 == 82 or LA69 == 83 or LA69 == 84 or LA69 == 85 or LA69 == 86 or LA69 == 87 or LA69 == 88:
                         alt69 = 1
+                    elif LA69 == EOF or LA69 == 25 or LA69 == 27 or LA69 == 44 or LA69 == 47 or LA69 == 62 or LA69 == 64 or LA69 == 67 or LA69 == 68 or LA69 == 69 or LA69 == 70 or LA69 == 76 or LA69 == 89 or LA69 == 90 or LA69 == 91 or LA69 == 92 or LA69 == 93 or LA69 == 94 or LA69 == 95 or LA69 == 96 or LA69 == 97 or LA69 == 98 or LA69 == 99 or LA69 == 100 or LA69 == 101:
+                        alt69 = 2
                     else:
                         if self.backtracking > 0:
                             self.failed = True
@@ -6480,10 +6481,10 @@ class CParser(Parser):
 
                             raise nvae
 
-                    elif LA69 == 28 or LA69 == 79 or LA69 == 80 or LA69 == 81 or LA69 == 82 or LA69 == 83 or LA69 == 84 or LA69 == 85 or LA69 == 86 or LA69 == 87 or LA69 == 88:
-                        alt69 = 1
                     elif LA69 == EOF or LA69 == 25 or LA69 == 27 or LA69 == 44 or LA69 == 47 or LA69 == 62 or LA69 == 64 or LA69 == 67 or LA69 == 68 or LA69 == 69 or LA69 == 70 or LA69 == 76 or LA69 == 89 or LA69 == 90 or LA69 == 91 or LA69 == 92 or LA69 == 93 or LA69 == 94 or LA69 == 95 or LA69 == 96 or LA69 == 97 or LA69 == 98 or LA69 == 99 or LA69 == 100 or LA69 == 101:
                         alt69 = 2
+                    elif LA69 == 28 or LA69 == 79 or LA69 == 80 or LA69 == 81 or LA69 == 82 or LA69 == 83 or LA69 == 84 or LA69 == 85 or LA69 == 86 or LA69 == 87 or LA69 == 88:
+                        alt69 = 1
                     else:
                         if self.backtracking > 0:
                             self.failed = True
@@ -6607,10 +6608,10 @@ class CParser(Parser):
 
                             raise nvae
 
-                    elif LA69 == EOF or LA69 == 25 or LA69 == 27 or LA69 == 44 or LA69 == 47 or LA69 == 62 or LA69 == 64 or LA69 == 67 or LA69 == 68 or LA69 == 69 or LA69 == 70 or LA69 == 76 or LA69 == 89 or LA69 == 90 or LA69 == 91 or LA69 == 92 or LA69 == 93 or LA69 == 94 or LA69 == 95 or LA69 == 96 or LA69 == 97 or LA69 == 98 or LA69 == 99 or LA69 == 100 or LA69 == 101:
-                        alt69 = 2
                     elif LA69 == 28 or LA69 == 79 or LA69 == 80 or LA69 == 81 or LA69 == 82 or LA69 == 83 or LA69 == 84 or LA69 == 85 or LA69 == 86 or LA69 == 87 or LA69 == 88:
                         alt69 = 1
+                    elif LA69 == EOF or LA69 == 25 or LA69 == 27 or LA69 == 44 or LA69 == 47 or LA69 == 62 or LA69 == 64 or LA69 == 67 or LA69 == 68 or LA69 == 69 or LA69 == 70 or LA69 == 76 or LA69 == 89 or LA69 == 90 or LA69 == 91 or LA69 == 92 or LA69 == 93 or LA69 == 94 or LA69 == 95 or LA69 == 96 or LA69 == 97 or LA69 == 98 or LA69 == 99 or LA69 == 100 or LA69 == 101:
+                        alt69 = 2
                     else:
                         if self.backtracking > 0:
                             self.failed = True
@@ -8642,7 +8643,7 @@ class CParser(Parser):
 
 
     # $ANTLR start statement
-    # C.g:464:1: statement : ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | declaration );
+    # C.g:464:1: statement : ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | asm_statement | asm1_statement | declaration );
     def statement(self, ):
 
         statement_StartIndex = self.input.index()
@@ -8651,62 +8652,62 @@ class CParser(Parser):
                 if self.backtracking > 0 and self.alreadyParsedRule(self.input, 60):
                     return 
 
-                # C.g:465:2: ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | declaration )
-                alt79 = 8
+                # C.g:465:2: ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | asm_statement | asm1_statement | declaration )
+                alt79 = 10
                 LA79 = self.input.LA(1)
                 if LA79 == IDENTIFIER:
                     LA79 = self.input.LA(2)
                     if LA79 == 47:
                         alt79 = 1
                     elif LA79 == 61:
-                        LA79_41 = self.input.LA(3)
+                        LA79_43 = self.input.LA(3)
 
                         if (self.synpred163()) :
                             alt79 = 3
                         elif (self.synpred167()) :
                             alt79 = 7
                         elif (True) :
-                            alt79 = 8
+                            alt79 = 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 | declaration );", 79, 41, 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 );", 79, 43, self.input)
 
                             raise nvae
 
                     elif LA79 == 65:
-                        LA79_42 = self.input.LA(3)
+                        LA79_44 = self.input.LA(3)
 
                         if (self.synpred163()) :
                             alt79 = 3
                         elif (True) :
-                            alt79 = 8
+                            alt79 = 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 | declaration );", 79, 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 );", 79, 44, self.input)
 
                             raise nvae
 
                     elif LA79 == IDENTIFIER or LA79 == 29 or LA79 == 30 or LA79 == 31 or LA79 == 32 or LA79 == 33 or LA79 == 34 or LA79 == 35 or LA79 == 36 or LA79 == 37 or LA79 == 38 or LA79 == 39 or LA79 == 40 or LA79 == 41 or LA79 == 42 or LA79 == 45 or LA79 == 46 or LA79 == 48 or LA79 == 49 or LA79 == 50 or LA79 == 51 or LA79 == 52 or LA79 == 53 or LA79 == 54 or LA79 == 55 or LA79 == 56 or LA79 == 57 or LA79 == 58 or LA79 == 59 or LA79 == 60:
-                        alt79 = 8
+                        alt79 = 10
                     elif LA79 == 25:
-                        LA79_47 = self.input.LA(3)
+                        LA79_49 = self.input.LA(3)
 
                         if (self.synpred163()) :
                             alt79 = 3
                         elif (True) :
-                            alt79 = 8
+                            alt79 = 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 | declaration );", 79, 47, 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 );", 79, 49, self.input)
 
                             raise nvae
 
@@ -8717,30 +8718,34 @@ class CParser(Parser):
                             self.failed = True
                             return 
 
-                        nvae = NoViableAltException("464:1: statement : ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | declaration );", 79, 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 );", 79, 1, self.input)
 
                         raise nvae
 
-                elif LA79 == 102 or LA79 == 103:
+                elif LA79 == 104 or LA79 == 105:
                     alt79 = 1
                 elif LA79 == 43:
                     alt79 = 2
                 elif LA79 == HEX_LITERAL or LA79 == OCTAL_LITERAL or LA79 == DECIMAL_LITERAL or LA79 == CHARACTER_LITERAL or LA79 == STRING_LITERAL or LA79 == FLOATING_POINT_LITERAL or LA79 == 25 or LA79 == 61 or LA79 == 65 or LA79 == 67 or LA79 == 68 or LA79 == 71 or LA79 == 72 or LA79 == 73 or LA79 == 76 or LA79 == 77 or LA79 == 78:
                     alt79 = 3
-                elif LA79 == 104 or LA79 == 106:
+                elif LA79 == 106 or LA79 == 108:
                     alt79 = 4
-                elif LA79 == 107 or LA79 == 108 or LA79 == 109:
+                elif LA79 == 109 or LA79 == 110 or LA79 == 111:
                     alt79 = 5
-                elif LA79 == 110 or LA79 == 111 or LA79 == 112 or LA79 == 113:
+                elif LA79 == 112 or LA79 == 113 or LA79 == 114 or LA79 == 115:
                     alt79 = 6
-                elif LA79 == 26 or LA79 == 29 or LA79 == 30 or LA79 == 31 or LA79 == 32 or LA79 == 33 or LA79 == 34 or LA79 == 35 or LA79 == 36 or LA79 == 37 or LA79 == 38 or LA79 == 39 or LA79 == 40 or LA79 == 41 or LA79 == 42 or LA79 == 45 or LA79 == 46 or LA79 == 48 or LA79 == 49 or LA79 == 50 or LA79 == 51 or LA79 == 52 or LA79 == 53 or LA79 == 54 or LA79 == 55 or LA79 == 56 or LA79 == 57 or LA79 == 58 or LA79 == 59 or LA79 == 60:
+                elif LA79 == 103:
                     alt79 = 8
+                elif LA79 == 102:
+                    alt79 = 9
+                elif LA79 == 26 or LA79 == 29 or LA79 == 30 or LA79 == 31 or LA79 == 32 or LA79 == 33 or LA79 == 34 or LA79 == 35 or LA79 == 36 or LA79 == 37 or LA79 == 38 or LA79 == 39 or LA79 == 40 or LA79 == 41 or LA79 == 42 or LA79 == 45 or LA79 == 46 or LA79 == 48 or LA79 == 49 or LA79 == 50 or LA79 == 51 or LA79 == 52 or LA79 == 53 or LA79 == 54 or LA79 == 55 or LA79 == 56 or LA79 == 57 or LA79 == 58 or LA79 == 59 or LA79 == 60:
+                    alt79 = 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 | declaration );", 79, 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 );", 79, 0, self.input)
 
                     raise nvae
 
@@ -8808,8 +8813,26 @@ class CParser(Parser):
 
 
                 elif alt79 == 8:
-                    # C.g:472:4: declaration
-                    self.following.append(self.FOLLOW_declaration_in_statement2026)
+                    # C.g:472:4: asm_statement
+                    self.following.append(self.FOLLOW_asm_statement_in_statement2026)
+                    self.asm_statement()
+                    self.following.pop()
+                    if self.failed:
+                        return 
+
+
+                elif alt79 == 9:
+                    # C.g:473:4: asm1_statement
+                    self.following.append(self.FOLLOW_asm1_statement_in_statement2031)
+                    self.asm1_statement()
+                    self.following.pop()
+                    if self.failed:
+                        return 
+
+
+                elif alt79 == 10:
+                    # C.g:474:4: declaration
+                    self.following.append(self.FOLLOW_declaration_in_statement2036)
                     self.declaration()
                     self.following.pop()
                     if self.failed:
@@ -8831,3129 +8854,3275 @@ class CParser(Parser):
     # $ANTLR end statement
 
 
-    # $ANTLR start macro_statement
-    # C.g:475:1: macro_statement : IDENTIFIER '(' ( declaration )* ( statement_list )? ( expression )? ')' ;
-    def macro_statement(self, ):
+    # $ANTLR start asm1_statement
+    # C.g:477:1: asm1_statement : '_asm' '{' (~ ( '}' ) )* '}' ;
+    def asm1_statement(self, ):
 
-        macro_statement_StartIndex = self.input.index()
+        asm1_statement_StartIndex = self.input.index()
         try:
             try:
                 if self.backtracking > 0 and self.alreadyParsedRule(self.input, 61):
                     return 
 
-                # C.g:476:2: ( IDENTIFIER '(' ( declaration )* ( statement_list )? ( expression )? ')' )
-                # C.g:476:4: IDENTIFIER '(' ( declaration )* ( statement_list )? ( expression )? ')'
-                self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_macro_statement2037)
+                # C.g:478:2: ( '_asm' '{' (~ ( '}' ) )* '}' )
+                # C.g:478:4: '_asm' '{' (~ ( '}' ) )* '}'
+                self.match(self.input, 102, self.FOLLOW_102_in_asm1_statement2047)
                 if self.failed:
                     return 
-                self.match(self.input, 61, self.FOLLOW_61_in_macro_statement2039)
+                self.match(self.input, 43, self.FOLLOW_43_in_asm1_statement2049)
                 if self.failed:
                     return 
-                # C.g:476:19: ( declaration )*
+                # C.g:478:15: (~ ( '}' ) )*
                 while True: #loop80
                     alt80 = 2
-                    LA80 = self.input.LA(1)
-                    if LA80 == IDENTIFIER:
-                        LA80 = self.input.LA(2)
-                        if LA80 == 61:
-                            LA80_42 = self.input.LA(3)
+                    LA80_0 = self.input.LA(1)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                    if ((IDENTIFIER <= LA80_0 <= 43) or (45 <= LA80_0 <= 115)) :
+                        alt80 = 1
 
 
-                        elif LA80 == 65:
-                            LA80_45 = self.input.LA(3)
+                    if alt80 == 1:
+                        # C.g:478:16: ~ ( '}' )
+                        if (IDENTIFIER <= self.input.LA(1) <= 43) or (45 <= self.input.LA(1) <= 115):
+                            self.input.consume();
+                            self.errorRecovery = False
+                            self.failed = False
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        else:
+                            if self.backtracking > 0:
+                                self.failed = True
+                                return 
 
+                            mse = MismatchedSetException(None, self.input)
+                            self.recoverFromMismatchedSet(
+                                self.input, mse, self.FOLLOW_set_in_asm1_statement2052
+                                )
+                            raise mse
 
-                        elif LA80 == 58:
-                            LA80_64 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
 
-                        elif LA80 == 59:
-                            LA80_65 = self.input.LA(3)
+                    else:
+                        break #loop80
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                self.match(self.input, 44, self.FOLLOW_44_in_asm1_statement2059)
+                if self.failed:
+                    return 
 
-                        elif LA80 == 60:
-                            LA80_66 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
 
-                        elif LA80 == IDENTIFIER:
-                            LA80_67 = self.input.LA(3)
+            except RecognitionException, re:
+                self.reportError(re)
+                self.recover(self.input, re)
+        finally:
+            if self.backtracking > 0:
+                self.memoize(self.input, 61, asm1_statement_StartIndex)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+            pass
 
+        return 
 
-                        elif LA80 == 25:
-                            LA80_68 = self.input.LA(3)
+    # $ANTLR end asm1_statement
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+    # $ANTLR start asm_statement
+    # C.g:481:1: asm_statement : '__asm' '{' (~ ( '}' ) )* '}' ;
+    def asm_statement(self, ):
 
-                        elif LA80 == 29 or LA80 == 30 or LA80 == 31 or LA80 == 32 or LA80 == 33:
-                            LA80_69 = self.input.LA(3)
+        asm_statement_StartIndex = self.input.index()
+        try:
+            try:
+                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 62):
+                    return 
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                # C.g:482:2: ( '__asm' '{' (~ ( '}' ) )* '}' )
+                # C.g:482:4: '__asm' '{' (~ ( '}' ) )* '}'
+                self.match(self.input, 103, self.FOLLOW_103_in_asm_statement2070)
+                if self.failed:
+                    return 
+                self.match(self.input, 43, self.FOLLOW_43_in_asm_statement2072)
+                if self.failed:
+                    return 
+                # C.g:482:16: (~ ( '}' ) )*
+                while True: #loop81
+                    alt81 = 2
+                    LA81_0 = self.input.LA(1)
 
+                    if ((IDENTIFIER <= LA81_0 <= 43) or (45 <= LA81_0 <= 115)) :
+                        alt81 = 1
 
-                        elif LA80 == 34:
-                            LA80_70 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                    if alt81 == 1:
+                        # C.g:482:17: ~ ( '}' )
+                        if (IDENTIFIER <= self.input.LA(1) <= 43) or (45 <= self.input.LA(1) <= 115):
+                            self.input.consume();
+                            self.errorRecovery = False
+                            self.failed = False
 
+                        else:
+                            if self.backtracking > 0:
+                                self.failed = True
+                                return 
 
-                        elif LA80 == 35:
-                            LA80_71 = self.input.LA(3)
+                            mse = MismatchedSetException(None, self.input)
+                            self.recoverFromMismatchedSet(
+                                self.input, mse, self.FOLLOW_set_in_asm_statement2075
+                                )
+                            raise mse
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
 
-                        elif LA80 == 36:
-                            LA80_72 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                    else:
+                        break #loop81
 
 
-                        elif LA80 == 37:
-                            LA80_73 = self.input.LA(3)
+                self.match(self.input, 44, self.FOLLOW_44_in_asm_statement2082)
+                if self.failed:
+                    return 
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
 
-                        elif LA80 == 38:
-                            LA80_74 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+            except RecognitionException, re:
+                self.reportError(re)
+                self.recover(self.input, re)
+        finally:
+            if self.backtracking > 0:
+                self.memoize(self.input, 62, asm_statement_StartIndex)
 
+            pass
 
-                        elif LA80 == 39:
-                            LA80_75 = self.input.LA(3)
+        return 
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+    # $ANTLR end asm_statement
 
 
-                        elif LA80 == 40:
-                            LA80_76 = self.input.LA(3)
+    # $ANTLR start macro_statement
+    # C.g:485:1: macro_statement : IDENTIFIER '(' ( declaration )* ( statement_list )? ( expression )? ')' ;
+    def macro_statement(self, ):
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+        macro_statement_StartIndex = self.input.index()
+        try:
+            try:
+                if self.backtracking > 0 and self.alreadyParsedRule(self.input, 63):
+                    return 
 
+                # 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_statement2094)
+                if self.failed:
+                    return 
+                self.match(self.input, 61, self.FOLLOW_61_in_macro_statement2096)
+                if self.failed:
+                    return 
+                # C.g:486:19: ( declaration )*
+                while True: #loop82
+                    alt82 = 2
+                    LA82 = self.input.LA(1)
+                    if LA82 == IDENTIFIER:
+                        LA82 = self.input.LA(2)
+                        if LA82 == 61:
+                            LA82_44 = self.input.LA(3)
 
-                        elif LA80 == 41:
-                            LA80_77 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 65:
+                            LA82_45 = self.input.LA(3)
 
-                        elif LA80 == 42:
-                            LA80_78 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 58:
+                            LA82_46 = self.input.LA(3)
 
-                        elif LA80 == 45 or LA80 == 46:
-                            LA80_79 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 59:
+                            LA82_47 = self.input.LA(3)
 
-                        elif LA80 == 48:
-                            LA80_80 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 60:
+                            LA82_48 = self.input.LA(3)
 
-                        elif LA80 == 49 or LA80 == 50 or LA80 == 51 or LA80 == 52 or LA80 == 53 or LA80 == 54 or LA80 == 55 or LA80 == 56 or LA80 == 57:
-                            LA80_81 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == IDENTIFIER:
+                            LA82_49 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                    elif LA80 == 26:
-                        LA80 = self.input.LA(2)
-                        if LA80 == 29 or LA80 == 30 or LA80 == 31 or LA80 == 32 or LA80 == 33:
-                            LA80_83 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 25:
+                            LA82_50 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 34:
-                            LA80_84 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 29 or LA82 == 30 or LA82 == 31 or LA82 == 32 or LA82 == 33:
+                            LA82_51 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 35:
-                            LA80_85 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 34:
+                            LA82_52 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 36:
-                            LA80_86 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 35:
+                            LA82_53 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 37:
-                            LA80_87 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 36:
+                            LA82_54 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 38:
-                            LA80_88 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 37:
+                            LA82_55 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 39:
-                            LA80_89 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 38:
+                            LA82_56 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 40:
-                            LA80_90 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 39:
+                            LA82_57 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 41:
-                            LA80_91 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 40:
+                            LA82_58 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 42:
-                            LA80_92 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 41:
+                            LA82_59 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 45 or LA80 == 46:
-                            LA80_93 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 42:
+                            LA82_60 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 48:
-                            LA80_94 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 45 or LA82 == 46:
+                            LA82_61 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == IDENTIFIER:
-                            LA80_95 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 48:
+                            LA82_62 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 58:
-                            LA80_96 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 49 or LA82 == 50 or LA82 == 51 or LA82 == 52 or LA82 == 53 or LA82 == 54 or LA82 == 55 or LA82 == 56 or LA82 == 57:
+                            LA82_63 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 65:
-                            LA80_97 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                    elif LA82 == 26:
+                        LA82 = self.input.LA(2)
+                        if LA82 == 29 or LA82 == 30 or LA82 == 31 or LA82 == 32 or LA82 == 33:
+                            LA82_85 = self.input.LA(3)
 
-                        elif LA80 == 59:
-                            LA80_98 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 34:
+                            LA82_86 = self.input.LA(3)
 
-                        elif LA80 == 60:
-                            LA80_99 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 35:
+                            LA82_87 = self.input.LA(3)
 
-                        elif LA80 == 49 or LA80 == 50 or LA80 == 51 or LA80 == 52 or LA80 == 53 or LA80 == 54 or LA80 == 55 or LA80 == 56 or LA80 == 57:
-                            LA80_100 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 36:
+                            LA82_88 = self.input.LA(3)
 
-                        elif LA80 == 61:
-                            LA80_101 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 37:
+                            LA82_89 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                    elif LA80 == 29 or LA80 == 30 or LA80 == 31 or LA80 == 32 or LA80 == 33:
-                        LA80 = self.input.LA(2)
-                        if LA80 == 65:
-                            LA80_102 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 38:
+                            LA82_90 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 58:
-                            LA80_103 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 39:
+                            LA82_91 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 59:
-                            LA80_104 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 40:
+                            LA82_92 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 60:
-                            LA80_105 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 41:
+                            LA82_93 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == IDENTIFIER:
-                            LA80_106 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 42:
+                            LA82_94 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 61:
-                            LA80_107 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 45 or LA82 == 46:
+                            LA82_95 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 25:
-                            LA80_108 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 48:
+                            LA82_96 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 29 or LA80 == 30 or LA80 == 31 or LA80 == 32 or LA80 == 33:
-                            LA80_109 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == IDENTIFIER:
+                            LA82_97 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 34:
-                            LA80_110 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 58:
+                            LA82_98 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 35:
-                            LA80_111 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 65:
+                            LA82_99 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 36:
-                            LA80_112 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 59:
+                            LA82_100 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 37:
-                            LA80_113 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 60:
+                            LA82_101 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 38:
-                            LA80_114 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 49 or LA82 == 50 or LA82 == 51 or LA82 == 52 or LA82 == 53 or LA82 == 54 or LA82 == 55 or LA82 == 56 or LA82 == 57:
+                            LA82_102 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 39:
-                            LA80_115 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 61:
+                            LA82_103 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 40:
-                            LA80_116 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                    elif LA82 == 29 or LA82 == 30 or LA82 == 31 or LA82 == 32 or LA82 == 33:
+                        LA82 = self.input.LA(2)
+                        if LA82 == 65:
+                            LA82_104 = self.input.LA(3)
 
-                        elif LA80 == 41:
-                            LA80_117 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 58:
+                            LA82_105 = self.input.LA(3)
 
-                        elif LA80 == 42:
-                            LA80_118 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 59:
+                            LA82_106 = self.input.LA(3)
 
-                        elif LA80 == 45 or LA80 == 46:
-                            LA80_119 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 60:
+                            LA82_107 = self.input.LA(3)
 
-                        elif LA80 == 48:
-                            LA80_120 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == IDENTIFIER:
+                            LA82_108 = self.input.LA(3)
 
-                        elif LA80 == 49 or LA80 == 50 or LA80 == 51 or LA80 == 52 or LA80 == 53 or LA80 == 54 or LA80 == 55 or LA80 == 56 or LA80 == 57:
-                            LA80_121 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 61:
+                            LA82_109 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                    elif LA80 == 34:
-                        LA80 = self.input.LA(2)
-                        if LA80 == 65:
-                            LA80_122 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 25:
+                            LA82_110 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 58:
-                            LA80_123 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 29 or LA82 == 30 or LA82 == 31 or LA82 == 32 or LA82 == 33:
+                            LA82_111 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 59:
-                            LA80_124 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 34:
+                            LA82_112 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 60:
-                            LA80_125 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 35:
+                            LA82_113 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == IDENTIFIER:
-                            LA80_126 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 36:
+                            LA82_114 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 61:
-                            LA80_127 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 37:
+                            LA82_115 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 25:
-                            LA80_128 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 38:
+                            LA82_116 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 29 or LA80 == 30 or LA80 == 31 or LA80 == 32 or LA80 == 33:
-                            LA80_129 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 39:
+                            LA82_117 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 34:
-                            LA80_130 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 40:
+                            LA82_118 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 35:
-                            LA80_131 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 41:
+                            LA82_119 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 36:
-                            LA80_132 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 42:
+                            LA82_120 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 37:
-                            LA80_133 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 45 or LA82 == 46:
+                            LA82_121 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 38:
-                            LA80_134 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 48:
+                            LA82_122 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 39:
-                            LA80_135 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 49 or LA82 == 50 or LA82 == 51 or LA82 == 52 or LA82 == 53 or LA82 == 54 or LA82 == 55 or LA82 == 56 or LA82 == 57:
+                            LA82_123 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 40:
-                            LA80_136 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                    elif LA82 == 34:
+                        LA82 = self.input.LA(2)
+                        if LA82 == 65:
+                            LA82_124 = self.input.LA(3)
 
-                        elif LA80 == 41:
-                            LA80_137 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 58:
+                            LA82_125 = self.input.LA(3)
 
-                        elif LA80 == 42:
-                            LA80_138 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 59:
+                            LA82_126 = self.input.LA(3)
 
-                        elif LA80 == 45 or LA80 == 46:
-                            LA80_139 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 60:
+                            LA82_127 = self.input.LA(3)
 
-                        elif LA80 == 48:
-                            LA80_140 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == IDENTIFIER:
+                            LA82_128 = self.input.LA(3)
 
-                        elif LA80 == 49 or LA80 == 50 or LA80 == 51 or LA80 == 52 or LA80 == 53 or LA80 == 54 or LA80 == 55 or LA80 == 56 or LA80 == 57:
-                            LA80_141 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 61:
+                            LA82_129 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                    elif LA80 == 35:
-                        LA80 = self.input.LA(2)
-                        if LA80 == 65:
-                            LA80_142 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 25:
+                            LA82_130 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 58:
-                            LA80_143 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 29 or LA82 == 30 or LA82 == 31 or LA82 == 32 or LA82 == 33:
+                            LA82_131 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 59:
-                            LA80_144 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 34:
+                            LA82_132 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 60:
-                            LA80_145 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 35:
+                            LA82_133 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == IDENTIFIER:
-                            LA80_146 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 36:
+                            LA82_134 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 61:
-                            LA80_147 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 37:
+                            LA82_135 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 25:
-                            LA80_148 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 38:
+                            LA82_136 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 29 or LA80 == 30 or LA80 == 31 or LA80 == 32 or LA80 == 33:
-                            LA80_149 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 39:
+                            LA82_137 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 34:
-                            LA80_150 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 40:
+                            LA82_138 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 35:
-                            LA80_151 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 41:
+                            LA82_139 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 36:
-                            LA80_152 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 42:
+                            LA82_140 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 37:
-                            LA80_153 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 45 or LA82 == 46:
+                            LA82_141 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 38:
-                            LA80_154 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 48:
+                            LA82_142 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 39:
-                            LA80_155 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 49 or LA82 == 50 or LA82 == 51 or LA82 == 52 or LA82 == 53 or LA82 == 54 or LA82 == 55 or LA82 == 56 or LA82 == 57:
+                            LA82_143 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 40:
-                            LA80_156 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                    elif LA82 == 35:
+                        LA82 = self.input.LA(2)
+                        if LA82 == 65:
+                            LA82_144 = self.input.LA(3)
 
-                        elif LA80 == 41:
-                            LA80_157 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 58:
+                            LA82_145 = self.input.LA(3)
 
-                        elif LA80 == 42:
-                            LA80_158 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 59:
+                            LA82_146 = self.input.LA(3)
 
-                        elif LA80 == 45 or LA80 == 46:
-                            LA80_159 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 60:
+                            LA82_147 = self.input.LA(3)
 
-                        elif LA80 == 48:
-                            LA80_160 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == IDENTIFIER:
+                            LA82_148 = self.input.LA(3)
 
-                        elif LA80 == 49 or LA80 == 50 or LA80 == 51 or LA80 == 52 or LA80 == 53 or LA80 == 54 or LA80 == 55 or LA80 == 56 or LA80 == 57:
-                            LA80_161 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 61:
+                            LA82_149 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                    elif LA80 == 36:
-                        LA80 = self.input.LA(2)
-                        if LA80 == 65:
-                            LA80_162 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 25:
+                            LA82_150 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 58:
-                            LA80_163 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 29 or LA82 == 30 or LA82 == 31 or LA82 == 32 or LA82 == 33:
+                            LA82_151 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 59:
-                            LA80_164 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 34:
+                            LA82_152 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 60:
-                            LA80_165 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 35:
+                            LA82_153 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == IDENTIFIER:
-                            LA80_166 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 36:
+                            LA82_154 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 61:
-                            LA80_167 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 37:
+                            LA82_155 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 25:
-                            LA80_168 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 38:
+                            LA82_156 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 29 or LA80 == 30 or LA80 == 31 or LA80 == 32 or LA80 == 33:
-                            LA80_169 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 39:
+                            LA82_157 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 34:
-                            LA80_170 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 40:
+                            LA82_158 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 35:
-                            LA80_171 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 41:
+                            LA82_159 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 36:
-                            LA80_172 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 42:
+                            LA82_160 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 37:
-                            LA80_173 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 45 or LA82 == 46:
+                            LA82_161 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 38:
-                            LA80_174 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 48:
+                            LA82_162 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 39:
-                            LA80_175 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 49 or LA82 == 50 or LA82 == 51 or LA82 == 52 or LA82 == 53 or LA82 == 54 or LA82 == 55 or LA82 == 56 or LA82 == 57:
+                            LA82_163 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 40:
-                            LA80_176 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                    elif LA82 == 36:
+                        LA82 = self.input.LA(2)
+                        if LA82 == 65:
+                            LA82_164 = self.input.LA(3)
 
-                        elif LA80 == 41:
-                            LA80_177 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 58:
+                            LA82_165 = self.input.LA(3)
 
-                        elif LA80 == 42:
-                            LA80_178 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 59:
+                            LA82_166 = self.input.LA(3)
 
-                        elif LA80 == 45 or LA80 == 46:
-                            LA80_179 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 60:
+                            LA82_167 = self.input.LA(3)
 
-                        elif LA80 == 48:
-                            LA80_180 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == IDENTIFIER:
+                            LA82_168 = self.input.LA(3)
 
-                        elif LA80 == 49 or LA80 == 50 or LA80 == 51 or LA80 == 52 or LA80 == 53 or LA80 == 54 or LA80 == 55 or LA80 == 56 or LA80 == 57:
-                            LA80_181 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 61:
+                            LA82_169 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                    elif LA80 == 37:
-                        LA80 = self.input.LA(2)
-                        if LA80 == 65:
-                            LA80_182 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 25:
+                            LA82_170 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 58:
-                            LA80_183 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 29 or LA82 == 30 or LA82 == 31 or LA82 == 32 or LA82 == 33:
+                            LA82_171 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 59:
-                            LA80_184 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 34:
+                            LA82_172 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 60:
-                            LA80_185 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 35:
+                            LA82_173 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == IDENTIFIER:
-                            LA80_186 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 36:
+                            LA82_174 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 61:
-                            LA80_187 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 37:
+                            LA82_175 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 25:
-                            LA80_188 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 38:
+                            LA82_176 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 29 or LA80 == 30 or LA80 == 31 or LA80 == 32 or LA80 == 33:
-                            LA80_189 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 39:
+                            LA82_177 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 34:
-                            LA80_190 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 40:
+                            LA82_178 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 35:
-                            LA80_191 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 41:
+                            LA82_179 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 36:
-                            LA80_192 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 42:
+                            LA82_180 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 37:
-                            LA80_193 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 45 or LA82 == 46:
+                            LA82_181 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 38:
-                            LA80_194 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 48:
+                            LA82_182 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 39:
-                            LA80_195 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 49 or LA82 == 50 or LA82 == 51 or LA82 == 52 or LA82 == 53 or LA82 == 54 or LA82 == 55 or LA82 == 56 or LA82 == 57:
+                            LA82_183 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 40:
-                            LA80_196 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                    elif LA82 == 37:
+                        LA82 = self.input.LA(2)
+                        if LA82 == 65:
+                            LA82_184 = self.input.LA(3)
 
-                        elif LA80 == 41:
-                            LA80_197 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 58:
+                            LA82_185 = self.input.LA(3)
 
-                        elif LA80 == 42:
-                            LA80_198 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 59:
+                            LA82_186 = self.input.LA(3)
 
-                        elif LA80 == 45 or LA80 == 46:
-                            LA80_199 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 60:
+                            LA82_187 = self.input.LA(3)
 
-                        elif LA80 == 48:
-                            LA80_200 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == IDENTIFIER:
+                            LA82_188 = self.input.LA(3)
 
-                        elif LA80 == 49 or LA80 == 50 or LA80 == 51 or LA80 == 52 or LA80 == 53 or LA80 == 54 or LA80 == 55 or LA80 == 56 or LA80 == 57:
-                            LA80_201 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 61:
+                            LA82_189 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                    elif LA80 == 38:
-                        LA80 = self.input.LA(2)
-                        if LA80 == 65:
-                            LA80_202 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 25:
+                            LA82_190 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 58:
-                            LA80_203 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 29 or LA82 == 30 or LA82 == 31 or LA82 == 32 or LA82 == 33:
+                            LA82_191 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 59:
-                            LA80_204 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 34:
+                            LA82_192 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 60:
-                            LA80_205 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 35:
+                            LA82_193 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == IDENTIFIER:
-                            LA80_206 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 36:
+                            LA82_194 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 61:
-                            LA80_207 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 37:
+                            LA82_195 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 25:
-                            LA80_208 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 38:
+                            LA82_196 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 29 or LA80 == 30 or LA80 == 31 or LA80 == 32 or LA80 == 33:
-                            LA80_209 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 39:
+                            LA82_197 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 34:
-                            LA80_210 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 40:
+                            LA82_198 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 35:
-                            LA80_211 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 41:
+                            LA82_199 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 36:
-                            LA80_212 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 42:
+                            LA82_200 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 37:
-                            LA80_213 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 45 or LA82 == 46:
+                            LA82_201 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 38:
-                            LA80_214 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 48:
+                            LA82_202 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 39:
-                            LA80_215 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 49 or LA82 == 50 or LA82 == 51 or LA82 == 52 or LA82 == 53 or LA82 == 54 or LA82 == 55 or LA82 == 56 or LA82 == 57:
+                            LA82_203 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 40:
-                            LA80_216 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                    elif LA82 == 38:
+                        LA82 = self.input.LA(2)
+                        if LA82 == 65:
+                            LA82_204 = self.input.LA(3)
 
-                        elif LA80 == 41:
-                            LA80_217 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 58:
+                            LA82_205 = self.input.LA(3)
 
-                        elif LA80 == 42:
-                            LA80_218 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 59:
+                            LA82_206 = self.input.LA(3)
 
-                        elif LA80 == 45 or LA80 == 46:
-                            LA80_219 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 60:
+                            LA82_207 = self.input.LA(3)
 
-                        elif LA80 == 48:
-                            LA80_220 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == IDENTIFIER:
+                            LA82_208 = self.input.LA(3)
 
-                        elif LA80 == 49 or LA80 == 50 or LA80 == 51 or LA80 == 52 or LA80 == 53 or LA80 == 54 or LA80 == 55 or LA80 == 56 or LA80 == 57:
-                            LA80_221 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 61:
+                            LA82_209 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                    elif LA80 == 39:
-                        LA80 = self.input.LA(2)
-                        if LA80 == 65:
-                            LA80_222 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 25:
+                            LA82_210 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 58:
-                            LA80_223 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 29 or LA82 == 30 or LA82 == 31 or LA82 == 32 or LA82 == 33:
+                            LA82_211 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 59:
-                            LA80_224 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 34:
+                            LA82_212 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 60:
-                            LA80_225 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 35:
+                            LA82_213 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == IDENTIFIER:
-                            LA80_226 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 36:
+                            LA82_214 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 61:
-                            LA80_227 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 37:
+                            LA82_215 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 25:
-                            LA80_228 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 38:
+                            LA82_216 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 29 or LA80 == 30 or LA80 == 31 or LA80 == 32 or LA80 == 33:
-                            LA80_229 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 39:
+                            LA82_217 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 34:
-                            LA80_230 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 40:
+                            LA82_218 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 35:
-                            LA80_231 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 41:
+                            LA82_219 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 36:
-                            LA80_232 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 42:
+                            LA82_220 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 37:
-                            LA80_233 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 45 or LA82 == 46:
+                            LA82_221 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 38:
-                            LA80_234 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 48:
+                            LA82_222 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 39:
-                            LA80_235 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 49 or LA82 == 50 or LA82 == 51 or LA82 == 52 or LA82 == 53 or LA82 == 54 or LA82 == 55 or LA82 == 56 or LA82 == 57:
+                            LA82_223 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 40:
-                            LA80_236 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                    elif LA82 == 39:
+                        LA82 = self.input.LA(2)
+                        if LA82 == 65:
+                            LA82_224 = self.input.LA(3)
 
-                        elif LA80 == 41:
-                            LA80_237 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 58:
+                            LA82_225 = self.input.LA(3)
 
-                        elif LA80 == 42:
-                            LA80_238 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 59:
+                            LA82_226 = self.input.LA(3)
 
-                        elif LA80 == 45 or LA80 == 46:
-                            LA80_239 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 60:
+                            LA82_227 = self.input.LA(3)
 
-                        elif LA80 == 48:
-                            LA80_240 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == IDENTIFIER:
+                            LA82_228 = self.input.LA(3)
 
-                        elif LA80 == 49 or LA80 == 50 or LA80 == 51 or LA80 == 52 or LA80 == 53 or LA80 == 54 or LA80 == 55 or LA80 == 56 or LA80 == 57:
-                            LA80_241 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 61:
+                            LA82_229 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                    elif LA80 == 40:
-                        LA80 = self.input.LA(2)
-                        if LA80 == 65:
-                            LA80_242 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 25:
+                            LA82_230 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 58:
-                            LA80_243 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 29 or LA82 == 30 or LA82 == 31 or LA82 == 32 or LA82 == 33:
+                            LA82_231 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 59:
-                            LA80_244 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 34:
+                            LA82_232 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 60:
-                            LA80_245 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 35:
+                            LA82_233 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == IDENTIFIER:
-                            LA80_246 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 36:
+                            LA82_234 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 61:
-                            LA80_247 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 37:
+                            LA82_235 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 25:
-                            LA80_248 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 38:
+                            LA82_236 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 29 or LA80 == 30 or LA80 == 31 or LA80 == 32 or LA80 == 33:
-                            LA80_249 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 39:
+                            LA82_237 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 34:
-                            LA80_250 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 40:
+                            LA82_238 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 35:
-                            LA80_251 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 41:
+                            LA82_239 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 36:
-                            LA80_252 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 42:
+                            LA82_240 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 37:
-                            LA80_253 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 45 or LA82 == 46:
+                            LA82_241 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 38:
-                            LA80_254 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 48:
+                            LA82_242 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 39:
-                            LA80_255 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 49 or LA82 == 50 or LA82 == 51 or LA82 == 52 or LA82 == 53 or LA82 == 54 or LA82 == 55 or LA82 == 56 or LA82 == 57:
+                            LA82_243 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 40:
-                            LA80_256 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                    elif LA82 == 40:
+                        LA82 = self.input.LA(2)
+                        if LA82 == 65:
+                            LA82_244 = self.input.LA(3)
 
-                        elif LA80 == 41:
-                            LA80_257 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 58:
+                            LA82_245 = self.input.LA(3)
 
-                        elif LA80 == 42:
-                            LA80_258 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 59:
+                            LA82_246 = self.input.LA(3)
 
-                        elif LA80 == 45 or LA80 == 46:
-                            LA80_259 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 60:
+                            LA82_247 = self.input.LA(3)
 
-                        elif LA80 == 48:
-                            LA80_260 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == IDENTIFIER:
+                            LA82_248 = self.input.LA(3)
 
-                        elif LA80 == 49 or LA80 == 50 or LA80 == 51 or LA80 == 52 or LA80 == 53 or LA80 == 54 or LA80 == 55 or LA80 == 56 or LA80 == 57:
-                            LA80_261 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 61:
+                            LA82_249 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                    elif LA80 == 41:
-                        LA80 = self.input.LA(2)
-                        if LA80 == 65:
-                            LA80_262 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 25:
+                            LA82_250 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 58:
-                            LA80_263 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 29 or LA82 == 30 or LA82 == 31 or LA82 == 32 or LA82 == 33:
+                            LA82_251 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 59:
-                            LA80_264 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 34:
+                            LA82_252 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 60:
-                            LA80_265 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 35:
+                            LA82_253 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == IDENTIFIER:
-                            LA80_266 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 36:
+                            LA82_254 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 61:
-                            LA80_267 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 37:
+                            LA82_255 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 25:
-                            LA80_268 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 38:
+                            LA82_256 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 29 or LA80 == 30 or LA80 == 31 or LA80 == 32 or LA80 == 33:
-                            LA80_269 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 39:
+                            LA82_257 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 34:
-                            LA80_270 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 40:
+                            LA82_258 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 35:
-                            LA80_271 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 41:
+                            LA82_259 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 36:
-                            LA80_272 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 42:
+                            LA82_260 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 37:
-                            LA80_273 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 45 or LA82 == 46:
+                            LA82_261 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 38:
-                            LA80_274 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 48:
+                            LA82_262 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 39:
-                            LA80_275 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 49 or LA82 == 50 or LA82 == 51 or LA82 == 52 or LA82 == 53 or LA82 == 54 or LA82 == 55 or LA82 == 56 or LA82 == 57:
+                            LA82_263 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 40:
-                            LA80_276 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                    elif LA82 == 41:
+                        LA82 = self.input.LA(2)
+                        if LA82 == 65:
+                            LA82_264 = self.input.LA(3)
 
-                        elif LA80 == 41:
-                            LA80_277 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 58:
+                            LA82_265 = self.input.LA(3)
 
-                        elif LA80 == 42:
-                            LA80_278 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 59:
+                            LA82_266 = self.input.LA(3)
 
-                        elif LA80 == 45 or LA80 == 46:
-                            LA80_279 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 60:
+                            LA82_267 = self.input.LA(3)
 
-                        elif LA80 == 48:
-                            LA80_280 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == IDENTIFIER:
+                            LA82_268 = self.input.LA(3)
 
-                        elif LA80 == 49 or LA80 == 50 or LA80 == 51 or LA80 == 52 or LA80 == 53 or LA80 == 54 or LA80 == 55 or LA80 == 56 or LA80 == 57:
-                            LA80_281 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 61:
+                            LA82_269 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                    elif LA80 == 42:
-                        LA80 = self.input.LA(2)
-                        if LA80 == 65:
-                            LA80_282 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 25:
+                            LA82_270 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 58:
-                            LA80_283 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 29 or LA82 == 30 or LA82 == 31 or LA82 == 32 or LA82 == 33:
+                            LA82_271 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 59:
-                            LA80_284 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 34:
+                            LA82_272 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 60:
-                            LA80_285 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 35:
+                            LA82_273 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == IDENTIFIER:
-                            LA80_286 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 36:
+                            LA82_274 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 61:
-                            LA80_287 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 37:
+                            LA82_275 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 25:
-                            LA80_288 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 38:
+                            LA82_276 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 29 or LA80 == 30 or LA80 == 31 or LA80 == 32 or LA80 == 33:
-                            LA80_289 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 39:
+                            LA82_277 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 34:
-                            LA80_290 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 40:
+                            LA82_278 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 35:
-                            LA80_291 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 41:
+                            LA82_279 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 36:
-                            LA80_292 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 42:
+                            LA82_280 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 37:
-                            LA80_293 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 45 or LA82 == 46:
+                            LA82_281 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 38:
-                            LA80_294 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 48:
+                            LA82_282 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 39:
-                            LA80_295 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 49 or LA82 == 50 or LA82 == 51 or LA82 == 52 or LA82 == 53 or LA82 == 54 or LA82 == 55 or LA82 == 56 or LA82 == 57:
+                            LA82_283 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 40:
-                            LA80_296 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                    elif LA82 == 42:
+                        LA82 = self.input.LA(2)
+                        if LA82 == 65:
+                            LA82_284 = self.input.LA(3)
 
-                        elif LA80 == 41:
-                            LA80_297 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 58:
+                            LA82_285 = self.input.LA(3)
 
-                        elif LA80 == 42:
-                            LA80_298 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 59:
+                            LA82_286 = self.input.LA(3)
 
-                        elif LA80 == 45 or LA80 == 46:
-                            LA80_299 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 60:
+                            LA82_287 = self.input.LA(3)
 
-                        elif LA80 == 48:
-                            LA80_300 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == IDENTIFIER:
+                            LA82_288 = self.input.LA(3)
 
-                        elif LA80 == 49 or LA80 == 50 or LA80 == 51 or LA80 == 52 or LA80 == 53 or LA80 == 54 or LA80 == 55 or LA80 == 56 or LA80 == 57:
-                            LA80_301 = self.input.LA(3)
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                            if (self.synpred168()) :
-                                alt80 = 1
 
+                        elif LA82 == 61:
+                            LA82_289 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                    elif LA80 == 45 or LA80 == 46:
-                        LA80_37 = self.input.LA(2)
 
-                        if (LA80_37 == IDENTIFIER) :
-                            LA80_302 = self.input.LA(3)
+                        elif LA82 == 25:
+                            LA82_290 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                            if (self.synpred172()) :
+                                alt82 = 1
 
 
-                        elif (LA80_37 == 43) :
-                            LA80_303 = self.input.LA(3)
+                        elif LA82 == 29 or LA82 == 30 or LA82 == 31 or LA82 == 32 or LA82 == 33:
+                            LA82_291 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                            if (self.synpred172()) :
+                                alt82 = 1
 
 
+                        elif LA82 == 34:
+                            LA82_292 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                    elif LA80 == 48:
-                        LA80_38 = self.input.LA(2)
 
-                        if (LA80_38 == 43) :
-                            LA80_304 = self.input.LA(3)
+                        elif LA82 == 35:
+                            LA82_293 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                            if (self.synpred172()) :
+                                alt82 = 1
 
 
-                        elif (LA80_38 == IDENTIFIER) :
-                            LA80_305 = self.input.LA(3)
+                        elif LA82 == 36:
+                            LA82_294 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                            if (self.synpred172()) :
+                                alt82 = 1
 
 
+                        elif LA82 == 37:
+                            LA82_295 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                    elif LA80 == 49 or LA80 == 50 or LA80 == 51 or LA80 == 52 or LA80 == 53 or LA80 == 54 or LA80 == 55 or LA80 == 56 or LA80 == 57 or LA80 == 58 or LA80 == 59 or LA80 == 60:
-                        LA80 = self.input.LA(2)
-                        if LA80 == 65:
-                            LA80_306 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 38:
+                            LA82_296 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 58:
-                            LA80_307 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 39:
+                            LA82_297 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 59:
-                            LA80_308 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 40:
+                            LA82_298 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 60:
-                            LA80_309 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 41:
+                            LA82_299 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == IDENTIFIER:
-                            LA80_310 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 42:
+                            LA82_300 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-                        elif LA80 == 61:
-                            LA80_311 = self.input.LA(3)
 
-                            if (self.synpred168()) :
-                                alt80 = 1
+                        elif LA82 == 45 or LA82 == 46:
+                            LA82_301 = self.input.LA(3)
 
+                            if (self.synpred172()) :
+                                alt82 = 1
 
-