/* Generated by re2c 1.0.2 on Thu Nov 13 14:28:22 2025 */
#line 1 "strict_cpp.re"
/*=============================================================================
    Boost.Wave: A Standard compliant C++ preprocessor library

    Copyright (c) 2001 Daniel C. Nuffer
    Copyright (c) 2001-2011 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 43 "strict_cpp.re"



#line 25 "strict_cpp_re.inc"
{
    YYCTYPE yych;
    unsigned int yyaccept = 0;
    static const unsigned char yybm[] = {
        /* table 1 .. 8: 0 */
          0,   0,   0,   0,   0,   0,   0,   0, 
          0, 203,   8, 203, 203,   8,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
        203, 203, 138, 203, 203, 203, 203, 201, 
        203, 203, 227, 203, 203, 203, 203, 203, 
        203, 203, 203, 203, 203, 203, 203, 203, 
        203, 203, 203, 203, 203, 203,  75, 204, 
        203, 203, 203, 203, 203, 203, 203, 203, 
        203, 203, 203, 203, 203, 203, 203, 203, 
        203, 203, 203, 203, 203, 203, 203, 203, 
        203, 203, 203, 203, 216, 203, 203, 203, 
        203, 203, 203, 203, 203, 203, 203, 203, 
        203, 203, 203, 203, 203, 203, 203, 203, 
        203, 203, 203, 203, 203, 203, 203, 203, 
        203, 203, 203, 203, 203, 203, 203, 203, 
        203, 203, 203, 203, 203, 203, 203, 203, 
        203, 203, 203, 203, 203, 203, 203, 203, 
        203, 203, 203, 203, 203, 203, 203, 203, 
        203, 203, 203, 203, 203, 203, 203, 203, 
        203, 203, 203, 203, 203, 203, 203, 203, 
        203, 203, 203, 203, 203, 203, 203, 203, 
        203, 203, 203, 203, 203, 203, 203, 203, 
        203, 203, 203, 203, 203, 203, 203, 203, 
        203, 203, 203, 203, 203, 203, 203, 203, 
        203, 203, 203, 203, 203, 203, 203, 203, 
        203, 203, 203, 203, 203, 203, 203, 203, 
        203, 203, 203, 203, 203, 203, 203, 203, 
        203, 203, 203, 203, 203, 203, 203, 203, 
        203, 203, 203, 203, 203, 203, 203, 203, 
        203, 203, 203, 203, 203, 203, 203, 203, 
        203, 203, 203, 203, 203, 203, 203, 203, 
        /* table 9 .. 10: 256 */
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,  64,   0,  64,  64,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
         64,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
        128, 128, 128, 128, 128, 128, 128, 128, 
        128, 128,   0,   0,   0,   0,   0,   0, 
          0, 128, 128, 128, 128, 128, 128, 128, 
        128, 128, 128, 128, 128, 128, 128, 128, 
        128, 128, 128, 128, 128, 128, 128, 128, 
        128, 128, 128,   0,   0,   0,   0, 128, 
          0, 128, 128, 128, 128, 128, 128, 128, 
        128, 128, 128, 128, 128, 128, 128, 128, 
        128, 128, 128, 128, 128, 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, 
    };
    if ((YYLIMIT - YYCURSOR) < 17) YYFILL(17);
    yych = *YYCURSOR;
    if (yybm[256+yych] & 64) {
        goto yy6;
    }
    switch (yych) {
    case 0x00:    goto yy2;
    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 yy4;
    case '\t':
    case '\n':    goto yy9;
    case '\v':
    case '\f':
    case '\r':    goto yy11;
    case ' ':
    case '!':    goto yy12;
    case '"':    goto yy14;
    case '#':    goto yy16;
    case '%':    goto yy19;
    case '&':    goto yy21;
    case '\'':    goto yy23;
    case '(':    goto yy24;
    case ')':    goto yy26;
    case '*':    goto yy28;
    case '+':    goto yy30;
    case ',':    goto yy32;
    case '-':    goto yy34;
    case '.':    goto yy36;
    case '/':    goto yy38;
    case '0':
    case '1':
    case '2':
    case '3':
    case '4':
    case '5':
    case '6':
    case '7':
    case '8':
    case '9':    goto yy40;
    case ':':    goto yy42;
    case ';':    goto yy44;
    case '<':    goto yy46;
    case '=':    goto yy48;
    case '>':    goto yy50;
    case '?':    goto yy52;
    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 'S':
    case 'T':
    case 'V':
    case 'W':
    case 'X':
    case 'Y':
    case 'Z':
    case 'h':
    case 'j':
    case 'k':
    case 'q':
    case 'y':
    case 'z':    goto yy54;
    case 'L':    goto yy57;
    case 'R':    goto yy58;
    case 'U':    goto yy59;
    case '[':    goto yy60;
    case '\\':    goto yy62;
    case ']':    goto yy63;
    case '^':    goto yy65;
    case '_':    goto yy67;
    case 'a':    goto yy68;
    case 'b':    goto yy69;
    case 'c':    goto yy70;
    case 'd':    goto yy71;
    case 'e':    goto yy72;
    case 'f':    goto yy73;
    case 'g':    goto yy74;
    case 'i':    goto yy75;
    case 'l':    goto yy76;
    case 'm':    goto yy77;
    case 'n':    goto yy78;
    case 'o':    goto yy79;
    case 'p':    goto yy80;
    case 'r':    goto yy81;
    case 's':    goto yy82;
    case 't':    goto yy83;
    case 'u':    goto yy84;
    case 'v':    goto yy85;
    case 'w':    goto yy86;
    case 'x':    goto yy87;
    case '{':    goto yy88;
    case '|':    goto yy90;
    case '}':    goto yy92;
    case '~':    goto yy94;
    default:    goto yy18;
    }
yy2:
    ++YYCURSOR;
#line 357 "strict_cpp.re"
    {
        if (s->eof && cursor != s->eof)
        {
            BOOST_WAVE_UPDATE_CURSOR();     // adjust the input cursor
            (*s->error_proc)(s, lexing_exception::generic_lexing_error,
                "invalid character '\\000' in input stream");
        }
        BOOST_WAVE_RET(T_EOF);
    }
#line 241 "strict_cpp_re.inc"
yy4:
    ++YYCURSOR;
#line 370 "strict_cpp.re"
    {
        // flag the error
        BOOST_WAVE_UPDATE_CURSOR();     // adjust the input cursor
        (*s->error_proc)(s, lexing_exception::generic_lexing_error,
            "invalid character '\\%03o' in input stream", *--YYCURSOR);
    }
#line 251 "strict_cpp_re.inc"
yy6:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[256+yych] & 64) {
        goto yy6;
    }
#line 347 "strict_cpp.re"
    { BOOST_WAVE_RET(T_SPACE); }
#line 261 "strict_cpp_re.inc"
yy9:
    ++YYCURSOR;
yy10:
#line 350 "strict_cpp.re"
    {
        s->line++;
        cursor.column = 1;
        BOOST_WAVE_RET(T_NEWLINE);
    }
#line 271 "strict_cpp_re.inc"
yy11:
    yych = *++YYCURSOR;
    if (yych == '\n') goto yy9;
    goto yy10;
yy12:
    yych = *++YYCURSOR;
    if (yych == '=') goto yy96;
#line 213 "strict_cpp.re"
    { BOOST_WAVE_RET(T_NOT); }
#line 281 "strict_cpp_re.inc"
yy14:
    yyaccept = 0;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= '\n') {
        if (yych == '\t') goto yy99;
    } else {
        if (yych <= '\f') goto yy99;
        if (yych >= ' ') goto yy99;
    }
yy15:
#line 367 "strict_cpp.re"
    { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
#line 294 "strict_cpp_re.inc"
yy16:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'c') {
        if (yych <= ' ') {
            if (yych <= '\n') {
                if (yych == '\t') goto yy106;
            } else {
                if (yych <= '\f') goto yy106;
                if (yych >= ' ') goto yy106;
            }
        } else {
            if (yych <= '.') {
                if (yych == '#') goto yy107;
            } else {
                if (yych <= '/') goto yy106;
                if (yych == '?') goto yy110;
            }
        }
    } else {
        if (yych <= 'p') {
            if (yych <= 'i') {
                if (yych <= 'e') goto yy106;
                if (yych >= 'i') goto yy106;
            } else {
                if (yych == 'l') goto yy106;
                if (yych >= 'p') goto yy106;
            }
        } else {
            if (yych <= 't') {
                if (yych == 'r') goto yy106;
            } else {
                if (yych == 'v') goto yy17;
                if (yych <= 'w') goto yy106;
            }
        }
    }
yy17:
#line 162 "strict_cpp.re"
    { BOOST_WAVE_RET(T_POUND); }
#line 335 "strict_cpp_re.inc"
yy18:
    ++YYCURSOR;
    goto yy15;
yy19:
    yych = *++YYCURSOR;
    if (yych <= '<') {
        if (yych == ':') goto yy119;
    } else {
        if (yych <= '=') goto yy121;
        if (yych <= '>') goto yy123;
    }
#line 201 "strict_cpp.re"
    { BOOST_WAVE_RET(T_PERCENT); }
#line 349 "strict_cpp_re.inc"
yy21:
    yych = *++YYCURSOR;
    if (yych == '&') goto yy125;
    if (yych == '=') goto yy127;
#line 205 "strict_cpp.re"
    { BOOST_WAVE_RET(T_AND); }
#line 356 "strict_cpp_re.inc"
yy23:
    yyaccept = 0;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= '\f') {
        if (yych == '\t') goto yy130;
        if (yych <= '\n') goto yy15;
        goto yy130;
    } else {
        if (yych <= 0x1F) goto yy15;
        if (yych == '\'') goto yy15;
        goto yy130;
    }
yy24:
    ++YYCURSOR;
#line 170 "strict_cpp.re"
    { BOOST_WAVE_RET(T_LEFTPAREN); }
#line 373 "strict_cpp_re.inc"
yy26:
    ++YYCURSOR;
#line 171 "strict_cpp.re"
    { BOOST_WAVE_RET(T_RIGHTPAREN); }
#line 378 "strict_cpp_re.inc"
yy28:
    yych = *++YYCURSOR;
    if (yych == '=') goto yy133;
#line 199 "strict_cpp.re"
    { BOOST_WAVE_RET(T_STAR); }
#line 384 "strict_cpp_re.inc"
yy30:
    yych = *++YYCURSOR;
    if (yych == '+') goto yy135;
    if (yych == '=') goto yy137;
#line 197 "strict_cpp.re"
    { BOOST_WAVE_RET(T_PLUS); }
#line 391 "strict_cpp_re.inc"
yy32:
    ++YYCURSOR;
#line 259 "strict_cpp.re"
    { BOOST_WAVE_RET(T_COMMA); }
#line 396 "strict_cpp_re.inc"
yy34:
    yych = *++YYCURSOR;
    if (yych <= '<') {
        if (yych == '-') goto yy139;
    } else {
        if (yych <= '=') goto yy141;
        if (yych <= '>') goto yy143;
    }
#line 198 "strict_cpp.re"
    { BOOST_WAVE_RET(T_MINUS); }
#line 407 "strict_cpp_re.inc"
yy36:
    yyaccept = 2;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= '-') {
        if (yych == '*') goto yy145;
    } else {
        if (yych <= '.') goto yy147;
        if (yych <= '/') goto yy37;
        if (yych <= '9') goto yy40;
    }
yy37:
#line 186 "strict_cpp.re"
    { BOOST_WAVE_RET(T_DOT); }
#line 421 "strict_cpp_re.inc"
yy38:
    yych = *++YYCURSOR;
    if (yych <= '.') {
        if (yych == '*') goto yy148;
    } else {
        if (yych <= '/') goto yy150;
        if (yych == '=') goto yy152;
    }
#line 200 "strict_cpp.re"
    { BOOST_WAVE_RET(T_DIVIDE); }
#line 432 "strict_cpp_re.inc"
yy40:
    ++YYCURSOR;
#line 48 "strict_cpp.re"
    { goto pp_number; }
#line 437 "strict_cpp_re.inc"
yy42:
    yych = *++YYCURSOR;
    if (yych == ':') goto yy154;
    if (yych == '>') goto yy156;
#line 173 "strict_cpp.re"
    { BOOST_WAVE_RET(T_COLON); }
#line 444 "strict_cpp_re.inc"
yy44:
    ++YYCURSOR;
#line 172 "strict_cpp.re"
    { BOOST_WAVE_RET(T_SEMICOLON); }
#line 449 "strict_cpp_re.inc"
yy46:
    yych = *++YYCURSOR;
    if (yych <= ':') {
        if (yych == '%') goto yy158;
        if (yych >= ':') goto yy160;
    } else {
        if (yych <= ';') goto yy47;
        if (yych <= '<') goto yy162;
        if (yych <= '=') goto yy164;
    }
yy47:
#line 216 "strict_cpp.re"
    { BOOST_WAVE_RET(T_LESS); }
#line 463 "strict_cpp_re.inc"
yy48:
    yych = *++YYCURSOR;
    if (yych == '=') goto yy166;
#line 215 "strict_cpp.re"
    { BOOST_WAVE_RET(T_ASSIGN); }
#line 469 "strict_cpp_re.inc"
yy50:
    yych = *++YYCURSOR;
    if (yych <= '<') goto yy51;
    if (yych <= '=') goto yy168;
    if (yych <= '>') goto yy170;
yy51:
#line 217 "strict_cpp.re"
    { BOOST_WAVE_RET(T_GREATER); }
#line 478 "strict_cpp_re.inc"
yy52:
    yyaccept = 3;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '?') goto yy172;
yy53:
#line 175 "strict_cpp.re"
    { BOOST_WAVE_RET(T_QUESTION_MARK); }
#line 486 "strict_cpp_re.inc"
yy54:
    yyaccept = 4;
    YYMARKER = ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
yy55:
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy56:
#line 318 "strict_cpp.re"
    { BOOST_WAVE_RET(T_IDENTIFIER); }
#line 501 "strict_cpp_re.inc"
yy57:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= '&') {
        if (yych == '"') goto yy98;
        goto yy55;
    } else {
        if (yych <= '\'') goto yy175;
        if (yych != 'R') goto yy55;
    }
yy58:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '"') goto yy176;
    goto yy55;
yy59:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= '&') {
        if (yych == '"') goto yy178;
        goto yy55;
    } else {
        if (yych <= '\'') goto yy180;
        if (yych == 'R') goto yy182;
        goto yy55;
    }
yy60:
    ++YYCURSOR;
#line 156 "strict_cpp.re"
    { BOOST_WAVE_RET(T_LEFTBRACKET); }
#line 532 "strict_cpp_re.inc"
yy62:
    yyaccept = 0;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'U') goto yy183;
    if (yych == 'u') goto yy184;
    goto yy15;
yy63:
    ++YYCURSOR;
#line 159 "strict_cpp.re"
    { BOOST_WAVE_RET(T_RIGHTBRACKET); }
#line 543 "strict_cpp_re.inc"
yy65:
    yych = *++YYCURSOR;
    if (yych == '=') goto yy185;
#line 202 "strict_cpp.re"
    { BOOST_WAVE_RET(T_XOR); }
#line 549 "strict_cpp_re.inc"
yy67:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    switch (yych) {
    case '_':    goto yy187;
    case 'a':    goto yy188;
    case 'b':    goto yy189;
    case 'c':    goto yy190;
    case 'd':    goto yy191;
    case 'f':    goto yy192;
    case 'i':    goto yy193;
    case 's':    goto yy194;
    default:    goto yy55;
    }
yy68:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    switch (yych) {
    case 'l':    goto yy195;
    case 'n':    goto yy196;
    case 's':    goto yy197;
    case 'u':    goto yy198;
    default:    goto yy55;
    }
yy69:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'n') {
        if (yych == 'i') goto yy199;
        goto yy55;
    } else {
        if (yych <= 'o') goto yy200;
        if (yych == 'r') goto yy201;
        goto yy55;
    }
yy70:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    switch (yych) {
    case 'a':    goto yy202;
    case 'h':    goto yy203;
    case 'l':    goto yy204;
    case 'o':    goto yy205;
    default:    goto yy55;
    }
yy71:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'n') {
        if (yych == 'e') goto yy206;
        goto yy55;
    } else {
        if (yych <= 'o') goto yy207;
        if (yych == 'y') goto yy209;
        goto yy55;
    }
yy72:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'm') {
        if (yych == 'l') goto yy210;
        goto yy55;
    } else {
        if (yych <= 'n') goto yy211;
        if (yych == 'x') goto yy212;
        goto yy55;
    }
yy73:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    switch (yych) {
    case 'a':    goto yy213;
    case 'l':    goto yy214;
    case 'o':    goto yy215;
    case 'r':    goto yy216;
    default:    goto yy55;
    }
yy74:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'o') goto yy217;
    goto yy55;
yy75:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'l') {
        if (yych == 'f') goto yy218;
        goto yy55;
    } else {
        if (yych <= 'm') goto yy220;
        if (yych <= 'n') goto yy221;
        goto yy55;
    }
yy76:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'o') goto yy222;
    goto yy55;
yy77:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'o') goto yy223;
    if (yych == 'u') goto yy224;
    goto yy55;
yy78:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    switch (yych) {
    case 'a':    goto yy225;
    case 'e':    goto yy226;
    case 'o':    goto yy227;
    case 'u':    goto yy228;
    default:    goto yy55;
    }
yy79:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'p') goto yy229;
    if (yych == 'r') goto yy230;
    goto yy55;
yy80:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'r') goto yy232;
    if (yych == 'u') goto yy233;
    goto yy55;
yy81:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy234;
    goto yy55;
yy82:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 's') {
        if (yych <= 'g') goto yy55;
        if (yych <= 'h') goto yy235;
        if (yych <= 'i') goto yy236;
        goto yy55;
    } else {
        if (yych <= 't') goto yy237;
        if (yych == 'w') goto yy238;
        goto yy55;
    }
yy83:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    switch (yych) {
    case 'e':    goto yy239;
    case 'h':    goto yy240;
    case 'r':    goto yy241;
    case 'y':    goto yy242;
    default:    goto yy55;
    }
yy84:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= '8') {
        if (yych <= '&') {
            if (yych == '"') goto yy178;
            goto yy55;
        } else {
            if (yych <= '\'') goto yy180;
            if (yych <= '7') goto yy55;
            goto yy243;
        }
    } else {
        if (yych <= 'm') {
            if (yych == 'R') goto yy182;
            goto yy55;
        } else {
            if (yych <= 'n') goto yy244;
            if (yych == 's') goto yy245;
            goto yy55;
        }
    }
yy85:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'i') goto yy246;
    if (yych == 'o') goto yy247;
    goto yy55;
yy86:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'c') goto yy248;
    if (yych == 'h') goto yy249;
    goto yy55;
yy87:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'o') goto yy250;
    goto yy55;
yy88:
    ++YYCURSOR;
#line 150 "strict_cpp.re"
    { BOOST_WAVE_RET(T_LEFTBRACE); }
#line 747 "strict_cpp_re.inc"
yy90:
    yyaccept = 5;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= '>') {
        if (yych == '=') goto yy251;
    } else {
        if (yych <= '?') goto yy253;
        if (yych == '|') goto yy254;
    }
yy91:
#line 207 "strict_cpp.re"
    { BOOST_WAVE_RET(T_OR); }
#line 760 "strict_cpp_re.inc"
yy92:
    ++YYCURSOR;
#line 153 "strict_cpp.re"
    { BOOST_WAVE_RET(T_RIGHTBRACE); }
#line 765 "strict_cpp_re.inc"
yy94:
    ++YYCURSOR;
#line 210 "strict_cpp.re"
    { BOOST_WAVE_RET(T_COMPL); }
#line 770 "strict_cpp_re.inc"
yy96:
    ++YYCURSOR;
#line 236 "strict_cpp.re"
    { BOOST_WAVE_RET(T_NOTEQUAL); }
#line 775 "strict_cpp_re.inc"
yy98:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
yy99:
    if (yybm[0+yych] & 1) {
        goto yy98;
    }
    if (yych <= 0x1F) goto yy100;
    if (yych <= '"') goto yy101;
    if (yych <= '?') goto yy103;
    goto yy104;
yy100:
    YYCURSOR = YYMARKER;
    if (yyaccept <= 61) {
        if (yyaccept <= 30) {
            if (yyaccept <= 15) {
                if (yyaccept <= 7) {
                    if (yyaccept <= 3) {
                        if (yyaccept <= 1) {
                            if (yyaccept == 0) {
                                goto yy15;
                            } else {
                                goto yy17;
                            }
                        } else {
                            if (yyaccept == 2) {
                                goto yy37;
                            } else {
                                goto yy53;
                            }
                        }
                    } else {
                        if (yyaccept <= 5) {
                            if (yyaccept == 4) {
                                goto yy56;
                            } else {
                                goto yy91;
                            }
                        } else {
                            if (yyaccept == 6) {
                                goto yy120;
                            } else {
                                goto yy208;
                            }
                        }
                    }
                } else {
                    if (yyaccept <= 11) {
                        if (yyaccept <= 9) {
                            if (yyaccept == 8) {
                                goto yy219;
                            } else {
                                goto yy231;
                            }
                        } else {
                            if (yyaccept == 10) {
                                goto yy269;
                            } else {
                                goto yy295;
                            }
                        }
                    } else {
                        if (yyaccept <= 13) {
                            if (yyaccept == 12) {
                                goto yy305;
                            } else {
                                goto yy309;
                            }
                        } else {
                            if (yyaccept == 14) {
                                goto yy331;
                            } else {
                                goto yy333;
                            }
                        }
                    }
                }
            } else {
                if (yyaccept <= 23) {
                    if (yyaccept <= 19) {
                        if (yyaccept <= 17) {
                            if (yyaccept == 16) {
                                goto yy357;
                            } else {
                                goto yy363;
                            }
                        } else {
                            if (yyaccept == 18) {
                                goto yy369;
                            } else {
                                goto yy372;
                            }
                        }
                    } else {
                        if (yyaccept <= 21) {
                            if (yyaccept == 20) {
                                goto yy394;
                            } else {
                                goto yy405;
                            }
                        } else {
                            if (yyaccept == 22) {
                                goto yy452;
                            } else {
                                goto yy462;
                            }
                        }
                    }
                } else {
                    if (yyaccept <= 27) {
                        if (yyaccept <= 25) {
                            if (yyaccept == 24) {
                                goto yy466;
                            } else {
                                goto yy469;
                            }
                        } else {
                            if (yyaccept == 26) {
                                goto yy472;
                            } else {
                                goto yy487;
                            }
                        }
                    } else {
                        if (yyaccept <= 29) {
                            if (yyaccept == 28) {
                                goto yy489;
                            } else {
                                goto yy497;
                            }
                        } else {
                            goto yy501;
                        }
                    }
                }
            }
        } else {
            if (yyaccept <= 46) {
                if (yyaccept <= 38) {
                    if (yyaccept <= 34) {
                        if (yyaccept <= 32) {
                            if (yyaccept == 31) {
                                goto yy525;
                            } else {
                                goto yy529;
                            }
                        } else {
                            if (yyaccept == 33) {
                                goto yy536;
                            } else {
                                goto yy102;
                            }
                        }
                    } else {
                        if (yyaccept <= 36) {
                            if (yyaccept == 35) {
                                goto yy278;
                            } else {
                                goto yy575;
                            }
                        } else {
                            if (yyaccept == 37) {
                                goto yy586;
                            } else {
                                goto yy588;
                            }
                        }
                    }
                } else {
                    if (yyaccept <= 42) {
                        if (yyaccept <= 40) {
                            if (yyaccept == 39) {
                                goto yy590;
                            } else {
                                goto yy595;
                            }
                        } else {
                            if (yyaccept == 41) {
                                goto yy600;
                            } else {
                                goto yy603;
                            }
                        }
                    } else {
                        if (yyaccept <= 44) {
                            if (yyaccept == 43) {
                                goto yy614;
                            } else {
                                goto yy616;
                            }
                        } else {
                            if (yyaccept == 45) {
                                goto yy628;
                            } else {
                                goto yy637;
                            }
                        }
                    }
                }
            } else {
                if (yyaccept <= 54) {
                    if (yyaccept <= 50) {
                        if (yyaccept <= 48) {
                            if (yyaccept == 47) {
                                goto yy646;
                            } else {
                                goto yy651;
                            }
                        } else {
                            if (yyaccept == 49) {
                                goto yy654;
                            } else {
                                goto yy659;
                            }
                        }
                    } else {
                        if (yyaccept <= 52) {
                            if (yyaccept == 51) {
                                goto yy688;
                            } else {
                                goto yy691;
                            }
                        } else {
                            if (yyaccept == 53) {
                                goto yy693;
                            } else {
                                goto yy701;
                            }
                        }
                    }
                } else {
                    if (yyaccept <= 58) {
                        if (yyaccept <= 56) {
                            if (yyaccept == 55) {
                                goto yy703;
                            } else {
                                goto yy718;
                            }
                        } else {
                            if (yyaccept == 57) {
                                goto yy720;
                            } else {
                                goto yy724;
                            }
                        }
                    } else {
                        if (yyaccept <= 60) {
                            if (yyaccept == 59) {
                                goto yy726;
                            } else {
                                goto yy728;
                            }
                        } else {
                            goto yy730;
                        }
                    }
                }
            }
        }
    } else {
        if (yyaccept <= 92) {
            if (yyaccept <= 77) {
                if (yyaccept <= 69) {
                    if (yyaccept <= 65) {
                        if (yyaccept <= 63) {
                            if (yyaccept == 62) {
                                goto yy732;
                            } else {
                                goto yy734;
                            }
                        } else {
                            if (yyaccept == 64) {
                                goto yy739;
                            } else {
                                goto yy745;
                            }
                        }
                    } else {
                        if (yyaccept <= 67) {
                            if (yyaccept == 66) {
                                goto yy750;
                            } else {
                                goto yy752;
                            }
                        } else {
                            if (yyaccept == 68) {
                                goto yy754;
                            } else {
                                goto yy756;
                            }
                        }
                    }
                } else {
                    if (yyaccept <= 73) {
                        if (yyaccept <= 71) {
                            if (yyaccept == 70) {
                                goto yy758;
                            } else {
                                goto yy760;
                            }
                        } else {
                            if (yyaccept == 72) {
                                goto yy765;
                            } else {
                                goto yy772;
                            }
                        }
                    } else {
                        if (yyaccept <= 75) {
                            if (yyaccept == 74) {
                                goto yy787;
                            } else {
                                goto yy789;
                            }
                        } else {
                            if (yyaccept == 76) {
                                goto yy791;
                            } else {
                                goto yy793;
                            }
                        }
                    }
                }
            } else {
                if (yyaccept <= 85) {
                    if (yyaccept <= 81) {
                        if (yyaccept <= 79) {
                            if (yyaccept == 78) {
                                goto yy797;
                            } else {
                                goto yy800;
                            }
                        } else {
                            if (yyaccept == 80) {
                                goto yy802;
                            } else {
                                goto yy806;
                            }
                        }
                    } else {
                        if (yyaccept <= 83) {
                            if (yyaccept == 82) {
                                goto yy811;
                            } else {
                                goto yy819;
                            }
                        } else {
                            if (yyaccept == 84) {
                                goto yy823;
                            } else {
                                goto yy827;
                            }
                        }
                    }
                } else {
                    if (yyaccept <= 89) {
                        if (yyaccept <= 87) {
                            if (yyaccept == 86) {
                                goto yy830;
                            } else {
                                goto yy839;
                            }
                        } else {
                            if (yyaccept == 88) {
                                goto yy843;
                            } else {
                                goto yy846;
                            }
                        }
                    } else {
                        if (yyaccept <= 91) {
                            if (yyaccept == 90) {
                                goto yy849;
                            } else {
                                goto yy853;
                            }
                        } else {
                            goto yy858;
                        }
                    }
                }
            }
        } else {
            if (yyaccept <= 107) {
                if (yyaccept <= 100) {
                    if (yyaccept <= 96) {
                        if (yyaccept <= 94) {
                            if (yyaccept == 93) {
                                goto yy860;
                            } else {
                                goto yy862;
                            }
                        } else {
                            if (yyaccept == 95) {
                                goto yy864;
                            } else {
                                goto yy867;
                            }
                        }
                    } else {
                        if (yyaccept <= 98) {
                            if (yyaccept == 97) {
                                goto yy873;
                            } else {
                                goto yy875;
                            }
                        } else {
                            if (yyaccept == 99) {
                                goto yy878;
                            } else {
                                goto yy881;
                            }
                        }
                    }
                } else {
                    if (yyaccept <= 104) {
                        if (yyaccept <= 102) {
                            if (yyaccept == 101) {
                                goto yy883;
                            } else {
                                goto yy886;
                            }
                        } else {
                            if (yyaccept == 103) {
                                goto yy889;
                            } else {
                                goto yy893;
                            }
                        }
                    } else {
                        if (yyaccept <= 106) {
                            if (yyaccept == 105) {
                                goto yy896;
                            } else {
                                goto yy898;
                            }
                        } else {
                            goto yy900;
                        }
                    }
                }
            } else {
                if (yyaccept <= 115) {
                    if (yyaccept <= 111) {
                        if (yyaccept <= 109) {
                            if (yyaccept == 108) {
                                goto yy909;
                            } else {
                                goto yy911;
                            }
                        } else {
                            if (yyaccept == 110) {
                                goto yy913;
                            } else {
                                goto yy915;
                            }
                        }
                    } else {
                        if (yyaccept <= 113) {
                            if (yyaccept == 112) {
                                goto yy918;
                            } else {
                                goto yy920;
                            }
                        } else {
                            if (yyaccept == 114) {
                                goto yy922;
                            } else {
                                goto yy925;
                            }
                        }
                    }
                } else {
                    if (yyaccept <= 119) {
                        if (yyaccept <= 117) {
                            if (yyaccept == 116) {
                                goto yy927;
                            } else {
                                goto yy942;
                            }
                        } else {
                            if (yyaccept == 118) {
                                goto yy959;
                            } else {
                                goto yy963;
                            }
                        }
                    } else {
                        if (yyaccept <= 121) {
                            if (yyaccept == 120) {
                                goto yy967;
                            } else {
                                goto yy970;
                            }
                        } else {
                            goto yy974;
                        }
                    }
                }
            }
        }
    }
yy101:
    ++YYCURSOR;
yy102:
#line 277 "strict_cpp.re"
    { BOOST_WAVE_RET(T_STRINGLIT); }
#line 1284 "strict_cpp_re.inc"
yy103:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 1) {
        goto yy98;
    }
    if (yych <= 0x1F) goto yy100;
    if (yych <= '"') goto yy101;
    if (yych <= '?') goto yy256;
yy104:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '`') {
        if (yych <= '7') {
            if (yych <= '&') {
                if (yych == '"') goto yy98;
                goto yy100;
            } else {
                if (yych <= '\'') goto yy98;
                if (yych <= '/') goto yy100;
                goto yy98;
            }
        } else {
            if (yych <= 'T') {
                if (yych == '?') goto yy98;
                goto yy100;
            } else {
                if (yych <= 'U') goto yy258;
                if (yych == '\\') goto yy98;
                goto yy100;
            }
        }
    } else {
        if (yych <= 'r') {
            if (yych <= 'f') {
                if (yych <= 'b') goto yy98;
                if (yych <= 'e') goto yy100;
                goto yy98;
            } else {
                if (yych == 'n') goto yy98;
                if (yych <= 'q') goto yy100;
                goto yy98;
            }
        } else {
            if (yych <= 'u') {
                if (yych <= 's') goto yy100;
                if (yych <= 't') goto yy98;
                goto yy259;
            } else {
                if (yych <= 'v') goto yy98;
                if (yych == 'x') goto yy260;
                goto yy100;
            }
        }
    }
yy105:
    ++YYCURSOR;
    if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12);
    yych = *YYCURSOR;
yy106:
    if (yych <= 'h') {
        if (yych <= ' ') {
            if (yych <= '\n') {
                if (yych == '\t') goto yy105;
                goto yy100;
            } else {
                if (yych <= '\f') goto yy105;
                if (yych <= 0x1F) goto yy100;
                goto yy105;
            }
        } else {
            if (yych <= 'c') {
                if (yych == '/') goto yy109;
                goto yy100;
            } else {
                if (yych <= 'd') goto yy111;
                if (yych <= 'e') goto yy112;
                goto yy100;
            }
        }
    } else {
        if (yych <= 'q') {
            if (yych <= 'l') {
                if (yych <= 'i') goto yy113;
                if (yych <= 'k') goto yy100;
                goto yy114;
            } else {
                if (yych == 'p') goto yy115;
                goto yy100;
            }
        } else {
            if (yych <= 'u') {
                if (yych <= 'r') goto yy116;
                if (yych <= 't') goto yy100;
                goto yy117;
            } else {
                if (yych == 'w') goto yy118;
                goto yy100;
            }
        }
    }
yy107:
    ++YYCURSOR;
#line 165 "strict_cpp.re"
    { BOOST_WAVE_RET(T_POUND_POUND); }
#line 1392 "strict_cpp_re.inc"
yy109:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych == '*') goto yy261;
    goto yy100;
yy110:
    yych = *++YYCURSOR;
    if (yych == '?') goto yy263;
    goto yy100;
yy111:
    yych = *++YYCURSOR;
    if (yych == 'e') goto yy264;
    goto yy100;
yy112:
    yych = *++YYCURSOR;
    if (yych <= 'm') {
        if (yych == 'l') goto yy265;
        goto yy100;
    } else {
        if (yych <= 'n') goto yy266;
        if (yych == 'r') goto yy267;
        goto yy100;
    }
yy113:
    yych = *++YYCURSOR;
    if (yych == 'f') goto yy268;
    if (yych == 'n') goto yy270;
    goto yy100;
yy114:
    yych = *++YYCURSOR;
    if (yych == 'i') goto yy271;
    goto yy100;
yy115:
    yych = *++YYCURSOR;
    if (yych == 'r') goto yy272;
    goto yy100;
yy116:
    yych = *++YYCURSOR;
    if (yych == 'e') goto yy273;
    goto yy100;
yy117:
    yych = *++YYCURSOR;
    if (yych == 'n') goto yy274;
    goto yy100;
yy118:
    yych = *++YYCURSOR;
    if (yych == 'a') goto yy275;
    goto yy100;
yy119:
    yyaccept = 6;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'e') {
        if (yych <= ' ') {
            if (yych <= '\n') {
                if (yych == '\t') goto yy106;
            } else {
                if (yych <= '\f') goto yy106;
                if (yych >= ' ') goto yy106;
            }
        } else {
            if (yych <= '.') {
                if (yych == '%') goto yy276;
            } else {
                if (yych <= '/') goto yy106;
                if (yych >= 'd') goto yy106;
            }
        }
    } else {
        if (yych <= 'p') {
            if (yych <= 'k') {
                if (yych == 'i') goto yy106;
            } else {
                if (yych <= 'l') goto yy106;
                if (yych >= 'p') goto yy106;
            }
        } else {
            if (yych <= 't') {
                if (yych == 'r') goto yy106;
            } else {
                if (yych == 'v') goto yy120;
                if (yych <= 'w') goto yy106;
            }
        }
    }
yy120:
#line 163 "strict_cpp.re"
    { BOOST_WAVE_RET(T_POUND_ALT); }
#line 1481 "strict_cpp_re.inc"
yy121:
    ++YYCURSOR;
#line 222 "strict_cpp.re"
    { BOOST_WAVE_RET(T_PERCENTASSIGN); }
#line 1486 "strict_cpp_re.inc"
yy123:
    ++YYCURSOR;
#line 155 "strict_cpp.re"
    { BOOST_WAVE_RET(T_RIGHTBRACE_ALT); }
#line 1491 "strict_cpp_re.inc"
yy125:
    ++YYCURSOR;
#line 250 "strict_cpp.re"
    { BOOST_WAVE_RET(T_ANDAND); }
#line 1496 "strict_cpp_re.inc"
yy127:
    ++YYCURSOR;
#line 226 "strict_cpp.re"
    { BOOST_WAVE_RET(T_ANDASSIGN); }
#line 1501 "strict_cpp_re.inc"
yy129:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
yy130:
    if (yybm[0+yych] & 2) {
        goto yy129;
    }
    if (yych <= 0x1F) goto yy100;
    if (yych <= '\'') goto yy277;
    if (yych >= '@') goto yy132;
yy131:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 2) {
        goto yy129;
    }
    if (yych <= 0x1F) goto yy100;
    if (yych <= '\'') goto yy277;
    if (yych <= '?') goto yy279;
yy132:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '`') {
        if (yych <= '7') {
            if (yych <= '&') {
                if (yych == '"') goto yy129;
                goto yy100;
            } else {
                if (yych <= '\'') goto yy129;
                if (yych <= '/') goto yy100;
                goto yy129;
            }
        } else {
            if (yych <= 'T') {
                if (yych == '?') goto yy129;
                goto yy100;
            } else {
                if (yych <= 'U') goto yy281;
                if (yych == '\\') goto yy129;
                goto yy100;
            }
        }
    } else {
        if (yych <= 'r') {
            if (yych <= 'f') {
                if (yych <= 'b') goto yy129;
                if (yych <= 'e') goto yy100;
                goto yy129;
            } else {
                if (yych == 'n') goto yy129;
                if (yych <= 'q') goto yy100;
                goto yy129;
            }
        } else {
            if (yych <= 'u') {
                if (yych <= 's') goto yy100;
                if (yych <= 't') goto yy129;
                goto yy282;
            } else {
                if (yych <= 'v') goto yy129;
                if (yych == 'x') goto yy283;
                goto yy100;
            }
        }
    }
yy133:
    ++YYCURSOR;
#line 220 "strict_cpp.re"
    { BOOST_WAVE_RET(T_STARASSIGN); }
#line 1574 "strict_cpp_re.inc"
yy135:
    ++YYCURSOR;
#line 257 "strict_cpp.re"
    { BOOST_WAVE_RET(T_PLUSPLUS); }
#line 1579 "strict_cpp_re.inc"
yy137:
    ++YYCURSOR;
#line 218 "strict_cpp.re"
    { BOOST_WAVE_RET(T_PLUSASSIGN); }
#line 1584 "strict_cpp_re.inc"
yy139:
    ++YYCURSOR;
#line 258 "strict_cpp.re"
    { BOOST_WAVE_RET(T_MINUSMINUS); }
#line 1589 "strict_cpp_re.inc"
yy141:
    ++YYCURSOR;
#line 219 "strict_cpp.re"
    { BOOST_WAVE_RET(T_MINUSASSIGN); }
#line 1594 "strict_cpp_re.inc"
yy143:
    yych = *++YYCURSOR;
    if (yych == '*') goto yy284;
#line 270 "strict_cpp.re"
    { BOOST_WAVE_RET(T_ARROW); }
#line 1600 "strict_cpp_re.inc"
yy145:
    ++YYCURSOR;
#line 188 "strict_cpp.re"
    {
            if (s->act_in_c99_mode) {
                --YYCURSOR;
                BOOST_WAVE_RET(T_DOT);
            }
            else {
                BOOST_WAVE_RET(T_DOTSTAR);
            }
        }
#line 1613 "strict_cpp_re.inc"
yy147:
    yych = *++YYCURSOR;
    if (yych == '.') goto yy286;
    goto yy100;
yy148:
    ++YYCURSOR;
#line 46 "strict_cpp.re"
    { goto ccomment; }
#line 1622 "strict_cpp_re.inc"
yy150:
    ++YYCURSOR;
#line 47 "strict_cpp.re"
    { goto cppcomment; }
#line 1627 "strict_cpp_re.inc"
yy152:
    ++YYCURSOR;
#line 221 "strict_cpp.re"
    { BOOST_WAVE_RET(T_DIVIDEASSIGN); }
#line 1632 "strict_cpp_re.inc"
yy154:
    ++YYCURSOR;
#line 177 "strict_cpp.re"
    {
            if (s->act_in_c99_mode) {
                --YYCURSOR;
                BOOST_WAVE_RET(T_COLON);
            }
            else {
                BOOST_WAVE_RET(T_COLON_COLON);
            }
        }
#line 1645 "strict_cpp_re.inc"
yy156:
    ++YYCURSOR;
#line 161 "strict_cpp.re"
    { BOOST_WAVE_RET(T_RIGHTBRACKET_ALT); }
#line 1650 "strict_cpp_re.inc"
yy158:
    ++YYCURSOR;
#line 152 "strict_cpp.re"
    { BOOST_WAVE_RET(T_LEFTBRACE_ALT); }
#line 1655 "strict_cpp_re.inc"
yy160:
    ++YYCURSOR;
#line 158 "strict_cpp.re"
    { BOOST_WAVE_RET(T_LEFTBRACKET_ALT); }
#line 1660 "strict_cpp_re.inc"
yy162:
    yych = *++YYCURSOR;
    if (yych == '=') goto yy288;
#line 231 "strict_cpp.re"
    { BOOST_WAVE_RET(T_SHIFTLEFT); }
#line 1666 "strict_cpp_re.inc"
yy164:
    yych = *++YYCURSOR;
    if (yych == '>') goto yy290;
#line 248 "strict_cpp.re"
    { BOOST_WAVE_RET(T_LESSEQUAL); }
#line 1672 "strict_cpp_re.inc"
yy166:
    ++YYCURSOR;
#line 235 "strict_cpp.re"
    { BOOST_WAVE_RET(T_EQUAL); }
#line 1677 "strict_cpp_re.inc"
yy168:
    ++YYCURSOR;
#line 249 "strict_cpp.re"
    { BOOST_WAVE_RET(T_GREATEREQUAL); }
#line 1682 "strict_cpp_re.inc"
yy170:
    yych = *++YYCURSOR;
    if (yych == '=') goto yy292;
#line 232 "strict_cpp.re"
    { BOOST_WAVE_RET(T_SHIFTRIGHT); }
#line 1688 "strict_cpp_re.inc"
yy172:
    yych = *++YYCURSOR;
    switch (yych) {
    case '!':    goto yy294;
    case '\'':    goto yy296;
    case '(':    goto yy298;
    case ')':    goto yy300;
    case '-':    goto yy302;
    case '/':    goto yy304;
    case '<':    goto yy306;
    case '=':    goto yy308;
    case '>':    goto yy310;
    default:    goto yy100;
    }
yy173:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych == '?') goto yy312;
    goto yy100;
yy174:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych == 'U') goto yy183;
    if (yych == 'u') goto yy184;
    goto yy100;
yy175:
    yych = *++YYCURSOR;
    if (yych == '\'') goto yy100;
    goto yy130;
yy176:
    ++YYCURSOR;
#line 280 "strict_cpp.re"
    {
            if (s->act_in_cpp0x_mode)
            {
                rawstringdelim = "";
                goto extrawstringlit;
            }
            --YYCURSOR;
            BOOST_WAVE_RET(T_IDENTIFIER);
        }
#line 1732 "strict_cpp_re.inc"
yy178:
    ++YYCURSOR;
#line 299 "strict_cpp.re"
    {
            if (s->act_in_cpp0x_mode)
                goto extstringlit;
            --YYCURSOR;
            BOOST_WAVE_RET(T_IDENTIFIER);
        }
#line 1742 "strict_cpp_re.inc"
yy180:
    ++YYCURSOR;
#line 291 "strict_cpp.re"
    {
            if (s->act_in_cpp0x_mode)
                goto extcharlit;
            --YYCURSOR;
            BOOST_WAVE_RET(T_IDENTIFIER);
        }
#line 1752 "strict_cpp_re.inc"
yy182:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '"') goto yy313;
    goto yy55;
yy183:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy100;
        if (yych <= '9') goto yy315;
        goto yy100;
    } else {
        if (yych <= 'F') goto yy315;
        if (yych <= '`') goto yy100;
        if (yych <= 'f') goto yy315;
        goto yy100;
    }
yy184:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy100;
        if (yych <= '9') goto yy316;
        goto yy100;
    } else {
        if (yych <= 'F') goto yy316;
        if (yych <= '`') goto yy100;
        if (yych <= 'f') goto yy316;
        goto yy100;
    }
yy185:
    ++YYCURSOR;
#line 223 "strict_cpp.re"
    { BOOST_WAVE_RET(T_XORASSIGN); }
#line 1790 "strict_cpp_re.inc"
yy187:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    switch (yych) {
    case 'a':    goto yy188;
    case 'b':    goto yy189;
    case 'c':    goto yy190;
    case 'd':    goto yy191;
    case 'e':    goto yy317;
    case 'f':    goto yy318;
    case 'i':    goto yy319;
    case 'l':    goto yy320;
    case 's':    goto yy194;
    case 't':    goto yy321;
    default:    goto yy55;
    }
yy188:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 's') goto yy322;
    goto yy55;
yy189:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy323;
    goto yy55;
yy190:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'd') goto yy324;
    goto yy55;
yy191:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy325;
    goto yy55;
yy192:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy326;
    goto yy55;
yy193:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'n') goto yy327;
    goto yy55;
yy194:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy328;
    goto yy55;
yy195:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'i') goto yy329;
    goto yy55;
yy196:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'd') goto yy330;
    goto yy55;
yy197:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'm') goto yy332;
    goto yy55;
yy198:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy334;
    goto yy55;
yy199:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy335;
    goto yy55;
yy200:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'o') goto yy336;
    goto yy55;
yy201:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy337;
    goto yy55;
yy202:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'r') goto yy55;
    if (yych <= 's') goto yy338;
    if (yych <= 't') goto yy339;
    goto yy55;
yy203:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy340;
    goto yy55;
yy204:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy341;
    goto yy55;
yy205:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'l') {
        if (yych == '_') goto yy342;
        goto yy55;
    } else {
        if (yych <= 'm') goto yy343;
        if (yych <= 'n') goto yy344;
        goto yy55;
    }
yy206:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'e') {
        if (yych == 'c') goto yy345;
        goto yy55;
    } else {
        if (yych <= 'f') goto yy346;
        if (yych == 'l') goto yy347;
        goto yy55;
    }
yy207:
    yyaccept = 7;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= '[') {
        if (yych <= '>') {
            if (yych <= '/') goto yy208;
            if (yych <= '9') goto yy54;
        } else {
            if (yych <= '?') goto yy173;
            if (yych <= '@') goto yy208;
            if (yych <= 'Z') goto yy54;
        }
    } else {
        if (yych <= '`') {
            if (yych <= '\\') goto yy174;
            if (yych == '_') goto yy54;
        } else {
            if (yych == 'u') goto yy348;
            if (yych <= 'z') goto yy54;
        }
    }
yy208:
#line 76 "strict_cpp.re"
    { BOOST_WAVE_RET(T_DO); }
#line 1940 "strict_cpp_re.inc"
yy209:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'n') goto yy349;
    goto yy55;
yy210:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 's') goto yy350;
    goto yy55;
yy211:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'u') goto yy351;
    goto yy55;
yy212:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'p') goto yy352;
    if (yych == 't') goto yy353;
    goto yy55;
yy213:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy354;
    goto yy55;
yy214:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'o') goto yy355;
    goto yy55;
yy215:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'r') goto yy356;
    goto yy55;
yy216:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'i') goto yy358;
    goto yy55;
yy217:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy359;
    goto yy55;
yy218:
    yyaccept = 8;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy219:
#line 89 "strict_cpp.re"
    { BOOST_WAVE_RET(T_IF); }
#line 1998 "strict_cpp_re.inc"
yy220:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'p') goto yy360;
    goto yy55;
yy221:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy361;
    if (yych == 't') goto yy362;
    goto yy55;
yy222:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'n') goto yy364;
    goto yy55;
yy223:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'd') goto yy365;
    goto yy55;
yy224:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy366;
    goto yy55;
yy225:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'm') goto yy367;
    goto yy55;
yy226:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'w') goto yy368;
    goto yy55;
yy227:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy370;
    if (yych == 't') goto yy371;
    goto yy55;
yy228:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy373;
    goto yy55;
yy229:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy374;
    goto yy55;
yy230:
    yyaccept = 9;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'Z') {
        if (yych <= '>') {
            if (yych <= '/') goto yy231;
            if (yych <= '9') goto yy54;
        } else {
            if (yych <= '?') goto yy173;
            if (yych >= 'A') goto yy54;
        }
    } else {
        if (yych <= '^') {
            if (yych == '\\') goto yy174;
        } else {
            if (yych <= '_') goto yy375;
            if (yych <= '`') goto yy231;
            if (yych <= 'z') goto yy54;
        }
    }
yy231:
#line 255 "strict_cpp.re"
    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OROR_ALT); }
#line 2074 "strict_cpp_re.inc"
yy232:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'i') goto yy376;
    if (yych == 'o') goto yy377;
    goto yy55;
yy233:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'b') goto yy378;
    goto yy55;
yy234:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    switch (yych) {
    case 'g':    goto yy379;
    case 'i':    goto yy380;
    case 'q':    goto yy381;
    case 't':    goto yy382;
    default:    goto yy55;
    }
yy235:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'o') goto yy383;
    goto yy55;
yy236:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'g') goto yy384;
    if (yych == 'z') goto yy385;
    goto yy55;
yy237:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy386;
    if (yych == 'r') goto yy387;
    goto yy55;
yy238:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'i') goto yy388;
    goto yy55;
yy239:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'm') goto yy389;
    goto yy55;
yy240:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'i') goto yy390;
    if (yych == 'r') goto yy391;
    goto yy55;
yy241:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'u') goto yy392;
    if (yych == 'y') goto yy393;
    goto yy55;
yy242:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'p') goto yy395;
    goto yy55;
yy243:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '"') goto yy178;
    if (yych == 'R') goto yy182;
    goto yy55;
yy244:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'i') goto yy396;
    if (yych == 's') goto yy397;
    goto yy55;
yy245:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'i') goto yy398;
    goto yy55;
yy246:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'r') goto yy399;
    goto yy55;
yy247:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'i') goto yy400;
    if (yych == 'l') goto yy401;
    goto yy55;
yy248:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'h') goto yy402;
    goto yy55;
yy249:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'i') goto yy403;
    goto yy55;
yy250:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'r') goto yy404;
    goto yy55;
yy251:
    ++YYCURSOR;
#line 228 "strict_cpp.re"
    { BOOST_WAVE_RET(T_ORASSIGN); }
#line 2187 "strict_cpp_re.inc"
yy253:
    yych = *++YYCURSOR;
    if (yych == '?') goto yy406;
    goto yy100;
yy254:
    ++YYCURSOR;
#line 252 "strict_cpp.re"
    { BOOST_WAVE_RET(T_OROR); }
#line 2196 "strict_cpp_re.inc"
yy256:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 4) {
        goto yy256;
    }
    if (yych <= '!') {
        if (yych <= '\n') {
            if (yych == '\t') goto yy98;
            goto yy100;
        } else {
            if (yych <= '\f') goto yy98;
            if (yych <= 0x1F) goto yy100;
            goto yy98;
        }
    } else {
        if (yych <= '/') {
            if (yych <= '"') goto yy101;
            if (yych <= '.') goto yy98;
            goto yy407;
        } else {
            if (yych == '\\') goto yy104;
            goto yy98;
        }
    }
yy258:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy100;
        if (yych <= '9') goto yy409;
        goto yy100;
    } else {
        if (yych <= 'F') goto yy409;
        if (yych <= '`') goto yy100;
        if (yych <= 'f') goto yy409;
        goto yy100;
    }
yy259:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy100;
        if (yych <= '9') goto yy410;
        goto yy100;
    } else {
        if (yych <= 'F') goto yy410;
        if (yych <= '`') goto yy100;
        if (yych <= 'f') goto yy410;
        goto yy100;
    }
yy260:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy100;
        if (yych <= '9') goto yy98;
        goto yy100;
    } else {
        if (yych <= 'F') goto yy98;
        if (yych <= '`') goto yy100;
        if (yych <= 'f') goto yy98;
        goto yy100;
    }
yy261:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 8) {
        goto yy261;
    }
    if (yych <= 0x1F) goto yy100;
    goto yy411;
yy263:
    yych = *++YYCURSOR;
    if (yych == '=') goto yy413;
    goto yy100;
yy264:
    yych = *++YYCURSOR;
    if (yych == 'f') goto yy415;
    goto yy100;
yy265:
    yych = *++YYCURSOR;
    if (yych == 'i') goto yy416;
    if (yych == 's') goto yy417;
    goto yy100;
yy266:
    yych = *++YYCURSOR;
    if (yych == 'd') goto yy418;
    goto yy100;
yy267:
    yych = *++YYCURSOR;
    if (yych == 'r') goto yy419;
    goto yy100;
yy268:
    yyaccept = 10;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'd') goto yy420;
    if (yych == 'n') goto yy421;
yy269:
#line 329 "strict_cpp.re"
    { BOOST_WAVE_RET(T_PP_IF); }
#line 2303 "strict_cpp_re.inc"
yy270:
    yych = *++YYCURSOR;
    if (yych == 'c') goto yy422;
    goto yy100;
yy271:
    yych = *++YYCURSOR;
    if (yych == 'n') goto yy423;
    goto yy100;
yy272:
    yych = *++YYCURSOR;
    if (yych == 'a') goto yy424;
    goto yy100;
yy273:
    yych = *++YYCURSOR;
    if (yych == 'g') goto yy425;
    goto yy100;
yy274:
    yych = *++YYCURSOR;
    if (yych == 'd') goto yy426;
    goto yy100;
yy275:
    yych = *++YYCURSOR;
    if (yych == 'r') goto yy427;
    goto yy100;
yy276:
    yych = *++YYCURSOR;
    if (yych == ':') goto yy428;
    goto yy100;
yy277:
    ++YYCURSOR;
yy278:
#line 274 "strict_cpp.re"
    { BOOST_WAVE_RET(T_CHARLIT); }
#line 2337 "strict_cpp_re.inc"
yy279:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '\'') {
        if (yych <= '\n') {
            if (yych == '\t') goto yy129;
            goto yy100;
        } else {
            if (yych <= '\f') goto yy129;
            if (yych <= 0x1F) goto yy100;
            if (yych <= '&') goto yy129;
            goto yy277;
        }
    } else {
        if (yych <= '>') {
            if (yych == '/') goto yy430;
            goto yy129;
        } else {
            if (yych <= '?') goto yy279;
            if (yych == '\\') goto yy132;
            goto yy129;
        }
    }
yy281:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy100;
        if (yych <= '9') goto yy432;
        goto yy100;
    } else {
        if (yych <= 'F') goto yy432;
        if (yych <= '`') goto yy100;
        if (yych <= 'f') goto yy432;
        goto yy100;
    }
yy282:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy100;
        if (yych <= '9') goto yy433;
        goto yy100;
    } else {
        if (yych <= 'F') goto yy433;
        if (yych <= '`') goto yy100;
        if (yych <= 'f') goto yy433;
        goto yy100;
    }
yy283:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy100;
        if (yych <= '9') goto yy129;
        goto yy100;
    } else {
        if (yych <= 'F') goto yy129;
        if (yych <= '`') goto yy100;
        if (yych <= 'f') goto yy129;
        goto yy100;
    }
yy284:
    ++YYCURSOR;
#line 261 "strict_cpp.re"
    {
            if (s->act_in_c99_mode) {
                --YYCURSOR;
                BOOST_WAVE_RET(T_ARROW);
            }
            else {
                BOOST_WAVE_RET(T_ARROWSTAR);
            }
        }
#line 2416 "strict_cpp_re.inc"
yy286:
    ++YYCURSOR;
#line 174 "strict_cpp.re"
    { BOOST_WAVE_RET(T_ELLIPSIS); }
#line 2421 "strict_cpp_re.inc"
yy288:
    ++YYCURSOR;
#line 234 "strict_cpp.re"
    { BOOST_WAVE_RET(T_SHIFTLEFTASSIGN); }
#line 2426 "strict_cpp_re.inc"
yy290:
    ++YYCURSOR;
#line 239 "strict_cpp.re"
    {
            if (s->act_in_cpp2a_mode) {
                BOOST_WAVE_RET(T_SPACESHIP);
            }
            else {
                --YYCURSOR;
                BOOST_WAVE_RET(T_LESSEQUAL);
            }
        }
#line 2439 "strict_cpp_re.inc"
yy292:
    ++YYCURSOR;
#line 233 "strict_cpp.re"
    { BOOST_WAVE_RET(T_SHIFTRIGHTASSIGN); }
#line 2444 "strict_cpp_re.inc"
yy294:
    yyaccept = 11;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= '>') {
        if (yych == '=') goto yy434;
    } else {
        if (yych <= '?') goto yy436;
        if (yych == '|') goto yy437;
    }
yy295:
#line 209 "strict_cpp.re"
    { BOOST_WAVE_RET(T_OR_TRIGRAPH); }
#line 2457 "strict_cpp_re.inc"
yy296:
    yych = *++YYCURSOR;
    if (yych == '=') goto yy439;
#line 203 "strict_cpp.re"
    { BOOST_WAVE_RET(T_XOR_TRIGRAPH); }
#line 2463 "strict_cpp_re.inc"
yy298:
    ++YYCURSOR;
#line 157 "strict_cpp.re"
    { BOOST_WAVE_RET(T_LEFTBRACKET_TRIGRAPH); }
#line 2468 "strict_cpp_re.inc"
yy300:
    ++YYCURSOR;
#line 160 "strict_cpp.re"
    { BOOST_WAVE_RET(T_RIGHTBRACKET_TRIGRAPH); }
#line 2473 "strict_cpp_re.inc"
yy302:
    ++YYCURSOR;
#line 211 "strict_cpp.re"
    { BOOST_WAVE_RET(T_COMPL_TRIGRAPH); }
#line 2478 "strict_cpp_re.inc"
yy304:
    yyaccept = 12;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'U') goto yy183;
    if (yych == 'u') goto yy184;
yy305:
#line 271 "strict_cpp.re"
    { BOOST_WAVE_RET(T_ANY_TRIGRAPH); }
#line 2487 "strict_cpp_re.inc"
yy306:
    ++YYCURSOR;
#line 151 "strict_cpp.re"
    { BOOST_WAVE_RET(T_LEFTBRACE_TRIGRAPH); }
#line 2492 "strict_cpp_re.inc"
yy308:
    yyaccept = 13;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'c') {
        if (yych <= ' ') {
            if (yych <= '\n') {
                if (yych == '\t') goto yy106;
            } else {
                if (yych <= '\f') goto yy106;
                if (yych >= ' ') goto yy106;
            }
        } else {
            if (yych <= '.') {
                if (yych == '#') goto yy441;
            } else {
                if (yych <= '/') goto yy106;
                if (yych == '?') goto yy443;
            }
        }
    } else {
        if (yych <= 'p') {
            if (yych <= 'i') {
                if (yych <= 'e') goto yy106;
                if (yych >= 'i') goto yy106;
            } else {
                if (yych == 'l') goto yy106;
                if (yych >= 'p') goto yy106;
            }
        } else {
            if (yych <= 't') {
                if (yych == 'r') goto yy106;
            } else {
                if (yych == 'v') goto yy309;
                if (yych <= 'w') goto yy106;
            }
        }
    }
yy309:
#line 164 "strict_cpp.re"
    { BOOST_WAVE_RET(T_POUND_TRIGRAPH); }
#line 2533 "strict_cpp_re.inc"
yy310:
    ++YYCURSOR;
#line 154 "strict_cpp.re"
    { BOOST_WAVE_RET(T_RIGHTBRACE_TRIGRAPH); }
#line 2538 "strict_cpp_re.inc"
yy312:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych == '/') goto yy174;
    goto yy100;
yy313:
    ++YYCURSOR;
#line 307 "strict_cpp.re"
    {
            if (s->act_in_cpp0x_mode)
            {
                rawstringdelim = "";
                goto extrawstringlit;
            }
            --YYCURSOR;
            BOOST_WAVE_RET(T_IDENTIFIER);
        }
#line 2557 "strict_cpp_re.inc"
yy315:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy100;
        if (yych <= '9') goto yy444;
        goto yy100;
    } else {
        if (yych <= 'F') goto yy444;
        if (yych <= '`') goto yy100;
        if (yych <= 'f') goto yy444;
        goto yy100;
    }
yy316:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy100;
        if (yych <= '9') goto yy445;
        goto yy100;
    } else {
        if (yych <= 'F') goto yy445;
        if (yych <= '`') goto yy100;
        if (yych <= 'f') goto yy445;
        goto yy100;
    }
yy317:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'x') goto yy446;
    goto yy55;
yy318:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy326;
    if (yych == 'i') goto yy447;
    goto yy55;
yy319:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'n') goto yy448;
    goto yy55;
yy320:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy449;
    goto yy55;
yy321:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'r') goto yy450;
    goto yy55;
yy322:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'm') goto yy451;
    goto yy55;
yy323:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 's') goto yy453;
    goto yy55;
yy324:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy454;
    goto yy55;
yy325:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'c') goto yy455;
    goto yy55;
yy326:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 's') goto yy456;
    goto yy55;
yy327:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy457;
    goto yy55;
yy328:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'd') goto yy458;
    goto yy55;
yy329:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'g') goto yy459;
    goto yy55;
yy330:
    yyaccept = 14;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'Z') {
        if (yych <= '>') {
            if (yych <= '/') goto yy331;
            if (yych <= '9') goto yy54;
        } else {
            if (yych <= '?') goto yy173;
            if (yych >= 'A') goto yy54;
        }
    } else {
        if (yych <= '^') {
            if (yych == '\\') goto yy174;
        } else {
            if (yych <= '_') goto yy460;
            if (yych <= '`') goto yy331;
            if (yych <= 'z') goto yy54;
        }
    }
yy331:
#line 251 "strict_cpp.re"
    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDAND_ALT); }
#line 2675 "strict_cpp_re.inc"
yy332:
    yyaccept = 15;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy333:
#line 52 "strict_cpp.re"
    { BOOST_WAVE_RET(T_ASM); }
#line 2687 "strict_cpp_re.inc"
yy334:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'o') goto yy461;
    goto yy55;
yy335:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy463;
    if (yych == 'o') goto yy464;
    goto yy55;
yy336:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy465;
    goto yy55;
yy337:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy467;
    goto yy55;
yy338:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy468;
    goto yy55;
yy339:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'c') goto yy470;
    goto yy55;
yy340:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'r') goto yy471;
    goto yy55;
yy341:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 's') goto yy473;
    goto yy55;
yy342:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'q') {
        if (yych == 'a') goto yy474;
        goto yy55;
    } else {
        if (yych <= 'r') goto yy475;
        if (yych == 'y') goto yy476;
        goto yy55;
    }
yy343:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'p') goto yy477;
    goto yy55;
yy344:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'r') {
        if (yych == 'c') goto yy478;
        goto yy55;
    } else {
        if (yych <= 's') goto yy479;
        if (yych <= 't') goto yy480;
        goto yy55;
    }
yy345:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy481;
    goto yy55;
yy346:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy482;
    goto yy55;
yy347:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy483;
    goto yy55;
yy348:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'b') goto yy484;
    goto yy55;
yy349:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy485;
    goto yy55;
yy350:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy486;
    goto yy55;
yy351:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'm') goto yy488;
    goto yy55;
yy352:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy490;
    if (yych == 'o') goto yy491;
    goto yy55;
yy353:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy492;
    goto yy55;
yy354:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 's') goto yy493;
    goto yy55;
yy355:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy494;
    goto yy55;
yy356:
    yyaccept = 16;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy357:
#line 86 "strict_cpp.re"
    { BOOST_WAVE_RET(T_FOR); }
#line 2823 "strict_cpp_re.inc"
yy358:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy495;
    goto yy55;
yy359:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'o') goto yy496;
    goto yy55;
yy360:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'o') goto yy498;
    goto yy55;
yy361:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'i') goto yy499;
    goto yy55;
yy362:
    yyaccept = 17;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy363:
#line 92 "strict_cpp.re"
    { BOOST_WAVE_RET(T_INT); }
#line 2855 "strict_cpp_re.inc"
yy364:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'g') goto yy500;
    goto yy55;
yy365:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'u') goto yy502;
    goto yy55;
yy366:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy503;
    goto yy55;
yy367:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy504;
    goto yy55;
yy368:
    yyaccept = 18;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy369:
#line 97 "strict_cpp.re"
    { BOOST_WAVE_RET(T_NEW); }
#line 2887 "strict_cpp_re.inc"
yy370:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'x') goto yy505;
    goto yy55;
yy371:
    yyaccept = 19;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'Z') {
        if (yych <= '>') {
            if (yych <= '/') goto yy372;
            if (yych <= '9') goto yy54;
        } else {
            if (yych <= '?') goto yy173;
            if (yych >= 'A') goto yy54;
        }
    } else {
        if (yych <= '^') {
            if (yych == '\\') goto yy174;
        } else {
            if (yych <= '_') goto yy506;
            if (yych <= '`') goto yy372;
            if (yych <= 'z') goto yy54;
        }
    }
yy372:
#line 214 "strict_cpp.re"
    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOT_ALT); }
#line 2916 "strict_cpp_re.inc"
yy373:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy507;
    goto yy55;
yy374:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'r') goto yy508;
    goto yy55;
yy375:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy509;
    goto yy55;
yy376:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'v') goto yy510;
    goto yy55;
yy377:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy511;
    goto yy55;
yy378:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy512;
    goto yy55;
yy379:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'i') goto yy513;
    goto yy55;
yy380:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'n') goto yy514;
    goto yy55;
yy381:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'u') goto yy515;
    goto yy55;
yy382:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'u') goto yy516;
    goto yy55;
yy383:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'r') goto yy517;
    goto yy55;
yy384:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'n') goto yy518;
    goto yy55;
yy385:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy519;
    goto yy55;
yy386:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy520;
    goto yy55;
yy387:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'u') goto yy521;
    goto yy55;
yy388:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy522;
    goto yy55;
yy389:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'p') goto yy523;
    goto yy55;
yy390:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 's') goto yy524;
    goto yy55;
yy391:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy526;
    if (yych == 'o') goto yy527;
    goto yy55;
yy392:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy528;
    goto yy55;
yy393:
    yyaccept = 20;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy394:
#line 121 "strict_cpp.re"
    { BOOST_WAVE_RET(T_TRY); }
#line 3029 "strict_cpp_re.inc"
yy395:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy530;
    goto yy55;
yy396:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'o') goto yy531;
    goto yy55;
yy397:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'i') goto yy532;
    goto yy55;
yy398:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'n') goto yy533;
    goto yy55;
yy399:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy534;
    goto yy55;
yy400:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'd') goto yy535;
    goto yy55;
yy401:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy537;
    goto yy55;
yy402:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy538;
    goto yy55;
yy403:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy539;
    goto yy55;
yy404:
    yyaccept = 21;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'Z') {
        if (yych <= '>') {
            if (yych <= '/') goto yy405;
            if (yych <= '9') goto yy54;
        } else {
            if (yych <= '?') goto yy173;
            if (yych >= 'A') goto yy54;
        }
    } else {
        if (yych <= '^') {
            if (yych == '\\') goto yy174;
        } else {
            if (yych <= '_') goto yy540;
            if (yych <= '`') goto yy405;
            if (yych <= 'z') goto yy54;
        }
    }
yy405:
#line 204 "strict_cpp.re"
    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XOR_ALT); }
#line 3098 "strict_cpp_re.inc"
yy406:
    yych = *++YYCURSOR;
    if (yych == '!') goto yy541;
    goto yy100;
yy407:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 1) {
        goto yy98;
    }
    if (yych <= 0x1F) goto yy100;
    if (yych <= '"') goto yy543;
    if (yych <= '?') goto yy103;
    goto yy407;
yy409:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy100;
        if (yych <= '9') goto yy544;
        goto yy100;
    } else {
        if (yych <= 'F') goto yy544;
        if (yych <= '`') goto yy100;
        if (yych <= 'f') goto yy544;
        goto yy100;
    }
yy410:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy100;
        if (yych <= '9') goto yy545;
        goto yy100;
    } else {
        if (yych <= 'F') goto yy545;
        if (yych <= '`') goto yy100;
        if (yych <= 'f') goto yy545;
        goto yy100;
    }
yy411:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 32) {
        goto yy411;
    }
    if (yych <= 0x1F) {
        if (yych <= 0x08) goto yy100;
        if (yych <= '\r') goto yy261;
        goto yy100;
    } else {
        if (yych == '/') goto yy105;
        goto yy261;
    }
yy413:
    ++YYCURSOR;
#line 166 "strict_cpp.re"
    { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
#line 3161 "strict_cpp_re.inc"
yy415:
    yych = *++YYCURSOR;
    if (yych == 'i') goto yy546;
    goto yy100;
yy416:
    yych = *++YYCURSOR;
    if (yych == 'f') goto yy547;
    goto yy100;
yy417:
    yych = *++YYCURSOR;
    if (yych == 'e') goto yy549;
    goto yy100;
yy418:
    yych = *++YYCURSOR;
    if (yych == 'i') goto yy551;
    if (yych == 'r') goto yy552;
    goto yy100;
yy419:
    yych = *++YYCURSOR;
    if (yych == 'o') goto yy553;
    goto yy100;
yy420:
    yych = *++YYCURSOR;
    if (yych == 'e') goto yy554;
    goto yy100;
yy421:
    yych = *++YYCURSOR;
    if (yych == 'd') goto yy555;
    goto yy100;
yy422:
    yych = *++YYCURSOR;
    if (yych == 'l') goto yy556;
    goto yy100;
yy423:
    yych = *++YYCURSOR;
    if (yych == 'e') goto yy557;
    goto yy100;
yy424:
    yych = *++YYCURSOR;
    if (yych == 'g') goto yy559;
    goto yy100;
yy425:
    yych = *++YYCURSOR;
    if (yych == 'i') goto yy560;
    goto yy100;
yy426:
    yych = *++YYCURSOR;
    if (yych == 'e') goto yy561;
    goto yy100;
yy427:
    yych = *++YYCURSOR;
    if (yych == 'n') goto yy562;
    goto yy100;
yy428:
    ++YYCURSOR;
#line 169 "strict_cpp.re"
    { BOOST_WAVE_RET(T_POUND_POUND_ALT); }
#line 3219 "strict_cpp_re.inc"
yy430:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 2) {
        goto yy129;
    }
    if (yych <= 0x1F) goto yy100;
    if (yych <= '\'') goto yy563;
    if (yych <= '?') goto yy131;
    goto yy430;
yy432:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy100;
        if (yych <= '9') goto yy564;
        goto yy100;
    } else {
        if (yych <= 'F') goto yy564;
        if (yych <= '`') goto yy100;
        if (yych <= 'f') goto yy564;
        goto yy100;
    }
yy433:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy100;
        if (yych <= '9') goto yy565;
        goto yy100;
    } else {
        if (yych <= 'F') goto yy565;
        if (yych <= '`') goto yy100;
        if (yych <= 'f') goto yy565;
        goto yy100;
    }
yy434:
    ++YYCURSOR;
#line 230 "strict_cpp.re"
    { BOOST_WAVE_RET(T_ORASSIGN_TRIGRAPH); }
#line 3263 "strict_cpp_re.inc"
yy436:
    yych = *++YYCURSOR;
    if (yych == '?') goto yy566;
    goto yy100;
yy437:
    ++YYCURSOR;
#line 253 "strict_cpp.re"
    { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
#line 3272 "strict_cpp_re.inc"
yy439:
    ++YYCURSOR;
#line 225 "strict_cpp.re"
    { BOOST_WAVE_RET(T_XORASSIGN_TRIGRAPH); }
#line 3277 "strict_cpp_re.inc"
yy441:
    ++YYCURSOR;
#line 167 "strict_cpp.re"
    { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
#line 3282 "strict_cpp_re.inc"
yy443:
    yych = *++YYCURSOR;
    if (yych == '?') goto yy567;
    goto yy100;
yy444:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy100;
        if (yych <= '9') goto yy568;
        goto yy100;
    } else {
        if (yych <= 'F') goto yy568;
        if (yych <= '`') goto yy100;
        if (yych <= 'f') goto yy568;
        goto yy100;
    }
yy445:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy100;
        if (yych <= '9') goto yy569;
        goto yy100;
    } else {
        if (yych <= 'F') goto yy569;
        if (yych <= '`') goto yy100;
        if (yych <= 'f') goto yy569;
        goto yy100;
    }
yy446:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'c') goto yy570;
    goto yy55;
yy447:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'n') goto yy571;
    goto yy55;
yy448:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy457;
    if (yych == 't') goto yy572;
    goto yy55;
yy449:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy573;
    goto yy55;
yy450:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'y') goto yy574;
    goto yy55;
yy451:
    yyaccept = 22;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy452:
#line 148 "strict_cpp.re"
    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_ASM : T_IDENTIFIER); }
#line 3352 "strict_cpp_re.inc"
yy453:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy576;
    goto yy55;
yy454:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'c') goto yy577;
    goto yy55;
yy455:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy578;
    goto yy55;
yy456:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy579;
    goto yy55;
yy457:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'i') goto yy580;
    goto yy55;
yy458:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'c') goto yy581;
    goto yy55;
yy459:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'n') goto yy582;
    goto yy55;
yy460:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy583;
    goto yy55;
yy461:
    yyaccept = 23;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy462:
#line 53 "strict_cpp.re"
    { BOOST_WAVE_RET(T_AUTO); }
#line 3404 "strict_cpp_re.inc"
yy463:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'n') goto yy584;
    goto yy55;
yy464:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'r') goto yy585;
    goto yy55;
yy465:
    yyaccept = 24;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy466:
#line 54 "strict_cpp.re"
    { BOOST_WAVE_RET(T_BOOL); }
#line 3426 "strict_cpp_re.inc"
yy467:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'k') goto yy587;
    goto yy55;
yy468:
    yyaccept = 25;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy469:
#line 56 "strict_cpp.re"
    { BOOST_WAVE_RET(T_CASE); }
#line 3443 "strict_cpp_re.inc"
yy470:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'h') goto yy589;
    goto yy55;
yy471:
    yyaccept = 26;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= '>') {
        if (yych <= '2') {
            if (yych <= '/') goto yy472;
            if (yych == '1') goto yy591;
            goto yy54;
        } else {
            if (yych <= '7') {
                if (yych <= '3') goto yy592;
                goto yy54;
            } else {
                if (yych <= '8') goto yy593;
                if (yych <= '9') goto yy54;
            }
        }
    } else {
        if (yych <= '\\') {
            if (yych <= '@') {
                if (yych <= '?') goto yy173;
            } else {
                if (yych <= 'Z') goto yy54;
                if (yych >= '\\') goto yy174;
            }
        } else {
            if (yych <= '_') {
                if (yych >= '_') goto yy54;
            } else {
                if (yych <= '`') goto yy472;
                if (yych <= 'z') goto yy54;
            }
        }
    }
yy472:
#line 58 "strict_cpp.re"
    { BOOST_WAVE_RET(T_CHAR); }
#line 3486 "strict_cpp_re.inc"
yy473:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 's') goto yy594;
    goto yy55;
yy474:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'w') goto yy596;
    goto yy55;
yy475:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy597;
    goto yy55;
yy476:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'i') goto yy598;
    goto yy55;
yy477:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy599;
    goto yy55;
yy478:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy601;
    goto yy55;
yy479:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy602;
    goto yy55;
yy480:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'i') goto yy604;
    goto yy55;
yy481:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy605;
    goto yy55;
yy482:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'u') goto yy606;
    goto yy55;
yy483:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy607;
    goto yy55;
yy484:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy608;
    goto yy55;
yy485:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'm') goto yy609;
    goto yy55;
yy486:
    yyaccept = 27;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy487:
#line 79 "strict_cpp.re"
    { BOOST_WAVE_RET(T_ELSE); }
#line 3563 "strict_cpp_re.inc"
yy488:
    yyaccept = 28;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy489:
#line 80 "strict_cpp.re"
    { BOOST_WAVE_RET(T_ENUM); }
#line 3575 "strict_cpp_re.inc"
yy490:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'i') goto yy610;
    goto yy55;
yy491:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'r') goto yy611;
    goto yy55;
yy492:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'r') goto yy612;
    goto yy55;
yy493:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy613;
    goto yy55;
yy494:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy615;
    goto yy55;
yy495:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'n') goto yy617;
    goto yy55;
yy496:
    yyaccept = 29;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy497:
#line 88 "strict_cpp.re"
    { BOOST_WAVE_RET(T_GOTO); }
#line 3617 "strict_cpp_re.inc"
yy498:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'r') goto yy618;
    goto yy55;
yy499:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'n') goto yy619;
    goto yy55;
yy500:
    yyaccept = 30;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy501:
#line 93 "strict_cpp.re"
    { BOOST_WAVE_RET(T_LONG); }
#line 3639 "strict_cpp_re.inc"
yy502:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy620;
    goto yy55;
yy503:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'b') goto yy621;
    goto yy55;
yy504:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 's') goto yy622;
    goto yy55;
yy505:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'c') goto yy623;
    goto yy55;
yy506:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy624;
    goto yy55;
yy507:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'p') goto yy625;
    goto yy55;
yy508:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy626;
    goto yy55;
yy509:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'q') goto yy627;
    goto yy55;
yy510:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy629;
    goto yy55;
yy511:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy630;
    goto yy55;
yy512:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'i') goto yy631;
    goto yy55;
yy513:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 's') goto yy632;
    goto yy55;
yy514:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy633;
    goto yy55;
yy515:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'i') goto yy634;
    goto yy55;
yy516:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'r') goto yy635;
    goto yy55;
yy517:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy636;
    goto yy55;
yy518:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy638;
    goto yy55;
yy519:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'o') goto yy639;
    goto yy55;
yy520:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'i') goto yy640;
    goto yy55;
yy521:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'c') goto yy641;
    goto yy55;
yy522:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'c') goto yy642;
    goto yy55;
yy523:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy643;
    goto yy55;
yy524:
    yyaccept = 31;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy525:
#line 117 "strict_cpp.re"
    { BOOST_WAVE_RET(T_THIS); }
#line 3761 "strict_cpp_re.inc"
yy526:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy644;
    goto yy55;
yy527:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'w') goto yy645;
    goto yy55;
yy528:
    yyaccept = 32;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy529:
#line 120 "strict_cpp.re"
    { BOOST_WAVE_RET(T_TRUE); }
#line 3783 "strict_cpp_re.inc"
yy530:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'h') {
        if (yych == 'd') goto yy647;
        goto yy55;
    } else {
        if (yych <= 'i') goto yy648;
        if (yych == 'n') goto yy649;
        goto yy55;
    }
yy531:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'n') goto yy650;
    goto yy55;
yy532:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'g') goto yy652;
    goto yy55;
yy533:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'g') goto yy653;
    goto yy55;
yy534:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'u') goto yy655;
    goto yy55;
yy535:
    yyaccept = 33;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy536:
#line 129 "strict_cpp.re"
    { BOOST_WAVE_RET(T_VOID); }
#line 3826 "strict_cpp_re.inc"
yy537:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy656;
    goto yy55;
yy538:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'r') goto yy657;
    goto yy55;
yy539:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy658;
    goto yy55;
yy540:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy660;
    goto yy55;
yy541:
    ++YYCURSOR;
#line 254 "strict_cpp.re"
    { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
#line 3851 "strict_cpp_re.inc"
yy543:
    yyaccept = 34;
    YYMARKER = ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 1) {
        goto yy98;
    }
    if (yych <= 0x1F) goto yy102;
    if (yych <= '"') goto yy101;
    if (yych <= '?') goto yy103;
    goto yy104;
yy544:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy100;
        if (yych <= '9') goto yy661;
        goto yy100;
    } else {
        if (yych <= 'F') goto yy661;
        if (yych <= '`') goto yy100;
        if (yych <= 'f') goto yy661;
        goto yy100;
    }
yy545:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy100;
        if (yych <= '9') goto yy260;
        goto yy100;
    } else {
        if (yych <= 'F') goto yy260;
        if (yych <= '`') goto yy100;
        if (yych <= 'f') goto yy260;
        goto yy100;
    }
yy546:
    yych = *++YYCURSOR;
    if (yych == 'n') goto yy662;
    goto yy100;
yy547:
    ++YYCURSOR;
#line 333 "strict_cpp.re"
    { BOOST_WAVE_RET(T_PP_ELIF); }
#line 3900 "strict_cpp_re.inc"
yy549:
    ++YYCURSOR;
#line 332 "strict_cpp.re"
    { BOOST_WAVE_RET(T_PP_ELSE); }
#line 3905 "strict_cpp_re.inc"
yy551:
    yych = *++YYCURSOR;
    if (yych == 'f') goto yy663;
    goto yy100;
yy552:
    yych = *++YYCURSOR;
    if (yych == 'e') goto yy665;
    goto yy100;
yy553:
    yych = *++YYCURSOR;
    if (yych == 'r') goto yy666;
    goto yy100;
yy554:
    yych = *++YYCURSOR;
    if (yych == 'f') goto yy668;
    goto yy100;
yy555:
    yych = *++YYCURSOR;
    if (yych == 'e') goto yy670;
    goto yy100;
yy556:
    yych = *++YYCURSOR;
    if (yych == 'u') goto yy671;
    goto yy100;
yy557:
    ++YYCURSOR;
#line 337 "strict_cpp.re"
    { BOOST_WAVE_RET(T_PP_LINE); }
#line 3934 "strict_cpp_re.inc"
yy559:
    yych = *++YYCURSOR;
    if (yych == 'm') goto yy672;
    goto yy100;
yy560:
    yych = *++YYCURSOR;
    if (yych == 'o') goto yy673;
    goto yy100;
yy561:
    yych = *++YYCURSOR;
    if (yych == 'f') goto yy674;
    goto yy100;
yy562:
    yych = *++YYCURSOR;
    if (yych == 'i') goto yy676;
    goto yy100;
yy563:
    yyaccept = 35;
    YYMARKER = ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 2) {
        goto yy129;
    }
    if (yych <= 0x1F) goto yy278;
    if (yych <= '\'') goto yy277;
    if (yych <= '?') goto yy131;
    goto yy132;
yy564:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy100;
        if (yych <= '9') goto yy677;
        goto yy100;
    } else {
        if (yych <= 'F') goto yy677;
        if (yych <= '`') goto yy100;
        if (yych <= 'f') goto yy677;
        goto yy100;
    }
yy565:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy100;
        if (yych <= '9') goto yy283;
        goto yy100;
    } else {
        if (yych <= 'F') goto yy283;
        if (yych <= '`') goto yy100;
        if (yych <= 'f') goto yy283;
        goto yy100;
    }
yy566:
    yych = *++YYCURSOR;
    if (yych == '!') goto yy678;
    goto yy100;
yy567:
    yych = *++YYCURSOR;
    if (yych == '=') goto yy680;
    goto yy100;
yy568:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy100;
        if (yych <= '9') goto yy184;
        goto yy100;
    } else {
        if (yych <= 'F') goto yy184;
        if (yych <= '`') goto yy100;
        if (yych <= 'f') goto yy184;
        goto yy100;
    }
yy569:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy100;
        if (yych <= '9') goto yy54;
        goto yy100;
    } else {
        if (yych <= 'F') goto yy54;
        if (yych <= '`') goto yy100;
        if (yych <= 'f') goto yy54;
        goto yy100;
    }
yy570:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy682;
    goto yy55;
yy571:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy683;
    goto yy55;
yy572:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    switch (yych) {
    case '1':    goto yy684;
    case '3':    goto yy685;
    case '6':    goto yy686;
    case '8':    goto yy687;
    default:    goto yy55;
    }
yy573:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'v') goto yy689;
    goto yy55;
yy574:
    yyaccept = 36;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy575:
#line 143 "strict_cpp.re"
    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_TRY : T_IDENTIFIER); }
#line 4063 "strict_cpp_re.inc"
yy576:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'd') goto yy690;
    goto yy55;
yy577:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy692;
    goto yy55;
yy578:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 's') goto yy694;
    goto yy55;
yy579:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'c') goto yy695;
    goto yy55;
yy580:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'n') goto yy696;
    goto yy55;
yy581:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy697;
    goto yy55;
yy582:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy698;
    if (yych == 'o') goto yy699;
    goto yy55;
yy583:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'q') goto yy700;
    goto yy55;
yy584:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'd') goto yy702;
    goto yy55;
yy585:
    yyaccept = 37;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy586:
#line 208 "strict_cpp.re"
    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OR_ALT); }
#line 4121 "strict_cpp_re.inc"
yy587:
    yyaccept = 38;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy588:
#line 55 "strict_cpp.re"
    { BOOST_WAVE_RET(T_BREAK); }
#line 4133 "strict_cpp_re.inc"
yy589:
    yyaccept = 39;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy590:
#line 57 "strict_cpp.re"
    { BOOST_WAVE_RET(T_CATCH); }
#line 4145 "strict_cpp_re.inc"
yy591:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '6') goto yy704;
    goto yy55;
yy592:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '2') goto yy705;
    goto yy55;
yy593:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '_') goto yy706;
    goto yy55;
yy594:
    yyaccept = 40;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy595:
#line 62 "strict_cpp.re"
    { BOOST_WAVE_RET(T_CLASS); }
#line 4172 "strict_cpp_re.inc"
yy596:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy707;
    goto yy55;
yy597:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy708;
    goto yy55;
yy598:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy709;
    goto yy55;
yy599:
    yyaccept = 41;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy600:
#line 212 "strict_cpp.re"
    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_COMPL_ALT); }
#line 4199 "strict_cpp_re.inc"
yy601:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'p') goto yy710;
    goto yy55;
yy602:
    yyaccept = 42;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= '\\') {
        if (yych <= '?') {
            if (yych <= '/') goto yy603;
            if (yych <= '9') goto yy54;
            if (yych >= '?') goto yy173;
        } else {
            if (yych <= '@') goto yy603;
            if (yych <= 'Z') goto yy54;
            if (yych >= '\\') goto yy174;
        }
    } else {
        if (yych <= 'd') {
            if (yych == '_') goto yy711;
            if (yych >= 'a') goto yy54;
        } else {
            if (yych <= 'h') {
                if (yych <= 'e') goto yy712;
                goto yy54;
            } else {
                if (yych <= 'i') goto yy713;
                if (yych <= 'z') goto yy54;
            }
        }
    }
yy603:
#line 64 "strict_cpp.re"
    { BOOST_WAVE_RET(T_CONST); }
#line 4235 "strict_cpp_re.inc"
yy604:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'n') goto yy714;
    goto yy55;
yy605:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'y') goto yy715;
    goto yy55;
yy606:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy716;
    goto yy55;
yy607:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy717;
    goto yy55;
yy608:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy719;
    goto yy55;
yy609:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'i') goto yy721;
    goto yy55;
yy610:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'c') goto yy722;
    goto yy55;
yy611:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy723;
    goto yy55;
yy612:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'n') goto yy725;
    goto yy55;
yy613:
    yyaccept = 43;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy614:
#line 84 "strict_cpp.re"
    { BOOST_WAVE_RET(T_FALSE); }
#line 4292 "strict_cpp_re.inc"
yy615:
    yyaccept = 44;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy616:
#line 85 "strict_cpp.re"
    { BOOST_WAVE_RET(T_FLOAT); }
#line 4304 "strict_cpp_re.inc"
yy617:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'd') goto yy727;
    goto yy55;
yy618:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy729;
    goto yy55;
yy619:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy731;
    goto yy55;
yy620:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy733;
    goto yy55;
yy621:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy735;
    goto yy55;
yy622:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'p') goto yy736;
    goto yy55;
yy623:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy737;
    goto yy55;
yy624:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'q') goto yy738;
    goto yy55;
yy625:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy740;
    goto yy55;
yy626:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy741;
    goto yy55;
yy627:
    yyaccept = 45;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy628:
#line 229 "strict_cpp.re"
    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ORASSIGN_ALT); }
#line 4366 "strict_cpp_re.inc"
yy629:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy742;
    goto yy55;
yy630:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'c') goto yy743;
    goto yy55;
yy631:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'c') goto yy744;
    goto yy55;
yy632:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy746;
    goto yy55;
yy633:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy747;
    goto yy55;
yy634:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'r') goto yy748;
    goto yy55;
yy635:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'n') goto yy749;
    goto yy55;
yy636:
    yyaccept = 46;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy637:
#line 108 "strict_cpp.re"
    { BOOST_WAVE_RET(T_SHORT); }
#line 4413 "strict_cpp_re.inc"
yy638:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'd') goto yy751;
    goto yy55;
yy639:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'f') goto yy753;
    goto yy55;
yy640:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'c') goto yy755;
    goto yy55;
yy641:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy757;
    goto yy55;
yy642:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'h') goto yy759;
    goto yy55;
yy643:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy761;
    goto yy55;
yy644:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'd') goto yy762;
    goto yy55;
yy645:
    yyaccept = 47;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy646:
#line 119 "strict_cpp.re"
    { BOOST_WAVE_RET(T_THROW); }
#line 4460 "strict_cpp_re.inc"
yy647:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy763;
    goto yy55;
yy648:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'd') goto yy764;
    goto yy55;
yy649:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy766;
    goto yy55;
yy650:
    yyaccept = 48;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy651:
#line 125 "strict_cpp.re"
    { BOOST_WAVE_RET(T_UNION); }
#line 4487 "strict_cpp_re.inc"
yy652:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'n') goto yy767;
    goto yy55;
yy653:
    yyaccept = 49;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy654:
#line 127 "strict_cpp.re"
    { BOOST_WAVE_RET(T_USING); }
#line 4504 "strict_cpp_re.inc"
yy655:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy768;
    goto yy55;
yy656:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'i') goto yy769;
    goto yy55;
yy657:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '_') goto yy770;
    goto yy55;
yy658:
    yyaccept = 50;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy659:
#line 132 "strict_cpp.re"
    { BOOST_WAVE_RET(T_WHILE); }
#line 4531 "strict_cpp_re.inc"
yy660:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'q') goto yy771;
    goto yy55;
yy661:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy100;
        if (yych <= '9') goto yy259;
        goto yy100;
    } else {
        if (yych <= 'F') goto yy259;
        if (yych <= '`') goto yy100;
        if (yych <= 'f') goto yy259;
        goto yy100;
    }
yy662:
    yych = *++YYCURSOR;
    if (yych == 'e') goto yy773;
    goto yy100;
yy663:
    ++YYCURSOR;
#line 334 "strict_cpp.re"
    { BOOST_WAVE_RET(T_PP_ENDIF); }
#line 4559 "strict_cpp_re.inc"
yy665:
    yych = *++YYCURSOR;
    if (yych == 'g') goto yy775;
    goto yy100;
yy666:
    ++YYCURSOR;
#line 338 "strict_cpp.re"
    { BOOST_WAVE_RET(T_PP_ERROR); }
#line 4568 "strict_cpp_re.inc"
yy668:
    ++YYCURSOR;
#line 330 "strict_cpp.re"
    { BOOST_WAVE_RET(T_PP_IFDEF); }
#line 4573 "strict_cpp_re.inc"
yy670:
    yych = *++YYCURSOR;
    if (yych == 'f') goto yy776;
    goto yy100;
yy671:
    yych = *++YYCURSOR;
    if (yych == 'd') goto yy778;
    goto yy100;
yy672:
    yych = *++YYCURSOR;
    if (yych == 'a') goto yy779;
    goto yy100;
yy673:
    yych = *++YYCURSOR;
    if (yych == 'n') goto yy781;
    goto yy100;
yy674:
    ++YYCURSOR;
#line 336 "strict_cpp.re"
    { BOOST_WAVE_RET(T_PP_UNDEF); }
#line 4594 "strict_cpp_re.inc"
yy676:
    yych = *++YYCURSOR;
    if (yych == 'n') goto yy783;
    goto yy100;
yy677:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy100;
        if (yych <= '9') goto yy282;
        goto yy100;
    } else {
        if (yych <= 'F') goto yy282;
        if (yych <= '`') goto yy100;
        if (yych <= 'f') goto yy282;
        goto yy100;
    }
yy678:
    ++YYCURSOR;
#line 256 "strict_cpp.re"
    { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
#line 4617 "strict_cpp_re.inc"
yy680:
    ++YYCURSOR;
#line 168 "strict_cpp.re"
    { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
#line 4622 "strict_cpp_re.inc"
yy682:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'p') goto yy784;
    goto yy55;
yy683:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy785;
    goto yy55;
yy684:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '6') goto yy786;
    goto yy55;
yy685:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '2') goto yy788;
    goto yy55;
yy686:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '4') goto yy790;
    goto yy55;
yy687:
    yyaccept = 51;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy688:
#line 134 "strict_cpp.re"
    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT8 : T_IDENTIFIER); }
#line 4659 "strict_cpp_re.inc"
yy689:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy792;
    goto yy55;
yy690:
    yyaccept = 52;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy691:
#line 138 "strict_cpp.re"
    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_BASED : T_IDENTIFIER); }
#line 4676 "strict_cpp_re.inc"
yy692:
    yyaccept = 53;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy693:
#line 140 "strict_cpp.re"
    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_CDECL : T_IDENTIFIER); }
#line 4688 "strict_cpp_re.inc"
yy694:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'p') goto yy794;
    goto yy55;
yy695:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy795;
    goto yy55;
yy696:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy796;
    goto yy55;
yy697:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy798;
    goto yy55;
yy698:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 's') goto yy799;
    goto yy55;
yy699:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'f') goto yy801;
    goto yy55;
yy700:
    yyaccept = 54;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy701:
#line 227 "strict_cpp.re"
    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDASSIGN_ALT); }
#line 4730 "strict_cpp_re.inc"
yy702:
    yyaccept = 55;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy703:
#line 206 "strict_cpp.re"
    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_AND_ALT); }
#line 4742 "strict_cpp_re.inc"
yy704:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '_') goto yy803;
    goto yy55;
yy705:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '_') goto yy804;
    goto yy55;
yy706:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy805;
    goto yy55;
yy707:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'i') goto yy807;
    goto yy55;
yy708:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'u') goto yy808;
    goto yy55;
yy709:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy809;
    goto yy55;
yy710:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy810;
    goto yy55;
yy711:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'c') goto yy812;
    goto yy55;
yy712:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'v') goto yy813;
    if (yych == 'x') goto yy814;
    goto yy55;
yy713:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'n') goto yy815;
    goto yy55;
yy714:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'u') goto yy816;
    goto yy55;
yy715:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'p') goto yy817;
    goto yy55;
yy716:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy818;
    goto yy55;
yy717:
    yyaccept = 56;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy718:
#line 75 "strict_cpp.re"
    { BOOST_WAVE_RET(T_DELETE); }
#line 4820 "strict_cpp_re.inc"
yy719:
    yyaccept = 57;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy720:
#line 77 "strict_cpp.re"
    { BOOST_WAVE_RET(T_DOUBLE); }
#line 4832 "strict_cpp_re.inc"
yy721:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'c') goto yy820;
    goto yy55;
yy722:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'i') goto yy821;
    goto yy55;
yy723:
    yyaccept = 58;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy724:
#line 82 "strict_cpp.re"
    { BOOST_WAVE_RET(T_EXPORT); }
#line 4854 "strict_cpp_re.inc"
yy725:
    yyaccept = 59;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy726:
#line 83 "strict_cpp.re"
    { BOOST_WAVE_RET(T_EXTERN); }
#line 4866 "strict_cpp_re.inc"
yy727:
    yyaccept = 60;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy728:
#line 87 "strict_cpp.re"
    { BOOST_WAVE_RET(T_FRIEND); }
#line 4878 "strict_cpp_re.inc"
yy729:
    yyaccept = 61;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy730:
#line 90 "strict_cpp.re"
    { BOOST_WAVE_RET(s->enable_import_keyword ? T_IMPORT : T_IDENTIFIER); }
#line 4890 "strict_cpp_re.inc"
yy731:
    yyaccept = 62;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy732:
#line 91 "strict_cpp.re"
    { BOOST_WAVE_RET(T_INLINE); }
#line 4902 "strict_cpp_re.inc"
yy733:
    yyaccept = 63;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy734:
#line 94 "strict_cpp.re"
    { BOOST_WAVE_RET(s->act_in_cpp2a_mode ? T_MODULE : T_IDENTIFIER); }
#line 4914 "strict_cpp_re.inc"
yy735:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy822;
    goto yy55;
yy736:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy824;
    goto yy55;
yy737:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'p') goto yy825;
    goto yy55;
yy738:
    yyaccept = 64;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy739:
#line 237 "strict_cpp.re"
    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOTEQUAL_ALT); }
#line 4941 "strict_cpp_re.inc"
yy740:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'r') goto yy826;
    goto yy55;
yy741:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'o') goto yy828;
    goto yy55;
yy742:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy829;
    goto yy55;
yy743:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy831;
    goto yy55;
yy744:
    yyaccept = 65;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy745:
#line 103 "strict_cpp.re"
    { BOOST_WAVE_RET(T_PUBLIC); }
#line 4973 "strict_cpp_re.inc"
yy746:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy832;
    goto yy55;
yy747:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'r') goto yy833;
    goto yy55;
yy748:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy834;
    goto yy55;
yy749:
    yyaccept = 66;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy750:
#line 107 "strict_cpp.re"
    { BOOST_WAVE_RET(T_RETURN); }
#line 5000 "strict_cpp_re.inc"
yy751:
    yyaccept = 67;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy752:
#line 109 "strict_cpp.re"
    { BOOST_WAVE_RET(T_SIGNED); }
#line 5012 "strict_cpp_re.inc"
yy753:
    yyaccept = 68;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy754:
#line 110 "strict_cpp.re"
    { BOOST_WAVE_RET(T_SIZEOF); }
#line 5024 "strict_cpp_re.inc"
yy755:
    yyaccept = 69;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'Z') {
        if (yych <= '>') {
            if (yych <= '/') goto yy756;
            if (yych <= '9') goto yy54;
        } else {
            if (yych <= '?') goto yy173;
            if (yych >= 'A') goto yy54;
        }
    } else {
        if (yych <= '^') {
            if (yych == '\\') goto yy174;
        } else {
            if (yych <= '_') goto yy835;
            if (yych <= '`') goto yy756;
            if (yych <= 'z') goto yy54;
        }
    }
yy756:
#line 111 "strict_cpp.re"
    { BOOST_WAVE_RET(T_STATIC); }
#line 5048 "strict_cpp_re.inc"
yy757:
    yyaccept = 70;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy758:
#line 114 "strict_cpp.re"
    { BOOST_WAVE_RET(T_STRUCT); }
#line 5060 "strict_cpp_re.inc"
yy759:
    yyaccept = 71;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy760:
#line 115 "strict_cpp.re"
    { BOOST_WAVE_RET(T_SWITCH); }
#line 5072 "strict_cpp_re.inc"
yy761:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy836;
    goto yy55;
yy762:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '_') goto yy837;
    goto yy55;
yy763:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'f') goto yy838;
    goto yy55;
yy764:
    yyaccept = 72;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy765:
#line 123 "strict_cpp.re"
    { BOOST_WAVE_RET(T_TYPEID); }
#line 5099 "strict_cpp_re.inc"
yy766:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'm') goto yy840;
    goto yy55;
yy767:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy841;
    goto yy55;
yy768:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy842;
    goto yy55;
yy769:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy844;
    goto yy55;
yy770:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy845;
    goto yy55;
yy771:
    yyaccept = 73;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy772:
#line 224 "strict_cpp.re"
    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XORASSIGN_ALT); }
#line 5136 "strict_cpp_re.inc"
yy773:
    ++YYCURSOR;
#line 335 "strict_cpp.re"
    { BOOST_WAVE_RET(T_PP_DEFINE); }
#line 5141 "strict_cpp_re.inc"
yy775:
    yych = *++YYCURSOR;
    if (yych == 'i') goto yy847;
    goto yy100;
yy776:
    ++YYCURSOR;
#line 331 "strict_cpp.re"
    { BOOST_WAVE_RET(T_PP_IFNDEF); }
#line 5150 "strict_cpp_re.inc"
yy778:
    yych = *++YYCURSOR;
    if (yych == 'e') goto yy848;
    goto yy100;
yy779:
    ++YYCURSOR;
#line 339 "strict_cpp.re"
    { BOOST_WAVE_RET(T_PP_PRAGMA); }
#line 5159 "strict_cpp_re.inc"
yy781:
    ++YYCURSOR;
#line 343 "strict_cpp.re"
    { BOOST_WAVE_RET(T_MSEXT_PP_REGION); }
#line 5164 "strict_cpp_re.inc"
yy783:
    yych = *++YYCURSOR;
    if (yych == 'g') goto yy850;
    goto yy100;
yy784:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy852;
    goto yy55;
yy785:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy854;
    goto yy55;
yy786:
    yyaccept = 74;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy787:
#line 135 "strict_cpp.re"
    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT16 : T_IDENTIFIER); }
#line 5190 "strict_cpp_re.inc"
yy788:
    yyaccept = 75;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy789:
#line 136 "strict_cpp.re"
    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT32 : T_IDENTIFIER); }
#line 5202 "strict_cpp_re.inc"
yy790:
    yyaccept = 76;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy791:
#line 137 "strict_cpp.re"
    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT64 : T_IDENTIFIER); }
#line 5214 "strict_cpp_re.inc"
yy792:
    yyaccept = 77;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy793:
#line 146 "strict_cpp.re"
    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_LEAVE : T_IDENTIFIER); }
#line 5226 "strict_cpp_re.inc"
yy794:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy855;
    goto yy55;
yy795:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy856;
    goto yy55;
yy796:
    yyaccept = 78;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy797:
#line 147 "strict_cpp.re"
    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INLINE : T_IDENTIFIER); }
#line 5248 "strict_cpp_re.inc"
yy798:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy857;
    goto yy55;
yy799:
    yyaccept = 79;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy800:
#line 50 "strict_cpp.re"
    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_ALIGNAS : T_IDENTIFIER); }
#line 5265 "strict_cpp_re.inc"
yy801:
    yyaccept = 80;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy802:
#line 51 "strict_cpp.re"
    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_ALIGNOF : T_IDENTIFIER); }
#line 5277 "strict_cpp_re.inc"
yy803:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy859;
    goto yy55;
yy804:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy861;
    goto yy55;
yy805:
    yyaccept = 81;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy806:
#line 59 "strict_cpp.re"
    { BOOST_WAVE_RET(s->act_in_cpp2a_mode ? T_CHAR8_T : T_IDENTIFIER); }
#line 5299 "strict_cpp_re.inc"
yy807:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy863;
    goto yy55;
yy808:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'r') goto yy865;
    goto yy55;
yy809:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'd') goto yy866;
    goto yy55;
yy810:
    yyaccept = 82;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy811:
#line 63 "strict_cpp.re"
    { BOOST_WAVE_RET(s->act_in_cpp2a_mode ? T_CONCEPT : T_IDENTIFIER); }
#line 5326 "strict_cpp_re.inc"
yy812:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy868;
    goto yy55;
yy813:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy869;
    goto yy55;
yy814:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'p') goto yy870;
    goto yy55;
yy815:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'i') goto yy871;
    goto yy55;
yy816:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy872;
    goto yy55;
yy817:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy874;
    goto yy55;
yy818:
    yyaccept = 83;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy819:
#line 74 "strict_cpp.re"
    { BOOST_WAVE_RET(T_DEFAULT); }
#line 5368 "strict_cpp_re.inc"
yy820:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '_') goto yy876;
    goto yy55;
yy821:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy877;
    goto yy55;
yy822:
    yyaccept = 84;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy823:
#line 95 "strict_cpp.re"
    { BOOST_WAVE_RET(T_MUTABLE); }
#line 5390 "strict_cpp_re.inc"
yy824:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'c') goto yy879;
    goto yy55;
yy825:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy880;
    goto yy55;
yy826:
    yyaccept = 85;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy827:
#line 99 "strict_cpp.re"
    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_NULLPTR : T_IDENTIFIER); }
#line 5412 "strict_cpp_re.inc"
yy828:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'r') goto yy882;
    goto yy55;
yy829:
    yyaccept = 86;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy830:
#line 101 "strict_cpp.re"
    { BOOST_WAVE_RET(T_PRIVATE); }
#line 5429 "strict_cpp_re.inc"
yy831:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy884;
    goto yy55;
yy832:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'r') goto yy885;
    goto yy55;
yy833:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'p') goto yy887;
    goto yy55;
yy834:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 's') goto yy888;
    goto yy55;
yy835:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy890;
    if (yych == 'c') goto yy891;
    goto yy55;
yy836:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy892;
    goto yy55;
yy837:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy894;
    goto yy55;
yy838:
    yyaccept = 87;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy839:
#line 122 "strict_cpp.re"
    { BOOST_WAVE_RET(T_TYPEDEF); }
#line 5477 "strict_cpp_re.inc"
yy840:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy895;
    goto yy55;
yy841:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'd') goto yy897;
    goto yy55;
yy842:
    yyaccept = 88;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy843:
#line 128 "strict_cpp.re"
    { BOOST_WAVE_RET(T_VIRTUAL); }
#line 5499 "strict_cpp_re.inc"
yy844:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy899;
    goto yy55;
yy845:
    yyaccept = 89;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy846:
#line 131 "strict_cpp.re"
    { BOOST_WAVE_RET(T_WCHART); }
#line 5516 "strict_cpp_re.inc"
yy847:
    yych = *++YYCURSOR;
    if (yych == 'o') goto yy901;
    goto yy100;
yy848:
    yyaccept = 90;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '_') goto yy907;
    goto yy903;
yy849:
#line 327 "strict_cpp.re"
    { BOOST_WAVE_RET(T_PP_INCLUDE); }
#line 5529 "strict_cpp_re.inc"
yy850:
    ++YYCURSOR;
#line 341 "strict_cpp.re"
    { BOOST_WAVE_RET(T_PP_WARNING); }
#line 5534 "strict_cpp_re.inc"
yy852:
    yyaccept = 91;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy853:
#line 144 "strict_cpp.re"
    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_EXCEPT : T_IDENTIFIER); }
#line 5546 "strict_cpp_re.inc"
yy854:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'y') goto yy908;
    goto yy55;
yy855:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'c') goto yy910;
    goto yy55;
yy856:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy912;
    goto yy55;
yy857:
    yyaccept = 92;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy858:
#line 142 "strict_cpp.re"
    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_STDCALL : T_IDENTIFIER); }
#line 5573 "strict_cpp_re.inc"
yy859:
    yyaccept = 93;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy860:
#line 60 "strict_cpp.re"
    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CHAR16_T : T_IDENTIFIER); }
#line 5585 "strict_cpp_re.inc"
yy861:
    yyaccept = 94;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy862:
#line 61 "strict_cpp.re"
    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CHAR32_T : T_IDENTIFIER); }
#line 5597 "strict_cpp_re.inc"
yy863:
    yyaccept = 95;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy864:
#line 70 "strict_cpp.re"
    { BOOST_WAVE_RET(s->act_in_cpp2a_mode ? T_CO_AWAIT : T_IDENTIFIER); }
#line 5609 "strict_cpp_re.inc"
yy865:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'n') goto yy914;
    goto yy55;
yy866:
    yyaccept = 96;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy867:
#line 72 "strict_cpp.re"
    { BOOST_WAVE_RET(s->act_in_cpp2a_mode ? T_CO_YIELD : T_IDENTIFIER); }
#line 5626 "strict_cpp_re.inc"
yy868:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 's') goto yy916;
    goto yy55;
yy869:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy917;
    goto yy55;
yy870:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'r') goto yy919;
    goto yy55;
yy871:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy921;
    goto yy55;
yy872:
    yyaccept = 97;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy873:
#line 69 "strict_cpp.re"
    { BOOST_WAVE_RET(T_CONTINUE); }
#line 5658 "strict_cpp_re.inc"
yy874:
    yyaccept = 98;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy875:
#line 73 "strict_cpp.re"
    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_DECLTYPE : T_IDENTIFIER); }
#line 5670 "strict_cpp_re.inc"
yy876:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'c') goto yy923;
    goto yy55;
yy877:
    yyaccept = 99;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy878:
#line 81 "strict_cpp.re"
    { BOOST_WAVE_RET(T_EXPLICIT); }
#line 5687 "strict_cpp_re.inc"
yy879:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy924;
    goto yy55;
yy880:
    yyaccept = 100;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy881:
#line 98 "strict_cpp.re"
    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_NOEXCEPT : T_IDENTIFIER); }
#line 5704 "strict_cpp_re.inc"
yy882:
    yyaccept = 101;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy883:
#line 100 "strict_cpp.re"
    { BOOST_WAVE_RET(T_OPERATOR); }
#line 5716 "strict_cpp_re.inc"
yy884:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'd') goto yy926;
    goto yy55;
yy885:
    yyaccept = 102;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy886:
#line 104 "strict_cpp.re"
    { BOOST_WAVE_RET(T_REGISTER); }
#line 5733 "strict_cpp_re.inc"
yy887:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'r') goto yy928;
    goto yy55;
yy888:
    yyaccept = 103;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy889:
#line 106 "strict_cpp.re"
    { BOOST_WAVE_RET(s->act_in_cpp2a_mode ? T_REQUIRES : T_IDENTIFIER); }
#line 5750 "strict_cpp_re.inc"
yy890:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 's') goto yy929;
    goto yy55;
yy891:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy930;
    goto yy55;
yy892:
    yyaccept = 104;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy893:
#line 116 "strict_cpp.re"
    { BOOST_WAVE_RET(T_TEMPLATE); }
#line 5772 "strict_cpp_re.inc"
yy894:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'o') goto yy931;
    goto yy55;
yy895:
    yyaccept = 105;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy896:
#line 124 "strict_cpp.re"
    { BOOST_WAVE_RET(T_TYPENAME); }
#line 5789 "strict_cpp_re.inc"
yy897:
    yyaccept = 106;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy898:
#line 126 "strict_cpp.re"
    { BOOST_WAVE_RET(T_UNSIGNED); }
#line 5801 "strict_cpp_re.inc"
yy899:
    yyaccept = 107;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy900:
#line 130 "strict_cpp.re"
    { BOOST_WAVE_RET(T_VOLATILE); }
#line 5813 "strict_cpp_re.inc"
yy901:
    yych = *++YYCURSOR;
    if (yych == 'n') goto yy932;
    goto yy100;
yy902:
    yyaccept = 90;
    YYMARKER = ++YYCURSOR;
    if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
    yych = *YYCURSOR;
yy903:
    if (yych <= ' ') {
        if (yych <= '\n') {
            if (yych == '\t') goto yy902;
            goto yy849;
        } else {
            if (yych <= '\f') goto yy902;
            if (yych <= 0x1F) goto yy849;
            goto yy902;
        }
    } else {
        if (yych <= '.') {
            if (yych != '"') goto yy849;
        } else {
            if (yych <= '/') goto yy905;
            if (yych == '<') goto yy906;
            goto yy849;
        }
    }
    yych = *++YYCURSOR;
    if (yych == '"') goto yy100;
    goto yy935;
yy905:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych == '*') goto yy936;
    goto yy100;
yy906:
    yych = *++YYCURSOR;
    if (yych == '>') goto yy100;
    goto yy939;
yy907:
    yych = *++YYCURSOR;
    if (yych == 'n') goto yy940;
    goto yy100;
yy908:
    yyaccept = 108;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy909:
#line 145 "strict_cpp.re"
    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FINALLY : T_IDENTIFIER); }
#line 5870 "strict_cpp_re.inc"
yy910:
    yyaccept = 109;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy911:
#line 139 "strict_cpp.re"
    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_DECLSPEC : T_IDENTIFIER); }
#line 5882 "strict_cpp_re.inc"
yy912:
    yyaccept = 110;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy913:
#line 141 "strict_cpp.re"
    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FASTCALL : T_IDENTIFIER); }
#line 5894 "strict_cpp_re.inc"
yy914:
    yyaccept = 111;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy915:
#line 71 "strict_cpp.re"
    { BOOST_WAVE_RET(s->act_in_cpp2a_mode ? T_CO_RETURN : T_IDENTIFIER); }
#line 5906 "strict_cpp_re.inc"
yy916:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy941;
    goto yy55;
yy917:
    yyaccept = 112;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy918:
#line 65 "strict_cpp.re"
    { BOOST_WAVE_RET(s->act_in_cpp2a_mode ? T_CONSTEVAL : T_IDENTIFIER); }
#line 5923 "strict_cpp_re.inc"
yy919:
    yyaccept = 113;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy920:
#line 66 "strict_cpp.re"
    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CONSTEXPR : T_IDENTIFIER); }
#line 5935 "strict_cpp_re.inc"
yy921:
    yyaccept = 114;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy922:
#line 67 "strict_cpp.re"
    { BOOST_WAVE_RET(s->act_in_cpp2a_mode ? T_CONSTINIT : T_IDENTIFIER); }
#line 5947 "strict_cpp_re.inc"
yy923:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy943;
    goto yy55;
yy924:
    yyaccept = 115;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy925:
#line 96 "strict_cpp.re"
    { BOOST_WAVE_RET(T_NAMESPACE); }
#line 5964 "strict_cpp_re.inc"
yy926:
    yyaccept = 116;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy927:
#line 102 "strict_cpp.re"
    { BOOST_WAVE_RET(T_PROTECTED); }
#line 5976 "strict_cpp_re.inc"
yy928:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy944;
    goto yy55;
yy929:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 's') goto yy945;
    goto yy55;
yy930:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 's') goto yy946;
    goto yy55;
yy931:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'c') goto yy947;
    goto yy55;
yy932:
    ++YYCURSOR;
#line 344 "strict_cpp.re"
    { BOOST_WAVE_RET(T_MSEXT_PP_ENDREGION); }
#line 6001 "strict_cpp_re.inc"
yy934:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
yy935:
    if (yybm[0+yych] & 64) {
        goto yy934;
    }
    if (yych <= 0x1F) goto yy100;
    goto yy948;
yy936:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= 0x1F) {
        if (yych <= 0x08) goto yy100;
        if (yych <= '\r') goto yy936;
        goto yy100;
    } else {
        if (yych == '*') goto yy950;
        goto yy936;
    }
yy938:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
yy939:
    if (yybm[0+yych] & 128) {
        goto yy938;
    }
    if (yych <= 0x1F) goto yy100;
    goto yy952;
yy940:
    yych = *++YYCURSOR;
    if (yych == 'e') goto yy954;
    goto yy100;
yy941:
    yyaccept = 117;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy942:
#line 68 "strict_cpp.re"
    { BOOST_WAVE_RET(T_CONSTCAST); }
#line 6049 "strict_cpp_re.inc"
yy943:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 's') goto yy955;
    goto yy55;
yy944:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy956;
    goto yy55;
yy945:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy957;
    goto yy55;
yy946:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy958;
    goto yy55;
yy947:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy960;
    goto yy55;
yy948:
    ++YYCURSOR;
#line 324 "strict_cpp.re"
    { BOOST_WAVE_RET(T_PP_QHEADER); }
#line 6079 "strict_cpp_re.inc"
yy950:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= ')') {
        if (yych <= 0x08) goto yy100;
        if (yych <= '\r') goto yy936;
        if (yych <= 0x1F) goto yy100;
        goto yy936;
    } else {
        if (yych <= '*') goto yy950;
        if (yych == '/') goto yy902;
        goto yy936;
    }
yy952:
    ++YYCURSOR;
#line 321 "strict_cpp.re"
    { BOOST_WAVE_RET(T_PP_HHEADER); }
#line 6098 "strict_cpp_re.inc"
yy954:
    yych = *++YYCURSOR;
    if (yych == 'x') goto yy961;
    goto yy100;
yy955:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy962;
    goto yy55;
yy956:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '_') goto yy964;
    goto yy55;
yy957:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'r') goto yy965;
    goto yy55;
yy958:
    yyaccept = 118;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy959:
#line 112 "strict_cpp.re"
    { BOOST_WAVE_RET(T_STATICCAST); }
#line 6129 "strict_cpp_re.inc"
yy960:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy966;
    goto yy55;
yy961:
    yych = *++YYCURSOR;
    if (yych == 't') goto yy902;
    goto yy100;
yy962:
    yyaccept = 119;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy963:
#line 78 "strict_cpp.re"
    { BOOST_WAVE_RET(T_DYNAMICCAST); }
#line 6150 "strict_cpp_re.inc"
yy964:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'c') goto yy968;
    goto yy55;
yy965:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy969;
    goto yy55;
yy966:
    yyaccept = 120;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy967:
#line 118 "strict_cpp.re"
    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_THREADLOCAL : T_IDENTIFIER); }
#line 6172 "strict_cpp_re.inc"
yy968:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy971;
    goto yy55;
yy969:
    yyaccept = 121;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy970:
#line 113 "strict_cpp.re"
    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_STATICASSERT : T_IDENTIFIER); }
#line 6189 "strict_cpp_re.inc"
yy971:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 's') goto yy55;
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy55;
    yyaccept = 122;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy54;
    }
    if (yych == '?') goto yy173;
    if (yych == '\\') goto yy174;
yy974:
#line 105 "strict_cpp.re"
    { BOOST_WAVE_RET(T_REINTERPRETCAST); }
#line 6207 "strict_cpp_re.inc"
}
#line 376 "strict_cpp.re"


ccomment:

#line 6214 "strict_cpp_re.inc"
{
    YYCTYPE yych;
    if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
    yych = *YYCURSOR;
    if (yych <= '\f') {
        if (yych <= 0x08) {
            if (yych >= 0x01) goto yy979;
        } else {
            if (yych == '\n') goto yy983;
            goto yy981;
        }
    } else {
        if (yych <= 0x1F) {
            if (yych <= '\r') goto yy985;
            goto yy979;
        } else {
            if (yych == '*') goto yy986;
            goto yy981;
        }
    }
    ++YYCURSOR;
#line 394 "strict_cpp.re"
    {
        if(cursor == s->eof)
        {
            BOOST_WAVE_UPDATE_CURSOR();   // adjust the input cursor
            (*s->error_proc)(s, lexing_exception::generic_lexing_warning,
                "Unterminated 'C' style comment");
        }
        else
        {
            --YYCURSOR;                   // next call returns T_EOF
            BOOST_WAVE_UPDATE_CURSOR();   // adjust the input cursor
            (*s->error_proc)(s, lexing_exception::generic_lexing_error,
                "invalid character: '\\000' in input stream");
        }
    }
#line 6252 "strict_cpp_re.inc"
yy979:
    ++YYCURSOR;
#line 411 "strict_cpp.re"
    {
        // flag the error
        BOOST_WAVE_UPDATE_CURSOR();   // adjust the input cursor
        (*s->error_proc)(s, lexing_exception::generic_lexing_error,
            "invalid character '\\%03o' in input stream", *--YYCURSOR);
    }
#line 6262 "strict_cpp_re.inc"
yy981:
    ++YYCURSOR;
yy982:
#line 391 "strict_cpp.re"
    { goto ccomment; }
#line 6268 "strict_cpp_re.inc"
yy983:
    ++YYCURSOR;
yy984:
#line 383 "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 6280 "strict_cpp_re.inc"
yy985:
    yych = *++YYCURSOR;
    if (yych == '\n') goto yy983;
    goto yy984;
yy986:
    yych = *++YYCURSOR;
    if (yych != '/') goto yy982;
    ++YYCURSOR;
#line 380 "strict_cpp.re"
    { BOOST_WAVE_RET(T_CCOMMENT); }
#line 6291 "strict_cpp_re.inc"
}
#line 417 "strict_cpp.re"


cppcomment:

#line 6298 "strict_cpp_re.inc"
{
    YYCTYPE yych;
    if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
    yych = *YYCURSOR;
    if (yych <= '\n') {
        if (yych <= 0x00) goto yy991;
        if (yych <= 0x08) goto yy993;
        if (yych <= '\t') goto yy995;
        goto yy997;
    } else {
        if (yych <= '\f') goto yy995;
        if (yych <= '\r') goto yy999;
        if (yych <= 0x1F) goto yy993;
        goto yy995;
    }
yy991:
    ++YYCURSOR;
#line 433 "strict_cpp.re"
    {
        if (s->eof && cursor != s->eof)
        {
            --YYCURSOR;                     // next call returns T_EOF
            BOOST_WAVE_UPDATE_CURSOR();     // adjust the input cursor
            (*s->error_proc)(s, lexing_exception::generic_lexing_error,
                "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, lexing_exception::generic_lexing_warning,
                "Unterminated 'C++' style comment");
        }
        BOOST_WAVE_RET(T_CPPCOMMENT);
    }
#line 6335 "strict_cpp_re.inc"
yy993:
    ++YYCURSOR;
#line 453 "strict_cpp.re"
    {
        // flag the error
        BOOST_WAVE_UPDATE_CURSOR();     // adjust the input cursor
        (*s->error_proc)(s, lexing_exception::generic_lexing_error,
            "invalid character '\\%03o' in input stream", *--YYCURSOR);
    }
#line 6345 "strict_cpp_re.inc"
yy995:
    ++YYCURSOR;
#line 430 "strict_cpp.re"
    { goto cppcomment; }
#line 6350 "strict_cpp_re.inc"
yy997:
    ++YYCURSOR;
yy998:
#line 422 "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 6362 "strict_cpp_re.inc"
yy999:
    yych = *++YYCURSOR;
    if (yych == '\n') goto yy997;
    goto yy998;
}
#line 459 "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) {
    
#line 6380 "strict_cpp_re.inc"
{
    YYCTYPE yych;
    static const 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, 
    };
    if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
    yych = *YYCURSOR;
    if (yych == '.') goto yy1004;
    if (yych <= '/') goto yy1002;
    if (yych <= '9') goto yy1005;
yy1002:
    ++YYCURSOR;
yy1003:
#line 473 "strict_cpp.re"
    { BOOST_ASSERT(false); }
#line 6427 "strict_cpp_re.inc"
yy1004:
    yych = *++YYCURSOR;
    if (yych <= '/') goto yy1003;
    if (yych >= ':') goto yy1003;
yy1005:
    YYMARKER = ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 64) {
        goto yy1005;
    }
    if (yych <= 'E') {
        if (yych == '?') goto yy1008;
        if (yych >= 'A') goto yy1010;
    } else {
        if (yych <= '\\') {
            if (yych >= '\\') goto yy1012;
        } else {
            if (yych <= '`') goto yy1007;
            if (yych <= 'e') goto yy1010;
        }
    }
yy1007:
#line 471 "strict_cpp.re"
    { BOOST_WAVE_RET(T_PP_NUMBER); }
#line 6453 "strict_cpp_re.inc"
yy1008:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych == '?') goto yy1013;
yy1009:
    YYCURSOR = YYMARKER;
    goto yy1007;
yy1010:
    YYMARKER = ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 128) {
        goto yy1010;
    }
    if (yych <= '?') {
        if (yych <= '.') {
            if (yych == '+') goto yy1005;
            if (yych <= ',') goto yy1007;
            goto yy1005;
        } else {
            if (yych <= '/') goto yy1007;
            if (yych <= '9') goto yy1005;
            if (yych <= '>') goto yy1007;
            goto yy1008;
        }
    } else {
        if (yych <= '\\') {
            if (yych <= '@') goto yy1007;
            if (yych <= 'Z') goto yy1005;
            if (yych <= '[') goto yy1007;
        } else {
            if (yych <= '_') {
                if (yych <= '^') goto yy1007;
                goto yy1005;
            } else {
                if (yych <= '`') goto yy1007;
                if (yych <= 'z') goto yy1005;
                goto yy1007;
            }
        }
    }
yy1012:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych == 'U') goto yy1014;
    if (yych == 'u') goto yy1015;
    goto yy1009;
yy1013:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych == '/') goto yy1012;
    goto yy1009;
yy1014:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1009;
        if (yych <= '9') goto yy1016;
        goto yy1009;
    } else {
        if (yych <= 'F') goto yy1016;
        if (yych <= '`') goto yy1009;
        if (yych <= 'f') goto yy1016;
        goto yy1009;
    }
yy1015:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1009;
        if (yych <= '9') goto yy1017;
        goto yy1009;
    } else {
        if (yych <= 'F') goto yy1017;
        if (yych <= '`') goto yy1009;
        if (yych <= 'f') goto yy1017;
        goto yy1009;
    }
yy1016:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1009;
        if (yych <= '9') goto yy1018;
        goto yy1009;
    } else {
        if (yych <= 'F') goto yy1018;
        if (yych <= '`') goto yy1009;
        if (yych <= 'f') goto yy1018;
        goto yy1009;
    }
yy1017:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1009;
        if (yych <= '9') goto yy1019;
        goto yy1009;
    } else {
        if (yych <= 'F') goto yy1019;
        if (yych <= '`') goto yy1009;
        if (yych <= 'f') goto yy1019;
        goto yy1009;
    }
yy1018:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1009;
        if (yych <= '9') goto yy1020;
        goto yy1009;
    } else {
        if (yych <= 'F') goto yy1020;
        if (yych <= '`') goto yy1009;
        if (yych <= 'f') goto yy1020;
        goto yy1009;
    }
yy1019:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1009;
        if (yych <= '9') goto yy1021;
        goto yy1009;
    } else {
        if (yych <= 'F') goto yy1021;
        if (yych <= '`') goto yy1009;
        if (yych <= 'f') goto yy1021;
        goto yy1009;
    }
yy1020:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1009;
        if (yych <= '9') goto yy1015;
        goto yy1009;
    } else {
        if (yych <= 'F') goto yy1015;
        if (yych <= '`') goto yy1009;
        if (yych <= 'f') goto yy1015;
        goto yy1009;
    }
yy1021:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1009;
        if (yych <= '9') goto yy1005;
        goto yy1009;
    } else {
        if (yych <= 'F') goto yy1005;
        if (yych <= '`') goto yy1009;
        if (yych <= 'f') goto yy1005;
        goto yy1009;
    }
}
#line 474 "strict_cpp.re"

    }
    else {
    
#line 6627 "strict_cpp_re.inc"
{
    YYCTYPE yych;
    unsigned int yyaccept = 0;
    static const 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, 
        240, 240, 176, 176, 176, 176, 176, 176, 
        144, 144,   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, 
    };
    if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
    yych = *YYCURSOR;
    if (yych <= '/') {
        if (yych == '.') goto yy1026;
    } else {
        if (yych <= '0') goto yy1027;
        if (yych <= '9') goto yy1029;
    }
    ++YYCURSOR;
yy1025:
#line 483 "strict_cpp.re"
    { BOOST_ASSERT(false); }
#line 6677 "strict_cpp_re.inc"
yy1026:
    yych = *++YYCURSOR;
    if (yych <= '/') goto yy1025;
    if (yych <= '9') goto yy1031;
    goto yy1025;
yy1027:
    yyaccept = 0;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'X') {
        if (yych == 'B') goto yy1041;
        if (yych <= 'W') goto yy1038;
        goto yy1043;
    } else {
        if (yych <= 'b') {
            if (yych <= 'a') goto yy1038;
            goto yy1041;
        } else {
            if (yych == 'x') goto yy1043;
            goto yy1038;
        }
    }
yy1028:
#line 481 "strict_cpp.re"
    { goto integer_suffix; }
#line 6702 "strict_cpp_re.inc"
yy1029:
    yyaccept = 0;
    YYMARKER = ++YYCURSOR;
    if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 16) {
        goto yy1029;
    }
    if (yych <= '.') {
        if (yych == '\'') goto yy1044;
        if (yych <= '-') goto yy1028;
        goto yy1036;
    } else {
        if (yych <= 'E') {
            if (yych <= 'D') goto yy1028;
            goto yy1042;
        } else {
            if (yych == 'e') goto yy1042;
            goto yy1028;
        }
    }
yy1031:
    yyaccept = 1;
    YYMARKER = ++YYCURSOR;
    if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
    yych = *YYCURSOR;
yy1032:
    if (yych <= 'F') {
        if (yych <= '/') {
            if (yych == '\'') goto yy1045;
        } else {
            if (yych <= '9') goto yy1031;
            if (yych <= 'D') goto yy1033;
            if (yych <= 'E') goto yy1042;
            goto yy1046;
        }
    } else {
        if (yych <= 'e') {
            if (yych == 'L') goto yy1047;
            if (yych >= 'e') goto yy1042;
        } else {
            if (yych <= 'f') goto yy1046;
            if (yych == 'l') goto yy1047;
        }
    }
yy1033:
#line 479 "strict_cpp.re"
    { BOOST_WAVE_RET(T_FLOATLIT); }
#line 6751 "strict_cpp_re.inc"
yy1034:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '/') goto yy1035;
    if (yych <= '7') goto yy1048;
    if (yych <= '9') goto yy1050;
yy1035:
    YYCURSOR = YYMARKER;
    if (yyaccept == 0) {
        goto yy1028;
    } else {
        goto yy1033;
    }
yy1036:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '\'') goto yy1033;
    goto yy1032;
yy1037:
    yyaccept = 0;
    YYMARKER = ++YYCURSOR;
    if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
    yych = *YYCURSOR;
yy1038:
    if (yybm[0+yych] & 32) {
        goto yy1037;
    }
    if (yych <= '/') {
        if (yych <= '\'') {
            if (yych <= '&') goto yy1028;
            goto yy1034;
        } else {
            if (yych == '.') goto yy1036;
            goto yy1028;
        }
    } else {
        if (yych <= 'E') {
            if (yych <= '9') goto yy1039;
            if (yych <= 'D') goto yy1028;
            goto yy1042;
        } else {
            if (yych == 'e') goto yy1042;
            goto yy1028;
        }
    }
yy1039:
    ++YYCURSOR;
    if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
    yych = *YYCURSOR;
    if (yych <= '/') {
        if (yych <= '\'') {
            if (yych <= '&') goto yy1035;
            goto yy1052;
        } else {
            if (yych == '.') goto yy1036;
            goto yy1035;
        }
    } else {
        if (yych <= 'E') {
            if (yych <= '9') goto yy1039;
            if (yych <= 'D') goto yy1035;
            goto yy1042;
        } else {
            if (yych == 'e') goto yy1042;
            goto yy1035;
        }
    }
yy1041:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 64) {
        goto yy1053;
    }
    goto yy1035;
yy1042:
    yych = *++YYCURSOR;
    if (yych <= ',') {
        if (yych == '+') goto yy1055;
        goto yy1035;
    } else {
        if (yych <= '-') goto yy1055;
        if (yych <= '/') goto yy1035;
        if (yych <= '9') goto yy1056;
        goto yy1035;
    }
yy1043:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 128) {
        goto yy1058;
    }
    goto yy1035;
yy1044:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '/') goto yy1035;
    if (yych <= '9') goto yy1060;
    goto yy1035;
yy1045:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '/') goto yy1035;
    if (yych <= '9') goto yy1031;
    goto yy1035;
yy1046:
    yych = *++YYCURSOR;
    if (yych == 'L') goto yy1062;
    if (yych == 'l') goto yy1062;
    goto yy1033;
yy1047:
    yych = *++YYCURSOR;
    if (yych == 'F') goto yy1062;
    if (yych == 'f') goto yy1062;
    goto yy1033;
yy1048:
    yyaccept = 0;
    YYMARKER = ++YYCURSOR;
    if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
    yych = *YYCURSOR;
    if (yych <= '.') {
        if (yych == '\'') goto yy1034;
        if (yych <= '-') goto yy1028;
        goto yy1036;
    } else {
        if (yych <= '/') goto yy1028;
        if (yych <= '7') goto yy1048;
        if (yych >= ':') goto yy1028;
    }
yy1050:
    ++YYCURSOR;
    if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
    yych = *YYCURSOR;
    if (yych <= '-') {
        if (yych != '\'') goto yy1035;
    } else {
        if (yych <= '.') goto yy1036;
        if (yych <= '/') goto yy1035;
        if (yych <= '9') goto yy1050;
        goto yy1035;
    }
yy1052:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '/') goto yy1035;
    if (yych <= '9') goto yy1050;
    goto yy1035;
yy1053:
    yyaccept = 0;
    YYMARKER = ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 64) {
        goto yy1053;
    }
    if (yych == '\'') goto yy1041;
    goto yy1028;
yy1055:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '/') goto yy1035;
    if (yych >= ':') goto yy1035;
yy1056:
    yyaccept = 1;
    YYMARKER = ++YYCURSOR;
    if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
    yych = *YYCURSOR;
    if (yych <= 'F') {
        if (yych <= '/') {
            if (yych == '\'') goto yy1055;
            goto yy1033;
        } else {
            if (yych <= '9') goto yy1056;
            if (yych <= 'E') goto yy1033;
            goto yy1046;
        }
    } else {
        if (yych <= 'e') {
            if (yych == 'L') goto yy1047;
            goto yy1033;
        } else {
            if (yych <= 'f') goto yy1046;
            if (yych == 'l') goto yy1047;
            goto yy1033;
        }
    }
yy1058:
    yyaccept = 0;
    YYMARKER = ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 128) {
        goto yy1058;
    }
    if (yych == '\'') goto yy1043;
    goto yy1028;
yy1060:
    yyaccept = 0;
    YYMARKER = ++YYCURSOR;
    if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
    yych = *YYCURSOR;
    if (yych <= '-') {
        if (yych == '\'') goto yy1044;
        goto yy1028;
    } else {
        if (yych <= '.') goto yy1036;
        if (yych <= '/') goto yy1028;
        if (yych <= '9') goto yy1060;
        goto yy1028;
    }
yy1062:
    ++YYCURSOR;
    goto yy1033;
}
#line 484 "strict_cpp.re"

    }
}

/* this subscanner is called, whenever an Integer was recognized */
integer_suffix:
{
    auto suffix_start = YYCURSOR;

    
#line 6983 "strict_cpp_re.inc"
{
    YYCTYPE yych;
    if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
    yych = *(YYMARKER = YYCURSOR);
    if (yych <= 'h') {
        if (yych <= 'T') {
            if (yych == 'L') goto yy1066;
        } else {
            if (yych <= 'U') goto yy1067;
            if (yych == 'Z') goto yy1068;
        }
    } else {
        if (yych <= 't') {
            if (yych <= 'i') goto yy1070;
            if (yych == 'l') goto yy1072;
        } else {
            if (yych <= 'u') goto yy1067;
            if (yych == 'z') goto yy1068;
        }
    }
yy1065:
#line 516 "strict_cpp.re"
    { BOOST_WAVE_RET(T_INTLIT); }
#line 7007 "strict_cpp_re.inc"
yy1066:
    yych = *++YYCURSOR;
    if (yych <= 'T') {
        if (yych == 'L') goto yy1073;
        goto yy1065;
    } else {
        if (yych <= 'U') goto yy1075;
        if (yych == 'u') goto yy1075;
        goto yy1065;
    }
yy1067:
    yych = *++YYCURSOR;
    if (yych <= 'Z') {
        if (yych == 'L') goto yy1076;
        if (yych <= 'Y') goto yy1065;
        goto yy1077;
    } else {
        if (yych <= 'l') {
            if (yych <= 'k') goto yy1065;
            goto yy1078;
        } else {
            if (yych == 'z') goto yy1077;
            goto yy1065;
        }
    }
yy1068:
    yych = *++YYCURSOR;
    if (yych == 'U') goto yy1077;
    if (yych == 'u') goto yy1077;
yy1069:
#line 506 "strict_cpp.re"
    {
        if (s->act_in_cpp2b_mode) {
            BOOST_WAVE_RET(T_SIZETLIT);
        } else {
            YYCURSOR = suffix_start;
            BOOST_WAVE_RET(T_INTLIT);
        }
    }
#line 7047 "strict_cpp_re.inc"
yy1070:
    yych = *++YYCURSOR;
    if (yych == '6') goto yy1079;
yy1071:
    YYCURSOR = YYMARKER;
    goto yy1065;
yy1072:
    yych = *++YYCURSOR;
    if (yych <= 'k') {
        if (yych == 'U') goto yy1075;
        goto yy1065;
    } else {
        if (yych <= 'l') goto yy1073;
        if (yych == 'u') goto yy1075;
        goto yy1065;
    }
yy1073:
    yych = *++YYCURSOR;
    if (yych == 'U') goto yy1080;
    if (yych == 'u') goto yy1080;
yy1074:
#line 495 "strict_cpp.re"
    { BOOST_WAVE_RET(T_LONGINTLIT); }
#line 7071 "strict_cpp_re.inc"
yy1075:
    ++YYCURSOR;
    goto yy1065;
yy1076:
    yych = *++YYCURSOR;
    if (yych == 'L') goto yy1080;
    goto yy1065;
yy1077:
    ++YYCURSOR;
    goto yy1069;
yy1078:
    yych = *++YYCURSOR;
    if (yych == 'l') goto yy1080;
    goto yy1065;
yy1079:
    yych = *++YYCURSOR;
    if (yych == '4') goto yy1081;
    goto yy1071;
yy1080:
    ++YYCURSOR;
    goto yy1074;
yy1081:
    ++YYCURSOR;
#line 497 "strict_cpp.re"
    {
        if (s->enable_ms_extensions) {
            BOOST_WAVE_RET(T_LONGINTLIT);
        } else {
            YYCURSOR = suffix_start;
            BOOST_WAVE_RET(T_INTLIT);
        }
    }
#line 7104 "strict_cpp_re.inc"
}
#line 518 "strict_cpp.re"


    // re2c will complain about -Wmatch-empty-string above
    // it's OK because we've already matched an integer
    // and will return T_INTLIT
}

/* this subscanner is invoked for C++0x extended character literals */
extcharlit:
{
    
#line 7118 "strict_cpp_re.inc"
{
    YYCTYPE yych;
    static const 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, 
        128, 128, 128, 128, 128, 128, 128, 128, 
        128, 128,   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, 
    };
    if ((YYLIMIT - YYCURSOR) < 13) YYFILL(13);
    yych = *YYCURSOR;
    if (yych <= 0x1F) {
        if (yych <= '\n') {
            if (yych <= 0x08) goto yy1085;
            if (yych <= '\t') goto yy1087;
            goto yy1089;
        } else {
            if (yych <= '\f') goto yy1087;
            if (yych <= '\r') goto yy1089;
        }
    } else {
        if (yych <= '>') {
            if (yych == '\'') goto yy1089;
            goto yy1087;
        } else {
            if (yych <= '?') goto yy1090;
            if (yych == '\\') goto yy1091;
            goto yy1087;
        }
    }
yy1085:
    ++YYCURSOR;
#line 529 "strict_cpp.re"
    {
            (*s->error_proc)(s, lexing_exception::generic_lexing_error,
                "Invalid character in raw string delimiter ('%c')", yych);
        }
#line 7183 "strict_cpp_re.inc"
yy1087:
    yych = *++YYCURSOR;
    if (yych == '\'') goto yy1092;
yy1088:
#line 538 "strict_cpp.re"
    { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
#line 7190 "strict_cpp_re.inc"
yy1089:
    ++YYCURSOR;
    goto yy1088;
yy1090:
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '\'') goto yy1092;
    if (yych == '?') goto yy1094;
    goto yy1088;
yy1091:
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= '`') {
        if (yych <= '7') {
            if (yych <= '&') {
                if (yych == '"') goto yy1096;
                goto yy1088;
            } else {
                if (yych <= '\'') goto yy1096;
                if (yych <= '/') goto yy1088;
                goto yy1097;
            }
        } else {
            if (yych <= 'T') {
                if (yych == '?') goto yy1098;
                goto yy1088;
            } else {
                if (yych <= 'U') goto yy1099;
                if (yych == '\\') goto yy1096;
                goto yy1088;
            }
        }
    } else {
        if (yych <= 'r') {
            if (yych <= 'f') {
                if (yych <= 'b') goto yy1096;
                if (yych <= 'e') goto yy1088;
                goto yy1096;
            } else {
                if (yych == 'n') goto yy1096;
                if (yych <= 'q') goto yy1088;
                goto yy1096;
            }
        } else {
            if (yych <= 'u') {
                if (yych <= 's') goto yy1088;
                if (yych <= 't') goto yy1096;
                goto yy1100;
            } else {
                if (yych <= 'v') goto yy1096;
                if (yych == 'x') goto yy1101;
                goto yy1088;
            }
        }
    }
yy1092:
    ++YYCURSOR;
#line 535 "strict_cpp.re"
    { BOOST_WAVE_RET(T_CHARLIT); }
#line 7248 "strict_cpp_re.inc"
yy1094:
    yych = *++YYCURSOR;
    if (yych == '/') goto yy1102;
yy1095:
    YYCURSOR = YYMARKER;
    goto yy1088;
yy1096:
    yych = *++YYCURSOR;
    if (yych == '\'') goto yy1092;
    goto yy1095;
yy1097:
    yych = *++YYCURSOR;
    if (yych == '\'') goto yy1092;
    if (yych <= '/') goto yy1095;
    if (yych <= '7') goto yy1103;
    goto yy1095;
yy1098:
    yych = *++YYCURSOR;
    if (yych == '\'') goto yy1092;
    if (yych == '?') goto yy1104;
    goto yy1095;
yy1099:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1095;
        if (yych <= '9') goto yy1105;
        goto yy1095;
    } else {
        if (yych <= 'F') goto yy1105;
        if (yych <= '`') goto yy1095;
        if (yych <= 'f') goto yy1105;
        goto yy1095;
    }
yy1100:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1095;
        if (yych <= '9') goto yy1106;
        goto yy1095;
    } else {
        if (yych <= 'F') goto yy1106;
        if (yych <= '`') goto yy1095;
        if (yych <= 'f') goto yy1106;
        goto yy1095;
    }
yy1101:
    yych = *++YYCURSOR;
    if (yych == '\'') goto yy1095;
    goto yy1108;
yy1102:
    yych = *++YYCURSOR;
    if (yych <= '`') {
        if (yych <= '7') {
            if (yych <= '&') {
                if (yych == '"') goto yy1096;
                goto yy1095;
            } else {
                if (yych <= '\'') goto yy1096;
                if (yych <= '/') goto yy1095;
                goto yy1097;
            }
        } else {
            if (yych <= 'T') {
                if (yych == '?') goto yy1098;
                goto yy1095;
            } else {
                if (yych <= 'U') goto yy1099;
                if (yych == '\\') goto yy1096;
                goto yy1095;
            }
        }
    } else {
        if (yych <= 'r') {
            if (yych <= 'f') {
                if (yych <= 'b') goto yy1096;
                if (yych <= 'e') goto yy1095;
                goto yy1096;
            } else {
                if (yych == 'n') goto yy1096;
                if (yych <= 'q') goto yy1095;
                goto yy1096;
            }
        } else {
            if (yych <= 'u') {
                if (yych <= 's') goto yy1095;
                if (yych <= 't') goto yy1096;
                goto yy1100;
            } else {
                if (yych <= 'v') goto yy1096;
                if (yych == 'x') goto yy1101;
                goto yy1095;
            }
        }
    }
yy1103:
    yych = *++YYCURSOR;
    if (yych == '\'') goto yy1092;
    if (yych <= '/') goto yy1095;
    if (yych <= '7') goto yy1096;
    goto yy1095;
yy1104:
    yych = *++YYCURSOR;
    if (yych == '/') goto yy1096;
    goto yy1095;
yy1105:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1095;
        if (yych <= '9') goto yy1109;
        goto yy1095;
    } else {
        if (yych <= 'F') goto yy1109;
        if (yych <= '`') goto yy1095;
        if (yych <= 'f') goto yy1109;
        goto yy1095;
    }
yy1106:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1095;
        if (yych <= '9') goto yy1110;
        goto yy1095;
    } else {
        if (yych <= 'F') goto yy1110;
        if (yych <= '`') goto yy1095;
        if (yych <= 'f') goto yy1110;
        goto yy1095;
    }
yy1107:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
yy1108:
    if (yybm[0+yych] & 128) {
        goto yy1107;
    }
    if (yych == '\'') goto yy1092;
    goto yy1095;
yy1109:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1095;
        if (yych <= '9') goto yy1111;
        goto yy1095;
    } else {
        if (yych <= 'F') goto yy1111;
        if (yych <= '`') goto yy1095;
        if (yych <= 'f') goto yy1111;
        goto yy1095;
    }
yy1110:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1095;
        if (yych <= '9') goto yy1112;
        goto yy1095;
    } else {
        if (yych <= 'F') goto yy1112;
        if (yych <= '`') goto yy1095;
        if (yych <= 'f') goto yy1112;
        goto yy1095;
    }
yy1111:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1095;
        if (yych <= '9') goto yy1100;
        goto yy1095;
    } else {
        if (yych <= 'F') goto yy1100;
        if (yych <= '`') goto yy1095;
        if (yych <= 'f') goto yy1100;
        goto yy1095;
    }
yy1112:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1095;
        if (yych <= '9') goto yy1096;
        goto yy1095;
    } else {
        if (yych <= 'F') goto yy1096;
        if (yych <= '`') goto yy1095;
        if (yych <= 'f') goto yy1096;
        goto yy1095;
    }
}
#line 539 "strict_cpp.re"

}

/* this subscanner is invoked for C++0x extended character string literals */
extstringlit:
{
    
#line 7444 "strict_cpp_re.inc"
{
    YYCTYPE yych;
    unsigned int yyaccept = 0;
    static const unsigned char yybm[] = {
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,  32,   0,  32,  32,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
         32,  32,   0,  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,  64, 
         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, 128,  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,  32,  32, 
         32,  32,  32,  32,  32,  32,  32,  32, 
    };
    if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
    yych = *YYCURSOR;
    if (yych <= 0x1F) {
        if (yych <= '\n') {
            if (yych <= 0x08) goto yy1115;
            if (yych <= '\t') goto yy1117;
            goto yy1119;
        } else {
            if (yych <= '\f') goto yy1117;
            if (yych <= '\r') goto yy1119;
        }
    } else {
        if (yych <= '>') {
            if (yych == '"') goto yy1120;
            goto yy1117;
        } else {
            if (yych <= '?') goto yy1122;
            if (yych == '\\') goto yy1123;
            goto yy1117;
        }
    }
yy1115:
    ++YYCURSOR;
#line 546 "strict_cpp.re"
    {
            (*s->error_proc)(s, lexing_exception::generic_lexing_error,
                "Invalid character in raw string delimiter ('%c')", yych);
        }
#line 7510 "strict_cpp_re.inc"
yy1117:
    yyaccept = 0;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= '\n') {
        if (yych == '\t') goto yy1125;
    } else {
        if (yych <= '\f') goto yy1125;
        if (yych >= ' ') goto yy1125;
    }
yy1118:
#line 555 "strict_cpp.re"
    { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
#line 7523 "strict_cpp_re.inc"
yy1119:
    ++YYCURSOR;
    goto yy1118;
yy1120:
    ++YYCURSOR;
yy1121:
#line 552 "strict_cpp.re"
    { BOOST_WAVE_RET(T_STRINGLIT); }
#line 7532 "strict_cpp_re.inc"
yy1122:
    yyaccept = 0;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[0+yych] & 64) {
        goto yy1129;
    }
    if (yych <= '\n') {
        if (yych == '\t') goto yy1125;
        goto yy1118;
    } else {
        if (yych <= '\f') goto yy1125;
        if (yych <= 0x1F) goto yy1118;
        goto yy1125;
    }
yy1123:
    yyaccept = 0;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= '`') {
        if (yych <= '7') {
            if (yych <= '&') {
                if (yych != '"') goto yy1118;
            } else {
                if (yych <= '\'') goto yy1124;
                if (yych <= '/') goto yy1118;
            }
        } else {
            if (yych <= 'T') {
                if (yych != '?') goto yy1118;
            } else {
                if (yych <= 'U') goto yy1131;
                if (yych != '\\') goto yy1118;
            }
        }
    } else {
        if (yych <= 'r') {
            if (yych <= 'f') {
                if (yych <= 'b') goto yy1124;
                if (yych <= 'e') goto yy1118;
            } else {
                if (yych == 'n') goto yy1124;
                if (yych <= 'q') goto yy1118;
            }
        } else {
            if (yych <= 'u') {
                if (yych <= 's') goto yy1118;
                if (yych >= 'u') goto yy1132;
            } else {
                if (yych <= 'v') goto yy1124;
                if (yych == 'x') goto yy1133;
                goto yy1118;
            }
        }
    }
yy1124:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
yy1125:
    if (yybm[0+yych] & 32) {
        goto yy1124;
    }
    if (yych <= 0x1F) goto yy1126;
    if (yych <= '"') goto yy1120;
    if (yych <= '?') goto yy1127;
    goto yy1128;
yy1126:
    YYCURSOR = YYMARKER;
    if (yyaccept == 0) {
        goto yy1118;
    } else {
        goto yy1121;
    }
yy1127:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 32) {
        goto yy1124;
    }
    if (yych <= 0x1F) goto yy1126;
    if (yych <= '"') goto yy1120;
    if (yych <= '?') goto yy1129;
yy1128:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '`') {
        if (yych <= '7') {
            if (yych <= '&') {
                if (yych == '"') goto yy1124;
                goto yy1126;
            } else {
                if (yych <= '\'') goto yy1124;
                if (yych <= '/') goto yy1126;
                goto yy1124;
            }
        } else {
            if (yych <= 'T') {
                if (yych == '?') goto yy1124;
                goto yy1126;
            } else {
                if (yych <= 'U') goto yy1131;
                if (yych == '\\') goto yy1124;
                goto yy1126;
            }
        }
    } else {
        if (yych <= 'r') {
            if (yych <= 'f') {
                if (yych <= 'b') goto yy1124;
                if (yych <= 'e') goto yy1126;
                goto yy1124;
            } else {
                if (yych == 'n') goto yy1124;
                if (yych <= 'q') goto yy1126;
                goto yy1124;
            }
        } else {
            if (yych <= 'u') {
                if (yych <= 's') goto yy1126;
                if (yych <= 't') goto yy1124;
                goto yy1132;
            } else {
                if (yych <= 'v') goto yy1124;
                if (yych == 'x') goto yy1133;
                goto yy1126;
            }
        }
    }
yy1129:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 64) {
        goto yy1129;
    }
    if (yych <= '!') {
        if (yych <= '\n') {
            if (yych == '\t') goto yy1124;
            goto yy1126;
        } else {
            if (yych <= '\f') goto yy1124;
            if (yych <= 0x1F) goto yy1126;
            goto yy1124;
        }
    } else {
        if (yych <= '/') {
            if (yych <= '"') goto yy1120;
            if (yych <= '.') goto yy1124;
            goto yy1134;
        } else {
            if (yych == '\\') goto yy1128;
            goto yy1124;
        }
    }
yy1131:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1126;
        if (yych <= '9') goto yy1136;
        goto yy1126;
    } else {
        if (yych <= 'F') goto yy1136;
        if (yych <= '`') goto yy1126;
        if (yych <= 'f') goto yy1136;
        goto yy1126;
    }
yy1132:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1126;
        if (yych <= '9') goto yy1137;
        goto yy1126;
    } else {
        if (yych <= 'F') goto yy1137;
        if (yych <= '`') goto yy1126;
        if (yych <= 'f') goto yy1137;
        goto yy1126;
    }
yy1133:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1126;
        if (yych <= '9') goto yy1124;
        goto yy1126;
    } else {
        if (yych <= 'F') goto yy1124;
        if (yych <= '`') goto yy1126;
        if (yych <= 'f') goto yy1124;
        goto yy1126;
    }
yy1134:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 32) {
        goto yy1124;
    }
    if (yych <= 0x1F) goto yy1126;
    if (yych <= '"') goto yy1138;
    if (yych <= '?') goto yy1127;
    goto yy1134;
yy1136:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1126;
        if (yych <= '9') goto yy1139;
        goto yy1126;
    } else {
        if (yych <= 'F') goto yy1139;
        if (yych <= '`') goto yy1126;
        if (yych <= 'f') goto yy1139;
        goto yy1126;
    }
yy1137:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1126;
        if (yych <= '9') goto yy1140;
        goto yy1126;
    } else {
        if (yych <= 'F') goto yy1140;
        if (yych <= '`') goto yy1126;
        if (yych <= 'f') goto yy1140;
        goto yy1126;
    }
yy1138:
    yyaccept = 1;
    YYMARKER = ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 32) {
        goto yy1124;
    }
    if (yych <= 0x1F) goto yy1121;
    if (yych <= '"') goto yy1120;
    if (yych <= '?') goto yy1127;
    goto yy1128;
yy1139:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1126;
        if (yych <= '9') goto yy1141;
        goto yy1126;
    } else {
        if (yych <= 'F') goto yy1141;
        if (yych <= '`') goto yy1126;
        if (yych <= 'f') goto yy1141;
        goto yy1126;
    }
yy1140:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1126;
        if (yych <= '9') goto yy1133;
        goto yy1126;
    } else {
        if (yych <= 'F') goto yy1133;
        if (yych <= '`') goto yy1126;
        if (yych <= 'f') goto yy1133;
        goto yy1126;
    }
yy1141:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1126;
        if (yych <= '9') goto yy1132;
        goto yy1126;
    } else {
        if (yych <= 'F') goto yy1132;
        if (yych <= '`') goto yy1126;
        if (yych <= 'f') goto yy1132;
        goto yy1126;
    }
}
#line 556 "strict_cpp.re"

}

extrawstringlit:
{
    // we have consumed the double quote but not the lparen
    // at this point we may see a delimiter

    
#line 7834 "strict_cpp_re.inc"
{
    YYCTYPE yych;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '(') {
        if (yych <= 0x1F) goto yy1144;
        if (yych <= '\'') goto yy1146;
        goto yy1148;
    } else {
        if (yych <= ')') goto yy1144;
        if (yych != '\\') goto yy1146;
    }
yy1144:
    ++YYCURSOR;
#line 565 "strict_cpp.re"
    {
            (*s->error_proc)(s, lexing_exception::generic_lexing_error,
                "Invalid character in raw string delimiter ('%c')", yych);
        }
#line 7854 "strict_cpp_re.inc"
yy1146:
    ++YYCURSOR;
#line 572 "strict_cpp.re"
    {
            rawstringdelim += yych;
            if (rawstringdelim.size() > 16)
            {
                (*s->error_proc)(s, lexing_exception::generic_lexing_error,
                    "Raw string delimiter of excessive length (\"%s\") in input stream",
                    rawstringdelim.c_str());
            }
            goto extrawstringlit;
        }
#line 7868 "strict_cpp_re.inc"
yy1148:
    ++YYCURSOR;
#line 584 "strict_cpp.re"
    {
            rawstringdelim = ")" + rawstringdelim;
            goto extrawstringbody;
        }
#line 7876 "strict_cpp_re.inc"
}
#line 589 "strict_cpp.re"

}

extrawstringbody:
{
    
#line 7885 "strict_cpp_re.inc"
{
    YYCTYPE yych;
    static const 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, 
        128, 128, 128, 128, 128, 128, 128, 128, 
        128, 128,   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, 
    };
    if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12);
    yych = *YYCURSOR;
    if (yych <= 0x1F) {
        if (yych <= '\n') {
            if (yych <= 0x08) goto yy1152;
            if (yych <= '\t') goto yy1154;
            goto yy1156;
        } else {
            if (yych <= '\f') goto yy1154;
            if (yych <= '\r') goto yy1158;
        }
    } else {
        if (yych <= '>') {
            if (yych == '"') goto yy1159;
            goto yy1154;
        } else {
            if (yych <= '?') goto yy1161;
            if (yych == '\\') goto yy1162;
            goto yy1154;
        }
    }
yy1152:
    ++YYCURSOR;
#line 596 "strict_cpp.re"
    {
            (*s->error_proc)(s, lexing_exception::generic_lexing_error,
                "Invalid character in raw string body ('%c')", yych);
        }
#line 7950 "strict_cpp_re.inc"
yy1154:
    ++YYCURSOR;
yy1155:
#line 609 "strict_cpp.re"
    {
            goto extrawstringbody;
        }
#line 7958 "strict_cpp_re.inc"
yy1156:
    ++YYCURSOR;
yy1157:
#line 602 "strict_cpp.re"
    {
            s->line += count_backslash_newlines(s, cursor) +1;
            cursor.column = 1;
            goto extrawstringbody;
        }
#line 7968 "strict_cpp_re.inc"
yy1158:
    yych = *++YYCURSOR;
    if (yych == '\n') goto yy1156;
    goto yy1157;
yy1159:
    ++YYCURSOR;
#line 614 "strict_cpp.re"
    {
            // check to see if we have completed a delimiter
            if (string_type((char *)(YYCURSOR - rawstringdelim.size() - 1),
                             (char *)(YYCURSOR - 1)) == rawstringdelim)
            {
                 BOOST_WAVE_RET(T_RAWSTRINGLIT);
            } else {
                goto extrawstringbody;
            }
        }
#line 7986 "strict_cpp_re.inc"
yy1161:
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '?') goto yy1163;
    goto yy1155;
yy1162:
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= '`') {
        if (yych <= '7') {
            if (yych <= '&') {
                if (yych == '"') goto yy1154;
                goto yy1155;
            } else {
                if (yych <= '\'') goto yy1154;
                if (yych <= '/') goto yy1155;
                goto yy1165;
            }
        } else {
            if (yych <= 'T') {
                if (yych == '?') goto yy1166;
                goto yy1155;
            } else {
                if (yych <= 'U') goto yy1167;
                if (yych == '\\') goto yy1154;
                goto yy1155;
            }
        }
    } else {
        if (yych <= 'r') {
            if (yych <= 'f') {
                if (yych <= 'b') goto yy1154;
                if (yych <= 'e') goto yy1155;
                goto yy1154;
            } else {
                if (yych == 'n') goto yy1154;
                if (yych <= 'q') goto yy1155;
                goto yy1154;
            }
        } else {
            if (yych <= 'u') {
                if (yych <= 's') goto yy1155;
                if (yych <= 't') goto yy1154;
                goto yy1168;
            } else {
                if (yych <= 'v') goto yy1154;
                if (yych == 'x') goto yy1169;
                goto yy1155;
            }
        }
    }
yy1163:
    yych = *++YYCURSOR;
    if (yych == '/') goto yy1170;
yy1164:
    YYCURSOR = YYMARKER;
    goto yy1155;
yy1165:
    yych = *++YYCURSOR;
    if (yych <= '/') goto yy1155;
    if (yych <= '7') goto yy1171;
    goto yy1155;
yy1166:
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '?') goto yy1172;
    goto yy1155;
yy1167:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1164;
        if (yych <= '9') goto yy1173;
        goto yy1164;
    } else {
        if (yych <= 'F') goto yy1173;
        if (yych <= '`') goto yy1164;
        if (yych <= 'f') goto yy1173;
        goto yy1164;
    }
yy1168:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1164;
        if (yych <= '9') goto yy1174;
        goto yy1164;
    } else {
        if (yych <= 'F') goto yy1174;
        if (yych <= '`') goto yy1164;
        if (yych <= 'f') goto yy1174;
        goto yy1164;
    }
yy1169:
    yych = *++YYCURSOR;
    if (yybm[0+yych] & 128) {
        goto yy1175;
    }
    goto yy1164;
yy1170:
    yych = *++YYCURSOR;
    if (yych <= '`') {
        if (yych <= '7') {
            if (yych <= '&') {
                if (yych == '"') goto yy1154;
                goto yy1164;
            } else {
                if (yych <= '\'') goto yy1154;
                if (yych <= '/') goto yy1164;
                goto yy1165;
            }
        } else {
            if (yych <= 'T') {
                if (yych == '?') goto yy1166;
                goto yy1164;
            } else {
                if (yych <= 'U') goto yy1167;
                if (yych == '\\') goto yy1154;
                goto yy1164;
            }
        }
    } else {
        if (yych <= 'r') {
            if (yych <= 'f') {
                if (yych <= 'b') goto yy1154;
                if (yych <= 'e') goto yy1164;
                goto yy1154;
            } else {
                if (yych == 'n') goto yy1154;
                if (yych <= 'q') goto yy1164;
                goto yy1154;
            }
        } else {
            if (yych <= 'u') {
                if (yych <= 's') goto yy1164;
                if (yych <= 't') goto yy1154;
                goto yy1168;
            } else {
                if (yych <= 'v') goto yy1154;
                if (yych == 'x') goto yy1169;
                goto yy1164;
            }
        }
    }
yy1171:
    yych = *++YYCURSOR;
    if (yych <= '/') goto yy1155;
    if (yych <= '7') goto yy1154;
    goto yy1155;
yy1172:
    yych = *++YYCURSOR;
    if (yych == '/') goto yy1154;
    goto yy1164;
yy1173:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1164;
        if (yych <= '9') goto yy1177;
        goto yy1164;
    } else {
        if (yych <= 'F') goto yy1177;
        if (yych <= '`') goto yy1164;
        if (yych <= 'f') goto yy1177;
        goto yy1164;
    }
yy1174:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1164;
        if (yych <= '9') goto yy1178;
        goto yy1164;
    } else {
        if (yych <= 'F') goto yy1178;
        if (yych <= '`') goto yy1164;
        if (yych <= 'f') goto yy1178;
        goto yy1164;
    }
yy1175:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 128) {
        goto yy1175;
    }
    goto yy1155;
yy1177:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1164;
        if (yych <= '9') goto yy1179;
        goto yy1164;
    } else {
        if (yych <= 'F') goto yy1179;
        if (yych <= '`') goto yy1164;
        if (yych <= 'f') goto yy1179;
        goto yy1164;
    }
yy1178:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1164;
        if (yych <= '9') goto yy1180;
        goto yy1164;
    } else {
        if (yych <= 'F') goto yy1180;
        if (yych <= '`') goto yy1164;
        if (yych <= 'f') goto yy1180;
        goto yy1164;
    }
yy1179:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1164;
        if (yych <= '9') goto yy1168;
        goto yy1164;
    } else {
        if (yych <= 'F') goto yy1168;
        if (yych <= '`') goto yy1164;
        if (yych <= 'f') goto yy1168;
        goto yy1164;
    }
yy1180:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1164;
        if (yych <= '9') goto yy1154;
        goto yy1164;
    } else {
        if (yych <= 'F') goto yy1154;
        if (yych <= '`') goto yy1164;
        if (yych <= 'f') goto yy1154;
        goto yy1164;
    }
}
#line 624 "strict_cpp.re"

}
