1 # $ANTLR 3.0.1 C.g 2007-12-25 19:09:36
4 from antlr3.compat import set, frozenset
7 # for convenience in actions
8 HIDDEN = BaseRecognizer.HIDDEN
41 FLOATING_POINT_LITERAL=10
116 grammarFileName = "C.g"
118 def __init__(self, input=None):
119 Lexer.__init__(self, input)
120 self.dfa26 = self.DFA26(
122 eot = self.DFA26_eot,
123 eof = self.DFA26_eof,
124 min = self.DFA26_min,
125 max = self.DFA26_max,
126 accept = self.DFA26_accept,
127 special = self.DFA26_special,
128 transition = self.DFA26_transition
130 self.dfa36 = self.DFA36(
132 eot = self.DFA36_eot,
133 eof = self.DFA36_eof,
134 min = self.DFA36_min,
135 max = self.DFA36_max,
136 accept = self.DFA36_accept,
137 special = self.DFA36_special,
138 transition = self.DFA36_transition
174 # C.g:8:5: ( 'typedef' )
176 self.match("typedef")
241 # C.g:11:5: ( 'extern' )
264 # C.g:12:5: ( 'static' )
287 # C.g:13:5: ( 'auto' )
310 # C.g:14:5: ( 'register' )
311 # C.g:14:7: 'register'
312 self.match("register")
333 # C.g:15:5: ( 'void' )
356 # C.g:16:5: ( 'char' )
379 # C.g:17:5: ( 'short' )
402 # C.g:18:5: ( 'int' )
425 # C.g:19:5: ( 'long' )
448 # C.g:20:5: ( 'float' )
471 # C.g:21:5: ( 'double' )
494 # C.g:22:5: ( 'signed' )
517 # C.g:23:5: ( 'unsigned' )
518 # C.g:23:7: 'unsigned'
519 self.match("unsigned")
584 # C.g:26:5: ( 'struct' )
607 # C.g:27:5: ( 'union' )
652 # C.g:29:5: ( 'enum' )
675 # C.g:30:5: ( 'const' )
698 # C.g:31:5: ( 'volatile' )
699 # C.g:31:7: 'volatile'
700 self.match("volatile")
744 # C.g:33:5: ( 'OUT' )
877 # C.g:39:5: ( '...' )
1011 # C.g:45:5: ( '--' )
1034 # C.g:46:5: ( 'sizeof' )
1035 # C.g:46:7: 'sizeof'
1036 self.match("sizeof")
1079 # C.g:48:5: ( '->' )
1168 # C.g:52:5: ( '*=' )
1191 # C.g:53:5: ( '/=' )
1214 # C.g:54:5: ( '%=' )
1237 # C.g:55:5: ( '+=' )
1260 # C.g:56:5: ( '-=' )
1283 # C.g:57:5: ( '<<=' )
1306 # C.g:58:5: ( '>>=' )
1329 # C.g:59:5: ( '&=' )
1352 # C.g:60:5: ( '^=' )
1375 # C.g:61:5: ( '|=' )
1420 # C.g:63:5: ( '||' )
1443 # C.g:64:5: ( '&&' )
1510 # C.g:67:5: ( '==' )
1533 # C.g:68:5: ( '!=' )
1600 # C.g:71:5: ( '<=' )
1623 # C.g:72:5: ( '>=' )
1646 # C.g:73:5: ( '<<' )
1669 # C.g:74:5: ( '>>' )
1692 # C.g:75:5: ( 'case' )
1715 # C.g:76:5: ( 'default' )
1716 # C.g:76:7: 'default'
1717 self.match("default")
1738 # C.g:77:5: ( 'if' )
1761 # C.g:78:5: ( 'else' )
1784 # C.g:79:5: ( 'switch' )
1785 # C.g:79:7: 'switch'
1786 self.match("switch")
1807 # C.g:80:5: ( 'while' )
1830 # C.g:81:5: ( 'do' )
1853 # C.g:82:5: ( 'for' )
1876 # C.g:83:6: ( 'goto' )
1899 # C.g:84:6: ( 'continue' )
1900 # C.g:84:8: 'continue'
1901 self.match("continue")
1922 # C.g:85:6: ( 'break' )
1945 # C.g:86:6: ( 'return' )
1946 # C.g:86:8: 'return'
1947 self.match("return")
1962 # $ANTLR start IDENTIFIER
1963 def mIDENTIFIER(self, ):
1966 self.type = IDENTIFIER
1968 # C.g:458:2: ( LETTER ( LETTER | '0' .. '9' )* )
1969 # C.g:458:4: LETTER ( LETTER | '0' .. '9' )*
1972 # C.g:458:11: ( LETTER | '0' .. '9' )*
1975 LA1_0 = self.input.LA(1)
1977 if (LA1_0 == u'$' or (u'0' <= LA1_0 <= u'9') or (u'A' <= LA1_0 <= u'Z') or LA1_0 == u'_' or (u'a' <= LA1_0 <= u'z')) :
1983 if self.input.LA(1) == u'$' or (u'0' <= self.input.LA(1) <= u'9') or (u'A' <= self.input.LA(1) <= u'Z') or self.input.LA(1) == u'_' or (u'a' <= self.input.LA(1) <= u'z'):
1984 self.input.consume();
1987 mse = MismatchedSetException(None, self.input)
2006 # $ANTLR end IDENTIFIER
2010 # $ANTLR start LETTER
2011 def mLETTER(self, ):
2014 # C.g:463:2: ( '$' | 'A' .. 'Z' | 'a' .. 'z' | '_' )
2016 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'):
2017 self.input.consume();
2020 mse = MismatchedSetException(None, self.input)
2037 # $ANTLR start CHARACTER_LITERAL
2038 def mCHARACTER_LITERAL(self, ):
2041 self.type = CHARACTER_LITERAL
2043 # C.g:470:5: ( '\\'' ( EscapeSequence | ~ ( '\\'' | '\\\\' ) ) '\\'' )
2044 # C.g:470:9: '\\'' ( EscapeSequence | ~ ( '\\'' | '\\\\' ) ) '\\''
2047 # C.g:470:14: ( EscapeSequence | ~ ( '\\'' | '\\\\' ) )
2049 LA2_0 = self.input.LA(1)
2051 if (LA2_0 == u'\\') :
2053 elif ((u'\u0000' <= LA2_0 <= u'&') or (u'(' <= LA2_0 <= u'[') or (u']' <= LA2_0 <= u'\uFFFE')) :
2056 nvae = NoViableAltException("470:14: ( EscapeSequence | ~ ( '\\'' | '\\\\' ) )", 2, 0, self.input)
2061 # C.g:470:16: EscapeSequence
2062 self.mEscapeSequence()
2067 # C.g:470:33: ~ ( '\\'' | '\\\\' )
2068 if (u'\u0000' <= self.input.LA(1) <= u'&') or (u'(' <= self.input.LA(1) <= u'[') or (u']' <= self.input.LA(1) <= u'\uFFFE'):
2069 self.input.consume();
2072 mse = MismatchedSetException(None, self.input)
2090 # $ANTLR end CHARACTER_LITERAL
2094 # $ANTLR start STRING_LITERAL
2095 def mSTRING_LITERAL(self, ):
2098 self.type = STRING_LITERAL
2100 # C.g:474:5: ( ( 'L' )? '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' )
2101 # C.g:474:8: ( 'L' )? '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"'
2102 # C.g:474:8: ( 'L' )?
2104 LA3_0 = self.input.LA(1)
2106 if (LA3_0 == u'L') :
2117 # C.g:474:19: ( EscapeSequence | ~ ( '\\\\' | '\"' ) )*
2120 LA4_0 = self.input.LA(1)
2122 if (LA4_0 == u'\\') :
2124 elif ((u'\u0000' <= LA4_0 <= u'!') or (u'#' <= LA4_0 <= u'[') or (u']' <= LA4_0 <= u'\uFFFE')) :
2129 # C.g:474:21: EscapeSequence
2130 self.mEscapeSequence()
2135 # C.g:474:38: ~ ( '\\\\' | '\"' )
2136 if (u'\u0000' <= self.input.LA(1) <= u'!') or (u'#' <= self.input.LA(1) <= u'[') or (u']' <= self.input.LA(1) <= u'\uFFFE'):
2137 self.input.consume();
2140 mse = MismatchedSetException(None, self.input)
2161 # $ANTLR end STRING_LITERAL
2165 # $ANTLR start HEX_LITERAL
2166 def mHEX_LITERAL(self, ):
2169 self.type = HEX_LITERAL
2171 # C.g:477:13: ( '0' ( 'x' | 'X' ) ( HexDigit )+ ( IntegerTypeSuffix )? )
2172 # C.g:477:15: '0' ( 'x' | 'X' ) ( HexDigit )+ ( IntegerTypeSuffix )?
2175 if self.input.LA(1) == u'X' or self.input.LA(1) == u'x':
2176 self.input.consume();
2179 mse = MismatchedSetException(None, self.input)
2184 # C.g:477:29: ( HexDigit )+
2188 LA5_0 = self.input.LA(1)
2190 if ((u'0' <= LA5_0 <= u'9') or (u'A' <= LA5_0 <= u'F') or (u'a' <= LA5_0 <= u'f')) :
2195 # C.g:477:29: HexDigit
2204 eee = EarlyExitException(5, self.input)
2210 # C.g:477:39: ( IntegerTypeSuffix )?
2212 LA6_0 = self.input.LA(1)
2214 if (LA6_0 == u'L' or LA6_0 == u'U' or LA6_0 == u'l' or LA6_0 == u'u') :
2217 # C.g:477:39: IntegerTypeSuffix
2218 self.mIntegerTypeSuffix()
2231 # $ANTLR end HEX_LITERAL
2235 # $ANTLR start DECIMAL_LITERAL
2236 def mDECIMAL_LITERAL(self, ):
2239 self.type = DECIMAL_LITERAL
2241 # C.g:479:17: ( ( '0' | '1' .. '9' ( '0' .. '9' )* ) ( IntegerTypeSuffix )? )
2242 # C.g:479:19: ( '0' | '1' .. '9' ( '0' .. '9' )* ) ( IntegerTypeSuffix )?
2243 # C.g:479:19: ( '0' | '1' .. '9' ( '0' .. '9' )* )
2245 LA8_0 = self.input.LA(1)
2247 if (LA8_0 == u'0') :
2249 elif ((u'1' <= LA8_0 <= u'9')) :
2252 nvae = NoViableAltException("479:19: ( '0' | '1' .. '9' ( '0' .. '9' )* )", 8, 0, self.input)
2263 # C.g:479:26: '1' .. '9' ( '0' .. '9' )*
2264 self.matchRange(u'1', u'9')
2266 # C.g:479:35: ( '0' .. '9' )*
2269 LA7_0 = self.input.LA(1)
2271 if ((u'0' <= LA7_0 <= u'9')) :
2276 # C.g:479:35: '0' .. '9'
2277 self.matchRange(u'0', u'9')
2288 # C.g:479:46: ( IntegerTypeSuffix )?
2290 LA9_0 = self.input.LA(1)
2292 if (LA9_0 == u'L' or LA9_0 == u'U' or LA9_0 == u'l' or LA9_0 == u'u') :
2295 # C.g:479:46: IntegerTypeSuffix
2296 self.mIntegerTypeSuffix()
2309 # $ANTLR end DECIMAL_LITERAL
2313 # $ANTLR start OCTAL_LITERAL
2314 def mOCTAL_LITERAL(self, ):
2317 self.type = OCTAL_LITERAL
2319 # C.g:481:15: ( '0' ( '0' .. '7' )+ ( IntegerTypeSuffix )? )
2320 # C.g:481:17: '0' ( '0' .. '7' )+ ( IntegerTypeSuffix )?
2323 # C.g:481:21: ( '0' .. '7' )+
2327 LA10_0 = self.input.LA(1)
2329 if ((u'0' <= LA10_0 <= u'7')) :
2334 # C.g:481:22: '0' .. '7'
2335 self.matchRange(u'0', u'7')
2343 eee = EarlyExitException(10, self.input)
2349 # C.g:481:33: ( IntegerTypeSuffix )?
2351 LA11_0 = self.input.LA(1)
2353 if (LA11_0 == u'L' or LA11_0 == u'U' or LA11_0 == u'l' or LA11_0 == u'u') :
2356 # C.g:481:33: IntegerTypeSuffix
2357 self.mIntegerTypeSuffix()
2370 # $ANTLR end OCTAL_LITERAL
2374 # $ANTLR start HexDigit
2375 def mHexDigit(self, ):
2378 # C.g:484:10: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )
2379 # C.g:484:12: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )
2380 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'):
2381 self.input.consume();
2384 mse = MismatchedSetException(None, self.input)
2397 # $ANTLR end HexDigit
2401 # $ANTLR start IntegerTypeSuffix
2402 def mIntegerTypeSuffix(self, ):
2405 # C.g:488:2: ( ( 'u' | 'U' )? ( 'l' | 'L' ) | ( 'u' | 'U' ) ( 'l' | 'L' )? )
2407 LA14_0 = self.input.LA(1)
2409 if (LA14_0 == u'U' or LA14_0 == u'u') :
2410 LA14_1 = self.input.LA(2)
2412 if (LA14_1 == u'L' or LA14_1 == u'l') :
2416 elif (LA14_0 == u'L' or LA14_0 == u'l') :
2419 nvae = NoViableAltException("486:1: fragment IntegerTypeSuffix : ( ( 'u' | 'U' )? ( 'l' | 'L' ) | ( 'u' | 'U' ) ( 'l' | 'L' )? );", 14, 0, self.input)
2424 # C.g:488:4: ( 'u' | 'U' )? ( 'l' | 'L' )
2425 # C.g:488:4: ( 'u' | 'U' )?
2427 LA12_0 = self.input.LA(1)
2429 if (LA12_0 == u'U' or LA12_0 == u'u') :
2433 if self.input.LA(1) == u'U' or self.input.LA(1) == u'u':
2434 self.input.consume();
2437 mse = MismatchedSetException(None, self.input)
2445 if self.input.LA(1) == u'L' or self.input.LA(1) == u'l':
2446 self.input.consume();
2449 mse = MismatchedSetException(None, self.input)
2457 # C.g:489:4: ( 'u' | 'U' ) ( 'l' | 'L' )?
2458 if self.input.LA(1) == u'U' or self.input.LA(1) == u'u':
2459 self.input.consume();
2462 mse = MismatchedSetException(None, self.input)
2467 # C.g:489:15: ( 'l' | 'L' )?
2469 LA13_0 = self.input.LA(1)
2471 if (LA13_0 == u'L' or LA13_0 == u'l') :
2475 if self.input.LA(1) == u'L' or self.input.LA(1) == u'l':
2476 self.input.consume();
2479 mse = MismatchedSetException(None, self.input)
2494 # $ANTLR end IntegerTypeSuffix
2498 # $ANTLR start FLOATING_POINT_LITERAL
2499 def mFLOATING_POINT_LITERAL(self, ):
2502 self.type = FLOATING_POINT_LITERAL
2504 # C.g:493:5: ( ( '0' .. '9' )+ '.' ( '0' .. '9' )* ( Exponent )? ( FloatTypeSuffix )? | '.' ( '0' .. '9' )+ ( Exponent )? ( FloatTypeSuffix )? | ( '0' .. '9' )+ Exponent ( FloatTypeSuffix )? | ( '0' .. '9' )+ ( Exponent )? FloatTypeSuffix )
2506 alt26 = self.dfa26.predict(self.input)
2508 # C.g:493:9: ( '0' .. '9' )+ '.' ( '0' .. '9' )* ( Exponent )? ( FloatTypeSuffix )?
2509 # C.g:493:9: ( '0' .. '9' )+
2513 LA15_0 = self.input.LA(1)
2515 if ((u'0' <= LA15_0 <= u'9')) :
2520 # C.g:493:10: '0' .. '9'
2521 self.matchRange(u'0', u'9')
2529 eee = EarlyExitException(15, self.input)
2537 # C.g:493:25: ( '0' .. '9' )*
2540 LA16_0 = self.input.LA(1)
2542 if ((u'0' <= LA16_0 <= u'9')) :
2547 # C.g:493:26: '0' .. '9'
2548 self.matchRange(u'0', u'9')
2556 # C.g:493:37: ( Exponent )?
2558 LA17_0 = self.input.LA(1)
2560 if (LA17_0 == u'E' or LA17_0 == u'e') :
2563 # C.g:493:37: Exponent
2569 # C.g:493:47: ( FloatTypeSuffix )?
2571 LA18_0 = self.input.LA(1)
2573 if (LA18_0 == u'D' or LA18_0 == u'F' or LA18_0 == u'd' or LA18_0 == u'f') :
2576 # C.g:493:47: FloatTypeSuffix
2577 self.mFloatTypeSuffix()
2585 # C.g:494:9: '.' ( '0' .. '9' )+ ( Exponent )? ( FloatTypeSuffix )?
2588 # C.g:494:13: ( '0' .. '9' )+
2592 LA19_0 = self.input.LA(1)
2594 if ((u'0' <= LA19_0 <= u'9')) :
2599 # C.g:494:14: '0' .. '9'
2600 self.matchRange(u'0', u'9')
2608 eee = EarlyExitException(19, self.input)
2614 # C.g:494:25: ( Exponent )?
2616 LA20_0 = self.input.LA(1)
2618 if (LA20_0 == u'E' or LA20_0 == u'e') :
2621 # C.g:494:25: Exponent
2627 # C.g:494:35: ( FloatTypeSuffix )?
2629 LA21_0 = self.input.LA(1)
2631 if (LA21_0 == u'D' or LA21_0 == u'F' or LA21_0 == u'd' or LA21_0 == u'f') :
2634 # C.g:494:35: FloatTypeSuffix
2635 self.mFloatTypeSuffix()
2643 # C.g:495:9: ( '0' .. '9' )+ Exponent ( FloatTypeSuffix )?
2644 # C.g:495:9: ( '0' .. '9' )+
2648 LA22_0 = self.input.LA(1)
2650 if ((u'0' <= LA22_0 <= u'9')) :
2655 # C.g:495:10: '0' .. '9'
2656 self.matchRange(u'0', u'9')
2664 eee = EarlyExitException(22, self.input)
2672 # C.g:495:30: ( FloatTypeSuffix )?
2674 LA23_0 = self.input.LA(1)
2676 if (LA23_0 == u'D' or LA23_0 == u'F' or LA23_0 == u'd' or LA23_0 == u'f') :
2679 # C.g:495:30: FloatTypeSuffix
2680 self.mFloatTypeSuffix()
2688 # C.g:496:9: ( '0' .. '9' )+ ( Exponent )? FloatTypeSuffix
2689 # C.g:496:9: ( '0' .. '9' )+
2693 LA24_0 = self.input.LA(1)
2695 if ((u'0' <= LA24_0 <= u'9')) :
2700 # C.g:496:10: '0' .. '9'
2701 self.matchRange(u'0', u'9')
2709 eee = EarlyExitException(24, self.input)
2715 # C.g:496:21: ( Exponent )?
2717 LA25_0 = self.input.LA(1)
2719 if (LA25_0 == u'E' or LA25_0 == u'e') :
2722 # C.g:496:21: Exponent
2728 self.mFloatTypeSuffix()
2737 # $ANTLR end FLOATING_POINT_LITERAL
2741 # $ANTLR start Exponent
2742 def mExponent(self, ):
2745 # C.g:500:10: ( ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ )
2746 # C.g:500:12: ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+
2747 if self.input.LA(1) == u'E' or self.input.LA(1) == u'e':
2748 self.input.consume();
2751 mse = MismatchedSetException(None, self.input)
2756 # C.g:500:22: ( '+' | '-' )?
2758 LA27_0 = self.input.LA(1)
2760 if (LA27_0 == u'+' or LA27_0 == u'-') :
2764 if self.input.LA(1) == u'+' or self.input.LA(1) == u'-':
2765 self.input.consume();
2768 mse = MismatchedSetException(None, self.input)
2776 # C.g:500:33: ( '0' .. '9' )+
2780 LA28_0 = self.input.LA(1)
2782 if ((u'0' <= LA28_0 <= u'9')) :
2787 # C.g:500:34: '0' .. '9'
2788 self.matchRange(u'0', u'9')
2796 eee = EarlyExitException(28, self.input)
2810 # $ANTLR end Exponent
2814 # $ANTLR start FloatTypeSuffix
2815 def mFloatTypeSuffix(self, ):
2818 # C.g:503:17: ( ( 'f' | 'F' | 'd' | 'D' ) )
2819 # C.g:503:19: ( 'f' | 'F' | 'd' | 'D' )
2820 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':
2821 self.input.consume();
2824 mse = MismatchedSetException(None, self.input)
2837 # $ANTLR end FloatTypeSuffix
2841 # $ANTLR start EscapeSequence
2842 def mEscapeSequence(self, ):
2845 # C.g:507:5: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | OctalEscape )
2847 LA29_0 = self.input.LA(1)
2849 if (LA29_0 == u'\\') :
2850 LA29_1 = self.input.LA(2)
2852 if (LA29_1 == u'"' or LA29_1 == u'\'' or LA29_1 == u'\\' or LA29_1 == u'b' or LA29_1 == u'f' or LA29_1 == u'n' or LA29_1 == u'r' or LA29_1 == u't') :
2854 elif ((u'0' <= LA29_1 <= u'7')) :
2857 nvae = NoViableAltException("505:1: fragment EscapeSequence : ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | OctalEscape );", 29, 1, self.input)
2862 nvae = NoViableAltException("505:1: fragment EscapeSequence : ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | OctalEscape );", 29, 0, self.input)
2867 # C.g:507:9: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' )
2870 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':
2871 self.input.consume();
2874 mse = MismatchedSetException(None, self.input)
2882 # C.g:508:9: OctalEscape
2892 # $ANTLR end EscapeSequence
2896 # $ANTLR start OctalEscape
2897 def mOctalEscape(self, ):
2900 # C.g:513:5: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
2902 LA30_0 = self.input.LA(1)
2904 if (LA30_0 == u'\\') :
2905 LA30_1 = self.input.LA(2)
2907 if ((u'0' <= LA30_1 <= u'3')) :
2908 LA30_2 = self.input.LA(3)
2910 if ((u'0' <= LA30_2 <= u'7')) :
2911 LA30_4 = self.input.LA(4)
2913 if ((u'0' <= LA30_4 <= u'7')) :
2919 elif ((u'4' <= LA30_1 <= u'7')) :
2920 LA30_3 = self.input.LA(3)
2922 if ((u'0' <= LA30_3 <= u'7')) :
2927 nvae = NoViableAltException("511:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 30, 1, self.input)
2932 nvae = NoViableAltException("511:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 30, 0, self.input)
2937 # C.g:513:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
2940 # C.g:513:14: ( '0' .. '3' )
2941 # C.g:513:15: '0' .. '3'
2942 self.matchRange(u'0', u'3')
2947 # C.g:513:25: ( '0' .. '7' )
2948 # C.g:513:26: '0' .. '7'
2949 self.matchRange(u'0', u'7')
2954 # C.g:513:36: ( '0' .. '7' )
2955 # C.g:513:37: '0' .. '7'
2956 self.matchRange(u'0', u'7')
2964 # C.g:514:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
2967 # C.g:514:14: ( '0' .. '7' )
2968 # C.g:514:15: '0' .. '7'
2969 self.matchRange(u'0', u'7')
2974 # C.g:514:25: ( '0' .. '7' )
2975 # C.g:514:26: '0' .. '7'
2976 self.matchRange(u'0', u'7')
2984 # C.g:515:9: '\\\\' ( '0' .. '7' )
2987 # C.g:515:14: ( '0' .. '7' )
2988 # C.g:515:15: '0' .. '7'
2989 self.matchRange(u'0', u'7')
3001 # $ANTLR end OctalEscape
3005 # $ANTLR start UnicodeEscape
3006 def mUnicodeEscape(self, ):
3009 # C.g:520:5: ( '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit )
3010 # C.g:520:9: '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit
3031 # $ANTLR end UnicodeEscape
3041 # C.g:523:5: ( ( ' ' | '\\r' | '\\t' | '\\u000C' | '\\n' ) )
3042 # C.g:523:8: ( ' ' | '\\r' | '\\t' | '\\u000C' | '\\n' )
3043 if (u'\t' <= self.input.LA(1) <= u'\n') or (u'\f' <= self.input.LA(1) <= u'\r') or self.input.LA(1) == u' ':
3044 self.input.consume();
3047 mse = MismatchedSetException(None, self.input)
3053 self.channel=HIDDEN;
3067 # $ANTLR start UnicodeVocabulary
3068 def mUnicodeVocabulary(self, ):
3071 self.type = UnicodeVocabulary
3073 # C.g:531:5: ( '\\u0003' .. '\\uFFFE' )
3074 # C.g:531:7: '\\u0003' .. '\\uFFFE'
3075 self.matchRange(u'\u0003', u'\uFFFE')
3085 # $ANTLR end UnicodeVocabulary
3089 # $ANTLR start COMMENT
3090 def mCOMMENT(self, ):
3095 # C.g:534:5: ( '/*' ( options {greedy=false; } : . )* '*/' )
3096 # C.g:534:9: '/*' ( options {greedy=false; } : . )* '*/'
3100 # C.g:534:14: ( options {greedy=false; } : . )*
3103 LA31_0 = self.input.LA(1)
3105 if (LA31_0 == u'*') :
3106 LA31_1 = self.input.LA(2)
3108 if (LA31_1 == u'/') :
3110 elif ((u'\u0000' <= LA31_1 <= u'.') or (u'0' <= LA31_1 <= u'\uFFFE')) :
3114 elif ((u'\u0000' <= LA31_0 <= u')') or (u'+' <= LA31_0 <= u'\uFFFE')) :
3132 self.channel=HIDDEN;
3142 # $ANTLR end COMMENT
3146 # $ANTLR start LINE_COMMENT
3147 def mLINE_COMMENT(self, ):
3150 self.type = LINE_COMMENT
3152 # C.g:539:5: ( '//' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n' )
3153 # C.g:539:7: '//' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n'
3157 # C.g:539:12: (~ ( '\\n' | '\\r' ) )*
3160 LA32_0 = self.input.LA(1)
3162 if ((u'\u0000' <= LA32_0 <= u'\t') or (u'\u000B' <= LA32_0 <= u'\f') or (u'\u000E' <= LA32_0 <= u'\uFFFE')) :
3167 # C.g:539:12: ~ ( '\\n' | '\\r' )
3168 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'):
3169 self.input.consume();
3172 mse = MismatchedSetException(None, self.input)
3183 # C.g:539:26: ( '\\r' )?
3185 LA33_0 = self.input.LA(1)
3187 if (LA33_0 == u'\r') :
3199 self.channel=HIDDEN;
3209 # $ANTLR end LINE_COMMENT
3213 # $ANTLR start LINE_COMMAND
3214 def mLINE_COMMAND(self, ):
3217 self.type = LINE_COMMAND
3219 # C.g:544:5: ( '#' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n' )
3220 # C.g:544:7: '#' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n'
3223 # C.g:544:11: (~ ( '\\n' | '\\r' ) )*
3226 LA34_0 = self.input.LA(1)
3228 if ((u'\u0000' <= LA34_0 <= u'\t') or (u'\u000B' <= LA34_0 <= u'\f') or (u'\u000E' <= LA34_0 <= u'\uFFFE')) :
3233 # C.g:544:11: ~ ( '\\n' | '\\r' )
3234 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'):
3235 self.input.consume();
3238 mse = MismatchedSetException(None, self.input)
3249 # C.g:544:25: ( '\\r' )?
3251 LA35_0 = self.input.LA(1)
3253 if (LA35_0 == u'\r') :
3265 self.channel=HIDDEN;
3275 # $ANTLR end LINE_COMMAND
3280 # C.g:1:8: ( T24 | 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 | IDENTIFIER | CHARACTER_LITERAL | STRING_LITERAL | HEX_LITERAL | DECIMAL_LITERAL | OCTAL_LITERAL | FLOATING_POINT_LITERAL | WS | UnicodeVocabulary | COMMENT | LINE_COMMENT | LINE_COMMAND )
3282 alt36 = self.dfa36.predict(self.input)
3764 # C.g:1:334: IDENTIFIER
3770 # C.g:1:345: CHARACTER_LITERAL
3771 self.mCHARACTER_LITERAL()
3776 # C.g:1:363: STRING_LITERAL
3777 self.mSTRING_LITERAL()
3782 # C.g:1:378: HEX_LITERAL
3788 # C.g:1:390: DECIMAL_LITERAL
3789 self.mDECIMAL_LITERAL()
3794 # C.g:1:406: OCTAL_LITERAL
3795 self.mOCTAL_LITERAL()
3800 # C.g:1:420: FLOATING_POINT_LITERAL
3801 self.mFLOATING_POINT_LITERAL()
3812 # C.g:1:446: UnicodeVocabulary
3813 self.mUnicodeVocabulary()
3818 # C.g:1:464: COMMENT
3824 # C.g:1:472: LINE_COMMENT
3825 self.mLINE_COMMENT()
3830 # C.g:1:485: LINE_COMMAND
3831 self.mLINE_COMMAND()
3840 # lookup tables for DFA #26
3842 DFA26_eot = DFA.unpack(
3843 u"\7\uffff\1\10\2\uffff"
3846 DFA26_eof = DFA.unpack(
3850 DFA26_min = DFA.unpack(
3851 u"\2\56\2\uffff\1\53\1\uffff\2\60\2\uffff"
3854 DFA26_max = DFA.unpack(
3855 u"\1\71\1\146\2\uffff\1\71\1\uffff\1\71\1\146\2\uffff"
3858 DFA26_accept = DFA.unpack(
3859 u"\2\uffff\1\2\1\1\1\uffff\1\4\2\uffff\2\3"
3862 DFA26_special = DFA.unpack(
3867 DFA26_transition = [
3868 DFA.unpack(u"\1\2\1\uffff\12\1"),
3869 DFA.unpack(u"\1\3\1\uffff\12\1\12\uffff\1\5\1\4\1\5\35\uffff\1\5"
3873 DFA.unpack(u"\1\6\1\uffff\1\6\2\uffff\12\7"),
3875 DFA.unpack(u"\12\7"),
3876 DFA.unpack(u"\12\7\12\uffff\1\11\1\uffff\1\11\35\uffff\1\11\1\uffff"
3882 # class definition for DFA #26
3885 # lookup tables for DFA #36
3887 DFA36_eot = DFA.unpack(
3888 u"\2\uffff\1\65\1\uffff\1\70\13\65\3\uffff\2\65\4\uffff\1\130\1\132"
3889 u"\1\136\1\142\1\146\1\150\1\153\1\uffff\1\156\1\161\1\164\1\166"
3890 u"\1\171\1\uffff\4\65\1\62\1\uffff\1\62\2\u0081\1\uffff\1\62\2\uffff"
3891 u"\1\65\4\uffff\15\65\1\u0098\4\65\1\u009e\2\65\3\uffff\1\u00a2\1"
3892 u"\65\34\uffff\1\u00a5\2\uffff\1\u00a7\10\uffff\3\65\4\uffff\1\u00ab"
3893 u"\1\u0081\2\uffff\22\65\1\uffff\1\u00bf\2\65\1\u00c2\1\65\1\uffff"
3894 u"\3\65\1\uffff\1\u00c7\4\uffff\3\65\1\uffff\1\65\1\u00cc\1\65\1"
3895 u"\u00ce\6\65\1\u00d5\2\65\1\u00d8\3\65\1\u00dc\1\u00dd\1\uffff\1"
3896 u"\u00de\1\65\1\uffff\4\65\1\uffff\1\65\1\u00e5\2\65\1\uffff\1\65"
3897 u"\1\uffff\4\65\1\u00ed\1\65\1\uffff\2\65\1\uffff\2\65\1\u00f3\3"
3898 u"\uffff\1\u00f4\2\65\1\u00f7\1\65\1\u00f9\1\uffff\1\u00fa\1\65\1"
3899 u"\u00fc\1\u00fd\1\u00fe\1\u00ff\1\u0100\1\uffff\1\u0101\1\u0102"
3900 u"\3\65\2\uffff\1\u0106\1\65\1\uffff\1\65\2\uffff\1\u0109\7\uffff"
3901 u"\3\65\1\uffff\1\u010d\1\65\1\uffff\1\u010f\1\u0110\1\u0111\1\uffff"
3905 DFA36_eof = DFA.unpack(
3909 DFA36_min = DFA.unpack(
3910 u"\1\3\1\uffff\1\171\1\uffff\1\75\1\154\1\150\1\165\1\145\1\157\1"
3911 u"\141\1\146\1\157\1\154\1\145\1\156\3\uffff\1\116\1\125\4\uffff"
3912 u"\1\75\1\56\1\53\1\55\1\52\1\75\1\46\1\uffff\1\75\1\74\3\75\1\uffff"
3913 u"\1\150\1\157\1\162\1\42\1\0\1\uffff\1\0\2\56\1\uffff\1\0\2\uffff"
3914 u"\1\160\4\uffff\1\165\1\164\1\163\1\147\1\141\1\157\1\151\1\164"
3915 u"\1\147\1\151\1\156\1\163\1\141\1\44\1\164\1\156\1\157\1\162\1\44"
3916 u"\1\146\1\151\3\uffff\1\44\1\124\34\uffff\1\75\2\uffff\1\75\10\uffff"
3917 u"\1\151\1\164\1\145\4\uffff\2\56\2\uffff\1\145\1\155\3\145\1\156"
3918 u"\1\164\1\165\1\162\1\164\1\157\1\165\1\151\1\144\1\141\1\163\1"
3919 u"\145\1\162\1\uffff\1\44\1\147\1\141\1\44\1\142\1\uffff\1\141\1"
3920 u"\157\1\151\1\uffff\1\44\4\uffff\1\154\1\157\1\141\1\uffff\1\144"
3921 u"\1\44\1\162\1\44\1\157\1\145\1\151\1\143\1\164\1\143\1\44\1\162"
3922 u"\1\163\1\44\1\164\1\151\1\164\2\44\1\uffff\1\44\1\164\1\uffff\1"
3923 u"\154\1\165\1\156\1\147\1\uffff\1\145\1\44\1\153\1\145\1\uffff\1"
3924 u"\156\1\uffff\1\146\1\144\1\143\1\164\1\44\1\150\1\uffff\1\156\1"
3925 u"\164\1\uffff\1\151\1\156\1\44\3\uffff\1\44\1\145\1\154\1\44\1\156"
3926 u"\1\44\1\uffff\1\44\1\146\5\44\1\uffff\2\44\1\145\1\154\1\165\2"
3927 u"\uffff\1\44\1\164\1\uffff\1\145\2\uffff\1\44\7\uffff\1\162\2\145"
3928 u"\1\uffff\1\44\1\144\1\uffff\3\44\1\uffff\1\44\4\uffff"
3931 DFA36_max = DFA.unpack(
3932 u"\1\ufffe\1\uffff\1\171\1\uffff\1\75\1\170\1\167\1\165\1\145\2\157"
3933 u"\1\156\3\157\1\156\3\uffff\1\116\1\125\4\uffff\1\75\1\71\1\75\1"
3934 u"\76\3\75\1\uffff\2\75\1\76\1\75\1\174\1\uffff\1\150\1\157\1\162"
3935 u"\1\42\1\ufffe\1\uffff\1\ufffe\1\170\1\146\1\uffff\1\ufffe\2\uffff"
3936 u"\1\160\4\uffff\1\165\1\164\1\163\1\172\1\162\1\157\1\151\2\164"
3937 u"\1\154\1\156\1\163\1\141\1\172\1\164\1\156\1\157\1\162\1\172\1"
3938 u"\146\1\163\3\uffff\1\172\1\124\34\uffff\1\75\2\uffff\1\75\10\uffff"
3939 u"\1\151\1\164\1\145\4\uffff\2\146\2\uffff\1\145\1\155\3\145\1\156"
3940 u"\1\164\1\165\1\162\1\164\1\157\1\165\1\151\1\144\1\141\1\164\1"
3941 u"\145\1\162\1\uffff\1\172\1\147\1\141\1\172\1\142\1\uffff\1\141"
3942 u"\1\157\1\151\1\uffff\1\172\4\uffff\1\154\1\157\1\141\1\uffff\1"
3943 u"\144\1\172\1\162\1\172\1\157\1\145\1\151\1\143\1\164\1\143\1\172"
3944 u"\1\162\1\163\1\172\1\164\1\151\1\164\2\172\1\uffff\1\172\1\164"
3945 u"\1\uffff\1\154\1\165\1\156\1\147\1\uffff\1\145\1\172\1\153\1\145"
3946 u"\1\uffff\1\156\1\uffff\1\146\1\144\1\143\1\164\1\172\1\150\1\uffff"
3947 u"\1\156\1\164\1\uffff\1\151\1\156\1\172\3\uffff\1\172\1\145\1\154"
3948 u"\1\172\1\156\1\172\1\uffff\1\172\1\146\5\172\1\uffff\2\172\1\145"
3949 u"\1\154\1\165\2\uffff\1\172\1\164\1\uffff\1\145\2\uffff\1\172\7"
3950 u"\uffff\1\162\2\145\1\uffff\1\172\1\144\1\uffff\3\172\1\uffff\1"
3954 DFA36_accept = DFA.unpack(
3955 u"\1\uffff\1\1\1\uffff\1\3\14\uffff\1\22\1\23\1\26\2\uffff\1\34\1"
3956 u"\35\1\36\1\37\7\uffff\1\54\5\uffff\1\70\5\uffff\1\121\3\uffff\1"
3957 u"\130\1\uffff\1\131\1\1\1\uffff\1\121\1\3\1\75\1\4\25\uffff\1\22"
3958 u"\1\23\1\26\2\uffff\1\34\1\35\1\36\1\37\1\56\1\40\1\41\1\51\1\127"
3959 u"\1\46\1\61\1\42\1\62\1\52\1\47\1\43\1\57\1\132\1\133\1\44\1\60"
3960 u"\1\45\1\72\1\65\1\53\1\54\1\76\1\55\1\uffff\1\101\1\77\1\uffff"
3961 u"\1\102\1\100\1\66\1\74\1\67\1\71\1\73\1\70\3\uffff\1\123\1\122"
3962 u"\1\124\1\125\2\uffff\1\130\1\134\22\uffff\1\107\5\uffff\1\113\3"
3963 u"\uffff\1\32\1\uffff\1\63\1\103\1\64\1\104\3\uffff\1\126\23\uffff"
3964 u"\1\14\2\uffff\1\114\4\uffff\1\33\4\uffff\1\27\1\uffff\1\110\6\uffff"
3965 u"\1\7\2\uffff\1\11\3\uffff\1\105\1\12\1\15\6\uffff\1\115\7\uffff"
3966 u"\1\13\5\uffff\1\30\1\16\2\uffff\1\25\1\uffff\1\112\1\117\1\uffff"
3967 u"\1\5\1\50\1\20\1\6\1\24\1\111\1\120\3\uffff\1\17\2\uffff\1\2\3"
3968 u"\uffff\1\106\1\uffff\1\10\1\31\1\116\1\21"
3971 DFA36_special = DFA.unpack(
3976 DFA36_transition = [
3977 DFA.unpack(u"\6\62\2\60\1\62\2\60\22\62\1\60\1\41\1\55\1\61\1\54"
3978 u"\1\36\1\37\1\53\1\25\1\26\1\31\1\33\1\3\1\34\1\32\1\35\1\56\11"
3979 u"\57\1\22\1\1\1\42\1\4\1\43\1\46\1\62\10\54\1\23\2\54\1\52\2\54"
3980 u"\1\24\13\54\1\27\1\62\1\30\1\44\1\54\1\62\1\7\1\51\1\12\1\16\1"
3981 u"\5\1\15\1\50\1\54\1\13\2\54\1\14\5\54\1\10\1\6\1\2\1\17\1\11\1"
3982 u"\47\3\54\1\20\1\45\1\21\1\40\uff80\62"),
3984 DFA.unpack(u"\1\64"),
3986 DFA.unpack(u"\1\67"),
3987 DFA.unpack(u"\1\73\1\uffff\1\71\11\uffff\1\72"),
3988 DFA.unpack(u"\1\76\1\74\12\uffff\1\75\2\uffff\1\77"),
3989 DFA.unpack(u"\1\100"),
3990 DFA.unpack(u"\1\101"),
3991 DFA.unpack(u"\1\102"),
3992 DFA.unpack(u"\1\104\6\uffff\1\105\6\uffff\1\103"),
3993 DFA.unpack(u"\1\106\7\uffff\1\107"),
3994 DFA.unpack(u"\1\110"),
3995 DFA.unpack(u"\1\111\2\uffff\1\112"),
3996 DFA.unpack(u"\1\114\11\uffff\1\113"),
3997 DFA.unpack(u"\1\115"),
4001 DFA.unpack(u"\1\121"),
4002 DFA.unpack(u"\1\122"),
4007 DFA.unpack(u"\1\127"),
4008 DFA.unpack(u"\1\131\1\uffff\12\133"),
4009 DFA.unpack(u"\1\134\21\uffff\1\135"),
4010 DFA.unpack(u"\1\141\17\uffff\1\137\1\140"),
4011 DFA.unpack(u"\1\144\4\uffff\1\145\15\uffff\1\143"),
4012 DFA.unpack(u"\1\147"),
4013 DFA.unpack(u"\1\151\26\uffff\1\152"),
4015 DFA.unpack(u"\1\155"),
4016 DFA.unpack(u"\1\157\1\160"),
4017 DFA.unpack(u"\1\163\1\162"),
4018 DFA.unpack(u"\1\165"),
4019 DFA.unpack(u"\1\167\76\uffff\1\170"),
4021 DFA.unpack(u"\1\173"),
4022 DFA.unpack(u"\1\174"),
4023 DFA.unpack(u"\1\175"),
4024 DFA.unpack(u"\1\176"),
4025 DFA.unpack(u"\47\177\1\uffff\uffd7\177"),
4027 DFA.unpack(u"\uffff\176"),
4028 DFA.unpack(u"\1\133\1\uffff\10\u0082\2\133\12\uffff\3\133\21\uffff"
4029 u"\1\u0080\13\uffff\3\133\21\uffff\1\u0080"),
4030 DFA.unpack(u"\1\133\1\uffff\12\u0083\12\uffff\3\133\35\uffff\3\133"),
4032 DFA.unpack(u"\uffff\u0085"),
4035 DFA.unpack(u"\1\u0086"),
4040 DFA.unpack(u"\1\u0087"),
4041 DFA.unpack(u"\1\u0088"),
4042 DFA.unpack(u"\1\u0089"),
4043 DFA.unpack(u"\1\u008b\22\uffff\1\u008a"),
4044 DFA.unpack(u"\1\u008c\20\uffff\1\u008d"),
4045 DFA.unpack(u"\1\u008e"),
4046 DFA.unpack(u"\1\u008f"),
4047 DFA.unpack(u"\1\u0090"),
4048 DFA.unpack(u"\1\u0092\14\uffff\1\u0091"),
4049 DFA.unpack(u"\1\u0093\2\uffff\1\u0094"),
4050 DFA.unpack(u"\1\u0095"),
4051 DFA.unpack(u"\1\u0096"),
4052 DFA.unpack(u"\1\u0097"),
4053 DFA.unpack(u"\1\65\13\uffff\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff"
4055 DFA.unpack(u"\1\u0099"),
4056 DFA.unpack(u"\1\u009a"),
4057 DFA.unpack(u"\1\u009b"),
4058 DFA.unpack(u"\1\u009c"),
4059 DFA.unpack(u"\1\65\13\uffff\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff"
4060 u"\24\65\1\u009d\5\65"),
4061 DFA.unpack(u"\1\u009f"),
4062 DFA.unpack(u"\1\u00a0\11\uffff\1\u00a1"),
4066 DFA.unpack(u"\1\65\13\uffff\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff"
4068 DFA.unpack(u"\1\u00a3"),