/* Generated by re2c 0.13.5 on Tue Apr 30 08:38:09 2019 */
#line 1 "idl.re"
#line 20 "idl.re"



#line 8 "idl.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,  56,  56,  64,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
         60,  56,  40,  56,  56,  56,  56,  56, 
         56,  56, 152,  56,  56,  56,  56,  56, 
         59,  59,  59,  59,  59,  59,  59,  59, 
         58,  58,  56,  56,  56,  56,  48,  56, 
         56,  58,  58,  58,  58,  58,  58,  58, 
         58,  58,  58,  58,  58,  58,  58,  58, 
         58,  58,  58,  58,  58,  58,  58,  58, 
         58,  58,  58,  56,  56,  56,  56,  58, 
         56,  58,  58,  58,  58,  58,  58,  58, 
         58,  58,  58,  58,  58,  58,  58,  58, 
         58,  58,  58,  58,  58,  58,  58,  58, 
         58,  58,  58,  56,  56,  56,  56,  56, 
         56,  56,  56,  56,  56,  56,  56,  56, 
         56,  56,  56,  56,  56,  56,  56,  56, 
         56,  56,  56,  56,  56,  56,  56,  56, 
         56,  56,  56,  56,  56,  56,  56,  56, 
         56,  56,  56,  56,  56,  56,  56,  56, 
         56,  56,  56,  56,  56,  56,  56,  56, 
         56,  56,  56,  56,  56,  56,  56,  56, 
         56,  56,  56,  56,  56,  56,  56,  56, 
         56,  56,  56,  56,  56,  56,  56,  56, 
         56,  56,  56,  56,  56,  56,  56,  56, 
         56,  56,  56,  56,  56,  56,  56,  56, 
         56,  56,  56,  56,  56,  56,  56,  56, 
         56,  56,  56,  56,  56,  56,  56,  56, 
         56,  56,  56,  56,  56,  56,  56,  56, 
         56,  56,  56,  56,  56,  56,  56,  56, 
         56,  56,  56,  56,  56,  56,  56,  56, 
        /* table 9 .. 15: 256 */
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,  70,   0,  70,  70,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0, 
         70,  68,  64,  68,  68,  68,  68,   4, 
         68,  68,  68,  68,  68,  68,  68,  68, 
        204, 204, 204, 204, 204, 204, 204, 204, 
        204, 204,  68,  68,  68,  68,  68,  16, 
         68,  76,  76,  76,  76,  76,  76,  68, 
         68,  68,  68,  68,  68,  68,  68,  68, 
         68,  68,  68,  68,  68,  68,  68,  68, 
         68,  68,  68,  68,  32,  68,  68,  68, 
         68,  76,  76,  76,  76,  76,  76,  68, 
         68,  68,  68,  68,  68,  68,  68,  68, 
         68,  68,  68,  68,  68,  68,  68,  68, 
         68,  68,  68,  68,  68,  68,  68,  68, 
         68,  68,  68,  68,  68,  68,  68,  68, 
         68,  68,  68,  68,  68,  68,  68,  68, 
         68,  68,  68,  68,  68,  68,  68,  68, 
         68,  68,  68,  68,  68,  68,  68,  68, 
         68,  68,  68,  68,  68,  68,  68,  68, 
         68,  68,  68,  68,  68,  68,  68,  68, 
         68,  68,  68,  68,  68,  68,  68,  68, 
         68,  68,  68,  68,  68,  68,  68,  68, 
         68,  68,  68,  68,  68,  68,  68,  68, 
         68,  68,  68,  68,  68,  68,  68,  68, 
         68,  68,  68,  68,  68,  68,  68,  68, 
         68,  68,  68,  68,  68,  68,  68,  68, 
         68,  68,  68,  68,  68,  68,  68,  68, 
         68,  68,  68,  68,  68,  68,  68,  68, 
         68,  68,  68,  68,  68,  68,  68,  68, 
         68,  68,  68,  68,  68,  68,  68,  68, 
    };

    if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12);
    yych = *YYCURSOR;
    switch (yych) {
    case 0x00:    goto yy69;
    case '\t':
    case '\v':
    case '\f':
    case ' ':    goto yy64;
    case '\n':    goto yy66;
    case '\r':    goto yy68;
    case '!':    goto yy45;
    case '"':    goto yy63;
    case '#':    goto yy15;
    case '%':    goto yy35;
    case '&':    goto yy39;
    case '\'':    goto yy62;
    case '(':    goto yy17;
    case ')':    goto yy19;
    case '*':    goto yy33;
    case '+':    goto yy29;
    case ',':    goto yy53;
    case '-':    goto yy31;
    case '.':    goto yy27;
    case '/':    goto yy2;
    case '0':    goto yy59;
    case '1':
    case '2':
    case '3':
    case '4':
    case '5':
    case '6':
    case '7':
    case '8':
    case '9':    goto yy61;
    case ':':    goto yy23;
    case ';':    goto yy21;
    case '<':    goto yy49;
    case '=':    goto yy47;
    case '>':    goto yy51;
    case '?':    goto yy25;
    case 'A':
    case 'B':
    case 'C':
    case 'D':
    case 'E':
    case 'G':
    case 'H':
    case 'I':
    case 'J':
    case 'K':
    case 'M':
    case 'N':
    case 'O':
    case 'P':
    case 'Q':
    case 'R':
    case 'S':
    case 'U':
    case 'V':
    case 'W':
    case 'X':
    case 'Y':
    case 'Z':
    case '_':
    case 'a':
    case 'b':
    case 'c':
    case 'd':
    case 'e':
    case 'f':
    case 'g':
    case 'h':
    case 'i':
    case 'j':
    case 'k':
    case 'l':
    case 'm':
    case 'n':
    case 'o':
    case 'p':
    case 'q':
    case 'r':
    case 's':
    case 't':
    case 'u':
    case 'v':
    case 'w':
    case 'x':
    case 'y':
    case 'z':    goto yy55;
    case 'F':    goto yy6;
    case 'L':    goto yy56;
    case 'T':    goto yy4;
    case '[':    goto yy11;
    case '\\':    goto yy57;
    case ']':    goto yy13;
    case '^':    goto yy37;
    case '{':    goto yy7;
    case '|':    goto yy41;
    case '}':    goto yy9;
    case '~':    goto yy43;
    default:    goto yy71;
    }
yy2:
    ++YYCURSOR;
    if ((yych = *YYCURSOR) == '*') goto yy356;
    if (yych == '/') goto yy354;
#line 44 "idl.re"
    { BOOST_WAVE_RET(T_DIVIDE); }
#line 190 "idl.inc"
yy4:
    yyaccept = 0;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'R') goto yy350;
    goto yy202;
yy5:
#line 67 "idl.re"
    { BOOST_WAVE_RET(T_IDENTIFIER); }
#line 199 "idl.inc"
yy6:
    yyaccept = 0;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'A') goto yy345;
    goto yy202;
yy7:
    ++YYCURSOR;
#line 29 "idl.re"
    { BOOST_WAVE_RET(T_LEFTBRACE); }
#line 209 "idl.inc"
yy9:
    ++YYCURSOR;
#line 30 "idl.re"
    { BOOST_WAVE_RET(T_RIGHTBRACE); }
#line 214 "idl.inc"
yy11:
    ++YYCURSOR;
#line 31 "idl.re"
    { BOOST_WAVE_RET(T_LEFTBRACKET); }
#line 219 "idl.inc"
yy13:
    ++YYCURSOR;
#line 32 "idl.re"
    { BOOST_WAVE_RET(T_RIGHTBRACKET); }
#line 224 "idl.inc"
yy15:
    yyaccept = 1;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= 'e') {
        if (yych <= '"') {
            if (yych <= '\t') {
                if (yych >= '\t') goto yy239;
            } else {
                if (yych == ' ') goto yy239;
            }
        } else {
            if (yych <= '.') {
                if (yych <= '#') goto yy343;
            } else {
                if (yych <= '/') goto yy239;
                if (yych >= 'd') goto yy239;
            }
        }
    } else {
        if (yych <= 'o') {
            if (yych <= 'i') {
                if (yych >= 'i') goto yy239;
            } else {
                if (yych == 'l') goto yy239;
            }
        } else {
            if (yych <= 'u') {
                if (yych <= 'p') goto yy239;
                if (yych >= 'u') goto yy239;
            } else {
                if (yych == 'w') goto yy239;
            }
        }
    }
yy16:
#line 33 "idl.re"
    { BOOST_WAVE_RET(T_POUND); }
#line 262 "idl.inc"
yy17:
    ++YYCURSOR;
#line 35 "idl.re"
    { BOOST_WAVE_RET(T_LEFTPAREN); }
#line 267 "idl.inc"
yy19:
    ++YYCURSOR;
#line 36 "idl.re"
    { BOOST_WAVE_RET(T_RIGHTPAREN); }
#line 272 "idl.inc"
yy21:
    ++YYCURSOR;
#line 37 "idl.re"
    { BOOST_WAVE_RET(T_SEMICOLON); }
#line 277 "idl.inc"
yy23:
    ++YYCURSOR;
#line 38 "idl.re"
    { BOOST_WAVE_RET(T_COLON); }
#line 282 "idl.inc"
yy25:
    yyaccept = 2;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == '?') goto yy341;
yy26:
#line 39 "idl.re"
    { BOOST_WAVE_RET(T_QUESTION_MARK); }
#line 290 "idl.inc"
yy27:
    ++YYCURSOR;
    if ((yych = *YYCURSOR) <= '/') goto yy28;
    if (yych <= '9') goto yy168;
yy28:
#line 40 "idl.re"
    { BOOST_WAVE_RET(T_DOT); }
#line 298 "idl.inc"
yy29:
    ++YYCURSOR;
    if ((yych = *YYCURSOR) == '+') goto yy339;
#line 41 "idl.re"
    { BOOST_WAVE_RET(T_PLUS); }
#line 304 "idl.inc"
yy31:
    ++YYCURSOR;
    if ((yych = *YYCURSOR) == '-') goto yy337;
#line 42 "idl.re"
    { BOOST_WAVE_RET(T_MINUS); }
#line 310 "idl.inc"
yy33:
    ++YYCURSOR;
#line 43 "idl.re"
    { BOOST_WAVE_RET(T_STAR); }
#line 315 "idl.inc"
yy35:
    yyaccept = 3;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == ':') goto yy238;
yy36:
#line 45 "idl.re"
    { BOOST_WAVE_RET(T_PERCENT); }
#line 323 "idl.inc"
yy37:
    ++YYCURSOR;
#line 46 "idl.re"
    { BOOST_WAVE_RET(T_XOR); }
#line 328 "idl.inc"
yy39:
    ++YYCURSOR;
    if ((yych = *YYCURSOR) == '&') goto yy236;
#line 47 "idl.re"
    { BOOST_WAVE_RET(T_AND); }
#line 334 "idl.inc"
yy41:
    ++YYCURSOR;
    if ((yych = *YYCURSOR) == '|') goto yy234;
#line 48 "idl.re"
    { BOOST_WAVE_RET(T_OR); }
#line 340 "idl.inc"
yy43:
    ++YYCURSOR;
#line 49 "idl.re"
    { BOOST_WAVE_RET(T_COMPL); }
#line 345 "idl.inc"
yy45:
    ++YYCURSOR;
    if ((yych = *YYCURSOR) == '=') goto yy232;
#line 50 "idl.re"
    { BOOST_WAVE_RET(T_NOT); }
#line 351 "idl.inc"
yy47:
    ++YYCURSOR;
    if ((yych = *YYCURSOR) == '=') goto yy230;
#line 51 "idl.re"
    { BOOST_WAVE_RET(T_ASSIGN); }
#line 357 "idl.inc"
yy49:
    ++YYCURSOR;
    if ((yych = *YYCURSOR) <= ';') goto yy50;
    if (yych <= '<') goto yy228;
    if (yych <= '=') goto yy226;
yy50:
#line 52 "idl.re"
    { BOOST_WAVE_RET(T_LESS); }
#line 366 "idl.inc"
yy51:
    ++YYCURSOR;
    if ((yych = *YYCURSOR) <= '<') goto yy52;
    if (yych <= '=') goto yy222;
    if (yych <= '>') goto yy224;
yy52:
#line 53 "idl.re"
    { BOOST_WAVE_RET(T_GREATER); }
#line 375 "idl.inc"
yy53:
    ++YYCURSOR;
#line 64 "idl.re"
    { BOOST_WAVE_RET(T_COMMA); }
#line 380 "idl.inc"
yy55:
    yyaccept = 0;
    yych = *(YYMARKER = ++YYCURSOR);
    goto yy202;
yy56:
    yyaccept = 0;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[0+yych] & 2) {
        goto yy201;
    }
    if (yych <= '\'') {
        if (yych == '"') goto yy75;
        if (yych <= '&') goto yy5;
        goto yy221;
    } else {
        if (yych <= '?') {
            if (yych <= '>') goto yy5;
            goto yy204;
        } else {
            if (yych == '\\') goto yy203;
            goto yy5;
        }
    }
yy57:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'U') goto yy193;
    if (yych == 'u') goto yy192;
yy58:
#line 134 "idl.re"
    {
        BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType));
    }
#line 414 "idl.inc"
yy59:
    yyaccept = 5;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[0+yych] & 1) {
        goto yy185;
    }
    if (yych <= 'U') {
        if (yych <= 'C') {
            if (yych <= '.') {
                if (yych >= '.') goto yy168;
            } else {
                if (yych <= '/') goto yy60;
                if (yych <= '9') goto yy187;
            }
        } else {
            if (yych <= 'K') {
                if (yych <= 'D') goto yy164;
                if (yych <= 'E') goto yy171;
            } else {
                if (yych <= 'L') goto yy173;
                if (yych >= 'U') goto yy172;
            }
        }
    } else {
        if (yych <= 'k') {
            if (yych <= 'c') {
                if (yych == 'X') goto yy189;
            } else {
                if (yych <= 'd') goto yy164;
                if (yych <= 'e') goto yy171;
            }
        } else {
            if (yych <= 'u') {
                if (yych <= 'l') goto yy173;
                if (yych >= 'u') goto yy172;
            } else {
                if (yych == 'x') goto yy189;
            }
        }
    }
yy60:
#line 70 "idl.re"
    { BOOST_WAVE_RET(T_INTLIT); }
#line 458 "idl.inc"
yy61:
    yyaccept = 5;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[256+yych] & 128) {
        goto yy166;
    }
    if (yych <= 'T') {
        if (yych <= 'D') {
            if (yych == '.') goto yy168;
            if (yych <= 'C') goto yy60;
            goto yy164;
        } else {
            if (yych <= 'E') goto yy171;
            if (yych == 'L') goto yy173;
            goto yy60;
        }
    } else {
        if (yych <= 'e') {
            if (yych <= 'U') goto yy172;
            if (yych <= 'c') goto yy60;
            if (yych <= 'd') goto yy164;
            goto yy171;
        } else {
            if (yych <= 'l') {
                if (yych <= 'k') goto yy60;
                goto yy173;
            } else {
                if (yych == 'u') goto yy172;
                goto yy60;
            }
        }
    }
yy62:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= '\f') {
        if (yych == '\t') goto yy121;
        if (yych <= '\n') goto yy58;
        goto yy121;
    } else {
        if (yych <= 0x1F) goto yy58;
        if (yych == '\'') goto yy58;
        goto yy121;
    }
yy63:
    yyaccept = 4;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych <= '\n') {
        if (yych == '\t') goto yy76;
        goto yy58;
    } else {
        if (yych <= '\f') goto yy76;
        if (yych <= 0x1F) goto yy58;
        goto yy76;
    }
yy64:
    ++YYCURSOR;
    yych = *YYCURSOR;
    goto yy74;
yy65:
#line 109 "idl.re"
    { BOOST_WAVE_RET(T_SPACE); }
#line 521 "idl.inc"
yy66:
    ++YYCURSOR;
yy67:
#line 112 "idl.re"
    {
        s->line++;
        BOOST_WAVE_RET(T_NEWLINE);
    }
#line 530 "idl.inc"
yy68:
    yych = *++YYCURSOR;
    if (yych == '\n') goto yy72;
    goto yy67;
yy69:
    ++YYCURSOR;
#line 118 "idl.re"
    {
        if(cursor != s->eof) 
        {
            using namespace std;      // some systems have printf in std
            if (0 != s->error_proc) {
                (*s->error_proc)(s, 
                    cpplexer::lexing_exception::generic_lexing_error,
                    "'\\000' in input stream");
            }
            else
                printf("Error: 0 in file\n");
        }
        BOOST_WAVE_RET(T_EOF);
    }
#line 552 "idl.inc"
yy71:
    yych = *++YYCURSOR;
    goto yy58;
yy72:
    yych = *++YYCURSOR;
    goto yy67;
yy73:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
yy74:
    if (yybm[256+yych] & 2) {
        goto yy73;
    }
    goto yy65;
yy75:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
yy76:
    if (yybm[256+yych] & 4) {
        goto yy75;
    }
    if (yych <= '!') goto yy77;
    if (yych <= '"') goto yy80;
    if (yych <= '[') goto yy78;
    goto yy79;
yy77:
    YYCURSOR = YYMARKER;
    if (yyaccept <= 6) {
        if (yyaccept <= 3) {
            if (yyaccept <= 1) {
                if (yyaccept <= 0) {
                    goto yy5;
                } else {
                    goto yy16;
                }
            } else {
                if (yyaccept <= 2) {
                    goto yy26;
                } else {
                    goto yy36;
                }
            }
        } else {
            if (yyaccept <= 5) {
                if (yyaccept <= 4) {
                    goto yy58;
                } else {
                    goto yy60;
                }
            } else {
                goto yy81;
            }
        }
    } else {
        if (yyaccept <= 9) {
            if (yyaccept <= 8) {
                if (yyaccept <= 7) {
                    goto yy131;
                } else {
                    goto yy170;
                }
            } else {
                goto yy294;
            }
        } else {
            if (yyaccept <= 11) {
                if (yyaccept <= 10) {
                    goto yy302;
                } else {
                    goto yy349;
                }
            } else {
                goto yy353;
            }
        }
    }
yy78:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[256+yych] & 4) {
        goto yy75;
    }
    if (yych <= '!') goto yy77;
    if (yych <= '"') goto yy80;
    if (yych <= '[') goto yy91;
yy79:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '`') {
        if (yych <= '7') {
            if (yych <= '&') {
                if (yych == '"') goto yy75;
                goto yy77;
            } else {
                if (yych <= '\'') goto yy75;
                if (yych <= '/') goto yy77;
                goto yy86;
            }
        } else {
            if (yych <= 'T') {
                if (yych == '?') goto yy84;
                goto yy77;
            } else {
                if (yych <= 'U') goto yy83;
                if (yych == '\\') goto yy75;
                goto yy77;
            }
        }
    } else {
        if (yych <= 'r') {
            if (yych <= 'f') {
                if (yych <= 'b') goto yy75;
                if (yych <= 'e') goto yy77;
                goto yy75;
            } else {
                if (yych == 'n') goto yy75;
                if (yych <= 'q') goto yy77;
                goto yy75;
            }
        } else {
            if (yych <= 'u') {
                if (yych <= 's') goto yy77;
                if (yych <= 't') goto yy75;
                goto yy82;
            } else {
                if (yych <= 'v') goto yy75;
                if (yych == 'x') goto yy85;
                goto yy77;
            }
        }
    }
yy80:
    ++YYCURSOR;
yy81:
#line 82 "idl.re"
    { BOOST_WAVE_RET(T_STRINGLIT); }
#line 693 "idl.inc"
yy82:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych <= '9') goto yy117;
        goto yy77;
    } else {
        if (yych <= 'F') goto yy117;
        if (yych <= '`') goto yy77;
        if (yych <= 'f') goto yy117;
        goto yy77;
    }
yy83:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych <= '9') goto yy110;
        goto yy77;
    } else {
        if (yych <= 'F') goto yy110;
        if (yych <= '`') goto yy77;
        if (yych <= 'f') goto yy110;
        goto yy77;
    }
yy84:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[256+yych] & 4) {
        goto yy75;
    }
    if (yych <= '!') goto yy77;
    if (yych <= '"') goto yy80;
    if (yych <= '[') goto yy90;
    goto yy79;
yy85:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[256+yych] & 8) {
        goto yy88;
    }
    goto yy77;
yy86:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '"') {
        if (yych <= '\n') {
            if (yych == '\t') goto yy75;
            goto yy77;
        } else {
            if (yych <= '\f') goto yy75;
            if (yych <= 0x1F) goto yy77;
            if (yych <= '!') goto yy75;
            goto yy80;
        }
    } else {
        if (yych <= '>') {
            if (yych <= '/') goto yy75;
            if (yych >= '8') goto yy75;
        } else {
            if (yych <= '?') goto yy78;
            if (yych == '\\') goto yy79;
            goto yy75;
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[256+yych] & 4) {
        goto yy75;
    }
    if (yych <= '!') goto yy77;
    if (yych <= '"') goto yy80;
    if (yych <= '[') goto yy78;
    goto yy79;
yy88:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[256+yych] & 8) {
        goto yy88;
    }
    if (yych <= '!') {
        if (yych <= '\n') {
            if (yych == '\t') goto yy75;
            goto yy77;
        } else {
            if (yych <= '\f') goto yy75;
            if (yych <= 0x1F) goto yy77;
            goto yy75;
        }
    } else {
        if (yych <= '?') {
            if (yych <= '"') goto yy80;
            if (yych <= '>') goto yy75;
            goto yy78;
        } else {
            if (yych == '\\') goto yy79;
            goto yy75;
        }
    }
yy90:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[256+yych] & 4) {
        goto yy75;
    }
    if (yych <= '!') goto yy77;
    if (yych <= '"') goto yy80;
    if (yych >= '\\') goto yy79;
yy91:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[256+yych] & 16) {
        goto yy91;
    }
    if (yych <= '!') {
        if (yych <= '\n') {
            if (yych == '\t') goto yy75;
            goto yy77;
        } else {
            if (yych <= '\f') goto yy75;
            if (yych <= 0x1F) goto yy77;
            goto yy75;
        }
    } else {
        if (yych <= '/') {
            if (yych <= '"') goto yy80;
            if (yych <= '.') goto yy75;
        } else {
            if (yych == '\\') goto yy79;
            goto yy75;
        }
    }
yy93:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[256+yych] & 32) {
        goto yy93;
    }
    if (yych <= '7') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy75;
            if (yych <= '\n') goto yy77;
            goto yy75;
        } else {
            if (yych <= '!') {
                if (yych <= 0x1F) goto yy77;
                goto yy75;
            } else {
                if (yych <= '"') goto yy97;
                if (yych <= '/') goto yy75;
                goto yy86;
            }
        }
    } else {
        if (yych <= 'U') {
            if (yych == '?') goto yy98;
            if (yych <= 'T') goto yy75;
            goto yy96;
        } else {
            if (yych <= 'u') {
                if (yych <= 't') goto yy75;
            } else {
                if (yych == 'x') goto yy88;
                goto yy75;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy75;
            if (yych <= '\n') goto yy77;
            goto yy75;
        } else {
            if (yych <= '!') {
                if (yych <= 0x1F) goto yy77;
                goto yy75;
            } else {
                if (yych <= '"') goto yy80;
                if (yych <= '/') goto yy75;
                goto yy107;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy78;
            if (yych <= '@') goto yy75;
            goto yy107;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy75;
                goto yy79;
            } else {
                if (yych <= '`') goto yy75;
                if (yych <= 'f') goto yy107;
                goto yy75;
            }
        }
    }
yy96:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy75;
            if (yych <= '\n') goto yy77;
            goto yy75;
        } else {
            if (yych <= '!') {
                if (yych <= 0x1F) goto yy77;
                goto yy75;
            } else {
                if (yych <= '"') goto yy80;
                if (yych <= '/') goto yy75;
                goto yy100;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy78;
            if (yych <= '@') goto yy75;
            goto yy100;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy75;
                goto yy79;
            } else {
                if (yych <= '`') goto yy75;
                if (yych <= 'f') goto yy100;
                goto yy75;
            }
        }
    }
yy97:
    yyaccept = 6;
    YYMARKER = ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[256+yych] & 4) {
        goto yy75;
    }
    if (yych <= '!') goto yy81;
    if (yych <= '"') goto yy80;
    if (yych <= '[') goto yy78;
    goto yy79;
yy98:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[256+yych] & 4) {
        goto yy75;
    }
    if (yych <= '!') goto yy77;
    if (yych <= '"') goto yy80;
    if (yych >= '\\') goto yy79;
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[256+yych] & 16) {
        goto yy91;
    }
    if (yych <= '!') {
        if (yych <= '\n') {
            if (yych == '\t') goto yy75;
            goto yy77;
        } else {
            if (yych <= '\f') goto yy75;
            if (yych <= 0x1F) goto yy77;
            goto yy75;
        }
    } else {
        if (yych <= '/') {
            if (yych <= '"') goto yy80;
            if (yych <= '.') goto yy75;
            goto yy93;
        } else {
            if (yych == '\\') goto yy79;
            goto yy75;
        }
    }
yy100:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy75;
            if (yych <= '\n') goto yy77;
            goto yy75;
        } else {
            if (yych <= '!') {
                if (yych <= 0x1F) goto yy77;
                goto yy75;
            } else {
                if (yych <= '"') goto yy80;
                if (yych <= '/') goto yy75;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy78;
            if (yych <= '@') goto yy75;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy75;
                goto yy79;
            } else {
                if (yych <= '`') goto yy75;
                if (yych >= 'g') goto yy75;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy75;
            if (yych <= '\n') goto yy77;
            goto yy75;
        } else {
            if (yych <= '!') {
                if (yych <= 0x1F) goto yy77;
                goto yy75;
            } else {
                if (yych <= '"') goto yy80;
                if (yych <= '/') goto yy75;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy78;
            if (yych <= '@') goto yy75;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy75;
                goto yy79;
            } else {
                if (yych <= '`') goto yy75;
                if (yych >= 'g') goto yy75;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy75;
            if (yych <= '\n') goto yy77;
            goto yy75;
        } else {
            if (yych <= '!') {
                if (yych <= 0x1F) goto yy77;
                goto yy75;
            } else {
                if (yych <= '"') goto yy80;
                if (yych <= '/') goto yy75;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy78;
            if (yych <= '@') goto yy75;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy75;
                goto yy79;
            } else {
                if (yych <= '`') goto yy75;
                if (yych >= 'g') goto yy75;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy75;
            if (yych <= '\n') goto yy77;
            goto yy75;
        } else {
            if (yych <= '!') {
                if (yych <= 0x1F) goto yy77;
                goto yy75;
            } else {
                if (yych <= '"') goto yy80;
                if (yych <= '/') goto yy75;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy78;
            if (yych <= '@') goto yy75;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy75;
                goto yy79;
            } else {
                if (yych <= '`') goto yy75;
                if (yych >= 'g') goto yy75;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy75;
            if (yych <= '\n') goto yy77;
            goto yy75;
        } else {
            if (yych <= '!') {
                if (yych <= 0x1F) goto yy77;
                goto yy75;
            } else {
                if (yych <= '"') goto yy80;
                if (yych <= '/') goto yy75;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy78;
            if (yych <= '@') goto yy75;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy75;
                goto yy79;
            } else {
                if (yych <= '`') goto yy75;
                if (yych >= 'g') goto yy75;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy75;
            if (yych <= '\n') goto yy77;
            goto yy75;
        } else {
            if (yych <= '!') {
                if (yych <= 0x1F) goto yy77;
                goto yy75;
            } else {
                if (yych <= '"') goto yy80;
                if (yych <= '/') goto yy75;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy78;
            if (yych <= '@') goto yy75;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy75;
                goto yy79;
            } else {
                if (yych <= '`') goto yy75;
                if (yych >= 'g') goto yy75;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[256+yych] & 4) {
        goto yy75;
    }
    if (yych <= '!') goto yy77;
    if (yych <= '"') goto yy80;
    if (yych <= '[') goto yy78;
    goto yy79;
yy107:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy75;
            if (yych <= '\n') goto yy77;
            goto yy75;
        } else {
            if (yych <= '!') {
                if (yych <= 0x1F) goto yy77;
                goto yy75;
            } else {
                if (yych <= '"') goto yy80;
                if (yych <= '/') goto yy75;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy78;
            if (yych <= '@') goto yy75;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy75;
                goto yy79;
            } else {
                if (yych <= '`') goto yy75;
                if (yych >= 'g') goto yy75;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy75;
            if (yych <= '\n') goto yy77;
            goto yy75;
        } else {
            if (yych <= '!') {
                if (yych <= 0x1F) goto yy77;
                goto yy75;
            } else {
                if (yych <= '"') goto yy80;
                if (yych <= '/') goto yy75;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy78;
            if (yych <= '@') goto yy75;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy75;
                goto yy79;
            } else {
                if (yych <= '`') goto yy75;
                if (yych >= 'g') goto yy75;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[256+yych] & 4) {
        goto yy75;
    }
    if (yych <= '!') goto yy77;
    if (yych <= '"') goto yy80;
    if (yych <= '[') goto yy78;
    goto yy79;
yy110:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy111;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy111:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy112;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy112:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy113;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy113:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy114;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy114:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy115;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy115:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy116;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy116:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych <= '9') goto yy75;
        goto yy77;
    } else {
        if (yych <= 'F') goto yy75;
        if (yych <= '`') goto yy77;
        if (yych <= 'f') goto yy75;
        goto yy77;
    }
yy117:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy118;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy118:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy119;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy119:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych <= '9') goto yy75;
        goto yy77;
    } else {
        if (yych <= 'F') goto yy75;
        if (yych <= '`') goto yy77;
        if (yych <= 'f') goto yy75;
        goto yy77;
    }
yy120:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
yy121:
    if (yybm[256+yych] & 64) {
        goto yy120;
    }
    if (yych <= '&') goto yy77;
    if (yych <= '\'') goto yy130;
    if (yych >= '\\') goto yy123;
yy122:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[256+yych] & 64) {
        goto yy120;
    }
    if (yych <= '&') goto yy77;
    if (yych <= '\'') goto yy130;
    if (yych <= '[') goto yy135;
yy123:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '`') {
        if (yych <= '7') {
            if (yych <= '&') {
                if (yych == '"') goto yy120;
                goto yy77;
            } else {
                if (yych <= '\'') goto yy120;
                if (yych <= '/') goto yy77;
                goto yy128;
            }
        } else {
            if (yych <= 'T') {
                if (yych == '?') goto yy126;
                goto yy77;
            } else {
                if (yych <= 'U') goto yy125;
                if (yych == '\\') goto yy120;
                goto yy77;
            }
        }
    } else {
        if (yych <= 'r') {
            if (yych <= 'f') {
                if (yych <= 'b') goto yy120;
                if (yych <= 'e') goto yy77;
                goto yy120;
            } else {
                if (yych == 'n') goto yy120;
                if (yych <= 'q') goto yy77;
                goto yy120;
            }
        } else {
            if (yych <= 'u') {
                if (yych <= 's') goto yy77;
                if (yych <= 't') goto yy120;
            } else {
                if (yych <= 'v') goto yy120;
                if (yych == 'x') goto yy127;
                goto yy77;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych <= '9') goto yy161;
        goto yy77;
    } else {
        if (yych <= 'F') goto yy161;
        if (yych <= '`') goto yy77;
        if (yych <= 'f') goto yy161;
        goto yy77;
    }
yy125:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych <= '9') goto yy154;
        goto yy77;
    } else {
        if (yych <= 'F') goto yy154;
        if (yych <= '`') goto yy77;
        if (yych <= 'f') goto yy154;
        goto yy77;
    }
yy126:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[256+yych] & 64) {
        goto yy120;
    }
    if (yych <= '&') goto yy77;
    if (yych <= '\'') goto yy130;
    if (yych <= '[') goto yy134;
    goto yy123;
yy127:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych <= '9') goto yy132;
        goto yy77;
    } else {
        if (yych <= 'F') goto yy132;
        if (yych <= '`') goto yy77;
        if (yych <= 'f') goto yy132;
        goto yy77;
    }
yy128:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '\'') {
        if (yych <= '\n') {
            if (yych == '\t') goto yy120;
            goto yy77;
        } else {
            if (yych <= '\f') goto yy120;
            if (yych <= 0x1F) goto yy77;
            if (yych <= '&') goto yy120;
            goto yy130;
        }
    } else {
        if (yych <= '>') {
            if (yych <= '/') goto yy120;
            if (yych >= '8') goto yy120;
        } else {
            if (yych <= '?') goto yy122;
            if (yych == '\\') goto yy123;
            goto yy120;
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[256+yych] & 64) {
        goto yy120;
    }
    if (yych <= '&') goto yy77;
    if (yych <= '\'') goto yy130;
    if (yych <= '[') goto yy122;
    goto yy123;
yy130:
    ++YYCURSOR;
yy131:
#line 79 "idl.re"
    { BOOST_WAVE_RET(T_CHARLIT); }
#line 1540 "idl.inc"
yy132:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy120;
            if (yych <= '\n') goto yy77;
            goto yy120;
        } else {
            if (yych <= '&') {
                if (yych <= 0x1F) goto yy77;
                goto yy120;
            } else {
                if (yych <= '\'') goto yy130;
                if (yych <= '/') goto yy120;
                goto yy132;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy122;
            if (yych <= '@') goto yy120;
            goto yy132;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy120;
                goto yy123;
            } else {
                if (yych <= '`') goto yy120;
                if (yych <= 'f') goto yy132;
                goto yy120;
            }
        }
    }
yy134:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[256+yych] & 64) {
        goto yy120;
    }
    if (yych <= '&') goto yy77;
    if (yych <= '\'') goto yy130;
    if (yych >= '\\') goto yy123;
yy135:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '\'') {
        if (yych <= '\n') {
            if (yych == '\t') goto yy120;
            goto yy77;
        } else {
            if (yych <= '\f') goto yy120;
            if (yych <= 0x1F) goto yy77;
            if (yych <= '&') goto yy120;
            goto yy130;
        }
    } else {
        if (yych <= '>') {
            if (yych != '/') goto yy120;
        } else {
            if (yych <= '?') goto yy135;
            if (yych == '\\') goto yy123;
            goto yy120;
        }
    }
yy137:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '>') {
        if (yych <= 0x1F) {
            if (yych <= '\t') {
                if (yych <= 0x08) goto yy77;
                goto yy120;
            } else {
                if (yych <= '\n') goto yy77;
                if (yych <= '\f') goto yy120;
                goto yy77;
            }
        } else {
            if (yych <= '\'') {
                if (yych <= '&') goto yy120;
                goto yy141;
            } else {
                if (yych <= '/') goto yy120;
                if (yych <= '7') goto yy128;
                goto yy120;
            }
        }
    } else {
        if (yych <= '\\') {
            if (yych <= 'T') {
                if (yych <= '?') goto yy142;
                goto yy120;
            } else {
                if (yych <= 'U') goto yy140;
                if (yych <= '[') goto yy120;
                goto yy137;
            }
        } else {
            if (yych <= 'u') {
                if (yych <= 't') goto yy120;
            } else {
                if (yych == 'x') goto yy132;
                goto yy120;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy120;
            if (yych <= '\n') goto yy77;
            goto yy120;
        } else {
            if (yych <= '&') {
                if (yych <= 0x1F) goto yy77;
                goto yy120;
            } else {
                if (yych <= '\'') goto yy130;
                if (yych <= '/') goto yy120;
                goto yy151;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy122;
            if (yych <= '@') goto yy120;
            goto yy151;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy120;
                goto yy123;
            } else {
                if (yych <= '`') goto yy120;
                if (yych <= 'f') goto yy151;
                goto yy120;
            }
        }
    }
yy140:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy120;
            if (yych <= '\n') goto yy77;
            goto yy120;
        } else {
            if (yych <= '&') {
                if (yych <= 0x1F) goto yy77;
                goto yy120;
            } else {
                if (yych <= '\'') goto yy130;
                if (yych <= '/') goto yy120;
                goto yy144;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy122;
            if (yych <= '@') goto yy120;
            goto yy144;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy120;
                goto yy123;
            } else {
                if (yych <= '`') goto yy120;
                if (yych <= 'f') goto yy144;
                goto yy120;
            }
        }
    }
yy141:
    yyaccept = 7;
    YYMARKER = ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[256+yych] & 64) {
        goto yy120;
    }
    if (yych <= '&') goto yy131;
    if (yych <= '\'') goto yy130;
    if (yych <= '[') goto yy122;
    goto yy123;
yy142:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[256+yych] & 64) {
        goto yy120;
    }
    if (yych <= '&') goto yy77;
    if (yych <= '\'') goto yy130;
    if (yych >= '\\') goto yy123;
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '\'') {
        if (yych <= '\n') {
            if (yych == '\t') goto yy120;
            goto yy77;
        } else {
            if (yych <= '\f') goto yy120;
            if (yych <= 0x1F) goto yy77;
            if (yych <= '&') goto yy120;
            goto yy130;
        }
    } else {
        if (yych <= '>') {
            if (yych == '/') goto yy137;
            goto yy120;
        } else {
            if (yych <= '?') goto yy135;
            if (yych == '\\') goto yy123;
            goto yy120;
        }
    }
yy144:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy120;
            if (yych <= '\n') goto yy77;
            goto yy120;
        } else {
            if (yych <= '&') {
                if (yych <= 0x1F) goto yy77;
                goto yy120;
            } else {
                if (yych <= '\'') goto yy130;
                if (yych <= '/') goto yy120;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy122;
            if (yych <= '@') goto yy120;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy120;
                goto yy123;
            } else {
                if (yych <= '`') goto yy120;
                if (yych >= 'g') goto yy120;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy120;
            if (yych <= '\n') goto yy77;
            goto yy120;
        } else {
            if (yych <= '&') {
                if (yych <= 0x1F) goto yy77;
                goto yy120;
            } else {
                if (yych <= '\'') goto yy130;
                if (yych <= '/') goto yy120;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy122;
            if (yych <= '@') goto yy120;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy120;
                goto yy123;
            } else {
                if (yych <= '`') goto yy120;
                if (yych >= 'g') goto yy120;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy120;
            if (yych <= '\n') goto yy77;
            goto yy120;
        } else {
            if (yych <= '&') {
                if (yych <= 0x1F) goto yy77;
                goto yy120;
            } else {
                if (yych <= '\'') goto yy130;
                if (yych <= '/') goto yy120;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy122;
            if (yych <= '@') goto yy120;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy120;
                goto yy123;
            } else {
                if (yych <= '`') goto yy120;
                if (yych >= 'g') goto yy120;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy120;
            if (yych <= '\n') goto yy77;
            goto yy120;
        } else {
            if (yych <= '&') {
                if (yych <= 0x1F) goto yy77;
                goto yy120;
            } else {
                if (yych <= '\'') goto yy130;
                if (yych <= '/') goto yy120;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy122;
            if (yych <= '@') goto yy120;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy120;
                goto yy123;
            } else {
                if (yych <= '`') goto yy120;
                if (yych >= 'g') goto yy120;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy120;
            if (yych <= '\n') goto yy77;
            goto yy120;
        } else {
            if (yych <= '&') {
                if (yych <= 0x1F) goto yy77;
                goto yy120;
            } else {
                if (yych <= '\'') goto yy130;
                if (yych <= '/') goto yy120;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy122;
            if (yych <= '@') goto yy120;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy120;
                goto yy123;
            } else {
                if (yych <= '`') goto yy120;
                if (yych >= 'g') goto yy120;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy120;
            if (yych <= '\n') goto yy77;
            goto yy120;
        } else {
            if (yych <= '&') {
                if (yych <= 0x1F) goto yy77;
                goto yy120;
            } else {
                if (yych <= '\'') goto yy130;
                if (yych <= '/') goto yy120;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy122;
            if (yych <= '@') goto yy120;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy120;
                goto yy123;
            } else {
                if (yych <= '`') goto yy120;
                if (yych >= 'g') goto yy120;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[256+yych] & 64) {
        goto yy120;
    }
    if (yych <= '&') goto yy77;
    if (yych <= '\'') goto yy130;
    if (yych <= '[') goto yy122;
    goto yy123;
yy151:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy120;
            if (yych <= '\n') goto yy77;
            goto yy120;
        } else {
            if (yych <= '&') {
                if (yych <= 0x1F) goto yy77;
                goto yy120;
            } else {
                if (yych <= '\'') goto yy130;
                if (yych <= '/') goto yy120;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy122;
            if (yych <= '@') goto yy120;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy120;
                goto yy123;
            } else {
                if (yych <= '`') goto yy120;
                if (yych >= 'g') goto yy120;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '9') {
        if (yych <= '\f') {
            if (yych == '\t') goto yy120;
            if (yych <= '\n') goto yy77;
            goto yy120;
        } else {
            if (yych <= '&') {
                if (yych <= 0x1F) goto yy77;
                goto yy120;
            } else {
                if (yych <= '\'') goto yy130;
                if (yych <= '/') goto yy120;
            }
        }
    } else {
        if (yych <= 'F') {
            if (yych == '?') goto yy122;
            if (yych <= '@') goto yy120;
        } else {
            if (yych <= '\\') {
                if (yych <= '[') goto yy120;
                goto yy123;
            } else {
                if (yych <= '`') goto yy120;
                if (yych >= 'g') goto yy120;
            }
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[256+yych] & 64) {
        goto yy120;
    }
    if (yych <= '&') goto yy77;
    if (yych <= '\'') goto yy130;
    if (yych <= '[') goto yy122;
    goto yy123;
yy154:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy155;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy155:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy156;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy156:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy157;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy157:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy158;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy158:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy159;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy159:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy160;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy160:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych <= '9') goto yy120;
        goto yy77;
    } else {
        if (yych <= 'F') goto yy120;
        if (yych <= '`') goto yy77;
        if (yych <= 'f') goto yy120;
        goto yy77;
    }
yy161:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy162;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy162:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy163;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy163:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych <= '9') goto yy120;
        goto yy77;
    } else {
        if (yych <= 'F') goto yy120;
        if (yych <= '`') goto yy77;
        if (yych <= 'f') goto yy120;
        goto yy77;
    }
yy164:
    ++YYCURSOR;
#line 76 "idl.re"
    { BOOST_WAVE_RET(T_FIXEDPOINTLIT); }
#line 2164 "idl.inc"
yy166:
    yyaccept = 5;
    YYMARKER = ++YYCURSOR;
    if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
    yych = *YYCURSOR;
    if (yybm[256+yych] & 128) {
        goto yy166;
    }
    if (yych <= 'T') {
        if (yych <= 'D') {
            if (yych == '.') goto yy168;
            if (yych <= 'C') goto yy60;
            goto yy164;
        } else {
            if (yych <= 'E') goto yy171;
            if (yych == 'L') goto yy173;
            goto yy60;
        }
    } else {
        if (yych <= 'e') {
            if (yych <= 'U') goto yy172;
            if (yych <= 'c') goto yy60;
            if (yych <= 'd') goto yy164;
            goto yy171;
        } else {
            if (yych <= 'l') {
                if (yych <= 'k') goto yy60;
                goto yy173;
            } else {
                if (yych == 'u') goto yy172;
                goto yy60;
            }
        }
    }
yy168:
    yyaccept = 8;
    YYMARKER = ++YYCURSOR;
    if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
    yych = *YYCURSOR;
    if (yych <= 'K') {
        if (yych <= 'C') {
            if (yych <= '/') goto yy170;
            if (yych <= '9') goto yy168;
        } else {
            if (yych <= 'D') goto yy164;
            if (yych <= 'E') goto yy181;
            if (yych <= 'F') goto yy178;
        }
    } else {
        if (yych <= 'e') {
            if (yych <= 'L') goto yy179;
            if (yych <= 'c') goto yy170;
            if (yych <= 'd') goto yy164;
            goto yy181;
        } else {
            if (yych <= 'f') goto yy178;
            if (yych == 'l') goto yy179;
        }
    }
yy170:
#line 73 "idl.re"
    { BOOST_WAVE_RET(T_FLOATLIT); }
#line 2227 "idl.inc"
yy171:
    yych = *++YYCURSOR;
    if (yych <= ',') {
        if (yych == '+') goto yy175;
        goto yy77;
    } else {
        if (yych <= '-') goto yy175;
        if (yych <= '/') goto yy77;
        if (yych <= '9') goto yy176;
        goto yy77;
    }
yy172:
    yych = *++YYCURSOR;
    if (yych == 'L') goto yy174;
    if (yych == 'l') goto yy174;
    goto yy60;
yy173:
    yych = *++YYCURSOR;
    if (yych == 'U') goto yy174;
    if (yych != 'u') goto yy60;
yy174:
    yych = *++YYCURSOR;
    goto yy60;
yy175:
    yych = *++YYCURSOR;
    if (yych <= '/') goto yy77;
    if (yych >= ':') goto yy77;
yy176:
    ++YYCURSOR;
    if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
    yych = *YYCURSOR;
    if (yych <= 'K') {
        if (yych <= '9') {
            if (yych <= '/') goto yy170;
            goto yy176;
        } else {
            if (yych != 'F') goto yy170;
        }
    } else {
        if (yych <= 'f') {
            if (yych <= 'L') goto yy179;
            if (yych <= 'e') goto yy170;
        } else {
            if (yych == 'l') goto yy179;
            goto yy170;
        }
    }
yy178:
    yych = *++YYCURSOR;
    if (yych == 'L') goto yy180;
    if (yych == 'l') goto yy180;
    goto yy170;
yy179:
    yych = *++YYCURSOR;
    if (yych == 'F') goto yy180;
    if (yych != 'f') goto yy170;
yy180:
    yych = *++YYCURSOR;
    goto yy170;
yy181:
    yych = *++YYCURSOR;
    if (yych <= ',') {
        if (yych != '+') goto yy77;
    } else {
        if (yych <= '-') goto yy182;
        if (yych <= '/') goto yy77;
        if (yych <= '9') goto yy183;
        goto yy77;
    }
yy182:
    yych = *++YYCURSOR;
    if (yych <= '/') goto yy77;
    if (yych >= ':') goto yy77;
yy183:
    ++YYCURSOR;
    if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
    yych = *YYCURSOR;
    if (yych <= 'K') {
        if (yych <= '9') {
            if (yych <= '/') goto yy170;
            goto yy183;
        } else {
            if (yych == 'F') goto yy178;
            goto yy170;
        }
    } else {
        if (yych <= 'f') {
            if (yych <= 'L') goto yy179;
            if (yych <= 'e') goto yy170;
            goto yy178;
        } else {
            if (yych == 'l') goto yy179;
            goto yy170;
        }
    }
yy185:
    yyaccept = 5;
    YYMARKER = ++YYCURSOR;
    if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 1) {
        goto yy185;
    }
    if (yych <= 'L') {
        if (yych <= '9') {
            if (yych == '.') goto yy168;
            if (yych <= '/') goto yy60;
        } else {
            if (yych <= 'D') {
                if (yych <= 'C') goto yy60;
                goto yy164;
            } else {
                if (yych <= 'E') goto yy171;
                if (yych <= 'K') goto yy60;
                goto yy173;
            }
        }
    } else {
        if (yych <= 'e') {
            if (yych <= 'U') {
                if (yych <= 'T') goto yy60;
                goto yy172;
            } else {
                if (yych <= 'c') goto yy60;
                if (yych <= 'd') goto yy164;
                goto yy171;
            }
        } else {
            if (yych <= 'l') {
                if (yych <= 'k') goto yy60;
                goto yy173;
            } else {
                if (yych == 'u') goto yy172;
                goto yy60;
            }
        }
    }
yy187:
    ++YYCURSOR;
    if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
    yych = *YYCURSOR;
    if (yych <= 'C') {
        if (yych <= '.') {
            if (yych <= '-') goto yy77;
            goto yy168;
        } else {
            if (yych <= '/') goto yy77;
            if (yych <= '9') goto yy187;
            goto yy77;
        }
    } else {
        if (yych <= 'c') {
            if (yych <= 'D') goto yy164;
            if (yych <= 'E') goto yy171;
            goto yy77;
        } else {
            if (yych <= 'd') goto yy164;
            if (yych <= 'e') goto yy171;
            goto yy77;
        }
    }
yy189:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy190;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy190:
    ++YYCURSOR;
    if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
    yych = *YYCURSOR;
    if (yych <= 'T') {
        if (yych <= '@') {
            if (yych <= '/') goto yy60;
            if (yych <= '9') goto yy190;
            goto yy60;
        } else {
            if (yych <= 'F') goto yy190;
            if (yych == 'L') goto yy173;
            goto yy60;
        }
    } else {
        if (yych <= 'k') {
            if (yych <= 'U') goto yy172;
            if (yych <= '`') goto yy60;
            if (yych <= 'f') goto yy190;
            goto yy60;
        } else {
            if (yych <= 'l') goto yy173;
            if (yych == 'u') goto yy172;
            goto yy60;
        }
    }
yy192:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych <= '9') goto yy218;
        goto yy77;
    } else {
        if (yych <= 'F') goto yy218;
        if (yych <= '`') goto yy77;
        if (yych <= 'f') goto yy218;
        goto yy77;
    }
yy193:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy194;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy194:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy195;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy195:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy196;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy196:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy197;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy197:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy198;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy198:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy199;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy199:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy200;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy200:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy201;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy201:
    yyaccept = 0;
    YYMARKER = ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
yy202:
    if (yybm[0+yych] & 2) {
        goto yy201;
    }
    if (yych == '?') goto yy204;
    if (yych != '\\') goto yy5;
yy203:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych == 'U') goto yy207;
    if (yych == 'u') goto yy206;
    goto yy77;
yy204:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych != '?') goto yy77;
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych == '/') goto yy203;
    goto yy77;
yy206:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych <= '9') goto yy215;
        goto yy77;
    } else {
        if (yych <= 'F') goto yy215;
        if (yych <= '`') goto yy77;
        if (yych <= 'f') goto yy215;
        goto yy77;
    }
yy207:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy208;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy208:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy209;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy209:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy210;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy210:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy211;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy211:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy212;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy212:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy213;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy213:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy214;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy214:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych <= '9') goto yy201;
        goto yy77;
    } else {
        if (yych <= 'F') goto yy201;
        if (yych <= '`') goto yy77;
        if (yych <= 'f') goto yy201;
        goto yy77;
    }
yy215:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy216;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy216:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy217;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy217:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych <= '9') goto yy201;
        goto yy77;
    } else {
        if (yych <= 'F') goto yy201;
        if (yych <= '`') goto yy77;
        if (yych <= 'f') goto yy201;
        goto yy77;
    }
yy218:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy219;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy219:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych >= ':') goto yy77;
    } else {
        if (yych <= 'F') goto yy220;
        if (yych <= '`') goto yy77;
        if (yych >= 'g') goto yy77;
    }
yy220:
    yych = *++YYCURSOR;
    if (yych <= '@') {
        if (yych <= '/') goto yy77;
        if (yych <= '9') goto yy201;
        goto yy77;
    } else {
        if (yych <= 'F') goto yy201;
        if (yych <= '`') goto yy77;
        if (yych <= 'f') goto yy201;
        goto yy77;
    }
yy221:
    yych = *++YYCURSOR;
    if (yych == '\'') goto yy77;
    goto yy121;
yy222:
    ++YYCURSOR;
#line 59 "idl.re"
    { BOOST_WAVE_RET(T_GREATEREQUAL); }
#line 2735 "idl.inc"
yy224:
    ++YYCURSOR;
#line 55 "idl.re"
    { BOOST_WAVE_RET(T_SHIFTRIGHT); }
#line 2740 "idl.inc"
yy226:
    ++YYCURSOR;
#line 58 "idl.re"
    { BOOST_WAVE_RET(T_LESSEQUAL); }
#line 2745 "idl.inc"
yy228:
    ++YYCURSOR;
#line 54 "idl.re"
    { BOOST_WAVE_RET(T_SHIFTLEFT); }
#line 2750 "idl.inc"
yy230:
    ++YYCURSOR;
#line 56 "idl.re"
    { BOOST_WAVE_RET(T_EQUAL); }
#line 2755 "idl.inc"
yy232:
    ++YYCURSOR;
#line 57 "idl.re"
    { BOOST_WAVE_RET(T_NOTEQUAL); }
#line 2760 "idl.inc"
yy234:
    ++YYCURSOR;
#line 61 "idl.re"
    { BOOST_WAVE_RET(T_OROR); }
#line 2765 "idl.inc"
yy236:
    ++YYCURSOR;
#line 60 "idl.re"
    { BOOST_WAVE_RET(T_ANDAND); }
#line 2770 "idl.inc"
yy238:
    ++YYCURSOR;
    if ((YYLIMIT - YYCURSOR) < 7) YYFILL(7);
    yych = *YYCURSOR;
yy239:
    if (yybm[0+yych] & 4) {
        goto yy238;
    }
    if (yych <= 'k') {
        if (yych <= 'd') {
            if (yych == '/') goto yy240;
            if (yych <= 'c') goto yy77;
            goto yy243;
        } else {
            if (yych <= 'e') goto yy242;
            if (yych == 'i') goto yy241;
            goto yy77;
        }
    } else {
        if (yych <= 't') {
            if (yych <= 'l') goto yy245;
            if (yych == 'p') goto yy246;
            goto yy77;
        } else {
            if (yych <= 'u') goto yy244;
            if (yych == 'w') goto yy247;
            goto yy77;
        }
    }
yy240:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych == '*') goto yy330;
    goto yy77;
yy241:
    yych = *++YYCURSOR;
    if (yych == 'f') goto yy293;
    if (yych == 'n') goto yy295;
    goto yy77;
yy242:
    yych = *++YYCURSOR;
    if (yych <= 'm') {
        if (yych == 'l') goto yy278;
        goto yy77;
    } else {
        if (yych <= 'n') goto yy277;
        if (yych == 'r') goto yy276;
        goto yy77;
    }
yy243:
    yych = *++YYCURSOR;
    if (yych == 'e') goto yy270;
    goto yy77;
yy244:
    yych = *++YYCURSOR;
    if (yych == 'n') goto yy265;
    goto yy77;
yy245:
    yych = *++YYCURSOR;
    if (yych == 'i') goto yy261;
    goto yy77;
yy246:
    yych = *++YYCURSOR;
    if (yych == 'r') goto yy255;
    goto yy77;
yy247:
    yych = *++YYCURSOR;
    if (yych != 'a') goto yy77;
    yych = *++YYCURSOR;
    if (yych != 'r') goto yy77;
    yych = *++YYCURSOR;
    if (yych != 'n') goto yy77;
    yych = *++YYCURSOR;
    if (yych != 'i') goto yy77;
    yych = *++YYCURSOR;
    if (yych != 'n') goto yy77;
    yych = *++YYCURSOR;
    if (yych != 'g') goto yy77;
    ++YYCURSOR;
#line 106 "idl.re"
    { BOOST_WAVE_RET(T_PP_WARNING); }
#line 2853 "idl.inc"
yy255:
    yych = *++YYCURSOR;
    if (yych != 'a') goto yy77;
    yych = *++YYCURSOR;
    if (yych != 'g') goto yy77;
    yych = *++YYCURSOR;
    if (yych != 'm') goto yy77;
    yych = *++YYCURSOR;
    if (yych != 'a') goto yy77;
    ++YYCURSOR;
#line 104 "idl.re"
    { BOOST_WAVE_RET(T_PP_PRAGMA); }
#line 2866 "idl.inc"
yy261:
    yych = *++YYCURSOR;
    if (yych != 'n') goto yy77;
    yych = *++YYCURSOR;
    if (yych != 'e') goto yy77;
    ++YYCURSOR;
#line 102 "idl.re"
    { BOOST_WAVE_RET(T_PP_LINE); }
#line 2875 "idl.inc"
yy265:
    yych = *++YYCURSOR;
    if (yych != 'd') goto yy77;
    yych = *++YYCURSOR;
    if (yych != 'e') goto yy77;
    yych = *++YYCURSOR;
    if (yych != 'f') goto yy77;
    ++YYCURSOR;
#line 101 "idl.re"
    { BOOST_WAVE_RET(T_PP_UNDEF); }
#line 2886 "idl.inc"
yy270:
    yych = *++YYCURSOR;
    if (yych != 'f') goto yy77;
    yych = *++YYCURSOR;
    if (yych != 'i') goto yy77;
    yych = *++YYCURSOR;
    if (yych != 'n') goto yy77;
    yych = *++YYCURSOR;
    if (yych != 'e') goto yy77;
    ++YYCURSOR;
#line 100 "idl.re"
    { BOOST_WAVE_RET(T_PP_DEFINE); }
#line 2899 "idl.inc"
yy276:
    yych = *++YYCURSOR;
    if (yych == 'r') goto yy289;
    goto yy77;
yy277:
    yych = *++YYCURSOR;
    if (yych == 'd') goto yy285;
    goto yy77;
yy278:
    yych = *++YYCURSOR;
    if (yych == 'i') goto yy280;
    if (yych != 's') goto yy77;
    yych = *++YYCURSOR;
    if (yych == 'e') goto yy283;
    goto yy77;
yy280:
    yych = *++YYCURSOR;
    if (yych != 'f') goto yy77;
    ++YYCURSOR;
#line 98 "idl.re"
    { BOOST_WAVE_RET(T_PP_ELIF); }
#line 2921 "idl.inc"
yy283:
    ++YYCURSOR;
#line 97 "idl.re"
    { BOOST_WAVE_RET(T_PP_ELSE); }
#line 2926 "idl.inc"
yy285:
    yych = *++YYCURSOR;
    if (yych != 'i') goto yy77;
    yych = *++YYCURSOR;
    if (yych != 'f') goto yy77;
    ++YYCURSOR;
#line 99 "idl.re"
    { BOOST_WAVE_RET(T_PP_ENDIF); }
#line 2935 "idl.inc"
yy289:
    yych = *++YYCURSOR;
    if (yych != 'o') goto yy77;
    yych = *++YYCURSOR;
    if (yych != 'r') goto yy77;
    ++YYCURSOR;
#line 103 "idl.re"
    { BOOST_WAVE_RET(T_PP_ERROR); }
#line 2944 "idl.inc"
yy293:
    yyaccept = 9;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych == 'd') goto yy321;
    if (yych == 'n') goto yy322;
yy294:
#line 94 "idl.re"
    { BOOST_WAVE_RET(T_PP_IF); }
#line 2953 "idl.inc"
yy295:
    yych = *++YYCURSOR;
    if (yych != 'c') goto yy77;
    yych = *++YYCURSOR;
    if (yych != 'l') goto yy77;
    yych = *++YYCURSOR;
    if (yych != 'u') goto yy77;
    yych = *++YYCURSOR;
    if (yych != 'd') goto yy77;
    yych = *++YYCURSOR;
    if (yych != 'e') goto yy77;
yy300:
    yyaccept = 10;
    YYMARKER = ++YYCURSOR;
    if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
    yych = *YYCURSOR;
    if (yych <= '!') {
        if (yych <= '\t') {
            if (yych >= '\t') goto yy300;
        } else {
            if (yych == ' ') goto yy300;
        }
    } else {
        if (yych <= '/') {
            if (yych <= '"') goto yy304;
            if (yych >= '/') goto yy303;
        } else {
            if (yych == '<') goto yy305;
        }
    }
yy302:
#line 92 "idl.re"
    { BOOST_WAVE_RET(T_PP_INCLUDE); }
#line 2987 "idl.inc"
yy303:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych == '*') goto yy314;
    goto yy77;
yy304:
    yych = *++YYCURSOR;
    if (yych == '"') goto yy77;
    goto yy311;
yy305:
    yych = *++YYCURSOR;
    if (yych == '>') goto yy77;
    goto yy307;
yy306:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
yy307:
    if (yybm[0+yych] & 8) {
        goto yy306;
    }
    if (yych <= '=') goto yy77;
    ++YYCURSOR;
#line 86 "idl.re"
    { BOOST_WAVE_RET(T_PP_HHEADER); }
#line 3014 "idl.inc"
yy310:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
yy311:
    if (yybm[0+yych] & 16) {
        goto yy310;
    }
    if (yych <= '!') goto yy77;
    ++YYCURSOR;
#line 89 "idl.re"
    { BOOST_WAVE_RET(T_PP_QHEADER); }
#line 3027 "idl.inc"
yy314:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 32) {
        goto yy314;
    }
    if (yych == '\r') goto yy316;
    if (yych <= ')') goto yy77;
    goto yy318;
yy316:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 32) {
        goto yy314;
    }
    if (yych == '\r') goto yy316;
    if (yych <= ')') goto yy77;
yy318:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 128) {
        goto yy318;
    }
    if (yych <= '\r') {
        if (yych <= 0x08) goto yy77;
        if (yych <= '\f') goto yy314;
    } else {
        if (yych <= 0x1F) goto yy77;
        if (yych == '/') goto yy300;
        goto yy314;
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yybm[0+yych] & 32) {
        goto yy314;
    }
    if (yych == '\r') goto yy316;
    if (yych <= ')') goto yy77;
    goto yy318;
yy321:
    yych = *++YYCURSOR;
    if (yych == 'e') goto yy327;
    goto yy77;
yy322:
    yych = *++YYCURSOR;
    if (yych != 'd') goto yy77;
    yych = *++YYCURSOR;
    if (yych != 'e') goto yy77;
    yych = *++YYCURSOR;
    if (yych != 'f') goto yy77;
    ++YYCURSOR;
#line 96 "idl.re"
    { BOOST_WAVE_RET(T_PP_IFNDEF); }
#line 3085 "idl.inc"
yy327:
    yych = *++YYCURSOR;
    if (yych != 'f') goto yy77;
    ++YYCURSOR;
#line 95 "idl.re"
    { BOOST_WAVE_RET(T_PP_IFDEF); }
#line 3092 "idl.inc"
yy330:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '\r') {
        if (yych <= 0x08) goto yy77;
        if (yych <= '\f') goto yy330;
    } else {
        if (yych <= 0x1F) goto yy77;
        if (yych == '*') goto yy334;
        goto yy330;
    }
yy332:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '\r') {
        if (yych <= 0x08) goto yy77;
        if (yych <= '\f') goto yy330;
        goto yy332;
    } else {
        if (yych <= 0x1F) goto yy77;
        if (yych != '*') goto yy330;
    }
yy334:
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= 0x1F) {
        if (yych <= 0x08) goto yy77;
        if (yych <= '\f') goto yy330;
        if (yych >= 0x0E) goto yy77;
    } else {
        if (yych <= '*') {
            if (yych <= ')') goto yy330;
            goto yy334;
        } else {
            if (yych == '/') goto yy238;
            goto yy330;
        }
    }
    ++YYCURSOR;
    if (YYLIMIT <= YYCURSOR) YYFILL(1);
    yych = *YYCURSOR;
    if (yych <= '\r') {
        if (yych <= 0x08) goto yy77;
        if (yych <= '\f') goto yy330;
        goto yy332;
    } else {
        if (yych <= 0x1F) goto yy77;
        if (yych == '*') goto yy334;
        goto yy330;
    }
yy337:
    ++YYCURSOR;
#line 63 "idl.re"
    { BOOST_WAVE_RET(T_MINUSMINUS); }
#line 3150 "idl.inc"
yy339:
    ++YYCURSOR;
#line 62 "idl.re"
    { BOOST_WAVE_RET(T_PLUSPLUS); }
#line 3155 "idl.inc"
yy341:
    yych = *++YYCURSOR;
    if (yych == '/') goto yy342;
    if (yych == '=') goto yy238;
    goto yy77;
yy342:
    yych = *++YYCURSOR;
    if (yych == 'U') goto yy193;
    if (yych == 'u') goto yy192;
    goto yy77;
yy343:
    ++YYCURSOR;
#line 34 "idl.re"
    { BOOST_WAVE_RET(T_POUND_POUND); }
#line 3170 "idl.inc"
yy345:
    yyaccept = 0;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'L') goto yy202;
    yyaccept = 0;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'S') goto yy202;
    yyaccept = 0;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'E') goto yy202;
    yyaccept = 11;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[0+yych] & 2) {
        goto yy201;
    }
    if (yych == '?') goto yy204;
    if (yych == '\\') goto yy203;
yy349:
#line 27 "idl.re"
    { BOOST_WAVE_RET(T_FALSE); }
#line 3191 "idl.inc"
yy350:
    yyaccept = 0;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'U') goto yy202;
    yyaccept = 0;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yych != 'E') goto yy202;
    yyaccept = 12;
    yych = *(YYMARKER = ++YYCURSOR);
    if (yybm[0+yych] & 2) {
        goto yy201;
    }
    if (yych == '?') goto yy204;
    if (yych == '\\') goto yy203;
yy353:
#line 26 "idl.re"
    { BOOST_WAVE_RET(T_TRUE); }
#line 3209 "idl.inc"
yy354:
    ++YYCURSOR;
#line 24 "idl.re"
    { goto cppcomment; }
#line 3214 "idl.inc"
yy356:
    ++YYCURSOR;
#line 23 "idl.re"
    { goto ccomment; }
#line 3219 "idl.inc"
}
#line 137 "idl.re"


ccomment:

#line 3226 "idl.inc"
{
    YYCTYPE yych;
    if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
    yych = *YYCURSOR;
    if (yych <= '\f') {
        if (yych <= 0x08) {
            if (yych <= 0x00) goto yy366;
            goto yy368;
        } else {
            if (yych == '\n') goto yy362;
            goto yy365;
        }
    } else {
        if (yych <= 0x1F) {
            if (yych <= '\r') goto yy364;
            goto yy368;
        } else {
            if (yych != '*') goto yy365;
        }
    }
    ++YYCURSOR;
    if ((yych = *YYCURSOR) == '/') goto yy371;
yy361:
#line 150 "idl.re"
    { goto ccomment; }
#line 3252 "idl.inc"
yy362:
    ++YYCURSOR;
yy363:
#line 143 "idl.re"
    {
        /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF);*/
        /*s->tok = cursor; */
        s->line += count_backslash_newlines(s, cursor) +1;
        goto ccomment;
    }
#line 3263 "idl.inc"
yy364:
    yych = *++YYCURSOR;
    if (yych == '\n') goto yy370;
    goto yy363;
yy365:
    yych = *++YYCURSOR;
    goto yy361;
yy366:
    ++YYCURSOR;
#line 153 "idl.re"
    {
        using namespace std;      // some systems have printf in std
        if(cursor == s->eof) 
        {
            if (s->error_proc)
                (*s->error_proc)(s, 
                    cpplexer::lexing_exception::generic_lexing_warning,
                    "Unterminated comment");
            else
                printf("Error: Unterminated comment\n");
        }
        else
        {
            if (s->error_proc)
                (*s->error_proc)(s, 
                    cpplexer::lexing_exception::generic_lexing_error,
                    "'\\000' in input stream");
            else
                printf("Error: 0 in file");
        }
        /* adjust cursor such next call returns T_EOF */
        --YYCURSOR;
        /* the comment is unterminated, but nevertheless its a comment */
        BOOST_WAVE_RET(T_CCOMMENT);
    }
#line 3299 "idl.inc"
yy368:
    ++YYCURSOR;
#line 180 "idl.re"
    {
        if (s->error_proc)
            (*s->error_proc)(s, 
                cpplexer::lexing_exception::generic_lexing_error,
                "invalid character in input stream");
        else
            printf("Error: 0 in file");
    }
#line 3311 "idl.inc"
yy370:
    yych = *++YYCURSOR;
    goto yy363;
yy371:
    ++YYCURSOR;
#line 141 "idl.re"
    { BOOST_WAVE_RET(T_CCOMMENT); }
#line 3319 "idl.inc"
}
#line 189 "idl.re"


cppcomment:

#line 3326 "idl.inc"
{
    YYCTYPE yych;
    if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
    yych = *YYCURSOR;
    if (yych <= '\n') {
        if (yych <= 0x00) goto yy381;
        if (yych <= 0x08) goto yy375;
        if (yych <= '\t') goto yy379;
        goto yy376;
    } else {
        if (yych <= '\f') goto yy379;
        if (yych <= '\r') goto yy378;
        if (yych >= ' ') goto yy379;
    }
yy375:
yy376:
    ++YYCURSOR;
yy377:
#line 194 "idl.re"
    {
        /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF); */
        /*s->tok = cursor; */
        s->line++;
        BOOST_WAVE_RET(T_CPPCOMMENT);
    }
#line 3352 "idl.inc"
yy378:
    yych = *++YYCURSOR;
    if (yych == '\n') goto yy383;
    goto yy377;
yy379:
    ++YYCURSOR;
#line 201 "idl.re"
    { goto cppcomment; }
#line 3361 "idl.inc"
yy381:
    ++YYCURSOR;
#line 204 "idl.re"
    {
        using namespace std;      // some systems have printf in std
        if(cursor != s->eof) 
        {
            if (s->error_proc)
                (*s->error_proc)(s, 
                    cpplexer::lexing_exception::generic_lexing_error,
                    "'\\000' in input stream");
            else
                printf("Error: 0 in file");
        }
        /* adjust cursor such next call returns T_EOF */
        --YYCURSOR;
        /* the comment is unterminated, but nevertheless its a comment */
        BOOST_WAVE_RET(T_CPPCOMMENT);
    }
#line 3381 "idl.inc"
yy383:
    ++YYCURSOR;
    yych = *YYCURSOR;
    goto yy377;
}
#line 220 "idl.re"

