// lex.yy.cpp generated by reflex 5.1.0 from reflextest.l #define REFLEX_VERSION "5.1.0" //////////////////////////////////////////////////////////////////////////////// // // // OPTIONS USED // // // //////////////////////////////////////////////////////////////////////////////// #define REFLEX_OPTION_fast true #define REFLEX_OPTION_flex true #define REFLEX_OPTION_lex yylex #define REFLEX_OPTION_lexer yyFlexLexer #define REFLEX_OPTION_nodefault true #define REFLEX_OPTION_outfile "lex.yy.cpp" #define REFLEX_OPTION_prefix yy //////////////////////////////////////////////////////////////////////////////// // // // SECTION 1: %top user code // // // //////////////////////////////////////////////////////////////////////////////// #line 2 "reflextest.l" #include #include #include //////////////////////////////////////////////////////////////////////////////// // // // FLEX-COMPATIBLE DEFINITIONS // // // //////////////////////////////////////////////////////////////////////////////// #define INITIAL (0) #define YY_NUM_RULES (57) //////////////////////////////////////////////////////////////////////////////// // // // REGEX MATCHER // // // //////////////////////////////////////////////////////////////////////////////// #include //////////////////////////////////////////////////////////////////////////////// // // // FLEX-COMPATIBLE ABSTRACT LEXER CLASS // // // //////////////////////////////////////////////////////////////////////////////// #include typedef reflex::FlexLexer FlexLexer; //////////////////////////////////////////////////////////////////////////////// // // // LEXER CLASS // // // //////////////////////////////////////////////////////////////////////////////// class yyFlexLexer : public FlexLexer { public: yyFlexLexer( // a persistent source of input, empty by default const reflex::Input& input = reflex::Input(), // optional output stream, NULL means std::cout by default std::ostream *os = NULL) : FlexLexer(input, os) { } // the flex lexer function defined by SECTION 2 virtual int yylex(void); // lexer functions accepting new input to scan int yylex(const reflex::Input& input) { in(input); return yylex(); } int yylex(const reflex::Input& input, std::ostream *os) { in(input); if (os) out(*os); return yylex(); } }; //////////////////////////////////////////////////////////////////////////////// // // // SECTION 1: %{ user code %} // // // //////////////////////////////////////////////////////////////////////////////// #line 1 "reflextest.l" // bin/reflex reflextest.l; c++ -O2 -Iinclude -I/opt/local/include lex.yy.cpp lib/libreflex.a /opt/local/lib/libboost_regex-mt.dylib #line 8 "reflextest.l" // no lazy quants (not supported by Boost.Regex POSIX mode): // %o matcher=boost-perl // %o matcher=boost // std-ecma requires removal of ^ from DIRECTIVE // %o matcher=std-ecma //////////////////////////////////////////////////////////////////////////////// // // // SECTION 2: rules // // // //////////////////////////////////////////////////////////////////////////////// extern void reflex_code_INITIAL(reflex::Matcher&); int yyFlexLexer::yylex(void) { static const reflex::Pattern PATTERN_INITIAL(reflex_code_INITIAL); if (!has_matcher()) { matcher(new Matcher(PATTERN_INITIAL, stdinit(), this)); YY_USER_INIT } while (true) { switch (matcher().scan()) { case 0: if (matcher().at_end()) { yyterminate(); } else { LexerError("scanner jammed"); yyterminate(); } YY_BREAK case 1: // rule reflextest.l:31: {WHITESPACE} : case 2: // rule reflextest.l:32: {ILCOMMENT} : case 3: // rule reflextest.l:33: {MLCOMMENT} : case 4: // rule reflextest.l:34: {DIRECTIVE} : case 5: // rule reflextest.l:35: {NAME} : case 6: // rule reflextest.l:36: {FLOAT} : case 7: // rule reflextest.l:37: {INT} : case 8: // rule reflextest.l:38: {CHAR} : case 9: // rule reflextest.l:39: {STRING} : case 10: // rule reflextest.l:40: "+=" : case 11: // rule reflextest.l:41: "++" : case 12: // rule reflextest.l:42: "+" : case 13: // rule reflextest.l:43: "-=" : case 14: // rule reflextest.l:44: "--" : case 15: // rule reflextest.l:45: "->" : case 16: // rule reflextest.l:46: "-" : case 17: // rule reflextest.l:47: "==" : case 18: // rule reflextest.l:48: "=" : case 19: // rule reflextest.l:49: "<=" : case 20: // rule reflextest.l:50: "<<=" : case 21: // rule reflextest.l:51: "<<" : case 22: // rule reflextest.l:52: "<" : case 23: // rule reflextest.l:53: ">=" : case 24: // rule reflextest.l:54: ">>=" : case 25: // rule reflextest.l:55: ">>" : case 26: // rule reflextest.l:56: ">" : case 27: // rule reflextest.l:57: "!=" : case 28: // rule reflextest.l:58: "!" : case 29: // rule reflextest.l:59: "," : case 30: // rule reflextest.l:60: ";" : case 31: // rule reflextest.l:61: "..." : case 32: // rule reflextest.l:62: "." : case 33: // rule reflextest.l:63: "^=" : case 34: // rule reflextest.l:64: "^" : case 35: // rule reflextest.l:65: "~" : case 36: // rule reflextest.l:66: "*=" : case 37: // rule reflextest.l:67: "*" : case 38: // rule reflextest.l:68: "/=" : case 39: // rule reflextest.l:69: "/" : case 40: // rule reflextest.l:70: "%=" : case 41: // rule reflextest.l:71: "%" : case 42: // rule reflextest.l:72: "&=" : case 43: // rule reflextest.l:73: "&&" : case 44: // rule reflextest.l:74: "&" : case 45: // rule reflextest.l:75: "|=" : case 46: // rule reflextest.l:76: "||" : case 47: // rule reflextest.l:77: "|" : case 48: // rule reflextest.l:78: "(" : case 49: // rule reflextest.l:79: ")" : case 50: // rule reflextest.l:80: "[" : case 51: // rule reflextest.l:81: "]" : case 52: // rule reflextest.l:82: "{" : case 53: // rule reflextest.l:83: "}" : case 54: // rule reflextest.l:84: "::" : case 55: // rule reflextest.l:85: ":" : case 56: // rule reflextest.l:86: "?" : YY_USER_ACTION #line 86 "reflextest.l" return 1; YY_BREAK case 57: // rule reflextest.l:87: . : YY_USER_ACTION #line 87 "reflextest.l" printf("*** ERROR '%s' at line %d\n", yytext, yylineno); YY_BREAK } } } //////////////////////////////////////////////////////////////////////////////// // // // SECTION 3: user code // // // //////////////////////////////////////////////////////////////////////////////// #line 90 "reflextest.l" #define RUNS 1000000 int main() { yyFlexLexer lexer; std::ifstream file("re2test.cpp"); std::string str((std::istreambuf_iterator(file)), std::istreambuf_iterator()); file.close(); size_t n = 0; reflex::timer_type t; reflex::timer_start(t); for (int run = 0; run < RUNS; ++run) { lexer.in(str); n = 0; while (lexer.yylex()) { ++n; // std::cout << lexer.text() << std::endl; } } float dt = reflex::timer_elapsed(t); std::cout << n << " matches, elapsed " << 1000*dt/RUNS << " micro seconds" << std::endl; } //////////////////////////////////////////////////////////////////////////////// // // // TABLES // // // //////////////////////////////////////////////////////////////////////////////// #include #if defined(OS_WIN) #pragma warning(disable:4101 4102) #elif defined(__GNUC__) #pragma GCC diagnostic ignored "-Wunused-variable" #pragma GCC diagnostic ignored "-Wunused-label" #elif defined(__clang__) #pragma clang diagnostic ignored "-Wunused-variable" #pragma clang diagnostic ignored "-Wunused-label" #endif void reflex_code_INITIAL(reflex::Matcher& m) { int c = 0; m.FSM_INIT(c); S0: m.FSM_FIND(); c = m.FSM_CHAR(); if (c == '~') goto S139; if (c == '}') goto S165; if (c == '|') goto S151; if (c == '{') goto S163; if ('a' <= c && c <= 'z') goto S58; if (c == '_') goto S58; if (c == '^') goto S136; if (c == ']') goto S161; if (c == '[') goto S159; if (c == 'L') goto S88; if ('A' <= c && c <= 'Z') goto S58; if (c == '?') goto S170; if (c == '>') goto S122; if (c == '=') goto S115; if (c == '<') goto S118; if (c == ';') goto S131; if (c == ':') goto S167; if ('1' <= c && c <= '9') goto S81; if (c == '0') goto S72; if (c == '/') goto S42; if (c == '.') goto S133; if (c == '-') goto S64; if (c == ',') goto S129; if (c == '+') goto S108; if (c == '*') goto S141; if (c == ')') goto S157; if (c == '(') goto S155; if (c == '\'') goto S96; if (c == '&') goto S147; if (c == '%') goto S144; if (c == '#') goto S53; if (c == '"') goto S102; if (c == '!') goto S126; if (c == ' ') goto S47; if ('\v' <= c && c <= '\r') goto S172; if (c == '\n') goto S38; if (c == '\t') goto S47; if (0 <= c) goto S176; return m.FSM_HALT(c); S38: m.FSM_TAKE(1); c = m.FSM_CHAR(); if (c == ' ') goto S38; if ('\t' <= c && c <= '\r') goto S38; return m.FSM_HALT(c); S42: m.FSM_TAKE(39); c = m.FSM_CHAR(); if (c == '=') goto S183; if (c == '/') goto S178; if (c == '*') goto S181; return m.FSM_HALT(c); S47: m.FSM_TAKE(1); c = m.FSM_CHAR(); if (c == '#') goto S191; if (c == ' ') goto S185; if ('\n' <= c && c <= '\r') goto S38; if (c == '\t') goto S185; return m.FSM_HALT(c); S53: m.FSM_TAKE(57); c = m.FSM_CHAR(); if (c == '\\') goto S200; if ('\v' <= c) goto S195; if ('\n' <= c) return m.FSM_HALT(c); if (0 <= c && c <= '\t') goto S195; return m.FSM_HALT(c); S58: m.FSM_TAKE(5); c = m.FSM_CHAR(); if ('a' <= c && c <= 'z') goto S204; if (c == '_') goto S204; if ('A' <= c && c <= 'Z') goto S204; if ('0' <= c && c <= '9') goto S204; return m.FSM_HALT(c); S64: m.FSM_TAKE(16); c = m.FSM_CHAR(); if (c == '>') goto S243; if (c == '=') goto S239; if ('1' <= c && c <= '9') goto S210; if (c == '0') goto S224; if (c == '.') goto S222; if (c == '-') goto S241; return m.FSM_HALT(c); S72: m.FSM_TAKE(7); c = m.FSM_CHAR(); if (c == 'x') goto S252; if (c == 'u') goto S262; if (c == 'l') goto S256; if (c == 'X') goto S252; if (c == 'U') goto S262; if (c == 'L') goto S256; if ('0' <= c && c <= '7') goto S245; return m.FSM_HALT(c); S81: m.FSM_TAKE(7); c = m.FSM_CHAR(); if (c == 'u') goto S262; if (c == 'l') goto S256; if (c == 'U') goto S262; if (c == 'L') goto S256; if ('0' <= c && c <= '9') goto S266; return m.FSM_HALT(c); S88: m.FSM_TAKE(5); c = m.FSM_CHAR(); if ('a' <= c && c <= 'z') goto S204; if (c == '_') goto S204; if ('A' <= c && c <= 'Z') goto S204; if ('0' <= c && c <= '9') goto S204; if (c == '\'') goto S273; if (c == '"') goto S278; return m.FSM_HALT(c); S96: m.FSM_TAKE(57); c = m.FSM_CHAR(); if (c == '\\') goto S283; if (c == '\'') goto S286; if ('\v' <= c) goto S273; if ('\n' <= c) return m.FSM_HALT(c); if (0 <= c && c <= '\t') goto S273; return m.FSM_HALT(c); S102: m.FSM_TAKE(57); c = m.FSM_CHAR(); if (c == '\\') goto S288; if (c == '"') goto S290; if ('\v' <= c) goto S278; if ('\n' <= c) return m.FSM_HALT(c); if (0 <= c && c <= '\t') goto S278; return m.FSM_HALT(c); S108: m.FSM_TAKE(12); c = m.FSM_CHAR(); if (c == '=') goto S292; if ('1' <= c && c <= '9') goto S210; if (c == '0') goto S224; if (c == '.') goto S222; if (c == '+') goto S294; return m.FSM_HALT(c); S115: m.FSM_TAKE(18); c = m.FSM_CHAR(); if (c == '=') goto S296; return m.FSM_HALT(c); S118: m.FSM_TAKE(22); c = m.FSM_CHAR(); if (c == '=') goto S298; if (c == '<') goto S300; return m.FSM_HALT(c); S122: m.FSM_TAKE(26); c = m.FSM_CHAR(); if (c == '>') goto S305; if (c == '=') goto S303; return m.FSM_HALT(c); S126: m.FSM_TAKE(28); c = m.FSM_CHAR(); if (c == '=') goto S308; return m.FSM_HALT(c); S129: m.FSM_TAKE(29); return m.FSM_HALT(); S131: m.FSM_TAKE(30); return m.FSM_HALT(); S133: m.FSM_TAKE(32); c = m.FSM_CHAR(); if (c == '.') goto S310; return m.FSM_HALT(c); S136: m.FSM_TAKE(34); c = m.FSM_CHAR(); if (c == '=') goto S312; return m.FSM_HALT(c); S139: m.FSM_TAKE(35); return m.FSM_HALT(); S141: m.FSM_TAKE(37); c = m.FSM_CHAR(); if (c == '=') goto S314; return m.FSM_HALT(c); S144: m.FSM_TAKE(41); c = m.FSM_CHAR(); if (c == '=') goto S316; return m.FSM_HALT(c); S147: m.FSM_TAKE(44); c = m.FSM_CHAR(); if (c == '=') goto S318; if (c == '&') goto S320; return m.FSM_HALT(c); S151: m.FSM_TAKE(47); c = m.FSM_CHAR(); if (c == '|') goto S324; if (c == '=') goto S322; return m.FSM_HALT(c); S155: m.FSM_TAKE(48); return m.FSM_HALT(); S157: m.FSM_TAKE(49); return m.FSM_HALT(); S159: m.FSM_TAKE(50); return m.FSM_HALT(); S161: m.FSM_TAKE(51); return m.FSM_HALT(); S163: m.FSM_TAKE(52); return m.FSM_HALT(); S165: m.FSM_TAKE(53); return m.FSM_HALT(); S167: m.FSM_TAKE(55); c = m.FSM_CHAR(); if (c == ':') goto S326; return m.FSM_HALT(c); S170: m.FSM_TAKE(56); return m.FSM_HALT(); S172: m.FSM_TAKE(1); c = m.FSM_CHAR(); if (c == ' ') goto S38; if ('\t' <= c && c <= '\r') goto S38; return m.FSM_HALT(c); S176: m.FSM_TAKE(57); return m.FSM_HALT(); S178: c = m.FSM_CHAR(); if (c == '\\') goto S328; if (c == '\n') goto S331; if (0 <= c) goto S178; return m.FSM_HALT(c); S181: c = m.FSM_CHAR(); if (c == '*') goto S333; if (0 <= c) goto S181; return m.FSM_HALT(c); S183: m.FSM_TAKE(38); return m.FSM_HALT(); S185: m.FSM_TAKE(1); c = m.FSM_CHAR(); if (c == '#') goto S191; if (c == ' ') goto S185; if ('\n' <= c && c <= '\r') goto S38; if (c == '\t') goto S185; return m.FSM_HALT(c); S191: c = m.FSM_CHAR(); if (c == '\\') goto S200; if ('\v' <= c) goto S195; if ('\n' <= c) return m.FSM_HALT(c); if (0 <= c && c <= '\t') goto S195; return m.FSM_HALT(c); S195: c = m.FSM_CHAR(); if (m.FSM_META_BOL()) { m.FSM_TAKE(4, c); } if (c == '\\') goto S200; if ('\v' <= c) goto S195; if ('\n' <= c) return m.FSM_HALT(c); if (0 <= c && c <= '\t') goto S195; return m.FSM_HALT(c); S200: c = m.FSM_CHAR(); if (m.FSM_META_BOL()) { m.FSM_TAKE(4, c); } if (c == '\\') goto S200; if (c == '\r') goto S338; if (0 <= c) goto S195; return m.FSM_HALT(c); S204: m.FSM_TAKE(5); c = m.FSM_CHAR(); if ('a' <= c && c <= 'z') goto S204; if (c == '_') goto S204; if ('A' <= c && c <= 'Z') goto S204; if ('0' <= c && c <= '9') goto S204; return m.FSM_HALT(c); S210: m.FSM_TAKE(6); c = m.FSM_CHAR(); if (c == 'u') goto S262; if (c == 'l') goto S356; if (c == 'f') goto S354; if (c == 'e') goto S350; if (c == 'U') goto S262; if (c == 'L') goto S356; if (c == 'F') goto S354; if (c == 'E') goto S350; if ('0' <= c && c <= '9') goto S210; if (c == '.') goto S341; return m.FSM_HALT(c); S222: c = m.FSM_CHAR(); if ('0' <= c && c <= '9') goto S362; return m.FSM_HALT(c); S224: m.FSM_TAKE(6); c = m.FSM_CHAR(); if (c == 'x') goto S252; if (c == 'u') goto S262; if (c == 'l') goto S356; if (c == 'f') goto S354; if (c == 'e') goto S350; if (c == 'X') goto S252; if (c == 'U') goto S262; if (c == 'L') goto S356; if (c == 'F') goto S354; if (c == 'E') goto S350; if ('8' <= c && c <= '9') goto S371; if ('0' <= c && c <= '7') goto S381; if (c == '.') goto S341; return m.FSM_HALT(c); S239: m.FSM_TAKE(13); return m.FSM_HALT(); S241: m.FSM_TAKE(14); return m.FSM_HALT(); S243: m.FSM_TAKE(15); return m.FSM_HALT(); S245: m.FSM_TAKE(7); c = m.FSM_CHAR(); if (c == 'u') goto S262; if (c == 'l') goto S256; if (c == 'U') goto S262; if (c == 'L') goto S256; if ('0' <= c && c <= '7') goto S245; return m.FSM_HALT(c); S252: c = m.FSM_CHAR(); if ('a' <= c && c <= 'f') goto S394; if ('A' <= c && c <= 'F') goto S394; if ('0' <= c && c <= '9') goto S394; return m.FSM_HALT(c); S256: m.FSM_TAKE(7); c = m.FSM_CHAR(); if (c == 'u') goto S403; if (c == 'l') goto S405; if (c == 'U') goto S403; if (c == 'L') goto S405; return m.FSM_HALT(c); S262: m.FSM_TAKE(7); c = m.FSM_CHAR(); if (c == 'l') goto S409; if (c == 'L') goto S409; return m.FSM_HALT(c); S266: m.FSM_TAKE(7); c = m.FSM_CHAR(); if (c == 'u') goto S262; if (c == 'l') goto S256; if (c == 'U') goto S262; if (c == 'L') goto S256; if ('0' <= c && c <= '9') goto S266; return m.FSM_HALT(c); S273: c = m.FSM_CHAR(); if (c == '\\') goto S283; if (c == '\'') goto S286; if ('\v' <= c) goto S273; if ('\n' <= c) return m.FSM_HALT(c); if (0 <= c && c <= '\t') goto S273; return m.FSM_HALT(c); S278: c = m.FSM_CHAR(); if (c == '\\') goto S288; if (c == '"') goto S290; if ('\v' <= c) goto S278; if ('\n' <= c) return m.FSM_HALT(c); if (0 <= c && c <= '\t') goto S278; return m.FSM_HALT(c); S283: c = m.FSM_CHAR(); if ('\v' <= c) goto S273; if ('\n' <= c) return m.FSM_HALT(c); if (0 <= c && c <= '\t') goto S273; return m.FSM_HALT(c); S286: m.FSM_TAKE(8); return m.FSM_HALT(); S288: c = m.FSM_CHAR(); if (c == '\r') goto S413; if (0 <= c) goto S278; return m.FSM_HALT(c); S290: m.FSM_TAKE(9); return m.FSM_HALT(); S292: m.FSM_TAKE(10); return m.FSM_HALT(); S294: m.FSM_TAKE(11); return m.FSM_HALT(); S296: m.FSM_TAKE(17); return m.FSM_HALT(); S298: m.FSM_TAKE(19); return m.FSM_HALT(); S300: m.FSM_TAKE(21); c = m.FSM_CHAR(); if (c == '=') goto S416; return m.FSM_HALT(c); S303: m.FSM_TAKE(23); return m.FSM_HALT(); S305: m.FSM_TAKE(25); c = m.FSM_CHAR(); if (c == '=') goto S418; return m.FSM_HALT(c); S308: m.FSM_TAKE(27); return m.FSM_HALT(); S310: c = m.FSM_CHAR(); if (c == '.') goto S420; return m.FSM_HALT(c); S312: m.FSM_TAKE(33); return m.FSM_HALT(); S314: m.FSM_TAKE(36); return m.FSM_HALT(); S316: m.FSM_TAKE(40); return m.FSM_HALT(); S318: m.FSM_TAKE(42); return m.FSM_HALT(); S320: m.FSM_TAKE(43); return m.FSM_HALT(); S322: m.FSM_TAKE(45); return m.FSM_HALT(); S324: m.FSM_TAKE(46); return m.FSM_HALT(); S326: m.FSM_TAKE(54); return m.FSM_HALT(); S328: c = m.FSM_CHAR(); if (c == '\\') goto S328; if (c == '\n') goto S422; if (0 <= c) goto S178; return m.FSM_HALT(c); S331: m.FSM_TAKE(2); return m.FSM_HALT(); S333: c = m.FSM_CHAR(); if (c == '/') goto S428; if (c == '*') goto S426; if (0 <= c) goto S181; return m.FSM_HALT(c); S336: m.FSM_TAKE(4); return m.FSM_HALT(); S338: c = m.FSM_CHAR(); if (m.FSM_META_BOL()) { m.FSM_TAKE(4, c); } if (c == '\\') goto S200; if (0 <= c) goto S195; return m.FSM_HALT(c); S341: m.FSM_TAKE(6); c = m.FSM_CHAR(); if (c == 'l') goto S354; if (c == 'f') goto S354; if (c == 'e') goto S350; if (c == 'L') goto S354; if (c == 'F') goto S354; if (c == 'E') goto S350; if ('0' <= c && c <= '9') goto S362; return m.FSM_HALT(c); S350: c = m.FSM_CHAR(); if ('0' <= c && c <= '9') goto S432; if (c == '-') goto S430; if (c == '+') goto S430; return m.FSM_HALT(c); S354: m.FSM_TAKE(6); return m.FSM_HALT(); S356: m.FSM_TAKE(6); c = m.FSM_CHAR(); if (c == 'u') goto S403; if (c == 'l') goto S405; if (c == 'U') goto S403; if (c == 'L') goto S405; return m.FSM_HALT(c); S362: m.FSM_TAKE(6); c = m.FSM_CHAR(); if (c == 'l') goto S354; if (c == 'f') goto S354; if (c == 'e') goto S350; if (c == 'L') goto S354; if (c == 'F') goto S354; if (c == 'E') goto S350; if ('0' <= c && c <= '9') goto S362; return m.FSM_HALT(c); S371: m.FSM_TAKE(6); c = m.FSM_CHAR(); if (c == 'l') goto S354; if (c == 'f') goto S354; if (c == 'e') goto S350; if (c == 'L') goto S354; if (c == 'F') goto S354; if (c == 'E') goto S350; if ('0' <= c && c <= '9') goto S371; if (c == '.') goto S341; return m.FSM_HALT(c); S381: m.FSM_TAKE(6); c = m.FSM_CHAR(); if (c == 'u') goto S262; if (c == 'l') goto S356; if (c == 'f') goto S354; if (c == 'e') goto S350; if (c == 'U') goto S262; if (c == 'L') goto S356; if (c == 'F') goto S354; if (c == 'E') goto S350; if ('8' <= c && c <= '9') goto S371; if ('0' <= c && c <= '7') goto S381; if (c == '.') goto S341; return m.FSM_HALT(c); S394: m.FSM_TAKE(7); c = m.FSM_CHAR(); if (c == 'u') goto S262; if (c == 'l') goto S256; if ('a' <= c && c <= 'f') goto S394; if (c == 'U') goto S262; if (c == 'L') goto S256; if ('A' <= c && c <= 'F') goto S394; if ('0' <= c && c <= '9') goto S394; return m.FSM_HALT(c); S403: m.FSM_TAKE(7); return m.FSM_HALT(); S405: m.FSM_TAKE(7); c = m.FSM_CHAR(); if (c == 'u') goto S403; if (c == 'U') goto S403; return m.FSM_HALT(c); S409: m.FSM_TAKE(7); c = m.FSM_CHAR(); if (c == 'l') goto S403; if (c == 'L') goto S403; return m.FSM_HALT(c); S413: c = m.FSM_CHAR(); if (c == '\\') goto S288; if (c == '"') goto S290; if (0 <= c) goto S278; return m.FSM_HALT(c); S416: m.FSM_TAKE(20); return m.FSM_HALT(); S418: m.FSM_TAKE(24); return m.FSM_HALT(); S420: m.FSM_TAKE(31); return m.FSM_HALT(); S422: m.FSM_TAKE(2); c = m.FSM_CHAR(); if (c == '\\') goto S328; if (c == '\n') goto S331; if (0 <= c) goto S178; return m.FSM_HALT(c); S426: c = m.FSM_CHAR(); if (c == '*') goto S439; if (0 <= c) goto S181; return m.FSM_HALT(c); S428: m.FSM_TAKE(3); return m.FSM_HALT(); S430: c = m.FSM_CHAR(); if ('0' <= c && c <= '9') goto S432; return m.FSM_HALT(c); S432: m.FSM_TAKE(6); c = m.FSM_CHAR(); if (c == 'l') goto S354; if (c == 'f') goto S354; if (c == 'L') goto S354; if (c == 'F') goto S354; if ('0' <= c && c <= '9') goto S432; return m.FSM_HALT(c); S439: c = m.FSM_CHAR(); if (c == '/') goto S442; if (c == '*') goto S439; if (0 <= c) goto S181; return m.FSM_HALT(c); S442: m.FSM_TAKE(3); c = m.FSM_CHAR(); if (c == '*') goto S333; if (0 <= c) goto S181; return m.FSM_HALT(c); }