/* Generated by re2c 0.10.6 on Tue Oct 03 17:06:25 2006 */
#line 1 "strict_cpp.re"
/*=============================================================================
    Boost.Wave: A Standard compliant C++ preprocessor library

    Copyright (c) 2001 Daniel C. Nuffer
    Copyright (c) 2001-2007 Hartmut Kaiser. 
    Distributed under the Boost Software License, Version 1.0. (See accompanying 
    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

    This is a strict lexer conforming to the Standard as close as possible.
    It does not allow the '$' to be part of identifiers. If you need the '$'
    character in identifiers please include the lexer definition provided
    in the cpp.re file.
    
    TODO: 
        handle errors better.
=============================================================================*/

#line 40 "strict_cpp.re"


{
    static unsigned char yybm[] = {
        /* table 1 .. 8: 0 */
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,  58,  32,  58,  58,  64,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
         58,  58,  50,  58,  58,  58,  58,  56, 
         58,  58, 154,  58,  58,  58,  58,  58, 
         62,  62,  62,  62,  62,  62,  62,  62, 
         62,  62,  58,  58,  58,  58,  42,  56, 
         58,  62,  62,  62,  62,  62,  62,  62, 
         62,  62,  62,  62,  62,  62,  62,  62, 
         62,  62,  62,  62,  62,  62,  62,  62, 
         62,  62,  62,  58,  57,  58,  58,  62, 
         58,  62,  62,  62,  62,  62,  62,  62, 
         62,  62,  62,  62,  62,  62,  62,  62, 
         62,  62,  62,  62,  62,  62,  62,  62, 
         62,  62,  62,  58,  58,  58,  58,  58, 
         58,  58,  58,  58,  58,  58,  58,  58, 
         58,  58,  58,  58,  58,  58,  58,  58, 
         58,  58,  58,  58,  58,  58,  58,  58, 
         58,  58,  58,  58,  58,  58,  58,  58, 
         58,  58,  58,  58,  58,  58,  58,  58, 
         58,  58,  58,  58,  58,  58,  58,  58, 
         58,  58,  58,  58,  58,  58,  58,  58, 
         58,  58,  58,  58,  58,  58,  58,  58, 
         58,  58,  58,  58,  58,  58,  58,  58, 
         58,  58,  58,  58,  58,  58,  58,  58, 
         58,  58,  58,  58,  58,  58,  58,  58, 
         58,  58,  58,  58,  58,  58,  58,  58, 
         58,  58,  58,  58,  58,  58,  58,  58, 
         58,  58,  58,  58,  58,  58,  58,  58, 
         58,  58,  58,  58,  58,  58,  58,  58, 
         58,  58,  58,  58,  58,  58,  58,  58, 
        /* table 9 .. 12: 256 */
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,  48,   0,  48,  48,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
         48,  32,   0,  32,  32,  32,  32,  32, 
         32,  32,  32,  32,  32,  32,  32,  32, 
         96,  96,  96,  96,  96,  96,  96,  96, 
         96,  96,  32,  32,  32,  32,  32, 128, 
         32,  96,  96,  96,  96,  96,  96,  32, 
         32,  32,  32,  32,  32,  32,  32,  32, 
         32,  32,  32,  32,  32,  32,  32,  32, 
         32,  32,  32,  32,   0,  32,  32,  32, 
         32,  96,  96,  96,  96,  96,  96,  32, 
         32,  32,  32,  32,  32,  32,  32,  32, 
         32,  32,  32,  32,  32,  32,  32,  32, 
         32,  32,  32,  32,  32,  32,  32,  32, 
         32,  32,  32,  32,  32,  32,  32,  32, 
         32,  32,  32,  32,  32,  32,  32,  32, 
         32,  32,  32,  32,  32,  32,  32,  32, 
         32,  32,  32,  32,  32,  32,  32,  32, 
         32,  32,  32,  32,  32,  32,  32,  32, 
         32,  32,  32,  32,  32,  32,  32,  32, 
         32,  32,  32,  32,  32,  32,  32,  32, 
         32,  32,  32,  32,  32,  32,  32,  32, 
         32,  32,  32,  32,  32,  32,  32,  32, 
         32,  32,  32,  32,  32,  32,  32,  32, 
         32,  32,  32,  32,  32,  32,  32,  32, 
         32,  32,  32,  32,  32,  32,  32,  32, 
         32,  32,  32,  32,  32,  32,  32,  32, 
         32,  32,  32,  32,  32,  32,  32,  32, 
         32,  32,  32,  32,  32,  32,  32,  32, 
         32,  32,  32,  32,  32,  32,  32,  32, 
    };

#line 94 "strict_cpp_re.inc"
    {
        YYCTYPE yych;
        unsigned int yyaccept = 0;

        if((YYLIMIT - YYCURSOR) < 17) YYFILL(17);
        yych = *YYCURSOR;
        switch(yych) {
        case 0x00:    goto yy88;
        case 0x01:
        case 0x02:
        case 0x03:
        case 0x04:
        case 0x05:
        case 0x06:
        case 0x07:
        case 0x08:
        case 0x0E:
        case 0x0F:
        case 0x10:
        case 0x11:
        case 0x12:
        case 0x13:
        case 0x14:
        case 0x15:
        case 0x16:
        case 0x17:
        case 0x18:
        case 0x19:
        case 0x1A:
        case 0x1B:
        case 0x1C:
        case 0x1D:
        case 0x1E:
        case 0x1F:    goto yy91;
        case 0x09:
        case 0x0B:
        case 0x0C:    goto yy82;
        case 0x0A:    goto yy85;
        case 0x0D:    goto yy87;
        case ' ':    goto yy84;
        case '!':    goto yy68;
        case '"':    goto yy81;
        case '#':    goto yy45;
        case '%':    goto yy37;
        case '&':    goto yy62;
        case '\'':    goto yy80;
        case '(':    goto yy47;
        case ')':    goto yy49;
        case '*':    goto yy57;
        case '+':    goto yy53;
        case ',':    goto yy74;
        case '-':    goto yy55;
        case '.':    goto yy4;
        case '/':    goto yy2;
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':    goto yy6;
        case ':':    goto yy43;
        case ';':    goto yy51;
        case '<':    goto yy33;
        case '=':    goto yy70;
        case '>':    goto yy72;
        case '?':    goto yy31;
        case 'A':
        case 'B':
        case 'C':
        case 'D':
        case 'E':
        case 'F':
        case 'G':
        case 'H':
        case 'I':
        case 'J':
        case 'K':
        case 'M':
        case 'N':
        case 'O':
        case 'P':
        case 'Q':
        case 'R':
        case 'S':
        case 'T':
        case 'U':
        case 'V':
        case 'W':
        case 'X':
        case 'Y':
        case 'Z':
        case 'h':
        case 'j':
        case 'k':
        case 'q':
        case 'y':
        case 'z':    goto yy76;
        case 'L':    goto yy77;
        case '[':    goto yy39;
        case '\\':    goto yy78;
        case ']':    goto yy41;
        case '^':    goto yy59;
        case '_':    goto yy28;
        case 'a':    goto yy8;
        case 'b':    goto yy10;
        case 'c':    goto yy11;
        case 'd':    goto yy12;
        case 'e':    goto yy13;
        case 'f':    goto yy14;
        case 'g':    goto yy15;
        case 'i':    goto yy16;
        case 'l':    goto yy17;
        case 'm':    goto yy18;
        case 'n':    goto yy19;
        case 'o':    goto yy20;
        case 'p':    goto yy21;
        case 'r':    goto yy22;
        case 's':    goto yy23;
        case 't':    goto yy24;
        case 'u':    goto yy25;
        case 'v':    goto yy26;
        case 'w':    goto yy27;
        case 'x':    goto yy61;
        case '{':    goto yy29;
        case '|':    goto yy64;
        case '}':    goto yy35;
        case '~':    goto yy66;
        default:    goto yy90;
        }
yy2:
        ++YYCURSOR;
        if((yych = *YYCURSOR) <= '.') {
            if(yych == '*') goto yy916;
        } else {
            if(yych <= '/') goto yy914;
            if(yych == '=') goto yy912;
        }
#line 177 "strict_cpp.re"
        { BOOST_WAVE_RET(T_DIVIDE); }
#line 238 "strict_cpp_re.inc"
yy4:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych <= '-') {
            if(yych == '*') goto yy906;
        } else {
            if(yych <= '.') goto yy908;
            if(yych <= '/') goto yy5;
            if(yych <= '9') goto yy909;
        }
yy5:
#line 163 "strict_cpp.re"
        { BOOST_WAVE_RET(T_DOT); }
#line 252 "strict_cpp_re.inc"
yy6:
        ++YYCURSOR;
yy7:
#line 45 "strict_cpp.re"
        { goto pp_number; }
#line 258 "strict_cpp_re.inc"
yy8:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych <= 'r') {
            if(yych == 'n') goto yy892;
            goto yy195;
        } else {
            if(yych <= 's') goto yy893;
            if(yych == 'u') goto yy894;
            goto yy195;
        }
yy9:
#line 242 "strict_cpp.re"
        { BOOST_WAVE_RET(T_IDENTIFIER); }
#line 273 "strict_cpp_re.inc"
yy10:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych <= 'n') {
            if(yych == 'i') goto yy874;
            goto yy195;
        } else {
            if(yych <= 'o') goto yy875;
            if(yych == 'r') goto yy876;
            goto yy195;
        }
yy11:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        switch(yych) {
        case 'a':    goto yy836;
        case 'h':    goto yy837;
        case 'l':    goto yy838;
        case 'o':    goto yy839;
        default:    goto yy195;
        }
yy12:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych <= 'n') {
            if(yych == 'e') goto yy805;
            goto yy195;
        } else {
            if(yych <= 'o') goto yy806;
            if(yych == 'y') goto yy808;
            goto yy195;
        }
yy13:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych <= 'm') {
            if(yych == 'l') goto yy780;
            goto yy195;
        } else {
            if(yych <= 'n') goto yy781;
            if(yych == 'x') goto yy782;
            goto yy195;
        }
yy14:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        switch(yych) {
        case 'a':    goto yy761;
        case 'l':    goto yy762;
        case 'o':    goto yy763;
        case 'r':    goto yy764;
        default:    goto yy195;
        }
yy15:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'o') goto yy757;
        goto yy195;
yy16:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'f') goto yy747;
        if(yych == 'n') goto yy749;
        goto yy195;
yy17:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'o') goto yy743;
        goto yy195;
yy18:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'u') goto yy736;
        goto yy195;
yy19:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych <= 'd') {
            if(yych == 'a') goto yy717;
            goto yy195;
        } else {
            if(yych <= 'e') goto yy718;
            if(yych == 'o') goto yy719;
            goto yy195;
        }
yy20:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'p') goto yy703;
        if(yych == 'r') goto yy704;
        goto yy195;
yy21:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'r') goto yy682;
        if(yych == 'u') goto yy683;
        goto yy195;
yy22:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'e') goto yy654;
        goto yy195;
yy23:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych <= 's') {
            if(yych <= 'g') goto yy195;
            if(yych <= 'h') goto yy615;
            if(yych <= 'i') goto yy616;
            goto yy195;
        } else {
            if(yych <= 't') goto yy617;
            if(yych == 'w') goto yy618;
            goto yy195;
        }
yy24:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych <= 'h') {
            if(yych == 'e') goto yy578;
            if(yych <= 'g') goto yy195;
            goto yy579;
        } else {
            if(yych <= 'r') {
                if(yych <= 'q') goto yy195;
                goto yy580;
            } else {
                if(yych == 'y') goto yy581;
                goto yy195;
            }
        }
yy25:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'n') goto yy561;
        if(yych == 's') goto yy562;
        goto yy195;
yy26:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'i') goto yy543;
        if(yych == 'o') goto yy544;
        goto yy195;
yy27:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'c') goto yy531;
        if(yych == 'h') goto yy532;
        goto yy195;
yy28:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        switch(yych) {
        case '_':    goto yy442;
        case 'a':    goto yy443;
        case 'b':    goto yy444;
        case 'c':    goto yy445;
        case 'd':    goto yy446;
        case 'f':    goto yy447;
        case 'i':    goto yy448;
        case 's':    goto yy449;
        default:    goto yy195;
        }
yy29:
        ++YYCURSOR;
#line 127 "strict_cpp.re"
        { BOOST_WAVE_RET(T_LEFTBRACE); }
#line 441 "strict_cpp_re.inc"
yy31:
        yyaccept = 2;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == '?') goto yy407;
yy32:
#line 152 "strict_cpp.re"
        { BOOST_WAVE_RET(T_QUESTION_MARK); }
#line 449 "strict_cpp_re.inc"
yy33:
        ++YYCURSOR;
        if((yych = *YYCURSOR) <= ':') {
            if(yych == '%') goto yy403;
            if(yych >= ':') goto yy401;
        } else {
            if(yych <= ';') goto yy34;
            if(yych <= '<') goto yy399;
            if(yych <= '=') goto yy397;
        }
yy34:
#line 193 "strict_cpp.re"
        { BOOST_WAVE_RET(T_LESS); }
#line 463 "strict_cpp_re.inc"
yy35:
        ++YYCURSOR;
#line 130 "strict_cpp.re"
        { BOOST_WAVE_RET(T_RIGHTBRACE); }
#line 468 "strict_cpp_re.inc"
yy37:
        ++YYCURSOR;
        if((yych = *YYCURSOR) <= '<') {
            if(yych == ':') goto yy388;
        } else {
            if(yych <= '=') goto yy390;
            if(yych <= '>') goto yy392;
        }
#line 178 "strict_cpp.re"
        { BOOST_WAVE_RET(T_PERCENT); }
#line 479 "strict_cpp_re.inc"
yy39:
        ++YYCURSOR;
#line 133 "strict_cpp.re"
        { BOOST_WAVE_RET(T_LEFTBRACKET); }
#line 484 "strict_cpp_re.inc"
yy41:
        ++YYCURSOR;
#line 136 "strict_cpp.re"
        { BOOST_WAVE_RET(T_RIGHTBRACKET); }
#line 489 "strict_cpp_re.inc"
yy43:
        ++YYCURSOR;
        if((yych = *YYCURSOR) == ':') goto yy384;
        if(yych == '>') goto yy386;
#line 150 "strict_cpp.re"
        { BOOST_WAVE_RET(T_COLON); }
#line 496 "strict_cpp_re.inc"
yy45:
        yyaccept = 3;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych <= 'c') {
            if(yych <= ' ') {
                if(yych <= 0x0A) {
                    if(yych == 0x09) goto yy261;
                } else {
                    if(yych <= 0x0C) goto yy261;
                    if(yych >= ' ') goto yy261;
                }
            } else {
                if(yych <= '.') {
                    if(yych == '#') goto yy272;
                } else {
                    if(yych <= '/') goto yy261;
                    if(yych == '?') goto yy271;
                }
            }
        } else {
            if(yych <= 'p') {
                if(yych <= 'i') {
                    if(yych <= 'e') goto yy261;
                    if(yych >= 'i') goto yy261;
                } else {
                    if(yych == 'l') goto yy261;
                    if(yych >= 'p') goto yy261;
                }
            } else {
                if(yych <= 't') {
                    if(yych == 'r') goto yy261;
                } else {
                    if(yych == 'v') goto yy46;
                    if(yych <= 'w') goto yy261;
                }
            }
        }
yy46:
#line 139 "strict_cpp.re"
        { BOOST_WAVE_RET(T_POUND); }
#line 537 "strict_cpp_re.inc"
yy47:
        ++YYCURSOR;
#line 147 "strict_cpp.re"
        { BOOST_WAVE_RET(T_LEFTPAREN); }
#line 542 "strict_cpp_re.inc"
yy49:
        ++YYCURSOR;
#line 148 "strict_cpp.re"
        { BOOST_WAVE_RET(T_RIGHTPAREN); }
#line 547 "strict_cpp_re.inc"
yy51:
        ++YYCURSOR;
#line 149 "strict_cpp.re"
        { BOOST_WAVE_RET(T_SEMICOLON); }
#line 552 "strict_cpp_re.inc"
yy53:
        ++YYCURSOR;
        if((yych = *YYCURSOR) == '+') goto yy256;
        if(yych == '=') goto yy258;
#line 174 "strict_cpp.re"
        { BOOST_WAVE_RET(T_PLUS); }
#line 559 "strict_cpp_re.inc"
yy55:
        ++YYCURSOR;
        if((yych = *YYCURSOR) <= '<') {
            if(yych == '-') goto yy250;
        } else {
            if(yych <= '=') goto yy252;
            if(yych <= '>') goto yy248;
        }
#line 175 "strict_cpp.re"
        { BOOST_WAVE_RET(T_MINUS); }
#line 570 "strict_cpp_re.inc"
yy57:
        ++YYCURSOR;
        if((yych = *YYCURSOR) == '=') goto yy246;
#line 176 "strict_cpp.re"
        { BOOST_WAVE_RET(T_STAR); }
#line 576 "strict_cpp_re.inc"
yy59:
        ++YYCURSOR;
        if((yych = *YYCURSOR) == '=') goto yy244;
#line 179 "strict_cpp.re"
        { BOOST_WAVE_RET(T_XOR); }
#line 582 "strict_cpp_re.inc"
yy61:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'o') goto yy237;
        goto yy195;
yy62:
        ++YYCURSOR;
        if((yych = *YYCURSOR) == '&') goto yy233;
        if(yych == '=') goto yy235;
#line 182 "strict_cpp.re"
        { BOOST_WAVE_RET(T_AND); }
#line 594 "strict_cpp_re.inc"
yy64:
        yyaccept = 4;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych <= '>') {
            if(yych == '=') goto yy228;
        } else {
            if(yych <= '?') goto yy225;
            if(yych == '|') goto yy226;
        }
yy65:
#line 184 "strict_cpp.re"
        { BOOST_WAVE_RET(T_OR); }
#line 607 "strict_cpp_re.inc"
yy66:
        ++YYCURSOR;
#line 187 "strict_cpp.re"
        { BOOST_WAVE_RET(T_COMPL); }
#line 612 "strict_cpp_re.inc"
yy68:
        ++YYCURSOR;
        if((yych = *YYCURSOR) == '=') goto yy223;
#line 190 "strict_cpp.re"
        { BOOST_WAVE_RET(T_NOT); }
#line 618 "strict_cpp_re.inc"
yy70:
        ++YYCURSOR;
        if((yych = *YYCURSOR) == '=') goto yy221;
#line 192 "strict_cpp.re"
        { BOOST_WAVE_RET(T_ASSIGN); }
#line 624 "strict_cpp_re.inc"
yy72:
        ++YYCURSOR;
        if((yych = *YYCURSOR) <= '<') goto yy73;
        if(yych <= '=') goto yy215;
        if(yych <= '>') goto yy217;
yy73:
#line 194 "strict_cpp.re"
        { BOOST_WAVE_RET(T_GREATER); }
#line 633 "strict_cpp_re.inc"
yy74:
        ++YYCURSOR;
#line 226 "strict_cpp.re"
        { BOOST_WAVE_RET(T_COMMA); }
#line 638 "strict_cpp_re.inc"
yy76:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        goto yy195;
yy77:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych <= '\'') {
            if(yych == '"') goto yy96;
            if(yych <= '&') goto yy9;
            goto yy214;
        } else {
            if(yych <= '?') {
                if(yych <= '>') goto yy9;
                goto yy197;
            } else {
                if(yych == '\\') goto yy196;
                goto yy9;
            }
        }
yy78:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'U') goto yy186;
        if(yych == 'u') goto yy185;
yy79:
#line 297 "strict_cpp.re"
        { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
#line 670 "strict_cpp_re.inc"
yy80:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych <= 0x0C) {
            if(yych == 0x09) goto yy142;
            if(yych <= 0x0A) goto yy79;
            goto yy142;
        } else {
            if(yych <= 0x1F) goto yy79;
            if(yych == '\'') goto yy79;
            goto yy142;
        }
yy81:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych <= 0x0A) {
            if(yych == 0x09) goto yy97;
            goto yy79;
        } else {
            if(yych <= 0x0C) goto yy97;
            if(yych <= 0x1F) goto yy79;
            goto yy97;
        }
yy82:
        ++YYCURSOR;
        yych = *YYCURSOR;
        goto yy95;
yy83:
#line 278 "strict_cpp.re"
        { BOOST_WAVE_RET(T_SPACE); }
#line 701 "strict_cpp_re.inc"
yy84:
        yych = *++YYCURSOR;
        goto yy95;
yy85:
        ++YYCURSOR;
yy86:
#line 281 "strict_cpp.re"
        {
        s->line++;
        cursor.column = 1;
        BOOST_WAVE_RET(T_NEWLINE);
    }
#line 714 "strict_cpp_re.inc"
yy87:
        yych = *++YYCURSOR;
        if(yych == 0x0A) goto yy93;
        goto yy86;
yy88:
        ++YYCURSOR;
#line 288 "strict_cpp.re"
        {
        if(cursor != s->eof) 
        {
            BOOST_WAVE_UPDATE_CURSOR();     // adjust the input cursor
            (*s->error_proc)(s, "invalid character '\\000' in input stream");
        }
        BOOST_WAVE_RET(T_EOF);
    }
#line 730 "strict_cpp_re.inc"
yy90:
        yych = *++YYCURSOR;
        goto yy79;
yy91:
        ++YYCURSOR;
#line 300 "strict_cpp.re"
        {
        // flag the error
        BOOST_WAVE_UPDATE_CURSOR();     // adjust the input cursor
        (*s->error_proc)(s, "invalid character '\\%03o' in input stream", 
            *--YYCURSOR);
    }
#line 743 "strict_cpp_re.inc"
yy93:
        yych = *++YYCURSOR;
        goto yy86;
yy94:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
yy95:
        if(yybm[256+yych] & 16) {
            goto yy94;
        }
        goto yy83;
yy96:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
yy97:
        if(yybm[256+yych] & 32) {
            goto yy96;
        }
        if(yych <= '!') goto yy98;
        if(yych <= '"') goto yy101;
        if(yych <= '[') goto yy99;
        goto yy100;
yy98:
        YYCURSOR = YYMARKER;
        if(yyaccept <= 51) {
            if(yyaccept <= 25) {
                if(yyaccept <= 12) {
                    if(yyaccept <= 6) {
                        if(yyaccept <= 3) {
                            if(yyaccept <= 1) {
                                if(yyaccept <= 0) {
                                    goto yy5;
                                } else {
                                    goto yy9;
                                }
                            } else {
                                if(yyaccept <= 2) {
                                    goto yy32;
                                } else {
                                    goto yy46;
                                }
                            }
                        } else {
                            if(yyaccept <= 5) {
                                if(yyaccept <= 4) {
                                    goto yy65;
                                } else {
                                    goto yy79;
                                }
                            } else {
                                goto yy102;
                            }
                        }
                    } else {
                        if(yyaccept <= 9) {
                            if(yyaccept <= 8) {
                                if(yyaccept <= 7) {
                                    goto yy152;
                                } else {
                                    goto yy239;
                                }
                            } else {
                                goto yy243;
                            }
                        } else {
                            if(yyaccept <= 11) {
                                if(yyaccept <= 10) {
                                    goto yy279;
                                } else {
                                    goto yy294;
                                }
                            } else {
                                goto yy389;
                            }
                        }
                    }
                } else {
                    if(yyaccept <= 19) {
                        if(yyaccept <= 16) {
                            if(yyaccept <= 14) {
                                if(yyaccept <= 13) {
                                    goto yy417;
                                } else {
                                    goto yy421;
                                }
                            } else {
                                if(yyaccept <= 15) {
                                    goto yy425;
                                } else {
                                    goto yy456;
                                }
                            }
                        } else {
                            if(yyaccept <= 18) {
                                if(yyaccept <= 17) {
                                    goto yy462;
                                } else {
                                    goto yy470;
                                }
                            } else {
                                goto yy478;
                            }
                        }
                    } else {
                        if(yyaccept <= 22) {
                            if(yyaccept <= 21) {
                                if(yyaccept <= 20) {
                                    goto yy483;
                                } else {
                                    goto yy488;
                                }
                            } else {
                                goto yy491;
                            }
                        } else {
                            if(yyaccept <= 24) {
                                if(yyaccept <= 23) {
                                    goto yy501;
                                } else {
                                    goto yy507;
                                }
                            } else {
                                goto yy510;
                            }
                        }
                    }
                }
            } else {
                if(yyaccept <= 38) {
                    if(yyaccept <= 32) {
                        if(yyaccept <= 29) {
                            if(yyaccept <= 27) {
                                if(yyaccept <= 26) {
                                    goto yy517;
                                } else {
                                    goto yy524;
                                }
                            } else {
                                if(yyaccept <= 28) {
                                    goto yy526;
                                } else {
                                    goto yy528;
                                }
                            }
                        } else {
                            if(yyaccept <= 31) {
                                if(yyaccept <= 30) {
                                    goto yy530;
                                } else {
                                    goto yy536;
                                }
                            } else {
                                goto yy542;
                            }
                        }
                    } else {
                        if(yyaccept <= 35) {
                            if(yyaccept <= 34) {
                                if(yyaccept <= 33) {
                                    goto yy552;
                                } else {
                                    goto yy554;
                                }
                            } else {
                                goto yy560;
                            }
                        } else {
                            if(yyaccept <= 37) {
                                if(yyaccept <= 36) {
                                    goto yy566;
                                } else {
                                    goto yy574;
                                }
                            } else {
                                goto yy577;
                            }
                        }
                    }
                } else {
                    if(yyaccept <= 45) {
                        if(yyaccept <= 42) {
                            if(yyaccept <= 40) {
                                if(yyaccept <= 39) {
                                    goto yy590;
                                } else {
                                    goto yy592;
                                }
                            } else {
                                if(yyaccept <= 41) {
                                    goto yy595;
                                } else {
                                    goto yy598;
                                }
                            }
                        } else {
                            if(yyaccept <= 44) {
                                if(yyaccept <= 43) {
                                    goto yy600;
                                } else {
                                    goto yy605;
                                }
                            } else {
                                goto yy607;
                            }
                        }
                    } else {
                        if(yyaccept <= 48) {
                            if(yyaccept <= 47) {
                                if(yyaccept <= 46) {
                                    goto yy614;
                                } else {
                                    goto yy623;
                                }
                            } else {
                                goto yy629;
                            }
                        } else {
                            if(yyaccept <= 50) {
                                if(yyaccept <= 49) {
                                    goto yy633;
                                } else {
                                    goto yy639;
                                }
                            } else {
                                goto yy645;
                            }
                        }
                    }
                }
            }
        } else {
            if(yyaccept <= 77) {
                if(yyaccept <= 64) {
                    if(yyaccept <= 58) {
                        if(yyaccept <= 55) {
                            if(yyaccept <= 53) {
                                if(yyaccept <= 52) {
                                    goto yy649;
                                } else {
                                    goto yy653;
                                }
                            } else {
                                if(yyaccept <= 54) {
                                    goto yy661;
                                } else {
                                    goto yy675;
                                }
                            }
                        } else {
                            if(yyaccept <= 57) {
                                if(yyaccept <= 56) {
                                    goto yy681;
                                } else {
                                    goto yy688;
                                }
                            } else {
                                goto yy697;
                            }
                        }
                    } else {
                        if(yyaccept <= 61) {
                            if(yyaccept <= 60) {
                                if(yyaccept <= 59) {
                                    goto yy702;
                                } else {
                                    goto yy705;
                                }
                            } else {
                                goto yy709;
                            }
                        } else {
                            if(yyaccept <= 63) {
                                if(yyaccept <= 62) {
                                    goto yy716;
                                } else {
                                    goto yy721;
                                }
                            } else {
                                goto yy725;
                            }
                        }
                    }
                } else {
                    if(yyaccept <= 71) {
                        if(yyaccept <= 68) {
                            if(yyaccept <= 66) {
                                if(yyaccept <= 65) {
                                    goto yy727;
                                } else {
                                    goto yy735;
                                }
                            } else {
                                if(yyaccept <= 67) {
                                    goto yy742;
                                } else {
                                    goto yy746;
                                }
                            }
                        } else {
                            if(yyaccept <= 70) {
                                if(yyaccept <= 69) {
                                    goto yy748;
                                } else {
                                    goto yy752;
                                }
                            } else {
                                goto yy756;
                            }
                        }
                    } else {
                        if(yyaccept <= 74) {
                            if(yyaccept <= 73) {
                                if(yyaccept <= 72) {
                                    goto yy760;
                                } else {
                                    goto yy769;
                                }
                            } else {
                                goto yy771;
                            }
                        } else {
                            if(yyaccept <= 76) {
                                if(yyaccept <= 75) {
                                    goto yy775;
                                } else {
                                    goto yy779;
                                }
                            } else {
                                goto yy788;
                            }
                        }
                    }
                }
            } else {
                if(yyaccept <= 90) {
                    if(yyaccept <= 84) {
                        if(yyaccept <= 81) {
                            if(yyaccept <= 79) {
                                if(yyaccept <= 78) {
                                    goto yy793;
                                } else {
                                    goto yy798;
                                }
                            } else {
                                if(yyaccept <= 80) {
                                    goto yy801;
                                } else {
                                    goto yy804;
                                }
                            }
                        } else {
                            if(yyaccept <= 83) {
                                if(yyaccept <= 82) {
                                    goto yy807;
                                } else {
                                    goto yy819;
                                }
                            } else {
                                goto yy824;
                            }
                        }
                    } else {
                        if(yyaccept <= 87) {
                            if(yyaccept <= 86) {
                                if(yyaccept <= 85) {
                                    goto yy830;
                                } else {
                                    goto yy835;
                                }
                            } else {
                                goto yy844;
                            }
                        } else {
                            if(yyaccept <= 89) {
                                if(yyaccept <= 88) {
                                    goto yy851;
                                } else {
                                    goto yy853;
                                }
                            } else {
                                goto yy859;
                            }
                        }
                    }
                } else {
                    if(yyaccept <= 96) {
                        if(yyaccept <= 93) {
                            if(yyaccept <= 92) {
                                if(yyaccept <= 91) {
                                    goto yy863;
                                } else {
                                    goto yy866;
                                }
                            } else {
                                goto yy871;
                            }
                        } else {
                            if(yyaccept <= 95) {
                                if(yyaccept <= 94) {
                                    goto yy873;
                                } else {
                                    goto yy880;
                                }
                            } else {
                                goto yy883;
                            }
                        }
                    } else {
                        if(yyaccept <= 99) {
                            if(yyaccept <= 98) {
                                if(yyaccept <= 97) {
                                    goto yy888;
                                } else {
                                    goto yy891;
                                }
                            } else {
                                goto yy897;
                            }
                        } else {
                            if(yyaccept <= 101) {
                                if(yyaccept <= 100) {
                                    goto yy899;
                                } else {
                                    goto yy901;
                                }
                            } else {
                                goto yy905;
                            }
                        }
                    }
                }
            }
        }
yy99:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yybm[256+yych] & 32) {
            goto yy96;
        }
        if(yych <= '!') goto yy98;
        if(yych <= '"') goto yy101;
        if(yych <= '[') goto yy112;
yy100:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '`') {
            if(yych <= '7') {
                if(yych <= '&') {
                    if(yych == '"') goto yy96;
                    goto yy98;
                } else {
                    if(yych <= '\'') goto yy96;
                    if(yych <= '/') goto yy98;
                    goto yy107;
                }
            } else {
                if(yych <= 'T') {
                    if(yych == '?') goto yy105;
                    goto yy98;
                } else {
                    if(yych <= 'U') goto yy104;
                    if(yych == '\\') goto yy96;
                    goto yy98;
                }
            }
        } else {
            if(yych <= 'r') {
                if(yych <= 'f') {
                    if(yych <= 'b') goto yy96;
                    if(yych <= 'e') goto yy98;
                    goto yy96;
                } else {
                    if(yych == 'n') goto yy96;
                    if(yych <= 'q') goto yy98;
                    goto yy96;
                }
            } else {
                if(yych <= 'u') {
                    if(yych <= 's') goto yy98;
                    if(yych <= 't') goto yy96;
                    goto yy103;
                } else {
                    if(yych <= 'v') goto yy96;
                    if(yych == 'x') goto yy106;
                    goto yy98;
                }
            }
        }
yy101:
        ++YYCURSOR;
yy102:
#line 248 "strict_cpp.re"
        { BOOST_WAVE_RET(T_STRINGLIT); }
#line 1241 "strict_cpp_re.inc"
yy103:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych <= '9') goto yy138;
            goto yy98;
        } else {
            if(yych <= 'F') goto yy138;
            if(yych <= '`') goto yy98;
            if(yych <= 'f') goto yy138;
            goto yy98;
        }
yy104:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych <= '9') goto yy131;
            goto yy98;
        } else {
            if(yych <= 'F') goto yy131;
            if(yych <= '`') goto yy98;
            if(yych <= 'f') goto yy131;
            goto yy98;
        }
yy105:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yybm[256+yych] & 32) {
            goto yy96;
        }
        if(yych <= '!') goto yy98;
        if(yych <= '"') goto yy101;
        if(yych <= '[') goto yy111;
        goto yy100;
yy106:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yybm[256+yych] & 64) {
            goto yy109;
        }
        goto yy98;
yy107:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '"') {
            if(yych <= 0x0A) {
                if(yych == 0x09) goto yy96;
                goto yy98;
            } else {
                if(yych <= 0x0C) goto yy96;
                if(yych <= 0x1F) goto yy98;
                if(yych <= '!') goto yy96;
                goto yy101;
            }
        } else {
            if(yych <= '>') {
                if(yych <= '/') goto yy96;
                if(yych >= '8') goto yy96;
            } else {
                if(yych <= '?') goto yy99;
                if(yych == '\\') goto yy100;
                goto yy96;
            }
        }
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yybm[256+yych] & 32) {
            goto yy96;
        }
        if(yych <= '!') goto yy98;
        if(yych <= '"') goto yy101;
        if(yych <= '[') goto yy99;
        goto yy100;
yy109:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yybm[256+yych] & 64) {
            goto yy109;
        }
        if(yych <= '!') {
            if(yych <= 0x0A) {
                if(yych == 0x09) goto yy96;
                goto yy98;
            } else {
                if(yych <= 0x0C) goto yy96;
                if(yych <= 0x1F) goto yy98;
                goto yy96;
            }
        } else {
            if(yych <= '?') {
                if(yych <= '"') goto yy101;
                if(yych <= '>') goto yy96;
                goto yy99;
            } else {
                if(yych == '\\') goto yy100;
                goto yy96;
            }
        }
yy111:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yybm[256+yych] & 32) {
            goto yy96;
        }
        if(yych <= '!') goto yy98;
        if(yych <= '"') goto yy101;
        if(yych >= '\\') goto yy100;
yy112:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yybm[256+yych] & 128) {
            goto yy112;
        }
        if(yych <= '!') {
            if(yych <= 0x0A) {
                if(yych == 0x09) goto yy96;
                goto yy98;
            } else {
                if(yych <= 0x0C) goto yy96;
                if(yych <= 0x1F) goto yy98;
                goto yy96;
            }
        } else {
            if(yych <= '/') {
                if(yych <= '"') goto yy101;
                if(yych <= '.') goto yy96;
            } else {
                if(yych == '\\') goto yy100;
                goto yy96;
            }
        }
yy114:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yybm[0+yych] & 1) {
            goto yy114;
        }
        if(yych <= '7') {
            if(yych <= 0x0C) {
                if(yych == 0x09) goto yy96;
                if(yych <= 0x0A) goto yy98;
                goto yy96;
            } else {
                if(yych <= '!') {
                    if(yych <= 0x1F) goto yy98;
                    goto yy96;
                } else {
                    if(yych <= '"') goto yy118;
                    if(yych <= '/') goto yy96;
                    goto yy107;
                }
            }
        } else {
            if(yych <= 'U') {
                if(yych == '?') goto yy119;
                if(yych <= 'T') goto yy96;
                goto yy117;
            } else {
                if(yych <= 'u') {
                    if(yych <= 't') goto yy96;
                } else {
                    if(yych == 'x') goto yy109;
                    goto yy96;
                }
            }
        }
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '9') {
            if(yych <= 0x0C) {
                if(yych == 0x09) goto yy96;
                if(yych <= 0x0A) goto yy98;
                goto yy96;
            } else {
                if(yych <= '!') {
                    if(yych <= 0x1F) goto yy98;
                    goto yy96;
                } else {
                    if(yych <= '"') goto yy101;
                    if(yych <= '/') goto yy96;
                    goto yy128;
                }
            }
        } else {
            if(yych <= 'F') {
                if(yych == '?') goto yy99;
                if(yych <= '@') goto yy96;
                goto yy128;
            } else {
                if(yych <= '\\') {
                    if(yych <= '[') goto yy96;
                    goto yy100;
                } else {
                    if(yych <= '`') goto yy96;
                    if(yych <= 'f') goto yy128;
                    goto yy96;
                }
            }
        }
yy117:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '9') {
            if(yych <= 0x0C) {
                if(yych == 0x09) goto yy96;
                if(yych <= 0x0A) goto yy98;
                goto yy96;
            } else {
                if(yych <= '!') {
                    if(yych <= 0x1F) goto yy98;
                    goto yy96;
                } else {
                    if(yych <= '"') goto yy101;
                    if(yych <= '/') goto yy96;
                    goto yy121;
                }
            }
        } else {
            if(yych <= 'F') {
                if(yych == '?') goto yy99;
                if(yych <= '@') goto yy96;
                goto yy121;
            } else {
                if(yych <= '\\') {
                    if(yych <= '[') goto yy96;
                    goto yy100;
                } else {
                    if(yych <= '`') goto yy96;
                    if(yych <= 'f') goto yy121;
                    goto yy96;
                }
            }
        }
yy118:
        yyaccept = 6;
        YYMARKER = ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yybm[256+yych] & 32) {
            goto yy96;
        }
        if(yych <= '!') goto yy102;
        if(yych <= '"') goto yy101;
        if(yych <= '[') goto yy99;
        goto yy100;
yy119:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yybm[256+yych] & 32) {
            goto yy96;
        }
        if(yych <= '!') goto yy98;
        if(yych <= '"') goto yy101;
        if(yych >= '\\') goto yy100;
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yybm[256+yych] & 128) {
            goto yy112;
        }
        if(yych <= '!') {
            if(yych <= 0x0A) {
                if(yych == 0x09) goto yy96;
                goto yy98;
            } else {
                if(yych <= 0x0C) goto yy96;
                if(yych <= 0x1F) goto yy98;
                goto yy96;
            }
        } else {
            if(yych <= '/') {
                if(yych <= '"') goto yy101;
                if(yych <= '.') goto yy96;
                goto yy114;
            } else {
                if(yych == '\\') goto yy100;
                goto yy96;
            }
        }
yy121:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '9') {
            if(yych <= 0x0C) {
                if(yych == 0x09) goto yy96;
                if(yych <= 0x0A) goto yy98;
                goto yy96;
            } else {
                if(yych <= '!') {
                    if(yych <= 0x1F) goto yy98;
                    goto yy96;
                } else {
                    if(yych <= '"') goto yy101;
                    if(yych <= '/') goto yy96;
                }
            }
        } else {
            if(yych <= 'F') {
                if(yych == '?') goto yy99;
                if(yych <= '@') goto yy96;
            } else {
                if(yych <= '\\') {
                    if(yych <= '[') goto yy96;
                    goto yy100;
                } else {
                    if(yych <= '`') goto yy96;
                    if(yych >= 'g') goto yy96;
                }
            }
        }
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '9') {
            if(yych <= 0x0C) {
                if(yych == 0x09) goto yy96;
                if(yych <= 0x0A) goto yy98;
                goto yy96;
            } else {
                if(yych <= '!') {
                    if(yych <= 0x1F) goto yy98;
                    goto yy96;
                } else {
                    if(yych <= '"') goto yy101;
                    if(yych <= '/') goto yy96;
                }
            }
        } else {
            if(yych <= 'F') {
                if(yych == '?') goto yy99;
                if(yych <= '@') goto yy96;
            } else {
                if(yych <= '\\') {
                    if(yych <= '[') goto yy96;
                    goto yy100;
                } else {
                    if(yych <= '`') goto yy96;
                    if(yych >= 'g') goto yy96;
                }
            }
        }
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '9') {
            if(yych <= 0x0C) {
                if(yych == 0x09) goto yy96;
                if(yych <= 0x0A) goto yy98;
                goto yy96;
            } else {
                if(yych <= '!') {
                    if(yych <= 0x1F) goto yy98;
                    goto yy96;
                } else {
                    if(yych <= '"') goto yy101;
                    if(yych <= '/') goto yy96;
                }
            }
        } else {
            if(yych <= 'F') {
                if(yych == '?') goto yy99;
                if(yych <= '@') goto yy96;
            } else {
                if(yych <= '\\') {
                    if(yych <= '[') goto yy96;
                    goto yy100;
                } else {
                    if(yych <= '`') goto yy96;
                    if(yych >= 'g') goto yy96;
                }
            }
        }
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '9') {
            if(yych <= 0x0C) {
                if(yych == 0x09) goto yy96;
                if(yych <= 0x0A) goto yy98;
                goto yy96;
            } else {
                if(yych <= '!') {
                    if(yych <= 0x1F) goto yy98;
                    goto yy96;
                } else {
                    if(yych <= '"') goto yy101;
                    if(yych <= '/') goto yy96;
                }
            }
        } else {
            if(yych <= 'F') {
                if(yych == '?') goto yy99;
                if(yych <= '@') goto yy96;
            } else {
                if(yych <= '\\') {
                    if(yych <= '[') goto yy96;
                    goto yy100;
                } else {
                    if(yych <= '`') goto yy96;
                    if(yych >= 'g') goto yy96;
                }
            }
        }
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '9') {
            if(yych <= 0x0C) {
                if(yych == 0x09) goto yy96;
                if(yych <= 0x0A) goto yy98;
                goto yy96;
            } else {
                if(yych <= '!') {
                    if(yych <= 0x1F) goto yy98;
                    goto yy96;
                } else {
                    if(yych <= '"') goto yy101;
                    if(yych <= '/') goto yy96;
                }
            }
        } else {
            if(yych <= 'F') {
                if(yych == '?') goto yy99;
                if(yych <= '@') goto yy96;
            } else {
                if(yych <= '\\') {
                    if(yych <= '[') goto yy96;
                    goto yy100;
                } else {
                    if(yych <= '`') goto yy96;
                    if(yych >= 'g') goto yy96;
                }
            }
        }
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '9') {
            if(yych <= 0x0C) {
                if(yych == 0x09) goto yy96;
                if(yych <= 0x0A) goto yy98;
                goto yy96;
            } else {
                if(yych <= '!') {
                    if(yych <= 0x1F) goto yy98;
                    goto yy96;
                } else {
                    if(yych <= '"') goto yy101;
                    if(yych <= '/') goto yy96;
                }
            }
        } else {
            if(yych <= 'F') {
                if(yych == '?') goto yy99;
                if(yych <= '@') goto yy96;
            } else {
                if(yych <= '\\') {
                    if(yych <= '[') goto yy96;
                    goto yy100;
                } else {
                    if(yych <= '`') goto yy96;
                    if(yych >= 'g') goto yy96;
                }
            }
        }
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yybm[256+yych] & 32) {
            goto yy96;
        }
        if(yych <= '!') goto yy98;
        if(yych <= '"') goto yy101;
        if(yych <= '[') goto yy99;
        goto yy100;
yy128:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '9') {
            if(yych <= 0x0C) {
                if(yych == 0x09) goto yy96;
                if(yych <= 0x0A) goto yy98;
                goto yy96;
            } else {
                if(yych <= '!') {
                    if(yych <= 0x1F) goto yy98;
                    goto yy96;
                } else {
                    if(yych <= '"') goto yy101;
                    if(yych <= '/') goto yy96;
                }
            }
        } else {
            if(yych <= 'F') {
                if(yych == '?') goto yy99;
                if(yych <= '@') goto yy96;
            } else {
                if(yych <= '\\') {
                    if(yych <= '[') goto yy96;
                    goto yy100;
                } else {
                    if(yych <= '`') goto yy96;
                    if(yych >= 'g') goto yy96;
                }
            }
        }
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '9') {
            if(yych <= 0x0C) {
                if(yych == 0x09) goto yy96;
                if(yych <= 0x0A) goto yy98;
                goto yy96;
            } else {
                if(yych <= '!') {
                    if(yych <= 0x1F) goto yy98;
                    goto yy96;
                } else {
                    if(yych <= '"') goto yy101;
                    if(yych <= '/') goto yy96;
                }
            }
        } else {
            if(yych <= 'F') {
                if(yych == '?') goto yy99;
                if(yych <= '@') goto yy96;
            } else {
                if(yych <= '\\') {
                    if(yych <= '[') goto yy96;
                    goto yy100;
                } else {
                    if(yych <= '`') goto yy96;
                    if(yych >= 'g') goto yy96;
                }
            }
        }
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yybm[256+yych] & 32) {
            goto yy96;
        }
        if(yych <= '!') goto yy98;
        if(yych <= '"') goto yy101;
        if(yych <= '[') goto yy99;
        goto yy100;
yy131:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy132;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy132:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy133;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy133:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy134;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy134:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy135;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy135:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy136;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy136:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy137;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy137:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych <= '9') goto yy96;
            goto yy98;
        } else {
            if(yych <= 'F') goto yy96;
            if(yych <= '`') goto yy98;
            if(yych <= 'f') goto yy96;
            goto yy98;
        }
yy138:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy139;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy139:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy140;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy140:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych <= '9') goto yy96;
            goto yy98;
        } else {
            if(yych <= 'F') goto yy96;
            if(yych <= '`') goto yy98;
            if(yych <= 'f') goto yy96;
            goto yy98;
        }
yy141:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
yy142:
        if(yybm[0+yych] & 2) {
            goto yy141;
        }
        if(yych <= '&') goto yy98;
        if(yych <= '\'') goto yy151;
        if(yych >= '\\') goto yy144;
yy143:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yybm[0+yych] & 2) {
            goto yy141;
        }
        if(yych <= '&') goto yy98;
        if(yych <= '\'') goto yy151;
        if(yych <= '[') goto yy156;
yy144:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '`') {
            if(yych <= '7') {
                if(yych <= '&') {
                    if(yych == '"') goto yy141;
                    goto yy98;
                } else {
                    if(yych <= '\'') goto yy141;
                    if(yych <= '/') goto yy98;
                    goto yy149;
                }
            } else {
                if(yych <= 'T') {
                    if(yych == '?') goto yy147;
                    goto yy98;
                } else {
                    if(yych <= 'U') goto yy146;
                    if(yych == '\\') goto yy141;
                    goto yy98;
                }
            }
        } else {
            if(yych <= 'r') {
                if(yych <= 'f') {
                    if(yych <= 'b') goto yy141;
                    if(yych <= 'e') goto yy98;
                    goto yy141;
                } else {
                    if(yych == 'n') goto yy141;
                    if(yych <= 'q') goto yy98;
                    goto yy141;
                }
            } else {
                if(yych <= 'u') {
                    if(yych <= 's') goto yy98;
                    if(yych <= 't') goto yy141;
                } else {
                    if(yych <= 'v') goto yy141;
                    if(yych == 'x') goto yy148;
                    goto yy98;
                }
            }
        }
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych <= '9') goto yy182;
            goto yy98;
        } else {
            if(yych <= 'F') goto yy182;
            if(yych <= '`') goto yy98;
            if(yych <= 'f') goto yy182;
            goto yy98;
        }
yy146:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych <= '9') goto yy175;
            goto yy98;
        } else {
            if(yych <= 'F') goto yy175;
            if(yych <= '`') goto yy98;
            if(yych <= 'f') goto yy175;
            goto yy98;
        }
yy147:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yybm[0+yych] & 2) {
            goto yy141;
        }
        if(yych <= '&') goto yy98;
        if(yych <= '\'') goto yy151;
        if(yych <= '[') goto yy155;
        goto yy144;
yy148:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych <= '9') goto yy153;
            goto yy98;
        } else {
            if(yych <= 'F') goto yy153;
            if(yych <= '`') goto yy98;
            if(yych <= 'f') goto yy153;
            goto yy98;
        }
yy149:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '\'') {
            if(yych <= 0x0A) {
                if(yych == 0x09) goto yy141;
                goto yy98;
            } else {
                if(yych <= 0x0C) goto yy141;
                if(yych <= 0x1F) goto yy98;
                if(yych <= '&') goto yy141;
                goto yy151;
            }
        } else {
            if(yych <= '>') {
                if(yych <= '/') goto yy141;
                if(yych >= '8') goto yy141;
            } else {
                if(yych <= '?') goto yy143;
                if(yych == '\\') goto yy144;
                goto yy141;
            }
        }
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yybm[0+yych] & 2) {
            goto yy141;
        }
        if(yych <= '&') goto yy98;
        if(yych <= '\'') goto yy151;
        if(yych <= '[') goto yy143;
        goto yy144;
yy151:
        ++YYCURSOR;
yy152:
#line 245 "strict_cpp.re"
        { BOOST_WAVE_RET(T_CHARLIT); }
#line 2088 "strict_cpp_re.inc"
yy153:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '9') {
            if(yych <= 0x0C) {
                if(yych == 0x09) goto yy141;
                if(yych <= 0x0A) goto yy98;
                goto yy141;
            } else {
                if(yych <= '&') {
                    if(yych <= 0x1F) goto yy98;
                    goto yy141;
                } else {
                    if(yych <= '\'') goto yy151;
                    if(yych <= '/') goto yy141;
                    goto yy153;
                }
            }
        } else {
            if(yych <= 'F') {
                if(yych == '?') goto yy143;
                if(yych <= '@') goto yy141;
                goto yy153;
            } else {
                if(yych <= '\\') {
                    if(yych <= '[') goto yy141;
                    goto yy144;
                } else {
                    if(yych <= '`') goto yy141;
                    if(yych <= 'f') goto yy153;
                    goto yy141;
                }
            }
        }
yy155:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yybm[0+yych] & 2) {
            goto yy141;
        }
        if(yych <= '&') goto yy98;
        if(yych <= '\'') goto yy151;
        if(yych >= '\\') goto yy144;
yy156:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '\'') {
            if(yych <= 0x0A) {
                if(yych == 0x09) goto yy141;
                goto yy98;
            } else {
                if(yych <= 0x0C) goto yy141;
                if(yych <= 0x1F) goto yy98;
                if(yych <= '&') goto yy141;
                goto yy151;
            }
        } else {
            if(yych <= '>') {
                if(yych != '/') goto yy141;
            } else {
                if(yych <= '?') goto yy156;
                if(yych == '\\') goto yy144;
                goto yy141;
            }
        }
yy158:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '>') {
            if(yych <= 0x1F) {
                if(yych <= 0x09) {
                    if(yych <= 0x08) goto yy98;
                    goto yy141;
                } else {
                    if(yych <= 0x0A) goto yy98;
                    if(yych <= 0x0C) goto yy141;
                    goto yy98;
                }
            } else {
                if(yych <= '\'') {
                    if(yych <= '&') goto yy141;
                    goto yy162;
                } else {
                    if(yych <= '/') goto yy141;
                    if(yych <= '7') goto yy149;
                    goto yy141;
                }
            }
        } else {
            if(yych <= '\\') {
                if(yych <= 'T') {
                    if(yych <= '?') goto yy163;
                    goto yy141;
                } else {
                    if(yych <= 'U') goto yy161;
                    if(yych <= '[') goto yy141;
                    goto yy158;
                }
            } else {
                if(yych <= 'u') {
                    if(yych <= 't') goto yy141;
                } else {
                    if(yych == 'x') goto yy153;
                    goto yy141;
                }
            }
        }
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '9') {
            if(yych <= 0x0C) {
                if(yych == 0x09) goto yy141;
                if(yych <= 0x0A) goto yy98;
                goto yy141;
            } else {
                if(yych <= '&') {
                    if(yych <= 0x1F) goto yy98;
                    goto yy141;
                } else {
                    if(yych <= '\'') goto yy151;
                    if(yych <= '/') goto yy141;
                    goto yy172;
                }
            }
        } else {
            if(yych <= 'F') {
                if(yych == '?') goto yy143;
                if(yych <= '@') goto yy141;
                goto yy172;
            } else {
                if(yych <= '\\') {
                    if(yych <= '[') goto yy141;
                    goto yy144;
                } else {
                    if(yych <= '`') goto yy141;
                    if(yych <= 'f') goto yy172;
                    goto yy141;
                }
            }
        }
yy161:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '9') {
            if(yych <= 0x0C) {
                if(yych == 0x09) goto yy141;
                if(yych <= 0x0A) goto yy98;
                goto yy141;
            } else {
                if(yych <= '&') {
                    if(yych <= 0x1F) goto yy98;
                    goto yy141;
                } else {
                    if(yych <= '\'') goto yy151;
                    if(yych <= '/') goto yy141;
                    goto yy165;
                }
            }
        } else {
            if(yych <= 'F') {
                if(yych == '?') goto yy143;
                if(yych <= '@') goto yy141;
                goto yy165;
            } else {
                if(yych <= '\\') {
                    if(yych <= '[') goto yy141;
                    goto yy144;
                } else {
                    if(yych <= '`') goto yy141;
                    if(yych <= 'f') goto yy165;
                    goto yy141;
                }
            }
        }
yy162:
        yyaccept = 7;
        YYMARKER = ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yybm[0+yych] & 2) {
            goto yy141;
        }
        if(yych <= '&') goto yy152;
        if(yych <= '\'') goto yy151;
        if(yych <= '[') goto yy143;
        goto yy144;
yy163:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yybm[0+yych] & 2) {
            goto yy141;
        }
        if(yych <= '&') goto yy98;
        if(yych <= '\'') goto yy151;
        if(yych >= '\\') goto yy144;
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '\'') {
            if(yych <= 0x0A) {
                if(yych == 0x09) goto yy141;
                goto yy98;
            } else {
                if(yych <= 0x0C) goto yy141;
                if(yych <= 0x1F) goto yy98;
                if(yych <= '&') goto yy141;
                goto yy151;
            }
        } else {
            if(yych <= '>') {
                if(yych == '/') goto yy158;
                goto yy141;
            } else {
                if(yych <= '?') goto yy156;
                if(yych == '\\') goto yy144;
                goto yy141;
            }
        }
yy165:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '9') {
            if(yych <= 0x0C) {
                if(yych == 0x09) goto yy141;
                if(yych <= 0x0A) goto yy98;
                goto yy141;
            } else {
                if(yych <= '&') {
                    if(yych <= 0x1F) goto yy98;
                    goto yy141;
                } else {
                    if(yych <= '\'') goto yy151;
                    if(yych <= '/') goto yy141;
                }
            }
        } else {
            if(yych <= 'F') {
                if(yych == '?') goto yy143;
                if(yych <= '@') goto yy141;
            } else {
                if(yych <= '\\') {
                    if(yych <= '[') goto yy141;
                    goto yy144;
                } else {
                    if(yych <= '`') goto yy141;
                    if(yych >= 'g') goto yy141;
                }
            }
        }
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '9') {
            if(yych <= 0x0C) {
                if(yych == 0x09) goto yy141;
                if(yych <= 0x0A) goto yy98;
                goto yy141;
            } else {
                if(yych <= '&') {
                    if(yych <= 0x1F) goto yy98;
                    goto yy141;
                } else {
                    if(yych <= '\'') goto yy151;
                    if(yych <= '/') goto yy141;
                }
            }
        } else {
            if(yych <= 'F') {
                if(yych == '?') goto yy143;
                if(yych <= '@') goto yy141;
            } else {
                if(yych <= '\\') {
                    if(yych <= '[') goto yy141;
                    goto yy144;
                } else {
                    if(yych <= '`') goto yy141;
                    if(yych >= 'g') goto yy141;
                }
            }
        }
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '9') {
            if(yych <= 0x0C) {
                if(yych == 0x09) goto yy141;
                if(yych <= 0x0A) goto yy98;
                goto yy141;
            } else {
                if(yych <= '&') {
                    if(yych <= 0x1F) goto yy98;
                    goto yy141;
                } else {
                    if(yych <= '\'') goto yy151;
                    if(yych <= '/') goto yy141;
                }
            }
        } else {
            if(yych <= 'F') {
                if(yych == '?') goto yy143;
                if(yych <= '@') goto yy141;
            } else {
                if(yych <= '\\') {
                    if(yych <= '[') goto yy141;
                    goto yy144;
                } else {
                    if(yych <= '`') goto yy141;
                    if(yych >= 'g') goto yy141;
                }
            }
        }
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '9') {
            if(yych <= 0x0C) {
                if(yych == 0x09) goto yy141;
                if(yych <= 0x0A) goto yy98;
                goto yy141;
            } else {
                if(yych <= '&') {
                    if(yych <= 0x1F) goto yy98;
                    goto yy141;
                } else {
                    if(yych <= '\'') goto yy151;
                    if(yych <= '/') goto yy141;
                }
            }
        } else {
            if(yych <= 'F') {
                if(yych == '?') goto yy143;
                if(yych <= '@') goto yy141;
            } else {
                if(yych <= '\\') {
                    if(yych <= '[') goto yy141;
                    goto yy144;
                } else {
                    if(yych <= '`') goto yy141;
                    if(yych >= 'g') goto yy141;
                }
            }
        }
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '9') {
            if(yych <= 0x0C) {
                if(yych == 0x09) goto yy141;
                if(yych <= 0x0A) goto yy98;
                goto yy141;
            } else {
                if(yych <= '&') {
                    if(yych <= 0x1F) goto yy98;
                    goto yy141;
                } else {
                    if(yych <= '\'') goto yy151;
                    if(yych <= '/') goto yy141;
                }
            }
        } else {
            if(yych <= 'F') {
                if(yych == '?') goto yy143;
                if(yych <= '@') goto yy141;
            } else {
                if(yych <= '\\') {
                    if(yych <= '[') goto yy141;
                    goto yy144;
                } else {
                    if(yych <= '`') goto yy141;
                    if(yych >= 'g') goto yy141;
                }
            }
        }
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '9') {
            if(yych <= 0x0C) {
                if(yych == 0x09) goto yy141;
                if(yych <= 0x0A) goto yy98;
                goto yy141;
            } else {
                if(yych <= '&') {
                    if(yych <= 0x1F) goto yy98;
                    goto yy141;
                } else {
                    if(yych <= '\'') goto yy151;
                    if(yych <= '/') goto yy141;
                }
            }
        } else {
            if(yych <= 'F') {
                if(yych == '?') goto yy143;
                if(yych <= '@') goto yy141;
            } else {
                if(yych <= '\\') {
                    if(yych <= '[') goto yy141;
                    goto yy144;
                } else {
                    if(yych <= '`') goto yy141;
                    if(yych >= 'g') goto yy141;
                }
            }
        }
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yybm[0+yych] & 2) {
            goto yy141;
        }
        if(yych <= '&') goto yy98;
        if(yych <= '\'') goto yy151;
        if(yych <= '[') goto yy143;
        goto yy144;
yy172:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '9') {
            if(yych <= 0x0C) {
                if(yych == 0x09) goto yy141;
                if(yych <= 0x0A) goto yy98;
                goto yy141;
            } else {
                if(yych <= '&') {
                    if(yych <= 0x1F) goto yy98;
                    goto yy141;
                } else {
                    if(yych <= '\'') goto yy151;
                    if(yych <= '/') goto yy141;
                }
            }
        } else {
            if(yych <= 'F') {
                if(yych == '?') goto yy143;
                if(yych <= '@') goto yy141;
            } else {
                if(yych <= '\\') {
                    if(yych <= '[') goto yy141;
                    goto yy144;
                } else {
                    if(yych <= '`') goto yy141;
                    if(yych >= 'g') goto yy141;
                }
            }
        }
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '9') {
            if(yych <= 0x0C) {
                if(yych == 0x09) goto yy141;
                if(yych <= 0x0A) goto yy98;
                goto yy141;
            } else {
                if(yych <= '&') {
                    if(yych <= 0x1F) goto yy98;
                    goto yy141;
                } else {
                    if(yych <= '\'') goto yy151;
                    if(yych <= '/') goto yy141;
                }
            }
        } else {
            if(yych <= 'F') {
                if(yych == '?') goto yy143;
                if(yych <= '@') goto yy141;
            } else {
                if(yych <= '\\') {
                    if(yych <= '[') goto yy141;
                    goto yy144;
                } else {
                    if(yych <= '`') goto yy141;
                    if(yych >= 'g') goto yy141;
                }
            }
        }
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yybm[0+yych] & 2) {
            goto yy141;
        }
        if(yych <= '&') goto yy98;
        if(yych <= '\'') goto yy151;
        if(yych <= '[') goto yy143;
        goto yy144;
yy175:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy176;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy176:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy177;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy177:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy178;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy178:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy179;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy179:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy180;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy180:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy181;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy181:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych <= '9') goto yy141;
            goto yy98;
        } else {
            if(yych <= 'F') goto yy141;
            if(yych <= '`') goto yy98;
            if(yych <= 'f') goto yy141;
            goto yy98;
        }
yy182:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy183;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy183:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy184;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy184:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych <= '9') goto yy141;
            goto yy98;
        } else {
            if(yych <= 'F') goto yy141;
            if(yych <= '`') goto yy98;
            if(yych <= 'f') goto yy141;
            goto yy98;
        }
yy185:
        yych = *++YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych <= '9') goto yy211;
            goto yy98;
        } else {
            if(yych <= 'F') goto yy211;
            if(yych <= '`') goto yy98;
            if(yych <= 'f') goto yy211;
            goto yy98;
        }
yy186:
        yych = *++YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy187;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy187:
        yych = *++YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy188;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy188:
        yych = *++YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy189;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy189:
        yych = *++YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy190;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy190:
        yych = *++YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy191;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy191:
        yych = *++YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy192;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy192:
        yych = *++YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy193;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy193:
        yych = *++YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy194;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy194:
        yyaccept = 1;
        YYMARKER = ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
yy195:
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych != '\\') goto yy9;
yy196:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych == 'U') goto yy200;
        if(yych == 'u') goto yy199;
        goto yy98;
yy197:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych != '?') goto yy98;
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych == '/') goto yy196;
        goto yy98;
yy199:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych <= '9') goto yy208;
            goto yy98;
        } else {
            if(yych <= 'F') goto yy208;
            if(yych <= '`') goto yy98;
            if(yych <= 'f') goto yy208;
            goto yy98;
        }
yy200:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy201;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy201:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy202;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy202:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy203;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy203:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy204;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy204:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy205;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy205:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy206;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy206:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy207;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy207:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych <= '9') goto yy194;
            goto yy98;
        } else {
            if(yych <= 'F') goto yy194;
            if(yych <= '`') goto yy98;
            if(yych <= 'f') goto yy194;
            goto yy98;
        }
yy208:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy209;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy209:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy210;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy210:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych <= '9') goto yy194;
            goto yy98;
        } else {
            if(yych <= 'F') goto yy194;
            if(yych <= '`') goto yy98;
            if(yych <= 'f') goto yy194;
            goto yy98;
        }
yy211:
        yych = *++YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy212;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy212:
        yych = *++YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych >= ':') goto yy98;
        } else {
            if(yych <= 'F') goto yy213;
            if(yych <= '`') goto yy98;
            if(yych >= 'g') goto yy98;
        }
yy213:
        yych = *++YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy98;
            if(yych <= '9') goto yy194;
            goto yy98;
        } else {
            if(yych <= 'F') goto yy194;
            if(yych <= '`') goto yy98;
            if(yych <= 'f') goto yy194;
            goto yy98;
        }
yy214:
        yych = *++YYCURSOR;
        if(yych == '\'') goto yy98;
        goto yy142;
yy215:
        ++YYCURSOR;
#line 216 "strict_cpp.re"
        { BOOST_WAVE_RET(T_GREATEREQUAL); }
#line 3018 "strict_cpp_re.inc"
yy217:
        ++YYCURSOR;
        if((yych = *YYCURSOR) == '=') goto yy219;
#line 209 "strict_cpp.re"
        { BOOST_WAVE_RET(T_SHIFTRIGHT); }
#line 3024 "strict_cpp_re.inc"
yy219:
        ++YYCURSOR;
#line 210 "strict_cpp.re"
        { BOOST_WAVE_RET(T_SHIFTRIGHTASSIGN); }
#line 3029 "strict_cpp_re.inc"
yy221:
        ++YYCURSOR;
#line 212 "strict_cpp.re"
        { BOOST_WAVE_RET(T_EQUAL); }
#line 3034 "strict_cpp_re.inc"
yy223:
        ++YYCURSOR;
#line 213 "strict_cpp.re"
        { BOOST_WAVE_RET(T_NOTEQUAL); }
#line 3039 "strict_cpp_re.inc"
yy225:
        yych = *++YYCURSOR;
        if(yych == '?') goto yy230;
        goto yy98;
yy226:
        ++YYCURSOR;
#line 219 "strict_cpp.re"
        { BOOST_WAVE_RET(T_OROR); }
#line 3048 "strict_cpp_re.inc"
yy228:
        ++YYCURSOR;
#line 205 "strict_cpp.re"
        { BOOST_WAVE_RET(T_ORASSIGN); }
#line 3053 "strict_cpp_re.inc"
yy230:
        yych = *++YYCURSOR;
        if(yych != '!') goto yy98;
        ++YYCURSOR;
#line 221 "strict_cpp.re"
        { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
#line 3060 "strict_cpp_re.inc"
yy233:
        ++YYCURSOR;
#line 217 "strict_cpp.re"
        { BOOST_WAVE_RET(T_ANDAND); }
#line 3065 "strict_cpp_re.inc"
yy235:
        ++YYCURSOR;
#line 203 "strict_cpp.re"
        { BOOST_WAVE_RET(T_ANDASSIGN); }
#line 3070 "strict_cpp_re.inc"
yy237:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'r') goto yy195;
        yyaccept = 8;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych <= 'Z') {
            if(yych <= '>') {
                if(yych <= '/') goto yy239;
                if(yych <= '9') goto yy194;
            } else {
                if(yych <= '?') goto yy197;
                if(yych >= 'A') goto yy194;
            }
        } else {
            if(yych <= '^') {
                if(yych == '\\') goto yy196;
            } else {
                if(yych <= '_') goto yy240;
                if(yych <= '`') goto yy239;
                if(yych <= 'z') goto yy194;
            }
        }
yy239:
#line 181 "strict_cpp.re"
        { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XOR_ALT); }
#line 3097 "strict_cpp_re.inc"
yy240:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'q') goto yy195;
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy243:
#line 201 "strict_cpp.re"
        { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XORASSIGN_ALT); }
#line 3115 "strict_cpp_re.inc"
yy244:
        ++YYCURSOR;
#line 200 "strict_cpp.re"
        { BOOST_WAVE_RET(T_XORASSIGN); }
#line 3120 "strict_cpp_re.inc"
yy246:
        ++YYCURSOR;
#line 197 "strict_cpp.re"
        { BOOST_WAVE_RET(T_STARASSIGN); }
#line 3125 "strict_cpp_re.inc"
yy248:
        ++YYCURSOR;
        if((yych = *YYCURSOR) == '*') goto yy254;
#line 237 "strict_cpp.re"
        { BOOST_WAVE_RET(T_ARROW); }
#line 3131 "strict_cpp_re.inc"
yy250:
        ++YYCURSOR;
#line 225 "strict_cpp.re"
        { BOOST_WAVE_RET(T_MINUSMINUS); }
#line 3136 "strict_cpp_re.inc"
yy252:
        ++YYCURSOR;
#line 196 "strict_cpp.re"
        { BOOST_WAVE_RET(T_MINUSASSIGN); }
#line 3141 "strict_cpp_re.inc"
yy254:
        ++YYCURSOR;
#line 228 "strict_cpp.re"
        { 
            if (s->act_in_c99_mode) {
                --YYCURSOR;
                BOOST_WAVE_RET(T_ARROW);
            }
            else {
                BOOST_WAVE_RET(T_ARROWSTAR); 
            }
        }
#line 3154 "strict_cpp_re.inc"
yy256:
        ++YYCURSOR;
#line 224 "strict_cpp.re"
        { BOOST_WAVE_RET(T_PLUSPLUS); }
#line 3159 "strict_cpp_re.inc"
yy258:
        ++YYCURSOR;
#line 195 "strict_cpp.re"
        { BOOST_WAVE_RET(T_PLUSASSIGN); }
#line 3164 "strict_cpp_re.inc"
yy260:
        ++YYCURSOR;
        if((YYLIMIT - YYCURSOR) < 12) YYFILL(12);
        yych = *YYCURSOR;
yy261:
        if(yych <= 'h') {
            if(yych <= ' ') {
                if(yych <= 0x0A) {
                    if(yych == 0x09) goto yy260;
                    goto yy98;
                } else {
                    if(yych <= 0x0C) goto yy260;
                    if(yych <= 0x1F) goto yy98;
                    goto yy260;
                }
            } else {
                if(yych <= 'c') {
                    if(yych != '/') goto yy98;
                } else {
                    if(yych <= 'd') goto yy269;
                    if(yych <= 'e') goto yy263;
                    goto yy98;
                }
            }
        } else {
            if(yych <= 'q') {
                if(yych <= 'l') {
                    if(yych <= 'i') goto yy270;
                    if(yych <= 'k') goto yy98;
                    goto yy267;
                } else {
                    if(yych == 'p') goto yy266;
                    goto yy98;
                }
            } else {
                if(yych <= 'u') {
                    if(yych <= 'r') goto yy264;
                    if(yych <= 't') goto yy98;
                    goto yy268;
                } else {
                    if(yych == 'w') goto yy265;
                    goto yy98;
                }
            }
        }
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych == '*') goto yy377;
        goto yy98;
yy263:
        yych = *++YYCURSOR;
        if(yych <= 'm') {
            if(yych == 'l') goto yy353;
            goto yy98;
        } else {
            if(yych <= 'n') goto yy354;
            if(yych == 'r') goto yy355;
            goto yy98;
        }
yy264:
        yych = *++YYCURSOR;
        if(yych == 'e') goto yy347;
        goto yy98;
yy265:
        yych = *++YYCURSOR;
        if(yych == 'a') goto yy340;
        goto yy98;
yy266:
        yych = *++YYCURSOR;
        if(yych == 'r') goto yy334;
        goto yy98;
yy267:
        yych = *++YYCURSOR;
        if(yych == 'i') goto yy330;
        goto yy98;
yy268:
        yych = *++YYCURSOR;
        if(yych == 'n') goto yy325;
        goto yy98;
yy269:
        yych = *++YYCURSOR;
        if(yych == 'e') goto yy319;
        goto yy98;
yy270:
        yych = *++YYCURSOR;
        if(yych == 'f') goto yy278;
        if(yych == 'n') goto yy277;
        goto yy98;
yy271:
        yych = *++YYCURSOR;
        if(yych == '?') goto yy274;
        goto yy98;
yy272:
        ++YYCURSOR;
#line 142 "strict_cpp.re"
        { BOOST_WAVE_RET(T_POUND_POUND); }
#line 3262 "strict_cpp_re.inc"
yy274:
        yych = *++YYCURSOR;
        if(yych != '=') goto yy98;
        ++YYCURSOR;
#line 143 "strict_cpp.re"
        { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
#line 3269 "strict_cpp_re.inc"
yy277:
        yych = *++YYCURSOR;
        if(yych == 'c') goto yy289;
        goto yy98;
yy278:
        yyaccept = 10;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'd') goto yy281;
        if(yych == 'n') goto yy280;
yy279:
#line 260 "strict_cpp.re"
        { BOOST_WAVE_RET(T_PP_IF); }
#line 3282 "strict_cpp_re.inc"
yy280:
        yych = *++YYCURSOR;
        if(yych == 'd') goto yy285;
        goto yy98;
yy281:
        yych = *++YYCURSOR;
        if(yych != 'e') goto yy98;
        yych = *++YYCURSOR;
        if(yych != 'f') goto yy98;
        ++YYCURSOR;
#line 261 "strict_cpp.re"
        { BOOST_WAVE_RET(T_PP_IFDEF); }
#line 3295 "strict_cpp_re.inc"
yy285:
        yych = *++YYCURSOR;
        if(yych != 'e') goto yy98;
        yych = *++YYCURSOR;
        if(yych != 'f') goto yy98;
        ++YYCURSOR;
#line 262 "strict_cpp.re"
        { BOOST_WAVE_RET(T_PP_IFNDEF); }
#line 3304 "strict_cpp_re.inc"
yy289:
        yych = *++YYCURSOR;
        if(yych != 'l') goto yy98;
        yych = *++YYCURSOR;
        if(yych != 'u') goto yy98;
        yych = *++YYCURSOR;
        if(yych != 'd') goto yy98;
        yych = *++YYCURSOR;
        if(yych != 'e') goto yy98;
        yyaccept = 11;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == '_') goto yy295;
        goto yy297;
yy294:
#line 258 "strict_cpp.re"
        { BOOST_WAVE_RET(T_PP_INCLUDE); }
#line 3321 "strict_cpp_re.inc"
yy295:
        yych = *++YYCURSOR;
        if(yych == 'n') goto yy316;
        goto yy98;
yy296:
        yyaccept = 11;
        YYMARKER = ++YYCURSOR;
        if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
        yych = *YYCURSOR;
yy297:
        if(yych <= ' ') {
            if(yych <= 0x0A) {
                if(yych == 0x09) goto yy296;
                goto yy294;
            } else {
                if(yych <= 0x0C) goto yy296;
                if(yych <= 0x1F) goto yy294;
                goto yy296;
            }
        } else {
            if(yych <= '.') {
                if(yych == '"') goto yy300;
                goto yy294;
            } else {
                if(yych <= '/') goto yy298;
                if(yych == '<') goto yy299;
                goto yy294;
            }
        }
yy298:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych == '*') goto yy309;
        goto yy98;
yy299:
        yych = *++YYCURSOR;
        if(yych == '>') goto yy98;
        goto yy306;
yy300:
        yych = *++YYCURSOR;
        if(yych == '"') goto yy98;
        goto yy302;
yy301:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
yy302:
        if(yybm[0+yych] & 8) {
            goto yy301;
        }
        if(yych <= '!') goto yy98;
        ++YYCURSOR;
#line 255 "strict_cpp.re"
        { BOOST_WAVE_RET(T_PP_QHEADER); }
#line 3377 "strict_cpp_re.inc"
yy305:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
yy306:
        if(yybm[0+yych] & 16) {
            goto yy305;
        }
        if(yych <= '=') goto yy98;
        ++YYCURSOR;
#line 252 "strict_cpp.re"
        { BOOST_WAVE_RET(T_PP_HHEADER); }
#line 3390 "strict_cpp_re.inc"
yy309:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yybm[0+yych] & 32) {
            goto yy309;
        }
        if(yych == 0x0D) goto yy311;
        if(yych <= ')') goto yy98;
        goto yy313;
yy311:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yybm[0+yych] & 32) {
            goto yy309;
        }
        if(yych == 0x0D) goto yy311;
        if(yych <= ')') goto yy98;
yy313:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yybm[0+yych] & 128) {
            goto yy313;
        }
        if(yych <= 0x0D) {
            if(yych <= 0x08) goto yy98;
            if(yych <= 0x0C) goto yy309;
        } else {
            if(yych <= 0x1F) goto yy98;
            if(yych == '/') goto yy296;
            goto yy309;
        }
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yybm[0+yych] & 32) {
            goto yy309;
        }
        if(yych == 0x0D) goto yy311;
        if(yych <= ')') goto yy98;
        goto yy313;
yy316:
        yych = *++YYCURSOR;
        if(yych != 'e') goto yy98;
        yych = *++YYCURSOR;
        if(yych != 'x') goto yy98;
        yych = *++YYCURSOR;
        if(yych == 't') goto yy296;
        goto yy98;
yy319:
        yych = *++YYCURSOR;
        if(yych != 'f') goto yy98;
        yych = *++YYCURSOR;
        if(yych != 'i') goto yy98;
        yych = *++YYCURSOR;
        if(yych != 'n') goto yy98;
        yych = *++YYCURSOR;
        if(yych != 'e') goto yy98;
        ++YYCURSOR;
#line 266 "strict_cpp.re"
        { BOOST_WAVE_RET(T_PP_DEFINE); }
#line 3454 "strict_cpp_re.inc"
yy325:
        yych = *++YYCURSOR;
        if(yych != 'd') goto yy98;
        yych = *++YYCURSOR;
        if(yych != 'e') goto yy98;
        yych = *++YYCURSOR;
        if(yych != 'f') goto yy98;
        ++YYCURSOR;
#line 267 "strict_cpp.re"
        { BOOST_WAVE_RET(T_PP_UNDEF); }
#line 3465 "strict_cpp_re.inc"
yy330:
        yych = *++YYCURSOR;
        if(yych != 'n') goto yy98;
        yych = *++YYCURSOR;
        if(yych != 'e') goto yy98;
        ++YYCURSOR;
#line 268 "strict_cpp.re"
        { BOOST_WAVE_RET(T_PP_LINE); }
#line 3474 "strict_cpp_re.inc"
yy334:
        yych = *++YYCURSOR;
        if(yych != 'a') goto yy98;
        yych = *++YYCURSOR;
        if(yych != 'g') goto yy98;
        yych = *++YYCURSOR;
        if(yych != 'm') goto yy98;
        yych = *++YYCURSOR;
        if(yych != 'a') goto yy98;
        ++YYCURSOR;
#line 270 "strict_cpp.re"
        { BOOST_WAVE_RET(T_PP_PRAGMA); }
#line 3487 "strict_cpp_re.inc"
yy340:
        yych = *++YYCURSOR;
        if(yych != 'r') goto yy98;
        yych = *++YYCURSOR;
        if(yych != 'n') goto yy98;
        yych = *++YYCURSOR;
        if(yych != 'i') goto yy98;
        yych = *++YYCURSOR;
        if(yych != 'n') goto yy98;
        yych = *++YYCURSOR;
        if(yych != 'g') goto yy98;
        ++YYCURSOR;
#line 272 "strict_cpp.re"
        { BOOST_WAVE_RET(T_PP_WARNING); }
#line 3502 "strict_cpp_re.inc"
yy347:
        yych = *++YYCURSOR;
        if(yych != 'g') goto yy98;
        yych = *++YYCURSOR;
        if(yych != 'i') goto yy98;
        yych = *++YYCURSOR;
        if(yych != 'o') goto yy98;
        yych = *++YYCURSOR;
        if(yych != 'n') goto yy98;
        ++YYCURSOR;
#line 274 "strict_cpp.re"
        { BOOST_WAVE_RET(T_MSEXT_PP_REGION); }
#line 3515 "strict_cpp_re.inc"
yy353:
        yych = *++YYCURSOR;
        if(yych == 'i') goto yy371;
        if(yych == 's') goto yy372;
        goto yy98;
yy354:
        yych = *++YYCURSOR;
        if(yych == 'd') goto yy360;
        goto yy98;
yy355:
        yych = *++YYCURSOR;
        if(yych != 'r') goto yy98;
        yych = *++YYCURSOR;
        if(yych != 'o') goto yy98;
        yych = *++YYCURSOR;
        if(yych != 'r') goto yy98;
        ++YYCURSOR;
#line 269 "strict_cpp.re"
        { BOOST_WAVE_RET(T_PP_ERROR); }
#line 3535 "strict_cpp_re.inc"
yy360:
        yych = *++YYCURSOR;
        if(yych == 'i') goto yy361;
        if(yych == 'r') goto yy362;
        goto yy98;
yy361:
        yych = *++YYCURSOR;
        if(yych == 'f') goto yy369;
        goto yy98;
yy362:
        yych = *++YYCURSOR;
        if(yych != 'e') goto yy98;
        yych = *++YYCURSOR;
        if(yych != 'g') goto yy98;
        yych = *++YYCURSOR;
        if(yych != 'i') goto yy98;
        yych = *++YYCURSOR;
        if(yych != 'o') goto yy98;
        yych = *++YYCURSOR;
        if(yych != 'n') goto yy98;
        ++YYCURSOR;
#line 275 "strict_cpp.re"
        { BOOST_WAVE_RET(T_MSEXT_PP_ENDREGION); }
#line 3559 "strict_cpp_re.inc"
yy369:
        ++YYCURSOR;
#line 265 "strict_cpp.re"
        { BOOST_WAVE_RET(T_PP_ENDIF); }
#line 3564 "strict_cpp_re.inc"
yy371:
        yych = *++YYCURSOR;
        if(yych == 'f') goto yy375;
        goto yy98;
yy372:
        yych = *++YYCURSOR;
        if(yych != 'e') goto yy98;
        ++YYCURSOR;
#line 263 "strict_cpp.re"
        { BOOST_WAVE_RET(T_PP_ELSE); }
#line 3575 "strict_cpp_re.inc"
yy375:
        ++YYCURSOR;
#line 264 "strict_cpp.re"
        { BOOST_WAVE_RET(T_PP_ELIF); }
#line 3580 "strict_cpp_re.inc"
yy377:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= 0x0D) {
            if(yych <= 0x08) goto yy98;
            if(yych <= 0x0C) goto yy377;
        } else {
            if(yych <= 0x1F) goto yy98;
            if(yych == '*') goto yy381;
            goto yy377;
        }
yy379:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= 0x0D) {
            if(yych <= 0x08) goto yy98;
            if(yych <= 0x0C) goto yy377;
            goto yy379;
        } else {
            if(yych <= 0x1F) goto yy98;
            if(yych != '*') goto yy377;
        }
yy381:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= 0x1F) {
            if(yych <= 0x08) goto yy98;
            if(yych <= 0x0C) goto yy377;
            if(yych >= 0x0E) goto yy98;
        } else {
            if(yych <= '*') {
                if(yych <= ')') goto yy377;
                goto yy381;
            } else {
                if(yych == '/') goto yy260;
                goto yy377;
            }
        }
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= 0x0D) {
            if(yych <= 0x08) goto yy98;
            if(yych <= 0x0C) goto yy377;
            goto yy379;
        } else {
            if(yych <= 0x1F) goto yy98;
            if(yych == '*') goto yy381;
            goto yy377;
        }
yy384:
        ++YYCURSOR;
#line 154 "strict_cpp.re"
        { 
            if (s->act_in_c99_mode) {
                --YYCURSOR;
                BOOST_WAVE_RET(T_COLON);
            }
            else {
                BOOST_WAVE_RET(T_COLON_COLON); 
            }
        }
#line 3646 "strict_cpp_re.inc"
yy386:
        ++YYCURSOR;
#line 138 "strict_cpp.re"
        { BOOST_WAVE_RET(T_RIGHTBRACKET_ALT); }
#line 3651 "strict_cpp_re.inc"
yy388:
        yyaccept = 12;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych <= 'e') {
            if(yych <= ' ') {
                if(yych <= 0x0A) {
                    if(yych == 0x09) goto yy261;
                } else {
                    if(yych <= 0x0C) goto yy261;
                    if(yych >= ' ') goto yy261;
                }
            } else {
                if(yych <= '.') {
                    if(yych == '%') goto yy394;
                } else {
                    if(yych <= '/') goto yy261;
                    if(yych >= 'd') goto yy261;
                }
            }
        } else {
            if(yych <= 'p') {
                if(yych <= 'k') {
                    if(yych == 'i') goto yy261;
                } else {
                    if(yych <= 'l') goto yy261;
                    if(yych >= 'p') goto yy261;
                }
            } else {
                if(yych <= 't') {
                    if(yych == 'r') goto yy261;
                } else {
                    if(yych == 'v') goto yy389;
                    if(yych <= 'w') goto yy261;
                }
            }
        }
yy389:
#line 140 "strict_cpp.re"
        { BOOST_WAVE_RET(T_POUND_ALT); }
#line 3691 "strict_cpp_re.inc"
yy390:
        ++YYCURSOR;
#line 199 "strict_cpp.re"
        { BOOST_WAVE_RET(T_PERCENTASSIGN); }
#line 3696 "strict_cpp_re.inc"
yy392:
        ++YYCURSOR;
#line 132 "strict_cpp.re"
        { BOOST_WAVE_RET(T_RIGHTBRACE_ALT); }
#line 3701 "strict_cpp_re.inc"
yy394:
        yych = *++YYCURSOR;
        if(yych != ':') goto yy98;
        ++YYCURSOR;
#line 146 "strict_cpp.re"
        { BOOST_WAVE_RET(T_POUND_POUND_ALT); }
#line 3708 "strict_cpp_re.inc"
yy397:
        ++YYCURSOR;
#line 215 "strict_cpp.re"
        { BOOST_WAVE_RET(T_LESSEQUAL); }
#line 3713 "strict_cpp_re.inc"
yy399:
        ++YYCURSOR;
        if((yych = *YYCURSOR) == '=') goto yy405;
#line 208 "strict_cpp.re"
        { BOOST_WAVE_RET(T_SHIFTLEFT); }
#line 3719 "strict_cpp_re.inc"
yy401:
        ++YYCURSOR;
#line 135 "strict_cpp.re"
        { BOOST_WAVE_RET(T_LEFTBRACKET_ALT); }
#line 3724 "strict_cpp_re.inc"
yy403:
        ++YYCURSOR;
#line 129 "strict_cpp.re"
        { BOOST_WAVE_RET(T_LEFTBRACE_ALT); }
#line 3729 "strict_cpp_re.inc"
yy405:
        ++YYCURSOR;
#line 211 "strict_cpp.re"
        { BOOST_WAVE_RET(T_SHIFTLEFTASSIGN); }
#line 3734 "strict_cpp_re.inc"
yy407:
        yych = *++YYCURSOR;
        switch(yych) {
        case '!':    goto yy420;
        case '\'':    goto yy418;
        case '(':    goto yy412;
        case ')':    goto yy414;
        case '-':    goto yy422;
        case '/':    goto yy424;
        case '<':    goto yy408;
        case '=':    goto yy416;
        case '>':    goto yy410;
        default:    goto yy98;
        }
yy408:
        ++YYCURSOR;
#line 128 "strict_cpp.re"
        { BOOST_WAVE_RET(T_LEFTBRACE_TRIGRAPH); }
#line 3753 "strict_cpp_re.inc"
yy410:
        ++YYCURSOR;
#line 131 "strict_cpp.re"
        { BOOST_WAVE_RET(T_RIGHTBRACE_TRIGRAPH); }
#line 3758 "strict_cpp_re.inc"
yy412:
        ++YYCURSOR;
#line 134 "strict_cpp.re"
        { BOOST_WAVE_RET(T_LEFTBRACKET_TRIGRAPH); }
#line 3763 "strict_cpp_re.inc"
yy414:
        ++YYCURSOR;
#line 137 "strict_cpp.re"
        { BOOST_WAVE_RET(T_RIGHTBRACKET_TRIGRAPH); }
#line 3768 "strict_cpp_re.inc"
yy416:
        yyaccept = 13;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych <= 'c') {
            if(yych <= ' ') {
                if(yych <= 0x0A) {
                    if(yych == 0x09) goto yy261;
                } else {
                    if(yych <= 0x0C) goto yy261;
                    if(yych >= ' ') goto yy261;
                }
            } else {
                if(yych <= '.') {
                    if(yych == '#') goto yy437;
                } else {
                    if(yych <= '/') goto yy261;
                    if(yych == '?') goto yy436;
                }
            }
        } else {
            if(yych <= 'p') {
                if(yych <= 'i') {
                    if(yych <= 'e') goto yy261;
                    if(yych >= 'i') goto yy261;
                } else {
                    if(yych == 'l') goto yy261;
                    if(yych >= 'p') goto yy261;
                }
            } else {
                if(yych <= 't') {
                    if(yych == 'r') goto yy261;
                } else {
                    if(yych == 'v') goto yy417;
                    if(yych <= 'w') goto yy261;
                }
            }
        }
yy417:
#line 141 "strict_cpp.re"
        { BOOST_WAVE_RET(T_POUND_TRIGRAPH); }
#line 3809 "strict_cpp_re.inc"
yy418:
        ++YYCURSOR;
        if((yych = *YYCURSOR) == '=') goto yy434;
#line 180 "strict_cpp.re"
        { BOOST_WAVE_RET(T_XOR_TRIGRAPH); }
#line 3815 "strict_cpp_re.inc"
yy420:
        yyaccept = 14;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych <= '>') {
            if(yych == '=') goto yy429;
        } else {
            if(yych <= '?') goto yy426;
            if(yych == '|') goto yy427;
        }
yy421:
#line 186 "strict_cpp.re"
        { BOOST_WAVE_RET(T_OR_TRIGRAPH); }
#line 3828 "strict_cpp_re.inc"
yy422:
        ++YYCURSOR;
#line 188 "strict_cpp.re"
        { BOOST_WAVE_RET(T_COMPL_TRIGRAPH); }
#line 3833 "strict_cpp_re.inc"
yy424:
        yyaccept = 15;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'U') goto yy186;
        if(yych == 'u') goto yy185;
yy425:
#line 238 "strict_cpp.re"
        { BOOST_WAVE_RET(T_ANY_TRIGRAPH); }
#line 3842 "strict_cpp_re.inc"
yy426:
        yych = *++YYCURSOR;
        if(yych == '?') goto yy431;
        goto yy98;
yy427:
        ++YYCURSOR;
#line 220 "strict_cpp.re"
        { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
#line 3851 "strict_cpp_re.inc"
yy429:
        ++YYCURSOR;
#line 207 "strict_cpp.re"
        { BOOST_WAVE_RET(T_ORASSIGN_TRIGRAPH); }
#line 3856 "strict_cpp_re.inc"
yy431:
        yych = *++YYCURSOR;
        if(yych != '!') goto yy98;
        ++YYCURSOR;
#line 223 "strict_cpp.re"
        { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
#line 3863 "strict_cpp_re.inc"
yy434:
        ++YYCURSOR;
#line 202 "strict_cpp.re"
        { BOOST_WAVE_RET(T_XORASSIGN_TRIGRAPH); }
#line 3868 "strict_cpp_re.inc"
yy436:
        yych = *++YYCURSOR;
        if(yych == '?') goto yy439;
        goto yy98;
yy437:
        ++YYCURSOR;
#line 144 "strict_cpp.re"
        { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
#line 3877 "strict_cpp_re.inc"
yy439:
        yych = *++YYCURSOR;
        if(yych != '=') goto yy98;
        ++YYCURSOR;
#line 145 "strict_cpp.re"
        { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
#line 3884 "strict_cpp_re.inc"
yy442:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        switch(yych) {
        case 'a':    goto yy443;
        case 'b':    goto yy444;
        case 'c':    goto yy445;
        case 'd':    goto yy446;
        case 'e':    goto yy495;
        case 'f':    goto yy493;
        case 'i':    goto yy492;
        case 'l':    goto yy496;
        case 's':    goto yy449;
        case 't':    goto yy494;
        default:    goto yy195;
        }
yy443:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 's') goto yy489;
        goto yy195;
yy444:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'a') goto yy484;
        goto yy195;
yy445:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'd') goto yy479;
        goto yy195;
yy446:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'e') goto yy471;
        goto yy195;
yy447:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'a') goto yy463;
        goto yy195;
yy448:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'n') goto yy457;
        goto yy195;
yy449:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 't') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'd') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'c') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'a') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'l') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'l') goto yy195;
        yyaccept = 16;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy456:
#line 119 "strict_cpp.re"
        { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_STDCALL : T_IDENTIFIER); }
#line 3960 "strict_cpp_re.inc"
yy457:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'l') goto yy195;
yy458:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'i') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'n') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 17;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy462:
#line 124 "strict_cpp.re"
        { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INLINE : T_IDENTIFIER); }
#line 3985 "strict_cpp_re.inc"
yy463:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 's') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 't') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'c') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'a') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'l') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'l') goto yy195;
        yyaccept = 18;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy470:
#line 118 "strict_cpp.re"
        { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FASTCALL : T_IDENTIFIER); }
#line 4015 "strict_cpp_re.inc"
yy471:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'c') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'l') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 's') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'p') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'c') goto yy195;
        yyaccept = 19;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy478:
#line 116 "strict_cpp.re"
        { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_DECLSPEC : T_IDENTIFIER); }
#line 4045 "strict_cpp_re.inc"
yy479:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'c') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'l') goto yy195;
        yyaccept = 20;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy483:
#line 117 "strict_cpp.re"
        { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_CDECL : T_IDENTIFIER); }
#line 4066 "strict_cpp_re.inc"
yy484:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 's') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'd') goto yy195;
        yyaccept = 21;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy488:
#line 115 "strict_cpp.re"
        { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_BASED : T_IDENTIFIER); }
#line 4087 "strict_cpp_re.inc"
yy489:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'm') goto yy195;
        yyaccept = 22;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy491:
#line 125 "strict_cpp.re"
        { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_ASM : T_IDENTIFIER); }
#line 4102 "strict_cpp_re.inc"
yy492:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'n') goto yy518;
        goto yy195;
yy493:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'a') goto yy463;
        if(yych == 'i') goto yy511;
        goto yy195;
yy494:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'r') goto yy508;
        goto yy195;
yy495:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'x') goto yy502;
        goto yy195;
yy496:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'a') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'v') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 23;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy501:
#line 123 "strict_cpp.re"
        { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_LEAVE : T_IDENTIFIER); }
#line 4147 "strict_cpp_re.inc"
yy502:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'c') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'p') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 't') goto yy195;
        yyaccept = 24;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy507:
#line 121 "strict_cpp.re"
        { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_EXCEPT : T_IDENTIFIER); }
#line 4171 "strict_cpp_re.inc"
yy508:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'y') goto yy195;
        yyaccept = 25;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy510:
#line 120 "strict_cpp.re"
        { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_TRY : T_IDENTIFIER); }
#line 4186 "strict_cpp_re.inc"
yy511:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'n') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'a') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'l') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'l') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'y') goto yy195;
        yyaccept = 26;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy517:
#line 122 "strict_cpp.re"
        { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FINALLY : T_IDENTIFIER); }
#line 4213 "strict_cpp_re.inc"
yy518:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'l') goto yy458;
        if(yych != 't') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        switch(yych) {
        case '1':    goto yy520;
        case '3':    goto yy521;
        case '6':    goto yy522;
        case '8':    goto yy523;
        default:    goto yy195;
        }
yy520:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == '6') goto yy529;
        goto yy195;
yy521:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == '2') goto yy527;
        goto yy195;
yy522:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == '4') goto yy525;
        goto yy195;
yy523:
        yyaccept = 27;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy524:
#line 111 "strict_cpp.re"
        { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT8 : T_IDENTIFIER); }
#line 4254 "strict_cpp_re.inc"
yy525:
        yyaccept = 28;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy526:
#line 114 "strict_cpp.re"
        { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT64 : T_IDENTIFIER); }
#line 4266 "strict_cpp_re.inc"
yy527:
        yyaccept = 29;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy528:
#line 113 "strict_cpp.re"
        { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT32 : T_IDENTIFIER); }
#line 4278 "strict_cpp_re.inc"
yy529:
        yyaccept = 30;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy530:
#line 112 "strict_cpp.re"
        { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT16 : T_IDENTIFIER); }
#line 4290 "strict_cpp_re.inc"
yy531:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'h') goto yy537;
        goto yy195;
yy532:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'i') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'l') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 31;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy536:
#line 109 "strict_cpp.re"
        { BOOST_WAVE_RET(T_WHILE); }
#line 4316 "strict_cpp_re.inc"
yy537:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'a') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'r') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != '_') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 't') goto yy195;
        yyaccept = 32;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy542:
#line 108 "strict_cpp.re"
        { BOOST_WAVE_RET(T_WCHART); }
#line 4340 "strict_cpp_re.inc"
yy543:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'r') goto yy555;
        goto yy195;
yy544:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'i') goto yy545;
        if(yych == 'l') goto yy546;
        goto yy195;
yy545:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'd') goto yy553;
        goto yy195;
yy546:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'a') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 't') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'i') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'l') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 33;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy552:
#line 107 "strict_cpp.re"
        { BOOST_WAVE_RET(T_VOLATILE); }
#line 4383 "strict_cpp_re.inc"
yy553:
        yyaccept = 34;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy554:
#line 106 "strict_cpp.re"
        { BOOST_WAVE_RET(T_VOID); }
#line 4395 "strict_cpp_re.inc"
yy555:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 't') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'u') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'a') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'l') goto yy195;
        yyaccept = 35;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy560:
#line 105 "strict_cpp.re"
        { BOOST_WAVE_RET(T_VIRTUAL); }
#line 4419 "strict_cpp_re.inc"
yy561:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'i') goto yy567;
        if(yych == 's') goto yy568;
        goto yy195;
yy562:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'i') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'n') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'g') goto yy195;
        yyaccept = 36;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy566:
#line 104 "strict_cpp.re"
        { BOOST_WAVE_RET(T_USING); }
#line 4446 "strict_cpp_re.inc"
yy567:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'o') goto yy575;
        goto yy195;
yy568:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'i') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'g') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'n') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'd') goto yy195;
        yyaccept = 37;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy574:
#line 103 "strict_cpp.re"
        { BOOST_WAVE_RET(T_UNSIGNED); }
#line 4478 "strict_cpp_re.inc"
yy575:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'n') goto yy195;
        yyaccept = 38;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy577:
#line 102 "strict_cpp.re"
        { BOOST_WAVE_RET(T_UNION); }
#line 4493 "strict_cpp_re.inc"
yy578:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'm') goto yy608;
        goto yy195;
yy579:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'i') goto yy601;
        if(yych == 'r') goto yy602;
        goto yy195;
yy580:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'u') goto yy596;
        if(yych == 'y') goto yy597;
        goto yy195;
yy581:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'p') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych <= 'h') {
            if(yych != 'd') goto yy195;
        } else {
            if(yych <= 'i') goto yy585;
            if(yych == 'n') goto yy586;
            goto yy195;
        }
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'e') goto yy593;
        goto yy195;
yy585:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'd') goto yy591;
        goto yy195;
yy586:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'a') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'm') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 39;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy590:
#line 101 "strict_cpp.re"
        { BOOST_WAVE_RET(T_TYPENAME); }
#line 4556 "strict_cpp_re.inc"
yy591:
        yyaccept = 40;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy592:
#line 100 "strict_cpp.re"
        { BOOST_WAVE_RET(T_TYPEID); }
#line 4568 "strict_cpp_re.inc"
yy593:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'f') goto yy195;
        yyaccept = 41;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy595:
#line 99 "strict_cpp.re"
        { BOOST_WAVE_RET(T_TYPEDEF); }
#line 4583 "strict_cpp_re.inc"
yy596:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'e') goto yy599;
        goto yy195;
yy597:
        yyaccept = 42;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy598:
#line 98 "strict_cpp.re"
        { BOOST_WAVE_RET(T_TRY); }
#line 4600 "strict_cpp_re.inc"
yy599:
        yyaccept = 43;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy600:
#line 97 "strict_cpp.re"
        { BOOST_WAVE_RET(T_TRUE); }
#line 4612 "strict_cpp_re.inc"
yy601:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 's') goto yy606;
        goto yy195;
yy602:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'o') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'w') goto yy195;
        yyaccept = 44;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy605:
#line 96 "strict_cpp.re"
        { BOOST_WAVE_RET(T_THROW); }
#line 4635 "strict_cpp_re.inc"
yy606:
        yyaccept = 45;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy607:
#line 95 "strict_cpp.re"
        { BOOST_WAVE_RET(T_THIS); }
#line 4647 "strict_cpp_re.inc"
yy608:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'p') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'l') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'a') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 't') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 46;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy614:
#line 94 "strict_cpp.re"
        { BOOST_WAVE_RET(T_TEMPLATE); }
#line 4674 "strict_cpp_re.inc"
yy615:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'o') goto yy650;
        goto yy195;
yy616:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'g') goto yy640;
        if(yych == 'z') goto yy641;
        goto yy195;
yy617:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'a') goto yy624;
        if(yych == 'r') goto yy625;
        goto yy195;
yy618:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'i') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 't') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'c') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'h') goto yy195;
        yyaccept = 47;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy623:
#line 93 "strict_cpp.re"
        { BOOST_WAVE_RET(T_SWITCH); }
#line 4715 "strict_cpp_re.inc"
yy624:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 't') goto yy630;
        goto yy195;
yy625:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'u') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'c') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 't') goto yy195;
        yyaccept = 48;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy629:
#line 92 "strict_cpp.re"
        { BOOST_WAVE_RET(T_STRUCT); }
#line 4741 "strict_cpp_re.inc"
yy630:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'i') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'c') goto yy195;
        yyaccept = 49;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych <= 'Z') {
            if(yych <= '>') {
                if(yych <= '/') goto yy633;
                if(yych <= '9') goto yy194;
            } else {
                if(yych <= '?') goto yy197;
                if(yych >= 'A') goto yy194;
            }
        } else {
            if(yych <= '^') {
                if(yych == '\\') goto yy196;
            } else {
                if(yych <= '_') goto yy634;
                if(yych <= '`') goto yy633;
                if(yych <= 'z') goto yy194;
            }
        }
yy633:
#line 90 "strict_cpp.re"
        { BOOST_WAVE_RET(T_STATIC); }
#line 4771 "strict_cpp_re.inc"
yy634:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'c') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'a') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 's') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 't') goto yy195;
        yyaccept = 50;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy639:
#line 91 "strict_cpp.re"
        { BOOST_WAVE_RET(T_STATICCAST); }
#line 4795 "strict_cpp_re.inc"
yy640:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'n') goto yy646;
        goto yy195;
yy641:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'o') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'f') goto yy195;
        yyaccept = 51;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy645:
#line 89 "strict_cpp.re"
        { BOOST_WAVE_RET(T_SIZEOF); }
#line 4821 "strict_cpp_re.inc"
yy646:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'd') goto yy195;
        yyaccept = 52;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy649:
#line 88 "strict_cpp.re"
        { BOOST_WAVE_RET(T_SIGNED); }
#line 4839 "strict_cpp_re.inc"
yy650:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'r') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 't') goto yy195;
        yyaccept = 53;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy653:
#line 87 "strict_cpp.re"
        { BOOST_WAVE_RET(T_SHORT); }
#line 4857 "strict_cpp_re.inc"
yy654:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych <= 'h') {
            if(yych != 'g') goto yy195;
        } else {
            if(yych <= 'i') goto yy656;
            if(yych == 't') goto yy657;
            goto yy195;
        }
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'i') goto yy676;
        goto yy195;
yy656:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'n') goto yy662;
        goto yy195;
yy657:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'u') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'r') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'n') goto yy195;
        yyaccept = 54;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy661:
#line 86 "strict_cpp.re"
        { BOOST_WAVE_RET(T_RETURN); }
#line 4897 "strict_cpp_re.inc"
yy662:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 't') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'r') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'p') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'r') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 't') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != '_') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'c') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'a') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 's') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 't') goto yy195;
        yyaccept = 55;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy675:
#line 85 "strict_cpp.re"
        { BOOST_WAVE_RET(T_REINTERPRETCAST); }
#line 4945 "strict_cpp_re.inc"
yy676:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 's') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 't') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'r') goto yy195;
        yyaccept = 56;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy681:
#line 84 "strict_cpp.re"
        { BOOST_WAVE_RET(T_REGISTER); }
#line 4969 "strict_cpp_re.inc"
yy682:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'i') goto yy689;
        if(yych == 'o') goto yy690;
        goto yy195;
yy683:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'b') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'l') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'i') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'c') goto yy195;
        yyaccept = 57;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy688:
#line 83 "strict_cpp.re"
        { BOOST_WAVE_RET(T_PUBLIC); }
#line 4999 "strict_cpp_re.inc"
yy689:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'v') goto yy698;
        goto yy195;
yy690:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 't') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'c') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 't') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'd') goto yy195;
        yyaccept = 58;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy697:
#line 82 "strict_cpp.re"
        { BOOST_WAVE_RET(T_PROTECTED); }
#line 5034 "strict_cpp_re.inc"
yy698:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'a') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 't') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 59;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy702:
#line 81 "strict_cpp.re"
        { BOOST_WAVE_RET(T_PRIVATE); }
#line 5055 "strict_cpp_re.inc"
yy703:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'e') goto yy710;
        goto yy195;
yy704:
        yyaccept = 60;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych <= 'Z') {
            if(yych <= '>') {
                if(yych <= '/') goto yy705;
                if(yych <= '9') goto yy194;
            } else {
                if(yych <= '?') goto yy197;
                if(yych >= 'A') goto yy194;
            }
        } else {
            if(yych <= '^') {
                if(yych == '\\') goto yy196;
            } else {
                if(yych <= '_') goto yy706;
                if(yych <= '`') goto yy705;
                if(yych <= 'z') goto yy194;
            }
        }
yy705:
#line 222 "strict_cpp.re"
        { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OROR_ALT); }
#line 5084 "strict_cpp_re.inc"
yy706:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'q') goto yy195;
        yyaccept = 61;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy709:
#line 206 "strict_cpp.re"
        { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ORASSIGN_ALT); }
#line 5102 "strict_cpp_re.inc"
yy710:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'r') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'a') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 't') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'o') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'r') goto yy195;
        yyaccept = 62;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy716:
#line 80 "strict_cpp.re"
        { BOOST_WAVE_RET(T_OPERATOR); }
#line 5129 "strict_cpp_re.inc"
yy717:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'm') goto yy728;
        goto yy195;
yy718:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'w') goto yy726;
        goto yy195;
yy719:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 't') goto yy195;
        yyaccept = 63;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych <= 'Z') {
            if(yych <= '>') {
                if(yych <= '/') goto yy721;
                if(yych <= '9') goto yy194;
            } else {
                if(yych <= '?') goto yy197;
                if(yych >= 'A') goto yy194;
            }
        } else {
            if(yych <= '^') {
                if(yych == '\\') goto yy196;
            } else {
                if(yych <= '_') goto yy722;
                if(yych <= '`') goto yy721;
                if(yych <= 'z') goto yy194;
            }
        }
yy721:
#line 191 "strict_cpp.re"
        { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOT_ALT); }
#line 5166 "strict_cpp_re.inc"
yy722:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'q') goto yy195;
        yyaccept = 64;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy725:
#line 214 "strict_cpp.re"
        { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOTEQUAL_ALT); }
#line 5184 "strict_cpp_re.inc"
yy726:
        yyaccept = 65;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy727:
#line 79 "strict_cpp.re"
        { BOOST_WAVE_RET(T_NEW); }
#line 5196 "strict_cpp_re.inc"
yy728:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 's') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'p') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'a') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'c') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 66;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy735:
#line 78 "strict_cpp.re"
        { BOOST_WAVE_RET(T_NAMESPACE); }
#line 5226 "strict_cpp_re.inc"
yy736:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 't') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'a') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'b') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'l') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 67;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy742:
#line 77 "strict_cpp.re"
        { BOOST_WAVE_RET(T_MUTABLE); }
#line 5253 "strict_cpp_re.inc"
yy743:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'n') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'g') goto yy195;
        yyaccept = 68;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy746:
#line 76 "strict_cpp.re"
        { BOOST_WAVE_RET(T_LONG); }
#line 5271 "strict_cpp_re.inc"
yy747:
        yyaccept = 69;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy748:
#line 73 "strict_cpp.re"
        { BOOST_WAVE_RET(T_IF); }
#line 5283 "strict_cpp_re.inc"
yy749:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'l') goto yy750;
        if(yych == 't') goto yy751;
        goto yy195;
yy750:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'i') goto yy753;
        goto yy195;
yy751:
        yyaccept = 70;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy752:
#line 75 "strict_cpp.re"
        { BOOST_WAVE_RET(T_INT); }
#line 5306 "strict_cpp_re.inc"
yy753:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'n') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 71;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy756:
#line 74 "strict_cpp.re"
        { BOOST_WAVE_RET(T_INLINE); }
#line 5324 "strict_cpp_re.inc"
yy757:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 't') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'o') goto yy195;
        yyaccept = 72;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy760:
#line 72 "strict_cpp.re"
        { BOOST_WAVE_RET(T_GOTO); }
#line 5342 "strict_cpp_re.inc"
yy761:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'l') goto yy776;
        goto yy195;
yy762:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'o') goto yy772;
        goto yy195;
yy763:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'r') goto yy770;
        goto yy195;
yy764:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'i') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'n') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'd') goto yy195;
        yyaccept = 73;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy769:
#line 71 "strict_cpp.re"
        { BOOST_WAVE_RET(T_FRIEND); }
#line 5381 "strict_cpp_re.inc"
yy770:
        yyaccept = 74;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy771:
#line 70 "strict_cpp.re"
        { BOOST_WAVE_RET(T_FOR); }
#line 5393 "strict_cpp_re.inc"
yy772:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'a') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 't') goto yy195;
        yyaccept = 75;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy775:
#line 69 "strict_cpp.re"
        { BOOST_WAVE_RET(T_FLOAT); }
#line 5411 "strict_cpp_re.inc"
yy776:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 's') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 76;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy779:
#line 68 "strict_cpp.re"
        { BOOST_WAVE_RET(T_FALSE); }
#line 5429 "strict_cpp_re.inc"
yy780:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 's') goto yy802;
        goto yy195;
yy781:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'u') goto yy799;
        goto yy195;
yy782:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'p') goto yy783;
        if(yych == 't') goto yy784;
        goto yy195;
yy783:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'l') goto yy789;
        if(yych == 'o') goto yy790;
        goto yy195;
yy784:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'r') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'n') goto yy195;
        yyaccept = 77;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy788:
#line 67 "strict_cpp.re"
        { BOOST_WAVE_RET(T_EXTERN); }
#line 5472 "strict_cpp_re.inc"
yy789:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'i') goto yy794;
        goto yy195;
yy790:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'r') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 't') goto yy195;
        yyaccept = 78;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy793:
#line 66 "strict_cpp.re"
        { BOOST_WAVE_RET(T_EXPORT); }
#line 5495 "strict_cpp_re.inc"
yy794:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'c') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'i') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 't') goto yy195;
        yyaccept = 79;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy798:
#line 65 "strict_cpp.re"
        { BOOST_WAVE_RET(T_EXPLICIT); }
#line 5516 "strict_cpp_re.inc"
yy799:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'm') goto yy195;
        yyaccept = 80;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy801:
#line 64 "strict_cpp.re"
        { BOOST_WAVE_RET(T_ENUM); }
#line 5531 "strict_cpp_re.inc"
yy802:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 81;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy804:
#line 63 "strict_cpp.re"
        { BOOST_WAVE_RET(T_ELSE); }
#line 5546 "strict_cpp_re.inc"
yy805:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'f') goto yy825;
        if(yych == 'l') goto yy826;
        goto yy195;
yy806:
        yyaccept = 82;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych <= '[') {
            if(yych <= '>') {
                if(yych <= '/') goto yy807;
                if(yych <= '9') goto yy194;
            } else {
                if(yych <= '?') goto yy197;
                if(yych <= '@') goto yy807;
                if(yych <= 'Z') goto yy194;
            }
        } else {
            if(yych <= '`') {
                if(yych <= '\\') goto yy196;
                if(yych == '_') goto yy194;
            } else {
                if(yych == 'u') goto yy820;
                if(yych <= 'z') goto yy194;
            }
        }
yy807:
#line 60 "strict_cpp.re"
        { BOOST_WAVE_RET(T_DO); }
#line 5577 "strict_cpp_re.inc"
yy808:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'n') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'a') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'm') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'i') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'c') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != '_') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'c') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'a') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 's') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 't') goto yy195;
        yyaccept = 83;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy819:
#line 62 "strict_cpp.re"
        { BOOST_WAVE_RET(T_DYNAMICCAST); }
#line 5619 "strict_cpp_re.inc"
yy820:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'b') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'l') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 84;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy824:
#line 61 "strict_cpp.re"
        { BOOST_WAVE_RET(T_DOUBLE); }
#line 5640 "strict_cpp_re.inc"
yy825:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'a') goto yy831;
        goto yy195;
yy826:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 't') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 85;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy830:
#line 59 "strict_cpp.re"
        { BOOST_WAVE_RET(T_DELETE); }
#line 5666 "strict_cpp_re.inc"
yy831:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'u') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'l') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 't') goto yy195;
        yyaccept = 86;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy835:
#line 58 "strict_cpp.re"
        { BOOST_WAVE_RET(T_DEFAULT); }
#line 5687 "strict_cpp_re.inc"
yy836:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych <= 'r') goto yy195;
        if(yych <= 's') goto yy867;
        if(yych <= 't') goto yy868;
        goto yy195;
yy837:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'a') goto yy864;
        goto yy195;
yy838:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'a') goto yy860;
        goto yy195;
yy839:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych <= 'l') goto yy195;
        if(yych <= 'm') goto yy841;
        if(yych >= 'o') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych <= 'r') goto yy195;
        if(yych <= 's') goto yy845;
        if(yych <= 't') goto yy846;
        goto yy195;
yy841:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'p') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'l') goto yy195;
        yyaccept = 87;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy844:
#line 189 "strict_cpp.re"
        { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_COMPL_ALT); }
#line 5734 "strict_cpp_re.inc"
yy845:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 't') goto yy852;
        goto yy195;
yy846:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'i') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'n') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'u') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 88;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy851:
#line 57 "strict_cpp.re"
        { BOOST_WAVE_RET(T_CONTINUE); }
#line 5763 "strict_cpp_re.inc"
yy852:
        yyaccept = 89;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych <= 'Z') {
            if(yych <= '>') {
                if(yych <= '/') goto yy853;
                if(yych <= '9') goto yy194;
            } else {
                if(yych <= '?') goto yy197;
                if(yych >= 'A') goto yy194;
            }
        } else {
            if(yych <= '^') {
                if(yych == '\\') goto yy196;
            } else {
                if(yych <= '_') goto yy854;
                if(yych <= '`') goto yy853;
                if(yych <= 'z') goto yy194;
            }
        }
yy853:
#line 55 "strict_cpp.re"
        { BOOST_WAVE_RET(T_CONST); }
#line 5787 "strict_cpp_re.inc"
yy854:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'c') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'a') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 's') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 't') goto yy195;
        yyaccept = 90;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy859:
#line 56 "strict_cpp.re"
        { BOOST_WAVE_RET(T_CONSTCAST); }
#line 5811 "strict_cpp_re.inc"
yy860:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 's') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 's') goto yy195;
        yyaccept = 91;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy863:
#line 54 "strict_cpp.re"
        { BOOST_WAVE_RET(T_CLASS); }
#line 5829 "strict_cpp_re.inc"
yy864:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'r') goto yy195;
        yyaccept = 92;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy866:
#line 53 "strict_cpp.re"
        { BOOST_WAVE_RET(T_CHAR); }
#line 5844 "strict_cpp_re.inc"
yy867:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'e') goto yy872;
        goto yy195;
yy868:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'c') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'h') goto yy195;
        yyaccept = 93;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy871:
#line 52 "strict_cpp.re"
        { BOOST_WAVE_RET(T_CATCH); }
#line 5867 "strict_cpp_re.inc"
yy872:
        yyaccept = 94;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy873:
#line 51 "strict_cpp.re"
        { BOOST_WAVE_RET(T_CASE); }
#line 5879 "strict_cpp_re.inc"
yy874:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 't') goto yy884;
        goto yy195;
yy875:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'o') goto yy881;
        goto yy195;
yy876:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'a') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'k') goto yy195;
        yyaccept = 95;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy880:
#line 50 "strict_cpp.re"
        { BOOST_WAVE_RET(T_BREAK); }
#line 5910 "strict_cpp_re.inc"
yy881:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'l') goto yy195;
        yyaccept = 96;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy883:
#line 49 "strict_cpp.re"
        { BOOST_WAVE_RET(T_BOOL); }
#line 5925 "strict_cpp_re.inc"
yy884:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'a') goto yy885;
        if(yych == 'o') goto yy886;
        goto yy195;
yy885:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'n') goto yy889;
        goto yy195;
yy886:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'r') goto yy195;
        yyaccept = 97;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy888:
#line 185 "strict_cpp.re"
        { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OR_ALT); }
#line 5951 "strict_cpp_re.inc"
yy889:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'd') goto yy195;
        yyaccept = 98;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy891:
#line 183 "strict_cpp.re"
        { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_AND_ALT); }
#line 5966 "strict_cpp_re.inc"
yy892:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'd') goto yy900;
        goto yy195;
yy893:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == 'm') goto yy898;
        goto yy195;
yy894:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 't') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'o') goto yy195;
        yyaccept = 99;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy897:
#line 48 "strict_cpp.re"
        { BOOST_WAVE_RET(T_AUTO); }
#line 5994 "strict_cpp_re.inc"
yy898:
        yyaccept = 100;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy899:
#line 47 "strict_cpp.re"
        { BOOST_WAVE_RET(T_ASM); }
#line 6006 "strict_cpp_re.inc"
yy900:
        yyaccept = 101;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych <= 'Z') {
            if(yych <= '>') {
                if(yych <= '/') goto yy901;
                if(yych <= '9') goto yy194;
            } else {
                if(yych <= '?') goto yy197;
                if(yych >= 'A') goto yy194;
            }
        } else {
            if(yych <= '^') {
                if(yych == '\\') goto yy196;
            } else {
                if(yych <= '_') goto yy902;
                if(yych <= '`') goto yy901;
                if(yych <= 'z') goto yy194;
            }
        }
yy901:
#line 218 "strict_cpp.re"
        { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDAND_ALT); }
#line 6030 "strict_cpp_re.inc"
yy902:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'e') goto yy195;
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != 'q') goto yy195;
        yyaccept = 102;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 4) {
            goto yy194;
        }
        if(yych == '?') goto yy197;
        if(yych == '\\') goto yy196;
yy905:
#line 204 "strict_cpp.re"
        { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDASSIGN_ALT); }
#line 6048 "strict_cpp_re.inc"
yy906:
        ++YYCURSOR;
#line 165 "strict_cpp.re"
        { 
            if (s->act_in_c99_mode) {
                --YYCURSOR;
                BOOST_WAVE_RET(T_DOT);
            }
            else {
                BOOST_WAVE_RET(T_DOTSTAR); 
            }
        }
#line 6061 "strict_cpp_re.inc"
yy908:
        yych = *++YYCURSOR;
        if(yych == '.') goto yy910;
        goto yy98;
yy909:
        yych = *++YYCURSOR;
        goto yy7;
yy910:
        ++YYCURSOR;
#line 151 "strict_cpp.re"
        { BOOST_WAVE_RET(T_ELLIPSIS); }
#line 6073 "strict_cpp_re.inc"
yy912:
        ++YYCURSOR;
#line 198 "strict_cpp.re"
        { BOOST_WAVE_RET(T_DIVIDEASSIGN); }
#line 6078 "strict_cpp_re.inc"
yy914:
        ++YYCURSOR;
#line 44 "strict_cpp.re"
        { goto cppcomment; }
#line 6083 "strict_cpp_re.inc"
yy916:
        ++YYCURSOR;
#line 43 "strict_cpp.re"
        { goto ccomment; }
#line 6088 "strict_cpp_re.inc"
    }
}
#line 306 "strict_cpp.re"


ccomment:
{

#line 6097 "strict_cpp_re.inc"
    {
        YYCTYPE yych;
        if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
        yych = *YYCURSOR;
        if(yych <= 0x0C) {
            if(yych <= 0x08) {
                if(yych <= 0x00) goto yy927;
                goto yy929;
            } else {
                if(yych == 0x0A) goto yy922;
                goto yy925;
            }
        } else {
            if(yych <= 0x1F) {
                if(yych <= 0x0D) goto yy924;
                goto yy929;
            } else {
                if(yych != '*') goto yy926;
            }
        }
        ++YYCURSOR;
        if((yych = *YYCURSOR) == '/') goto yy932;
yy921:
#line 321 "strict_cpp.re"
        { goto ccomment; }
#line 6123 "strict_cpp_re.inc"
yy922:
        ++YYCURSOR;
yy923:
#line 313 "strict_cpp.re"
        {
        /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF);*/
        /*s->tok = cursor; */
        s->line += count_backslash_newlines(s, cursor) +1;
        cursor.column = 1;
        goto ccomment;
    }
#line 6135 "strict_cpp_re.inc"
yy924:
        yych = *++YYCURSOR;
        if(yych == 0x0A) goto yy931;
        goto yy923;
yy925:
        yych = *++YYCURSOR;
        goto yy921;
yy926:
        yych = *++YYCURSOR;
        goto yy921;
yy927:
        ++YYCURSOR;
#line 324 "strict_cpp.re"
        {
        if(cursor == s->eof) 
        {
            BOOST_WAVE_UPDATE_CURSOR();   // adjust the input cursor
            (*s->error_proc)(s, "unterminated 'C' style comment");
        }
        else
        {
            --YYCURSOR;                   // next call returns T_EOF
            BOOST_WAVE_UPDATE_CURSOR();   // adjust the input cursor
            (*s->error_proc)(s, "invalid character: '\\000' in input stream");
        }
    }
#line 6162 "strict_cpp_re.inc"
yy929:
        ++YYCURSOR;
#line 339 "strict_cpp.re"
        {
        // flag the error
        BOOST_WAVE_UPDATE_CURSOR();   // adjust the input cursor
        (*s->error_proc)(s, "invalid character '\\%03o' in input stream", 
            *--YYCURSOR);
    }
#line 6172 "strict_cpp_re.inc"
yy931:
        yych = *++YYCURSOR;
        goto yy923;
yy932:
        ++YYCURSOR;
#line 310 "strict_cpp.re"
        { BOOST_WAVE_RET(T_CCOMMENT); }
#line 6180 "strict_cpp_re.inc"
    }
}
#line 345 "strict_cpp.re"


cppcomment:
{

#line 6189 "strict_cpp_re.inc"
    {
        YYCTYPE yych;
        if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
        yych = *YYCURSOR;
        if(yych <= 0x0A) {
            if(yych <= 0x00) goto yy942;
            if(yych <= 0x08) goto yy944;
            if(yych <= 0x09) goto yy939;
        } else {
            if(yych <= 0x0C) goto yy939;
            if(yych <= 0x0D) goto yy938;
            if(yych <= 0x1F) goto yy944;
            goto yy941;
        }
        ++YYCURSOR;
yy937:
#line 350 "strict_cpp.re"
        {
        /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF); */
        /*s->tok = cursor; */
        s->line++;
        cursor.column = 1;
        BOOST_WAVE_RET(T_CPPCOMMENT);
    }
#line 6214 "strict_cpp_re.inc"
yy938:
        yych = *++YYCURSOR;
        if(yych == 0x0A) goto yy946;
        goto yy937;
yy939:
        ++YYCURSOR;
yy940:
#line 358 "strict_cpp.re"
        { goto cppcomment; }
#line 6224 "strict_cpp_re.inc"
yy941:
        yych = *++YYCURSOR;
        goto yy940;
yy942:
        ++YYCURSOR;
#line 361 "strict_cpp.re"
        {
        if (cursor != s->eof) 
        {
            --YYCURSOR;                     // next call returns T_EOF
            BOOST_WAVE_UPDATE_CURSOR();     // adjust the input cursor
            (*s->error_proc)(s, "invalid character '\\000' in input stream");
        }
        
        --YYCURSOR;                         // next call returns T_EOF
        if (!s->single_line_only)
        {
            BOOST_WAVE_UPDATE_CURSOR();     // adjust the input cursor
            (*s->error_proc)(s, "Unterminated 'C++' style comment");
        }
        BOOST_WAVE_RET(T_CPPCOMMENT);
    }
#line 6247 "strict_cpp_re.inc"
yy944:
        ++YYCURSOR;
#line 379 "strict_cpp.re"
        {
        // flag the error
        BOOST_WAVE_UPDATE_CURSOR();     // adjust the input cursor
        (*s->error_proc)(s, "invalid character '\\%03o' in input stream",
            *--YYCURSOR);
    }
#line 6257 "strict_cpp_re.inc"
yy946:
        ++YYCURSOR;
        yych = *YYCURSOR;
        goto yy937;
    }
}
#line 385 "strict_cpp.re"


/* this subscanner is called whenever a pp_number has been started */
pp_number:
{
    cursor = uchar_wrapper(s->tok = s->cur, s->column = s->curr_column);
    marker = uchar_wrapper(s->ptr);
    limit = uchar_wrapper(s->lim);

    if (s->detect_pp_numbers) {
    {
    static unsigned char yybm[] = {
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,  64,   0, 
         64,  64,  64,  64,  64,  64,  64,  64, 
         64,  64,   0,   0,   0,   0,   0,   0, 
          0,  64,  64,  64,  64, 128,  64,  64, 
         64,  64,  64,  64,  64,  64,  64,  64, 
         64,  64,  64,  64,  64,  64,  64,  64, 
         64,  64,  64,   0,   0,   0,   0,  64, 
          0,  64,  64,  64,  64, 128,  64,  64, 
         64,  64,  64,  64,  64,  64,  64,  64, 
         64,  64,  64,  64,  64,  64,  64,  64, 
         64,  64,  64,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
    };

#line 6311 "strict_cpp_re.inc"
    {
        YYCTYPE yych;
        if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
        yych = *YYCURSOR;
        if(yych == '.') goto yy950;
        if(yych <= '/') goto yy949;
        if(yych <= '9') goto yy951;
yy949:
        YYCURSOR = YYMARKER;
        goto yy953;
yy950:
        yych = *++YYCURSOR;
        if(yych <= '/') goto yy949;
        if(yych >= ':') goto yy949;
yy951:
        YYMARKER = ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yybm[0+yych] & 64) {
            goto yy951;
        }
        if(yych <= 'Z') {
            if(yych == '?') goto yy957;
            if(yych >= 'A') goto yy954;
        } else {
            if(yych <= '\\') {
                if(yych >= '\\') goto yy956;
            } else {
                if(yych == 'e') goto yy954;
            }
        }
yy953:
#line 397 "strict_cpp.re"
        { BOOST_WAVE_RET(T_PP_NUMBER); }
#line 6346 "strict_cpp_re.inc"
yy954:
        YYMARKER = ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yybm[0+yych] & 128) {
            goto yy954;
        }
        if(yych <= '?') {
            if(yych <= '.') {
                if(yych == '+') goto yy951;
                if(yych <= ',') goto yy953;
                goto yy951;
            } else {
                if(yych <= '/') goto yy953;
                if(yych <= '9') goto yy951;
                if(yych <= '>') goto yy953;
                goto yy957;
            }
        } else {
            if(yych <= '\\') {
                if(yych <= '@') goto yy953;
                if(yych <= 'Z') goto yy951;
                if(yych <= '[') goto yy953;
            } else {
                if(yych <= '_') {
                    if(yych <= '^') goto yy953;
                    goto yy951;
                } else {
                    if(yych <= '`') goto yy953;
                    if(yych <= 'z') goto yy951;
                    goto yy953;
                }
            }
        }
yy956:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych == 'U') goto yy960;
        if(yych == 'u') goto yy959;
        goto yy949;
yy957:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych != '?') goto yy949;
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych == '/') goto yy956;
        goto yy949;
yy959:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy949;
            if(yych <= '9') goto yy968;
            goto yy949;
        } else {
            if(yych <= 'F') goto yy968;
            if(yych <= '`') goto yy949;
            if(yych <= 'f') goto yy968;
            goto yy949;
        }
yy960:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy949;
            if(yych >= ':') goto yy949;
        } else {
            if(yych <= 'F') goto yy961;
            if(yych <= '`') goto yy949;
            if(yych >= 'g') goto yy949;
        }
yy961:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy949;
            if(yych >= ':') goto yy949;
        } else {
            if(yych <= 'F') goto yy962;
            if(yych <= '`') goto yy949;
            if(yych >= 'g') goto yy949;
        }
yy962:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy949;
            if(yych >= ':') goto yy949;
        } else {
            if(yych <= 'F') goto yy963;
            if(yych <= '`') goto yy949;
            if(yych >= 'g') goto yy949;
        }
yy963:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy949;
            if(yych >= ':') goto yy949;
        } else {
            if(yych <= 'F') goto yy964;
            if(yych <= '`') goto yy949;
            if(yych >= 'g') goto yy949;
        }
yy964:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy949;
            if(yych >= ':') goto yy949;
        } else {
            if(yych <= 'F') goto yy965;
            if(yych <= '`') goto yy949;
            if(yych >= 'g') goto yy949;
        }
yy965:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy949;
            if(yych >= ':') goto yy949;
        } else {
            if(yych <= 'F') goto yy966;
            if(yych <= '`') goto yy949;
            if(yych >= 'g') goto yy949;
        }
yy966:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy949;
            if(yych >= ':') goto yy949;
        } else {
            if(yych <= 'F') goto yy967;
            if(yych <= '`') goto yy949;
            if(yych >= 'g') goto yy949;
        }
yy967:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy949;
            if(yych <= '9') goto yy951;
            goto yy949;
        } else {
            if(yych <= 'F') goto yy951;
            if(yych <= '`') goto yy949;
            if(yych <= 'f') goto yy951;
            goto yy949;
        }
yy968:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy949;
            if(yych >= ':') goto yy949;
        } else {
            if(yych <= 'F') goto yy969;
            if(yych <= '`') goto yy949;
            if(yych >= 'g') goto yy949;
        }
yy969:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy949;
            if(yych >= ':') goto yy949;
        } else {
            if(yych <= 'F') goto yy970;
            if(yych <= '`') goto yy949;
            if(yych >= 'g') goto yy949;
        }
yy970:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yych <= '@') {
            if(yych <= '/') goto yy949;
            if(yych <= '9') goto yy951;
            goto yy949;
        } else {
            if(yych <= 'F') goto yy951;
            if(yych <= '`') goto yy949;
            if(yych <= 'f') goto yy951;
            goto yy949;
        }
    }
}
#line 398 "strict_cpp.re"

    }
    else {
    {
    static unsigned char yybm[] = {
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
        224, 224, 224, 224, 224, 224, 224, 224, 
        160, 160,   0,   0,   0,   0,   0,   0, 
          0, 128, 128, 128, 128, 128, 128,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0, 128, 128, 128, 128, 128, 128,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
    };

#line 6590 "strict_cpp_re.inc"
    {
        YYCTYPE yych;
        unsigned int yyaccept = 0;
        if((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
        yych = *YYCURSOR;
        if(yych <= '/') {
            if(yych == '.') goto yy978;
        } else {
            if(yych <= '0') goto yy974;
            if(yych <= '9') goto yy976;
        }
yy973:
        YYCURSOR = YYMARKER;
        if(yyaccept <= 0) {
            goto yy975;
        } else {
            goto yy981;
        }
yy974:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yybm[0+yych] & 64) {
            goto yy993;
        }
        if(yych <= 'E') {
            if(yych <= '/') {
                if(yych == '.') goto yy979;
            } else {
                if(yych <= '9') goto yy996;
                if(yych >= 'E') goto yy989;
            }
        } else {
            if(yych <= 'd') {
                if(yych == 'X') goto yy995;
            } else {
                if(yych <= 'e') goto yy989;
                if(yych == 'x') goto yy995;
            }
        }
yy975:
#line 405 "strict_cpp.re"
        { goto integer_suffix; }
#line 6633 "strict_cpp_re.inc"
yy976:
        yyaccept = 0;
        YYMARKER = ++YYCURSOR;
        if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
        yych = *YYCURSOR;
        if(yybm[0+yych] & 32) {
            goto yy976;
        }
        if(yych <= 'D') {
            if(yych == '.') goto yy979;
            goto yy975;
        } else {
            if(yych <= 'E') goto yy989;
            if(yych == 'e') goto yy989;
            goto yy975;
        }
yy978:
        yych = *++YYCURSOR;
        if(yych <= '/') goto yy973;
        if(yych >= ':') goto yy973;
yy979:
        yyaccept = 1;
        YYMARKER = ++YYCURSOR;
        if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
        yych = *YYCURSOR;
        if(yych <= 'K') {
            if(yych <= 'D') {
                if(yych <= '/') goto yy981;
                if(yych <= '9') goto yy979;
            } else {
                if(yych <= 'E') goto yy982;
                if(yych <= 'F') goto yy983;
            }
        } else {
            if(yych <= 'e') {
                if(yych <= 'L') goto yy984;
                if(yych >= 'e') goto yy982;
            } else {
                if(yych <= 'f') goto yy983;
                if(yych == 'l') goto yy984;
            }
        }
yy981:
#line 403 "strict_cpp.re"
        { BOOST_WAVE_RET(T_FLOATLIT); }
#line 6679 "strict_cpp_re.inc"
yy982:
        yych = *++YYCURSOR;
        if(yych <= ',') {
            if(yych == '+') goto yy986;
            goto yy973;
        } else {
            if(yych <= '-') goto yy986;
            if(yych <= '/') goto yy973;
            if(yych <= '9') goto yy987;
            goto yy973;
        }
yy983:
        yych = *++YYCURSOR;
        if(yych == 'L') goto yy985;
        if(yych == 'l') goto yy985;
        goto yy981;
yy984:
        yych = *++YYCURSOR;
        if(yych == 'F') goto yy985;
        if(yych != 'f') goto yy981;
yy985:
        yych = *++YYCURSOR;
        goto yy981;
yy986:
        yych = *++YYCURSOR;
        if(yych <= '/') goto yy973;
        if(yych >= ':') goto yy973;
yy987:
        ++YYCURSOR;
        if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
        yych = *YYCURSOR;
        if(yych <= 'K') {
            if(yych <= '9') {
                if(yych <= '/') goto yy981;
                goto yy987;
            } else {
                if(yych == 'F') goto yy983;
                goto yy981;
            }
        } else {
            if(yych <= 'f') {
                if(yych <= 'L') goto yy984;
                if(yych <= 'e') goto yy981;
                goto yy983;
            } else {
                if(yych == 'l') goto yy984;
                goto yy981;
            }
        }
yy989:
        yych = *++YYCURSOR;
        if(yych <= ',') {
            if(yych != '+') goto yy973;
        } else {
            if(yych <= '-') goto yy990;
            if(yych <= '/') goto yy973;
            if(yych <= '9') goto yy991;
            goto yy973;
        }
yy990:
        yych = *++YYCURSOR;
        if(yych <= '/') goto yy973;
        if(yych >= ':') goto yy973;
yy991:
        ++YYCURSOR;
        if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
        yych = *YYCURSOR;
        if(yych <= 'K') {
            if(yych <= '9') {
                if(yych <= '/') goto yy981;
                goto yy991;
            } else {
                if(yych == 'F') goto yy983;
                goto yy981;
            }
        } else {
            if(yych <= 'f') {
                if(yych <= 'L') goto yy984;
                if(yych <= 'e') goto yy981;
                goto yy983;
            } else {
                if(yych == 'l') goto yy984;
                goto yy981;
            }
        }
yy993:
        yyaccept = 0;
        YYMARKER = ++YYCURSOR;
        if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
        yych = *YYCURSOR;
        if(yybm[0+yych] & 64) {
            goto yy993;
        }
        if(yych <= '9') {
            if(yych == '.') goto yy979;
            if(yych <= '/') goto yy975;
            goto yy996;
        } else {
            if(yych <= 'E') {
                if(yych <= 'D') goto yy975;
                goto yy989;
            } else {
                if(yych == 'e') goto yy989;
                goto yy975;
            }
        }
yy995:
        yych = *++YYCURSOR;
        if(yybm[0+yych] & 128) {
            goto yy998;
        }
        goto yy973;
yy996:
        ++YYCURSOR;
        if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
        yych = *YYCURSOR;
        if(yych <= '9') {
            if(yych == '.') goto yy979;
            if(yych <= '/') goto yy973;
            goto yy996;
        } else {
            if(yych <= 'E') {
                if(yych <= 'D') goto yy973;
                goto yy989;
            } else {
                if(yych == 'e') goto yy989;
                goto yy973;
            }
        }
yy998:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if(yybm[0+yych] & 128) {
            goto yy998;
        }
        goto yy975;
    }
}
#line 406 "strict_cpp.re"

    }
}

/* this subscanner is called, whenever a Integer was recognized */
integer_suffix:
{
    if (s->enable_ms_extensions) {
    {

#line 6830 "strict_cpp_re.inc"
    {
        YYCTYPE yych;
        if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
        yych = *(YYMARKER = YYCURSOR);
        if(yych <= 'h') {
            if(yych <= 'L') {
                if(yych >= 'L') goto yy1004;
            } else {
                if(yych == 'U') goto yy1003;
            }
        } else {
            if(yych <= 'l') {
                if(yych <= 'i') goto yy1005;
                if(yych >= 'l') goto yy1004;
            } else {
                if(yych == 'u') goto yy1003;
            }
        }
yy1002:
#line 419 "strict_cpp.re"
        { BOOST_WAVE_RET(T_INTLIT); }
#line 6852 "strict_cpp_re.inc"
yy1003:
        yych = *++YYCURSOR;
        if(yych == 'L') goto yy1012;
        if(yych == 'l') goto yy1012;
        goto yy1002;
yy1004:
        yych = *++YYCURSOR;
        if(yych <= 'U') {
            if(yych == 'L') goto yy1011;
            if(yych <= 'T') goto yy1002;
            goto yy1010;
        } else {
            if(yych <= 'l') {
                if(yych <= 'k') goto yy1002;
                goto yy1011;
            } else {
                if(yych == 'u') goto yy1010;
                goto yy1002;
            }
        }
yy1005:
        yych = *++YYCURSOR;
        if(yych == '6') goto yy1007;
yy1006:
        YYCURSOR = YYMARKER;
        goto yy1002;
yy1007:
        yych = *++YYCURSOR;
        if(yych != '4') goto yy1006;
yy1008:
        ++YYCURSOR;
yy1009:
#line 416 "strict_cpp.re"
        { BOOST_WAVE_RET(T_LONGINTLIT); }
#line 6887 "strict_cpp_re.inc"
yy1010:
        yych = *++YYCURSOR;
        goto yy1002;
yy1011:
        yych = *++YYCURSOR;
        if(yych == 'U') goto yy1008;
        if(yych == 'u') goto yy1008;
        goto yy1009;
yy1012:
        ++YYCURSOR;
        if((yych = *YYCURSOR) == 'L') goto yy1008;
        if(yych == 'l') goto yy1008;
        goto yy1002;
    }
}
#line 420 "strict_cpp.re"

    }
    else {
    {

#line 6909 "strict_cpp_re.inc"
    {
        YYCTYPE yych;
        if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
        yych = *YYCURSOR;
        if(yych <= 'U') {
            if(yych == 'L') goto yy1017;
            if(yych >= 'U') goto yy1016;
        } else {
            if(yych <= 'l') {
                if(yych >= 'l') goto yy1017;
            } else {
                if(yych == 'u') goto yy1016;
            }
        }
yy1015:
#line 428 "strict_cpp.re"
        { BOOST_WAVE_RET(T_INTLIT); }
#line 6927 "strict_cpp_re.inc"
yy1016:
        yych = *++YYCURSOR;
        if(yych == 'L') goto yy1022;
        if(yych == 'l') goto yy1022;
        goto yy1015;
yy1017:
        yych = *++YYCURSOR;
        if(yych <= 'U') {
            if(yych == 'L') goto yy1019;
            if(yych <= 'T') goto yy1015;
        } else {
            if(yych <= 'l') {
                if(yych <= 'k') goto yy1015;
                goto yy1019;
            } else {
                if(yych != 'u') goto yy1015;
            }
        }
        yych = *++YYCURSOR;
        goto yy1015;
yy1019:
        ++YYCURSOR;
        if((yych = *YYCURSOR) == 'U') goto yy1021;
        if(yych == 'u') goto yy1021;
yy1020:
#line 425 "strict_cpp.re"
        { BOOST_WAVE_RET(T_LONGINTLIT); }
#line 6955 "strict_cpp_re.inc"
yy1021:
        yych = *++YYCURSOR;
        goto yy1020;
yy1022:
        ++YYCURSOR;
        if((yych = *YYCURSOR) == 'L') goto yy1021;
        if(yych == 'l') goto yy1021;
        goto yy1015;
    }
}
#line 429 "strict_cpp.re"

    }
}
