/* Generated by re2c 0.13.5 on Sun Jan 09 15:38:23 2011 */
#line 1 "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 lexer conforming to the Standard with a few exceptions.
    So it does allow the '$' to be part of identifiers. If you need strict 
    Standards conforming behaviour, please include the lexer definition 
    provided in the file strict_cpp.re.

    TODO: 
        handle errors better.
=============================================================================*/

#line 40 "cpp.re"



#line 25 "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,  60,  32,  60,  60,  64,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
         60,  60,  52,  60,  60,  60,  60,  56, 
         60,  60, 156,  60,  60,  60,  60,  60, 
         60,  60,  60,  60,  60,  60,  60,  60, 
         60,  60,  60,  60,  60,  60,  44,  57, 
         60,  60,  60,  60,  60,  60,  60,  60, 
         60,  60,  60,  60,  60,  60,  60,  60, 
         60,  60,  60,  60,  60,  60,  60,  60, 
         60,  60,  60,  60,  58,  60,  60,  60, 
         60,  60,  60,  60,  60,  60,  60,  60, 
         60,  60,  60,  60,  60,  60,  60,  60, 
         60,  60,  60,  60,  60,  60,  60,  60, 
         60,  60,  60,  60,  60,  60,  60,  60, 
         60,  60,  60,  60,  60,  60,  60,  60, 
         60,  60,  60,  60,  60,  60,  60,  60, 
         60,  60,  60,  60,  60,  60,  60,  60, 
         60,  60,  60,  60,  60,  60,  60,  60, 
         60,  60,  60,  60,  60,  60,  60,  60, 
         60,  60,  60,  60,  60,  60,  60,  60, 
         60,  60,  60,  60,  60,  60,  60,  60, 
         60,  60,  60,  60,  60,  60,  60,  60, 
         60,  60,  60,  60,  60,  60,  60,  60, 
         60,  60,  60,  60,  60,  60,  60,  60, 
         60,  60,  60,  60,  60,  60,  60,  60, 
         60,  60,  60,  60,  60,  60,  60,  60, 
         60,  60,  60,  60,  60,  60,  60,  60, 
         60,  60,  60,  60,  60,  60,  60,  60, 
         60,  60,  60,  60,  60,  60,  60,  60, 
         60,  60,  60,  60,  60,  60,  60,  60, 
        /* table 9 .. 12: 256 */
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,  80,   0,  80,  80,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
         80,  64,   0,  64,  96,  64,  64,  64, 
         64,  64,  64,  64,  64,  64,  64,  64, 
        224, 224, 224, 224, 224, 224, 224, 224, 
        224, 224,  64,  64,  64,  64,  64,   0, 
         64, 224, 224, 224, 224, 224, 224,  96, 
         96,  96,  96,  96,  96,  96,  96,  96, 
         96,  96,  96,  96,  96,  96,  96,  96, 
         96,  96,  96,  64,   0,  64,  64,  96, 
         64, 224, 224, 224, 224, 224, 224,  96, 
         96,  96,  96,  96,  96,  96,  96,  96, 
         96,  96,  96,  96,  96,  96,  96,  96, 
         96,  96,  96,  64,  64,  64,  64,  64, 
         64,  64,  64,  64,  64,  64,  64,  64, 
         64,  64,  64,  64,  64,  64,  64,  64, 
         64,  64,  64,  64,  64,  64,  64,  64, 
         64,  64,  64,  64,  64,  64,  64,  64, 
         64,  64,  64,  64,  64,  64,  64,  64, 
         64,  64,  64,  64,  64,  64,  64,  64, 
         64,  64,  64,  64,  64,  64,  64,  64, 
         64,  64,  64,  64,  64,  64,  64,  64, 
         64,  64,  64,  64,  64,  64,  64,  64, 
         64,  64,  64,  64,  64,  64,  64,  64, 
         64,  64,  64,  64,  64,  64,  64,  64, 
         64,  64,  64,  64,  64,  64,  64,  64, 
         64,  64,  64,  64,  64,  64,  64,  64, 
         64,  64,  64,  64,  64,  64,  64,  64, 
         64,  64,  64,  64,  64,  64,  64,  64, 
         64,  64,  64,  64,  64,  64,  64,  64, 
    };

    if ((YYLIMIT - YYCURSOR) < 17) YYFILL(17);
    yych = *YYCURSOR;
    switch (yych) {
    case 0x00:    goto yy90;
    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 yy93;
    case '\t':
    case '\v':
    case '\f':    goto yy84;
    case '\n':    goto yy87;
    case '\r':    goto yy89;
    case ' ':    goto yy86;
    case '!':    goto yy68;
    case '"':    goto yy79;
    case '#':    goto yy45;
    case '$':
    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 yy82;
    case '%':    goto yy37;
    case '&':    goto yy62;
    case '\'':    goto yy77;
    case '(':    goto yy47;
    case ')':    goto yy49;
    case '*':    goto yy57;
    case '+':    goto yy53;
    case ',':    goto yy74;
    case '-':    goto yy55;
    case '.':    goto yy4;
    case '/':    goto yy2;
    case '0':
    case '1':
    case '2':
    case '3':
    case '4':
    case '5':
    case '6':
    case '7':
    case '8':
    case '9':    goto yy6;
    case ':':    goto yy43;
    case ';':    goto yy51;
    case '<':    goto yy33;
    case '=':    goto yy70;
    case '>':    goto yy72;
    case '?':    goto yy31;
    case 'L':    goto yy76;
    case 'R':    goto yy80;
    case 'U':    goto yy81;
    case '[':    goto yy39;
    case '\\':    goto yy83;
    case ']':    goto yy41;
    case '^':    goto yy59;
    case '_':    goto yy28;
    case 'a':    goto yy8;
    case 'b':    goto yy10;
    case 'c':    goto yy11;
    case 'd':    goto yy12;
    case 'e':    goto yy13;
    case 'f':    goto yy14;
    case 'g':    goto yy15;
    case 'i':    goto yy16;
    case 'l':    goto yy17;
    case 'm':    goto yy18;
    case 'n':    goto yy19;
    case 'o':    goto yy20;
    case 'p':    goto yy21;
    case 'r':    goto yy22;
    case 's':    goto yy23;
    case 't':    goto yy24;
    case 'u':    goto yy25;
    case 'v':    goto yy26;
    case 'w':    goto yy27;
    case 'x':    goto yy61;
    case '{':    goto yy29;
    case '|':    goto yy64;
    case '}':    goto yy35;
    case '~':    goto yy66;
    default:    goto yy92;
    }
yy2:
    ++YYCURSOR;
    if ((yych = *YYCURSOR) <= '.') {
        if (yych == '*') goto yy998;
    } else {
        if (yych <= '/') goto yy996;
        if (yych == '=') goto yy994;
    }
#line 188 "cpp.re"
    { BOOST_WAVE_RET(T_DIVIDE); }
#line 238 "cpp_re.inc"
yy4:
    yyaccept = 0;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= '-') {
        if (yych == '*') goto yy988;
    } else {
        if (yych <= '.') goto yy990;
        if (yych <= '/') goto yy5;
        if (yych <= '9') goto yy991;
    }
yy5:
#line 174 "cpp.re"
    { BOOST_WAVE_RET(T_DOT); }
#line 252 "cpp_re.inc"
yy6:
    ++YYCURSOR;
yy7:
#line 45 "cpp.re"
    { goto pp_number; }
#line 258 "cpp_re.inc"
yy8:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    switch (yych) {
    case 'l':    goto yy964;
    case 'n':    goto yy965;
    case 's':    goto yy966;
    case 'u':    goto yy967;
    default:    goto yy109;
    }
yy9:
#line 290 "cpp.re"
    { BOOST_WAVE_RET(T_IDENTIFIER); }
#line 272 "cpp_re.inc"
yy10:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'n') {
        if (yych == 'i') goto yy946;
        goto yy109;
    } else {
        if (yych <= 'o') goto yy947;
        if (yych == 'r') goto yy948;
        goto yy109;
    }
yy11:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    switch (yych) {
    case 'a':    goto yy893;
    case 'h':    goto yy894;
    case 'l':    goto yy895;
    case 'o':    goto yy896;
    default:    goto yy109;
    }
yy12:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'n') {
        if (yych == 'e') goto yy855;
        goto yy109;
    } else {
        if (yych <= 'o') goto yy856;
        if (yych == 'y') goto yy858;
        goto yy109;
    }
yy13:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'm') {
        if (yych == 'l') goto yy830;
        goto yy109;
    } else {
        if (yych <= 'n') goto yy831;
        if (yych == 'x') goto yy832;
        goto yy109;
    }
yy14:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    switch (yych) {
    case 'a':    goto yy811;
    case 'l':    goto yy812;
    case 'o':    goto yy813;
    case 'r':    goto yy814;
    default:    goto yy109;
    }
yy15:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'o') goto yy807;
    goto yy109;
yy16:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'l') {
        if (yych == 'f') goto yy791;
        goto yy109;
    } else {
        if (yych <= 'm') goto yy793;
        if (yych <= 'n') goto yy794;
        goto yy109;
    }
yy17:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'o') goto yy787;
    goto yy109;
yy18:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'u') goto yy780;
    goto yy109;
yy19:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'e') {
        if (yych == 'a') goto yy747;
        if (yych <= 'd') goto yy109;
        goto yy748;
    } else {
        if (yych <= 'o') {
            if (yych <= 'n') goto yy109;
            goto yy749;
        } else {
            if (yych == 'u') goto yy750;
            goto yy109;
        }
    }
yy20:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'p') goto yy733;
    if (yych == 'r') goto yy734;
    goto yy109;
yy21:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'r') goto yy712;
    if (yych == 'u') goto yy713;
    goto yy109;
yy22:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy684;
    goto yy109;
yy23:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 's') {
        if (yych <= 'g') goto yy109;
        if (yych <= 'h') goto yy638;
        if (yych <= 'i') goto yy639;
        goto yy109;
    } else {
        if (yych <= 't') goto yy640;
        if (yych == 'w') goto yy641;
        goto yy109;
    }
yy24:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'h') {
        if (yych == 'e') goto yy591;
        if (yych <= 'g') goto yy109;
        goto yy592;
    } else {
        if (yych <= 'r') {
            if (yych <= 'q') goto yy109;
            goto yy593;
        } else {
            if (yych == 'y') goto yy594;
            goto yy109;
        }
    }
yy25:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= '8') {
        if (yych <= '&') {
            if (yych == '"') goto yy129;
            goto yy109;
        } else {
            if (yych <= '\'') goto yy131;
            if (yych <= '7') goto yy109;
            goto yy573;
        }
    } else {
        if (yych <= 'm') {
            if (yych == 'R') goto yy128;
            goto yy109;
        } else {
            if (yych <= 'n') goto yy574;
            if (yych == 's') goto yy575;
            goto yy109;
        }
    }
yy26:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'i') goto yy555;
    if (yych == 'o') goto yy556;
    goto yy109;
yy27:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'c') goto yy543;
    if (yych == 'h') goto yy544;
    goto yy109;
yy28:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    switch (yych) {
    case '_':    goto yy454;
    case 'a':    goto yy455;
    case 'b':    goto yy456;
    case 'c':    goto yy457;
    case 'd':    goto yy458;
    case 'f':    goto yy459;
    case 'i':    goto yy460;
    case 's':    goto yy461;
    default:    goto yy109;
    }
yy29:
    ++YYCURSOR;
#line 138 "cpp.re"
    { BOOST_WAVE_RET(T_LEFTBRACE); }
#line 466 "cpp_re.inc"
yy31:
    yyaccept = 2;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '?') goto yy419;
yy32:
#line 163 "cpp.re"
    { BOOST_WAVE_RET(T_QUESTION_MARK); }
#line 474 "cpp_re.inc"
yy33:
    ++YYCURSOR;
    if ((yych = *YYCURSOR) <= ':') {
        if (yych == '%') goto yy415;
        if (yych >= ':') goto yy413;
    } else {
        if (yych <= ';') goto yy34;
        if (yych <= '<') goto yy411;
        if (yych <= '=') goto yy409;
    }
yy34:
#line 204 "cpp.re"
    { BOOST_WAVE_RET(T_LESS); }
#line 488 "cpp_re.inc"
yy35:
    ++YYCURSOR;
#line 141 "cpp.re"
    { BOOST_WAVE_RET(T_RIGHTBRACE); }
#line 493 "cpp_re.inc"
yy37:
    ++YYCURSOR;
    if ((yych = *YYCURSOR) <= '<') {
        if (yych == ':') goto yy400;
    } else {
        if (yych <= '=') goto yy402;
        if (yych <= '>') goto yy404;
    }
#line 189 "cpp.re"
    { BOOST_WAVE_RET(T_PERCENT); }
#line 504 "cpp_re.inc"
yy39:
    ++YYCURSOR;
#line 144 "cpp.re"
    { BOOST_WAVE_RET(T_LEFTBRACKET); }
#line 509 "cpp_re.inc"
yy41:
    ++YYCURSOR;
#line 147 "cpp.re"
    { BOOST_WAVE_RET(T_RIGHTBRACKET); }
#line 514 "cpp_re.inc"
yy43:
    ++YYCURSOR;
    if ((yych = *YYCURSOR) == ':') goto yy396;
    if (yych == '>') goto yy398;
#line 161 "cpp.re"
    { BOOST_WAVE_RET(T_COLON); }
#line 521 "cpp_re.inc"
yy45:
    yyaccept = 3;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'c') {
        if (yych <= ' ') {
            if (yych <= '\n') {
                if (yych == '\t') goto yy273;
            } else {
                if (yych <= '\f') goto yy273;
                if (yych >= ' ') goto yy273;
            }
        } else {
            if (yych <= '.') {
                if (yych == '#') goto yy284;
            } else {
                if (yych <= '/') goto yy273;
                if (yych == '?') goto yy283;
            }
        }
    } else {
        if (yych <= 'p') {
            if (yych <= 'i') {
                if (yych <= 'e') goto yy273;
                if (yych >= 'i') goto yy273;
            } else {
                if (yych == 'l') goto yy273;
                if (yych >= 'p') goto yy273;
            }
        } else {
            if (yych <= 't') {
                if (yych == 'r') goto yy273;
            } else {
                if (yych == 'v') goto yy46;
                if (yych <= 'w') goto yy273;
            }
        }
    }
yy46:
#line 150 "cpp.re"
    { BOOST_WAVE_RET(T_POUND); }
#line 562 "cpp_re.inc"
yy47:
    ++YYCURSOR;
#line 158 "cpp.re"
    { BOOST_WAVE_RET(T_LEFTPAREN); }
#line 567 "cpp_re.inc"
yy49:
    ++YYCURSOR;
#line 159 "cpp.re"
    { BOOST_WAVE_RET(T_RIGHTPAREN); }
#line 572 "cpp_re.inc"
yy51:
    ++YYCURSOR;
#line 160 "cpp.re"
    { BOOST_WAVE_RET(T_SEMICOLON); }
#line 577 "cpp_re.inc"
yy53:
    ++YYCURSOR;
    if ((yych = *YYCURSOR) == '+') goto yy268;
    if (yych == '=') goto yy270;
#line 185 "cpp.re"
    { BOOST_WAVE_RET(T_PLUS); }
#line 584 "cpp_re.inc"
yy55:
    ++YYCURSOR;
    if ((yych = *YYCURSOR) <= '<') {
        if (yych == '-') goto yy262;
    } else {
        if (yych <= '=') goto yy264;
        if (yych <= '>') goto yy260;
    }
#line 186 "cpp.re"
    { BOOST_WAVE_RET(T_MINUS); }
#line 595 "cpp_re.inc"
yy57:
    ++YYCURSOR;
    if ((yych = *YYCURSOR) == '=') goto yy258;
#line 187 "cpp.re"
    { BOOST_WAVE_RET(T_STAR); }
#line 601 "cpp_re.inc"
yy59:
    ++YYCURSOR;
    if ((yych = *YYCURSOR) == '=') goto yy256;
#line 190 "cpp.re"
    { BOOST_WAVE_RET(T_XOR); }
#line 607 "cpp_re.inc"
yy61:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'o') goto yy249;
    goto yy109;
yy62:
    ++YYCURSOR;
    if ((yych = *YYCURSOR) == '&') goto yy245;
    if (yych == '=') goto yy247;
#line 193 "cpp.re"
    { BOOST_WAVE_RET(T_AND); }
#line 619 "cpp_re.inc"
yy64:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= '>') {
        if (yych == '=') goto yy240;
    } else {
        if (yych <= '?') goto yy237;
        if (yych == '|') goto yy238;
    }
yy65:
#line 195 "cpp.re"
    { BOOST_WAVE_RET(T_OR); }
#line 632 "cpp_re.inc"
yy66:
    ++YYCURSOR;
#line 198 "cpp.re"
    { BOOST_WAVE_RET(T_COMPL); }
#line 637 "cpp_re.inc"
yy68:
    ++YYCURSOR;
    if ((yych = *YYCURSOR) == '=') goto yy235;
#line 201 "cpp.re"
    { BOOST_WAVE_RET(T_NOT); }
#line 643 "cpp_re.inc"
yy70:
    ++YYCURSOR;
    if ((yych = *YYCURSOR) == '=') goto yy233;
#line 203 "cpp.re"
    { BOOST_WAVE_RET(T_ASSIGN); }
#line 649 "cpp_re.inc"
yy72:
    ++YYCURSOR;
    if ((yych = *YYCURSOR) <= '<') goto yy73;
    if (yych <= '=') goto yy227;
    if (yych <= '>') goto yy229;
yy73:
#line 205 "cpp.re"
    { BOOST_WAVE_RET(T_GREATER); }
#line 658 "cpp_re.inc"
yy74:
    ++YYCURSOR;
#line 237 "cpp.re"
    { BOOST_WAVE_RET(T_COMMA); }
#line 663 "cpp_re.inc"
yy76:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= '?') {
        if (yych <= '&') {
            if (yych <= '"') {
                if (yych <= '!') goto yy9;
                goto yy137;
            } else {
                if (yych == '$') goto yy108;
                goto yy9;
            }
        } else {
            if (yych <= '/') {
                if (yych <= '\'') goto yy226;
                goto yy9;
            } else {
                if (yych <= '9') goto yy108;
                if (yych <= '>') goto yy9;
                goto yy111;
            }
        }
    } else {
        if (yych <= '[') {
            if (yych <= 'Q') {
                if (yych <= '@') goto yy9;
                goto yy108;
            } else {
                if (yych <= 'R') goto yy225;
                if (yych <= 'Z') goto yy108;
                goto yy9;
            }
        } else {
            if (yych <= '_') {
                if (yych <= '\\') goto yy110;
                if (yych <= '^') goto yy9;
                goto yy108;
            } else {
                if (yych <= '`') goto yy9;
                if (yych <= 'z') goto yy108;
                goto yy9;
            }
        }
    }
yy77:
    yyaccept = 5;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= '\f') {
        if (yych == '\t') goto yy182;
        if (yych >= '\v') goto yy182;
    } else {
        if (yych <= 0x1F) goto yy78;
        if (yych != '\'') goto yy182;
    }
yy78:
#line 339 "cpp.re"
    { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
#line 721 "cpp_re.inc"
yy79:
    yyaccept = 5;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= '\n') {
        if (yych == '\t') goto yy138;
        goto yy78;
    } else {
        if (yych <= '\f') goto yy138;
        if (yych <= 0x1F) goto yy78;
        goto yy138;
    }
yy80:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '"') goto yy135;
    goto yy109;
yy81:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= '&') {
        if (yych == '"') goto yy129;
        goto yy109;
    } else {
        if (yych <= '\'') goto yy131;
        if (yych == 'R') goto yy128;
        goto yy109;
    }
yy82:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    goto yy109;
yy83:
    yyaccept = 5;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'U') goto yy100;
    if (yych == 'u') goto yy98;
    goto yy78;
yy84:
    ++YYCURSOR;
    yych = *YYCURSOR;
    goto yy97;
yy85:
#line 319 "cpp.re"
    { BOOST_WAVE_RET(T_SPACE); }
#line 766 "cpp_re.inc"
yy86:
    yych = *++YYCURSOR;
    goto yy97;
yy87:
    ++YYCURSOR;
yy88:
#line 322 "cpp.re"
    {
        s->line++;
        cursor.column = 1;
        BOOST_WAVE_RET(T_NEWLINE);
    }
#line 779 "cpp_re.inc"
yy89:
    yych = *++YYCURSOR;
    if (yych == '\n') goto yy95;
    goto yy88;
yy90:
    ++YYCURSOR;
#line 329 "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 796 "cpp_re.inc"
yy92:
    yych = *++YYCURSOR;
    goto yy78;
yy93:
    ++YYCURSOR;
#line 342 "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 809 "cpp_re.inc"
yy95:
    yych = *++YYCURSOR;
    goto yy88;
yy96:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
yy97:
    if (yybm[256+yych] & 16) {
        goto yy96;
    }
    goto yy85;
yy98:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych <= '9') goto yy125;
    } else {
        if (yych <= 'F') goto yy125;
        if (yych <= '`') goto yy99;
        if (yych <= 'f') goto yy125;
    }
yy99:
    YYCURSOR = YYMARKER;
    if (yyaccept <= 56) {
        if (yyaccept <= 28) {
            if (yyaccept <= 14) {
                if (yyaccept <= 7) {
                    if (yyaccept <= 3) {
                        if (yyaccept <= 1) {
                            if (yyaccept <= 0) {
                                goto yy5;
                            } else {
                                goto yy9;
                            }
                        } else {
                            if (yyaccept <= 2) {
                                goto yy32;
                            } else {
                                goto yy46;
                            }
                        }
                    } else {
                        if (yyaccept <= 5) {
                            if (yyaccept <= 4) {
                                goto yy65;
                            } else {
                                goto yy78;
                            }
                        } else {
                            if (yyaccept <= 6) {
                                goto yy142;
                            } else {
                                goto yy192;
                            }
                        }
                    }
                } else {
                    if (yyaccept <= 11) {
                        if (yyaccept <= 9) {
                            if (yyaccept <= 8) {
                                goto yy251;
                            } else {
                                goto yy255;
                            }
                        } else {
                            if (yyaccept <= 10) {
                                goto yy291;
                            } else {
                                goto yy306;
                            }
                        }
                    } else {
                        if (yyaccept <= 13) {
                            if (yyaccept <= 12) {
                                goto yy401;
                            } else {
                                goto yy429;
                            }
                        } else {
                            goto yy433;
                        }
                    }
                }
            } else {
                if (yyaccept <= 21) {
                    if (yyaccept <= 18) {
                        if (yyaccept <= 16) {
                            if (yyaccept <= 15) {
                                goto yy437;
                            } else {
                                goto yy468;
                            }
                        } else {
                            if (yyaccept <= 17) {
                                goto yy474;
                            } else {
                                goto yy482;
                            }
                        }
                    } else {
                        if (yyaccept <= 20) {
                            if (yyaccept <= 19) {
                                goto yy490;
                            } else {
                                goto yy495;
                            }
                        } else {
                            goto yy500;
                        }
                    }
                } else {
                    if (yyaccept <= 25) {
                        if (yyaccept <= 23) {
                            if (yyaccept <= 22) {
                                goto yy503;
                            } else {
                                goto yy513;
                            }
                        } else {
                            if (yyaccept <= 24) {
                                goto yy519;
                            } else {
                                goto yy522;
                            }
                        }
                    } else {
                        if (yyaccept <= 27) {
                            if (yyaccept <= 26) {
                                goto yy529;
                            } else {
                                goto yy536;
                            }
                        } else {
                            goto yy538;
                        }
                    }
                }
            }
        } else {
            if (yyaccept <= 42) {
                if (yyaccept <= 35) {
                    if (yyaccept <= 32) {
                        if (yyaccept <= 30) {
                            if (yyaccept <= 29) {
                                goto yy540;
                            } else {
                                goto yy542;
                            }
                        } else {
                            if (yyaccept <= 31) {
                                goto yy548;
                            } else {
                                goto yy554;
                            }
                        }
                    } else {
                        if (yyaccept <= 34) {
                            if (yyaccept <= 33) {
                                goto yy564;
                            } else {
                                goto yy566;
                            }
                        } else {
                            goto yy572;
                        }
                    }
                } else {
                    if (yyaccept <= 39) {
                        if (yyaccept <= 37) {
                            if (yyaccept <= 36) {
                                goto yy579;
                            } else {
                                goto yy587;
                            }
                        } else {
                            if (yyaccept <= 38) {
                                goto yy590;
                            } else {
                                goto yy603;
                            }
                        }
                    } else {
                        if (yyaccept <= 41) {
                            if (yyaccept <= 40) {
                                goto yy605;
                            } else {
                                goto yy608;
                            }
                        } else {
                            goto yy611;
                        }
                    }
                }
            } else {
                if (yyaccept <= 49) {
                    if (yyaccept <= 46) {
                        if (yyaccept <= 44) {
                            if (yyaccept <= 43) {
                                goto yy613;
                            } else {
                                goto yy619;
                            }
                        } else {
                            if (yyaccept <= 45) {
                                goto yy628;
                            } else {
                                goto yy630;
                            }
                        }
                    } else {
                        if (yyaccept <= 48) {
                            if (yyaccept <= 47) {
                                goto yy637;
                            } else {
                                goto yy646;
                            }
                        } else {
                            goto yy652;
                        }
                    }
                } else {
                    if (yyaccept <= 53) {
                        if (yyaccept <= 51) {
                            if (yyaccept <= 50) {
                                goto yy656;
                            } else {
                                goto yy663;
                            }
                        } else {
                            if (yyaccept <= 52) {
                                goto yy669;
                            } else {
                                goto yy675;
                            }
                        }
                    } else {
                        if (yyaccept <= 55) {
                            if (yyaccept <= 54) {
                                goto yy679;
                            } else {
                                goto yy683;
                            }
                        } else {
                            goto yy691;
                        }
                    }
                }
            }
        }
    } else {
        if (yyaccept <= 85) {
            if (yyaccept <= 71) {
                if (yyaccept <= 64) {
                    if (yyaccept <= 60) {
                        if (yyaccept <= 58) {
                            if (yyaccept <= 57) {
                                goto yy705;
                            } else {
                                goto yy711;
                            }
                        } else {
                            if (yyaccept <= 59) {
                                goto yy718;
                            } else {
                                goto yy727;
                            }
                        }
                    } else {
                        if (yyaccept <= 62) {
                            if (yyaccept <= 61) {
                                goto yy732;
                            } else {
                                goto yy735;
                            }
                        } else {
                            if (yyaccept <= 63) {
                                goto yy739;
                            } else {
                                goto yy746;
                            }
                        }
                    }
                } else {
                    if (yyaccept <= 68) {
                        if (yyaccept <= 66) {
                            if (yyaccept <= 65) {
                                goto yy756;
                            } else {
                                goto yy759;
                            }
                        } else {
                            if (yyaccept <= 67) {
                                goto yy763;
                            } else {
                                goto yy769;
                            }
                        }
                    } else {
                        if (yyaccept <= 70) {
                            if (yyaccept <= 69) {
                                goto yy771;
                            } else {
                                goto yy779;
                            }
                        } else {
                            goto yy786;
                        }
                    }
                }
            } else {
                if (yyaccept <= 78) {
                    if (yyaccept <= 75) {
                        if (yyaccept <= 73) {
                            if (yyaccept <= 72) {
                                goto yy790;
                            } else {
                                goto yy792;
                            }
                        } else {
                            if (yyaccept <= 74) {
                                goto yy797;
                            } else {
                                goto yy801;
                            }
                        }
                    } else {
                        if (yyaccept <= 77) {
                            if (yyaccept <= 76) {
                                goto yy806;
                            } else {
                                goto yy810;
                            }
                        } else {
                            goto yy819;
                        }
                    }
                } else {
                    if (yyaccept <= 82) {
                        if (yyaccept <= 80) {
                            if (yyaccept <= 79) {
                                goto yy821;
                            } else {
                                goto yy825;
                            }
                        } else {
                            if (yyaccept <= 81) {
                                goto yy829;
                            } else {
                                goto yy838;
                            }
                        }
                    } else {
                        if (yyaccept <= 84) {
                            if (yyaccept <= 83) {
                                goto yy843;
                            } else {
                                goto yy848;
                            }
                        } else {
                            goto yy851;
                        }
                    }
                }
            }
        } else {
            if (yyaccept <= 99) {
                if (yyaccept <= 92) {
                    if (yyaccept <= 89) {
                        if (yyaccept <= 87) {
                            if (yyaccept <= 86) {
                                goto yy854;
                            } else {
                                goto yy857;
                            }
                        } else {
                            if (yyaccept <= 88) {
                                goto yy869;
                            } else {
                                goto yy874;
                            }
                        }
                    } else {
                        if (yyaccept <= 91) {
                            if (yyaccept <= 90) {
                                goto yy881;
                            } else {
                                goto yy886;
                            }
                        } else {
                            goto yy892;
                        }
                    }
                } else {
                    if (yyaccept <= 96) {
                        if (yyaccept <= 94) {
                            if (yyaccept <= 93) {
                                goto yy901;
                            } else {
                                goto yy908;
                            }
                        } else {
                            if (yyaccept <= 95) {
                                goto yy910;
                            } else {
                                goto yy916;
                            }
                        }
                    } else {
                        if (yyaccept <= 98) {
                            if (yyaccept <= 97) {
                                goto yy921;
                            } else {
                                goto yy925;
                            }
                        } else {
                            goto yy928;
                        }
                    }
                }
            } else {
                if (yyaccept <= 106) {
                    if (yyaccept <= 103) {
                        if (yyaccept <= 101) {
                            if (yyaccept <= 100) {
                                goto yy934;
                            } else {
                                goto yy938;
                            }
                        } else {
                            if (yyaccept <= 102) {
                                goto yy943;
                            } else {
                                goto yy945;
                            }
                        }
                    } else {
                        if (yyaccept <= 105) {
                            if (yyaccept <= 104) {
                                goto yy952;
                            } else {
                                goto yy955;
                            }
                        } else {
                            goto yy960;
                        }
                    }
                } else {
                    if (yyaccept <= 110) {
                        if (yyaccept <= 108) {
                            if (yyaccept <= 107) {
                                goto yy963;
                            } else {
                                goto yy970;
                            }
                        } else {
                            if (yyaccept <= 109) {
                                goto yy972;
                            } else {
                                goto yy974;
                            }
                        }
                    } else {
                        if (yyaccept <= 112) {
                            if (yyaccept <= 111) {
                                goto yy978;
                            } else {
                                goto yy985;
                            }
                        } else {
                            goto yy987;
                        }
                    }
                }
            }
        }
    }
yy100:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy101;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy101:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy102;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy102:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy103;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy103:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy104;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy104:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy105;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy105:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy106;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy106:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy107;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy107:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy108;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy108:
    yyaccept = 1;
    YYMARKER = ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
yy109:
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych != '\\') goto yy9;
yy110:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych == 'U') goto yy114;
    if (yych == 'u') goto yy113;
    goto yy99;
yy111:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych != '?') goto yy99;
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych == '/') goto yy110;
    goto yy99;
yy113:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych <= '9') goto yy122;
        goto yy99;
    } else {
        if (yych <= 'F') goto yy122;
        if (yych <= '`') goto yy99;
        if (yych <= 'f') goto yy122;
        goto yy99;
    }
yy114:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy115;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy115:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy116;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy116:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy117;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy117:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy118;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy118:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy119;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy119:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy120;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy120:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy121;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy121:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych <= '9') goto yy108;
        goto yy99;
    } else {
        if (yych <= 'F') goto yy108;
        if (yych <= '`') goto yy99;
        if (yych <= 'f') goto yy108;
        goto yy99;
    }
yy122:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy123;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy123:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy124;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy124:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych <= '9') goto yy108;
        goto yy99;
    } else {
        if (yych <= 'F') goto yy108;
        if (yych <= '`') goto yy99;
        if (yych <= 'f') goto yy108;
        goto yy99;
    }
yy125:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy126;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy126:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy127;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy127:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych <= '9') goto yy108;
        goto yy99;
    } else {
        if (yych <= 'F') goto yy108;
        if (yych <= '`') goto yy99;
        if (yych <= 'f') goto yy108;
        goto yy99;
    }
yy128:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '"') goto yy133;
    goto yy109;
yy129:
    ++YYCURSOR;
#line 274 "cpp.re"
    { 
            if (s->act_in_cpp0x_mode) 
                goto extstringlit; 
            --YYCURSOR;
            BOOST_WAVE_RET(T_IDENTIFIER);
        }
#line 1591 "cpp_re.inc"
yy131:
    ++YYCURSOR;
#line 266 "cpp.re"
    { 
            if (s->act_in_cpp0x_mode) 
                goto extcharlit; 
            --YYCURSOR;
            BOOST_WAVE_RET(T_IDENTIFIER);
        }
#line 1601 "cpp_re.inc"
yy133:
    ++YYCURSOR;
#line 282 "cpp.re"
    { 
            if (s->act_in_cpp0x_mode) 
                goto extrawstringlit; 
            --YYCURSOR;
            BOOST_WAVE_RET(T_IDENTIFIER);
        }
#line 1611 "cpp_re.inc"
yy135:
    ++YYCURSOR;
#line 258 "cpp.re"
    { 
            if (s->act_in_cpp0x_mode) 
                goto extrawstringlit; 
            --YYCURSOR;
            BOOST_WAVE_RET(T_IDENTIFIER);
        }
#line 1621 "cpp_re.inc"
yy137:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
yy138:
    if (yybm[256+yych] & 64) {
        goto yy137;
    }
    if (yych <= '!') goto yy99;
    if (yych <= '"') goto yy141;
    if (yych >= '\\') goto yy140;
yy139:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[256+yych] & 64) {
        goto yy137;
    }
    if (yych <= '!') goto yy99;
    if (yych <= '"') goto yy141;
    if (yych <= '[') goto yy152;
yy140:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '`') {
        if (yych <= '7') {
            if (yych <= '&') {
                if (yych == '"') goto yy137;
                goto yy99;
            } else {
                if (yych <= '\'') goto yy137;
                if (yych <= '/') goto yy99;
                goto yy147;
            }
        } else {
            if (yych <= 'T') {
                if (yych == '?') goto yy145;
                goto yy99;
            } else {
                if (yych <= 'U') goto yy144;
                if (yych == '\\') goto yy137;
                goto yy99;
            }
        }
    } else {
        if (yych <= 'r') {
            if (yych <= 'f') {
                if (yych <= 'b') goto yy137;
                if (yych <= 'e') goto yy99;
                goto yy137;
            } else {
                if (yych == 'n') goto yy137;
                if (yych <= 'q') goto yy99;
                goto yy137;
            }
        } else {
            if (yych <= 'u') {
                if (yych <= 's') goto yy99;
                if (yych <= 't') goto yy137;
                goto yy143;
            } else {
                if (yych <= 'v') goto yy137;
                if (yych == 'x') goto yy146;
                goto yy99;
            }
        }
    }
yy141:
    ++YYCURSOR;
yy142:
#line 255 "cpp.re"
    { BOOST_WAVE_RET(T_STRINGLIT); }
#line 1695 "cpp_re.inc"
yy143:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych <= '9') goto yy178;
        goto yy99;
    } else {
        if (yych <= 'F') goto yy178;
        if (yych <= '`') goto yy99;
        if (yych <= 'f') goto yy178;
        goto yy99;
    }
yy144:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych <= '9') goto yy171;
        goto yy99;
    } else {
        if (yych <= 'F') goto yy171;
        if (yych <= '`') goto yy99;
        if (yych <= 'f') goto yy171;
        goto yy99;
    }
yy145:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[256+yych] & 64) {
        goto yy137;
    }
    if (yych <= '!') goto yy99;
    if (yych <= '"') goto yy141;
    if (yych <= '[') goto yy151;
    goto yy140;
yy146:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[256+yych] & 128) {
        goto yy149;
    }
    goto yy99;
yy147:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '"') {
        if (yych <= '\n') {
            if (yych == '\t') goto yy137;
            goto yy99;
        } else {
            if (yych <= '\f') goto yy137;
            if (yych <= 0x1F) goto yy99;
            if (yych <= '!') goto yy137;
            goto yy141;
        }
    } else {
        if (yych <= '>') {
            if (yych <= '/') goto yy137;
            if (yych >= '8') goto yy137;
        } else {
            if (yych <= '?') goto yy139;
            if (yych == '\\') goto yy140;
            goto yy137;
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[256+yych] & 64) {
        goto yy137;
    }
    if (yych <= '!') goto yy99;
    if (yych <= '"') goto yy141;
    if (yych <= '[') goto yy139;
    goto yy140;
yy149:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[256+yych] & 128) {
        goto yy149;
    }
    if (yych <= '!') {
        if (yych <= '\n') {
            if (yych == '\t') goto yy137;
            goto yy99;
        } else {
            if (yych <= '\f') goto yy137;
            if (yych <= 0x1F) goto yy99;
            goto yy137;
        }
    } else {
        if (yych <= '?') {
            if (yych <= '"') goto yy141;
            if (yych <= '>') goto yy137;
            goto yy139;
        } else {
            if (yych == '\\') goto yy140;
            goto yy137;
        }
    }
yy151:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[256+yych] & 64) {
        goto yy137;
    }
    if (yych <= '!') goto yy99;
    if (yych <= '"') goto yy141;
    if (yych >= '\\') goto yy140;
yy152:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 1) {
        goto yy152;
    }
    if (yych <= '!') {
        if (yych <= '\n') {
            if (yych == '\t') goto yy137;
            goto yy99;
        } else {
            if (yych <= '\f') goto yy137;
            if (yych <= 0x1F) goto yy99;
            goto yy137;
        }
    } else {
        if (yych <= '/') {
            if (yych <= '"') goto yy141;
            if (yych <= '.') goto yy137;
        } else {
            if (yych == '\\') goto yy140;
            goto yy137;
        }
    }
yy154:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 2) {
        goto yy154;
    }
    if (yych <= '7') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy137;
            if (yych <= '\n') goto yy99;
            goto yy137;
        } else {
            if (yych <= '!') {
                if (yych <= 0x1F) goto yy99;
                goto yy137;
            } else {
                if (yych <= '"') goto yy158;
                if (yych <= '/') goto yy137;
                goto yy147;
            }
        }
    } else {
        if (yych <= 'U') {
            if (yych == '?') goto yy159;
            if (yych <= 'T') goto yy137;
            goto yy157;
        } else {
            if (yych <= 'u') {
                if (yych <= 't') goto yy137;
            } else {
                if (yych == 'x') goto yy149;
                goto yy137;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy137;
            if (yych <= '\n') goto yy99;
            goto yy137;
        } else {
            if (yych <= '!') {
                if (yych <= 0x1F) goto yy99;
                goto yy137;
            } else {
                if (yych <= '"') goto yy141;
                if (yych <= '/') goto yy137;
                goto yy168;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy139;
            if (yych <= '@') goto yy137;
            goto yy168;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy137;
                goto yy140;
            } else {
                if (yych <= '`') goto yy137;
                if (yych <= 'f') goto yy168;
                goto yy137;
            }
        }
    }
yy157:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy137;
            if (yych <= '\n') goto yy99;
            goto yy137;
        } else {
            if (yych <= '!') {
                if (yych <= 0x1F) goto yy99;
                goto yy137;
            } else {
                if (yych <= '"') goto yy141;
                if (yych <= '/') goto yy137;
                goto yy161;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy139;
            if (yych <= '@') goto yy137;
            goto yy161;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy137;
                goto yy140;
            } else {
                if (yych <= '`') goto yy137;
                if (yych <= 'f') goto yy161;
                goto yy137;
            }
        }
    }
yy158:
    yyaccept = 6;
    YYMARKER = ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[256+yych] & 64) {
        goto yy137;
    }
    if (yych <= '!') goto yy142;
    if (yych <= '"') goto yy141;
    if (yych <= '[') goto yy139;
    goto yy140;
yy159:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[256+yych] & 64) {
        goto yy137;
    }
    if (yych <= '!') goto yy99;
    if (yych <= '"') goto yy141;
    if (yych >= '\\') goto yy140;
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 1) {
        goto yy152;
    }
    if (yych <= '!') {
        if (yych <= '\n') {
            if (yych == '\t') goto yy137;
            goto yy99;
        } else {
            if (yych <= '\f') goto yy137;
            if (yych <= 0x1F) goto yy99;
            goto yy137;
        }
    } else {
        if (yych <= '/') {
            if (yych <= '"') goto yy141;
            if (yych <= '.') goto yy137;
            goto yy154;
        } else {
            if (yych == '\\') goto yy140;
            goto yy137;
        }
    }
yy161:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy137;
            if (yych <= '\n') goto yy99;
            goto yy137;
        } else {
            if (yych <= '!') {
                if (yych <= 0x1F) goto yy99;
                goto yy137;
            } else {
                if (yych <= '"') goto yy141;
                if (yych <= '/') goto yy137;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy139;
            if (yych <= '@') goto yy137;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy137;
                goto yy140;
            } else {
                if (yych <= '`') goto yy137;
                if (yych >= 'g') goto yy137;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy137;
            if (yych <= '\n') goto yy99;
            goto yy137;
        } else {
            if (yych <= '!') {
                if (yych <= 0x1F) goto yy99;
                goto yy137;
            } else {
                if (yych <= '"') goto yy141;
                if (yych <= '/') goto yy137;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy139;
            if (yych <= '@') goto yy137;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy137;
                goto yy140;
            } else {
                if (yych <= '`') goto yy137;
                if (yych >= 'g') goto yy137;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy137;
            if (yych <= '\n') goto yy99;
            goto yy137;
        } else {
            if (yych <= '!') {
                if (yych <= 0x1F) goto yy99;
                goto yy137;
            } else {
                if (yych <= '"') goto yy141;
                if (yych <= '/') goto yy137;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy139;
            if (yych <= '@') goto yy137;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy137;
                goto yy140;
            } else {
                if (yych <= '`') goto yy137;
                if (yych >= 'g') goto yy137;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy137;
            if (yych <= '\n') goto yy99;
            goto yy137;
        } else {
            if (yych <= '!') {
                if (yych <= 0x1F) goto yy99;
                goto yy137;
            } else {
                if (yych <= '"') goto yy141;
                if (yych <= '/') goto yy137;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy139;
            if (yych <= '@') goto yy137;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy137;
                goto yy140;
            } else {
                if (yych <= '`') goto yy137;
                if (yych >= 'g') goto yy137;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy137;
            if (yych <= '\n') goto yy99;
            goto yy137;
        } else {
            if (yych <= '!') {
                if (yych <= 0x1F) goto yy99;
                goto yy137;
            } else {
                if (yych <= '"') goto yy141;
                if (yych <= '/') goto yy137;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy139;
            if (yych <= '@') goto yy137;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy137;
                goto yy140;
            } else {
                if (yych <= '`') goto yy137;
                if (yych >= 'g') goto yy137;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy137;
            if (yych <= '\n') goto yy99;
            goto yy137;
        } else {
            if (yych <= '!') {
                if (yych <= 0x1F) goto yy99;
                goto yy137;
            } else {
                if (yych <= '"') goto yy141;
                if (yych <= '/') goto yy137;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy139;
            if (yych <= '@') goto yy137;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy137;
                goto yy140;
            } else {
                if (yych <= '`') goto yy137;
                if (yych >= 'g') goto yy137;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[256+yych] & 64) {
        goto yy137;
    }
    if (yych <= '!') goto yy99;
    if (yych <= '"') goto yy141;
    if (yych <= '[') goto yy139;
    goto yy140;
yy168:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy137;
            if (yych <= '\n') goto yy99;
            goto yy137;
        } else {
            if (yych <= '!') {
                if (yych <= 0x1F) goto yy99;
                goto yy137;
            } else {
                if (yych <= '"') goto yy141;
                if (yych <= '/') goto yy137;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy139;
            if (yych <= '@') goto yy137;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy137;
                goto yy140;
            } else {
                if (yych <= '`') goto yy137;
                if (yych >= 'g') goto yy137;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy137;
            if (yych <= '\n') goto yy99;
            goto yy137;
        } else {
            if (yych <= '!') {
                if (yych <= 0x1F) goto yy99;
                goto yy137;
            } else {
                if (yych <= '"') goto yy141;
                if (yych <= '/') goto yy137;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy139;
            if (yych <= '@') goto yy137;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy137;
                goto yy140;
            } else {
                if (yych <= '`') goto yy137;
                if (yych >= 'g') goto yy137;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[256+yych] & 64) {
        goto yy137;
    }
    if (yych <= '!') goto yy99;
    if (yych <= '"') goto yy141;
    if (yych <= '[') goto yy139;
    goto yy140;
yy171:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy172;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy172:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy173;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy173:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy174;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy174:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy175;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy175:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy176;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy176:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy177;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy177:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych <= '9') goto yy137;
        goto yy99;
    } else {
        if (yych <= 'F') goto yy137;
        if (yych <= '`') goto yy99;
        if (yych <= 'f') goto yy137;
        goto yy99;
    }
yy178:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy179;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy179:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy180;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy180:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych <= '9') goto yy137;
        goto yy99;
    } else {
        if (yych <= 'F') goto yy137;
        if (yych <= '`') goto yy99;
        if (yych <= 'f') goto yy137;
        goto yy99;
    }
yy181:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
yy182:
    if (yybm[0+yych] & 4) {
        goto yy181;
    }
    if (yych <= '&') goto yy99;
    if (yych <= '\'') goto yy191;
    if (yych >= '\\') goto yy184;
yy183:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 4) {
        goto yy181;
    }
    if (yych <= '&') goto yy99;
    if (yych <= '\'') goto yy191;
    if (yych <= '[') goto yy196;
yy184:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '`') {
        if (yych <= '7') {
            if (yych <= '&') {
                if (yych == '"') goto yy181;
                goto yy99;
            } else {
                if (yych <= '\'') goto yy181;
                if (yych <= '/') goto yy99;
                goto yy189;
            }
        } else {
            if (yych <= 'T') {
                if (yych == '?') goto yy187;
                goto yy99;
            } else {
                if (yych <= 'U') goto yy186;
                if (yych == '\\') goto yy181;
                goto yy99;
            }
        }
    } else {
        if (yych <= 'r') {
            if (yych <= 'f') {
                if (yych <= 'b') goto yy181;
                if (yych <= 'e') goto yy99;
                goto yy181;
            } else {
                if (yych == 'n') goto yy181;
                if (yych <= 'q') goto yy99;
                goto yy181;
            }
        } else {
            if (yych <= 'u') {
                if (yych <= 's') goto yy99;
                if (yych <= 't') goto yy181;
            } else {
                if (yych <= 'v') goto yy181;
                if (yych == 'x') goto yy188;
                goto yy99;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych <= '9') goto yy222;
        goto yy99;
    } else {
        if (yych <= 'F') goto yy222;
        if (yych <= '`') goto yy99;
        if (yych <= 'f') goto yy222;
        goto yy99;
    }
yy186:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych <= '9') goto yy215;
        goto yy99;
    } else {
        if (yych <= 'F') goto yy215;
        if (yych <= '`') goto yy99;
        if (yych <= 'f') goto yy215;
        goto yy99;
    }
yy187:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 4) {
        goto yy181;
    }
    if (yych <= '&') goto yy99;
    if (yych <= '\'') goto yy191;
    if (yych <= '[') goto yy195;
    goto yy184;
yy188:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych <= '9') goto yy193;
        goto yy99;
    } else {
        if (yych <= 'F') goto yy193;
        if (yych <= '`') goto yy99;
        if (yych <= 'f') goto yy193;
        goto yy99;
    }
yy189:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '\'') {
        if (yych <= '\n') {
            if (yych == '\t') goto yy181;
            goto yy99;
        } else {
            if (yych <= '\f') goto yy181;
            if (yych <= 0x1F) goto yy99;
            if (yych <= '&') goto yy181;
            goto yy191;
        }
    } else {
        if (yych <= '>') {
            if (yych <= '/') goto yy181;
            if (yych >= '8') goto yy181;
        } else {
            if (yych <= '?') goto yy183;
            if (yych == '\\') goto yy184;
            goto yy181;
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 4) {
        goto yy181;
    }
    if (yych <= '&') goto yy99;
    if (yych <= '\'') goto yy191;
    if (yych <= '[') goto yy183;
    goto yy184;
yy191:
    ++YYCURSOR;
yy192:
#line 252 "cpp.re"
    { BOOST_WAVE_RET(T_CHARLIT); }
#line 2542 "cpp_re.inc"
yy193:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy181;
            if (yych <= '\n') goto yy99;
            goto yy181;
        } else {
            if (yych <= '&') {
                if (yych <= 0x1F) goto yy99;
                goto yy181;
            } else {
                if (yych <= '\'') goto yy191;
                if (yych <= '/') goto yy181;
                goto yy193;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy183;
            if (yych <= '@') goto yy181;
            goto yy193;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy181;
                goto yy184;
            } else {
                if (yych <= '`') goto yy181;
                if (yych <= 'f') goto yy193;
                goto yy181;
            }
        }
    }
yy195:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 4) {
        goto yy181;
    }
    if (yych <= '&') goto yy99;
    if (yych <= '\'') goto yy191;
    if (yych >= '\\') goto yy184;
yy196:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '\'') {
        if (yych <= '\n') {
            if (yych == '\t') goto yy181;
            goto yy99;
        } else {
            if (yych <= '\f') goto yy181;
            if (yych <= 0x1F) goto yy99;
            if (yych <= '&') goto yy181;
            goto yy191;
        }
    } else {
        if (yych <= '>') {
            if (yych != '/') goto yy181;
        } else {
            if (yych <= '?') goto yy196;
            if (yych == '\\') goto yy184;
            goto yy181;
        }
    }
yy198:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '>') {
        if (yych <= 0x1F) {
            if (yych <= '\t') {
                if (yych <= 0x08) goto yy99;
                goto yy181;
            } else {
                if (yych <= '\n') goto yy99;
                if (yych <= '\f') goto yy181;
                goto yy99;
            }
        } else {
            if (yych <= '\'') {
                if (yych <= '&') goto yy181;
                goto yy202;
            } else {
                if (yych <= '/') goto yy181;
                if (yych <= '7') goto yy189;
                goto yy181;
            }
        }
    } else {
        if (yych <= '\\') {
            if (yych <= 'T') {
                if (yych <= '?') goto yy203;
                goto yy181;
            } else {
                if (yych <= 'U') goto yy201;
                if (yych <= '[') goto yy181;
                goto yy198;
            }
        } else {
            if (yych <= 'u') {
                if (yych <= 't') goto yy181;
            } else {
                if (yych == 'x') goto yy193;
                goto yy181;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy181;
            if (yych <= '\n') goto yy99;
            goto yy181;
        } else {
            if (yych <= '&') {
                if (yych <= 0x1F) goto yy99;
                goto yy181;
            } else {
                if (yych <= '\'') goto yy191;
                if (yych <= '/') goto yy181;
                goto yy212;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy183;
            if (yych <= '@') goto yy181;
            goto yy212;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy181;
                goto yy184;
            } else {
                if (yych <= '`') goto yy181;
                if (yych <= 'f') goto yy212;
                goto yy181;
            }
        }
    }
yy201:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy181;
            if (yych <= '\n') goto yy99;
            goto yy181;
        } else {
            if (yych <= '&') {
                if (yych <= 0x1F) goto yy99;
                goto yy181;
            } else {
                if (yych <= '\'') goto yy191;
                if (yych <= '/') goto yy181;
                goto yy205;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy183;
            if (yych <= '@') goto yy181;
            goto yy205;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy181;
                goto yy184;
            } else {
                if (yych <= '`') goto yy181;
                if (yych <= 'f') goto yy205;
                goto yy181;
            }
        }
    }
yy202:
    yyaccept = 7;
    YYMARKER = ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 4) {
        goto yy181;
    }
    if (yych <= '&') goto yy192;
    if (yych <= '\'') goto yy191;
    if (yych <= '[') goto yy183;
    goto yy184;
yy203:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 4) {
        goto yy181;
    }
    if (yych <= '&') goto yy99;
    if (yych <= '\'') goto yy191;
    if (yych >= '\\') goto yy184;
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '\'') {
        if (yych <= '\n') {
            if (yych == '\t') goto yy181;
            goto yy99;
        } else {
            if (yych <= '\f') goto yy181;
            if (yych <= 0x1F) goto yy99;
            if (yych <= '&') goto yy181;
            goto yy191;
        }
    } else {
        if (yych <= '>') {
            if (yych == '/') goto yy198;
            goto yy181;
        } else {
            if (yych <= '?') goto yy196;
            if (yych == '\\') goto yy184;
            goto yy181;
        }
    }
yy205:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy181;
            if (yych <= '\n') goto yy99;
            goto yy181;
        } else {
            if (yych <= '&') {
                if (yych <= 0x1F) goto yy99;
                goto yy181;
            } else {
                if (yych <= '\'') goto yy191;
                if (yych <= '/') goto yy181;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy183;
            if (yych <= '@') goto yy181;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy181;
                goto yy184;
            } else {
                if (yych <= '`') goto yy181;
                if (yych >= 'g') goto yy181;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy181;
            if (yych <= '\n') goto yy99;
            goto yy181;
        } else {
            if (yych <= '&') {
                if (yych <= 0x1F) goto yy99;
                goto yy181;
            } else {
                if (yych <= '\'') goto yy191;
                if (yych <= '/') goto yy181;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy183;
            if (yych <= '@') goto yy181;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy181;
                goto yy184;
            } else {
                if (yych <= '`') goto yy181;
                if (yych >= 'g') goto yy181;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy181;
            if (yych <= '\n') goto yy99;
            goto yy181;
        } else {
            if (yych <= '&') {
                if (yych <= 0x1F) goto yy99;
                goto yy181;
            } else {
                if (yych <= '\'') goto yy191;
                if (yych <= '/') goto yy181;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy183;
            if (yych <= '@') goto yy181;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy181;
                goto yy184;
            } else {
                if (yych <= '`') goto yy181;
                if (yych >= 'g') goto yy181;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy181;
            if (yych <= '\n') goto yy99;
            goto yy181;
        } else {
            if (yych <= '&') {
                if (yych <= 0x1F) goto yy99;
                goto yy181;
            } else {
                if (yych <= '\'') goto yy191;
                if (yych <= '/') goto yy181;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy183;
            if (yych <= '@') goto yy181;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy181;
                goto yy184;
            } else {
                if (yych <= '`') goto yy181;
                if (yych >= 'g') goto yy181;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy181;
            if (yych <= '\n') goto yy99;
            goto yy181;
        } else {
            if (yych <= '&') {
                if (yych <= 0x1F) goto yy99;
                goto yy181;
            } else {
                if (yych <= '\'') goto yy191;
                if (yych <= '/') goto yy181;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy183;
            if (yych <= '@') goto yy181;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy181;
                goto yy184;
            } else {
                if (yych <= '`') goto yy181;
                if (yych >= 'g') goto yy181;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy181;
            if (yych <= '\n') goto yy99;
            goto yy181;
        } else {
            if (yych <= '&') {
                if (yych <= 0x1F) goto yy99;
                goto yy181;
            } else {
                if (yych <= '\'') goto yy191;
                if (yych <= '/') goto yy181;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy183;
            if (yych <= '@') goto yy181;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy181;
                goto yy184;
            } else {
                if (yych <= '`') goto yy181;
                if (yych >= 'g') goto yy181;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 4) {
        goto yy181;
    }
    if (yych <= '&') goto yy99;
    if (yych <= '\'') goto yy191;
    if (yych <= '[') goto yy183;
    goto yy184;
yy212:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy181;
            if (yych <= '\n') goto yy99;
            goto yy181;
        } else {
            if (yych <= '&') {
                if (yych <= 0x1F) goto yy99;
                goto yy181;
            } else {
                if (yych <= '\'') goto yy191;
                if (yych <= '/') goto yy181;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy183;
            if (yych <= '@') goto yy181;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy181;
                goto yy184;
            } else {
                if (yych <= '`') goto yy181;
                if (yych >= 'g') goto yy181;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy181;
            if (yych <= '\n') goto yy99;
            goto yy181;
        } else {
            if (yych <= '&') {
                if (yych <= 0x1F) goto yy99;
                goto yy181;
            } else {
                if (yych <= '\'') goto yy191;
                if (yych <= '/') goto yy181;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy183;
            if (yych <= '@') goto yy181;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy181;
                goto yy184;
            } else {
                if (yych <= '`') goto yy181;
                if (yych >= 'g') goto yy181;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 4) {
        goto yy181;
    }
    if (yych <= '&') goto yy99;
    if (yych <= '\'') goto yy191;
    if (yych <= '[') goto yy183;
    goto yy184;
yy215:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy216;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy216:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy217;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy217:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy218;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy218:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy219;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy219:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy220;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy220:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy221;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy221:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych <= '9') goto yy181;
        goto yy99;
    } else {
        if (yych <= 'F') goto yy181;
        if (yych <= '`') goto yy99;
        if (yych <= 'f') goto yy181;
        goto yy99;
    }
yy222:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy223;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy223:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych >= ':') goto yy99;
    } else {
        if (yych <= 'F') goto yy224;
        if (yych <= '`') goto yy99;
        if (yych >= 'g') goto yy99;
    }
yy224:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy99;
        if (yych <= '9') goto yy181;
        goto yy99;
    } else {
        if (yych <= 'F') goto yy181;
        if (yych <= '`') goto yy99;
        if (yych <= 'f') goto yy181;
        goto yy99;
    }
yy225:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '"') goto yy135;
    goto yy109;
yy226:
    yych = *++YYCURSOR;
    if (yych == '\'') goto yy99;
    goto yy182;
yy227:
    ++YYCURSOR;
#line 227 "cpp.re"
    { BOOST_WAVE_RET(T_GREATEREQUAL); }
#line 3175 "cpp_re.inc"
yy229:
    ++YYCURSOR;
    if ((yych = *YYCURSOR) == '=') goto yy231;
#line 220 "cpp.re"
    { BOOST_WAVE_RET(T_SHIFTRIGHT); }
#line 3181 "cpp_re.inc"
yy231:
    ++YYCURSOR;
#line 221 "cpp.re"
    { BOOST_WAVE_RET(T_SHIFTRIGHTASSIGN); }
#line 3186 "cpp_re.inc"
yy233:
    ++YYCURSOR;
#line 223 "cpp.re"
    { BOOST_WAVE_RET(T_EQUAL); }
#line 3191 "cpp_re.inc"
yy235:
    ++YYCURSOR;
#line 224 "cpp.re"
    { BOOST_WAVE_RET(T_NOTEQUAL); }
#line 3196 "cpp_re.inc"
yy237:
    yych = *++YYCURSOR;
    if (yych == '?') goto yy242;
    goto yy99;
yy238:
    ++YYCURSOR;
#line 230 "cpp.re"
    { BOOST_WAVE_RET(T_OROR); }
#line 3205 "cpp_re.inc"
yy240:
    ++YYCURSOR;
#line 216 "cpp.re"
    { BOOST_WAVE_RET(T_ORASSIGN); }
#line 3210 "cpp_re.inc"
yy242:
    yych = *++YYCURSOR;
    if (yych != '!') goto yy99;
    ++YYCURSOR;
#line 232 "cpp.re"
    { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
#line 3217 "cpp_re.inc"
yy245:
    ++YYCURSOR;
#line 228 "cpp.re"
    { BOOST_WAVE_RET(T_ANDAND); }
#line 3222 "cpp_re.inc"
yy247:
    ++YYCURSOR;
#line 214 "cpp.re"
    { BOOST_WAVE_RET(T_ANDASSIGN); }
#line 3227 "cpp_re.inc"
yy249:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'r') goto yy109;
    yyaccept = 8;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= '@') {
        if (yych <= '/') {
            if (yych == '$') goto yy108;
        } else {
            if (yych <= '9') goto yy108;
            if (yych == '?') goto yy111;
        }
    } else {
        if (yych <= '^') {
            if (yych <= 'Z') goto yy108;
            if (yych == '\\') goto yy110;
        } else {
            if (yych <= '_') goto yy252;
            if (yych <= '`') goto yy251;
            if (yych <= 'z') goto yy108;
        }
    }
yy251:
#line 192 "cpp.re"
    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XOR_ALT); }
#line 3254 "cpp_re.inc"
yy252:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'q') goto yy109;
    yyaccept = 9;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy255:
#line 212 "cpp.re"
    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XORASSIGN_ALT); }
#line 3272 "cpp_re.inc"
yy256:
    ++YYCURSOR;
#line 211 "cpp.re"
    { BOOST_WAVE_RET(T_XORASSIGN); }
#line 3277 "cpp_re.inc"
yy258:
    ++YYCURSOR;
#line 208 "cpp.re"
    { BOOST_WAVE_RET(T_STARASSIGN); }
#line 3282 "cpp_re.inc"
yy260:
    ++YYCURSOR;
    if ((yych = *YYCURSOR) == '*') goto yy266;
#line 248 "cpp.re"
    { BOOST_WAVE_RET(T_ARROW); }
#line 3288 "cpp_re.inc"
yy262:
    ++YYCURSOR;
#line 236 "cpp.re"
    { BOOST_WAVE_RET(T_MINUSMINUS); }
#line 3293 "cpp_re.inc"
yy264:
    ++YYCURSOR;
#line 207 "cpp.re"
    { BOOST_WAVE_RET(T_MINUSASSIGN); }
#line 3298 "cpp_re.inc"
yy266:
    ++YYCURSOR;
#line 239 "cpp.re"
    { 
            if (s->act_in_c99_mode) {
                --YYCURSOR;
                BOOST_WAVE_RET(T_ARROW);
            }
            else {
                BOOST_WAVE_RET(T_ARROWSTAR); 
            }
        }
#line 3311 "cpp_re.inc"
yy268:
    ++YYCURSOR;
#line 235 "cpp.re"
    { BOOST_WAVE_RET(T_PLUSPLUS); }
#line 3316 "cpp_re.inc"
yy270:
    ++YYCURSOR;
#line 206 "cpp.re"
    { BOOST_WAVE_RET(T_PLUSASSIGN); }
#line 3321 "cpp_re.inc"
yy272:
    ++YYCURSOR;
    if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12);
    yych = *YYCURSOR;
yy273:
    if (yych <= 'h') {
        if (yych <= ' ') {
            if (yych <= '\n') {
                if (yych == '\t') goto yy272;
                goto yy99;
            } else {
                if (yych <= '\f') goto yy272;
                if (yych <= 0x1F) goto yy99;
                goto yy272;
            }
        } else {
            if (yych <= 'c') {
                if (yych != '/') goto yy99;
            } else {
                if (yych <= 'd') goto yy281;
                if (yych <= 'e') goto yy275;
                goto yy99;
            }
        }
    } else {
        if (yych <= 'q') {
            if (yych <= 'l') {
                if (yych <= 'i') goto yy282;
                if (yych <= 'k') goto yy99;
                goto yy279;
            } else {
                if (yych == 'p') goto yy278;
                goto yy99;
            }
        } else {
            if (yych <= 'u') {
                if (yych <= 'r') goto yy276;
                if (yych <= 't') goto yy99;
                goto yy280;
            } else {
                if (yych == 'w') goto yy277;
                goto yy99;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych == '*') goto yy389;
    goto yy99;
yy275:
    yych = *++YYCURSOR;
    if (yych <= 'm') {
        if (yych == 'l') goto yy365;
        goto yy99;
    } else {
        if (yych <= 'n') goto yy366;
        if (yych == 'r') goto yy367;
        goto yy99;
    }
yy276:
    yych = *++YYCURSOR;
    if (yych == 'e') goto yy359;
    goto yy99;
yy277:
    yych = *++YYCURSOR;
    if (yych == 'a') goto yy352;
    goto yy99;
yy278:
    yych = *++YYCURSOR;
    if (yych == 'r') goto yy346;
    goto yy99;
yy279:
    yych = *++YYCURSOR;
    if (yych == 'i') goto yy342;
    goto yy99;
yy280:
    yych = *++YYCURSOR;
    if (yych == 'n') goto yy337;
    goto yy99;
yy281:
    yych = *++YYCURSOR;
    if (yych == 'e') goto yy331;
    goto yy99;
yy282:
    yych = *++YYCURSOR;
    if (yych == 'f') goto yy290;
    if (yych == 'n') goto yy289;
    goto yy99;
yy283:
    yych = *++YYCURSOR;
    if (yych == '?') goto yy286;
    goto yy99;
yy284:
    ++YYCURSOR;
#line 153 "cpp.re"
    { BOOST_WAVE_RET(T_POUND_POUND); }
#line 3419 "cpp_re.inc"
yy286:
    yych = *++YYCURSOR;
    if (yych != '=') goto yy99;
    ++YYCURSOR;
#line 154 "cpp.re"
    { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
#line 3426 "cpp_re.inc"
yy289:
    yych = *++YYCURSOR;
    if (yych == 'c') goto yy301;
    goto yy99;
yy290:
    yyaccept = 10;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'd') goto yy293;
    if (yych == 'n') goto yy292;
yy291:
#line 301 "cpp.re"
    { BOOST_WAVE_RET(T_PP_IF); }
#line 3439 "cpp_re.inc"
yy292:
    yych = *++YYCURSOR;
    if (yych == 'd') goto yy297;
    goto yy99;
yy293:
    yych = *++YYCURSOR;
    if (yych != 'e') goto yy99;
    yych = *++YYCURSOR;
    if (yych != 'f') goto yy99;
    ++YYCURSOR;
#line 302 "cpp.re"
    { BOOST_WAVE_RET(T_PP_IFDEF); }
#line 3452 "cpp_re.inc"
yy297:
    yych = *++YYCURSOR;
    if (yych != 'e') goto yy99;
    yych = *++YYCURSOR;
    if (yych != 'f') goto yy99;
    ++YYCURSOR;
#line 303 "cpp.re"
    { BOOST_WAVE_RET(T_PP_IFNDEF); }
#line 3461 "cpp_re.inc"
yy301:
    yych = *++YYCURSOR;
    if (yych != 'l') goto yy99;
    yych = *++YYCURSOR;
    if (yych != 'u') goto yy99;
    yych = *++YYCURSOR;
    if (yych != 'd') goto yy99;
    yych = *++YYCURSOR;
    if (yych != 'e') goto yy99;
    yyaccept = 11;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '_') goto yy307;
    goto yy309;
yy306:
#line 299 "cpp.re"
    { BOOST_WAVE_RET(T_PP_INCLUDE); }
#line 3478 "cpp_re.inc"
yy307:
    yych = *++YYCURSOR;
    if (yych == 'n') goto yy328;
    goto yy99;
yy308:
    yyaccept = 11;
    YYMARKER = ++YYCURSOR;
    if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
    yych = *YYCURSOR;
yy309:
    if (yych <= ' ') {
        if (yych <= '\n') {
            if (yych == '\t') goto yy308;
            goto yy306;
        } else {
            if (yych <= '\f') goto yy308;
            if (yych <= 0x1F) goto yy306;
            goto yy308;
        }
    } else {
        if (yych <= '.') {
            if (yych == '"') goto yy312;
            goto yy306;
        } else {
            if (yych <= '/') goto yy310;
            if (yych == '<') goto yy311;
            goto yy306;
        }
    }
yy310:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych == '*') goto yy321;
    goto yy99;
yy311:
    yych = *++YYCURSOR;
    if (yych == '>') goto yy99;
    goto yy318;
yy312:
    yych = *++YYCURSOR;
    if (yych == '"') goto yy99;
    goto yy314;
yy313:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
yy314:
    if (yybm[0+yych] & 8) {
        goto yy313;
    }
    if (yych <= '!') goto yy99;
    ++YYCURSOR;
#line 296 "cpp.re"
    { BOOST_WAVE_RET(T_PP_QHEADER); }
#line 3534 "cpp_re.inc"
yy317:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
yy318:
    if (yybm[0+yych] & 16) {
        goto yy317;
    }
    if (yych <= '=') goto yy99;
    ++YYCURSOR;
#line 293 "cpp.re"
    { BOOST_WAVE_RET(T_PP_HHEADER); }
#line 3547 "cpp_re.inc"
yy321:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 32) {
        goto yy321;
    }
    if (yych == '\r') goto yy323;
    if (yych <= ')') goto yy99;
    goto yy325;
yy323:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 32) {
        goto yy321;
    }
    if (yych == '\r') goto yy323;
    if (yych <= ')') goto yy99;
yy325:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 128) {
        goto yy325;
    }
    if (yych <= '\r') {
        if (yych <= 0x08) goto yy99;
        if (yych <= '\f') goto yy321;
    } else {
        if (yych <= 0x1F) goto yy99;
        if (yych == '/') goto yy308;
        goto yy321;
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 32) {
        goto yy321;
    }
    if (yych == '\r') goto yy323;
    if (yych <= ')') goto yy99;
    goto yy325;
yy328:
    yych = *++YYCURSOR;
    if (yych != 'e') goto yy99;
    yych = *++YYCURSOR;
    if (yych != 'x') goto yy99;
    yych = *++YYCURSOR;
    if (yych == 't') goto yy308;
    goto yy99;
yy331:
    yych = *++YYCURSOR;
    if (yych != 'f') goto yy99;
    yych = *++YYCURSOR;
    if (yych != 'i') goto yy99;
    yych = *++YYCURSOR;
    if (yych != 'n') goto yy99;
    yych = *++YYCURSOR;
    if (yych != 'e') goto yy99;
    ++YYCURSOR;
#line 307 "cpp.re"
    { BOOST_WAVE_RET(T_PP_DEFINE); }
#line 3611 "cpp_re.inc"
yy337:
    yych = *++YYCURSOR;
    if (yych != 'd') goto yy99;
    yych = *++YYCURSOR;
    if (yych != 'e') goto yy99;
    yych = *++YYCURSOR;
    if (yych != 'f') goto yy99;
    ++YYCURSOR;
#line 308 "cpp.re"
    { BOOST_WAVE_RET(T_PP_UNDEF); }
#line 3622 "cpp_re.inc"
yy342:
    yych = *++YYCURSOR;
    if (yych != 'n') goto yy99;
    yych = *++YYCURSOR;
    if (yych != 'e') goto yy99;
    ++YYCURSOR;
#line 309 "cpp.re"
    { BOOST_WAVE_RET(T_PP_LINE); }
#line 3631 "cpp_re.inc"
yy346:
    yych = *++YYCURSOR;
    if (yych != 'a') goto yy99;
    yych = *++YYCURSOR;
    if (yych != 'g') goto yy99;
    yych = *++YYCURSOR;
    if (yych != 'm') goto yy99;
    yych = *++YYCURSOR;
    if (yych != 'a') goto yy99;
    ++YYCURSOR;
#line 311 "cpp.re"
    { BOOST_WAVE_RET(T_PP_PRAGMA); }
#line 3644 "cpp_re.inc"
yy352:
    yych = *++YYCURSOR;
    if (yych != 'r') goto yy99;
    yych = *++YYCURSOR;
    if (yych != 'n') goto yy99;
    yych = *++YYCURSOR;
    if (yych != 'i') goto yy99;
    yych = *++YYCURSOR;
    if (yych != 'n') goto yy99;
    yych = *++YYCURSOR;
    if (yych != 'g') goto yy99;
    ++YYCURSOR;
#line 313 "cpp.re"
    { BOOST_WAVE_RET(T_PP_WARNING); }
#line 3659 "cpp_re.inc"
yy359:
    yych = *++YYCURSOR;
    if (yych != 'g') goto yy99;
    yych = *++YYCURSOR;
    if (yych != 'i') goto yy99;
    yych = *++YYCURSOR;
    if (yych != 'o') goto yy99;
    yych = *++YYCURSOR;
    if (yych != 'n') goto yy99;
    ++YYCURSOR;
#line 315 "cpp.re"
    { BOOST_WAVE_RET(T_MSEXT_PP_REGION); }
#line 3672 "cpp_re.inc"
yy365:
    yych = *++YYCURSOR;
    if (yych == 'i') goto yy383;
    if (yych == 's') goto yy384;
    goto yy99;
yy366:
    yych = *++YYCURSOR;
    if (yych == 'd') goto yy372;
    goto yy99;
yy367:
    yych = *++YYCURSOR;
    if (yych != 'r') goto yy99;
    yych = *++YYCURSOR;
    if (yych != 'o') goto yy99;
    yych = *++YYCURSOR;
    if (yych != 'r') goto yy99;
    ++YYCURSOR;
#line 310 "cpp.re"
    { BOOST_WAVE_RET(T_PP_ERROR); }
#line 3692 "cpp_re.inc"
yy372:
    yych = *++YYCURSOR;
    if (yych == 'i') goto yy373;
    if (yych == 'r') goto yy374;
    goto yy99;
yy373:
    yych = *++YYCURSOR;
    if (yych == 'f') goto yy381;
    goto yy99;
yy374:
    yych = *++YYCURSOR;
    if (yych != 'e') goto yy99;
    yych = *++YYCURSOR;
    if (yych != 'g') goto yy99;
    yych = *++YYCURSOR;
    if (yych != 'i') goto yy99;
    yych = *++YYCURSOR;
    if (yych != 'o') goto yy99;
    yych = *++YYCURSOR;
    if (yych != 'n') goto yy99;
    ++YYCURSOR;
#line 316 "cpp.re"
    { BOOST_WAVE_RET(T_MSEXT_PP_ENDREGION); }
#line 3716 "cpp_re.inc"
yy381:
    ++YYCURSOR;
#line 306 "cpp.re"
    { BOOST_WAVE_RET(T_PP_ENDIF); }
#line 3721 "cpp_re.inc"
yy383:
    yych = *++YYCURSOR;
    if (yych == 'f') goto yy387;
    goto yy99;
yy384:
    yych = *++YYCURSOR;
    if (yych != 'e') goto yy99;
    ++YYCURSOR;
#line 304 "cpp.re"
    { BOOST_WAVE_RET(T_PP_ELSE); }
#line 3732 "cpp_re.inc"
yy387:
    ++YYCURSOR;
#line 305 "cpp.re"
    { BOOST_WAVE_RET(T_PP_ELIF); }
#line 3737 "cpp_re.inc"
yy389:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '\r') {
        if (yych <= 0x08) goto yy99;
        if (yych <= '\f') goto yy389;
    } else {
        if (yych <= 0x1F) goto yy99;
        if (yych == '*') goto yy393;
        goto yy389;
    }
yy391:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '\r') {
        if (yych <= 0x08) goto yy99;
        if (yych <= '\f') goto yy389;
        goto yy391;
    } else {
        if (yych <= 0x1F) goto yy99;
        if (yych != '*') goto yy389;
    }
yy393:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= 0x1F) {
        if (yych <= 0x08) goto yy99;
        if (yych <= '\f') goto yy389;
        if (yych >= 0x0E) goto yy99;
    } else {
        if (yych <= '*') {
            if (yych <= ')') goto yy389;
            goto yy393;
        } else {
            if (yych == '/') goto yy272;
            goto yy389;
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '\r') {
        if (yych <= 0x08) goto yy99;
        if (yych <= '\f') goto yy389;
        goto yy391;
    } else {
        if (yych <= 0x1F) goto yy99;
        if (yych == '*') goto yy393;
        goto yy389;
    }
yy396:
    ++YYCURSOR;
#line 165 "cpp.re"
    { 
            if (s->act_in_c99_mode) {
                --YYCURSOR;
                BOOST_WAVE_RET(T_COLON);
            }
            else {
                BOOST_WAVE_RET(T_COLON_COLON); 
            }
        }
#line 3803 "cpp_re.inc"
yy398:
    ++YYCURSOR;
#line 149 "cpp.re"
    { BOOST_WAVE_RET(T_RIGHTBRACKET_ALT); }
#line 3808 "cpp_re.inc"
yy400:
    yyaccept = 12;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'e') {
        if (yych <= ' ') {
            if (yych <= '\n') {
                if (yych == '\t') goto yy273;
            } else {
                if (yych <= '\f') goto yy273;
                if (yych >= ' ') goto yy273;
            }
        } else {
            if (yych <= '.') {
                if (yych == '%') goto yy406;
            } else {
                if (yych <= '/') goto yy273;
                if (yych >= 'd') goto yy273;
            }
        }
    } else {
        if (yych <= 'p') {
            if (yych <= 'k') {
                if (yych == 'i') goto yy273;
            } else {
                if (yych <= 'l') goto yy273;
                if (yych >= 'p') goto yy273;
            }
        } else {
            if (yych <= 't') {
                if (yych == 'r') goto yy273;
            } else {
                if (yych == 'v') goto yy401;
                if (yych <= 'w') goto yy273;
            }
        }
    }
yy401:
#line 151 "cpp.re"
    { BOOST_WAVE_RET(T_POUND_ALT); }
#line 3848 "cpp_re.inc"
yy402:
    ++YYCURSOR;
#line 210 "cpp.re"
    { BOOST_WAVE_RET(T_PERCENTASSIGN); }
#line 3853 "cpp_re.inc"
yy404:
    ++YYCURSOR;
#line 143 "cpp.re"
    { BOOST_WAVE_RET(T_RIGHTBRACE_ALT); }
#line 3858 "cpp_re.inc"
yy406:
    yych = *++YYCURSOR;
    if (yych != ':') goto yy99;
    ++YYCURSOR;
#line 157 "cpp.re"
    { BOOST_WAVE_RET(T_POUND_POUND_ALT); }
#line 3865 "cpp_re.inc"
yy409:
    ++YYCURSOR;
#line 226 "cpp.re"
    { BOOST_WAVE_RET(T_LESSEQUAL); }
#line 3870 "cpp_re.inc"
yy411:
    ++YYCURSOR;
    if ((yych = *YYCURSOR) == '=') goto yy417;
#line 219 "cpp.re"
    { BOOST_WAVE_RET(T_SHIFTLEFT); }
#line 3876 "cpp_re.inc"
yy413:
    ++YYCURSOR;
#line 146 "cpp.re"
    { BOOST_WAVE_RET(T_LEFTBRACKET_ALT); }
#line 3881 "cpp_re.inc"
yy415:
    ++YYCURSOR;
#line 140 "cpp.re"
    { BOOST_WAVE_RET(T_LEFTBRACE_ALT); }
#line 3886 "cpp_re.inc"
yy417:
    ++YYCURSOR;
#line 222 "cpp.re"
    { BOOST_WAVE_RET(T_SHIFTLEFTASSIGN); }
#line 3891 "cpp_re.inc"
yy419:
    yych = *++YYCURSOR;
    switch (yych) {
    case '!':    goto yy432;
    case '\'':    goto yy430;
    case '(':    goto yy424;
    case ')':    goto yy426;
    case '-':    goto yy434;
    case '/':    goto yy436;
    case '<':    goto yy420;
    case '=':    goto yy428;
    case '>':    goto yy422;
    default:    goto yy99;
    }
yy420:
    ++YYCURSOR;
#line 139 "cpp.re"
    { BOOST_WAVE_RET(T_LEFTBRACE_TRIGRAPH); }
#line 3910 "cpp_re.inc"
yy422:
    ++YYCURSOR;
#line 142 "cpp.re"
    { BOOST_WAVE_RET(T_RIGHTBRACE_TRIGRAPH); }
#line 3915 "cpp_re.inc"
yy424:
    ++YYCURSOR;
#line 145 "cpp.re"
    { BOOST_WAVE_RET(T_LEFTBRACKET_TRIGRAPH); }
#line 3920 "cpp_re.inc"
yy426:
    ++YYCURSOR;
#line 148 "cpp.re"
    { BOOST_WAVE_RET(T_RIGHTBRACKET_TRIGRAPH); }
#line 3925 "cpp_re.inc"
yy428:
    yyaccept = 13;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'c') {
        if (yych <= ' ') {
            if (yych <= '\n') {
                if (yych == '\t') goto yy273;
            } else {
                if (yych <= '\f') goto yy273;
                if (yych >= ' ') goto yy273;
            }
        } else {
            if (yych <= '.') {
                if (yych == '#') goto yy449;
            } else {
                if (yych <= '/') goto yy273;
                if (yych == '?') goto yy448;
            }
        }
    } else {
        if (yych <= 'p') {
            if (yych <= 'i') {
                if (yych <= 'e') goto yy273;
                if (yych >= 'i') goto yy273;
            } else {
                if (yych == 'l') goto yy273;
                if (yych >= 'p') goto yy273;
            }
        } else {
            if (yych <= 't') {
                if (yych == 'r') goto yy273;
            } else {
                if (yych == 'v') goto yy429;
                if (yych <= 'w') goto yy273;
            }
        }
    }
yy429:
#line 152 "cpp.re"
    { BOOST_WAVE_RET(T_POUND_TRIGRAPH); }
#line 3966 "cpp_re.inc"
yy430:
    ++YYCURSOR;
    if ((yych = *YYCURSOR) == '=') goto yy446;
#line 191 "cpp.re"
    { BOOST_WAVE_RET(T_XOR_TRIGRAPH); }
#line 3972 "cpp_re.inc"
yy432:
    yyaccept = 14;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= '>') {
        if (yych == '=') goto yy441;
    } else {
        if (yych <= '?') goto yy438;
        if (yych == '|') goto yy439;
    }
yy433:
#line 197 "cpp.re"
    { BOOST_WAVE_RET(T_OR_TRIGRAPH); }
#line 3985 "cpp_re.inc"
yy434:
    ++YYCURSOR;
#line 199 "cpp.re"
    { BOOST_WAVE_RET(T_COMPL_TRIGRAPH); }
#line 3990 "cpp_re.inc"
yy436:
    yyaccept = 15;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'U') goto yy100;
    if (yych == 'u') goto yy98;
yy437:
#line 249 "cpp.re"
    { BOOST_WAVE_RET(T_ANY_TRIGRAPH); }
#line 3999 "cpp_re.inc"
yy438:
    yych = *++YYCURSOR;
    if (yych == '?') goto yy443;
    goto yy99;
yy439:
    ++YYCURSOR;
#line 231 "cpp.re"
    { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
#line 4008 "cpp_re.inc"
yy441:
    ++YYCURSOR;
#line 218 "cpp.re"
    { BOOST_WAVE_RET(T_ORASSIGN_TRIGRAPH); }
#line 4013 "cpp_re.inc"
yy443:
    yych = *++YYCURSOR;
    if (yych != '!') goto yy99;
    ++YYCURSOR;
#line 234 "cpp.re"
    { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
#line 4020 "cpp_re.inc"
yy446:
    ++YYCURSOR;
#line 213 "cpp.re"
    { BOOST_WAVE_RET(T_XORASSIGN_TRIGRAPH); }
#line 4025 "cpp_re.inc"
yy448:
    yych = *++YYCURSOR;
    if (yych == '?') goto yy451;
    goto yy99;
yy449:
    ++YYCURSOR;
#line 155 "cpp.re"
    { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
#line 4034 "cpp_re.inc"
yy451:
    yych = *++YYCURSOR;
    if (yych != '=') goto yy99;
    ++YYCURSOR;
#line 156 "cpp.re"
    { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
#line 4041 "cpp_re.inc"
yy454:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    switch (yych) {
    case 'a':    goto yy455;
    case 'b':    goto yy456;
    case 'c':    goto yy457;
    case 'd':    goto yy458;
    case 'e':    goto yy507;
    case 'f':    goto yy505;
    case 'i':    goto yy504;
    case 'l':    goto yy508;
    case 's':    goto yy461;
    case 't':    goto yy506;
    default:    goto yy109;
    }
yy455:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 's') goto yy501;
    goto yy109;
yy456:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy496;
    goto yy109;
yy457:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'd') goto yy491;
    goto yy109;
yy458:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy483;
    goto yy109;
yy459:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy475;
    goto yy109;
yy460:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'n') goto yy469;
    goto yy109;
yy461:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'd') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'c') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'a') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'l') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'l') goto yy109;
    yyaccept = 16;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy468:
#line 130 "cpp.re"
    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_STDCALL : T_IDENTIFIER); }
#line 4117 "cpp_re.inc"
yy469:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'l') goto yy109;
yy470:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'i') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'n') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 17;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy474:
#line 135 "cpp.re"
    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INLINE : T_IDENTIFIER); }
#line 4142 "cpp_re.inc"
yy475:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 's') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'c') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'a') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'l') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'l') goto yy109;
    yyaccept = 18;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy482:
#line 129 "cpp.re"
    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FASTCALL : T_IDENTIFIER); }
#line 4172 "cpp_re.inc"
yy483:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'c') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'l') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 's') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'p') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'c') goto yy109;
    yyaccept = 19;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy490:
#line 127 "cpp.re"
    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_DECLSPEC : T_IDENTIFIER); }
#line 4202 "cpp_re.inc"
yy491:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'c') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'l') goto yy109;
    yyaccept = 20;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy495:
#line 128 "cpp.re"
    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_CDECL : T_IDENTIFIER); }
#line 4223 "cpp_re.inc"
yy496:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 's') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'd') goto yy109;
    yyaccept = 21;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy500:
#line 126 "cpp.re"
    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_BASED : T_IDENTIFIER); }
#line 4244 "cpp_re.inc"
yy501:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'm') goto yy109;
    yyaccept = 22;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy503:
#line 136 "cpp.re"
    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_ASM : T_IDENTIFIER); }
#line 4259 "cpp_re.inc"
yy504:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'n') goto yy530;
    goto yy109;
yy505:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy475;
    if (yych == 'i') goto yy523;
    goto yy109;
yy506:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'r') goto yy520;
    goto yy109;
yy507:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'x') goto yy514;
    goto yy109;
yy508:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'a') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'v') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 23;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy513:
#line 134 "cpp.re"
    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_LEAVE : T_IDENTIFIER); }
#line 4304 "cpp_re.inc"
yy514:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'c') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'p') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 24;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy519:
#line 132 "cpp.re"
    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_EXCEPT : T_IDENTIFIER); }
#line 4328 "cpp_re.inc"
yy520:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'y') goto yy109;
    yyaccept = 25;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy522:
#line 131 "cpp.re"
    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_TRY : T_IDENTIFIER); }
#line 4343 "cpp_re.inc"
yy523:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'n') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'a') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'l') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'l') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'y') goto yy109;
    yyaccept = 26;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy529:
#line 133 "cpp.re"
    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FINALLY : T_IDENTIFIER); }
#line 4370 "cpp_re.inc"
yy530:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy470;
    if (yych != 't') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    switch (yych) {
    case '1':    goto yy532;
    case '3':    goto yy533;
    case '6':    goto yy534;
    case '8':    goto yy535;
    default:    goto yy109;
    }
yy532:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '6') goto yy541;
    goto yy109;
yy533:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '2') goto yy539;
    goto yy109;
yy534:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '4') goto yy537;
    goto yy109;
yy535:
    yyaccept = 27;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy536:
#line 122 "cpp.re"
    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT8 : T_IDENTIFIER); }
#line 4411 "cpp_re.inc"
yy537:
    yyaccept = 28;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy538:
#line 125 "cpp.re"
    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT64 : T_IDENTIFIER); }
#line 4423 "cpp_re.inc"
yy539:
    yyaccept = 29;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy540:
#line 124 "cpp.re"
    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT32 : T_IDENTIFIER); }
#line 4435 "cpp_re.inc"
yy541:
    yyaccept = 30;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy542:
#line 123 "cpp.re"
    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT16 : T_IDENTIFIER); }
#line 4447 "cpp_re.inc"
yy543:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'h') goto yy549;
    goto yy109;
yy544:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'i') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'l') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 31;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy548:
#line 120 "cpp.re"
    { BOOST_WAVE_RET(T_WHILE); }
#line 4473 "cpp_re.inc"
yy549:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'a') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'r') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != '_') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 32;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy554:
#line 119 "cpp.re"
    { BOOST_WAVE_RET(T_WCHART); }
#line 4497 "cpp_re.inc"
yy555:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'r') goto yy567;
    goto yy109;
yy556:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'i') goto yy557;
    if (yych == 'l') goto yy558;
    goto yy109;
yy557:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'd') goto yy565;
    goto yy109;
yy558:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'a') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'i') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'l') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 33;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy564:
#line 118 "cpp.re"
    { BOOST_WAVE_RET(T_VOLATILE); }
#line 4540 "cpp_re.inc"
yy565:
    yyaccept = 34;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy566:
#line 117 "cpp.re"
    { BOOST_WAVE_RET(T_VOID); }
#line 4552 "cpp_re.inc"
yy567:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'u') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'a') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'l') goto yy109;
    yyaccept = 35;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy572:
#line 116 "cpp.re"
    { BOOST_WAVE_RET(T_VIRTUAL); }
#line 4576 "cpp_re.inc"
yy573:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '"') goto yy129;
    if (yych == 'R') goto yy128;
    goto yy109;
yy574:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'i') goto yy580;
    if (yych == 's') goto yy581;
    goto yy109;
yy575:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'i') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'n') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'g') goto yy109;
    yyaccept = 36;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy579:
#line 115 "cpp.re"
    { BOOST_WAVE_RET(T_USING); }
#line 4609 "cpp_re.inc"
yy580:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'o') goto yy588;
    goto yy109;
yy581:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'i') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'g') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'n') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'd') goto yy109;
    yyaccept = 37;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy587:
#line 114 "cpp.re"
    { BOOST_WAVE_RET(T_UNSIGNED); }
#line 4641 "cpp_re.inc"
yy588:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'n') goto yy109;
    yyaccept = 38;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy590:
#line 113 "cpp.re"
    { BOOST_WAVE_RET(T_UNION); }
#line 4656 "cpp_re.inc"
yy591:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'm') goto yy631;
    goto yy109;
yy592:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'i') goto yy614;
    if (yych == 'r') goto yy615;
    goto yy109;
yy593:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'u') goto yy609;
    if (yych == 'y') goto yy610;
    goto yy109;
yy594:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'p') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'h') {
        if (yych != 'd') goto yy109;
    } else {
        if (yych <= 'i') goto yy598;
        if (yych == 'n') goto yy599;
        goto yy109;
    }
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy606;
    goto yy109;
yy598:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'd') goto yy604;
    goto yy109;
yy599:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'a') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'm') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 39;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy603:
#line 112 "cpp.re"
    { BOOST_WAVE_RET(T_TYPENAME); }
#line 4719 "cpp_re.inc"
yy604:
    yyaccept = 40;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy605:
#line 111 "cpp.re"
    { BOOST_WAVE_RET(T_TYPEID); }
#line 4731 "cpp_re.inc"
yy606:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'f') goto yy109;
    yyaccept = 41;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy608:
#line 110 "cpp.re"
    { BOOST_WAVE_RET(T_TYPEDEF); }
#line 4746 "cpp_re.inc"
yy609:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy612;
    goto yy109;
yy610:
    yyaccept = 42;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy611:
#line 109 "cpp.re"
    { BOOST_WAVE_RET(T_TRY); }
#line 4763 "cpp_re.inc"
yy612:
    yyaccept = 43;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy613:
#line 108 "cpp.re"
    { BOOST_WAVE_RET(T_TRUE); }
#line 4775 "cpp_re.inc"
yy614:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 's') goto yy629;
    goto yy109;
yy615:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy616;
    if (yych == 'o') goto yy617;
    goto yy109;
yy616:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy620;
    goto yy109;
yy617:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'w') goto yy109;
    yyaccept = 44;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy619:
#line 107 "cpp.re"
    { BOOST_WAVE_RET(T_THROW); }
#line 4806 "cpp_re.inc"
yy620:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'd') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != '_') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'l') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'o') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'c') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'a') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'l') goto yy109;
    yyaccept = 45;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy628:
#line 106 "cpp.re"
    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_THREADLOCAL : T_IDENTIFIER); }
#line 4839 "cpp_re.inc"
yy629:
    yyaccept = 46;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy630:
#line 105 "cpp.re"
    { BOOST_WAVE_RET(T_THIS); }
#line 4851 "cpp_re.inc"
yy631:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'p') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'l') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'a') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 47;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy637:
#line 104 "cpp.re"
    { BOOST_WAVE_RET(T_TEMPLATE); }
#line 4878 "cpp_re.inc"
yy638:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'o') goto yy680;
    goto yy109;
yy639:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'g') goto yy670;
    if (yych == 'z') goto yy671;
    goto yy109;
yy640:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy647;
    if (yych == 'r') goto yy648;
    goto yy109;
yy641:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'i') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'c') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'h') goto yy109;
    yyaccept = 48;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy646:
#line 103 "cpp.re"
    { BOOST_WAVE_RET(T_SWITCH); }
#line 4919 "cpp_re.inc"
yy647:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy653;
    goto yy109;
yy648:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'u') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'c') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 49;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy652:
#line 102 "cpp.re"
    { BOOST_WAVE_RET(T_STRUCT); }
#line 4945 "cpp_re.inc"
yy653:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'i') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'c') goto yy109;
    yyaccept = 50;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= '@') {
        if (yych <= '/') {
            if (yych == '$') goto yy108;
        } else {
            if (yych <= '9') goto yy108;
            if (yych == '?') goto yy111;
        }
    } else {
        if (yych <= '^') {
            if (yych <= 'Z') goto yy108;
            if (yych == '\\') goto yy110;
        } else {
            if (yych <= '_') goto yy657;
            if (yych <= '`') goto yy656;
            if (yych <= 'z') goto yy108;
        }
    }
yy656:
#line 99 "cpp.re"
    { BOOST_WAVE_RET(T_STATIC); }
#line 4975 "cpp_re.inc"
yy657:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy658;
    if (yych == 'c') goto yy659;
    goto yy109;
yy658:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 's') goto yy664;
    goto yy109;
yy659:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'a') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 's') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 51;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy663:
#line 100 "cpp.re"
    { BOOST_WAVE_RET(T_STATICCAST); }
#line 5007 "cpp_re.inc"
yy664:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 's') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'r') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 52;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy669:
#line 101 "cpp.re"
    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_STATICASSERT : T_IDENTIFIER); }
#line 5031 "cpp_re.inc"
yy670:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'n') goto yy676;
    goto yy109;
yy671:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'o') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'f') goto yy109;
    yyaccept = 53;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy675:
#line 98 "cpp.re"
    { BOOST_WAVE_RET(T_SIZEOF); }
#line 5057 "cpp_re.inc"
yy676:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'd') goto yy109;
    yyaccept = 54;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy679:
#line 97 "cpp.re"
    { BOOST_WAVE_RET(T_SIGNED); }
#line 5075 "cpp_re.inc"
yy680:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'r') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 55;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy683:
#line 96 "cpp.re"
    { BOOST_WAVE_RET(T_SHORT); }
#line 5093 "cpp_re.inc"
yy684:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'h') {
        if (yych != 'g') goto yy109;
    } else {
        if (yych <= 'i') goto yy686;
        if (yych == 't') goto yy687;
        goto yy109;
    }
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'i') goto yy706;
    goto yy109;
yy686:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'n') goto yy692;
    goto yy109;
yy687:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'u') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'r') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'n') goto yy109;
    yyaccept = 56;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy691:
#line 95 "cpp.re"
    { BOOST_WAVE_RET(T_RETURN); }
#line 5133 "cpp_re.inc"
yy692:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'r') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'p') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'r') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != '_') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'c') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'a') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 's') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 57;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy705:
#line 94 "cpp.re"
    { BOOST_WAVE_RET(T_REINTERPRETCAST); }
#line 5181 "cpp_re.inc"
yy706:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 's') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'r') goto yy109;
    yyaccept = 58;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy711:
#line 93 "cpp.re"
    { BOOST_WAVE_RET(T_REGISTER); }
#line 5205 "cpp_re.inc"
yy712:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'i') goto yy719;
    if (yych == 'o') goto yy720;
    goto yy109;
yy713:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'b') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'l') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'i') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'c') goto yy109;
    yyaccept = 59;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy718:
#line 92 "cpp.re"
    { BOOST_WAVE_RET(T_PUBLIC); }
#line 5235 "cpp_re.inc"
yy719:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'v') goto yy728;
    goto yy109;
yy720:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'c') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'd') goto yy109;
    yyaccept = 60;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy727:
#line 91 "cpp.re"
    { BOOST_WAVE_RET(T_PROTECTED); }
#line 5270 "cpp_re.inc"
yy728:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'a') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 61;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy732:
#line 90 "cpp.re"
    { BOOST_WAVE_RET(T_PRIVATE); }
#line 5291 "cpp_re.inc"
yy733:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy740;
    goto yy109;
yy734:
    yyaccept = 62;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= '@') {
        if (yych <= '/') {
            if (yych == '$') goto yy108;
        } else {
            if (yych <= '9') goto yy108;
            if (yych == '?') goto yy111;
        }
    } else {
        if (yych <= '^') {
            if (yych <= 'Z') goto yy108;
            if (yych == '\\') goto yy110;
        } else {
            if (yych <= '_') goto yy736;
            if (yych <= '`') goto yy735;
            if (yych <= 'z') goto yy108;
        }
    }
yy735:
#line 233 "cpp.re"
    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OROR_ALT); }
#line 5320 "cpp_re.inc"
yy736:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'q') goto yy109;
    yyaccept = 63;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy739:
#line 217 "cpp.re"
    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ORASSIGN_ALT); }
#line 5338 "cpp_re.inc"
yy740:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'r') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'a') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'o') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'r') goto yy109;
    yyaccept = 64;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy746:
#line 89 "cpp.re"
    { BOOST_WAVE_RET(T_OPERATOR); }
#line 5365 "cpp_re.inc"
yy747:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'm') goto yy772;
    goto yy109;
yy748:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'w') goto yy770;
    goto yy109;
yy749:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy757;
    if (yych == 't') goto yy758;
    goto yy109;
yy750:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'l') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'l') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'p') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'r') goto yy109;
    yyaccept = 65;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy756:
#line 88 "cpp.re"
    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_NULLPTR : T_IDENTIFIER); }
#line 5408 "cpp_re.inc"
yy757:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'x') goto yy764;
    goto yy109;
yy758:
    yyaccept = 66;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= '@') {
        if (yych <= '/') {
            if (yych == '$') goto yy108;
        } else {
            if (yych <= '9') goto yy108;
            if (yych == '?') goto yy111;
        }
    } else {
        if (yych <= '^') {
            if (yych <= 'Z') goto yy108;
            if (yych == '\\') goto yy110;
        } else {
            if (yych <= '_') goto yy760;
            if (yych <= '`') goto yy759;
            if (yych <= 'z') goto yy108;
        }
    }
yy759:
#line 202 "cpp.re"
    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOT_ALT); }
#line 5437 "cpp_re.inc"
yy760:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'q') goto yy109;
    yyaccept = 67;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy763:
#line 225 "cpp.re"
    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOTEQUAL_ALT); }
#line 5455 "cpp_re.inc"
yy764:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'c') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'p') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 68;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy769:
#line 87 "cpp.re"
    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_NOEXCEPT : T_IDENTIFIER); }
#line 5479 "cpp_re.inc"
yy770:
    yyaccept = 69;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy771:
#line 86 "cpp.re"
    { BOOST_WAVE_RET(T_NEW); }
#line 5491 "cpp_re.inc"
yy772:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 's') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'p') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'a') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'c') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 70;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy779:
#line 85 "cpp.re"
    { BOOST_WAVE_RET(T_NAMESPACE); }
#line 5521 "cpp_re.inc"
yy780:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'a') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'b') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'l') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 71;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy786:
#line 84 "cpp.re"
    { BOOST_WAVE_RET(T_MUTABLE); }
#line 5548 "cpp_re.inc"
yy787:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'n') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'g') goto yy109;
    yyaccept = 72;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy790:
#line 83 "cpp.re"
    { BOOST_WAVE_RET(T_LONG); }
#line 5566 "cpp_re.inc"
yy791:
    yyaccept = 73;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy792:
#line 79 "cpp.re"
    { BOOST_WAVE_RET(T_IF); }
#line 5578 "cpp_re.inc"
yy793:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'p') goto yy802;
    goto yy109;
yy794:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy795;
    if (yych == 't') goto yy796;
    goto yy109;
yy795:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'i') goto yy798;
    goto yy109;
yy796:
    yyaccept = 74;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy797:
#line 82 "cpp.re"
    { BOOST_WAVE_RET(T_INT); }
#line 5606 "cpp_re.inc"
yy798:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'n') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 75;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy801:
#line 81 "cpp.re"
    { BOOST_WAVE_RET(T_INLINE); }
#line 5624 "cpp_re.inc"
yy802:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'o') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'r') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 76;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy806:
#line 80 "cpp.re"
    { BOOST_WAVE_RET(s->enable_import_keyword ? T_IMPORT : T_IDENTIFIER); }
#line 5645 "cpp_re.inc"
yy807:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'o') goto yy109;
    yyaccept = 77;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy810:
#line 78 "cpp.re"
    { BOOST_WAVE_RET(T_GOTO); }
#line 5663 "cpp_re.inc"
yy811:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy826;
    goto yy109;
yy812:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'o') goto yy822;
    goto yy109;
yy813:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'r') goto yy820;
    goto yy109;
yy814:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'i') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'n') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'd') goto yy109;
    yyaccept = 78;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy819:
#line 77 "cpp.re"
    { BOOST_WAVE_RET(T_FRIEND); }
#line 5702 "cpp_re.inc"
yy820:
    yyaccept = 79;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy821:
#line 76 "cpp.re"
    { BOOST_WAVE_RET(T_FOR); }
#line 5714 "cpp_re.inc"
yy822:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'a') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 80;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy825:
#line 75 "cpp.re"
    { BOOST_WAVE_RET(T_FLOAT); }
#line 5732 "cpp_re.inc"
yy826:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 's') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 81;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy829:
#line 74 "cpp.re"
    { BOOST_WAVE_RET(T_FALSE); }
#line 5750 "cpp_re.inc"
yy830:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 's') goto yy852;
    goto yy109;
yy831:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'u') goto yy849;
    goto yy109;
yy832:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'p') goto yy833;
    if (yych == 't') goto yy834;
    goto yy109;
yy833:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy839;
    if (yych == 'o') goto yy840;
    goto yy109;
yy834:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'r') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'n') goto yy109;
    yyaccept = 82;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy838:
#line 73 "cpp.re"
    { BOOST_WAVE_RET(T_EXTERN); }
#line 5793 "cpp_re.inc"
yy839:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'i') goto yy844;
    goto yy109;
yy840:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'r') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 83;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy843:
#line 72 "cpp.re"
    { BOOST_WAVE_RET(T_EXPORT); }
#line 5816 "cpp_re.inc"
yy844:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'c') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'i') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 84;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy848:
#line 71 "cpp.re"
    { BOOST_WAVE_RET(T_EXPLICIT); }
#line 5837 "cpp_re.inc"
yy849:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'm') goto yy109;
    yyaccept = 85;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy851:
#line 70 "cpp.re"
    { BOOST_WAVE_RET(T_ENUM); }
#line 5852 "cpp_re.inc"
yy852:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 86;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy854:
#line 69 "cpp.re"
    { BOOST_WAVE_RET(T_ELSE); }
#line 5867 "cpp_re.inc"
yy855:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'e') {
        if (yych == 'c') goto yy875;
        goto yy109;
    } else {
        if (yych <= 'f') goto yy876;
        if (yych == 'l') goto yy877;
        goto yy109;
    }
yy856:
    yyaccept = 87;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'Z') {
        if (yych <= '9') {
            if (yych == '$') goto yy108;
            if (yych >= '0') goto yy108;
        } else {
            if (yych == '?') goto yy111;
            if (yych >= 'A') goto yy108;
        }
    } else {
        if (yych <= '_') {
            if (yych == '\\') goto yy110;
            if (yych >= '_') goto yy108;
        } else {
            if (yych <= 't') {
                if (yych >= 'a') goto yy108;
            } else {
                if (yych <= 'u') goto yy870;
                if (yych <= 'z') goto yy108;
            }
        }
    }
yy857:
#line 66 "cpp.re"
    { BOOST_WAVE_RET(T_DO); }
#line 5906 "cpp_re.inc"
yy858:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'n') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'a') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'm') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'i') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'c') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != '_') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'c') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'a') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 's') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 88;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy869:
#line 68 "cpp.re"
    { BOOST_WAVE_RET(T_DYNAMICCAST); }
#line 5948 "cpp_re.inc"
yy870:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'b') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'l') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 89;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy874:
#line 67 "cpp.re"
    { BOOST_WAVE_RET(T_DOUBLE); }
#line 5969 "cpp_re.inc"
yy875:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'l') goto yy887;
    goto yy109;
yy876:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy882;
    goto yy109;
yy877:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 90;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy881:
#line 65 "cpp.re"
    { BOOST_WAVE_RET(T_DELETE); }
#line 6000 "cpp_re.inc"
yy882:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'u') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'l') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 91;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy886:
#line 64 "cpp.re"
    { BOOST_WAVE_RET(T_DEFAULT); }
#line 6021 "cpp_re.inc"
yy887:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'y') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'p') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 92;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy892:
#line 63 "cpp.re"
    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_DECLTYPE : T_IDENTIFIER); }
#line 6045 "cpp_re.inc"
yy893:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'r') goto yy109;
    if (yych <= 's') goto yy939;
    if (yych <= 't') goto yy940;
    goto yy109;
yy894:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy926;
    goto yy109;
yy895:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy922;
    goto yy109;
yy896:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'l') goto yy109;
    if (yych <= 'm') goto yy898;
    if (yych >= 'o') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'r') goto yy109;
    if (yych <= 's') goto yy902;
    if (yych <= 't') goto yy903;
    goto yy109;
yy898:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'p') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'l') goto yy109;
    yyaccept = 93;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy901:
#line 200 "cpp.re"
    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_COMPL_ALT); }
#line 6092 "cpp_re.inc"
yy902:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy909;
    goto yy109;
yy903:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'i') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'n') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'u') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 94;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy908:
#line 62 "cpp.re"
    { BOOST_WAVE_RET(T_CONTINUE); }
#line 6121 "cpp_re.inc"
yy909:
    yyaccept = 95;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'Z') {
        if (yych <= '9') {
            if (yych == '$') goto yy108;
            if (yych >= '0') goto yy108;
        } else {
            if (yych == '?') goto yy111;
            if (yych >= 'A') goto yy108;
        }
    } else {
        if (yych <= '_') {
            if (yych == '\\') goto yy110;
            if (yych >= '_') goto yy911;
        } else {
            if (yych <= 'd') {
                if (yych >= 'a') goto yy108;
            } else {
                if (yych <= 'e') goto yy912;
                if (yych <= 'z') goto yy108;
            }
        }
    }
yy910:
#line 59 "cpp.re"
    { BOOST_WAVE_RET(T_CONST); }
#line 6149 "cpp_re.inc"
yy911:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'c') goto yy917;
    goto yy109;
yy912:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'x') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'p') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'r') goto yy109;
    yyaccept = 96;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy916:
#line 60 "cpp.re"
    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CONSTEXPR : T_IDENTIFIER); }
#line 6175 "cpp_re.inc"
yy917:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'a') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 's') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 97;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy921:
#line 61 "cpp.re"
    { BOOST_WAVE_RET(T_CONSTCAST); }
#line 6196 "cpp_re.inc"
yy922:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 's') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 's') goto yy109;
    yyaccept = 98;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy925:
#line 58 "cpp.re"
    { BOOST_WAVE_RET(T_CLASS); }
#line 6214 "cpp_re.inc"
yy926:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'r') goto yy109;
    yyaccept = 99;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= '>') {
        if (yych <= '0') {
            if (yych == '$') goto yy108;
            if (yych >= '0') goto yy108;
        } else {
            if (yych <= '2') {
                if (yych <= '1') goto yy929;
                goto yy108;
            } else {
                if (yych <= '3') goto yy930;
                if (yych <= '9') goto yy108;
            }
        }
    } else {
        if (yych <= '\\') {
            if (yych <= '@') {
                if (yych <= '?') goto yy111;
            } else {
                if (yych <= 'Z') goto yy108;
                if (yych >= '\\') goto yy110;
            }
        } else {
            if (yych <= '_') {
                if (yych >= '_') goto yy108;
            } else {
                if (yych <= '`') goto yy928;
                if (yych <= 'z') goto yy108;
            }
        }
    }
yy928:
#line 55 "cpp.re"
    { BOOST_WAVE_RET(T_CHAR); }
#line 6254 "cpp_re.inc"
yy929:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '6') goto yy935;
    goto yy109;
yy930:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != '2') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != '_') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 100;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy934:
#line 57 "cpp.re"
    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CHAR32_T : T_IDENTIFIER); }
#line 6280 "cpp_re.inc"
yy935:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != '_') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 101;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy938:
#line 56 "cpp.re"
    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CHAR16_T : T_IDENTIFIER); }
#line 6298 "cpp_re.inc"
yy939:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'e') goto yy944;
    goto yy109;
yy940:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'c') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'h') goto yy109;
    yyaccept = 102;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy943:
#line 54 "cpp.re"
    { BOOST_WAVE_RET(T_CATCH); }
#line 6321 "cpp_re.inc"
yy944:
    yyaccept = 103;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy945:
#line 53 "cpp.re"
    { BOOST_WAVE_RET(T_CASE); }
#line 6333 "cpp_re.inc"
yy946:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 't') goto yy956;
    goto yy109;
yy947:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'o') goto yy953;
    goto yy109;
yy948:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'a') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'k') goto yy109;
    yyaccept = 104;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy952:
#line 52 "cpp.re"
    { BOOST_WAVE_RET(T_BREAK); }
#line 6364 "cpp_re.inc"
yy953:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'l') goto yy109;
    yyaccept = 105;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy955:
#line 51 "cpp.re"
    { BOOST_WAVE_RET(T_BOOL); }
#line 6379 "cpp_re.inc"
yy956:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy957;
    if (yych == 'o') goto yy958;
    goto yy109;
yy957:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'n') goto yy961;
    goto yy109;
yy958:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'r') goto yy109;
    yyaccept = 106;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy960:
#line 196 "cpp.re"
    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OR_ALT); }
#line 6405 "cpp_re.inc"
yy961:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'd') goto yy109;
    yyaccept = 107;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy963:
#line 194 "cpp.re"
    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_AND_ALT); }
#line 6420 "cpp_re.inc"
yy964:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'i') goto yy979;
    goto yy109;
yy965:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'd') goto yy973;
    goto yy109;
yy966:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'm') goto yy971;
    goto yy109;
yy967:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 't') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'o') goto yy109;
    yyaccept = 108;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy970:
#line 50 "cpp.re"
    { BOOST_WAVE_RET(T_AUTO); }
#line 6453 "cpp_re.inc"
yy971:
    yyaccept = 109;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy972:
#line 49 "cpp.re"
    { BOOST_WAVE_RET(T_ASM); }
#line 6465 "cpp_re.inc"
yy973:
    yyaccept = 110;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= '@') {
        if (yych <= '/') {
            if (yych == '$') goto yy108;
        } else {
            if (yych <= '9') goto yy108;
            if (yych == '?') goto yy111;
        }
    } else {
        if (yych <= '^') {
            if (yych <= 'Z') goto yy108;
            if (yych == '\\') goto yy110;
        } else {
            if (yych <= '_') goto yy975;
            if (yych <= '`') goto yy974;
            if (yych <= 'z') goto yy108;
        }
    }
yy974:
#line 229 "cpp.re"
    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDAND_ALT); }
#line 6489 "cpp_re.inc"
yy975:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'e') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'q') goto yy109;
    yyaccept = 111;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy978:
#line 215 "cpp.re"
    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDASSIGN_ALT); }
#line 6507 "cpp_re.inc"
yy979:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'g') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'n') goto yy109;
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'a') goto yy982;
    if (yych == 'o') goto yy983;
    goto yy109;
yy982:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 's') goto yy986;
    goto yy109;
yy983:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'f') goto yy109;
    yyaccept = 112;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy985:
#line 48 "cpp.re"
    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_ALIGNOF : T_IDENTIFIER); }
#line 6539 "cpp_re.inc"
yy986:
    yyaccept = 113;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 32) {
        goto yy108;
    }
    if (yych == '?') goto yy111;
    if (yych == '\\') goto yy110;
yy987:
#line 47 "cpp.re"
    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_ALIGNAS : T_IDENTIFIER); }
#line 6551 "cpp_re.inc"
yy988:
    ++YYCURSOR;
#line 176 "cpp.re"
    { 
            if (s->act_in_c99_mode) {
                --YYCURSOR;
                BOOST_WAVE_RET(T_DOT);
            }
            else {
                BOOST_WAVE_RET(T_DOTSTAR); 
            }
        }
#line 6564 "cpp_re.inc"
yy990:
    yych = *++YYCURSOR;
    if (yych == '.') goto yy992;
    goto yy99;
yy991:
    yych = *++YYCURSOR;
    goto yy7;
yy992:
    ++YYCURSOR;
#line 162 "cpp.re"
    { BOOST_WAVE_RET(T_ELLIPSIS); }
#line 6576 "cpp_re.inc"
yy994:
    ++YYCURSOR;
#line 209 "cpp.re"
    { BOOST_WAVE_RET(T_DIVIDEASSIGN); }
#line 6581 "cpp_re.inc"
yy996:
    ++YYCURSOR;
#line 44 "cpp.re"
    { goto cppcomment; }
#line 6586 "cpp_re.inc"
yy998:
    ++YYCURSOR;
#line 43 "cpp.re"
    { goto ccomment; }
#line 6591 "cpp_re.inc"
}
#line 348 "cpp.re"


ccomment:

#line 6598 "cpp_re.inc"
{
    YYCTYPE yych;
    if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
    yych = *YYCURSOR;
    if (yych <= '\f') {
        if (yych <= 0x08) {
            if (yych <= 0x00) goto yy1009;
            goto yy1011;
        } else {
            if (yych == '\n') goto yy1004;
            goto yy1007;
        }
    } else {
        if (yych <= 0x1F) {
            if (yych <= '\r') goto yy1006;
            goto yy1011;
        } else {
            if (yych != '*') goto yy1008;
        }
    }
    ++YYCURSOR;
    if ((yych = *YYCURSOR) == '/') goto yy1014;
yy1003:
#line 363 "cpp.re"
    { goto ccomment; }
#line 6624 "cpp_re.inc"
yy1004:
    ++YYCURSOR;
yy1005:
#line 355 "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 6636 "cpp_re.inc"
yy1006:
    yych = *++YYCURSOR;
    if (yych == '\n') goto yy1013;
    goto yy1005;
yy1007:
    yych = *++YYCURSOR;
    goto yy1003;
yy1008:
    yych = *++YYCURSOR;
    goto yy1003;
yy1009:
    ++YYCURSOR;
#line 366 "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 6665 "cpp_re.inc"
yy1011:
    ++YYCURSOR;
#line 383 "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 6675 "cpp_re.inc"
yy1013:
    yych = *++YYCURSOR;
    goto yy1005;
yy1014:
    ++YYCURSOR;
#line 352 "cpp.re"
    { BOOST_WAVE_RET(T_CCOMMENT); }
#line 6683 "cpp_re.inc"
}
#line 389 "cpp.re"


cppcomment:

#line 6690 "cpp_re.inc"
{
    YYCTYPE yych;
    if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
    yych = *YYCURSOR;
    if (yych <= '\n') {
        if (yych <= 0x00) goto yy1024;
        if (yych <= 0x08) goto yy1026;
        if (yych <= '\t') goto yy1021;
    } else {
        if (yych <= '\f') goto yy1021;
        if (yych <= '\r') goto yy1020;
        if (yych <= 0x1F) goto yy1026;
        goto yy1023;
    }
    ++YYCURSOR;
yy1019:
#line 394 "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 6715 "cpp_re.inc"
yy1020:
    yych = *++YYCURSOR;
    if (yych == '\n') goto yy1028;
    goto yy1019;
yy1021:
    ++YYCURSOR;
yy1022:
#line 402 "cpp.re"
    { goto cppcomment; }
#line 6725 "cpp_re.inc"
yy1023:
    yych = *++YYCURSOR;
    goto yy1022;
yy1024:
    ++YYCURSOR;
#line 405 "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 6750 "cpp_re.inc"
yy1026:
    ++YYCURSOR;
#line 425 "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 6760 "cpp_re.inc"
yy1028:
    ++YYCURSOR;
    yych = *YYCURSOR;
    goto yy1019;
}
#line 431 "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 6778 "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,  64,   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 yy1032;
    if (yych <= '/') goto yy1031;
    if (yych <= '9') goto yy1033;
yy1031:
    YYCURSOR = YYMARKER;
    goto yy1035;
yy1032:
    yych = *++YYCURSOR;
    if (yych <= '/') goto yy1031;
    if (yych >= ':') goto yy1031;
yy1033:
    YYMARKER = ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 64) {
        goto yy1033;
    }
    if (yych <= 'Z') {
        if (yych == '?') goto yy1039;
        if (yych >= 'A') goto yy1036;
    } else {
        if (yych <= '\\') {
            if (yych >= '\\') goto yy1038;
        } else {
            if (yych == 'e') goto yy1036;
        }
    }
yy1035:
#line 443 "cpp.re"
    { BOOST_WAVE_RET(T_PP_NUMBER); }
#line 6847 "cpp_re.inc"
yy1036:
    YYMARKER = ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 128) {
        goto yy1036;
    }
    if (yych <= '>') {
        if (yych <= '+') {
            if (yych == '$') goto yy1033;
            if (yych <= '*') goto yy1035;
            goto yy1033;
        } else {
            if (yych <= '.') {
                if (yych <= ',') goto yy1035;
                goto yy1033;
            } else {
                if (yych <= '/') goto yy1035;
                if (yych <= '9') goto yy1033;
                goto yy1035;
            }
        }
    } else {
        if (yych <= '\\') {
            if (yych <= '@') {
                if (yych <= '?') goto yy1039;
                goto yy1035;
            } else {
                if (yych <= 'Z') goto yy1033;
                if (yych <= '[') goto yy1035;
            }
        } else {
            if (yych <= '_') {
                if (yych <= '^') goto yy1035;
                goto yy1033;
            } else {
                if (yych <= '`') goto yy1035;
                if (yych <= 'z') goto yy1033;
                goto yy1035;
            }
        }
    }
yy1038:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych == 'U') goto yy1042;
    if (yych == 'u') goto yy1041;
    goto yy1031;
yy1039:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych != '?') goto yy1031;
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych == '/') goto yy1038;
    goto yy1031;
yy1041:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1031;
        if (yych <= '9') goto yy1050;
        goto yy1031;
    } else {
        if (yych <= 'F') goto yy1050;
        if (yych <= '`') goto yy1031;
        if (yych <= 'f') goto yy1050;
        goto yy1031;
    }
yy1042:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1031;
        if (yych >= ':') goto yy1031;
    } else {
        if (yych <= 'F') goto yy1043;
        if (yych <= '`') goto yy1031;
        if (yych >= 'g') goto yy1031;
    }
yy1043:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1031;
        if (yych >= ':') goto yy1031;
    } else {
        if (yych <= 'F') goto yy1044;
        if (yych <= '`') goto yy1031;
        if (yych >= 'g') goto yy1031;
    }
yy1044:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1031;
        if (yych >= ':') goto yy1031;
    } else {
        if (yych <= 'F') goto yy1045;
        if (yych <= '`') goto yy1031;
        if (yych >= 'g') goto yy1031;
    }
yy1045:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1031;
        if (yych >= ':') goto yy1031;
    } else {
        if (yych <= 'F') goto yy1046;
        if (yych <= '`') goto yy1031;
        if (yych >= 'g') goto yy1031;
    }
yy1046:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1031;
        if (yych >= ':') goto yy1031;
    } else {
        if (yych <= 'F') goto yy1047;
        if (yych <= '`') goto yy1031;
        if (yych >= 'g') goto yy1031;
    }
yy1047:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1031;
        if (yych >= ':') goto yy1031;
    } else {
        if (yych <= 'F') goto yy1048;
        if (yych <= '`') goto yy1031;
        if (yych >= 'g') goto yy1031;
    }
yy1048:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1031;
        if (yych >= ':') goto yy1031;
    } else {
        if (yych <= 'F') goto yy1049;
        if (yych <= '`') goto yy1031;
        if (yych >= 'g') goto yy1031;
    }
yy1049:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1031;
        if (yych <= '9') goto yy1033;
        goto yy1031;
    } else {
        if (yych <= 'F') goto yy1033;
        if (yych <= '`') goto yy1031;
        if (yych <= 'f') goto yy1033;
        goto yy1031;
    }
yy1050:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1031;
        if (yych >= ':') goto yy1031;
    } else {
        if (yych <= 'F') goto yy1051;
        if (yych <= '`') goto yy1031;
        if (yych >= 'g') goto yy1031;
    }
yy1051:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1031;
        if (yych >= ':') goto yy1031;
    } else {
        if (yych <= 'F') goto yy1052;
        if (yych <= '`') goto yy1031;
        if (yych >= 'g') goto yy1031;
    }
yy1052:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1031;
        if (yych <= '9') goto yy1033;
        goto yy1031;
    } else {
        if (yych <= 'F') goto yy1033;
        if (yych <= '`') goto yy1031;
        if (yych <= 'f') goto yy1033;
        goto yy1031;
    }
}
#line 444 "cpp.re"

    }
    else {
    
#line 7063 "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, 
        224, 224, 224, 224, 224, 224, 224, 224, 
        160, 160,   0,   0,   0,   0,   0,   0, 
          0, 128, 128, 128, 128, 128, 128,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0, 128, 128, 128, 128, 128, 128,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
    };
    if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
    yych = *YYCURSOR;
    if (yych <= '/') {
        if (yych == '.') goto yy1060;
    } else {
        if (yych <= '0') goto yy1056;
        if (yych <= '9') goto yy1058;
    }
yy1055:
    YYCURSOR = YYMARKER;
    if (yyaccept <= 0) {
        goto yy1057;
    } else {
        goto yy1063;
    }
yy1056:
    yyaccept = 0;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[0+yych] & 64) {
        goto yy1075;
    }
    if (yych <= 'E') {
        if (yych <= '/') {
            if (yych == '.') goto yy1061;
        } else {
            if (yych <= '9') goto yy1078;
            if (yych >= 'E') goto yy1071;
        }
    } else {
        if (yych <= 'd') {
            if (yych == 'X') goto yy1077;
        } else {
            if (yych <= 'e') goto yy1071;
            if (yych == 'x') goto yy1077;
        }
    }
yy1057:
#line 451 "cpp.re"
    { goto integer_suffix; }
#line 7140 "cpp_re.inc"
yy1058:
    yyaccept = 0;
    YYMARKER = ++YYCURSOR;
    if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 32) {
        goto yy1058;
    }
    if (yych <= 'D') {
        if (yych == '.') goto yy1061;
        goto yy1057;
    } else {
        if (yych <= 'E') goto yy1071;
        if (yych == 'e') goto yy1071;
        goto yy1057;
    }
yy1060:
    yych = *++YYCURSOR;
    if (yych <= '/') goto yy1055;
    if (yych >= ':') goto yy1055;
yy1061:
    yyaccept = 1;
    YYMARKER = ++YYCURSOR;
    if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
    yych = *YYCURSOR;
    if (yych <= 'K') {
        if (yych <= 'D') {
            if (yych <= '/') goto yy1063;
            if (yych <= '9') goto yy1061;
        } else {
            if (yych <= 'E') goto yy1064;
            if (yych <= 'F') goto yy1065;
        }
    } else {
        if (yych <= 'e') {
            if (yych <= 'L') goto yy1066;
            if (yych >= 'e') goto yy1064;
        } else {
            if (yych <= 'f') goto yy1065;
            if (yych == 'l') goto yy1066;
        }
    }
yy1063:
#line 449 "cpp.re"
    { BOOST_WAVE_RET(T_FLOATLIT); }
#line 7186 "cpp_re.inc"
yy1064:
    yych = *++YYCURSOR;
    if (yych <= ',') {
        if (yych == '+') goto yy1068;
        goto yy1055;
    } else {
        if (yych <= '-') goto yy1068;
        if (yych <= '/') goto yy1055;
        if (yych <= '9') goto yy1069;
        goto yy1055;
    }
yy1065:
    yych = *++YYCURSOR;
    if (yych == 'L') goto yy1067;
    if (yych == 'l') goto yy1067;
    goto yy1063;
yy1066:
    yych = *++YYCURSOR;
    if (yych == 'F') goto yy1067;
    if (yych != 'f') goto yy1063;
yy1067:
    yych = *++YYCURSOR;
    goto yy1063;
yy1068:
    yych = *++YYCURSOR;
    if (yych <= '/') goto yy1055;
    if (yych >= ':') goto yy1055;
yy1069:
    ++YYCURSOR;
    if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
    yych = *YYCURSOR;
    if (yych <= 'K') {
        if (yych <= '9') {
            if (yych <= '/') goto yy1063;
            goto yy1069;
        } else {
            if (yych == 'F') goto yy1065;
            goto yy1063;
        }
    } else {
        if (yych <= 'f') {
            if (yych <= 'L') goto yy1066;
            if (yych <= 'e') goto yy1063;
            goto yy1065;
        } else {
            if (yych == 'l') goto yy1066;
            goto yy1063;
        }
    }
yy1071:
    yych = *++YYCURSOR;
    if (yych <= ',') {
        if (yych != '+') goto yy1055;
    } else {
        if (yych <= '-') goto yy1072;
        if (yych <= '/') goto yy1055;
        if (yych <= '9') goto yy1073;
        goto yy1055;
    }
yy1072:
    yych = *++YYCURSOR;
    if (yych <= '/') goto yy1055;
    if (yych >= ':') goto yy1055;
yy1073:
    ++YYCURSOR;
    if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
    yych = *YYCURSOR;
    if (yych <= 'K') {
        if (yych <= '9') {
            if (yych <= '/') goto yy1063;
            goto yy1073;
        } else {
            if (yych == 'F') goto yy1065;
            goto yy1063;
        }
    } else {
        if (yych <= 'f') {
            if (yych <= 'L') goto yy1066;
            if (yych <= 'e') goto yy1063;
            goto yy1065;
        } else {
            if (yych == 'l') goto yy1066;
            goto yy1063;
        }
    }
yy1075:
    yyaccept = 0;
    YYMARKER = ++YYCURSOR;
    if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 64) {
        goto yy1075;
    }
    if (yych <= '9') {
        if (yych == '.') goto yy1061;
        if (yych <= '/') goto yy1057;
        goto yy1078;
    } else {
        if (yych <= 'E') {
            if (yych <= 'D') goto yy1057;
            goto yy1071;
        } else {
            if (yych == 'e') goto yy1071;
            goto yy1057;
        }
    }
yy1077:
    yych = *++YYCURSOR;
    if (yybm[0+yych] & 128) {
        goto yy1080;
    }
    goto yy1055;
yy1078:
    ++YYCURSOR;
    if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych == '.') goto yy1061;
        if (yych <= '/') goto yy1055;
        goto yy1078;
    } else {
        if (yych <= 'E') {
            if (yych <= 'D') goto yy1055;
            goto yy1071;
        } else {
            if (yych == 'e') goto yy1071;
            goto yy1055;
        }
    }
yy1080:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 128) {
        goto yy1080;
    }
    goto yy1057;
}
#line 452 "cpp.re"

    }
}

/* this subscanner is called, whenever an Integer was recognized */
integer_suffix:
{
    if (s->enable_ms_extensions) {
    
#line 7335 "cpp_re.inc"
{
    YYCTYPE yych;
    if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
    yych = *(YYMARKER = YYCURSOR);
    if (yych <= 'h') {
        if (yych <= 'L') {
            if (yych >= 'L') goto yy1086;
        } else {
            if (yych == 'U') goto yy1085;
        }
    } else {
        if (yych <= 'l') {
            if (yych <= 'i') goto yy1087;
            if (yych >= 'l') goto yy1086;
        } else {
            if (yych == 'u') goto yy1085;
        }
    }
yy1084:
#line 465 "cpp.re"
    { BOOST_WAVE_RET(T_INTLIT); }
#line 7357 "cpp_re.inc"
yy1085:
    yych = *++YYCURSOR;
    if (yych == 'L') goto yy1094;
    if (yych == 'l') goto yy1094;
    goto yy1084;
yy1086:
    yych = *++YYCURSOR;
    if (yych <= 'U') {
        if (yych == 'L') goto yy1093;
        if (yych <= 'T') goto yy1084;
        goto yy1092;
    } else {
        if (yych <= 'l') {
            if (yych <= 'k') goto yy1084;
            goto yy1093;
        } else {
            if (yych == 'u') goto yy1092;
            goto yy1084;
        }
    }
yy1087:
    yych = *++YYCURSOR;
    if (yych == '6') goto yy1089;
yy1088:
    YYCURSOR = YYMARKER;
    goto yy1084;
yy1089:
    yych = *++YYCURSOR;
    if (yych != '4') goto yy1088;
yy1090:
    ++YYCURSOR;
yy1091:
#line 462 "cpp.re"
    { BOOST_WAVE_RET(T_LONGINTLIT); }
#line 7392 "cpp_re.inc"
yy1092:
    yych = *++YYCURSOR;
    goto yy1084;
yy1093:
    yych = *++YYCURSOR;
    if (yych == 'U') goto yy1090;
    if (yych == 'u') goto yy1090;
    goto yy1091;
yy1094:
    ++YYCURSOR;
    if ((yych = *YYCURSOR) == 'L') goto yy1090;
    if (yych == 'l') goto yy1090;
    goto yy1084;
}
#line 466 "cpp.re"

    }
    else {
    
#line 7412 "cpp_re.inc"
{
    YYCTYPE yych;
    if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
    yych = *YYCURSOR;
    if (yych <= 'U') {
        if (yych == 'L') goto yy1099;
        if (yych >= 'U') goto yy1098;
    } else {
        if (yych <= 'l') {
            if (yych >= 'l') goto yy1099;
        } else {
            if (yych == 'u') goto yy1098;
        }
    }
yy1097:
#line 474 "cpp.re"
    { BOOST_WAVE_RET(T_INTLIT); }
#line 7430 "cpp_re.inc"
yy1098:
    yych = *++YYCURSOR;
    if (yych == 'L') goto yy1104;
    if (yych == 'l') goto yy1104;
    goto yy1097;
yy1099:
    yych = *++YYCURSOR;
    if (yych <= 'U') {
        if (yych == 'L') goto yy1101;
        if (yych <= 'T') goto yy1097;
    } else {
        if (yych <= 'l') {
            if (yych <= 'k') goto yy1097;
            goto yy1101;
        } else {
            if (yych != 'u') goto yy1097;
        }
    }
    yych = *++YYCURSOR;
    goto yy1097;
yy1101:
    ++YYCURSOR;
    if ((yych = *YYCURSOR) == 'U') goto yy1103;
    if (yych == 'u') goto yy1103;
yy1102:
#line 471 "cpp.re"
    { BOOST_WAVE_RET(T_LONGINTLIT); }
#line 7458 "cpp_re.inc"
yy1103:
    yych = *++YYCURSOR;
    goto yy1102;
yy1104:
    ++YYCURSOR;
    if ((yych = *YYCURSOR) == 'L') goto yy1103;
    if (yych == 'l') goto yy1103;
    goto yy1097;
}
#line 475 "cpp.re"

    }
}

/* this subscanner is invoked for C++0x extended character literals */
extcharlit:
{
    
#line 7477 "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 yy1107;
            if (yych <= '\t') goto yy1108;
            goto yy1112;
        } else {
            if (yych <= '\f') goto yy1108;
            if (yych <= '\r') goto yy1112;
        }
    } else {
        if (yych <= '>') {
            if (yych == '\'') goto yy1112;
            goto yy1108;
        } else {
            if (yych <= '?') goto yy1110;
            if (yych == '\\') goto yy1111;
            goto yy1108;
        }
    }
yy1107:
    YYCURSOR = YYMARKER;
    goto yy1109;
yy1108:
    ++YYCURSOR;
    if ((yych = *YYCURSOR) == '\'') goto yy1120;
yy1109:
#line 487 "cpp.re"
    { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
#line 7544 "cpp_re.inc"
yy1110:
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '\'') goto yy1120;
    if (yych == '?') goto yy1135;
    goto yy1109;
yy1111:
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= '`') {
        if (yych <= '7') {
            if (yych <= '&') {
                if (yych == '"') goto yy1115;
                goto yy1109;
            } else {
                if (yych <= '\'') goto yy1115;
                if (yych <= '/') goto yy1109;
                goto yy1118;
            }
        } else {
            if (yych <= 'T') {
                if (yych == '?') goto yy1116;
                goto yy1109;
            } else {
                if (yych <= 'U') goto yy1114;
                if (yych == '\\') goto yy1115;
                goto yy1109;
            }
        }
    } else {
        if (yych <= 'r') {
            if (yych <= 'f') {
                if (yych <= 'b') goto yy1115;
                if (yych <= 'e') goto yy1109;
                goto yy1115;
            } else {
                if (yych == 'n') goto yy1115;
                if (yych <= 'q') goto yy1109;
                goto yy1115;
            }
        } else {
            if (yych <= 'u') {
                if (yych <= 's') goto yy1109;
                if (yych <= 't') goto yy1115;
                goto yy1113;
            } else {
                if (yych <= 'v') goto yy1115;
                if (yych == 'x') goto yy1117;
                goto yy1109;
            }
        }
    }
yy1112:
    yych = *++YYCURSOR;
    goto yy1109;
yy1113:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1107;
        if (yych <= '9') goto yy1132;
        goto yy1107;
    } else {
        if (yych <= 'F') goto yy1132;
        if (yych <= '`') goto yy1107;
        if (yych <= 'f') goto yy1132;
        goto yy1107;
    }
yy1114:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1107;
        if (yych <= '9') goto yy1125;
        goto yy1107;
    } else {
        if (yych <= 'F') goto yy1125;
        if (yych <= '`') goto yy1107;
        if (yych <= 'f') goto yy1125;
        goto yy1107;
    }
yy1115:
    yych = *++YYCURSOR;
    if (yych == '\'') goto yy1120;
    goto yy1107;
yy1116:
    yych = *++YYCURSOR;
    if (yych == '\'') goto yy1120;
    if (yych == '?') goto yy1124;
    goto yy1107;
yy1117:
    yych = *++YYCURSOR;
    if (yych == '\'') goto yy1107;
    goto yy1123;
yy1118:
    yych = *++YYCURSOR;
    if (yych == '\'') goto yy1120;
    if (yych <= '/') goto yy1107;
    if (yych >= '8') goto yy1107;
    yych = *++YYCURSOR;
    if (yych == '\'') goto yy1120;
    if (yych <= '/') goto yy1107;
    if (yych <= '7') goto yy1115;
    goto yy1107;
yy1120:
    ++YYCURSOR;
#line 484 "cpp.re"
    { BOOST_WAVE_RET(T_CHARLIT); }
#line 7649 "cpp_re.inc"
yy1122:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
yy1123:
    if (yybm[0+yych] & 128) {
        goto yy1122;
    }
    if (yych == '\'') goto yy1120;
    goto yy1107;
yy1124:
    yych = *++YYCURSOR;
    if (yych == '/') goto yy1115;
    goto yy1107;
yy1125:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1107;
        if (yych >= ':') goto yy1107;
    } else {
        if (yych <= 'F') goto yy1126;
        if (yych <= '`') goto yy1107;
        if (yych >= 'g') goto yy1107;
    }
yy1126:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1107;
        if (yych >= ':') goto yy1107;
    } else {
        if (yych <= 'F') goto yy1127;
        if (yych <= '`') goto yy1107;
        if (yych >= 'g') goto yy1107;
    }
yy1127:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1107;
        if (yych >= ':') goto yy1107;
    } else {
        if (yych <= 'F') goto yy1128;
        if (yych <= '`') goto yy1107;
        if (yych >= 'g') goto yy1107;
    }
yy1128:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1107;
        if (yych >= ':') goto yy1107;
    } else {
        if (yych <= 'F') goto yy1129;
        if (yych <= '`') goto yy1107;
        if (yych >= 'g') goto yy1107;
    }
yy1129:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1107;
        if (yych >= ':') goto yy1107;
    } else {
        if (yych <= 'F') goto yy1130;
        if (yych <= '`') goto yy1107;
        if (yych >= 'g') goto yy1107;
    }
yy1130:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1107;
        if (yych >= ':') goto yy1107;
    } else {
        if (yych <= 'F') goto yy1131;
        if (yych <= '`') goto yy1107;
        if (yych >= 'g') goto yy1107;
    }
yy1131:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1107;
        if (yych <= '9') goto yy1115;
        goto yy1107;
    } else {
        if (yych <= 'F') goto yy1115;
        if (yych <= '`') goto yy1107;
        if (yych <= 'f') goto yy1115;
        goto yy1107;
    }
yy1132:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1107;
        if (yych >= ':') goto yy1107;
    } else {
        if (yych <= 'F') goto yy1133;
        if (yych <= '`') goto yy1107;
        if (yych >= 'g') goto yy1107;
    }
yy1133:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1107;
        if (yych >= ':') goto yy1107;
    } else {
        if (yych <= 'F') goto yy1134;
        if (yych <= '`') goto yy1107;
        if (yych >= 'g') goto yy1107;
    }
yy1134:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1107;
        if (yych <= '9') goto yy1115;
        goto yy1107;
    } else {
        if (yych <= 'F') goto yy1115;
        if (yych <= '`') goto yy1107;
        if (yych <= 'f') goto yy1115;
        goto yy1107;
    }
yy1135:
    yych = *++YYCURSOR;
    if (yych != '/') goto yy1107;
    ++YYCURSOR;
    if ((yych = *YYCURSOR) <= '`') {
        if (yych <= '7') {
            if (yych <= '&') {
                if (yych == '"') goto yy1115;
                goto yy1107;
            } else {
                if (yych <= '\'') goto yy1115;
                if (yych <= '/') goto yy1107;
                goto yy1118;
            }
        } else {
            if (yych <= 'T') {
                if (yych == '?') goto yy1116;
                goto yy1107;
            } else {
                if (yych <= 'U') goto yy1114;
                if (yych == '\\') goto yy1115;
                goto yy1107;
            }
        }
    } else {
        if (yych <= 'r') {
            if (yych <= 'f') {
                if (yych <= 'b') goto yy1115;
                if (yych <= 'e') goto yy1107;
                goto yy1115;
            } else {
                if (yych == 'n') goto yy1115;
                if (yych <= 'q') goto yy1107;
                goto yy1115;
            }
        } else {
            if (yych <= 'u') {
                if (yych <= 's') goto yy1107;
                if (yych <= 't') goto yy1115;
                goto yy1113;
            } else {
                if (yych <= 'v') goto yy1115;
                if (yych == 'x') goto yy1117;
                goto yy1107;
            }
        }
    }
}
#line 488 "cpp.re"

}

/* this subscanner is invoked for C++0x extended character string literals */
extstringlit:
{
    
#line 7824 "cpp_re.inc"
{
    YYCTYPE yych;
    unsigned int yyaccept = 0;
    static const unsigned char yybm[] = {
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,  16,   0,  16,  16,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
         16,  16,   0,  16,  16,  16,  16,  16, 
         16,  16,  16,  16,  16,  16,  16,  16, 
        144, 144, 144, 144, 144, 144, 144, 144, 
        144, 144,  16,  16,  16,  16,  16,  32, 
         16, 144, 144, 144, 144, 144, 144,  16, 
         16,  16,  16,  16,  16,  16,  16,  16, 
         16,  16,  16,  16,  16,  16,  16,  16, 
         16,  16,  16,  16,  64,  16,  16,  16, 
         16, 144, 144, 144, 144, 144, 144,  16, 
         16,  16,  16,  16,  16,  16,  16,  16, 
         16,  16,  16,  16,  16,  16,  16,  16, 
         16,  16,  16,  16,  16,  16,  16,  16, 
         16,  16,  16,  16,  16,  16,  16,  16, 
         16,  16,  16,  16,  16,  16,  16,  16, 
         16,  16,  16,  16,  16,  16,  16,  16, 
         16,  16,  16,  16,  16,  16,  16,  16, 
         16,  16,  16,  16,  16,  16,  16,  16, 
         16,  16,  16,  16,  16,  16,  16,  16, 
         16,  16,  16,  16,  16,  16,  16,  16, 
         16,  16,  16,  16,  16,  16,  16,  16, 
         16,  16,  16,  16,  16,  16,  16,  16, 
         16,  16,  16,  16,  16,  16,  16,  16, 
         16,  16,  16,  16,  16,  16,  16,  16, 
         16,  16,  16,  16,  16,  16,  16,  16, 
         16,  16,  16,  16,  16,  16,  16,  16, 
         16,  16,  16,  16,  16,  16,  16,  16, 
         16,  16,  16,  16,  16,  16,  16,  16, 
         16,  16,  16,  16,  16,  16,  16,  16, 
    };
    if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
    yych = *YYCURSOR;
    if (yych <= 0x1F) {
        if (yych <= '\n') {
            if (yych <= 0x08) goto yy1139;
            if (yych <= '\t') goto yy1140;
            goto yy1146;
        } else {
            if (yych <= '\f') goto yy1140;
            if (yych <= '\r') goto yy1146;
        }
    } else {
        if (yych <= '>') {
            if (yych == '"') goto yy1144;
            goto yy1140;
        } else {
            if (yych <= '?') goto yy1142;
            if (yych == '\\') goto yy1143;
            goto yy1140;
        }
    }
yy1139:
    YYCURSOR = YYMARKER;
    if (yyaccept <= 0) {
        goto yy1141;
    } else {
        goto yy1145;
    }
yy1140:
    yyaccept = 0;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= '\n') {
        if (yych == '\t') goto yy1150;
    } else {
        if (yych <= '\f') goto yy1150;
        if (yych >= ' ') goto yy1150;
    }
yy1141:
#line 499 "cpp.re"
    { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
#line 7902 "cpp_re.inc"
yy1142:
    yyaccept = 0;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[0+yych] & 32) {
        goto yy1158;
    }
    if (yych <= '\n') {
        if (yych == '\t') goto yy1150;
        goto yy1141;
    } else {
        if (yych <= '\f') goto yy1150;
        if (yych <= 0x1F) goto yy1141;
        goto yy1150;
    }
yy1143:
    yyaccept = 0;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= '`') {
        if (yych <= '7') {
            if (yych <= '&') {
                if (yych == '"') goto yy1149;
                goto yy1141;
            } else {
                if (yych <= '\'') goto yy1149;
                if (yych <= '/') goto yy1141;
                goto yy1153;
            }
        } else {
            if (yych <= 'T') {
                if (yych == '?') goto yy1151;
                goto yy1141;
            } else {
                if (yych <= 'U') goto yy1148;
                if (yych == '\\') goto yy1149;
                goto yy1141;
            }
        }
    } else {
        if (yych <= 'r') {
            if (yych <= 'f') {
                if (yych <= 'b') goto yy1149;
                if (yych <= 'e') goto yy1141;
                goto yy1149;
            } else {
                if (yych == 'n') goto yy1149;
                if (yych <= 'q') goto yy1141;
                goto yy1149;
            }
        } else {
            if (yych <= 'u') {
                if (yych <= 's') goto yy1141;
                if (yych <= 't') goto yy1149;
                goto yy1147;
            } else {
                if (yych <= 'v') goto yy1149;
                if (yych == 'x') goto yy1152;
                goto yy1141;
            }
        }
    }
yy1144:
    ++YYCURSOR;
yy1145:
#line 496 "cpp.re"
    { BOOST_WAVE_RET(T_STRINGLIT); }
#line 7968 "cpp_re.inc"
yy1146:
    yych = *++YYCURSOR;
    goto yy1141;
yy1147:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1139;
        if (yych <= '9') goto yy1187;
        goto yy1139;
    } else {
        if (yych <= 'F') goto yy1187;
        if (yych <= '`') goto yy1139;
        if (yych <= 'f') goto yy1187;
        goto yy1139;
    }
yy1148:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1139;
        if (yych <= '9') goto yy1180;
        goto yy1139;
    } else {
        if (yych <= 'F') goto yy1180;
        if (yych <= '`') goto yy1139;
        if (yych <= 'f') goto yy1180;
        goto yy1139;
    }
yy1149:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
yy1150:
    if (yybm[0+yych] & 16) {
        goto yy1149;
    }
    if (yych <= '!') goto yy1139;
    if (yych <= '"') goto yy1155;
    if (yych <= '[') goto yy1156;
    goto yy1157;
yy1151:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 16) {
        goto yy1149;
    }
    if (yych <= '!') goto yy1139;
    if (yych <= '"') goto yy1155;
    if (yych <= '[') goto yy1179;
    goto yy1157;
yy1152:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 128) {
        goto yy1166;
    }
    goto yy1139;
yy1153:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '"') {
        if (yych <= '\n') {
            if (yych == '\t') goto yy1149;
            goto yy1139;
        } else {
            if (yych <= '\f') goto yy1149;
            if (yych <= 0x1F) goto yy1139;
            if (yych <= '!') goto yy1149;
            goto yy1155;
        }
    } else {
        if (yych <= '>') {
            if (yych <= '/') goto yy1149;
            if (yych >= '8') goto yy1149;
        } else {
            if (yych <= '?') goto yy1156;
            if (yych == '\\') goto yy1157;
            goto yy1149;
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 16) {
        goto yy1149;
    }
    if (yych <= '!') goto yy1139;
    if (yych <= '"') goto yy1155;
    if (yych <= '[') goto yy1156;
    goto yy1157;
yy1155:
    yych = *++YYCURSOR;
    goto yy1145;
yy1156:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 16) {
        goto yy1149;
    }
    if (yych <= '!') goto yy1139;
    if (yych <= '"') goto yy1155;
    if (yych <= '[') goto yy1158;
yy1157:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '`') {
        if (yych <= '7') {
            if (yych <= '&') {
                if (yych == '"') goto yy1149;
                goto yy1139;
            } else {
                if (yych <= '\'') goto yy1149;
                if (yych <= '/') goto yy1139;
                goto yy1153;
            }
        } else {
            if (yych <= 'T') {
                if (yych == '?') goto yy1151;
                goto yy1139;
            } else {
                if (yych <= 'U') goto yy1148;
                if (yych == '\\') goto yy1149;
                goto yy1139;
            }
        }
    } else {
        if (yych <= 'r') {
            if (yych <= 'f') {
                if (yych <= 'b') goto yy1149;
                if (yych <= 'e') goto yy1139;
                goto yy1149;
            } else {
                if (yych == 'n') goto yy1149;
                if (yych <= 'q') goto yy1139;
                goto yy1149;
            }
        } else {
            if (yych <= 'u') {
                if (yych <= 's') goto yy1139;
                if (yych <= 't') goto yy1149;
                goto yy1147;
            } else {
                if (yych <= 'v') goto yy1149;
                if (yych == 'x') goto yy1152;
                goto yy1139;
            }
        }
    }
yy1158:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 32) {
        goto yy1158;
    }
    if (yych <= '!') {
        if (yych <= '\n') {
            if (yych == '\t') goto yy1149;
            goto yy1139;
        } else {
            if (yych <= '\f') goto yy1149;
            if (yych <= 0x1F) goto yy1139;
            goto yy1149;
        }
    } else {
        if (yych <= '/') {
            if (yych <= '"') goto yy1155;
            if (yych <= '.') goto yy1149;
        } else {
            if (yych == '\\') goto yy1157;
            goto yy1149;
        }
    }
yy1160:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 64) {
        goto yy1160;
    }
    if (yych <= '7') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy1149;
            if (yych <= '\n') goto yy1139;
            goto yy1149;
        } else {
            if (yych <= '!') {
                if (yych <= 0x1F) goto yy1139;
                goto yy1149;
            } else {
                if (yych <= '"') goto yy1164;
                if (yych <= '/') goto yy1149;
                goto yy1153;
            }
        }
    } else {
        if (yych <= 'U') {
            if (yych == '?') goto yy1165;
            if (yych <= 'T') goto yy1149;
            goto yy1163;
        } else {
            if (yych <= 'u') {
                if (yych <= 't') goto yy1149;
            } else {
                if (yych == 'x') goto yy1166;
                goto yy1149;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy1149;
            if (yych <= '\n') goto yy1139;
            goto yy1149;
        } else {
            if (yych <= '!') {
                if (yych <= 0x1F) goto yy1139;
                goto yy1149;
            } else {
                if (yych <= '"') goto yy1155;
                if (yych <= '/') goto yy1149;
                goto yy1176;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy1156;
            if (yych <= '@') goto yy1149;
            goto yy1176;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy1149;
                goto yy1157;
            } else {
                if (yych <= '`') goto yy1149;
                if (yych <= 'f') goto yy1176;
                goto yy1149;
            }
        }
    }
yy1163:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy1149;
            if (yych <= '\n') goto yy1139;
            goto yy1149;
        } else {
            if (yych <= '!') {
                if (yych <= 0x1F) goto yy1139;
                goto yy1149;
            } else {
                if (yych <= '"') goto yy1155;
                if (yych <= '/') goto yy1149;
                goto yy1169;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy1156;
            if (yych <= '@') goto yy1149;
            goto yy1169;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy1149;
                goto yy1157;
            } else {
                if (yych <= '`') goto yy1149;
                if (yych <= 'f') goto yy1169;
                goto yy1149;
            }
        }
    }
yy1164:
    yyaccept = 1;
    YYMARKER = ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 16) {
        goto yy1149;
    }
    if (yych <= '!') goto yy1145;
    if (yych <= '"') goto yy1155;
    if (yych <= '[') goto yy1156;
    goto yy1157;
yy1165:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 16) {
        goto yy1149;
    }
    if (yych <= '!') goto yy1139;
    if (yych <= '"') goto yy1155;
    if (yych <= '[') goto yy1168;
    goto yy1157;
yy1166:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 128) {
        goto yy1166;
    }
    if (yych <= '!') {
        if (yych <= '\n') {
            if (yych == '\t') goto yy1149;
            goto yy1139;
        } else {
            if (yych <= '\f') goto yy1149;
            if (yych <= 0x1F) goto yy1139;
            goto yy1149;
        }
    } else {
        if (yych <= '?') {
            if (yych <= '"') goto yy1155;
            if (yych <= '>') goto yy1149;
            goto yy1156;
        } else {
            if (yych == '\\') goto yy1157;
            goto yy1149;
        }
    }
yy1168:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 32) {
        goto yy1158;
    }
    if (yych <= '!') {
        if (yych <= '\n') {
            if (yych == '\t') goto yy1149;
            goto yy1139;
        } else {
            if (yych <= '\f') goto yy1149;
            if (yych <= 0x1F) goto yy1139;
            goto yy1149;
        }
    } else {
        if (yych <= '/') {
            if (yych <= '"') goto yy1155;
            if (yych <= '.') goto yy1149;
            goto yy1160;
        } else {
            if (yych == '\\') goto yy1157;
            goto yy1149;
        }
    }
yy1169:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy1149;
            if (yych <= '\n') goto yy1139;
            goto yy1149;
        } else {
            if (yych <= '!') {
                if (yych <= 0x1F) goto yy1139;
                goto yy1149;
            } else {
                if (yych <= '"') goto yy1155;
                if (yych <= '/') goto yy1149;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy1156;
            if (yych <= '@') goto yy1149;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy1149;
                goto yy1157;
            } else {
                if (yych <= '`') goto yy1149;
                if (yych >= 'g') goto yy1149;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy1149;
            if (yych <= '\n') goto yy1139;
            goto yy1149;
        } else {
            if (yych <= '!') {
                if (yych <= 0x1F) goto yy1139;
                goto yy1149;
            } else {
                if (yych <= '"') goto yy1155;
                if (yych <= '/') goto yy1149;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy1156;
            if (yych <= '@') goto yy1149;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy1149;
                goto yy1157;
            } else {
                if (yych <= '`') goto yy1149;
                if (yych >= 'g') goto yy1149;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy1149;
            if (yych <= '\n') goto yy1139;
            goto yy1149;
        } else {
            if (yych <= '!') {
                if (yych <= 0x1F) goto yy1139;
                goto yy1149;
            } else {
                if (yych <= '"') goto yy1155;
                if (yych <= '/') goto yy1149;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy1156;
            if (yych <= '@') goto yy1149;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy1149;
                goto yy1157;
            } else {
                if (yych <= '`') goto yy1149;
                if (yych >= 'g') goto yy1149;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy1149;
            if (yych <= '\n') goto yy1139;
            goto yy1149;
        } else {
            if (yych <= '!') {
                if (yych <= 0x1F) goto yy1139;
                goto yy1149;
            } else {
                if (yych <= '"') goto yy1155;
                if (yych <= '/') goto yy1149;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy1156;
            if (yych <= '@') goto yy1149;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy1149;
                goto yy1157;
            } else {
                if (yych <= '`') goto yy1149;
                if (yych >= 'g') goto yy1149;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy1149;
            if (yych <= '\n') goto yy1139;
            goto yy1149;
        } else {
            if (yych <= '!') {
                if (yych <= 0x1F) goto yy1139;
                goto yy1149;
            } else {
                if (yych <= '"') goto yy1155;
                if (yych <= '/') goto yy1149;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy1156;
            if (yych <= '@') goto yy1149;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy1149;
                goto yy1157;
            } else {
                if (yych <= '`') goto yy1149;
                if (yych >= 'g') goto yy1149;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy1149;
            if (yych <= '\n') goto yy1139;
            goto yy1149;
        } else {
            if (yych <= '!') {
                if (yych <= 0x1F) goto yy1139;
                goto yy1149;
            } else {
                if (yych <= '"') goto yy1155;
                if (yych <= '/') goto yy1149;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy1156;
            if (yych <= '@') goto yy1149;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy1149;
                goto yy1157;
            } else {
                if (yych <= '`') goto yy1149;
                if (yych >= 'g') goto yy1149;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 16) {
        goto yy1149;
    }
    if (yych <= '!') goto yy1139;
    if (yych <= '"') goto yy1155;
    if (yych <= '[') goto yy1156;
    goto yy1157;
yy1176:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy1149;
            if (yych <= '\n') goto yy1139;
            goto yy1149;
        } else {
            if (yych <= '!') {
                if (yych <= 0x1F) goto yy1139;
                goto yy1149;
            } else {
                if (yych <= '"') goto yy1155;
                if (yych <= '/') goto yy1149;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy1156;
            if (yych <= '@') goto yy1149;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy1149;
                goto yy1157;
            } else {
                if (yych <= '`') goto yy1149;
                if (yych >= 'g') goto yy1149;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy1149;
            if (yych <= '\n') goto yy1139;
            goto yy1149;
        } else {
            if (yych <= '!') {
                if (yych <= 0x1F) goto yy1139;
                goto yy1149;
            } else {
                if (yych <= '"') goto yy1155;
                if (yych <= '/') goto yy1149;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy1156;
            if (yych <= '@') goto yy1149;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy1149;
                goto yy1157;
            } else {
                if (yych <= '`') goto yy1149;
                if (yych >= 'g') goto yy1149;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 16) {
        goto yy1149;
    }
    if (yych <= '!') goto yy1139;
    if (yych <= '"') goto yy1155;
    if (yych <= '[') goto yy1156;
    goto yy1157;
yy1179:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 16) {
        goto yy1149;
    }
    if (yych <= '!') goto yy1139;
    if (yych <= '"') goto yy1155;
    if (yych <= '[') goto yy1158;
    goto yy1157;
yy1180:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1139;
        if (yych >= ':') goto yy1139;
    } else {
        if (yych <= 'F') goto yy1181;
        if (yych <= '`') goto yy1139;
        if (yych >= 'g') goto yy1139;
    }
yy1181:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1139;
        if (yych >= ':') goto yy1139;
    } else {
        if (yych <= 'F') goto yy1182;
        if (yych <= '`') goto yy1139;
        if (yych >= 'g') goto yy1139;
    }
yy1182:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1139;
        if (yych >= ':') goto yy1139;
    } else {
        if (yych <= 'F') goto yy1183;
        if (yych <= '`') goto yy1139;
        if (yych >= 'g') goto yy1139;
    }
yy1183:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1139;
        if (yych >= ':') goto yy1139;
    } else {
        if (yych <= 'F') goto yy1184;
        if (yych <= '`') goto yy1139;
        if (yych >= 'g') goto yy1139;
    }
yy1184:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1139;
        if (yych >= ':') goto yy1139;
    } else {
        if (yych <= 'F') goto yy1185;
        if (yych <= '`') goto yy1139;
        if (yych >= 'g') goto yy1139;
    }
yy1185:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1139;
        if (yych >= ':') goto yy1139;
    } else {
        if (yych <= 'F') goto yy1186;
        if (yych <= '`') goto yy1139;
        if (yych >= 'g') goto yy1139;
    }
yy1186:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1139;
        if (yych <= '9') goto yy1149;
        goto yy1139;
    } else {
        if (yych <= 'F') goto yy1149;
        if (yych <= '`') goto yy1139;
        if (yych <= 'f') goto yy1149;
        goto yy1139;
    }
yy1187:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1139;
        if (yych >= ':') goto yy1139;
    } else {
        if (yych <= 'F') goto yy1188;
        if (yych <= '`') goto yy1139;
        if (yych >= 'g') goto yy1139;
    }
yy1188:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1139;
        if (yych >= ':') goto yy1139;
    } else {
        if (yych <= 'F') goto yy1189;
        if (yych <= '`') goto yy1139;
        if (yych >= 'g') goto yy1139;
    }
yy1189:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1139;
        if (yych <= '9') goto yy1149;
        goto yy1139;
    } else {
        if (yych <= 'F') goto yy1149;
        if (yych <= '`') goto yy1139;
        if (yych <= 'f') goto yy1149;
        goto yy1139;
    }
}
#line 500 "cpp.re"

}

extrawstringlit:
{
    
#line 8743 "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 yy1192;
            if (yych <= '\t') goto yy1193;
            goto yy1197;
        } else {
            if (yych <= '\f') goto yy1193;
            if (yych <= '\r') goto yy1199;
        }
    } else {
        if (yych <= '>') {
            if (yych == '"') goto yy1200;
            goto yy1193;
        } else {
            if (yych <= '?') goto yy1195;
            if (yych == '\\') goto yy1196;
            goto yy1193;
        }
    }
yy1192:
    YYCURSOR = YYMARKER;
    goto yy1194;
yy1193:
    ++YYCURSOR;
yy1194:
#line 507 "cpp.re"
    {
            goto extrawstringlit;
        }
#line 8811 "cpp_re.inc"
yy1195:
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '?') goto yy1221;
    goto yy1194;
yy1196:
    yych = *++YYCURSOR;
    if (yych <= '`') {
        if (yych <= '7') {
            if (yych <= '&') {
                if (yych == '"') goto yy1193;
                goto yy1192;
            } else {
                if (yych <= '\'') goto yy1193;
                if (yych <= '/') goto yy1192;
                goto yy1206;
            }
        } else {
            if (yych <= 'T') {
                if (yych == '?') goto yy1204;
                goto yy1192;
            } else {
                if (yych <= 'U') goto yy1203;
                if (yych == '\\') goto yy1193;
                goto yy1192;
            }
        }
    } else {
        if (yych <= 'r') {
            if (yych <= 'f') {
                if (yych <= 'b') goto yy1193;
                if (yych <= 'e') goto yy1192;
                goto yy1193;
            } else {
                if (yych == 'n') goto yy1193;
                if (yych <= 'q') goto yy1192;
                goto yy1193;
            }
        } else {
            if (yych <= 'u') {
                if (yych <= 's') goto yy1192;
                if (yych <= 't') goto yy1193;
                goto yy1202;
            } else {
                if (yych <= 'v') goto yy1193;
                if (yych == 'x') goto yy1205;
                goto yy1192;
            }
        }
    }
yy1197:
    ++YYCURSOR;
yy1198:
#line 512 "cpp.re"
    {
            s->line += count_backslash_newlines(s, cursor) +1;
            cursor.column = 1;
            goto extrawstringlit;
        }
#line 8870 "cpp_re.inc"
yy1199:
    yych = *++YYCURSOR;
    if (yych == '\n') goto yy1197;
    goto yy1198;
yy1200:
    ++YYCURSOR;
#line 518 "cpp.re"
    { BOOST_WAVE_RET(T_RAWSTRINGLIT); }
#line 8879 "cpp_re.inc"
yy1202:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1192;
        if (yych <= '9') goto yy1218;
        goto yy1192;
    } else {
        if (yych <= 'F') goto yy1218;
        if (yych <= '`') goto yy1192;
        if (yych <= 'f') goto yy1218;
        goto yy1192;
    }
yy1203:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1192;
        if (yych <= '9') goto yy1211;
        goto yy1192;
    } else {
        if (yych <= 'F') goto yy1211;
        if (yych <= '`') goto yy1192;
        if (yych <= 'f') goto yy1211;
        goto yy1192;
    }
yy1204:
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '?') goto yy1210;
    goto yy1194;
yy1205:
    yych = *++YYCURSOR;
    if (yybm[0+yych] & 128) {
        goto yy1208;
    }
    goto yy1192;
yy1206:
    yych = *++YYCURSOR;
    if (yych <= '/') goto yy1194;
    if (yych >= '8') goto yy1194;
    yych = *++YYCURSOR;
    if (yych <= '/') goto yy1194;
    if (yych <= '7') goto yy1193;
    goto yy1194;
yy1208:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 128) {
        goto yy1208;
    }
    goto yy1194;
yy1210:
    yych = *++YYCURSOR;
    if (yych == '/') goto yy1193;
    goto yy1192;
yy1211:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1192;
        if (yych >= ':') goto yy1192;
    } else {
        if (yych <= 'F') goto yy1212;
        if (yych <= '`') goto yy1192;
        if (yych >= 'g') goto yy1192;
    }
yy1212:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1192;
        if (yych >= ':') goto yy1192;
    } else {
        if (yych <= 'F') goto yy1213;
        if (yych <= '`') goto yy1192;
        if (yych >= 'g') goto yy1192;
    }
yy1213:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1192;
        if (yych >= ':') goto yy1192;
    } else {
        if (yych <= 'F') goto yy1214;
        if (yych <= '`') goto yy1192;
        if (yych >= 'g') goto yy1192;
    }
yy1214:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1192;
        if (yych >= ':') goto yy1192;
    } else {
        if (yych <= 'F') goto yy1215;
        if (yych <= '`') goto yy1192;
        if (yych >= 'g') goto yy1192;
    }
yy1215:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1192;
        if (yych >= ':') goto yy1192;
    } else {
        if (yych <= 'F') goto yy1216;
        if (yych <= '`') goto yy1192;
        if (yych >= 'g') goto yy1192;
    }
yy1216:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1192;
        if (yych >= ':') goto yy1192;
    } else {
        if (yych <= 'F') goto yy1217;
        if (yych <= '`') goto yy1192;
        if (yych >= 'g') goto yy1192;
    }
yy1217:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1192;
        if (yych <= '9') goto yy1193;
        goto yy1192;
    } else {
        if (yych <= 'F') goto yy1193;
        if (yych <= '`') goto yy1192;
        if (yych <= 'f') goto yy1193;
        goto yy1192;
    }
yy1218:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1192;
        if (yych >= ':') goto yy1192;
    } else {
        if (yych <= 'F') goto yy1219;
        if (yych <= '`') goto yy1192;
        if (yych >= 'g') goto yy1192;
    }
yy1219:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1192;
        if (yych >= ':') goto yy1192;
    } else {
        if (yych <= 'F') goto yy1220;
        if (yych <= '`') goto yy1192;
        if (yych >= 'g') goto yy1192;
    }
yy1220:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy1192;
        if (yych <= '9') goto yy1193;
        goto yy1192;
    } else {
        if (yych <= 'F') goto yy1193;
        if (yych <= '`') goto yy1192;
        if (yych <= 'f') goto yy1193;
        goto yy1192;
    }
yy1221:
    ++YYCURSOR;
    if ((yych = *YYCURSOR) == '/') goto yy1196;
    goto yy1192;
}
#line 519 "cpp.re"

}
