]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/libs/wave/src/cpplexer/re2clex/strict_cpp_re.inc
update sources to v12.2.3
[ceph.git] / ceph / src / boost / libs / wave / src / cpplexer / re2clex / strict_cpp_re.inc
index 14bdece70b28ffc9a6d7c910f9f11215276a75f2..436b025899cccae10071056d85e2e760a12aee47 100644 (file)
@@ -1,19 +1,19 @@
-/* Generated by re2c 0.13.5 on Thu Jul 18 20:13:38 2013 */
+/* Generated by re2c 1.0.2 on Fri Oct 20 11:05:52 2017 */
 #line 1 "strict_cpp.re"
 /*=============================================================================
     Boost.Wave: A Standard compliant C++ preprocessor library
 
     Copyright (c) 2001 Daniel C. Nuffer
-    Copyright (c) 2001-2011 Hartmut Kaiser. 
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
+    Copyright (c) 2001-2011 Hartmut Kaiser.
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
     This is a strict lexer conforming to the Standard as close as possible.
     It does not allow the '$' to be part of identifiers. If you need the '$'
     character in identifiers please include the lexer definition provided
     in the cpp.re file.
-    
-    TODO: 
+
+    TODO:
         handle errors better.
 =============================================================================*/
 
     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,  64,  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
+          0, 203,   8, 203, 203,   8,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+        203, 203, 138, 203, 203, 203, 203, 201
+        203, 203, 227, 203, 203, 203, 203, 203
+        203, 203, 203, 203, 203, 203, 203, 203
+        203, 203, 203, 203, 203, 203,  75, 204
+        203, 203, 203, 203, 203, 203, 203, 203
+        203, 203, 203, 203, 203, 203, 203, 203
+        203, 203, 203, 203, 203, 203, 203, 203
+        203, 203, 203, 203, 216, 203, 203, 203
+        203, 203, 203, 203, 203, 203, 203, 203
+        203, 203, 203, 203, 203, 203, 203, 203
+        203, 203, 203, 203, 203, 203, 203, 203
+        203, 203, 203, 203, 203, 203, 203, 203
+        203, 203, 203, 203, 203, 203, 203, 203
+        203, 203, 203, 203, 203, 203, 203, 203
+        203, 203, 203, 203, 203, 203, 203, 203
+        203, 203, 203, 203, 203, 203, 203, 203
+        203, 203, 203, 203, 203, 203, 203, 203
+        203, 203, 203, 203, 203, 203, 203, 203
+        203, 203, 203, 203, 203, 203, 203, 203
+        203, 203, 203, 203, 203, 203, 203, 203
+        203, 203, 203, 203, 203, 203, 203, 203
+        203, 203, 203, 203, 203, 203, 203, 203
+        203, 203, 203, 203, 203, 203, 203, 203
+        203, 203, 203, 203, 203, 203, 203, 203
+        203, 203, 203, 203, 203, 203, 203, 203
+        203, 203, 203, 203, 203, 203, 203, 203
+        203, 203, 203, 203, 203, 203, 203, 203
+        203, 203, 203, 203, 203, 203, 203, 203
+        /* table 9 .. 10: 256 */
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,  64,   0,  64,  64,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+         64,   0,   0,   0,   0,   0,   0,   0
+          0,   0,   0,   0,   0,   0,   0,   0
+        128, 128, 128, 128, 128, 128, 128, 128
+        128, 128,   0,   0,   0,   0,   0,   0, 
+          0, 128, 128, 128, 128, 128, 128, 128
+        128, 128, 128, 128, 128, 128, 128, 128
+        128, 128, 128, 128, 128, 128, 128, 128
+        128, 128, 128,   0,   0,   0,   0, 128
+          0, 128, 128, 128, 128, 128, 128, 128
+        128, 128, 128, 128, 128, 128, 128, 128
+        128, 128, 128, 128, 128, 128, 128, 128
+        128, 128, 128,   0,   0,   0,   0,   0
+          0,   0,   0,   0,   0,   0,   0,   0
+          0,   0,   0,   0,   0,   0,   0,   0
+          0,   0,   0,   0,   0,   0,   0,   0
+          0,   0,   0,   0,   0,   0,   0,   0
+          0,   0,   0,   0,   0,   0,   0,   0
+          0,   0,   0,   0,   0,   0,   0,   0
+          0,   0,   0,   0,   0,   0,   0,   0
+          0,   0,   0,   0,   0,   0,   0,   0
+          0,   0,   0,   0,   0,   0,   0,   0
+          0,   0,   0,   0,   0,   0,   0,   0
+          0,   0,   0,   0,   0,   0,   0,   0
+          0,   0,   0,   0,   0,   0,   0,   0
+          0,   0,   0,   0,   0,   0,   0,   0
+          0,   0,   0,   0,   0,   0,   0,   0
+          0,   0,   0,   0,   0,   0,   0,   0
+          0,   0,   0,   0,   0,   0,   0,   0
     };
-
     if ((YYLIMIT - YYCURSOR) < 17) YYFILL(17);
     yych = *YYCURSOR;
+    if (yybm[256+yych] & 64) {
+        goto yy6;
+    }
     switch (yych) {
-    case 0x00:    goto yy90;
+    case 0x00:    goto yy2;
     case 0x01:
     case 0x02:
     case 0x03:
     case 0x1C:
     case 0x1D:
     case 0x1E:
-    case 0x1F:    goto yy93;
+    case 0x1F:    goto yy4;
     case '\t':
+    case '\n':    goto yy9;
     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 '%':    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 '\f':
+    case '\r':    goto yy11;
+    case ' ':
+    case '!':    goto yy12;
+    case '"':    goto yy14;
+    case '#':    goto yy16;
+    case '%':    goto yy19;
+    case '&':    goto yy21;
+    case '\'':    goto yy23;
+    case '(':    goto yy24;
+    case ')':    goto yy26;
+    case '*':    goto yy28;
+    case '+':    goto yy30;
+    case ',':    goto yy32;
+    case '-':    goto yy34;
+    case '.':    goto yy36;
+    case '/':    goto yy38;
     case '0':
     case '1':
     case '2':
     case '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 '9':    goto yy40;
+    case ':':    goto yy42;
+    case ';':    goto yy44;
+    case '<':    goto yy46;
+    case '=':    goto yy48;
+    case '>':    goto yy50;
+    case '?':    goto yy52;
     case 'A':
     case 'B':
     case 'C':
     case 'k':
     case 'q':
     case 'y':
-    case 'z':    goto yy82;
-    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;
+    case 'z':    goto yy54;
+    case 'L':    goto yy57;
+    case 'R':    goto yy58;
+    case 'U':    goto yy59;
+    case '[':    goto yy60;
+    case '\\':    goto yy62;
+    case ']':    goto yy63;
+    case '^':    goto yy65;
+    case '_':    goto yy67;
+    case 'a':    goto yy68;
+    case 'b':    goto yy69;
+    case 'c':    goto yy70;
+    case 'd':    goto yy71;
+    case 'e':    goto yy72;
+    case 'f':    goto yy73;
+    case 'g':    goto yy74;
+    case 'i':    goto yy75;
+    case 'l':    goto yy76;
+    case 'm':    goto yy77;
+    case 'n':    goto yy78;
+    case 'o':    goto yy79;
+    case 'p':    goto yy80;
+    case 'r':    goto yy81;
+    case 's':    goto yy82;
+    case 't':    goto yy83;
+    case 'u':    goto yy84;
+    case 'v':    goto yy85;
+    case 'w':    goto yy86;
+    case 'x':    goto yy87;
+    case '{':    goto yy88;
+    case '|':    goto yy90;
+    case '}':    goto yy92;
+    case '~':    goto yy94;
+    default:    goto yy18;
     }
 yy2:
     ++YYCURSOR;
-    if ((yych = *YYCURSOR) <= '.') {
-        if (yych == '*') goto yy998;
-    } else {
-        if (yych <= '/') goto yy996;
-        if (yych == '=') goto yy994;
+#line 329 "strict_cpp.re"
+    {
+        if (s->eof && cursor != s->eof)
+        {
+            BOOST_WAVE_UPDATE_CURSOR();     // adjust the input cursor
+            (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+                "invalid character '\\000' in input stream");
+        }
+        BOOST_WAVE_RET(T_EOF);
     }
-#line 188 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_DIVIDE); }
-#line 237 "strict_cpp_re.inc"
+#line 241 "strict_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;
+    ++YYCURSOR;
+#line 342 "strict_cpp.re"
+    {
+        // flag the error
+        BOOST_WAVE_UPDATE_CURSOR();     // adjust the input cursor
+        (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+            "invalid character '\\%03o' in input stream", *--YYCURSOR);
     }
-yy5:
-#line 174 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_DOT); }
 #line 251 "strict_cpp_re.inc"
 yy6:
     ++YYCURSOR;
-yy7:
-#line 45 "strict_cpp.re"
-    { goto pp_number; }
-#line 257 "strict_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;
+    if (YYLIMIT <= YYCURSOR) YYFILL(1);
+    yych = *YYCURSOR;
+    if (yybm[256+yych] & 64) {
+        goto yy6;
     }
+#line 319 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_SPACE); }
+#line 261 "strict_cpp_re.inc"
 yy9:
-#line 290 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_IDENTIFIER); }
-#line 271 "strict_cpp_re.inc"
+    ++YYCURSOR;
 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;
+#line 322 "strict_cpp.re"
+    {
+        s->line++;
+        cursor.column = 1;
+        BOOST_WAVE_RET(T_NEWLINE);
     }
+#line 271 "strict_cpp_re.inc"
 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;
-    }
+    yych = *++YYCURSOR;
+    if (yych == '\n') goto yy9;
+    goto yy10;
 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;
-    }
+    yych = *++YYCURSOR;
+    if (yych == '=') goto yy96;
+#line 201 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_NOT); }
+#line 281 "strict_cpp_re.inc"
 yy14:
-    yyaccept = 1;
+    yyaccept = 0;
     yych = *(YYMARKER = ++YYCURSOR);
-    switch (yych) {
-    case 'a':    goto yy811;
-    case 'l':    goto yy812;
-    case 'o':    goto yy813;
-    case 'r':    goto yy814;
-    default:    goto yy109;
+    if (yych <= '\n') {
+        if (yych == '\t') goto yy99;
+    } else {
+        if (yych <= '\f') goto yy99;
+        if (yych >= ' ') goto yy99;
     }
 yy15:
-    yyaccept = 1;
-    yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'o') goto yy807;
-    goto yy109;
+#line 339 "strict_cpp.re"
+    { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
+#line 294 "strict_cpp_re.inc"
 yy16:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych <= '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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_LEFTBRACE); }
-#line 465 "strict_cpp_re.inc"
-yy31:
-    yyaccept = 2;
-    yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == '?') goto yy419;
-yy32:
-#line 163 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_QUESTION_MARK); }
-#line 473 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_LESS); }
-#line 487 "strict_cpp_re.inc"
-yy35:
-    ++YYCURSOR;
-#line 141 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_RIGHTBRACE); }
-#line 492 "strict_cpp_re.inc"
-yy37:
-    ++YYCURSOR;
-    if ((yych = *YYCURSOR) <= '<') {
-        if (yych == ':') goto yy400;
-    } else {
-        if (yych <= '=') goto yy402;
-        if (yych <= '>') goto yy404;
-    }
-#line 189 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_PERCENT); }
-#line 503 "strict_cpp_re.inc"
-yy39:
-    ++YYCURSOR;
-#line 144 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_LEFTBRACKET); }
-#line 508 "strict_cpp_re.inc"
-yy41:
-    ++YYCURSOR;
-#line 147 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_RIGHTBRACKET); }
-#line 513 "strict_cpp_re.inc"
-yy43:
-    ++YYCURSOR;
-    if ((yych = *YYCURSOR) == ':') goto yy396;
-    if (yych == '>') goto yy398;
-#line 161 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_COLON); }
-#line 520 "strict_cpp_re.inc"
-yy45:
-    yyaccept = 3;
-    yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'c') {
         if (yych <= ' ') {
             if (yych <= '\n') {
-                if (yych == '\t') goto yy273;
+                if (yych == '\t') goto yy106;
             } else {
-                if (yych <= '\f') goto yy273;
-                if (yych >= ' ') goto yy273;
+                if (yych <= '\f') goto yy106;
+                if (yych >= ' ') goto yy106;
             }
         } else {
             if (yych <= '.') {
-                if (yych == '#') goto yy284;
+                if (yych == '#') goto yy107;
             } else {
-                if (yych <= '/') goto yy273;
-                if (yych == '?') goto yy283;
+                if (yych <= '/') goto yy106;
+                if (yych == '?') goto yy110;
             }
         }
     } else {
         if (yych <= 'p') {
             if (yych <= 'i') {
-                if (yych <= 'e') goto yy273;
-                if (yych >= 'i') goto yy273;
+                if (yych <= 'e') goto yy106;
+                if (yych >= 'i') goto yy106;
             } else {
-                if (yych == 'l') goto yy273;
-                if (yych >= 'p') goto yy273;
+                if (yych == 'l') goto yy106;
+                if (yych >= 'p') goto yy106;
             }
         } else {
             if (yych <= 't') {
-                if (yych == 'r') goto yy273;
+                if (yych == 'r') goto yy106;
             } else {
-                if (yych == 'v') goto yy46;
-                if (yych <= 'w') goto yy273;
+                if (yych == 'v') goto yy17;
+                if (yych <= 'w') goto yy106;
             }
         }
     }
-yy46:
+yy17:
 #line 150 "strict_cpp.re"
     { BOOST_WAVE_RET(T_POUND); }
-#line 561 "strict_cpp_re.inc"
-yy47:
+#line 335 "strict_cpp_re.inc"
+yy18:
+    ++YYCURSOR;
+    goto yy15;
+yy19:
+    yych = *++YYCURSOR;
+    if (yych <= '<') {
+        if (yych == ':') goto yy119;
+    } else {
+        if (yych <= '=') goto yy121;
+        if (yych <= '>') goto yy123;
+    }
+#line 189 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_PERCENT); }
+#line 349 "strict_cpp_re.inc"
+yy21:
+    yych = *++YYCURSOR;
+    if (yych == '&') goto yy125;
+    if (yych == '=') goto yy127;
+#line 193 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_AND); }
+#line 356 "strict_cpp_re.inc"
+yy23:
+    yyaccept = 0;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych <= '\f') {
+        if (yych == '\t') goto yy130;
+        if (yych <= '\n') goto yy15;
+        goto yy130;
+    } else {
+        if (yych <= 0x1F) goto yy15;
+        if (yych == '\'') goto yy15;
+        goto yy130;
+    }
+yy24:
     ++YYCURSOR;
 #line 158 "strict_cpp.re"
     { BOOST_WAVE_RET(T_LEFTPAREN); }
-#line 566 "strict_cpp_re.inc"
-yy49:
+#line 373 "strict_cpp_re.inc"
+yy26:
     ++YYCURSOR;
 #line 159 "strict_cpp.re"
     { BOOST_WAVE_RET(T_RIGHTPAREN); }
-#line 571 "strict_cpp_re.inc"
-yy51:
-    ++YYCURSOR;
-#line 160 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_SEMICOLON); }
-#line 576 "strict_cpp_re.inc"
-yy53:
-    ++YYCURSOR;
-    if ((yych = *YYCURSOR) == '+') goto yy268;
-    if (yych == '=') goto yy270;
+#line 378 "strict_cpp_re.inc"
+yy28:
+    yych = *++YYCURSOR;
+    if (yych == '=') goto yy133;
+#line 187 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_STAR); }
+#line 384 "strict_cpp_re.inc"
+yy30:
+    yych = *++YYCURSOR;
+    if (yych == '+') goto yy135;
+    if (yych == '=') goto yy137;
 #line 185 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PLUS); }
-#line 583 "strict_cpp_re.inc"
-yy55:
+#line 391 "strict_cpp_re.inc"
+yy32:
     ++YYCURSOR;
-    if ((yych = *YYCURSOR) <= '<') {
-        if (yych == '-') goto yy262;
-    } else {
-        if (yych <= '=') goto yy264;
-        if (yych <= '>') goto yy260;
+#line 237 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_COMMA); }
+#line 396 "strict_cpp_re.inc"
+yy34:
+    yych = *++YYCURSOR;
+    if (yych <= '<') {
+        if (yych == '-') goto yy139;
+    } else {
+        if (yych <= '=') goto yy141;
+        if (yych <= '>') goto yy143;
     }
 #line 186 "strict_cpp.re"
     { BOOST_WAVE_RET(T_MINUS); }
-#line 594 "strict_cpp_re.inc"
-yy57:
+#line 407 "strict_cpp_re.inc"
+yy36:
+    yyaccept = 2;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych <= '-') {
+        if (yych == '*') goto yy145;
+    } else {
+        if (yych <= '.') goto yy147;
+        if (yych <= '/') goto yy37;
+        if (yych <= '9') goto yy40;
+    }
+yy37:
+#line 174 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_DOT); }
+#line 421 "strict_cpp_re.inc"
+yy38:
+    yych = *++YYCURSOR;
+    if (yych <= '.') {
+        if (yych == '*') goto yy148;
+    } else {
+        if (yych <= '/') goto yy150;
+        if (yych == '=') goto yy152;
+    }
+#line 188 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_DIVIDE); }
+#line 432 "strict_cpp_re.inc"
+yy40:
     ++YYCURSOR;
-    if ((yych = *YYCURSOR) == '=') goto yy258;
-#line 187 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_STAR); }
-#line 600 "strict_cpp_re.inc"
+#line 45 "strict_cpp.re"
+    { goto pp_number; }
+#line 437 "strict_cpp_re.inc"
+yy42:
+    yych = *++YYCURSOR;
+    if (yych == ':') goto yy154;
+    if (yych == '>') goto yy156;
+#line 161 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_COLON); }
+#line 444 "strict_cpp_re.inc"
+yy44:
+    ++YYCURSOR;
+#line 160 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_SEMICOLON); }
+#line 449 "strict_cpp_re.inc"
+yy46:
+    yych = *++YYCURSOR;
+    if (yych <= ':') {
+        if (yych == '%') goto yy158;
+        if (yych >= ':') goto yy160;
+    } else {
+        if (yych <= ';') goto yy47;
+        if (yych <= '<') goto yy162;
+        if (yych <= '=') goto yy164;
+    }
+yy47:
+#line 204 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_LESS); }
+#line 463 "strict_cpp_re.inc"
+yy48:
+    yych = *++YYCURSOR;
+    if (yych == '=') goto yy166;
+#line 203 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_ASSIGN); }
+#line 469 "strict_cpp_re.inc"
+yy50:
+    yych = *++YYCURSOR;
+    if (yych <= '<') goto yy51;
+    if (yych <= '=') goto yy168;
+    if (yych <= '>') goto yy170;
+yy51:
+#line 205 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_GREATER); }
+#line 478 "strict_cpp_re.inc"
+yy52:
+    yyaccept = 3;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == '?') goto yy172;
+yy53:
+#line 163 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_QUESTION_MARK); }
+#line 486 "strict_cpp_re.inc"
+yy54:
+    yyaccept = 4;
+    YYMARKER = ++YYCURSOR;
+    if (YYLIMIT <= YYCURSOR) YYFILL(1);
+    yych = *YYCURSOR;
+yy55:
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy56:
+#line 290 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_IDENTIFIER); }
+#line 501 "strict_cpp_re.inc"
+yy57:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych <= '&') {
+        if (yych == '"') goto yy98;
+        goto yy55;
+    } else {
+        if (yych <= '\'') goto yy175;
+        if (yych != 'R') goto yy55;
+    }
+yy58:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == '"') goto yy176;
+    goto yy55;
 yy59:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych <= '&') {
+        if (yych == '"') goto yy178;
+        goto yy55;
+    } else {
+        if (yych <= '\'') goto yy180;
+        if (yych == 'R') goto yy182;
+        goto yy55;
+    }
+yy60:
+    ++YYCURSOR;
+#line 144 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_LEFTBRACKET); }
+#line 532 "strict_cpp_re.inc"
+yy62:
+    yyaccept = 0;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'U') goto yy183;
+    if (yych == 'u') goto yy184;
+    goto yy15;
+yy63:
     ++YYCURSOR;
-    if ((yych = *YYCURSOR) == '=') goto yy256;
+#line 147 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_RIGHTBRACKET); }
+#line 543 "strict_cpp_re.inc"
+yy65:
+    yych = *++YYCURSOR;
+    if (yych == '=') goto yy185;
 #line 190 "strict_cpp.re"
     { BOOST_WAVE_RET(T_XOR); }
-#line 606 "strict_cpp_re.inc"
-yy61:
-    yyaccept = 1;
+#line 549 "strict_cpp_re.inc"
+yy67:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'o') goto yy249;
-    goto yy109;
-yy62:
-    ++YYCURSOR;
-    if ((yych = *YYCURSOR) == '&') goto yy245;
-    if (yych == '=') goto yy247;
-#line 193 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_AND); }
-#line 618 "strict_cpp_re.inc"
-yy64:
+    switch (yych) {
+    case '_':    goto yy187;
+    case 'a':    goto yy188;
+    case 'b':    goto yy189;
+    case 'c':    goto yy190;
+    case 'd':    goto yy191;
+    case 'f':    goto yy192;
+    case 'i':    goto yy193;
+    case 's':    goto yy194;
+    default:    goto yy55;
+    }
+yy68:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych <= '>') {
-        if (yych == '=') goto yy240;
+    switch (yych) {
+    case 'l':    goto yy195;
+    case 'n':    goto yy196;
+    case 's':    goto yy197;
+    case 'u':    goto yy198;
+    default:    goto yy55;
+    }
+yy69:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych <= 'n') {
+        if (yych == 'i') goto yy199;
+        goto yy55;
     } else {
-        if (yych <= '?') goto yy237;
-        if (yych == '|') goto yy238;
+        if (yych <= 'o') goto yy200;
+        if (yych == 'r') goto yy201;
+        goto yy55;
     }
-yy65:
-#line 195 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_OR); }
-#line 631 "strict_cpp_re.inc"
-yy66:
-    ++YYCURSOR;
-#line 198 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_COMPL); }
-#line 636 "strict_cpp_re.inc"
-yy68:
-    ++YYCURSOR;
-    if ((yych = *YYCURSOR) == '=') goto yy235;
-#line 201 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_NOT); }
-#line 642 "strict_cpp_re.inc"
 yy70:
-    ++YYCURSOR;
-    if ((yych = *YYCURSOR) == '=') goto yy233;
-#line 203 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_ASSIGN); }
-#line 648 "strict_cpp_re.inc"
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    switch (yych) {
+    case 'a':    goto yy202;
+    case 'h':    goto yy203;
+    case 'l':    goto yy204;
+    case 'o':    goto yy205;
+    default:    goto yy55;
+    }
+yy71:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych <= 'n') {
+        if (yych == 'e') goto yy206;
+        goto yy55;
+    } else {
+        if (yych <= 'o') goto yy207;
+        if (yych == 'y') goto yy209;
+        goto yy55;
+    }
 yy72:
-    ++YYCURSOR;
-    if ((yych = *YYCURSOR) <= '<') goto yy73;
-    if (yych <= '=') goto yy227;
-    if (yych <= '>') goto yy229;
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych <= 'm') {
+        if (yych == 'l') goto yy210;
+        goto yy55;
+    } else {
+        if (yych <= 'n') goto yy211;
+        if (yych == 'x') goto yy212;
+        goto yy55;
+    }
 yy73:
-#line 205 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_GREATER); }
-#line 657 "strict_cpp_re.inc"
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    switch (yych) {
+    case 'a':    goto yy213;
+    case 'l':    goto yy214;
+    case 'o':    goto yy215;
+    case 'r':    goto yy216;
+    default:    goto yy55;
+    }
 yy74:
-    ++YYCURSOR;
-#line 237 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_COMMA); }
-#line 662 "strict_cpp_re.inc"
-yy76:
-    yyaccept = 1;
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych <= '@') {
-        if (yych <= '\'') {
-            if (yych == '"') goto yy137;
-            if (yych <= '&') goto yy9;
-            goto yy226;
-        } else {
-            if (yych <= '9') {
-                if (yych <= '/') goto yy9;
-                goto yy108;
-            } else {
-                if (yych == '?') goto yy111;
-                goto yy9;
-            }
-        }
+    if (yych == 'o') goto yy217;
+    goto yy55;
+yy75:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych <= 'l') {
+        if (yych == 'f') goto yy218;
+        goto yy55;
     } else {
-        if (yych <= '\\') {
-            if (yych <= 'R') {
-                if (yych <= 'Q') goto yy108;
-                goto yy225;
-            } else {
-                if (yych <= 'Z') goto yy108;
-                if (yych <= '[') goto yy9;
-                goto yy110;
-            }
-        } else {
-            if (yych <= '_') {
-                if (yych <= '^') goto yy9;
-                goto yy108;
-            } else {
-                if (yych <= '`') goto yy9;
-                if (yych <= 'z') goto yy108;
-                goto yy9;
-            }
-        }
+        if (yych <= 'm') goto yy220;
+        if (yych <= 'n') goto yy221;
+        goto yy55;
     }
+yy76:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'o') goto yy222;
+    goto yy55;
 yy77:
-    yyaccept = 5;
+    yyaccept = 4;
     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;
-    }
+    if (yych == 'u') goto yy223;
+    goto yy55;
 yy78:
-#line 339 "strict_cpp.re"
-    { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
-#line 714 "strict_cpp_re.inc"
-yy79:
-    yyaccept = 5;
+    yyaccept = 4;
     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;
+    switch (yych) {
+    case 'a':    goto yy224;
+    case 'e':    goto yy225;
+    case 'o':    goto yy226;
+    case 'u':    goto yy227;
+    default:    goto yy55;
     }
+yy79:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'p') goto yy228;
+    if (yych == 'r') goto yy229;
+    goto yy55;
 yy80:
-    yyaccept = 1;
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == '"') goto yy135;
-    goto yy109;
+    if (yych == 'r') goto yy231;
+    if (yych == 'u') goto yy232;
+    goto yy55;
 yy81:
-    yyaccept = 1;
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych <= '&') {
-        if (yych == '"') goto yy129;
-        goto yy109;
-    } else {
-        if (yych <= '\'') goto yy131;
-        if (yych == 'R') goto yy128;
-        goto yy109;
-    }
+    if (yych == 'e') goto yy233;
+    goto yy55;
 yy82:
-    yyaccept = 1;
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    goto yy109;
+    if (yych <= 's') {
+        if (yych <= 'g') goto yy55;
+        if (yych <= 'h') goto yy234;
+        if (yych <= 'i') goto yy235;
+        goto yy55;
+    } else {
+        if (yych <= 't') goto yy236;
+        if (yych == 'w') goto yy237;
+        goto yy55;
+    }
 yy83:
-    yyaccept = 5;
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'U') goto yy100;
-    if (yych == 'u') goto yy98;
-    goto yy78;
+    switch (yych) {
+    case 'e':    goto yy238;
+    case 'h':    goto yy239;
+    case 'r':    goto yy240;
+    case 'y':    goto yy241;
+    default:    goto yy55;
+    }
 yy84:
-    ++YYCURSOR;
-    yych = *YYCURSOR;
-    goto yy97;
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych <= '8') {
+        if (yych <= '&') {
+            if (yych == '"') goto yy178;
+            goto yy55;
+        } else {
+            if (yych <= '\'') goto yy180;
+            if (yych <= '7') goto yy55;
+            goto yy242;
+        }
+    } else {
+        if (yych <= 'm') {
+            if (yych == 'R') goto yy182;
+            goto yy55;
+        } else {
+            if (yych <= 'n') goto yy243;
+            if (yych == 's') goto yy244;
+            goto yy55;
+        }
+    }
 yy85:
-#line 319 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_SPACE); }
-#line 759 "strict_cpp_re.inc"
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'i') goto yy245;
+    if (yych == 'o') goto yy246;
+    goto yy55;
 yy86:
-    yych = *++YYCURSOR;
-    goto yy97;
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'c') goto yy247;
+    if (yych == 'h') goto yy248;
+    goto yy55;
 yy87:
-    ++YYCURSOR;
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'o') goto yy249;
+    goto yy55;
 yy88:
-#line 322 "strict_cpp.re"
-    {
-        s->line++;
-        cursor.column = 1;
-        BOOST_WAVE_RET(T_NEWLINE);
-    }
-#line 772 "strict_cpp_re.inc"
-yy89:
-    yych = *++YYCURSOR;
-    if (yych == '\n') goto yy95;
-    goto yy88;
-yy90:
     ++YYCURSOR;
-#line 329 "strict_cpp.re"
-    {
-        if (s->eof && cursor != s->eof) 
-        {
-            BOOST_WAVE_UPDATE_CURSOR();     // adjust the input cursor
-            (*s->error_proc)(s, lexing_exception::generic_lexing_error,
-                "invalid character '\\000' in input stream");
-        }
-        BOOST_WAVE_RET(T_EOF);
+#line 138 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_LEFTBRACE); }
+#line 746 "strict_cpp_re.inc"
+yy90:
+    yyaccept = 5;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych <= '>') {
+        if (yych == '=') goto yy250;
+    } else {
+        if (yych <= '?') goto yy252;
+        if (yych == '|') goto yy253;
     }
-#line 789 "strict_cpp_re.inc"
+yy91:
+#line 195 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_OR); }
+#line 759 "strict_cpp_re.inc"
 yy92:
-    yych = *++YYCURSOR;
-    goto yy78;
-yy93:
     ++YYCURSOR;
-#line 342 "strict_cpp.re"
-    {
-        // flag the error
-        BOOST_WAVE_UPDATE_CURSOR();     // adjust the input cursor
-        (*s->error_proc)(s, lexing_exception::generic_lexing_error,
-            "invalid character '\\%03o' in input stream", *--YYCURSOR);
-    }
-#line 802 "strict_cpp_re.inc"
-yy95:
-    yych = *++YYCURSOR;
-    goto yy88;
+#line 141 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_RIGHTBRACE); }
+#line 764 "strict_cpp_re.inc"
+yy94:
+    ++YYCURSOR;
+#line 198 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_COMPL); }
+#line 769 "strict_cpp_re.inc"
 yy96:
     ++YYCURSOR;
+#line 224 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_NOTEQUAL); }
+#line 774 "strict_cpp_re.inc"
+yy98:
+    ++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:
+    if (yybm[0+yych] & 1) {
+        goto yy98;
+    }
+    if (yych <= 0x1F) goto yy100;
+    if (yych <= '"') goto yy101;
+    if (yych <= '?') goto yy103;
+    goto yy104;
+yy100:
     YYCURSOR = YYMARKER;
     if (yyaccept <= 56) {
         if (yyaccept <= 28) {
@@ -829,57 +791,57 @@ yy99:
                 if (yyaccept <= 7) {
                     if (yyaccept <= 3) {
                         if (yyaccept <= 1) {
-                            if (yyaccept <= 0) {
-                                goto yy5;
+                            if (yyaccept == 0) {
+                                goto yy15;
                             } else {
-                                goto yy9;
+                                goto yy17;
                             }
                         } else {
-                            if (yyaccept <= 2) {
-                                goto yy32;
+                            if (yyaccept == 2) {
+                                goto yy37;
                             } else {
-                                goto yy46;
+                                goto yy53;
                             }
                         }
                     } else {
                         if (yyaccept <= 5) {
-                            if (yyaccept <= 4) {
-                                goto yy65;
+                            if (yyaccept == 4) {
+                                goto yy56;
                             } else {
-                                goto yy78;
+                                goto yy91;
                             }
                         } else {
-                            if (yyaccept <= 6) {
-                                goto yy142;
+                            if (yyaccept == 6) {
+                                goto yy120;
                             } else {
-                                goto yy192;
+                                goto yy208;
                             }
                         }
                     }
                 } else {
                     if (yyaccept <= 11) {
                         if (yyaccept <= 9) {
-                            if (yyaccept <= 8) {
-                                goto yy251;
+                            if (yyaccept == 8) {
+                                goto yy219;
                             } else {
-                                goto yy255;
+                                goto yy230;
                             }
                         } else {
-                            if (yyaccept <= 10) {
-                                goto yy291;
+                            if (yyaccept == 10) {
+                                goto yy268;
                             } else {
-                                goto yy306;
+                                goto yy292;
                             }
                         }
                     } else {
                         if (yyaccept <= 13) {
-                            if (yyaccept <= 12) {
-                                goto yy401;
+                            if (yyaccept == 12) {
+                                goto yy302;
                             } else {
-                                goto yy429;
+                                goto yy306;
                             }
                         } else {
-                            goto yy433;
+                            goto yy328;
                         }
                     }
                 }
@@ -887,53 +849,53 @@ yy99:
                 if (yyaccept <= 21) {
                     if (yyaccept <= 18) {
                         if (yyaccept <= 16) {
-                            if (yyaccept <= 15) {
-                                goto yy437;
+                            if (yyaccept == 15) {
+                                goto yy330;
                             } else {
-                                goto yy468;
+                                goto yy353;
                             }
                         } else {
-                            if (yyaccept <= 17) {
-                                goto yy474;
+                            if (yyaccept == 17) {
+                                goto yy359;
                             } else {
-                                goto yy482;
+                                goto yy364;
                             }
                         }
                     } else {
                         if (yyaccept <= 20) {
-                            if (yyaccept <= 19) {
-                                goto yy490;
+                            if (yyaccept == 19) {
+                                goto yy367;
                             } else {
-                                goto yy495;
+                                goto yy388;
                             }
                         } else {
-                            goto yy500;
+                            goto yy399;
                         }
                     }
                 } else {
                     if (yyaccept <= 25) {
                         if (yyaccept <= 23) {
-                            if (yyaccept <= 22) {
-                                goto yy503;
+                            if (yyaccept == 22) {
+                                goto yy446;
                             } else {
-                                goto yy513;
+                                goto yy456;
                             }
                         } else {
-                            if (yyaccept <= 24) {
-                                goto yy519;
+                            if (yyaccept == 24) {
+                                goto yy460;
                             } else {
-                                goto yy522;
+                                goto yy463;
                             }
                         }
                     } else {
                         if (yyaccept <= 27) {
-                            if (yyaccept <= 26) {
-                                goto yy529;
+                            if (yyaccept == 26) {
+                                goto yy466;
                             } else {
-                                goto yy536;
+                                goto yy477;
                             }
                         } else {
-                            goto yy538;
+                            goto yy479;
                         }
                     }
                 }
@@ -943,53 +905,53 @@ yy99:
                 if (yyaccept <= 35) {
                     if (yyaccept <= 32) {
                         if (yyaccept <= 30) {
-                            if (yyaccept <= 29) {
-                                goto yy540;
+                            if (yyaccept == 29) {
+                                goto yy487;
                             } else {
-                                goto yy542;
+                                goto yy491;
                             }
                         } else {
-                            if (yyaccept <= 31) {
-                                goto yy548;
+                            if (yyaccept == 31) {
+                                goto yy513;
                             } else {
-                                goto yy554;
+                                goto yy517;
                             }
                         }
                     } else {
                         if (yyaccept <= 34) {
-                            if (yyaccept <= 33) {
-                                goto yy564;
+                            if (yyaccept == 33) {
+                                goto yy524;
                             } else {
-                                goto yy566;
+                                goto yy102;
                             }
                         } else {
-                            goto yy572;
+                            goto yy277;
                         }
                     }
                 } else {
                     if (yyaccept <= 39) {
                         if (yyaccept <= 37) {
-                            if (yyaccept <= 36) {
-                                goto yy579;
+                            if (yyaccept == 36) {
+                                goto yy563;
                             } else {
-                                goto yy587;
+                                goto yy574;
                             }
                         } else {
-                            if (yyaccept <= 38) {
-                                goto yy590;
+                            if (yyaccept == 38) {
+                                goto yy576;
                             } else {
-                                goto yy603;
+                                goto yy578;
                             }
                         }
                     } else {
                         if (yyaccept <= 41) {
-                            if (yyaccept <= 40) {
-                                goto yy605;
+                            if (yyaccept == 40) {
+                                goto yy582;
                             } else {
-                                goto yy608;
+                                goto yy584;
                             }
                         } else {
-                            goto yy611;
+                            goto yy586;
                         }
                     }
                 }
@@ -997,53 +959,53 @@ yy99:
                 if (yyaccept <= 49) {
                     if (yyaccept <= 46) {
                         if (yyaccept <= 44) {
-                            if (yyaccept <= 43) {
-                                goto yy613;
+                            if (yyaccept == 43) {
+                                goto yy597;
                             } else {
-                                goto yy619;
+                                goto yy599;
                             }
                         } else {
-                            if (yyaccept <= 45) {
-                                goto yy628;
+                            if (yyaccept == 45) {
+                                goto yy610;
                             } else {
-                                goto yy630;
+                                goto yy618;
                             }
                         }
                     } else {
                         if (yyaccept <= 48) {
-                            if (yyaccept <= 47) {
-                                goto yy637;
+                            if (yyaccept == 47) {
+                                goto yy627;
                             } else {
-                                goto yy646;
+                                goto yy632;
                             }
                         } else {
-                            goto yy652;
+                            goto yy635;
                         }
                     }
                 } else {
                     if (yyaccept <= 53) {
                         if (yyaccept <= 51) {
-                            if (yyaccept <= 50) {
-                                goto yy656;
+                            if (yyaccept == 50) {
+                                goto yy640;
                             } else {
-                                goto yy663;
+                                goto yy669;
                             }
                         } else {
-                            if (yyaccept <= 52) {
-                                goto yy669;
+                            if (yyaccept == 52) {
+                                goto yy672;
                             } else {
-                                goto yy675;
+                                goto yy674;
                             }
                         }
                     } else {
                         if (yyaccept <= 55) {
-                            if (yyaccept <= 54) {
-                                goto yy679;
+                            if (yyaccept == 54) {
+                                goto yy682;
                             } else {
-                                goto yy683;
+                                goto yy684;
                             }
                         } else {
-                            goto yy691;
+                            goto yy693;
                         }
                     }
                 }
@@ -1055,57 +1017,57 @@ yy99:
                 if (yyaccept <= 64) {
                     if (yyaccept <= 60) {
                         if (yyaccept <= 58) {
-                            if (yyaccept <= 57) {
-                                goto yy705;
+                            if (yyaccept == 57) {
+                                goto yy695;
                             } else {
-                                goto yy711;
+                                goto yy699;
                             }
                         } else {
-                            if (yyaccept <= 59) {
-                                goto yy718;
+                            if (yyaccept == 59) {
+                                goto yy701;
                             } else {
-                                goto yy727;
+                                goto yy703;
                             }
                         }
                     } else {
                         if (yyaccept <= 62) {
-                            if (yyaccept <= 61) {
-                                goto yy732;
+                            if (yyaccept == 61) {
+                                goto yy705;
                             } else {
-                                goto yy735;
+                                goto yy707;
                             }
                         } else {
-                            if (yyaccept <= 63) {
-                                goto yy739;
+                            if (yyaccept == 63) {
+                                goto yy712;
                             } else {
-                                goto yy746;
+                                goto yy718;
                             }
                         }
                     }
                 } else {
                     if (yyaccept <= 68) {
                         if (yyaccept <= 66) {
-                            if (yyaccept <= 65) {
-                                goto yy756;
+                            if (yyaccept == 65) {
+                                goto yy722;
                             } else {
-                                goto yy759;
+                                goto yy724;
                             }
                         } else {
-                            if (yyaccept <= 67) {
-                                goto yy763;
+                            if (yyaccept == 67) {
+                                goto yy726;
                             } else {
-                                goto yy769;
+                                goto yy728;
                             }
                         }
                     } else {
                         if (yyaccept <= 70) {
-                            if (yyaccept <= 69) {
-                                goto yy771;
+                            if (yyaccept == 69) {
+                                goto yy730;
                             } else {
-                                goto yy779;
+                                goto yy732;
                             }
                         } else {
-                            goto yy786;
+                            goto yy737;
                         }
                     }
                 }
@@ -1113,53 +1075,53 @@ yy99:
                 if (yyaccept <= 78) {
                     if (yyaccept <= 75) {
                         if (yyaccept <= 73) {
-                            if (yyaccept <= 72) {
-                                goto yy790;
+                            if (yyaccept == 72) {
+                                goto yy744;
                             } else {
-                                goto yy792;
+                                goto yy759;
                             }
                         } else {
-                            if (yyaccept <= 74) {
-                                goto yy797;
+                            if (yyaccept == 74) {
+                                goto yy761;
                             } else {
-                                goto yy801;
+                                goto yy763;
                             }
                         }
                     } else {
                         if (yyaccept <= 77) {
-                            if (yyaccept <= 76) {
-                                goto yy806;
+                            if (yyaccept == 76) {
+                                goto yy765;
                             } else {
-                                goto yy810;
+                                goto yy769;
                             }
                         } else {
-                            goto yy819;
+                            goto yy772;
                         }
                     }
                 } else {
                     if (yyaccept <= 82) {
                         if (yyaccept <= 80) {
-                            if (yyaccept <= 79) {
-                                goto yy821;
+                            if (yyaccept == 79) {
+                                goto yy774;
                             } else {
-                                goto yy825;
+                                goto yy782;
                             }
                         } else {
-                            if (yyaccept <= 81) {
-                                goto yy829;
+                            if (yyaccept == 81) {
+                                goto yy786;
                             } else {
-                                goto yy838;
+                                goto yy790;
                             }
                         }
                     } else {
                         if (yyaccept <= 84) {
-                            if (yyaccept <= 83) {
-                                goto yy843;
+                            if (yyaccept == 83) {
+                                goto yy793;
                             } else {
-                                goto yy848;
+                                goto yy801;
                             }
                         } else {
-                            goto yy851;
+                            goto yy805;
                         }
                     }
                 }
@@ -1169,53 +1131,53 @@ yy99:
                 if (yyaccept <= 92) {
                     if (yyaccept <= 89) {
                         if (yyaccept <= 87) {
-                            if (yyaccept <= 86) {
-                                goto yy854;
+                            if (yyaccept == 86) {
+                                goto yy808;
                             } else {
-                                goto yy857;
+                                goto yy811;
                             }
                         } else {
-                            if (yyaccept <= 88) {
-                                goto yy869;
+                            if (yyaccept == 88) {
+                                goto yy815;
                             } else {
-                                goto yy874;
+                                goto yy820;
                             }
                         }
                     } else {
                         if (yyaccept <= 91) {
-                            if (yyaccept <= 90) {
-                                goto yy881;
+                            if (yyaccept == 90) {
+                                goto yy822;
                             } else {
-                                goto yy886;
+                                goto yy824;
                             }
                         } else {
-                            goto yy892;
+                            goto yy828;
                         }
                     }
                 } else {
                     if (yyaccept <= 96) {
                         if (yyaccept <= 94) {
-                            if (yyaccept <= 93) {
-                                goto yy901;
+                            if (yyaccept == 93) {
+                                goto yy830;
                             } else {
-                                goto yy908;
+                                goto yy833;
                             }
                         } else {
-                            if (yyaccept <= 95) {
-                                goto yy910;
+                            if (yyaccept == 95) {
+                                goto yy836;
                             } else {
-                                goto yy916;
+                                goto yy838;
                             }
                         }
                     } else {
                         if (yyaccept <= 98) {
-                            if (yyaccept <= 97) {
-                                goto yy921;
+                            if (yyaccept == 97) {
+                                goto yy841;
                             } else {
-                                goto yy925;
+                                goto yy846;
                             }
                         } else {
-                            goto yy928;
+                            goto yy849;
                         }
                     }
                 }
@@ -1223,7486 +1185,6134 @@ yy99:
                 if (yyaccept <= 106) {
                     if (yyaccept <= 103) {
                         if (yyaccept <= 101) {
-                            if (yyaccept <= 100) {
-                                goto yy934;
+                            if (yyaccept == 100) {
+                                goto yy851;
                             } else {
-                                goto yy938;
+                                goto yy853;
                             }
                         } else {
-                            if (yyaccept <= 102) {
-                                goto yy943;
+                            if (yyaccept == 102) {
+                                goto yy862;
                             } else {
-                                goto yy945;
+                                goto yy864;
                             }
                         }
                     } else {
                         if (yyaccept <= 105) {
-                            if (yyaccept <= 104) {
-                                goto yy952;
+                            if (yyaccept == 104) {
+                                goto yy866;
                             } else {
-                                goto yy955;
+                                goto yy869;
                             }
                         } else {
-                            goto yy960;
+                            goto yy872;
                         }
                     }
                 } else {
                     if (yyaccept <= 110) {
                         if (yyaccept <= 108) {
-                            if (yyaccept <= 107) {
-                                goto yy963;
+                            if (yyaccept == 107) {
+                                goto yy874;
                             } else {
-                                goto yy970;
+                                goto yy889;
                             }
                         } else {
-                            if (yyaccept <= 109) {
-                                goto yy972;
+                            if (yyaccept == 109) {
+                                goto yy906;
                             } else {
-                                goto yy974;
+                                goto yy910;
                             }
                         }
                     } else {
                         if (yyaccept <= 112) {
-                            if (yyaccept <= 111) {
-                                goto yy978;
+                            if (yyaccept == 111) {
+                                goto yy914;
                             } else {
-                                goto yy985;
+                                goto yy917;
                             }
                         } else {
-                            goto yy987;
+                            goto yy921;
                         }
                     }
                 }
             }
         }
     }
-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;
-    }
+    ++YYCURSOR;
 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;
-    }
+#line 255 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_STRINGLIT); }
+#line 1247 "strict_cpp_re.inc"
 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;
+    ++YYCURSOR;
+    if (YYLIMIT <= YYCURSOR) YYFILL(1);
+    yych = *YYCURSOR;
+    if (yybm[0+yych] & 1) {
+        goto yy98;
     }
+    if (yych <= 0x1F) goto yy100;
+    if (yych <= '"') goto yy101;
+    if (yych <= '?') goto yy255;
 yy104:
-    yych = *++YYCURSOR;
-    if (yych <= '@') {
-        if (yych <= '/') goto yy99;
-        if (yych >= ':') goto yy99;
+    ++YYCURSOR;
+    if (YYLIMIT <= YYCURSOR) YYFILL(1);
+    yych = *YYCURSOR;
+    if (yych <= '`') {
+        if (yych <= '7') {
+            if (yych <= '&') {
+                if (yych == '"') goto yy98;
+                goto yy100;
+            } else {
+                if (yych <= '\'') goto yy98;
+                if (yych <= '/') goto yy100;
+                goto yy98;
+            }
+        } else {
+            if (yych <= 'T') {
+                if (yych == '?') goto yy98;
+                goto yy100;
+            } else {
+                if (yych <= 'U') goto yy257;
+                if (yych == '\\') goto yy98;
+                goto yy100;
+            }
+        }
     } else {
-        if (yych <= 'F') goto yy105;
-        if (yych <= '`') goto yy99;
-        if (yych >= 'g') goto yy99;
+        if (yych <= 'r') {
+            if (yych <= 'f') {
+                if (yych <= 'b') goto yy98;
+                if (yych <= 'e') goto yy100;
+                goto yy98;
+            } else {
+                if (yych == 'n') goto yy98;
+                if (yych <= 'q') goto yy100;
+                goto yy98;
+            }
+        } else {
+            if (yych <= 'u') {
+                if (yych <= 's') goto yy100;
+                if (yych <= 't') goto yy98;
+                goto yy258;
+            } else {
+                if (yych <= 'v') goto yy98;
+                if (yych == 'x') goto yy259;
+                goto yy100;
+            }
+        }
     }
 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;
-    }
+    ++YYCURSOR;
+    if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12);
+    yych = *YYCURSOR;
 yy106:
-    yych = *++YYCURSOR;
-    if (yych <= '@') {
-        if (yych <= '/') goto yy99;
-        if (yych >= ':') goto yy99;
+    if (yych <= 'h') {
+        if (yych <= ' ') {
+            if (yych <= '\n') {
+                if (yych == '\t') goto yy105;
+                goto yy100;
+            } else {
+                if (yych <= '\f') goto yy105;
+                if (yych <= 0x1F) goto yy100;
+                goto yy105;
+            }
+        } else {
+            if (yych <= 'c') {
+                if (yych == '/') goto yy109;
+                goto yy100;
+            } else {
+                if (yych <= 'd') goto yy111;
+                if (yych <= 'e') goto yy112;
+                goto yy100;
+            }
+        }
     } else {
-        if (yych <= 'F') goto yy107;
-        if (yych <= '`') goto yy99;
-        if (yych >= 'g') goto yy99;
+        if (yych <= 'q') {
+            if (yych <= 'l') {
+                if (yych <= 'i') goto yy113;
+                if (yych <= 'k') goto yy100;
+                goto yy114;
+            } else {
+                if (yych == 'p') goto yy115;
+                goto yy100;
+            }
+        } else {
+            if (yych <= 'u') {
+                if (yych <= 'r') goto yy116;
+                if (yych <= 't') goto yy100;
+                goto yy117;
+            } else {
+                if (yych == 'w') goto yy118;
+                goto yy100;
+            }
+        }
     }
 yy107:
-    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;
+    ++YYCURSOR;
+#line 153 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_POUND_POUND); }
+#line 1355 "strict_cpp_re.inc"
 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;
+    if (yych == '*') goto yy260;
+    goto yy100;
+yy110:
+    yych = *++YYCURSOR;
+    if (yych == '?') goto yy262;
+    goto yy100;
 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;
+    yych = *++YYCURSOR;
+    if (yych == 'e') goto yy263;
+    goto yy100;
+yy112:
+    yych = *++YYCURSOR;
+    if (yych <= 'm') {
+        if (yych == 'l') goto yy264;
+        goto yy100;
     } else {
-        if (yych <= 'F') goto yy122;
-        if (yych <= '`') goto yy99;
-        if (yych <= 'f') goto yy122;
-        goto yy99;
+        if (yych <= 'n') goto yy265;
+        if (yych == 'r') goto yy266;
+        goto yy100;
     }
+yy113:
+    yych = *++YYCURSOR;
+    if (yych == 'f') goto yy267;
+    if (yych == 'n') goto yy269;
+    goto yy100;
 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;
-    }
+    yych = *++YYCURSOR;
+    if (yych == 'i') goto yy270;
+    goto yy100;
 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;
-    }
+    yych = *++YYCURSOR;
+    if (yych == 'r') goto yy271;
+    goto yy100;
 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;
-    }
+    yych = *++YYCURSOR;
+    if (yych == 'e') goto yy272;
+    goto yy100;
 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;
-    }
+    yych = *++YYCURSOR;
+    if (yych == 'n') goto yy273;
+    goto yy100;
 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;
-    }
+    yych = *++YYCURSOR;
+    if (yych == 'a') goto yy274;
+    goto yy100;
 yy119:
-    ++YYCURSOR;
-    if (YYLIMIT <= YYCURSOR) YYFILL(1);
-    yych = *YYCURSOR;
-    if (yych <= '@') {
-        if (yych <= '/') goto yy99;
-        if (yych >= ':') goto yy99;
+    yyaccept = 6;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych <= 'e') {
+        if (yych <= ' ') {
+            if (yych <= '\n') {
+                if (yych == '\t') goto yy106;
+            } else {
+                if (yych <= '\f') goto yy106;
+                if (yych >= ' ') goto yy106;
+            }
+        } else {
+            if (yych <= '.') {
+                if (yych == '%') goto yy275;
+            } else {
+                if (yych <= '/') goto yy106;
+                if (yych >= 'd') goto yy106;
+            }
+        }
     } else {
-        if (yych <= 'F') goto yy120;
-        if (yych <= '`') goto yy99;
-        if (yych >= 'g') goto yy99;
+        if (yych <= 'p') {
+            if (yych <= 'k') {
+                if (yych == 'i') goto yy106;
+            } else {
+                if (yych <= 'l') goto yy106;
+                if (yych >= 'p') goto yy106;
+            }
+        } else {
+            if (yych <= 't') {
+                if (yych == 'r') goto yy106;
+            } else {
+                if (yych == 'v') goto yy120;
+                if (yych <= 'w') goto yy106;
+            }
+        }
     }
 yy120:
-    ++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;
-    }
+#line 151 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_POUND_ALT); }
+#line 1444 "strict_cpp_re.inc"
 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:
+#line 210 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_PERCENTASSIGN); }
+#line 1449 "strict_cpp_re.inc"
+yy123:
+    ++YYCURSOR;
+#line 143 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_RIGHTBRACE_ALT); }
+#line 1454 "strict_cpp_re.inc"
+yy125:
+    ++YYCURSOR;
+#line 228 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_ANDAND); }
+#line 1459 "strict_cpp_re.inc"
+yy127:
+    ++YYCURSOR;
+#line 214 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_ANDASSIGN); }
+#line 1464 "strict_cpp_re.inc"
+yy129:
     ++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;
+yy130:
+    if (yybm[0+yych] & 2) {
+        goto yy129;
     }
-yy123:
+    if (yych <= 0x1F) goto yy100;
+    if (yych <= '\'') goto yy276;
+    if (yych >= '@') goto yy132;
+yy131:
     ++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;
+    if (yybm[0+yych] & 2) {
+        goto yy129;
     }
-yy124:
+    if (yych <= 0x1F) goto yy100;
+    if (yych <= '\'') goto yy276;
+    if (yych <= '?') goto yy278;
+yy132:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
-    if (yych <= '@') {
-        if (yych <= '/') goto yy99;
-        if (yych <= '9') goto yy108;
-        goto yy99;
+    if (yych <= '`') {
+        if (yych <= '7') {
+            if (yych <= '&') {
+                if (yych == '"') goto yy129;
+                goto yy100;
+            } else {
+                if (yych <= '\'') goto yy129;
+                if (yych <= '/') goto yy100;
+                goto yy129;
+            }
+        } else {
+            if (yych <= 'T') {
+                if (yych == '?') goto yy129;
+                goto yy100;
+            } else {
+                if (yych <= 'U') goto yy280;
+                if (yych == '\\') goto yy129;
+                goto yy100;
+            }
+        }
     } 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 "strict_cpp.re"
-    { 
-            if (s->act_in_cpp0x_mode) 
-                goto extstringlit; 
-            --YYCURSOR;
-            BOOST_WAVE_RET(T_IDENTIFIER);
-        }
-#line 1584 "strict_cpp_re.inc"
-yy131:
-    ++YYCURSOR;
-#line 266 "strict_cpp.re"
-    { 
-            if (s->act_in_cpp0x_mode) 
-                goto extcharlit; 
-            --YYCURSOR;
-            BOOST_WAVE_RET(T_IDENTIFIER);
+        if (yych <= 'r') {
+            if (yych <= 'f') {
+                if (yych <= 'b') goto yy129;
+                if (yych <= 'e') goto yy100;
+                goto yy129;
+            } else {
+                if (yych == 'n') goto yy129;
+                if (yych <= 'q') goto yy100;
+                goto yy129;
+            }
+        } else {
+            if (yych <= 'u') {
+                if (yych <= 's') goto yy100;
+                if (yych <= 't') goto yy129;
+                goto yy281;
+            } else {
+                if (yych <= 'v') goto yy129;
+                if (yych == 'x') goto yy282;
+                goto yy100;
+            }
         }
-#line 1594 "strict_cpp_re.inc"
+    }
 yy133:
     ++YYCURSOR;
-#line 282 "strict_cpp.re"
-    { 
-            if (s->act_in_cpp0x_mode) 
-                goto extrawstringlit; 
-            --YYCURSOR;
-            BOOST_WAVE_RET(T_IDENTIFIER);
-        }
-#line 1604 "strict_cpp_re.inc"
+#line 208 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_STARASSIGN); }
+#line 1537 "strict_cpp_re.inc"
 yy135:
     ++YYCURSOR;
-#line 258 "strict_cpp.re"
-    { 
-            if (s->act_in_cpp0x_mode) 
-                goto extrawstringlit; 
-            --YYCURSOR;
-            BOOST_WAVE_RET(T_IDENTIFIER);
-        }
-#line 1614 "strict_cpp_re.inc"
+#line 235 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_PLUSPLUS); }
+#line 1542 "strict_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;
+#line 206 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_PLUSASSIGN); }
+#line 1547 "strict_cpp_re.inc"
 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:
+#line 236 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_MINUSMINUS); }
+#line 1552 "strict_cpp_re.inc"
+yy141:
     ++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;
+#line 207 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_MINUSASSIGN); }
+#line 1557 "strict_cpp_re.inc"
+yy143:
+    yych = *++YYCURSOR;
+    if (yych == '*') goto yy283;
+#line 248 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_ARROW); }
+#line 1563 "strict_cpp_re.inc"
+yy145:
+    ++YYCURSOR;
+#line 176 "strict_cpp.re"
+    {
+            if (s->act_in_c99_mode) {
+                --YYCURSOR;
+                BOOST_WAVE_RET(T_DOT);
             }
-        } else {
-            if (yych <= 'T') {
-                if (yych == '?') goto yy145;
-                goto yy99;
-            } else {
-                if (yych <= 'U') goto yy144;
-                if (yych == '\\') goto yy137;
-                goto yy99;
+            else {
+                BOOST_WAVE_RET(T_DOTSTAR);
             }
         }
-    } 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;
+#line 1576 "strict_cpp_re.inc"
+yy147:
+    yych = *++YYCURSOR;
+    if (yych == '.') goto yy285;
+    goto yy100;
+yy148:
+    ++YYCURSOR;
+#line 43 "strict_cpp.re"
+    { goto ccomment; }
+#line 1585 "strict_cpp_re.inc"
+yy150:
+    ++YYCURSOR;
+#line 44 "strict_cpp.re"
+    { goto cppcomment; }
+#line 1590 "strict_cpp_re.inc"
+yy152:
+    ++YYCURSOR;
+#line 209 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_DIVIDEASSIGN); }
+#line 1595 "strict_cpp_re.inc"
+yy154:
+    ++YYCURSOR;
+#line 165 "strict_cpp.re"
+    {
+            if (s->act_in_c99_mode) {
+                --YYCURSOR;
+                BOOST_WAVE_RET(T_COLON);
             }
-        } 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;
+            else {
+                BOOST_WAVE_RET(T_COLON_COLON);
             }
         }
-    }
-yy141:
-    ++YYCURSOR;
-yy142:
-#line 255 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_STRINGLIT); }
-#line 1688 "strict_cpp_re.inc"
-yy143:
+#line 1608 "strict_cpp_re.inc"
+yy156:
     ++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:
+#line 149 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_RIGHTBRACKET_ALT); }
+#line 1613 "strict_cpp_re.inc"
+yy158:
     ++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:
+#line 140 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_LEFTBRACE_ALT); }
+#line 1618 "strict_cpp_re.inc"
+yy160:
     ++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:
+#line 146 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_LEFTBRACKET_ALT); }
+#line 1623 "strict_cpp_re.inc"
+yy162:
+    yych = *++YYCURSOR;
+    if (yych == '=') goto yy287;
+#line 219 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_SHIFTLEFT); }
+#line 1629 "strict_cpp_re.inc"
+yy164:
     ++YYCURSOR;
-    if (YYLIMIT <= YYCURSOR) YYFILL(1);
-    yych = *YYCURSOR;
-    if (yybm[256+yych] & 128) {
-        goto yy149;
-    }
-    goto yy99;
-yy147:
+#line 226 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_LESSEQUAL); }
+#line 1634 "strict_cpp_re.inc"
+yy166:
     ++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;
-        }
-    }
+#line 223 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_EQUAL); }
+#line 1639 "strict_cpp_re.inc"
+yy168:
     ++YYCURSOR;
-    if (YYLIMIT <= YYCURSOR) YYFILL(1);
-    yych = *YYCURSOR;
-    if (yybm[256+yych] & 64) {
-        goto yy137;
+#line 227 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_GREATEREQUAL); }
+#line 1644 "strict_cpp_re.inc"
+yy170:
+    yych = *++YYCURSOR;
+    if (yych == '=') goto yy289;
+#line 220 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_SHIFTRIGHT); }
+#line 1650 "strict_cpp_re.inc"
+yy172:
+    yych = *++YYCURSOR;
+    switch (yych) {
+    case '!':    goto yy291;
+    case '\'':    goto yy293;
+    case '(':    goto yy295;
+    case ')':    goto yy297;
+    case '-':    goto yy299;
+    case '/':    goto yy301;
+    case '<':    goto yy303;
+    case '=':    goto yy305;
+    case '>':    goto yy307;
+    default:    goto yy100;
     }
-    if (yych <= '!') goto yy99;
-    if (yych <= '"') goto yy141;
-    if (yych <= '[') goto yy139;
-    goto yy140;
-yy149:
+yy173:
     ++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:
+    if (yych == '?') goto yy309;
+    goto yy100;
+yy174:
     ++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:
+    if (yych == 'U') goto yy183;
+    if (yych == 'u') goto yy184;
+    goto yy100;
+yy175:
+    yych = *++YYCURSOR;
+    if (yych == '\'') goto yy100;
+    goto yy130;
+yy176:
     ++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;
+#line 258 "strict_cpp.re"
+    {
+            if (s->act_in_cpp0x_mode)
+                goto extrawstringlit;
+            --YYCURSOR;
+            BOOST_WAVE_RET(T_IDENTIFIER);
         }
-    }
-yy154:
+#line 1691 "strict_cpp_re.inc"
+yy178:
     ++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;
-            }
+#line 274 "strict_cpp.re"
+    {
+            if (s->act_in_cpp0x_mode)
+                goto extstringlit;
+            --YYCURSOR;
+            BOOST_WAVE_RET(T_IDENTIFIER);
         }
-    } 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;
-            }
+#line 1701 "strict_cpp_re.inc"
+yy180:
+    ++YYCURSOR;
+#line 266 "strict_cpp.re"
+    {
+            if (s->act_in_cpp0x_mode)
+                goto extcharlit;
+            --YYCURSOR;
+            BOOST_WAVE_RET(T_IDENTIFIER);
         }
-    }
+#line 1711 "strict_cpp_re.inc"
+yy182:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == '"') goto yy310;
+    goto yy55;
+yy183:
     ++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;
-            }
-        }
+    if (yych <= '@') {
+        if (yych <= '/') goto yy100;
+        if (yych <= '9') goto yy312;
+        goto yy100;
     } 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;
-            }
-        }
+        if (yych <= 'F') goto yy312;
+        if (yych <= '`') goto yy100;
+        if (yych <= 'f') goto yy312;
+        goto yy100;
     }
-yy157:
+yy184:
     ++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;
-            }
-        }
+    if (yych <= '@') {
+        if (yych <= '/') goto yy100;
+        if (yych <= '9') goto yy313;
+        goto yy100;
     } 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;
-            }
-        }
+        if (yych <= 'F') goto yy313;
+        if (yych <= '`') goto yy100;
+        if (yych <= 'f') goto yy313;
+        goto yy100;
     }
-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:
+yy185:
     ++YYCURSOR;
-    if (YYLIMIT <= YYCURSOR) YYFILL(1);
-    yych = *YYCURSOR;
-    if (yybm[256+yych] & 64) {
-        goto yy137;
+#line 211 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_XORASSIGN); }
+#line 1749 "strict_cpp_re.inc"
+yy187:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    switch (yych) {
+    case 'a':    goto yy188;
+    case 'b':    goto yy189;
+    case 'c':    goto yy190;
+    case 'd':    goto yy191;
+    case 'e':    goto yy314;
+    case 'f':    goto yy315;
+    case 'i':    goto yy316;
+    case 'l':    goto yy317;
+    case 's':    goto yy194;
+    case 't':    goto yy318;
+    default:    goto yy55;
     }
-    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;
+yy188:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 's') goto yy319;
+    goto yy55;
+yy189:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'a') goto yy320;
+    goto yy55;
+yy190:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'd') goto yy321;
+    goto yy55;
+yy191:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'e') goto yy322;
+    goto yy55;
+yy192:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'a') goto yy323;
+    goto yy55;
+yy193:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'n') goto yy324;
+    goto yy55;
+yy194:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 't') goto yy325;
+    goto yy55;
+yy195:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'i') goto yy326;
+    goto yy55;
+yy196:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'd') goto yy327;
+    goto yy55;
+yy197:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'm') goto yy329;
+    goto yy55;
+yy198:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 't') goto yy331;
+    goto yy55;
+yy199:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 't') goto yy332;
+    goto yy55;
+yy200:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'o') goto yy333;
+    goto yy55;
+yy201:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'e') goto yy334;
+    goto yy55;
+yy202:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych <= 'r') goto yy55;
+    if (yych <= 's') goto yy335;
+    if (yych <= 't') goto yy336;
+    goto yy55;
+yy203:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'a') goto yy337;
+    goto yy55;
+yy204:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'a') goto yy338;
+    goto yy55;
+yy205:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych <= 'l') goto yy55;
+    if (yych <= 'm') goto yy339;
+    if (yych <= 'n') goto yy340;
+    goto yy55;
+yy206:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych <= 'e') {
+        if (yych == 'c') goto yy341;
+        goto yy55;
+    } else {
+        if (yych <= 'f') goto yy342;
+        if (yych == 'l') goto yy343;
+        goto yy55;
     }
-    if (yych <= '!') {
-        if (yych <= '\n') {
-            if (yych == '\t') goto yy137;
-            goto yy99;
+yy207:
+    yyaccept = 7;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych <= '[') {
+        if (yych <= '>') {
+            if (yych <= '/') goto yy208;
+            if (yych <= '9') goto yy54;
         } else {
-            if (yych <= '\f') goto yy137;
-            if (yych <= 0x1F) goto yy99;
-            goto yy137;
+            if (yych <= '?') goto yy173;
+            if (yych <= '@') goto yy208;
+            if (yych <= 'Z') goto yy54;
         }
     } else {
-        if (yych <= '/') {
-            if (yych <= '"') goto yy141;
-            if (yych <= '.') goto yy137;
-            goto yy154;
+        if (yych <= '`') {
+            if (yych <= '\\') goto yy174;
+            if (yych == '_') goto yy54;
         } else {
-            if (yych == '\\') goto yy140;
-            goto yy137;
+            if (yych == 'u') goto yy344;
+            if (yych <= 'z') goto yy54;
         }
     }
-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;
+yy208:
+#line 66 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_DO); }
+#line 1895 "strict_cpp_re.inc"
+yy209:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'n') goto yy345;
+    goto yy55;
+yy210:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 's') goto yy346;
+    goto yy55;
+yy211:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'u') goto yy347;
+    goto yy55;
+yy212:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'p') goto yy348;
+    if (yych == 't') goto yy349;
+    goto yy55;
+yy213:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'l') goto yy350;
+    goto yy55;
+yy214:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'o') goto yy351;
+    goto yy55;
+yy215:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'r') goto yy352;
+    goto yy55;
+yy216:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'i') goto yy354;
+    goto yy55;
+yy217:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 't') goto yy355;
+    goto yy55;
+yy218:
+    yyaccept = 8;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy219:
+#line 79 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_IF); }
+#line 1953 "strict_cpp_re.inc"
+yy220:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'p') goto yy356;
+    goto yy55;
+yy221:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'l') goto yy357;
+    if (yych == 't') goto yy358;
+    goto yy55;
+yy222:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'n') goto yy360;
+    goto yy55;
+yy223:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 't') goto yy361;
+    goto yy55;
+yy224:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'm') goto yy362;
+    goto yy55;
+yy225:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'w') goto yy363;
+    goto yy55;
+yy226:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'e') goto yy365;
+    if (yych == 't') goto yy366;
+    goto yy55;
+yy227:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'l') goto yy368;
+    goto yy55;
+yy228:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'e') goto yy369;
+    goto yy55;
+yy229:
+    yyaccept = 9;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych <= 'Z') {
+        if (yych <= '>') {
+            if (yych <= '/') goto yy230;
+            if (yych <= '9') goto yy54;
         } else {
-            if (yych <= '!') {
-                if (yych <= 0x1F) goto yy99;
-                goto yy137;
-            } else {
-                if (yych <= '"') goto yy141;
-                if (yych <= '/') goto yy137;
-            }
+            if (yych <= '?') goto yy173;
+            if (yych >= 'A') goto yy54;
         }
     } else {
-        if (yych <= 'F') {
-            if (yych == '?') goto yy139;
-            if (yych <= '@') goto yy137;
+        if (yych <= '^') {
+            if (yych == '\\') goto yy174;
         } else {
-            if (yych <= '\\') {
-                if (yych <= '[') goto yy137;
-                goto yy140;
-            } else {
-                if (yych <= '`') goto yy137;
-                if (yych >= 'g') goto yy137;
-            }
+            if (yych <= '_') goto yy370;
+            if (yych <= '`') goto yy230;
+            if (yych <= 'z') goto yy54;
         }
     }
+yy230:
+#line 233 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OROR_ALT); }
+#line 2024 "strict_cpp_re.inc"
+yy231:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'i') goto yy371;
+    if (yych == 'o') goto yy372;
+    goto yy55;
+yy232:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'b') goto yy373;
+    goto yy55;
+yy233:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych <= 'h') {
+        if (yych == 'g') goto yy374;
+        goto yy55;
+    } else {
+        if (yych <= 'i') goto yy375;
+        if (yych == 't') goto yy376;
+        goto yy55;
+    }
+yy234:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'o') goto yy377;
+    goto yy55;
+yy235:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'g') goto yy378;
+    if (yych == 'z') goto yy379;
+    goto yy55;
+yy236:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'a') goto yy380;
+    if (yych == 'r') goto yy381;
+    goto yy55;
+yy237:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'i') goto yy382;
+    goto yy55;
+yy238:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'm') goto yy383;
+    goto yy55;
+yy239:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'i') goto yy384;
+    if (yych == 'r') goto yy385;
+    goto yy55;
+yy240:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'u') goto yy386;
+    if (yych == 'y') goto yy387;
+    goto yy55;
+yy241:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'p') goto yy389;
+    goto yy55;
+yy242:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == '"') goto yy178;
+    if (yych == 'R') goto yy182;
+    goto yy55;
+yy243:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'i') goto yy390;
+    if (yych == 's') goto yy391;
+    goto yy55;
+yy244:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'i') goto yy392;
+    goto yy55;
+yy245:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'r') goto yy393;
+    goto yy55;
+yy246:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'i') goto yy394;
+    if (yych == 'l') goto yy395;
+    goto yy55;
+yy247:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'h') goto yy396;
+    goto yy55;
+yy248:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'i') goto yy397;
+    goto yy55;
+yy249:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'r') goto yy398;
+    goto yy55;
+yy250:
+    ++YYCURSOR;
+#line 216 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_ORASSIGN); }
+#line 2138 "strict_cpp_re.inc"
+yy252:
+    yych = *++YYCURSOR;
+    if (yych == '?') goto yy400;
+    goto yy100;
+yy253:
+    ++YYCURSOR;
+#line 230 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_OROR); }
+#line 2147 "strict_cpp_re.inc"
+yy255:
     ++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;
+    if (yybm[0+yych] & 4) {
+        goto yy255;
+    }
+    if (yych <= '!') {
+        if (yych <= '\n') {
+            if (yych == '\t') goto yy98;
+            goto yy100;
         } else {
-            if (yych <= '!') {
-                if (yych <= 0x1F) goto yy99;
-                goto yy137;
-            } else {
-                if (yych <= '"') goto yy141;
-                if (yych <= '/') goto yy137;
-            }
+            if (yych <= '\f') goto yy98;
+            if (yych <= 0x1F) goto yy100;
+            goto yy98;
         }
     } else {
-        if (yych <= 'F') {
-            if (yych == '?') goto yy139;
-            if (yych <= '@') goto yy137;
+        if (yych <= '/') {
+            if (yych <= '"') goto yy101;
+            if (yych <= '.') goto yy98;
+            goto yy401;
         } else {
-            if (yych <= '\\') {
-                if (yych <= '[') goto yy137;
-                goto yy140;
-            } else {
-                if (yych <= '`') goto yy137;
-                if (yych >= 'g') goto yy137;
-            }
+            if (yych == '\\') goto yy104;
+            goto yy98;
         }
     }
+yy257:
     ++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;
-            }
-        }
+    if (yych <= '@') {
+        if (yych <= '/') goto yy100;
+        if (yych <= '9') goto yy403;
+        goto yy100;
     } 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;
-            }
-        }
+        if (yych <= 'F') goto yy403;
+        if (yych <= '`') goto yy100;
+        if (yych <= 'f') goto yy403;
+        goto yy100;
     }
+yy258:
     ++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;
-            }
-        }
+    if (yych <= '@') {
+        if (yych <= '/') goto yy100;
+        if (yych <= '9') goto yy404;
+        goto yy100;
     } 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;
-            }
-        }
+        if (yych <= 'F') goto yy404;
+        if (yych <= '`') goto yy100;
+        if (yych <= 'f') goto yy404;
+        goto yy100;
     }
+yy259:
     ++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;
-            }
-        }
+    if (yych <= '@') {
+        if (yych <= '/') goto yy100;
+        if (yych <= '9') goto yy98;
+        goto yy100;
     } 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;
-            }
-        }
+        if (yych <= 'F') goto yy98;
+        if (yych <= '`') goto yy100;
+        if (yych <= 'f') goto yy98;
+        goto yy100;
     }
+yy260:
     ++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 (yybm[0+yych] & 8) {
+        goto yy260;
     }
-    if (yych <= '!') goto yy99;
-    if (yych <= '"') goto yy141;
-    if (yych <= '[') goto yy139;
-    goto yy140;
-yy168:
+    if (yych <= 0x1F) goto yy100;
+    goto yy405;
+yy262:
+    yych = *++YYCURSOR;
+    if (yych == '=') goto yy407;
+    goto yy100;
+yy263:
+    yych = *++YYCURSOR;
+    if (yych == 'f') goto yy409;
+    goto yy100;
+yy264:
+    yych = *++YYCURSOR;
+    if (yych == 'i') goto yy410;
+    if (yych == 's') goto yy411;
+    goto yy100;
+yy265:
+    yych = *++YYCURSOR;
+    if (yych == 'd') goto yy412;
+    goto yy100;
+yy266:
+    yych = *++YYCURSOR;
+    if (yych == 'r') goto yy413;
+    goto yy100;
+yy267:
+    yyaccept = 10;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'd') goto yy414;
+    if (yych == 'n') goto yy415;
+yy268:
+#line 301 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_PP_IF); }
+#line 2254 "strict_cpp_re.inc"
+yy269:
+    yych = *++YYCURSOR;
+    if (yych == 'c') goto yy416;
+    goto yy100;
+yy270:
+    yych = *++YYCURSOR;
+    if (yych == 'n') goto yy417;
+    goto yy100;
+yy271:
+    yych = *++YYCURSOR;
+    if (yych == 'a') goto yy418;
+    goto yy100;
+yy272:
+    yych = *++YYCURSOR;
+    if (yych == 'g') goto yy419;
+    goto yy100;
+yy273:
+    yych = *++YYCURSOR;
+    if (yych == 'd') goto yy420;
+    goto yy100;
+yy274:
+    yych = *++YYCURSOR;
+    if (yych == 'r') goto yy421;
+    goto yy100;
+yy275:
+    yych = *++YYCURSOR;
+    if (yych == ':') goto yy422;
+    goto yy100;
+yy276:
     ++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;
-            }
-        }
-    }
+yy277:
+#line 252 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_CHARLIT); }
+#line 2288 "strict_cpp_re.inc"
+yy278:
     ++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;
+    if (yych <= '\'') {
+        if (yych <= '\n') {
+            if (yych == '\t') goto yy129;
+            goto yy100;
         } else {
-            if (yych <= '!') {
-                if (yych <= 0x1F) goto yy99;
-                goto yy137;
-            } else {
-                if (yych <= '"') goto yy141;
-                if (yych <= '/') goto yy137;
-            }
+            if (yych <= '\f') goto yy129;
+            if (yych <= 0x1F) goto yy100;
+            if (yych <= '&') goto yy129;
+            goto yy276;
         }
     } else {
-        if (yych <= 'F') {
-            if (yych == '?') goto yy139;
-            if (yych <= '@') goto yy137;
+        if (yych <= '>') {
+            if (yych == '/') goto yy424;
+            goto yy129;
         } else {
-            if (yych <= '\\') {
-                if (yych <= '[') goto yy137;
-                goto yy140;
-            } else {
-                if (yych <= '`') goto yy137;
-                if (yych >= 'g') goto yy137;
-            }
+            if (yych <= '?') goto yy278;
+            if (yych == '\\') goto yy132;
+            goto yy129;
         }
     }
-    ++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:
+yy280:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy99;
-        if (yych >= ':') goto yy99;
+        if (yych <= '/') goto yy100;
+        if (yych <= '9') goto yy426;
+        goto yy100;
     } else {
-        if (yych <= 'F') goto yy174;
-        if (yych <= '`') goto yy99;
-        if (yych >= 'g') goto yy99;
+        if (yych <= 'F') goto yy426;
+        if (yych <= '`') goto yy100;
+        if (yych <= 'f') goto yy426;
+        goto yy100;
     }
-yy174:
+yy281:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy99;
-        if (yych >= ':') goto yy99;
+        if (yych <= '/') goto yy100;
+        if (yych <= '9') goto yy427;
+        goto yy100;
     } else {
-        if (yych <= 'F') goto yy175;
-        if (yych <= '`') goto yy99;
-        if (yych >= 'g') goto yy99;
+        if (yych <= 'F') goto yy427;
+        if (yych <= '`') goto yy100;
+        if (yych <= 'f') goto yy427;
+        goto yy100;
     }
-yy175:
+yy282:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy99;
-        if (yych >= ':') goto yy99;
+        if (yych <= '/') goto yy100;
+        if (yych <= '9') goto yy129;
+        goto yy100;
     } else {
-        if (yych <= 'F') goto yy176;
-        if (yych <= '`') goto yy99;
-        if (yych >= 'g') goto yy99;
+        if (yych <= 'F') goto yy129;
+        if (yych <= '`') goto yy100;
+        if (yych <= 'f') goto yy129;
+        goto yy100;
     }
-yy176:
+yy283:
     ++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:
+#line 239 "strict_cpp.re"
+    {
+            if (s->act_in_c99_mode) {
+                --YYCURSOR;
+                BOOST_WAVE_RET(T_ARROW);
+            }
+            else {
+                BOOST_WAVE_RET(T_ARROWSTAR);
+            }
+        }
+#line 2367 "strict_cpp_re.inc"
+yy285:
     ++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:
+#line 162 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_ELLIPSIS); }
+#line 2372 "strict_cpp_re.inc"
+yy287:
     ++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:
+#line 222 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_SHIFTLEFTASSIGN); }
+#line 2377 "strict_cpp_re.inc"
+yy289:
     ++YYCURSOR;
-    if (YYLIMIT <= YYCURSOR) YYFILL(1);
-    yych = *YYCURSOR;
-    if (yych <= '@') {
-        if (yych <= '/') goto yy99;
-        if (yych >= ':') goto yy99;
+#line 221 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_SHIFTRIGHTASSIGN); }
+#line 2382 "strict_cpp_re.inc"
+yy291:
+    yyaccept = 11;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych <= '>') {
+        if (yych == '=') goto yy428;
     } else {
-        if (yych <= 'F') goto yy180;
-        if (yych <= '`') goto yy99;
-        if (yych >= 'g') goto yy99;
+        if (yych <= '?') goto yy430;
+        if (yych == '|') goto yy431;
     }
-yy180:
+yy292:
+#line 197 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_OR_TRIGRAPH); }
+#line 2395 "strict_cpp_re.inc"
+yy293:
+    yych = *++YYCURSOR;
+    if (yych == '=') goto yy433;
+#line 191 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_XOR_TRIGRAPH); }
+#line 2401 "strict_cpp_re.inc"
+yy295:
     ++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:
+#line 145 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_LEFTBRACKET_TRIGRAPH); }
+#line 2406 "strict_cpp_re.inc"
+yy297:
     ++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:
+#line 148 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_RIGHTBRACKET_TRIGRAPH); }
+#line 2411 "strict_cpp_re.inc"
+yy299:
     ++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:
+#line 199 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_COMPL_TRIGRAPH); }
+#line 2416 "strict_cpp_re.inc"
+yy301:
+    yyaccept = 12;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'U') goto yy183;
+    if (yych == 'u') goto yy184;
+yy302:
+#line 249 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_ANY_TRIGRAPH); }
+#line 2425 "strict_cpp_re.inc"
+yy303:
     ++YYCURSOR;
-    if (YYLIMIT <= YYCURSOR) YYFILL(1);
-    yych = *YYCURSOR;
-    if (yych <= '`') {
-        if (yych <= '7') {
-            if (yych <= '&') {
-                if (yych == '"') goto yy181;
-                goto yy99;
+#line 139 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_LEFTBRACE_TRIGRAPH); }
+#line 2430 "strict_cpp_re.inc"
+yy305:
+    yyaccept = 13;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych <= 'c') {
+        if (yych <= ' ') {
+            if (yych <= '\n') {
+                if (yych == '\t') goto yy106;
             } else {
-                if (yych <= '\'') goto yy181;
-                if (yych <= '/') goto yy99;
-                goto yy189;
+                if (yych <= '\f') goto yy106;
+                if (yych >= ' ') goto yy106;
             }
         } else {
-            if (yych <= 'T') {
-                if (yych == '?') goto yy187;
-                goto yy99;
+            if (yych <= '.') {
+                if (yych == '#') goto yy435;
             } else {
-                if (yych <= 'U') goto yy186;
-                if (yych == '\\') goto yy181;
-                goto yy99;
+                if (yych <= '/') goto yy106;
+                if (yych == '?') goto yy437;
             }
         }
     } else {
-        if (yych <= 'r') {
-            if (yych <= 'f') {
-                if (yych <= 'b') goto yy181;
-                if (yych <= 'e') goto yy99;
-                goto yy181;
+        if (yych <= 'p') {
+            if (yych <= 'i') {
+                if (yych <= 'e') goto yy106;
+                if (yych >= 'i') goto yy106;
             } else {
-                if (yych == 'n') goto yy181;
-                if (yych <= 'q') goto yy99;
-                goto yy181;
+                if (yych == 'l') goto yy106;
+                if (yych >= 'p') goto yy106;
             }
         } else {
-            if (yych <= 'u') {
-                if (yych <= 's') goto yy99;
-                if (yych <= 't') goto yy181;
+            if (yych <= 't') {
+                if (yych == 'r') goto yy106;
             } else {
-                if (yych <= 'v') goto yy181;
-                if (yych == 'x') goto yy188;
-                goto yy99;
+                if (yych == 'v') goto yy306;
+                if (yych <= 'w') goto yy106;
             }
         }
     }
+yy306:
+#line 152 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_POUND_TRIGRAPH); }
+#line 2471 "strict_cpp_re.inc"
+yy307:
+    ++YYCURSOR;
+#line 142 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_RIGHTBRACE_TRIGRAPH); }
+#line 2476 "strict_cpp_re.inc"
+yy309:
     ++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:
+    if (yych == '/') goto yy174;
+    goto yy100;
+yy310:
+    ++YYCURSOR;
+#line 282 "strict_cpp.re"
+    {
+            if (s->act_in_cpp0x_mode)
+                goto extrawstringlit;
+            --YYCURSOR;
+            BOOST_WAVE_RET(T_IDENTIFIER);
+        }
+#line 2492 "strict_cpp_re.inc"
+yy312:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy99;
-        if (yych <= '9') goto yy215;
-        goto yy99;
+        if (yych <= '/') goto yy100;
+        if (yych <= '9') goto yy438;
+        goto yy100;
     } 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 <= 'F') goto yy438;
+        if (yych <= '`') goto yy100;
+        if (yych <= 'f') goto yy438;
+        goto yy100;
     }
-    if (yych <= '&') goto yy99;
-    if (yych <= '\'') goto yy191;
-    if (yych <= '[') goto yy195;
-    goto yy184;
-yy188:
+yy313:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy99;
-        if (yych <= '9') goto yy193;
-        goto yy99;
+        if (yych <= '/') goto yy100;
+        if (yych <= '9') goto yy439;
+        goto yy100;
     } else {
-        if (yych <= 'F') goto yy193;
-        if (yych <= '`') goto yy99;
-        if (yych <= 'f') goto yy193;
-        goto yy99;
+        if (yych <= 'F') goto yy439;
+        if (yych <= '`') goto yy100;
+        if (yych <= 'f') goto yy439;
+        goto yy100;
     }
-yy189:
-    ++YYCURSOR;
-    if (YYLIMIT <= YYCURSOR) YYFILL(1);
-    yych = *YYCURSOR;
-    if (yych <= '\'') {
-        if (yych <= '\n') {
-            if (yych == '\t') goto yy181;
-            goto yy99;
+yy314:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'x') goto yy440;
+    goto yy55;
+yy315:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'a') goto yy323;
+    if (yych == 'i') goto yy441;
+    goto yy55;
+yy316:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'n') goto yy442;
+    goto yy55;
+yy317:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'e') goto yy443;
+    goto yy55;
+yy318:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'r') goto yy444;
+    goto yy55;
+yy319:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'm') goto yy445;
+    goto yy55;
+yy320:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 's') goto yy447;
+    goto yy55;
+yy321:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'e') goto yy448;
+    goto yy55;
+yy322:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'c') goto yy449;
+    goto yy55;
+yy323:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 's') goto yy450;
+    goto yy55;
+yy324:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'l') goto yy451;
+    goto yy55;
+yy325:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'd') goto yy452;
+    goto yy55;
+yy326:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'g') goto yy453;
+    goto yy55;
+yy327:
+    yyaccept = 14;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych <= 'Z') {
+        if (yych <= '>') {
+            if (yych <= '/') goto yy328;
+            if (yych <= '9') goto yy54;
         } else {
-            if (yych <= '\f') goto yy181;
-            if (yych <= 0x1F) goto yy99;
-            if (yych <= '&') goto yy181;
-            goto yy191;
+            if (yych <= '?') goto yy173;
+            if (yych >= 'A') goto yy54;
         }
     } else {
-        if (yych <= '>') {
-            if (yych <= '/') goto yy181;
-            if (yych >= '8') goto yy181;
+        if (yych <= '^') {
+            if (yych == '\\') goto yy174;
         } else {
-            if (yych <= '?') goto yy183;
-            if (yych == '\\') goto yy184;
-            goto yy181;
+            if (yych <= '_') goto yy454;
+            if (yych <= '`') goto yy328;
+            if (yych <= 'z') goto yy54;
         }
     }
-    ++YYCURSOR;
-    if (YYLIMIT <= YYCURSOR) YYFILL(1);
-    yych = *YYCURSOR;
-    if (yybm[0+yych] & 4) {
-        goto yy181;
+yy328:
+#line 229 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDAND_ALT); }
+#line 2610 "strict_cpp_re.inc"
+yy329:
+    yyaccept = 15;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    if (yych <= '&') goto yy99;
-    if (yych <= '\'') goto yy191;
-    if (yych <= '[') goto yy183;
-    goto yy184;
-yy191:
-    ++YYCURSOR;
-yy192:
-#line 252 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_CHARLIT); }
-#line 2535 "strict_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;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy330:
+#line 49 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_ASM); }
+#line 2622 "strict_cpp_re.inc"
+yy331:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'o') goto yy455;
+    goto yy55;
+yy332:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'a') goto yy457;
+    if (yych == 'o') goto yy458;
+    goto yy55;
+yy333:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'l') goto yy459;
+    goto yy55;
+yy334:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'a') goto yy461;
+    goto yy55;
+yy335:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'e') goto yy462;
+    goto yy55;
+yy336:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'c') goto yy464;
+    goto yy55;
+yy337:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'r') goto yy465;
+    goto yy55;
+yy338:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 's') goto yy467;
+    goto yy55;
+yy339:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'p') goto yy468;
+    goto yy55;
+yy340:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych <= 'r') goto yy55;
+    if (yych <= 's') goto yy469;
+    if (yych <= 't') goto yy470;
+    goto yy55;
+yy341:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'l') goto yy471;
+    goto yy55;
+yy342:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'a') goto yy472;
+    goto yy55;
+yy343:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'e') goto yy473;
+    goto yy55;
+yy344:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'b') goto yy474;
+    goto yy55;
+yy345:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'a') goto yy475;
+    goto yy55;
+yy346:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'e') goto yy476;
+    goto yy55;
+yy347:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'm') goto yy478;
+    goto yy55;
+yy348:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'l') goto yy480;
+    if (yych == 'o') goto yy481;
+    goto yy55;
+yy349:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'e') goto yy482;
+    goto yy55;
+yy350:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 's') goto yy483;
+    goto yy55;
+yy351:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'a') goto yy484;
+    goto yy55;
+yy352:
+    yyaccept = 16;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy353:
+#line 76 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_FOR); }
+#line 2743 "strict_cpp_re.inc"
+yy354:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'e') goto yy485;
+    goto yy55;
+yy355:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'o') goto yy486;
+    goto yy55;
+yy356:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'o') goto yy488;
+    goto yy55;
+yy357:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'i') goto yy489;
+    goto yy55;
+yy358:
+    yyaccept = 17;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy359:
+#line 82 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_INT); }
+#line 2775 "strict_cpp_re.inc"
+yy360:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'g') goto yy490;
+    goto yy55;
+yy361:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'a') goto yy492;
+    goto yy55;
+yy362:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'e') goto yy493;
+    goto yy55;
+yy363:
+    yyaccept = 18;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy364:
+#line 86 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_NEW); }
+#line 2802 "strict_cpp_re.inc"
+yy365:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'x') goto yy494;
+    goto yy55;
+yy366:
+    yyaccept = 19;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych <= 'Z') {
+        if (yych <= '>') {
+            if (yych <= '/') goto yy367;
+            if (yych <= '9') goto yy54;
         } else {
-            if (yych <= '&') {
-                if (yych <= 0x1F) goto yy99;
-                goto yy181;
-            } else {
-                if (yych <= '\'') goto yy191;
-                if (yych <= '/') goto yy181;
-                goto yy193;
-            }
+            if (yych <= '?') goto yy173;
+            if (yych >= 'A') goto yy54;
         }
     } else {
-        if (yych <= 'F') {
-            if (yych == '?') goto yy183;
-            if (yych <= '@') goto yy181;
-            goto yy193;
+        if (yych <= '^') {
+            if (yych == '\\') goto yy174;
         } else {
-            if (yych <= '\\') {
-                if (yych <= '[') goto yy181;
-                goto yy184;
-            } else {
-                if (yych <= '`') goto yy181;
-                if (yych <= 'f') goto yy193;
-                goto yy181;
-            }
+            if (yych <= '_') goto yy495;
+            if (yych <= '`') goto yy367;
+            if (yych <= 'z') goto yy54;
         }
     }
-yy195:
-    ++YYCURSOR;
-    if (YYLIMIT <= YYCURSOR) YYFILL(1);
-    yych = *YYCURSOR;
-    if (yybm[0+yych] & 4) {
-        goto yy181;
+yy367:
+#line 202 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOT_ALT); }
+#line 2831 "strict_cpp_re.inc"
+yy368:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'l') goto yy496;
+    goto yy55;
+yy369:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'r') goto yy497;
+    goto yy55;
+yy370:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'e') goto yy498;
+    goto yy55;
+yy371:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'v') goto yy499;
+    goto yy55;
+yy372:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 't') goto yy500;
+    goto yy55;
+yy373:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'l') goto yy501;
+    goto yy55;
+yy374:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'i') goto yy502;
+    goto yy55;
+yy375:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'n') goto yy503;
+    goto yy55;
+yy376:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'u') goto yy504;
+    goto yy55;
+yy377:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'r') goto yy505;
+    goto yy55;
+yy378:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'n') goto yy506;
+    goto yy55;
+yy379:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'e') goto yy507;
+    goto yy55;
+yy380:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 't') goto yy508;
+    goto yy55;
+yy381:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'u') goto yy509;
+    goto yy55;
+yy382:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 't') goto yy510;
+    goto yy55;
+yy383:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'p') goto yy511;
+    goto yy55;
+yy384:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 's') goto yy512;
+    goto yy55;
+yy385:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'e') goto yy514;
+    if (yych == 'o') goto yy515;
+    goto yy55;
+yy386:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'e') goto yy516;
+    goto yy55;
+yy387:
+    yyaccept = 20;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    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;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy388:
+#line 109 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_TRY); }
+#line 2939 "strict_cpp_re.inc"
+yy389:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'e') goto yy518;
+    goto yy55;
+yy390:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'o') goto yy519;
+    goto yy55;
+yy391:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'i') goto yy520;
+    goto yy55;
+yy392:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'n') goto yy521;
+    goto yy55;
+yy393:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 't') goto yy522;
+    goto yy55;
+yy394:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'd') goto yy523;
+    goto yy55;
+yy395:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'a') goto yy525;
+    goto yy55;
+yy396:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'a') goto yy526;
+    goto yy55;
+yy397:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'l') goto yy527;
+    goto yy55;
+yy398:
+    yyaccept = 21;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych <= 'Z') {
+        if (yych <= '>') {
+            if (yych <= '/') goto yy399;
+            if (yych <= '9') goto yy54;
         } else {
-            if (yych <= '\f') goto yy181;
-            if (yych <= 0x1F) goto yy99;
-            if (yych <= '&') goto yy181;
-            goto yy191;
+            if (yych <= '?') goto yy173;
+            if (yych >= 'A') goto yy54;
         }
     } else {
-        if (yych <= '>') {
-            if (yych != '/') goto yy181;
+        if (yych <= '^') {
+            if (yych == '\\') goto yy174;
         } else {
-            if (yych <= '?') goto yy196;
-            if (yych == '\\') goto yy184;
-            goto yy181;
+            if (yych <= '_') goto yy528;
+            if (yych <= '`') goto yy399;
+            if (yych <= 'z') goto yy54;
         }
     }
-yy198:
+yy399:
+#line 192 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XOR_ALT); }
+#line 3008 "strict_cpp_re.inc"
+yy400:
+    yych = *++YYCURSOR;
+    if (yych == '!') goto yy529;
+    goto yy100;
+yy401:
     ++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;
-            }
-        }
+    if (yybm[0+yych] & 1) {
+        goto yy98;
     }
+    if (yych <= 0x1F) goto yy100;
+    if (yych <= '"') goto yy531;
+    if (yych <= '?') goto yy103;
+    goto yy401;
+yy403:
     ++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;
-            }
-        }
+    if (yych <= '@') {
+        if (yych <= '/') goto yy100;
+        if (yych <= '9') goto yy532;
+        goto yy100;
     } 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;
-            }
-        }
+        if (yych <= 'F') goto yy532;
+        if (yych <= '`') goto yy100;
+        if (yych <= 'f') goto yy532;
+        goto yy100;
     }
-yy201:
+yy404:
     ++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;
-            }
-        }
+    if (yych <= '@') {
+        if (yych <= '/') goto yy100;
+        if (yych <= '9') goto yy533;
+        goto yy100;
     } 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;
-            }
-        }
+        if (yych <= 'F') goto yy533;
+        if (yych <= '`') goto yy100;
+        if (yych <= 'f') goto yy533;
+        goto yy100;
     }
+yy405:
     ++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;
-            }
-        }
+    if (yybm[0+yych] & 32) {
+        goto yy405;
     }
-    ++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;
-            }
-        }
+    if (yych <= 0x1F) {
+        if (yych <= 0x08) goto yy100;
+        if (yych <= '\r') goto yy260;
+        goto yy100;
     } 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;
-            }
-        }
+        if (yych == '/') goto yy105;
+        goto yy260;
     }
+yy407:
     ++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:
+#line 154 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
+#line 3071 "strict_cpp_re.inc"
+yy409:
+    yych = *++YYCURSOR;
+    if (yych == 'i') goto yy534;
+    goto yy100;
+yy410:
+    yych = *++YYCURSOR;
+    if (yych == 'f') goto yy535;
+    goto yy100;
+yy411:
+    yych = *++YYCURSOR;
+    if (yych == 'e') goto yy537;
+    goto yy100;
+yy412:
+    yych = *++YYCURSOR;
+    if (yych == 'i') goto yy539;
+    if (yych == 'r') goto yy540;
+    goto yy100;
+yy413:
+    yych = *++YYCURSOR;
+    if (yych == 'o') goto yy541;
+    goto yy100;
+yy414:
+    yych = *++YYCURSOR;
+    if (yych == 'e') goto yy542;
+    goto yy100;
+yy415:
+    yych = *++YYCURSOR;
+    if (yych == 'd') goto yy543;
+    goto yy100;
+yy416:
+    yych = *++YYCURSOR;
+    if (yych == 'l') goto yy544;
+    goto yy100;
+yy417:
+    yych = *++YYCURSOR;
+    if (yych == 'e') goto yy545;
+    goto yy100;
+yy418:
+    yych = *++YYCURSOR;
+    if (yych == 'g') goto yy547;
+    goto yy100;
+yy419:
+    yych = *++YYCURSOR;
+    if (yych == 'i') goto yy548;
+    goto yy100;
+yy420:
+    yych = *++YYCURSOR;
+    if (yych == 'e') goto yy549;
+    goto yy100;
+yy421:
+    yych = *++YYCURSOR;
+    if (yych == 'n') goto yy550;
+    goto yy100;
+yy422:
     ++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:
+#line 157 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_POUND_POUND_ALT); }
+#line 3129 "strict_cpp_re.inc"
+yy424:
     ++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;
+    if (yybm[0+yych] & 2) {
+        goto yy129;
     }
-yy217:
+    if (yych <= 0x1F) goto yy100;
+    if (yych <= '\'') goto yy551;
+    if (yych <= '?') goto yy131;
+    goto yy424;
+yy426:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy99;
-        if (yych >= ':') goto yy99;
+        if (yych <= '/') goto yy100;
+        if (yych <= '9') goto yy552;
+        goto yy100;
     } else {
-        if (yych <= 'F') goto yy218;
-        if (yych <= '`') goto yy99;
-        if (yych >= 'g') goto yy99;
+        if (yych <= 'F') goto yy552;
+        if (yych <= '`') goto yy100;
+        if (yych <= 'f') goto yy552;
+        goto yy100;
     }
-yy218:
+yy427:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy99;
-        if (yych >= ':') goto yy99;
+        if (yych <= '/') goto yy100;
+        if (yych <= '9') goto yy553;
+        goto yy100;
     } else {
-        if (yych <= 'F') goto yy219;
-        if (yych <= '`') goto yy99;
-        if (yych >= 'g') goto yy99;
+        if (yych <= 'F') goto yy553;
+        if (yych <= '`') goto yy100;
+        if (yych <= 'f') goto yy553;
+        goto yy100;
     }
-yy219:
+yy428:
     ++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:
+#line 218 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_ORASSIGN_TRIGRAPH); }
+#line 3173 "strict_cpp_re.inc"
+yy430:
+    yych = *++YYCURSOR;
+    if (yych == '?') goto yy554;
+    goto yy100;
+yy431:
     ++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:
+#line 231 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
+#line 3182 "strict_cpp_re.inc"
+yy433:
     ++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:
+#line 213 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_XORASSIGN_TRIGRAPH); }
+#line 3187 "strict_cpp_re.inc"
+yy435:
     ++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:
+#line 155 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
+#line 3192 "strict_cpp_re.inc"
+yy437:
+    yych = *++YYCURSOR;
+    if (yych == '?') goto yy555;
+    goto yy100;
+yy438:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy99;
-        if (yych >= ':') goto yy99;
+        if (yych <= '/') goto yy100;
+        if (yych <= '9') goto yy556;
+        goto yy100;
     } else {
-        if (yych <= 'F') goto yy224;
-        if (yych <= '`') goto yy99;
-        if (yych >= 'g') goto yy99;
+        if (yych <= 'F') goto yy556;
+        if (yych <= '`') goto yy100;
+        if (yych <= 'f') goto yy556;
+        goto yy100;
     }
-yy224:
+yy439:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy99;
-        if (yych <= '9') goto yy181;
-        goto yy99;
+        if (yych <= '/') goto yy100;
+        if (yych <= '9') goto yy557;
+        goto yy100;
     } else {
-        if (yych <= 'F') goto yy181;
-        if (yych <= '`') goto yy99;
-        if (yych <= 'f') goto yy181;
-        goto yy99;
+        if (yych <= 'F') goto yy557;
+        if (yych <= '`') goto yy100;
+        if (yych <= 'f') goto yy557;
+        goto yy100;
     }
-yy225:
-    yyaccept = 1;
+yy440:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == '"') goto yy135;
-    goto yy109;
-yy226:
-    yych = *++YYCURSOR;
-    if (yych == '\'') goto yy99;
-    goto yy182;
-yy227:
-    ++YYCURSOR;
-#line 227 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_GREATEREQUAL); }
-#line 3168 "strict_cpp_re.inc"
-yy229:
-    ++YYCURSOR;
-    if ((yych = *YYCURSOR) == '=') goto yy231;
-#line 220 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_SHIFTRIGHT); }
-#line 3174 "strict_cpp_re.inc"
-yy231:
-    ++YYCURSOR;
-#line 221 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_SHIFTRIGHTASSIGN); }
-#line 3179 "strict_cpp_re.inc"
-yy233:
-    ++YYCURSOR;
-#line 223 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_EQUAL); }
-#line 3184 "strict_cpp_re.inc"
-yy235:
-    ++YYCURSOR;
-#line 224 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_NOTEQUAL); }
-#line 3189 "strict_cpp_re.inc"
-yy237:
-    yych = *++YYCURSOR;
-    if (yych == '?') goto yy242;
-    goto yy99;
-yy238:
-    ++YYCURSOR;
-#line 230 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_OROR); }
-#line 3198 "strict_cpp_re.inc"
-yy240:
-    ++YYCURSOR;
-#line 216 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_ORASSIGN); }
-#line 3203 "strict_cpp_re.inc"
-yy242:
-    yych = *++YYCURSOR;
-    if (yych != '!') goto yy99;
-    ++YYCURSOR;
-#line 232 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
-#line 3210 "strict_cpp_re.inc"
-yy245:
-    ++YYCURSOR;
-#line 228 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_ANDAND); }
-#line 3215 "strict_cpp_re.inc"
-yy247:
-    ++YYCURSOR;
-#line 214 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_ANDASSIGN); }
-#line 3220 "strict_cpp_re.inc"
-yy249:
-    yyaccept = 1;
+    if (yych == 'c') goto yy558;
+    goto yy55;
+yy441:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'r') goto yy109;
-    yyaccept = 8;
+    if (yych == 'n') goto yy559;
+    goto yy55;
+yy442:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych <= 'Z') {
-        if (yych <= '>') {
-            if (yych <= '/') goto yy251;
-            if (yych <= '9') goto yy108;
-        } else {
-            if (yych <= '?') goto yy111;
-            if (yych >= 'A') goto yy108;
-        }
-    } else {
-        if (yych <= '^') {
-            if (yych == '\\') goto yy110;
-        } else {
-            if (yych <= '_') goto yy252;
-            if (yych <= '`') goto yy251;
-            if (yych <= 'z') goto yy108;
-        }
+    if (yych == 'l') goto yy451;
+    if (yych == 't') goto yy560;
+    goto yy55;
+yy443:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'a') goto yy561;
+    goto yy55;
+yy444:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'y') goto yy562;
+    goto yy55;
+yy445:
+    yyaccept = 22;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-yy251:
-#line 192 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XOR_ALT); }
-#line 3247 "strict_cpp_re.inc"
-yy252:
-    yyaccept = 1;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy446:
+#line 136 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_ASM : T_IDENTIFIER); }
+#line 3262 "strict_cpp_re.inc"
+yy447:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'e') goto yy109;
-    yyaccept = 1;
+    if (yych == 'e') goto yy564;
+    goto yy55;
+yy448:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'q') goto yy109;
-    yyaccept = 9;
+    if (yych == 'c') goto yy565;
+    goto yy55;
+yy449:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'l') goto yy566;
+    goto yy55;
+yy450:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 't') goto yy567;
+    goto yy55;
+yy451:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'i') goto yy568;
+    goto yy55;
+yy452:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'c') goto yy569;
+    goto yy55;
+yy453:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'n') goto yy570;
+    goto yy55;
+yy454:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'e') goto yy571;
+    goto yy55;
+yy455:
+    yyaccept = 23;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy255:
-#line 212 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XORASSIGN_ALT); }
-#line 3265 "strict_cpp_re.inc"
-yy256:
-    ++YYCURSOR;
-#line 211 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_XORASSIGN); }
-#line 3270 "strict_cpp_re.inc"
-yy258:
-    ++YYCURSOR;
-#line 208 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_STARASSIGN); }
-#line 3275 "strict_cpp_re.inc"
-yy260:
-    ++YYCURSOR;
-    if ((yych = *YYCURSOR) == '*') goto yy266;
-#line 248 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_ARROW); }
-#line 3281 "strict_cpp_re.inc"
-yy262:
-    ++YYCURSOR;
-#line 236 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_MINUSMINUS); }
-#line 3286 "strict_cpp_re.inc"
-yy264:
-    ++YYCURSOR;
-#line 207 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_MINUSASSIGN); }
-#line 3291 "strict_cpp_re.inc"
-yy266:
-    ++YYCURSOR;
-#line 239 "strict_cpp.re"
-    { 
-            if (s->act_in_c99_mode) {
-                --YYCURSOR;
-                BOOST_WAVE_RET(T_ARROW);
-            }
-            else {
-                BOOST_WAVE_RET(T_ARROWSTAR); 
-            }
-        }
-#line 3304 "strict_cpp_re.inc"
-yy268:
-    ++YYCURSOR;
-#line 235 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_PLUSPLUS); }
-#line 3309 "strict_cpp_re.inc"
-yy270:
-    ++YYCURSOR;
-#line 206 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_PLUSASSIGN); }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy456:
+#line 50 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_AUTO); }
 #line 3314 "strict_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;
-            }
-        }
+yy457:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'n') goto yy572;
+    goto yy55;
+yy458:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'r') goto yy573;
+    goto yy55;
+yy459:
+    yyaccept = 24;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    ++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;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy460:
+#line 51 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_BOOL); }
+#line 3336 "strict_cpp_re.inc"
+yy461:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'k') goto yy575;
+    goto yy55;
+yy462:
+    yyaccept = 25;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_POUND_POUND); }
-#line 3412 "strict_cpp_re.inc"
-yy286:
-    yych = *++YYCURSOR;
-    if (yych != '=') goto yy99;
-    ++YYCURSOR;
-#line 154 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
-#line 3419 "strict_cpp_re.inc"
-yy289:
-    yych = *++YYCURSOR;
-    if (yych == 'c') goto yy301;
-    goto yy99;
-yy290:
-    yyaccept = 10;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy463:
+#line 53 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_CASE); }
+#line 3353 "strict_cpp_re.inc"
+yy464:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'd') goto yy293;
-    if (yych == 'n') goto yy292;
-yy291:
-#line 301 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_PP_IF); }
-#line 3432 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_PP_IFDEF); }
-#line 3445 "strict_cpp_re.inc"
-yy297:
-    yych = *++YYCURSOR;
-    if (yych != 'e') goto yy99;
-    yych = *++YYCURSOR;
-    if (yych != 'f') goto yy99;
-    ++YYCURSOR;
-#line 303 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_PP_IFNDEF); }
-#line 3454 "strict_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;
+    if (yych == 'h') goto yy577;
+    goto yy55;
+yy465:
+    yyaccept = 26;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == '_') goto yy307;
-    goto yy309;
-yy306:
-#line 299 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_PP_INCLUDE); }
-#line 3471 "strict_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;
+    if (yych <= '?') {
+        if (yych <= '2') {
+            if (yych <= '/') goto yy466;
+            if (yych == '1') goto yy579;
+            goto yy54;
         } else {
-            if (yych <= '\f') goto yy308;
-            if (yych <= 0x1F) goto yy306;
-            goto yy308;
+            if (yych <= '3') goto yy580;
+            if (yych <= '9') goto yy54;
+            if (yych >= '?') goto yy173;
         }
     } else {
-        if (yych <= '.') {
-            if (yych == '"') goto yy312;
-            goto yy306;
+        if (yych <= '\\') {
+            if (yych <= '@') goto yy466;
+            if (yych <= 'Z') goto yy54;
+            if (yych >= '\\') goto yy174;
         } else {
-            if (yych <= '/') goto yy310;
-            if (yych == '<') goto yy311;
-            goto yy306;
+            if (yych <= '_') {
+                if (yych >= '_') goto yy54;
+            } else {
+                if (yych <= '`') goto yy466;
+                if (yych <= 'z') goto yy54;
+            }
         }
     }
-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;
+yy466:
+#line 55 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_CHAR); }
+#line 3389 "strict_cpp_re.inc"
+yy467:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 's') goto yy581;
+    goto yy55;
+yy468:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'l') goto yy583;
+    goto yy55;
+yy469:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 't') goto yy585;
+    goto yy55;
+yy470:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'i') goto yy587;
+    goto yy55;
+yy471:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 't') goto yy588;
+    goto yy55;
+yy472:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'u') goto yy589;
+    goto yy55;
+yy473:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 't') goto yy590;
+    goto yy55;
+yy474:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'l') goto yy591;
+    goto yy55;
+yy475:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'm') goto yy592;
+    goto yy55;
+yy476:
+    yyaccept = 27;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    if (yych <= '!') goto yy99;
-    ++YYCURSOR;
-#line 296 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_PP_QHEADER); }
-#line 3527 "strict_cpp_re.inc"
-yy317:
-    ++YYCURSOR;
-    if (YYLIMIT <= YYCURSOR) YYFILL(1);
-    yych = *YYCURSOR;
-yy318:
-    if (yybm[0+yych] & 16) {
-        goto yy317;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy477:
+#line 69 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_ELSE); }
+#line 3446 "strict_cpp_re.inc"
+yy478:
+    yyaccept = 28;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    if (yych <= '=') goto yy99;
-    ++YYCURSOR;
-#line 293 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_PP_HHEADER); }
-#line 3540 "strict_cpp_re.inc"
-yy321:
-    ++YYCURSOR;
-    if (YYLIMIT <= YYCURSOR) YYFILL(1);
-    yych = *YYCURSOR;
-    if (yybm[0+yych] & 32) {
-        goto yy321;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy479:
+#line 70 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_ENUM); }
+#line 3458 "strict_cpp_re.inc"
+yy480:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'i') goto yy593;
+    goto yy55;
+yy481:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'r') goto yy594;
+    goto yy55;
+yy482:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'r') goto yy595;
+    goto yy55;
+yy483:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'e') goto yy596;
+    goto yy55;
+yy484:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 't') goto yy598;
+    goto yy55;
+yy485:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'n') goto yy600;
+    goto yy55;
+yy486:
+    yyaccept = 29;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    if (yych == '\r') goto yy323;
-    if (yych <= ')') goto yy99;
-    goto yy325;
-yy323:
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy487:
+#line 78 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_GOTO); }
+#line 3500 "strict_cpp_re.inc"
+yy488:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'r') goto yy601;
+    goto yy55;
+yy489:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'n') goto yy602;
+    goto yy55;
+yy490:
+    yyaccept = 30;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy491:
+#line 83 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_LONG); }
+#line 3522 "strict_cpp_re.inc"
+yy492:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'b') goto yy603;
+    goto yy55;
+yy493:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 's') goto yy604;
+    goto yy55;
+yy494:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'c') goto yy605;
+    goto yy55;
+yy495:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'e') goto yy606;
+    goto yy55;
+yy496:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'p') goto yy607;
+    goto yy55;
+yy497:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'a') goto yy608;
+    goto yy55;
+yy498:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'q') goto yy609;
+    goto yy55;
+yy499:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'a') goto yy611;
+    goto yy55;
+yy500:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'e') goto yy612;
+    goto yy55;
+yy501:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'i') goto yy613;
+    goto yy55;
+yy502:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 's') goto yy614;
+    goto yy55;
+yy503:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 't') goto yy615;
+    goto yy55;
+yy504:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'r') goto yy616;
+    goto yy55;
+yy505:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 't') goto yy617;
+    goto yy55;
+yy506:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'e') goto yy619;
+    goto yy55;
+yy507:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'o') goto yy620;
+    goto yy55;
+yy508:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'i') goto yy621;
+    goto yy55;
+yy509:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'c') goto yy622;
+    goto yy55;
+yy510:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'c') goto yy623;
+    goto yy55;
+yy511:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'l') goto yy624;
+    goto yy55;
+yy512:
+    yyaccept = 31;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy513:
+#line 105 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_THIS); }
+#line 3634 "strict_cpp_re.inc"
+yy514:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'a') goto yy625;
+    goto yy55;
+yy515:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'w') goto yy626;
+    goto yy55;
+yy516:
+    yyaccept = 32;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy517:
+#line 108 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_TRUE); }
+#line 3656 "strict_cpp_re.inc"
+yy518:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych <= 'h') {
+        if (yych == 'd') goto yy628;
+        goto yy55;
+    } else {
+        if (yych <= 'i') goto yy629;
+        if (yych == 'n') goto yy630;
+        goto yy55;
+    }
+yy519:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'n') goto yy631;
+    goto yy55;
+yy520:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'g') goto yy633;
+    goto yy55;
+yy521:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'g') goto yy634;
+    goto yy55;
+yy522:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'u') goto yy636;
+    goto yy55;
+yy523:
+    yyaccept = 33;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy524:
+#line 117 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_VOID); }
+#line 3699 "strict_cpp_re.inc"
+yy525:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 't') goto yy637;
+    goto yy55;
+yy526:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'r') goto yy638;
+    goto yy55;
+yy527:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'e') goto yy639;
+    goto yy55;
+yy528:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'e') goto yy641;
+    goto yy55;
+yy529:
     ++YYCURSOR;
+#line 232 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
+#line 3724 "strict_cpp_re.inc"
+yy531:
+    yyaccept = 34;
+    YYMARKER = ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
-    if (yybm[0+yych] & 32) {
-        goto yy321;
+    if (yybm[0+yych] & 1) {
+        goto yy98;
     }
-    if (yych == '\r') goto yy323;
-    if (yych <= ')') goto yy99;
-yy325:
+    if (yych <= 0x1F) goto yy102;
+    if (yych <= '"') goto yy101;
+    if (yych <= '?') goto yy103;
+    goto yy104;
+yy532:
     ++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;
+    if (yych <= '@') {
+        if (yych <= '/') goto yy100;
+        if (yych <= '9') goto yy642;
+        goto yy100;
     } else {
-        if (yych <= 0x1F) goto yy99;
-        if (yych == '/') goto yy308;
-        goto yy321;
+        if (yych <= 'F') goto yy642;
+        if (yych <= '`') goto yy100;
+        if (yych <= 'f') goto yy642;
+        goto yy100;
     }
+yy533:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
-    if (yybm[0+yych] & 32) {
-        goto yy321;
+    if (yych <= '@') {
+        if (yych <= '/') goto yy100;
+        if (yych <= '9') goto yy259;
+        goto yy100;
+    } else {
+        if (yych <= 'F') goto yy259;
+        if (yych <= '`') goto yy100;
+        if (yych <= 'f') goto yy259;
+        goto yy100;
     }
-    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;
+yy534:
     yych = *++YYCURSOR;
-    if (yych != 'e') goto yy99;
+    if (yych == 'n') goto yy643;
+    goto yy100;
+yy535:
     ++YYCURSOR;
-#line 307 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_PP_DEFINE); }
-#line 3604 "strict_cpp_re.inc"
-yy337:
+#line 305 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_PP_ELIF); }
+#line 3773 "strict_cpp_re.inc"
+yy537:
+    ++YYCURSOR;
+#line 304 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_PP_ELSE); }
+#line 3778 "strict_cpp_re.inc"
+yy539:
     yych = *++YYCURSOR;
-    if (yych != 'd') goto yy99;
+    if (yych == 'f') goto yy644;
+    goto yy100;
+yy540:
     yych = *++YYCURSOR;
-    if (yych != 'e') goto yy99;
+    if (yych == 'e') goto yy646;
+    goto yy100;
+yy541:
     yych = *++YYCURSOR;
-    if (yych != 'f') goto yy99;
-    ++YYCURSOR;
-#line 308 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_PP_UNDEF); }
-#line 3615 "strict_cpp_re.inc"
-yy342:
+    if (yych == 'r') goto yy647;
+    goto yy100;
+yy542:
+    yych = *++YYCURSOR;
+    if (yych == 'f') goto yy649;
+    goto yy100;
+yy543:
     yych = *++YYCURSOR;
-    if (yych != 'n') goto yy99;
+    if (yych == 'e') goto yy651;
+    goto yy100;
+yy544:
     yych = *++YYCURSOR;
-    if (yych != 'e') goto yy99;
+    if (yych == 'u') goto yy652;
+    goto yy100;
+yy545:
     ++YYCURSOR;
 #line 309 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PP_LINE); }
-#line 3624 "strict_cpp_re.inc"
-yy346:
+#line 3807 "strict_cpp_re.inc"
+yy547:
     yych = *++YYCURSOR;
-    if (yych != 'a') goto yy99;
+    if (yych == 'm') goto yy653;
+    goto yy100;
+yy548:
     yych = *++YYCURSOR;
-    if (yych != 'g') goto yy99;
+    if (yych == 'o') goto yy654;
+    goto yy100;
+yy549:
     yych = *++YYCURSOR;
-    if (yych != 'm') goto yy99;
+    if (yych == 'f') goto yy655;
+    goto yy100;
+yy550:
     yych = *++YYCURSOR;
-    if (yych != 'a') goto yy99;
+    if (yych == 'i') goto yy657;
+    goto yy100;
+yy551:
+    yyaccept = 35;
+    YYMARKER = ++YYCURSOR;
+    if (YYLIMIT <= YYCURSOR) YYFILL(1);
+    yych = *YYCURSOR;
+    if (yybm[0+yych] & 2) {
+        goto yy129;
+    }
+    if (yych <= 0x1F) goto yy277;
+    if (yych <= '\'') goto yy276;
+    if (yych <= '?') goto yy131;
+    goto yy132;
+yy552:
     ++YYCURSOR;
-#line 311 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_PP_PRAGMA); }
-#line 3637 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_PP_WARNING); }
-#line 3652 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_MSEXT_PP_REGION); }
-#line 3665 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_PP_ERROR); }
-#line 3685 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_MSEXT_PP_ENDREGION); }
-#line 3709 "strict_cpp_re.inc"
-yy381:
-    ++YYCURSOR;
-#line 306 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_PP_ENDIF); }
-#line 3714 "strict_cpp_re.inc"
-yy383:
-    yych = *++YYCURSOR;
-    if (yych == 'f') goto yy387;
-    goto yy99;
-yy384:
-    yych = *++YYCURSOR;
-    if (yych != 'e') goto yy99;
-    ++YYCURSOR;
-#line 304 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_PP_ELSE); }
-#line 3725 "strict_cpp_re.inc"
-yy387:
-    ++YYCURSOR;
-#line 305 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_PP_ELIF); }
-#line 3730 "strict_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:
+    if (YYLIMIT <= YYCURSOR) YYFILL(1);
+    yych = *YYCURSOR;
+    if (yych <= '@') {
+        if (yych <= '/') goto yy100;
+        if (yych <= '9') goto yy658;
+        goto yy100;
+    } else {
+        if (yych <= 'F') goto yy658;
+        if (yych <= '`') goto yy100;
+        if (yych <= 'f') goto yy658;
+        goto yy100;
+    }
+yy553:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
-    if (yych <= '\r') {
-        if (yych <= 0x08) goto yy99;
-        if (yych <= '\f') goto yy389;
-        goto yy391;
+    if (yych <= '@') {
+        if (yych <= '/') goto yy100;
+        if (yych <= '9') goto yy282;
+        goto yy100;
     } else {
-        if (yych <= 0x1F) goto yy99;
-        if (yych != '*') goto yy389;
+        if (yych <= 'F') goto yy282;
+        if (yych <= '`') goto yy100;
+        if (yych <= 'f') goto yy282;
+        goto yy100;
     }
-yy393:
+yy554:
+    yych = *++YYCURSOR;
+    if (yych == '!') goto yy659;
+    goto yy100;
+yy555:
+    yych = *++YYCURSOR;
+    if (yych == '=') goto yy661;
+    goto yy100;
+yy556:
     ++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;
+    if (yych <= '@') {
+        if (yych <= '/') goto yy100;
+        if (yych <= '9') goto yy184;
+        goto yy100;
     } else {
-        if (yych <= '*') {
-            if (yych <= ')') goto yy389;
-            goto yy393;
-        } else {
-            if (yych == '/') goto yy272;
-            goto yy389;
-        }
+        if (yych <= 'F') goto yy184;
+        if (yych <= '`') goto yy100;
+        if (yych <= 'f') goto yy184;
+        goto yy100;
     }
+yy557:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
-    if (yych <= '\r') {
-        if (yych <= 0x08) goto yy99;
-        if (yych <= '\f') goto yy389;
-        goto yy391;
+    if (yych <= '@') {
+        if (yych <= '/') goto yy100;
+        if (yych <= '9') goto yy54;
+        goto yy100;
     } else {
-        if (yych <= 0x1F) goto yy99;
-        if (yych == '*') goto yy393;
-        goto yy389;
+        if (yych <= 'F') goto yy54;
+        if (yych <= '`') goto yy100;
+        if (yych <= 'f') goto yy54;
+        goto yy100;
     }
-yy396:
-    ++YYCURSOR;
-#line 165 "strict_cpp.re"
-    { 
-            if (s->act_in_c99_mode) {
-                --YYCURSOR;
-                BOOST_WAVE_RET(T_COLON);
-            }
-            else {
-                BOOST_WAVE_RET(T_COLON_COLON); 
-            }
-        }
-#line 3796 "strict_cpp_re.inc"
-yy398:
-    ++YYCURSOR;
-#line 149 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_RIGHTBRACKET_ALT); }
-#line 3801 "strict_cpp_re.inc"
-yy400:
-    yyaccept = 12;
+yy558:
+    yyaccept = 4;
     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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_POUND_ALT); }
-#line 3841 "strict_cpp_re.inc"
-yy402:
-    ++YYCURSOR;
-#line 210 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_PERCENTASSIGN); }
-#line 3846 "strict_cpp_re.inc"
-yy404:
-    ++YYCURSOR;
-#line 143 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_RIGHTBRACE_ALT); }
-#line 3851 "strict_cpp_re.inc"
-yy406:
-    yych = *++YYCURSOR;
-    if (yych != ':') goto yy99;
-    ++YYCURSOR;
-#line 157 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_POUND_POUND_ALT); }
-#line 3858 "strict_cpp_re.inc"
-yy409:
-    ++YYCURSOR;
-#line 226 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_LESSEQUAL); }
-#line 3863 "strict_cpp_re.inc"
-yy411:
-    ++YYCURSOR;
-    if ((yych = *YYCURSOR) == '=') goto yy417;
-#line 219 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_SHIFTLEFT); }
-#line 3869 "strict_cpp_re.inc"
-yy413:
-    ++YYCURSOR;
-#line 146 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_LEFTBRACKET_ALT); }
-#line 3874 "strict_cpp_re.inc"
-yy415:
-    ++YYCURSOR;
-#line 140 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_LEFTBRACE_ALT); }
-#line 3879 "strict_cpp_re.inc"
-yy417:
-    ++YYCURSOR;
-#line 222 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_SHIFTLEFTASSIGN); }
-#line 3884 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_LEFTBRACE_TRIGRAPH); }
-#line 3903 "strict_cpp_re.inc"
-yy422:
-    ++YYCURSOR;
-#line 142 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_RIGHTBRACE_TRIGRAPH); }
-#line 3908 "strict_cpp_re.inc"
-yy424:
-    ++YYCURSOR;
-#line 145 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_LEFTBRACKET_TRIGRAPH); }
-#line 3913 "strict_cpp_re.inc"
-yy426:
-    ++YYCURSOR;
-#line 148 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_RIGHTBRACKET_TRIGRAPH); }
-#line 3918 "strict_cpp_re.inc"
-yy428:
-    yyaccept = 13;
+    if (yych == 'e') goto yy663;
+    goto yy55;
+yy559:
+    yyaccept = 4;
     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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_POUND_TRIGRAPH); }
-#line 3959 "strict_cpp_re.inc"
-yy430:
-    ++YYCURSOR;
-    if ((yych = *YYCURSOR) == '=') goto yy446;
-#line 191 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_XOR_TRIGRAPH); }
-#line 3965 "strict_cpp_re.inc"
-yy432:
-    yyaccept = 14;
+    if (yych == 'a') goto yy664;
+    goto yy55;
+yy560:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych <= '>') {
-        if (yych == '=') goto yy441;
-    } else {
-        if (yych <= '?') goto yy438;
-        if (yych == '|') goto yy439;
+    switch (yych) {
+    case '1':    goto yy665;
+    case '3':    goto yy666;
+    case '6':    goto yy667;
+    case '8':    goto yy668;
+    default:    goto yy55;
     }
-yy433:
-#line 197 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_OR_TRIGRAPH); }
-#line 3978 "strict_cpp_re.inc"
-yy434:
-    ++YYCURSOR;
-#line 199 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_COMPL_TRIGRAPH); }
-#line 3983 "strict_cpp_re.inc"
-yy436:
-    yyaccept = 15;
+yy561:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'U') goto yy100;
-    if (yych == 'u') goto yy98;
-yy437:
-#line 249 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_ANY_TRIGRAPH); }
-#line 3992 "strict_cpp_re.inc"
-yy438:
-    yych = *++YYCURSOR;
-    if (yych == '?') goto yy443;
-    goto yy99;
-yy439:
-    ++YYCURSOR;
-#line 231 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
-#line 4001 "strict_cpp_re.inc"
-yy441:
-    ++YYCURSOR;
-#line 218 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_ORASSIGN_TRIGRAPH); }
-#line 4006 "strict_cpp_re.inc"
-yy443:
-    yych = *++YYCURSOR;
-    if (yych != '!') goto yy99;
-    ++YYCURSOR;
-#line 234 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
-#line 4013 "strict_cpp_re.inc"
-yy446:
-    ++YYCURSOR;
-#line 213 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_XORASSIGN_TRIGRAPH); }
-#line 4018 "strict_cpp_re.inc"
-yy448:
-    yych = *++YYCURSOR;
-    if (yych == '?') goto yy451;
-    goto yy99;
-yy449:
-    ++YYCURSOR;
-#line 155 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
-#line 4027 "strict_cpp_re.inc"
-yy451:
-    yych = *++YYCURSOR;
-    if (yych != '=') goto yy99;
-    ++YYCURSOR;
-#line 156 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
-#line 4034 "strict_cpp_re.inc"
-yy454:
-    yyaccept = 1;
+    if (yych == 'v') goto yy670;
+    goto yy55;
+yy562:
+    yyaccept = 36;
     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;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-yy455:
-    yyaccept = 1;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy563:
+#line 131 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_TRY : T_IDENTIFIER); }
+#line 3936 "strict_cpp_re.inc"
+yy564:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 's') goto yy501;
-    goto yy109;
-yy456:
-    yyaccept = 1;
+    if (yych == 'd') goto yy671;
+    goto yy55;
+yy565:
+    yyaccept = 4;
     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;
+    if (yych == 'l') goto yy673;
+    goto yy55;
+yy566:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy483;
-    goto yy109;
-yy459:
-    yyaccept = 1;
+    if (yych == 's') goto yy675;
+    goto yy55;
+yy567:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'a') goto yy475;
-    goto yy109;
-yy460:
-    yyaccept = 1;
+    if (yych == 'c') goto yy676;
+    goto yy55;
+yy568:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'n') goto yy469;
-    goto yy109;
-yy461:
-    yyaccept = 1;
+    if (yych == 'n') goto yy677;
+    goto yy55;
+yy569:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 't') goto yy109;
-    yyaccept = 1;
+    if (yych == 'a') goto yy678;
+    goto yy55;
+yy570:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'd') goto yy109;
-    yyaccept = 1;
+    if (yych == 'a') goto yy679;
+    if (yych == 'o') goto yy680;
+    goto yy55;
+yy571:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'c') goto yy109;
-    yyaccept = 1;
+    if (yych == 'q') goto yy681;
+    goto yy55;
+yy572:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'a') goto yy109;
-    yyaccept = 1;
+    if (yych == 'd') goto yy683;
+    goto yy55;
+yy573:
+    yyaccept = 37;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'l') goto yy109;
-    yyaccept = 1;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy574:
+#line 196 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OR_ALT); }
+#line 3994 "strict_cpp_re.inc"
+yy575:
+    yyaccept = 38;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'l') goto yy109;
-    yyaccept = 16;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy576:
+#line 52 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_BREAK); }
+#line 4006 "strict_cpp_re.inc"
+yy577:
+    yyaccept = 39;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy468:
-#line 130 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_STDCALL : T_IDENTIFIER); }
-#line 4110 "strict_cpp_re.inc"
-yy469:
-    yyaccept = 1;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy578:
+#line 54 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_CATCH); }
+#line 4018 "strict_cpp_re.inc"
+yy579:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'l') goto yy109;
-yy470:
-    yyaccept = 1;
+    if (yych == '6') goto yy685;
+    goto yy55;
+yy580:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'i') goto yy109;
-    yyaccept = 1;
+    if (yych == '2') goto yy686;
+    goto yy55;
+yy581:
+    yyaccept = 40;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'n') goto yy109;
-    yyaccept = 1;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy582:
+#line 58 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_CLASS); }
+#line 4040 "strict_cpp_re.inc"
+yy583:
+    yyaccept = 41;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'e') goto yy109;
-    yyaccept = 17;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy584:
+#line 200 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_COMPL_ALT); }
+#line 4052 "strict_cpp_re.inc"
+yy585:
+    yyaccept = 42;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
+    if (yych <= '[') {
+        if (yych <= '>') {
+            if (yych <= '/') goto yy586;
+            if (yych <= '9') goto yy54;
+        } else {
+            if (yych <= '?') goto yy173;
+            if (yych <= '@') goto yy586;
+            if (yych <= 'Z') goto yy54;
+        }
+    } else {
+        if (yych <= '`') {
+            if (yych <= '\\') goto yy174;
+            if (yych == '_') goto yy687;
+        } else {
+            if (yych == 'e') goto yy688;
+            if (yych <= 'z') goto yy54;
+        }
     }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy474:
-#line 135 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INLINE : T_IDENTIFIER); }
-#line 4135 "strict_cpp_re.inc"
-yy475:
-    yyaccept = 1;
+yy586:
+#line 59 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_CONST); }
+#line 4077 "strict_cpp_re.inc"
+yy587:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 's') goto yy109;
-    yyaccept = 1;
+    if (yych == 'n') goto yy689;
+    goto yy55;
+yy588:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 't') goto yy109;
-    yyaccept = 1;
+    if (yych == 'y') goto yy690;
+    goto yy55;
+yy589:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'c') goto yy109;
-    yyaccept = 1;
+    if (yych == 'l') goto yy691;
+    goto yy55;
+yy590:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'a') goto yy109;
-    yyaccept = 1;
+    if (yych == 'e') goto yy692;
+    goto yy55;
+yy591:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'l') goto yy109;
-    yyaccept = 1;
+    if (yych == 'e') goto yy694;
+    goto yy55;
+yy592:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'l') goto yy109;
-    yyaccept = 18;
+    if (yych == 'i') goto yy696;
+    goto yy55;
+yy593:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'c') goto yy697;
+    goto yy55;
+yy594:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 't') goto yy698;
+    goto yy55;
+yy595:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'n') goto yy700;
+    goto yy55;
+yy596:
+    yyaccept = 43;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy482:
-#line 129 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FASTCALL : T_IDENTIFIER); }
-#line 4165 "strict_cpp_re.inc"
-yy483:
-    yyaccept = 1;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy597:
+#line 74 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_FALSE); }
+#line 4134 "strict_cpp_re.inc"
+yy598:
+    yyaccept = 44;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'c') goto yy109;
-    yyaccept = 1;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy599:
+#line 75 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_FLOAT); }
+#line 4146 "strict_cpp_re.inc"
+yy600:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'l') goto yy109;
-    yyaccept = 1;
+    if (yych == 'd') goto yy702;
+    goto yy55;
+yy601:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 's') goto yy109;
-    yyaccept = 1;
+    if (yych == 't') goto yy704;
+    goto yy55;
+yy602:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'p') goto yy109;
-    yyaccept = 1;
+    if (yych == 'e') goto yy706;
+    goto yy55;
+yy603:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'e') goto yy109;
-    yyaccept = 1;
+    if (yych == 'l') goto yy708;
+    goto yy55;
+yy604:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'c') goto yy109;
-    yyaccept = 19;
+    if (yych == 'p') goto yy709;
+    goto yy55;
+yy605:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
-    }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy490:
-#line 127 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_DECLSPEC : T_IDENTIFIER); }
-#line 4195 "strict_cpp_re.inc"
-yy491:
-    yyaccept = 1;
+    if (yych == 'e') goto yy710;
+    goto yy55;
+yy606:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'e') goto yy109;
-    yyaccept = 1;
+    if (yych == 'q') goto yy711;
+    goto yy55;
+yy607:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'c') goto yy109;
-    yyaccept = 1;
+    if (yych == 't') goto yy713;
+    goto yy55;
+yy608:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'l') goto yy109;
-    yyaccept = 20;
+    if (yych == 't') goto yy714;
+    goto yy55;
+yy609:
+    yyaccept = 45;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy495:
-#line 128 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_CDECL : T_IDENTIFIER); }
-#line 4216 "strict_cpp_re.inc"
-yy496:
-    yyaccept = 1;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy610:
+#line 217 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ORASSIGN_ALT); }
+#line 4203 "strict_cpp_re.inc"
+yy611:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 's') goto yy109;
-    yyaccept = 1;
+    if (yych == 't') goto yy715;
+    goto yy55;
+yy612:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'e') goto yy109;
-    yyaccept = 1;
+    if (yych == 'c') goto yy716;
+    goto yy55;
+yy613:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'd') goto yy109;
-    yyaccept = 21;
+    if (yych == 'c') goto yy717;
+    goto yy55;
+yy614:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
-    }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy500:
-#line 126 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_BASED : T_IDENTIFIER); }
-#line 4237 "strict_cpp_re.inc"
-yy501:
-    yyaccept = 1;
+    if (yych == 't') goto yy719;
+    goto yy55;
+yy615:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'm') goto yy109;
-    yyaccept = 22;
+    if (yych == 'e') goto yy720;
+    goto yy55;
+yy616:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
-    }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy503:
-#line 136 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_ASM : T_IDENTIFIER); }
-#line 4252 "strict_cpp_re.inc"
-yy504:
-    yyaccept = 1;
+    if (yych == 'n') goto yy721;
+    goto yy55;
+yy617:
+    yyaccept = 46;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'n') goto yy530;
-    goto yy109;
-yy505:
-    yyaccept = 1;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy618:
+#line 96 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_SHORT); }
+#line 4245 "strict_cpp_re.inc"
+yy619:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'a') goto yy475;
-    if (yych == 'i') goto yy523;
-    goto yy109;
-yy506:
-    yyaccept = 1;
+    if (yych == 'd') goto yy723;
+    goto yy55;
+yy620:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'r') goto yy520;
-    goto yy109;
-yy507:
-    yyaccept = 1;
+    if (yych == 'f') goto yy725;
+    goto yy55;
+yy621:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'x') goto yy514;
-    goto yy109;
-yy508:
-    yyaccept = 1;
+    if (yych == 'c') goto yy727;
+    goto yy55;
+yy622:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'e') goto yy109;
-    yyaccept = 1;
+    if (yych == 't') goto yy729;
+    goto yy55;
+yy623:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'a') goto yy109;
-    yyaccept = 1;
+    if (yych == 'h') goto yy731;
+    goto yy55;
+yy624:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'v') goto yy109;
-    yyaccept = 1;
+    if (yych == 'a') goto yy733;
+    goto yy55;
+yy625:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'e') goto yy109;
-    yyaccept = 23;
+    if (yych == 'd') goto yy734;
+    goto yy55;
+yy626:
+    yyaccept = 47;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy513:
-#line 134 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_LEAVE : T_IDENTIFIER); }
-#line 4297 "strict_cpp_re.inc"
-yy514:
-    yyaccept = 1;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy627:
+#line 107 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_THROW); }
+#line 4292 "strict_cpp_re.inc"
+yy628:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'c') goto yy109;
-    yyaccept = 1;
+    if (yych == 'e') goto yy735;
+    goto yy55;
+yy629:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'e') goto yy109;
-    yyaccept = 1;
+    if (yych == 'd') goto yy736;
+    goto yy55;
+yy630:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'p') goto yy109;
-    yyaccept = 1;
+    if (yych == 'a') goto yy738;
+    goto yy55;
+yy631:
+    yyaccept = 48;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 't') goto yy109;
-    yyaccept = 24;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy632:
+#line 113 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_UNION); }
+#line 4319 "strict_cpp_re.inc"
+yy633:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
+    if (yych == 'n') goto yy739;
+    goto yy55;
+yy634:
+    yyaccept = 49;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy519:
-#line 132 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_EXCEPT : T_IDENTIFIER); }
-#line 4321 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_TRY : T_IDENTIFIER); }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy635:
+#line 115 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_USING); }
 #line 4336 "strict_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;
+yy636:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'l') goto yy109;
-    yyaccept = 1;
+    if (yych == 'a') goto yy740;
+    goto yy55;
+yy637:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'l') goto yy109;
-    yyaccept = 1;
+    if (yych == 'i') goto yy741;
+    goto yy55;
+yy638:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'y') goto yy109;
-    yyaccept = 26;
+    if (yych == '_') goto yy742;
+    goto yy55;
+yy639:
+    yyaccept = 50;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy529:
-#line 133 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FINALLY : T_IDENTIFIER); }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy640:
+#line 120 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_WHILE); }
 #line 4363 "strict_cpp_re.inc"
-yy530:
-    yyaccept = 1;
-    yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'l') goto yy470;
-    if (yych != 't') goto yy109;
-    yyaccept = 1;
+yy641:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    switch (yych) {
-    case '1':    goto yy532;
-    case '3':    goto yy533;
-    case '6':    goto yy534;
-    case '8':    goto yy535;
-    default:    goto yy109;
+    if (yych == 'q') goto yy743;
+    goto yy55;
+yy642:
+    ++YYCURSOR;
+    if (YYLIMIT <= YYCURSOR) YYFILL(1);
+    yych = *YYCURSOR;
+    if (yych <= '@') {
+        if (yych <= '/') goto yy100;
+        if (yych <= '9') goto yy258;
+        goto yy100;
+    } else {
+        if (yych <= 'F') goto yy258;
+        if (yych <= '`') goto yy100;
+        if (yych <= 'f') goto yy258;
+        goto yy100;
     }
-yy532:
-    yyaccept = 1;
+yy643:
+    yych = *++YYCURSOR;
+    if (yych == 'e') goto yy745;
+    goto yy100;
+yy644:
+    ++YYCURSOR;
+#line 306 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_PP_ENDIF); }
+#line 4391 "strict_cpp_re.inc"
+yy646:
+    yych = *++YYCURSOR;
+    if (yych == 'g') goto yy747;
+    goto yy100;
+yy647:
+    ++YYCURSOR;
+#line 310 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_PP_ERROR); }
+#line 4400 "strict_cpp_re.inc"
+yy649:
+    ++YYCURSOR;
+#line 302 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_PP_IFDEF); }
+#line 4405 "strict_cpp_re.inc"
+yy651:
+    yych = *++YYCURSOR;
+    if (yych == 'f') goto yy748;
+    goto yy100;
+yy652:
+    yych = *++YYCURSOR;
+    if (yych == 'd') goto yy750;
+    goto yy100;
+yy653:
+    yych = *++YYCURSOR;
+    if (yych == 'a') goto yy751;
+    goto yy100;
+yy654:
+    yych = *++YYCURSOR;
+    if (yych == 'n') goto yy753;
+    goto yy100;
+yy655:
+    ++YYCURSOR;
+#line 308 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_PP_UNDEF); }
+#line 4426 "strict_cpp_re.inc"
+yy657:
+    yych = *++YYCURSOR;
+    if (yych == 'n') goto yy755;
+    goto yy100;
+yy658:
+    ++YYCURSOR;
+    if (YYLIMIT <= YYCURSOR) YYFILL(1);
+    yych = *YYCURSOR;
+    if (yych <= '@') {
+        if (yych <= '/') goto yy100;
+        if (yych <= '9') goto yy281;
+        goto yy100;
+    } else {
+        if (yych <= 'F') goto yy281;
+        if (yych <= '`') goto yy100;
+        if (yych <= 'f') goto yy281;
+        goto yy100;
+    }
+yy659:
+    ++YYCURSOR;
+#line 234 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
+#line 4449 "strict_cpp_re.inc"
+yy661:
+    ++YYCURSOR;
+#line 156 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
+#line 4454 "strict_cpp_re.inc"
+yy663:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == '6') goto yy541;
-    goto yy109;
-yy533:
-    yyaccept = 1;
+    if (yych == 'p') goto yy756;
+    goto yy55;
+yy664:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == '2') goto yy539;
-    goto yy109;
-yy534:
-    yyaccept = 1;
+    if (yych == 'l') goto yy757;
+    goto yy55;
+yy665:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == '4') goto yy537;
-    goto yy109;
-yy535:
-    yyaccept = 27;
+    if (yych == '6') goto yy758;
+    goto yy55;
+yy666:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == '2') goto yy760;
+    goto yy55;
+yy667:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == '4') goto yy762;
+    goto yy55;
+yy668:
+    yyaccept = 51;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy536:
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy669:
 #line 122 "strict_cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT8 : T_IDENTIFIER); }
-#line 4404 "strict_cpp_re.inc"
-yy537:
-    yyaccept = 28;
+#line 4491 "strict_cpp_re.inc"
+yy670:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
-    }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy538:
-#line 125 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT64 : T_IDENTIFIER); }
-#line 4416 "strict_cpp_re.inc"
-yy539:
-    yyaccept = 29;
+    if (yych == 'e') goto yy764;
+    goto yy55;
+yy671:
+    yyaccept = 52;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy540:
-#line 124 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT32 : T_IDENTIFIER); }
-#line 4428 "strict_cpp_re.inc"
-yy541:
-    yyaccept = 30;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy672:
+#line 126 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_BASED : T_IDENTIFIER); }
+#line 4508 "strict_cpp_re.inc"
+yy673:
+    yyaccept = 53;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy542:
-#line 123 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT16 : T_IDENTIFIER); }
-#line 4440 "strict_cpp_re.inc"
-yy543:
-    yyaccept = 1;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy674:
+#line 128 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_CDECL : T_IDENTIFIER); }
+#line 4520 "strict_cpp_re.inc"
+yy675:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'h') goto yy549;
-    goto yy109;
-yy544:
-    yyaccept = 1;
+    if (yych == 'p') goto yy766;
+    goto yy55;
+yy676:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'i') goto yy109;
-    yyaccept = 1;
+    if (yych == 'a') goto yy767;
+    goto yy55;
+yy677:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'l') goto yy109;
-    yyaccept = 1;
+    if (yych == 'e') goto yy768;
+    goto yy55;
+yy678:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'e') goto yy109;
-    yyaccept = 31;
+    if (yych == 'l') goto yy770;
+    goto yy55;
+yy679:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 's') goto yy771;
+    goto yy55;
+yy680:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'f') goto yy773;
+    goto yy55;
+yy681:
+    yyaccept = 54;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy548:
-#line 120 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_WHILE); }
-#line 4466 "strict_cpp_re.inc"
-yy549:
-    yyaccept = 1;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy682:
+#line 215 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDASSIGN_ALT); }
+#line 4562 "strict_cpp_re.inc"
+yy683:
+    yyaccept = 55;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'a') goto yy109;
-    yyaccept = 1;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy684:
+#line 194 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_AND_ALT); }
+#line 4574 "strict_cpp_re.inc"
+yy685:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'r') goto yy109;
-    yyaccept = 1;
+    if (yych == '_') goto yy775;
+    goto yy55;
+yy686:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != '_') goto yy109;
-    yyaccept = 1;
+    if (yych == '_') goto yy776;
+    goto yy55;
+yy687:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 't') goto yy109;
-    yyaccept = 32;
+    if (yych == 'c') goto yy777;
+    goto yy55;
+yy688:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
-    }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy554:
-#line 119 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_WCHART); }
-#line 4490 "strict_cpp_re.inc"
-yy555:
-    yyaccept = 1;
+    if (yych == 'x') goto yy778;
+    goto yy55;
+yy689:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'r') goto yy567;
-    goto yy109;
-yy556:
-    yyaccept = 1;
+    if (yych == 'u') goto yy779;
+    goto yy55;
+yy690:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'i') goto yy557;
-    if (yych == 'l') goto yy558;
-    goto yy109;
-yy557:
-    yyaccept = 1;
+    if (yych == 'p') goto yy780;
+    goto yy55;
+yy691:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'd') goto yy565;
-    goto yy109;
-yy558:
-    yyaccept = 1;
+    if (yych == 't') goto yy781;
+    goto yy55;
+yy692:
+    yyaccept = 56;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'a') goto yy109;
-    yyaccept = 1;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy693:
+#line 65 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_DELETE); }
+#line 4621 "strict_cpp_re.inc"
+yy694:
+    yyaccept = 57;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 't') goto yy109;
-    yyaccept = 1;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy695:
+#line 67 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_DOUBLE); }
+#line 4633 "strict_cpp_re.inc"
+yy696:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'i') goto yy109;
-    yyaccept = 1;
+    if (yych == 'c') goto yy783;
+    goto yy55;
+yy697:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'l') goto yy109;
-    yyaccept = 1;
+    if (yych == 'i') goto yy784;
+    goto yy55;
+yy698:
+    yyaccept = 58;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'e') goto yy109;
-    yyaccept = 33;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy699:
+#line 72 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_EXPORT); }
+#line 4655 "strict_cpp_re.inc"
+yy700:
+    yyaccept = 59;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy564:
-#line 118 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_VOLATILE); }
-#line 4533 "strict_cpp_re.inc"
-yy565:
-    yyaccept = 34;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy701:
+#line 73 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_EXTERN); }
+#line 4667 "strict_cpp_re.inc"
+yy702:
+    yyaccept = 60;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy566:
-#line 117 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_VOID); }
-#line 4545 "strict_cpp_re.inc"
-yy567:
-    yyaccept = 1;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy703:
+#line 77 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_FRIEND); }
+#line 4679 "strict_cpp_re.inc"
+yy704:
+    yyaccept = 61;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 't') goto yy109;
-    yyaccept = 1;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy705:
+#line 80 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->enable_import_keyword ? T_IMPORT : T_IDENTIFIER); }
+#line 4691 "strict_cpp_re.inc"
+yy706:
+    yyaccept = 62;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'u') goto yy109;
-    yyaccept = 1;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy707:
+#line 81 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_INLINE); }
+#line 4703 "strict_cpp_re.inc"
+yy708:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'a') goto yy109;
-    yyaccept = 1;
+    if (yych == 'e') goto yy785;
+    goto yy55;
+yy709:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'l') goto yy109;
-    yyaccept = 35;
+    if (yych == 'a') goto yy787;
+    goto yy55;
+yy710:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
+    if (yych == 'p') goto yy788;
+    goto yy55;
+yy711:
+    yyaccept = 63;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy572:
-#line 116 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_VIRTUAL); }
-#line 4569 "strict_cpp_re.inc"
-yy573:
-    yyaccept = 1;
-    yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == '"') goto yy129;
-    if (yych == 'R') goto yy128;
-    goto yy109;
-yy574:
-    yyaccept = 1;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy712:
+#line 225 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOTEQUAL_ALT); }
+#line 4730 "strict_cpp_re.inc"
+yy713:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'i') goto yy580;
-    if (yych == 's') goto yy581;
-    goto yy109;
-yy575:
-    yyaccept = 1;
+    if (yych == 'r') goto yy789;
+    goto yy55;
+yy714:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'i') goto yy109;
-    yyaccept = 1;
+    if (yych == 'o') goto yy791;
+    goto yy55;
+yy715:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'n') goto yy109;
-    yyaccept = 1;
+    if (yych == 'e') goto yy792;
+    goto yy55;
+yy716:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'g') goto yy109;
-    yyaccept = 36;
+    if (yych == 't') goto yy794;
+    goto yy55;
+yy717:
+    yyaccept = 64;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy579:
-#line 115 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_USING); }
-#line 4602 "strict_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;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy718:
+#line 92 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_PUBLIC); }
+#line 4762 "strict_cpp_re.inc"
+yy719:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'n') goto yy109;
-    yyaccept = 1;
+    if (yych == 'e') goto yy795;
+    goto yy55;
+yy720:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'e') goto yy109;
-    yyaccept = 1;
+    if (yych == 'r') goto yy796;
+    goto yy55;
+yy721:
+    yyaccept = 65;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'd') goto yy109;
-    yyaccept = 37;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy722:
+#line 95 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_RETURN); }
+#line 4784 "strict_cpp_re.inc"
+yy723:
+    yyaccept = 66;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy587:
-#line 114 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_UNSIGNED); }
-#line 4634 "strict_cpp_re.inc"
-yy588:
-    yyaccept = 1;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy724:
+#line 97 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_SIGNED); }
+#line 4796 "strict_cpp_re.inc"
+yy725:
+    yyaccept = 67;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'n') goto yy109;
-    yyaccept = 38;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy726:
+#line 98 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_SIZEOF); }
+#line 4808 "strict_cpp_re.inc"
+yy727:
+    yyaccept = 68;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
+    if (yych <= 'Z') {
+        if (yych <= '>') {
+            if (yych <= '/') goto yy728;
+            if (yych <= '9') goto yy54;
+        } else {
+            if (yych <= '?') goto yy173;
+            if (yych >= 'A') goto yy54;
+        }
+    } else {
+        if (yych <= '^') {
+            if (yych == '\\') goto yy174;
+        } else {
+            if (yych <= '_') goto yy797;
+            if (yych <= '`') goto yy728;
+            if (yych <= 'z') goto yy54;
+        }
     }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy590:
-#line 113 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_UNION); }
-#line 4649 "strict_cpp_re.inc"
-yy591:
-    yyaccept = 1;
+yy728:
+#line 99 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_STATIC); }
+#line 4832 "strict_cpp_re.inc"
+yy729:
+    yyaccept = 69;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'm') goto yy631;
-    goto yy109;
-yy592:
-    yyaccept = 1;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy730:
+#line 102 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_STRUCT); }
+#line 4844 "strict_cpp_re.inc"
+yy731:
+    yyaccept = 70;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'i') goto yy614;
-    if (yych == 'r') goto yy615;
-    goto yy109;
-yy593:
-    yyaccept = 1;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy732:
+#line 103 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_SWITCH); }
+#line 4856 "strict_cpp_re.inc"
+yy733:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'u') goto yy609;
-    if (yych == 'y') goto yy610;
-    goto yy109;
-yy594:
-    yyaccept = 1;
+    if (yych == 't') goto yy798;
+    goto yy55;
+yy734:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'p') goto yy109;
-    yyaccept = 1;
+    if (yych == '_') goto yy799;
+    goto yy55;
+yy735:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'e') goto yy109;
-    yyaccept = 1;
+    if (yych == 'f') goto yy800;
+    goto yy55;
+yy736:
+    yyaccept = 71;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych <= 'h') {
-        if (yych != 'd') goto yy109;
-    } else {
-        if (yych <= 'i') goto yy598;
-        if (yych == 'n') goto yy599;
-        goto yy109;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    yyaccept = 1;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy737:
+#line 111 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_TYPEID); }
+#line 4883 "strict_cpp_re.inc"
+yy738:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy606;
-    goto yy109;
-yy598:
-    yyaccept = 1;
+    if (yych == 'm') goto yy802;
+    goto yy55;
+yy739:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'd') goto yy604;
-    goto yy109;
-yy599:
-    yyaccept = 1;
+    if (yych == 'e') goto yy803;
+    goto yy55;
+yy740:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'a') goto yy109;
-    yyaccept = 1;
+    if (yych == 'l') goto yy804;
+    goto yy55;
+yy741:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'm') goto yy109;
-    yyaccept = 1;
+    if (yych == 'l') goto yy806;
+    goto yy55;
+yy742:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'e') goto yy109;
-    yyaccept = 39;
+    if (yych == 't') goto yy807;
+    goto yy55;
+yy743:
+    yyaccept = 72;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy603:
-#line 112 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_TYPENAME); }
-#line 4712 "strict_cpp_re.inc"
-yy604:
-    yyaccept = 40;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy744:
+#line 212 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XORASSIGN_ALT); }
+#line 4920 "strict_cpp_re.inc"
+yy745:
+    ++YYCURSOR;
+#line 307 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_PP_DEFINE); }
+#line 4925 "strict_cpp_re.inc"
+yy747:
+    yych = *++YYCURSOR;
+    if (yych == 'i') goto yy809;
+    goto yy100;
+yy748:
+    ++YYCURSOR;
+#line 303 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_PP_IFNDEF); }
+#line 4934 "strict_cpp_re.inc"
+yy750:
+    yych = *++YYCURSOR;
+    if (yych == 'e') goto yy810;
+    goto yy100;
+yy751:
+    ++YYCURSOR;
+#line 311 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_PP_PRAGMA); }
+#line 4943 "strict_cpp_re.inc"
+yy753:
+    ++YYCURSOR;
+#line 315 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_MSEXT_PP_REGION); }
+#line 4948 "strict_cpp_re.inc"
+yy755:
+    yych = *++YYCURSOR;
+    if (yych == 'g') goto yy812;
+    goto yy100;
+yy756:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
-    }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy605:
-#line 111 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_TYPEID); }
-#line 4724 "strict_cpp_re.inc"
-yy606:
-    yyaccept = 1;
+    if (yych == 't') goto yy814;
+    goto yy55;
+yy757:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'f') goto yy109;
-    yyaccept = 41;
+    if (yych == 'l') goto yy816;
+    goto yy55;
+yy758:
+    yyaccept = 73;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy608:
-#line 110 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_TYPEDEF); }
-#line 4739 "strict_cpp_re.inc"
-yy609:
-    yyaccept = 1;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy759:
+#line 123 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT16 : T_IDENTIFIER); }
+#line 4974 "strict_cpp_re.inc"
+yy760:
+    yyaccept = 74;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy612;
-    goto yy109;
-yy610:
-    yyaccept = 42;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy761:
+#line 124 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT32 : T_IDENTIFIER); }
+#line 4986 "strict_cpp_re.inc"
+yy762:
+    yyaccept = 75;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy611:
-#line 109 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_TRY); }
-#line 4756 "strict_cpp_re.inc"
-yy612:
-    yyaccept = 43;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy763:
+#line 125 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT64 : T_IDENTIFIER); }
+#line 4998 "strict_cpp_re.inc"
+yy764:
+    yyaccept = 76;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy613:
-#line 108 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_TRUE); }
-#line 4768 "strict_cpp_re.inc"
-yy614:
-    yyaccept = 1;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy765:
+#line 134 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_LEAVE : T_IDENTIFIER); }
+#line 5010 "strict_cpp_re.inc"
+yy766:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 's') goto yy629;
-    goto yy109;
-yy615:
-    yyaccept = 1;
+    if (yych == 'e') goto yy817;
+    goto yy55;
+yy767:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy616;
-    if (yych == 'o') goto yy617;
-    goto yy109;
-yy616:
-    yyaccept = 1;
+    if (yych == 'l') goto yy818;
+    goto yy55;
+yy768:
+    yyaccept = 77;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'a') goto yy620;
-    goto yy109;
-yy617:
-    yyaccept = 1;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy769:
+#line 135 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INLINE : T_IDENTIFIER); }
+#line 5032 "strict_cpp_re.inc"
+yy770:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'w') goto yy109;
-    yyaccept = 44;
+    if (yych == 'l') goto yy819;
+    goto yy55;
+yy771:
+    yyaccept = 78;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy619:
-#line 107 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_THROW); }
-#line 4799 "strict_cpp_re.inc"
-yy620:
-    yyaccept = 1;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy772:
+#line 47 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_ALIGNAS : T_IDENTIFIER); }
+#line 5049 "strict_cpp_re.inc"
+yy773:
+    yyaccept = 79;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'd') goto yy109;
-    yyaccept = 1;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy774:
+#line 48 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_ALIGNOF : T_IDENTIFIER); }
+#line 5061 "strict_cpp_re.inc"
+yy775:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != '_') goto yy109;
-    yyaccept = 1;
+    if (yych == 't') goto yy821;
+    goto yy55;
+yy776:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'l') goto yy109;
-    yyaccept = 1;
+    if (yych == 't') goto yy823;
+    goto yy55;
+yy777:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'o') goto yy109;
-    yyaccept = 1;
+    if (yych == 'a') goto yy825;
+    goto yy55;
+yy778:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'c') goto yy109;
-    yyaccept = 1;
+    if (yych == 'p') goto yy826;
+    goto yy55;
+yy779:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'a') goto yy109;
-    yyaccept = 1;
-    yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'l') goto yy109;
-    yyaccept = 45;
+    if (yych == 'e') goto yy827;
+    goto yy55;
+yy780:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
-    }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy628:
-#line 106 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_THREADLOCAL : T_IDENTIFIER); }
-#line 4832 "strict_cpp_re.inc"
-yy629:
-    yyaccept = 46;
+    if (yych == 'e') goto yy829;
+    goto yy55;
+yy781:
+    yyaccept = 80;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy630:
-#line 105 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_THIS); }
-#line 4844 "strict_cpp_re.inc"
-yy631:
-    yyaccept = 1;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy782:
+#line 64 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_DEFAULT); }
+#line 5103 "strict_cpp_re.inc"
+yy783:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'p') goto yy109;
-    yyaccept = 1;
+    if (yych == '_') goto yy831;
+    goto yy55;
+yy784:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'l') goto yy109;
-    yyaccept = 1;
+    if (yych == 't') goto yy832;
+    goto yy55;
+yy785:
+    yyaccept = 81;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'a') goto yy109;
-    yyaccept = 1;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy786:
+#line 84 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_MUTABLE); }
+#line 5125 "strict_cpp_re.inc"
+yy787:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 't') goto yy109;
-    yyaccept = 1;
+    if (yych == 'c') goto yy834;
+    goto yy55;
+yy788:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'e') goto yy109;
-    yyaccept = 47;
+    if (yych == 't') goto yy835;
+    goto yy55;
+yy789:
+    yyaccept = 82;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy637:
-#line 104 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_TEMPLATE); }
-#line 4871 "strict_cpp_re.inc"
-yy638:
-    yyaccept = 1;
-    yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'o') goto yy680;
-    goto yy109;
-yy639:
-    yyaccept = 1;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy790:
+#line 88 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_NULLPTR : T_IDENTIFIER); }
+#line 5147 "strict_cpp_re.inc"
+yy791:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'g') goto yy670;
-    if (yych == 'z') goto yy671;
-    goto yy109;
-yy640:
-    yyaccept = 1;
+    if (yych == 'r') goto yy837;
+    goto yy55;
+yy792:
+    yyaccept = 83;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'a') goto yy647;
-    if (yych == 'r') goto yy648;
-    goto yy109;
-yy641:
-    yyaccept = 1;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy793:
+#line 90 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_PRIVATE); }
+#line 5164 "strict_cpp_re.inc"
+yy794:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'i') goto yy109;
-    yyaccept = 1;
+    if (yych == 'e') goto yy839;
+    goto yy55;
+yy795:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 't') goto yy109;
-    yyaccept = 1;
+    if (yych == 'r') goto yy840;
+    goto yy55;
+yy796:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'c') goto yy109;
-    yyaccept = 1;
+    if (yych == 'p') goto yy842;
+    goto yy55;
+yy797:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'h') goto yy109;
-    yyaccept = 48;
+    if (yych == 'a') goto yy843;
+    if (yych == 'c') goto yy844;
+    goto yy55;
+yy798:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
-    }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy646:
-#line 103 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_SWITCH); }
-#line 4912 "strict_cpp_re.inc"
-yy647:
-    yyaccept = 1;
+    if (yych == 'e') goto yy845;
+    goto yy55;
+yy799:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy653;
-    goto yy109;
-yy648:
-    yyaccept = 1;
+    if (yych == 'l') goto yy847;
+    goto yy55;
+yy800:
+    yyaccept = 84;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'u') goto yy109;
-    yyaccept = 1;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy801:
+#line 110 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_TYPEDEF); }
+#line 5207 "strict_cpp_re.inc"
+yy802:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'c') goto yy109;
-    yyaccept = 1;
+    if (yych == 'e') goto yy848;
+    goto yy55;
+yy803:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 't') goto yy109;
-    yyaccept = 49;
+    if (yych == 'd') goto yy850;
+    goto yy55;
+yy804:
+    yyaccept = 85;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy652:
-#line 102 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_STRUCT); }
-#line 4938 "strict_cpp_re.inc"
-yy653:
-    yyaccept = 1;
-    yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'i') goto yy109;
-    yyaccept = 1;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy805:
+#line 116 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_VIRTUAL); }
+#line 5229 "strict_cpp_re.inc"
+yy806:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'c') goto yy109;
-    yyaccept = 50;
+    if (yych == 'e') goto yy852;
+    goto yy55;
+yy807:
+    yyaccept = 86;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych <= 'Z') {
-        if (yych <= '>') {
-            if (yych <= '/') goto yy656;
-            if (yych <= '9') goto yy108;
-        } else {
-            if (yych <= '?') goto yy111;
-            if (yych >= 'A') goto yy108;
-        }
-    } else {
-        if (yych <= '^') {
-            if (yych == '\\') goto yy110;
-        } else {
-            if (yych <= '_') goto yy657;
-            if (yych <= '`') goto yy656;
-            if (yych <= 'z') goto yy108;
-        }
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-yy656:
-#line 99 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_STATIC); }
-#line 4968 "strict_cpp_re.inc"
-yy657:
-    yyaccept = 1;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy808:
+#line 119 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_WCHART); }
+#line 5246 "strict_cpp_re.inc"
+yy809:
+    yych = *++YYCURSOR;
+    if (yych == 'o') goto yy854;
+    goto yy100;
+yy810:
+    yyaccept = 87;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'a') goto yy658;
-    if (yych == 'c') goto yy659;
-    goto yy109;
-yy658:
-    yyaccept = 1;
+    if (yych == '_') goto yy860;
+    goto yy856;
+yy811:
+#line 299 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_PP_INCLUDE); }
+#line 5259 "strict_cpp_re.inc"
+yy812:
+    ++YYCURSOR;
+#line 313 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_PP_WARNING); }
+#line 5264 "strict_cpp_re.inc"
+yy814:
+    yyaccept = 88;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 's') goto yy664;
-    goto yy109;
-yy659:
-    yyaccept = 1;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy815:
+#line 132 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_EXCEPT : T_IDENTIFIER); }
+#line 5276 "strict_cpp_re.inc"
+yy816:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'a') goto yy109;
-    yyaccept = 1;
+    if (yych == 'y') goto yy861;
+    goto yy55;
+yy817:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 's') goto yy109;
-    yyaccept = 1;
+    if (yych == 'c') goto yy863;
+    goto yy55;
+yy818:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 't') goto yy109;
-    yyaccept = 51;
+    if (yych == 'l') goto yy865;
+    goto yy55;
+yy819:
+    yyaccept = 89;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy663:
-#line 100 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_STATICCAST); }
-#line 5000 "strict_cpp_re.inc"
-yy664:
-    yyaccept = 1;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy820:
+#line 130 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_STDCALL : T_IDENTIFIER); }
+#line 5303 "strict_cpp_re.inc"
+yy821:
+    yyaccept = 90;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 's') goto yy109;
-    yyaccept = 1;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy822:
+#line 56 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CHAR16_T : T_IDENTIFIER); }
+#line 5315 "strict_cpp_re.inc"
+yy823:
+    yyaccept = 91;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'e') goto yy109;
-    yyaccept = 1;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy824:
+#line 57 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CHAR32_T : T_IDENTIFIER); }
+#line 5327 "strict_cpp_re.inc"
+yy825:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'r') goto yy109;
-    yyaccept = 1;
+    if (yych == 's') goto yy867;
+    goto yy55;
+yy826:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 't') goto yy109;
-    yyaccept = 52;
+    if (yych == 'r') goto yy868;
+    goto yy55;
+yy827:
+    yyaccept = 92;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy669:
-#line 101 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_STATICASSERT : T_IDENTIFIER); }
-#line 5024 "strict_cpp_re.inc"
-yy670:
-    yyaccept = 1;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy828:
+#line 62 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_CONTINUE); }
+#line 5349 "strict_cpp_re.inc"
+yy829:
+    yyaccept = 93;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'n') goto yy676;
-    goto yy109;
-yy671:
-    yyaccept = 1;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy830:
+#line 63 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_DECLTYPE : T_IDENTIFIER); }
+#line 5361 "strict_cpp_re.inc"
+yy831:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'e') goto yy109;
-    yyaccept = 1;
+    if (yych == 'c') goto yy870;
+    goto yy55;
+yy832:
+    yyaccept = 94;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'o') goto yy109;
-    yyaccept = 1;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy833:
+#line 71 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_EXPLICIT); }
+#line 5378 "strict_cpp_re.inc"
+yy834:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'f') goto yy109;
-    yyaccept = 53;
+    if (yych == 'e') goto yy871;
+    goto yy55;
+yy835:
+    yyaccept = 95;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy675:
-#line 98 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_SIZEOF); }
-#line 5050 "strict_cpp_re.inc"
-yy676:
-    yyaccept = 1;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy836:
+#line 87 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_NOEXCEPT : T_IDENTIFIER); }
+#line 5395 "strict_cpp_re.inc"
+yy837:
+    yyaccept = 96;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'e') goto yy109;
-    yyaccept = 1;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy838:
+#line 89 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_OPERATOR); }
+#line 5407 "strict_cpp_re.inc"
+yy839:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'd') goto yy109;
-    yyaccept = 54;
+    if (yych == 'd') goto yy873;
+    goto yy55;
+yy840:
+    yyaccept = 97;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy679:
-#line 97 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_SIGNED); }
-#line 5068 "strict_cpp_re.inc"
-yy680:
-    yyaccept = 1;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy841:
+#line 93 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_REGISTER); }
+#line 5424 "strict_cpp_re.inc"
+yy842:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'r') goto yy109;
-    yyaccept = 1;
+    if (yych == 'r') goto yy875;
+    goto yy55;
+yy843:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 't') goto yy109;
-    yyaccept = 55;
+    if (yych == 's') goto yy876;
+    goto yy55;
+yy844:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
-    }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy683:
-#line 96 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_SHORT); }
-#line 5086 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_RETURN); }
-#line 5126 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_REINTERPRETCAST); }
-#line 5174 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_REGISTER); }
-#line 5198 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_PUBLIC); }
-#line 5228 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_PROTECTED); }
-#line 5263 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_PRIVATE); }
-#line 5284 "strict_cpp_re.inc"
-yy733:
-    yyaccept = 1;
-    yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy740;
-    goto yy109;
-yy734:
-    yyaccept = 62;
-    yych = *(YYMARKER = ++YYCURSOR);
-    if (yych <= 'Z') {
-        if (yych <= '>') {
-            if (yych <= '/') goto yy735;
-            if (yych <= '9') goto yy108;
-        } else {
-            if (yych <= '?') goto yy111;
-            if (yych >= 'A') goto yy108;
-        }
-    } else {
-        if (yych <= '^') {
-            if (yych == '\\') goto yy110;
-        } else {
-            if (yych <= '_') goto yy736;
-            if (yych <= '`') goto yy735;
-            if (yych <= 'z') goto yy108;
-        }
-    }
-yy735:
-#line 233 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OROR_ALT); }
-#line 5313 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ORASSIGN_ALT); }
-#line 5331 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_OPERATOR); }
-#line 5358 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_NULLPTR : T_IDENTIFIER); }
-#line 5401 "strict_cpp_re.inc"
-yy757:
-    yyaccept = 1;
-    yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'x') goto yy764;
-    goto yy109;
-yy758:
-    yyaccept = 66;
-    yych = *(YYMARKER = ++YYCURSOR);
-    if (yych <= 'Z') {
-        if (yych <= '>') {
-            if (yych <= '/') goto yy759;
-            if (yych <= '9') goto yy108;
-        } else {
-            if (yych <= '?') goto yy111;
-            if (yych >= 'A') goto yy108;
-        }
-    } else {
-        if (yych <= '^') {
-            if (yych == '\\') goto yy110;
-        } else {
-            if (yych <= '_') goto yy760;
-            if (yych <= '`') goto yy759;
-            if (yych <= 'z') goto yy108;
-        }
-    }
-yy759:
-#line 202 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOT_ALT); }
-#line 5430 "strict_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;
+    if (yych == 'a') goto yy877;
+    goto yy55;
+yy845:
+    yyaccept = 98;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy763:
-#line 225 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOTEQUAL_ALT); }
-#line 5448 "strict_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;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy846:
+#line 104 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_TEMPLATE); }
+#line 5451 "strict_cpp_re.inc"
+yy847:
+    yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
-    }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy769:
-#line 87 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_NOEXCEPT : T_IDENTIFIER); }
-#line 5472 "strict_cpp_re.inc"
-yy770:
-    yyaccept = 69;
+    if (yych == 'o') goto yy878;
+    goto yy55;
+yy848:
+    yyaccept = 99;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy771:
-#line 86 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_NEW); }
-#line 5484 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_NAMESPACE); }
-#line 5514 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_MUTABLE); }
-#line 5541 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_LONG); }
-#line 5559 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_IF); }
-#line 5571 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_INT); }
-#line 5599 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_INLINE); }
-#line 5617 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->enable_import_keyword ? T_IMPORT : T_IDENTIFIER); }
-#line 5638 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_GOTO); }
-#line 5656 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_FRIEND); }
-#line 5695 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_FOR); }
-#line 5707 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_FLOAT); }
-#line 5725 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_FALSE); }
-#line 5743 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_EXTERN); }
-#line 5786 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_EXPORT); }
-#line 5809 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_EXPLICIT); }
-#line 5830 "strict_cpp_re.inc"
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
 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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_ENUM); }
-#line 5845 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_ELSE); }
-#line 5860 "strict_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 <= '[') {
-        if (yych <= '>') {
-            if (yych <= '/') goto yy857;
-            if (yych <= '9') goto yy108;
-        } else {
-            if (yych <= '?') goto yy111;
-            if (yych <= '@') goto yy857;
-            if (yych <= 'Z') goto yy108;
-        }
-    } else {
-        if (yych <= '`') {
-            if (yych <= '\\') goto yy110;
-            if (yych == '_') goto yy108;
-        } else {
-            if (yych == 'u') goto yy870;
-            if (yych <= 'z') goto yy108;
-        }
-    }
-yy857:
-#line 66 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_DO); }
-#line 5896 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_DYNAMICCAST); }
-#line 5938 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_DOUBLE); }
-#line 5959 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_DELETE); }
-#line 5990 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_DEFAULT); }
-#line 6011 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_DECLTYPE : T_IDENTIFIER); }
-#line 6035 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_COMPL_ALT); }
-#line 6082 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_CONTINUE); }
-#line 6111 "strict_cpp_re.inc"
-yy909:
-    yyaccept = 95;
-    yych = *(YYMARKER = ++YYCURSOR);
-    if (yych <= '[') {
-        if (yych <= '>') {
-            if (yych <= '/') goto yy910;
-            if (yych <= '9') goto yy108;
-        } else {
-            if (yych <= '?') goto yy111;
-            if (yych <= '@') goto yy910;
-            if (yych <= 'Z') goto yy108;
-        }
-    } else {
-        if (yych <= '`') {
-            if (yych <= '\\') goto yy110;
-            if (yych == '_') goto yy911;
-        } else {
-            if (yych == 'e') goto yy912;
-            if (yych <= 'z') goto yy108;
-        }
-    }
-yy910:
-#line 59 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_CONST); }
-#line 6136 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CONSTEXPR : T_IDENTIFIER); }
-#line 6162 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_CONSTCAST); }
-#line 6183 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_CLASS); }
-#line 6201 "strict_cpp_re.inc"
-yy926:
-    yyaccept = 1;
-    yych = *(YYMARKER = ++YYCURSOR);
-    if (yych != 'r') goto yy109;
-    yyaccept = 99;
-    yych = *(YYMARKER = ++YYCURSOR);
-    if (yych <= '?') {
-        if (yych <= '2') {
-            if (yych <= '/') goto yy928;
-            if (yych == '1') goto yy929;
-            goto yy108;
-        } else {
-            if (yych <= '3') goto yy930;
-            if (yych <= '9') goto yy108;
-            if (yych >= '?') goto yy111;
-        }
-    } else {
-        if (yych <= '\\') {
-            if (yych <= '@') goto yy928;
-            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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_CHAR); }
-#line 6235 "strict_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;
+#line 112 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_TYPENAME); }
+#line 5468 "strict_cpp_re.inc"
+yy850:
     yyaccept = 100;
-    yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[256+yych] & 32) {
-        goto yy108;
-    }
-    if (yych == '?') goto yy111;
-    if (yych == '\\') goto yy110;
-yy934:
-#line 57 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CHAR32_T : T_IDENTIFIER); }
-#line 6261 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CHAR16_T : T_IDENTIFIER); }
-#line 6279 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_CATCH); }
-#line 6302 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_CASE); }
-#line 6314 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_BREAK); }
-#line 6345 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_BOOL); }
-#line 6360 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OR_ALT); }
-#line 6386 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_AND_ALT); }
-#line 6401 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_AUTO); }
-#line 6434 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_ASM); }
-#line 6446 "strict_cpp_re.inc"
-yy973:
-    yyaccept = 110;
-    yych = *(YYMARKER = ++YYCURSOR);
-    if (yych <= 'Z') {
-        if (yych <= '>') {
-            if (yych <= '/') goto yy974;
-            if (yych <= '9') goto yy108;
-        } else {
-            if (yych <= '?') goto yy111;
-            if (yych >= 'A') goto yy108;
-        }
-    } else {
-        if (yych <= '^') {
-            if (yych == '\\') goto yy110;
-        } else {
-            if (yych <= '_') goto yy975;
-            if (yych <= '`') goto yy974;
-            if (yych <= 'z') goto yy108;
-        }
-    }
-yy974:
-#line 229 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDAND_ALT); }
-#line 6470 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDASSIGN_ALT); }
-#line 6488 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_ALIGNOF : T_IDENTIFIER); }
-#line 6520 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_ALIGNAS : T_IDENTIFIER); }
-#line 6532 "strict_cpp_re.inc"
-yy988:
-    ++YYCURSOR;
-#line 176 "strict_cpp.re"
-    { 
-            if (s->act_in_c99_mode) {
-                --YYCURSOR;
-                BOOST_WAVE_RET(T_DOT);
-            }
-            else {
-                BOOST_WAVE_RET(T_DOTSTAR); 
-            }
-        }
-#line 6545 "strict_cpp_re.inc"
-yy990:
-    yych = *++YYCURSOR;
-    if (yych == '.') goto yy992;
-    goto yy99;
-yy991:
-    yych = *++YYCURSOR;
-    goto yy7;
-yy992:
-    ++YYCURSOR;
-#line 162 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_ELLIPSIS); }
-#line 6557 "strict_cpp_re.inc"
-yy994:
-    ++YYCURSOR;
-#line 209 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_DIVIDEASSIGN); }
-#line 6562 "strict_cpp_re.inc"
-yy996:
-    ++YYCURSOR;
-#line 44 "strict_cpp.re"
-    { goto cppcomment; }
-#line 6567 "strict_cpp_re.inc"
-yy998:
-    ++YYCURSOR;
-#line 43 "strict_cpp.re"
-    { goto ccomment; }
-#line 6572 "strict_cpp_re.inc"
-}
-#line 348 "strict_cpp.re"
-
-
-ccomment:
-
-#line 6579 "strict_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 "strict_cpp.re"
-    { goto ccomment; }
-#line 6605 "strict_cpp_re.inc"
-yy1004:
-    ++YYCURSOR;
-yy1005:
-#line 355 "strict_cpp.re"
-    {
-        /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF);*/
-        /*s->tok = cursor; */
-        s->line += count_backslash_newlines(s, cursor) +1;
-        cursor.column = 1;
-        goto ccomment;
-    }
-#line 6617 "strict_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 "strict_cpp.re"
-    {
-        if(cursor == s->eof) 
-        {
-            BOOST_WAVE_UPDATE_CURSOR();   // adjust the input cursor
-            (*s->error_proc)(s, lexing_exception::generic_lexing_warning,
-                "unterminated 'C' style comment");
-        }
-        else
-        {
-            --YYCURSOR;                   // next call returns T_EOF
-            BOOST_WAVE_UPDATE_CURSOR();   // adjust the input cursor
-            (*s->error_proc)(s, lexing_exception::generic_lexing_error,
-                "invalid character: '\\000' in input stream");
-        }
-    }
-#line 6646 "strict_cpp_re.inc"
-yy1011:
-    ++YYCURSOR;
-#line 383 "strict_cpp.re"
-    {
-        // flag the error
-        BOOST_WAVE_UPDATE_CURSOR();   // adjust the input cursor
-        (*s->error_proc)(s, lexing_exception::generic_lexing_error,
-            "invalid character '\\%03o' in input stream", *--YYCURSOR);
-    }
-#line 6656 "strict_cpp_re.inc"
-yy1013:
-    yych = *++YYCURSOR;
-    goto yy1005;
-yy1014:
-    ++YYCURSOR;
-#line 352 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_CCOMMENT); }
-#line 6664 "strict_cpp_re.inc"
-}
-#line 389 "strict_cpp.re"
-
-
-cppcomment:
-
-#line 6671 "strict_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 "strict_cpp.re"
-    {
-        /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF); */
-        /*s->tok = cursor; */
-        s->line++;
-        cursor.column = 1;
-        BOOST_WAVE_RET(T_CPPCOMMENT);
-    }
-#line 6696 "strict_cpp_re.inc"
-yy1020:
-    yych = *++YYCURSOR;
-    if (yych == '\n') goto yy1028;
-    goto yy1019;
-yy1021:
-    ++YYCURSOR;
-yy1022:
-#line 402 "strict_cpp.re"
-    { goto cppcomment; }
-#line 6706 "strict_cpp_re.inc"
-yy1023:
-    yych = *++YYCURSOR;
-    goto yy1022;
-yy1024:
-    ++YYCURSOR;
-#line 405 "strict_cpp.re"
-    {
-        if (s->eof && cursor != s->eof) 
-        {
-            --YYCURSOR;                     // next call returns T_EOF
-            BOOST_WAVE_UPDATE_CURSOR();     // adjust the input cursor
-            (*s->error_proc)(s, lexing_exception::generic_lexing_error,
-                "invalid character '\\000' in input stream");
-        }
-        
-        --YYCURSOR;                         // next call returns T_EOF
-        if (!s->single_line_only)
-        {
-            BOOST_WAVE_UPDATE_CURSOR();     // adjust the input cursor
-            (*s->error_proc)(s, lexing_exception::generic_lexing_warning,
-                "Unterminated 'C++' style comment");
-        }
-        BOOST_WAVE_RET(T_CPPCOMMENT);
-    }
-#line 6731 "strict_cpp_re.inc"
-yy1026:
-    ++YYCURSOR;
-#line 425 "strict_cpp.re"
-    {
-        // flag the error
-        BOOST_WAVE_UPDATE_CURSOR();     // adjust the input cursor
-        (*s->error_proc)(s, lexing_exception::generic_lexing_error,
-            "invalid character '\\%03o' in input stream", *--YYCURSOR);
-    }
-#line 6741 "strict_cpp_re.inc"
-yy1028:
-    ++YYCURSOR;
-    yych = *YYCURSOR;
-    goto yy1019;
-}
-#line 431 "strict_cpp.re"
-
-
-/* this subscanner is called whenever a pp_number has been started */
-pp_number:
-{
-    cursor = uchar_wrapper(s->tok = s->cur, s->column = s->curr_column);
-    marker = uchar_wrapper(s->ptr);
-    limit = uchar_wrapper(s->lim);
-
-    if (s->detect_pp_numbers) {
-    
-#line 6759 "strict_cpp_re.inc"
-{
-    YYCTYPE yych;
-    static const unsigned char yybm[] = {
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,  64,   0, 
-         64,  64,  64,  64,  64,  64,  64,  64, 
-         64,  64,   0,   0,   0,   0,   0,   0, 
-          0,  64,  64,  64,  64, 128,  64,  64, 
-         64,  64,  64,  64,  64,  64,  64,  64, 
-         64,  64,  64,  64,  64,  64,  64,  64, 
-         64,  64,  64,   0,   0,   0,   0,  64, 
-          0,  64,  64,  64,  64, 128,  64,  64, 
-         64,  64,  64,  64,  64,  64,  64,  64, 
-         64,  64,  64,  64,  64,  64,  64,  64, 
-         64,  64,  64,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-    };
-    if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
-    yych = *YYCURSOR;
-    if (yych == '.') goto 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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_PP_NUMBER); }
-#line 6828 "strict_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 <= '/') goto yy1035;
-            if (yych <= '9') goto yy1033;
-            if (yych <= '>') goto yy1035;
-            goto yy1039;
-        }
-    } else {
-        if (yych <= '\\') {
-            if (yych <= '@') goto yy1035;
-            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 "strict_cpp.re"
-
-    }
-    else {
-    
-#line 7036 "strict_cpp_re.inc"
-{
-    YYCTYPE yych;
-    unsigned int yyaccept = 0;
-    static const unsigned char yybm[] = {
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-        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 "strict_cpp.re"
-    { goto integer_suffix; }
-#line 7113 "strict_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 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_FLOATLIT); }
-#line 7159 "strict_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;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-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:
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy851:
+#line 114 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_UNSIGNED); }
+#line 5480 "strict_cpp_re.inc"
+yy852:
+    yyaccept = 101;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy853:
+#line 118 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_VOLATILE); }
+#line 5492 "strict_cpp_re.inc"
+yy854:
     yych = *++YYCURSOR;
-    if (yych <= '/') goto yy1055;
-    if (yych >= ':') goto yy1055;
-yy1069:
-    ++YYCURSOR;
+    if (yych == 'n') goto yy879;
+    goto yy100;
+yy855:
+    yyaccept = 87;
+    YYMARKER = ++YYCURSOR;
     if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
     yych = *YYCURSOR;
-    if (yych <= 'K') {
-        if (yych <= '9') {
-            if (yych <= '/') goto yy1063;
-            goto yy1069;
+yy856:
+    if (yych <= ' ') {
+        if (yych <= '\n') {
+            if (yych == '\t') goto yy855;
+            goto yy811;
         } else {
-            if (yych == 'F') goto yy1065;
-            goto yy1063;
+            if (yych <= '\f') goto yy855;
+            if (yych <= 0x1F) goto yy811;
+            goto yy855;
         }
     } else {
-        if (yych <= 'f') {
-            if (yych <= 'L') goto yy1066;
-            if (yych <= 'e') goto yy1063;
-            goto yy1065;
+        if (yych <= '.') {
+            if (yych != '"') goto yy811;
         } else {
-            if (yych == 'l') goto yy1066;
-            goto yy1063;
+            if (yych <= '/') goto yy858;
+            if (yych == '<') goto yy859;
+            goto yy811;
         }
     }
-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:
+    if (yych == '"') goto yy100;
+    goto yy882;
+yy858:
     ++YYCURSOR;
-    if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+    if (YYLIMIT <= YYCURSOR) YYFILL(1);
     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;
-        }
+    if (yych == '*') goto yy883;
+    goto yy100;
+yy859:
+    yych = *++YYCURSOR;
+    if (yych == '>') goto yy100;
+    goto yy886;
+yy860:
+    yych = *++YYCURSOR;
+    if (yych == 'n') goto yy887;
+    goto yy100;
+yy861:
+    yyaccept = 102;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-yy1075:
-    yyaccept = 0;
-    YYMARKER = ++YYCURSOR;
-    if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
-    yych = *YYCURSOR;
-    if (yybm[0+yych] & 64) {
-        goto yy1075;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy862:
+#line 133 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FINALLY : T_IDENTIFIER); }
+#line 5549 "strict_cpp_re.inc"
+yy863:
+    yyaccept = 103;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    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;
-        }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy864:
+#line 127 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_DECLSPEC : T_IDENTIFIER); }
+#line 5561 "strict_cpp_re.inc"
+yy865:
+    yyaccept = 104;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-yy1077:
-    yych = *++YYCURSOR;
-    if (yybm[0+yych] & 128) {
-        goto yy1080;
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy866:
+#line 129 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FASTCALL : T_IDENTIFIER); }
+#line 5573 "strict_cpp_re.inc"
+yy867:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 't') goto yy888;
+    goto yy55;
+yy868:
+    yyaccept = 105;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
     }
-    goto yy1055;
-yy1078:
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy869:
+#line 60 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CONSTEXPR : T_IDENTIFIER); }
+#line 5590 "strict_cpp_re.inc"
+yy870:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'a') goto yy890;
+    goto yy55;
+yy871:
+    yyaccept = 106;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy872:
+#line 85 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_NAMESPACE); }
+#line 5607 "strict_cpp_re.inc"
+yy873:
+    yyaccept = 107;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy874:
+#line 91 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_PROTECTED); }
+#line 5619 "strict_cpp_re.inc"
+yy875:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'e') goto yy891;
+    goto yy55;
+yy876:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 's') goto yy892;
+    goto yy55;
+yy877:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 's') goto yy893;
+    goto yy55;
+yy878:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'c') goto yy894;
+    goto yy55;
+yy879:
     ++YYCURSOR;
-    if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+#line 316 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_MSEXT_PP_ENDREGION); }
+#line 5644 "strict_cpp_re.inc"
+yy881:
+    ++YYCURSOR;
+    if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
-    if (yych <= '9') {
-        if (yych == '.') goto yy1061;
-        if (yych <= '/') goto yy1055;
-        goto yy1078;
+yy882:
+    if (yybm[0+yych] & 64) {
+        goto yy881;
+    }
+    if (yych <= 0x1F) goto yy100;
+    goto yy895;
+yy883:
+    ++YYCURSOR;
+    if (YYLIMIT <= YYCURSOR) YYFILL(1);
+    yych = *YYCURSOR;
+    if (yych <= 0x1F) {
+        if (yych <= 0x08) goto yy100;
+        if (yych <= '\r') goto yy883;
+        goto yy100;
     } else {
-        if (yych <= 'E') {
-            if (yych <= 'D') goto yy1055;
-            goto yy1071;
-        } else {
-            if (yych == 'e') goto yy1071;
-            goto yy1055;
-        }
+        if (yych == '*') goto yy897;
+        goto yy883;
     }
-yy1080:
+yy885:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
+yy886:
     if (yybm[0+yych] & 128) {
-        goto yy1080;
-    }
-    goto yy1057;
-}
-#line 452 "strict_cpp.re"
-
-    }
-}
-
-/* this subscanner is called, whenever an Integer was recognized */
-integer_suffix:
-{
-    if (s->enable_ms_extensions) {
-    
-#line 7308 "strict_cpp_re.inc"
-{
-    YYCTYPE yych;
-    if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
-    yych = *(YYMARKER = YYCURSOR);
-    if (yych <= 'h') {
-        if (yych <= 'L') {
-            if (yych >= 'L') goto 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;
-        }
+        goto yy885;
     }
-yy1084:
-#line 465 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_INTLIT); }
-#line 7330 "strict_cpp_re.inc"
-yy1085:
-    yych = *++YYCURSOR;
-    if (yych == 'L') goto yy1094;
-    if (yych == 'l') goto yy1094;
-    goto yy1084;
-yy1086:
+    if (yych <= 0x1F) goto yy100;
+    goto yy899;
+yy887:
     yych = *++YYCURSOR;
-    if (yych <= 'U') {
-        if (yych == 'L') goto yy1093;
-        if (yych <= 'T') goto yy1084;
-        goto yy1092;
+    if (yych == 'e') goto yy901;
+    goto yy100;
+yy888:
+    yyaccept = 108;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy889:
+#line 61 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_CONSTCAST); }
+#line 5692 "strict_cpp_re.inc"
+yy890:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 's') goto yy902;
+    goto yy55;
+yy891:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 't') goto yy903;
+    goto yy55;
+yy892:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'e') goto yy904;
+    goto yy55;
+yy893:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 't') goto yy905;
+    goto yy55;
+yy894:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'a') goto yy907;
+    goto yy55;
+yy895:
+    ++YYCURSOR;
+#line 296 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_PP_QHEADER); }
+#line 5722 "strict_cpp_re.inc"
+yy897:
+    ++YYCURSOR;
+    if (YYLIMIT <= YYCURSOR) YYFILL(1);
+    yych = *YYCURSOR;
+    if (yych <= ')') {
+        if (yych <= 0x08) goto yy100;
+        if (yych <= '\r') goto yy883;
+        if (yych <= 0x1F) goto yy100;
+        goto yy883;
     } else {
-        if (yych <= 'l') {
-            if (yych <= 'k') goto yy1084;
-            goto yy1093;
-        } else {
-            if (yych == 'u') goto yy1092;
-            goto yy1084;
-        }
+        if (yych <= '*') goto yy897;
+        if (yych == '/') goto yy855;
+        goto yy883;
     }
-yy1087:
-    yych = *++YYCURSOR;
-    if (yych == '6') goto yy1089;
-yy1088:
-    YYCURSOR = YYMARKER;
-    goto yy1084;
-yy1089:
-    yych = *++YYCURSOR;
-    if (yych != '4') goto yy1088;
-yy1090:
+yy899:
     ++YYCURSOR;
-yy1091:
-#line 462 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_LONGINTLIT); }
-#line 7365 "strict_cpp_re.inc"
-yy1092:
+#line 293 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_PP_HHEADER); }
+#line 5741 "strict_cpp_re.inc"
+yy901:
     yych = *++YYCURSOR;
-    goto yy1084;
-yy1093:
+    if (yych == 'x') goto yy908;
+    goto yy100;
+yy902:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 't') goto yy909;
+    goto yy55;
+yy903:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == '_') goto yy911;
+    goto yy55;
+yy904:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'r') goto yy912;
+    goto yy55;
+yy905:
+    yyaccept = 109;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy906:
+#line 100 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_STATICCAST); }
+#line 5772 "strict_cpp_re.inc"
+yy907:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'l') goto yy913;
+    goto yy55;
+yy908:
     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;
+    if (yych == 't') goto yy855;
+    goto yy100;
+yy909:
+    yyaccept = 110;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy910:
+#line 68 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_DYNAMICCAST); }
+#line 5793 "strict_cpp_re.inc"
+yy911:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'c') goto yy915;
+    goto yy55;
+yy912:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 't') goto yy916;
+    goto yy55;
+yy913:
+    yyaccept = 111;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy914:
+#line 106 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_THREADLOCAL : T_IDENTIFIER); }
+#line 5815 "strict_cpp_re.inc"
+yy915:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'a') goto yy918;
+    goto yy55;
+yy916:
+    yyaccept = 112;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy917:
+#line 101 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_STATICASSERT : T_IDENTIFIER); }
+#line 5832 "strict_cpp_re.inc"
+yy918:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych != 's') goto yy55;
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych != 't') goto yy55;
+    yyaccept = 113;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy921:
+#line 94 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_REINTERPRETCAST); }
+#line 5850 "strict_cpp_re.inc"
 }
-#line 466 "strict_cpp.re"
+#line 348 "strict_cpp.re"
 
-    }
-    else {
-    
-#line 7385 "strict_cpp_re.inc"
+
+ccomment:
+
+#line 5857 "strict_cpp_re.inc"
 {
     YYCTYPE yych;
-    if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+    if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
     yych = *YYCURSOR;
-    if (yych <= 'U') {
-        if (yych == 'L') goto yy1099;
-        if (yych >= 'U') goto yy1098;
-    } else {
-        if (yych <= 'l') {
-            if (yych >= 'l') goto yy1099;
+    if (yych <= '\f') {
+        if (yych <= 0x08) {
+            if (yych >= 0x01) goto yy926;
         } else {
-            if (yych == 'u') goto yy1098;
+            if (yych == '\n') goto yy930;
+            goto yy928;
         }
-    }
-yy1097:
-#line 474 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_INTLIT); }
-#line 7403 "strict_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;
+        if (yych <= 0x1F) {
+            if (yych <= '\r') goto yy932;
+            goto yy926;
         } else {
-            if (yych != 'u') goto yy1097;
+            if (yych == '*') goto yy933;
+            goto yy928;
         }
     }
-    yych = *++YYCURSOR;
-    goto yy1097;
-yy1101:
     ++YYCURSOR;
-    if ((yych = *YYCURSOR) == 'U') goto yy1103;
-    if (yych == 'u') goto yy1103;
-yy1102:
-#line 471 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_LONGINTLIT); }
-#line 7431 "strict_cpp_re.inc"
-yy1103:
+#line 366 "strict_cpp.re"
+    {
+        if(cursor == s->eof)
+        {
+            BOOST_WAVE_UPDATE_CURSOR();   // adjust the input cursor
+            (*s->error_proc)(s, lexing_exception::generic_lexing_warning,
+                "unterminated 'C' style comment");
+        }
+        else
+        {
+            --YYCURSOR;                   // next call returns T_EOF
+            BOOST_WAVE_UPDATE_CURSOR();   // adjust the input cursor
+            (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+                "invalid character: '\\000' in input stream");
+        }
+    }
+#line 5895 "strict_cpp_re.inc"
+yy926:
+    ++YYCURSOR;
+#line 383 "strict_cpp.re"
+    {
+        // flag the error
+        BOOST_WAVE_UPDATE_CURSOR();   // adjust the input cursor
+        (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+            "invalid character '\\%03o' in input stream", *--YYCURSOR);
+    }
+#line 5905 "strict_cpp_re.inc"
+yy928:
+    ++YYCURSOR;
+yy929:
+#line 363 "strict_cpp.re"
+    { goto ccomment; }
+#line 5911 "strict_cpp_re.inc"
+yy930:
+    ++YYCURSOR;
+yy931:
+#line 355 "strict_cpp.re"
+    {
+        /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF);*/
+        /*s->tok = cursor; */
+        s->line += count_backslash_newlines(s, cursor) +1;
+        cursor.column = 1;
+        goto ccomment;
+    }
+#line 5923 "strict_cpp_re.inc"
+yy932:
     yych = *++YYCURSOR;
-    goto yy1102;
-yy1104:
+    if (yych == '\n') goto yy930;
+    goto yy931;
+yy933:
+    yych = *++YYCURSOR;
+    if (yych != '/') goto yy929;
     ++YYCURSOR;
-    if ((yych = *YYCURSOR) == 'L') goto yy1103;
-    if (yych == 'l') goto yy1103;
-    goto yy1097;
+#line 352 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_CCOMMENT); }
+#line 5934 "strict_cpp_re.inc"
 }
-#line 475 "strict_cpp.re"
+#line 389 "strict_cpp.re"
 
-    }
-}
 
-/* this subscanner is invoked for C++0x extended character literals */
-extcharlit:
-{
-    
-#line 7450 "strict_cpp_re.inc"
+cppcomment:
+
+#line 5941 "strict_cpp_re.inc"
 {
     YYCTYPE yych;
-    static const unsigned char yybm[] = {
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-        128, 128, 128, 128, 128, 128, 128, 128, 
-        128, 128,   0,   0,   0,   0,   0,   0, 
-          0, 128, 128, 128, 128, 128, 128,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0, 128, 128, 128, 128, 128, 128,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-          0,   0,   0,   0,   0,   0,   0,   0, 
-    };
-    if ((YYLIMIT - YYCURSOR) < 13) YYFILL(13);
+    if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
     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;
-        }
+    if (yych <= '\n') {
+        if (yych <= 0x00) goto yy938;
+        if (yych <= 0x08) goto yy940;
+        if (yych <= '\t') goto yy942;
+        goto yy944;
     } else {
-        if (yych <= '>') {
-            if (yych == '\'') goto yy1112;
-            goto yy1108;
-        } else {
-            if (yych <= '?') goto yy1110;
-            if (yych == '\\') goto yy1111;
-            goto yy1108;
-        }
+        if (yych <= '\f') goto yy942;
+        if (yych <= '\r') goto yy946;
+        if (yych <= 0x1F) goto yy940;
+        goto yy942;
     }
-yy1107:
-    YYCURSOR = YYMARKER;
-    goto yy1109;
-yy1108:
+yy938:
     ++YYCURSOR;
-    if ((yych = *YYCURSOR) == '\'') goto yy1120;
-yy1109:
-#line 487 "strict_cpp.re"
-    { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
-#line 7517 "strict_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;
-            }
+#line 405 "strict_cpp.re"
+    {
+        if (s->eof && cursor != s->eof)
+        {
+            --YYCURSOR;                     // next call returns T_EOF
+            BOOST_WAVE_UPDATE_CURSOR();     // adjust the input cursor
+            (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+                "invalid character '\\000' in input stream");
         }
-    } 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;
-            }
+
+        --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);
     }
-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;
+#line 5978 "strict_cpp_re.inc"
+yy940:
+    ++YYCURSOR;
+#line 425 "strict_cpp.re"
+    {
+        // flag the error
+        BOOST_WAVE_UPDATE_CURSOR();     // adjust the input cursor
+        (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+            "invalid character '\\%03o' in input stream", *--YYCURSOR);
     }
-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:
+#line 5988 "strict_cpp_re.inc"
+yy942:
     ++YYCURSOR;
-#line 484 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_CHARLIT); }
-#line 7622 "strict_cpp_re.inc"
-yy1122:
+#line 402 "strict_cpp.re"
+    { goto cppcomment; }
+#line 5993 "strict_cpp_re.inc"
+yy944:
     ++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;
+yy945:
+#line 394 "strict_cpp.re"
+    {
+        /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF); */
+        /*s->tok = cursor; */
+        s->line++;
+        cursor.column = 1;
+        BOOST_WAVE_RET(T_CPPCOMMENT);
     }
-yy1135:
+#line 6005 "strict_cpp_re.inc"
+yy946:
     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;
-            }
-        }
-    }
+    if (yych == '\n') goto yy944;
+    goto yy945;
 }
-#line 488 "strict_cpp.re"
+#line 431 "strict_cpp.re"
 
-}
 
-/* this subscanner is invoked for C++0x extended character string literals */
-extstringlit:
+/* 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 7797 "strict_cpp_re.inc"
+#line 6023 "strict_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
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0
+          0,   0,   0,   0,   0,   0,  64,   0
+         64,  64,  64,  64,  64,  64,  64,  64, 
+         64,  64,   0,   0,   0,   0,   0,   0
+          0,  64,  64,  64,  64, 128,  64,  64
+         64,  64,  64,  64,  64,  64,  64,  64
+         64,  64,  64,  64,  64,  64,  64,  64
+         64,  64,  64,   0,   0,   0,   0,  64
+          0,  64,  64,  64,  64, 128,  64,  64
+         64,  64,  64,  64,  64,  64,  64,  64
+         64,  64,  64,  64,  64,  64,  64,  64
+         64,  64,  64,   0,   0,   0,   0,   0
+          0,   0,   0,   0,   0,   0,   0,   0
+          0,   0,   0,   0,   0,   0,   0,   0
+          0,   0,   0,   0,   0,   0,   0,   0
+          0,   0,   0,   0,   0,   0,   0,   0
+          0,   0,   0,   0,   0,   0,   0,   0
+          0,   0,   0,   0,   0,   0,   0,   0
+          0,   0,   0,   0,   0,   0,   0,   0
+          0,   0,   0,   0,   0,   0,   0,   0
+          0,   0,   0,   0,   0,   0,   0,   0
+          0,   0,   0,   0,   0,   0,   0,   0
+          0,   0,   0,   0,   0,   0,   0,   0
+          0,   0,   0,   0,   0,   0,   0,   0
+          0,   0,   0,   0,   0,   0,   0,   0
+          0,   0,   0,   0,   0,   0,   0,   0
+          0,   0,   0,   0,   0,   0,   0,   0
+          0,   0,   0,   0,   0,   0,   0,   0
     };
     if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
     yych = *YYCURSOR;
-    if (yych <= 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:
+    if (yych == '.') goto yy950;
+    if (yych <= '/') goto yy949;
+    if (yych <= '9') goto yy951;
+yy949:
     YYCURSOR = YYMARKER;
-    if (yyaccept <= 0) {
-        goto yy1141;
-    } else {
-        goto yy1145;
+    goto yy953;
+yy950:
+    yych = *++YYCURSOR;
+    if (yych <= '/') goto yy949;
+    if (yych >= ':') goto yy949;
+yy951:
+    YYMARKER = ++YYCURSOR;
+    if (YYLIMIT <= YYCURSOR) YYFILL(1);
+    yych = *YYCURSOR;
+    if (yybm[0+yych] & 64) {
+        goto yy951;
     }
-yy1140:
-    yyaccept = 0;
-    yych = *(YYMARKER = ++YYCURSOR);
-    if (yych <= '\n') {
-        if (yych == '\t') goto yy1150;
+    if (yych <= 'E') {
+        if (yych == '?') goto yy954;
+        if (yych >= 'A') goto yy955;
     } else {
-        if (yych <= '\f') goto yy1150;
-        if (yych >= ' ') goto yy1150;
-    }
-yy1141:
-#line 499 "strict_cpp.re"
-    { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
-#line 7875 "strict_cpp_re.inc"
-yy1142:
-    yyaccept = 0;
-    yych = *(YYMARKER = ++YYCURSOR);
-    if (yybm[0+yych] & 32) {
-        goto yy1158;
+        if (yych <= '\\') {
+            if (yych >= '\\') goto yy957;
+        } else {
+            if (yych <= '`') goto yy953;
+            if (yych <= 'e') goto yy955;
+        }
     }
-    if (yych <= '\n') {
-        if (yych == '\t') goto yy1150;
-        goto yy1141;
-    } else {
-        if (yych <= '\f') goto yy1150;
-        if (yych <= 0x1F) goto yy1141;
-        goto yy1150;
+yy953:
+#line 443 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_PP_NUMBER); }
+#line 6093 "strict_cpp_re.inc"
+yy954:
+    ++YYCURSOR;
+    if (YYLIMIT <= YYCURSOR) YYFILL(1);
+    yych = *YYCURSOR;
+    if (yych == '?') goto yy958;
+    goto yy949;
+yy955:
+    YYMARKER = ++YYCURSOR;
+    if (YYLIMIT <= YYCURSOR) YYFILL(1);
+    yych = *YYCURSOR;
+    if (yybm[0+yych] & 128) {
+        goto yy955;
     }
-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;
-            }
+    if (yych <= '?') {
+        if (yych <= '.') {
+            if (yych == '+') goto yy951;
+            if (yych <= ',') goto yy953;
+            goto yy951;
         } else {
-            if (yych <= 'T') {
-                if (yych == '?') goto yy1151;
-                goto yy1141;
-            } else {
-                if (yych <= 'U') goto yy1148;
-                if (yych == '\\') goto yy1149;
-                goto yy1141;
-            }
+            if (yych <= '/') goto yy953;
+            if (yych <= '9') goto yy951;
+            if (yych <= '>') goto yy953;
+            goto yy954;
         }
     } 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;
-            }
+        if (yych <= '\\') {
+            if (yych <= '@') goto yy953;
+            if (yych <= 'Z') goto yy951;
+            if (yych <= '[') goto yy953;
         } else {
-            if (yych <= 'u') {
-                if (yych <= 's') goto yy1141;
-                if (yych <= 't') goto yy1149;
-                goto yy1147;
+            if (yych <= '_') {
+                if (yych <= '^') goto yy953;
+                goto yy951;
             } else {
-                if (yych <= 'v') goto yy1149;
-                if (yych == 'x') goto yy1152;
-                goto yy1141;
+                if (yych <= '`') goto yy953;
+                if (yych <= 'z') goto yy951;
+                goto yy953;
             }
         }
     }
-yy1144:
+yy957:
     ++YYCURSOR;
-yy1145:
-#line 496 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_STRINGLIT); }
-#line 7941 "strict_cpp_re.inc"
-yy1146:
-    yych = *++YYCURSOR;
-    goto yy1141;
-yy1147:
+    if (YYLIMIT <= YYCURSOR) YYFILL(1);
+    yych = *YYCURSOR;
+    if (yych == 'U') goto yy959;
+    if (yych == 'u') goto yy960;
+    goto yy949;
+yy958:
+    ++YYCURSOR;
+    if (YYLIMIT <= YYCURSOR) YYFILL(1);
+    yych = *YYCURSOR;
+    if (yych == '/') goto yy957;
+    goto yy949;
+yy959:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1139;
-        if (yych <= '9') goto yy1187;
-        goto yy1139;
+        if (yych <= '/') goto yy949;
+        if (yych <= '9') goto yy961;
+        goto yy949;
     } else {
-        if (yych <= 'F') goto yy1187;
-        if (yych <= '`') goto yy1139;
-        if (yych <= 'f') goto yy1187;
-        goto yy1139;
+        if (yych <= 'F') goto yy961;
+        if (yych <= '`') goto yy949;
+        if (yych <= 'f') goto yy961;
+        goto yy949;
     }
-yy1148:
+yy960:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1139;
-        if (yych <= '9') goto yy1180;
-        goto yy1139;
+        if (yych <= '/') goto yy949;
+        if (yych <= '9') goto yy962;
+        goto yy949;
     } else {
-        if (yych <= 'F') goto yy1180;
-        if (yych <= '`') goto yy1139;
-        if (yych <= 'f') goto yy1180;
-        goto yy1139;
+        if (yych <= 'F') goto yy962;
+        if (yych <= '`') goto yy949;
+        if (yych <= 'f') goto yy962;
+        goto yy949;
     }
-yy1149:
+yy961:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
-yy1150:
-    if (yybm[0+yych] & 16) {
-        goto yy1149;
+    if (yych <= '@') {
+        if (yych <= '/') goto yy949;
+        if (yych <= '9') goto yy963;
+        goto yy949;
+    } else {
+        if (yych <= 'F') goto yy963;
+        if (yych <= '`') goto yy949;
+        if (yych <= 'f') goto yy963;
+        goto yy949;
     }
-    if (yych <= '!') goto yy1139;
-    if (yych <= '"') goto yy1155;
-    if (yych <= '[') goto yy1156;
-    goto yy1157;
-yy1151:
+yy962:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
-    if (yybm[0+yych] & 16) {
-        goto yy1149;
+    if (yych <= '@') {
+        if (yych <= '/') goto yy949;
+        if (yych <= '9') goto yy964;
+        goto yy949;
+    } else {
+        if (yych <= 'F') goto yy964;
+        if (yych <= '`') goto yy949;
+        if (yych <= 'f') goto yy964;
+        goto yy949;
     }
-    if (yych <= '!') goto yy1139;
-    if (yych <= '"') goto yy1155;
-    if (yych <= '[') goto yy1179;
-    goto yy1157;
-yy1152:
+yy963:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
-    if (yybm[0+yych] & 128) {
-        goto yy1166;
+    if (yych <= '@') {
+        if (yych <= '/') goto yy949;
+        if (yych <= '9') goto yy965;
+        goto yy949;
+    } else {
+        if (yych <= 'F') goto yy965;
+        if (yych <= '`') goto yy949;
+        if (yych <= 'f') goto yy965;
+        goto yy949;
     }
-    goto yy1139;
-yy1153:
+yy964:
     ++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;
-        }
+    if (yych <= '@') {
+        if (yych <= '/') goto yy949;
+        if (yych <= '9') goto yy966;
+        goto yy949;
     } else {
-        if (yych <= '>') {
-            if (yych <= '/') goto yy1149;
-            if (yych >= '8') goto yy1149;
-        } else {
-            if (yych <= '?') goto yy1156;
-            if (yych == '\\') goto yy1157;
-            goto yy1149;
-        }
+        if (yych <= 'F') goto yy966;
+        if (yych <= '`') goto yy949;
+        if (yych <= 'f') goto yy966;
+        goto yy949;
     }
+yy965:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
-    if (yybm[0+yych] & 16) {
-        goto yy1149;
+    if (yych <= '@') {
+        if (yych <= '/') goto yy949;
+        if (yych <= '9') goto yy960;
+        goto yy949;
+    } else {
+        if (yych <= 'F') goto yy960;
+        if (yych <= '`') goto yy949;
+        if (yych <= 'f') goto yy960;
+        goto yy949;
     }
-    if (yych <= '!') goto yy1139;
-    if (yych <= '"') goto yy1155;
-    if (yych <= '[') goto yy1156;
-    goto yy1157;
-yy1155:
-    yych = *++YYCURSOR;
-    goto yy1145;
-yy1156:
+yy966:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
-    if (yybm[0+yych] & 16) {
-        goto yy1149;
+    if (yych <= '@') {
+        if (yych <= '/') goto yy949;
+        if (yych <= '9') goto yy951;
+        goto yy949;
+    } else {
+        if (yych <= 'F') goto yy951;
+        if (yych <= '`') goto yy949;
+        if (yych <= 'f') goto yy951;
+        goto yy949;
     }
-    if (yych <= '!') goto yy1139;
-    if (yych <= '"') goto yy1155;
-    if (yych <= '[') goto yy1158;
-yy1157:
-    ++YYCURSOR;
-    if (YYLIMIT <= YYCURSOR) YYFILL(1);
+}
+#line 444 "strict_cpp.re"
+
+    }
+    else {
+    
+#line 6265 "strict_cpp_re.inc"
+{
+    YYCTYPE yych;
+    unsigned int yyaccept = 0;
+    static const unsigned char yybm[] = {
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+        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 <= '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;
-            }
-        }
+    if (yych <= '/') {
+        if (yych == '.') goto yy970;
     } 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;
-            }
-        }
+        if (yych <= '0') goto yy971;
+        if (yych <= '9') goto yy973;
     }
-yy1158:
-    ++YYCURSOR;
-    if (YYLIMIT <= YYCURSOR) YYFILL(1);
+yy969:
+    YYCURSOR = YYMARKER;
+    if (yyaccept == 0) {
+        goto yy972;
+    } else {
+        goto yy977;
+    }
+yy970:
+    yych = *++YYCURSOR;
+    if (yych <= '/') goto yy969;
+    if (yych <= '9') goto yy975;
+    goto yy969;
+yy971:
+    yyaccept = 0;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'X') goto yy983;
+    if (yych == 'x') goto yy983;
+    goto yy979;
+yy972:
+#line 451 "strict_cpp.re"
+    { goto integer_suffix; }
+#line 6332 "strict_cpp_re.inc"
+yy973:
+    yyaccept = 0;
+    YYMARKER = ++YYCURSOR;
+    if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 32) {
-        goto yy1158;
+        goto yy973;
     }
-    if (yych <= '!') {
-        if (yych <= '\n') {
-            if (yych == '\t') goto yy1149;
-            goto yy1139;
+    if (yych <= 'D') {
+        if (yych != '.') goto yy972;
+    } else {
+        if (yych <= 'E') goto yy982;
+        if (yych == 'e') goto yy982;
+        goto yy972;
+    }
+yy975:
+    yyaccept = 1;
+    YYMARKER = ++YYCURSOR;
+    if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+    yych = *YYCURSOR;
+    if (yych <= 'K') {
+        if (yych <= 'D') {
+            if (yych <= '/') goto yy977;
+            if (yych <= '9') goto yy975;
         } else {
-            if (yych <= '\f') goto yy1149;
-            if (yych <= 0x1F) goto yy1139;
-            goto yy1149;
+            if (yych <= 'E') goto yy982;
+            if (yych <= 'F') goto yy984;
         }
     } else {
-        if (yych <= '/') {
-            if (yych <= '"') goto yy1155;
-            if (yych <= '.') goto yy1149;
+        if (yych <= 'e') {
+            if (yych <= 'L') goto yy985;
+            if (yych >= 'e') goto yy982;
         } else {
-            if (yych == '\\') goto yy1157;
-            goto yy1149;
+            if (yych <= 'f') goto yy984;
+            if (yych == 'l') goto yy985;
         }
     }
-yy1160:
-    ++YYCURSOR;
-    if (YYLIMIT <= YYCURSOR) YYFILL(1);
+yy977:
+#line 449 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_FLOATLIT); }
+#line 6373 "strict_cpp_re.inc"
+yy978:
+    yyaccept = 0;
+    YYMARKER = ++YYCURSOR;
+    if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
     yych = *YYCURSOR;
+yy979:
     if (yybm[0+yych] & 64) {
-        goto yy1160;
+        goto yy978;
     }
-    if (yych <= '7') {
-        if (yych <= '\f') {
-            if (yych == '\t') goto yy1149;
-            if (yych <= '\n') goto yy1139;
-            goto yy1149;
+    if (yych <= '9') {
+        if (yych == '.') goto yy975;
+        if (yych <= '/') goto yy972;
+    } else {
+        if (yych <= 'E') {
+            if (yych <= 'D') goto yy972;
+            goto yy982;
         } else {
-            if (yych <= '!') {
-                if (yych <= 0x1F) goto yy1139;
-                goto yy1149;
-            } else {
-                if (yych <= '"') goto yy1164;
-                if (yych <= '/') goto yy1149;
-                goto yy1153;
-            }
+            if (yych == 'e') goto yy982;
+            goto yy972;
         }
+    }
+yy980:
+    ++YYCURSOR;
+    if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+    yych = *YYCURSOR;
+    if (yych <= '9') {
+        if (yych == '.') goto yy975;
+        if (yych <= '/') goto yy969;
+        goto yy980;
     } else {
-        if (yych <= 'U') {
-            if (yych == '?') goto yy1165;
-            if (yych <= 'T') goto yy1149;
-            goto yy1163;
+        if (yych <= 'E') {
+            if (yych <= 'D') goto yy969;
         } else {
-            if (yych <= 'u') {
-                if (yych <= 't') goto yy1149;
-            } else {
-                if (yych == 'x') goto yy1166;
-                goto yy1149;
-            }
+            if (yych != 'e') goto yy969;
         }
     }
+yy982:
+    yych = *++YYCURSOR;
+    if (yych <= ',') {
+        if (yych == '+') goto yy986;
+        goto yy969;
+    } else {
+        if (yych <= '-') goto yy986;
+        if (yych <= '/') goto yy969;
+        if (yych <= '9') goto yy987;
+        goto yy969;
+    }
+yy983:
+    yych = *++YYCURSOR;
+    if (yybm[0+yych] & 128) {
+        goto yy989;
+    }
+    goto yy969;
+yy984:
+    yych = *++YYCURSOR;
+    if (yych == 'L') goto yy991;
+    if (yych == 'l') goto yy991;
+    goto yy977;
+yy985:
+    yych = *++YYCURSOR;
+    if (yych == 'F') goto yy991;
+    if (yych == 'f') goto yy991;
+    goto yy977;
+yy986:
+    yych = *++YYCURSOR;
+    if (yych <= '/') goto yy969;
+    if (yych >= ':') goto yy969;
+yy987:
     ++YYCURSOR;
-    if (YYLIMIT <= YYCURSOR) YYFILL(1);
+    if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
     yych = *YYCURSOR;
-    if (yych <= '9') {
-        if (yych <= '\f') {
-            if (yych == '\t') goto yy1149;
-            if (yych <= '\n') goto yy1139;
-            goto yy1149;
+    if (yych <= 'K') {
+        if (yych <= '9') {
+            if (yych <= '/') goto yy977;
+            goto yy987;
         } else {
-            if (yych <= '!') {
-                if (yych <= 0x1F) goto yy1139;
-                goto yy1149;
-            } else {
-                if (yych <= '"') goto yy1155;
-                if (yych <= '/') goto yy1149;
-                goto yy1176;
-            }
+            if (yych == 'F') goto yy984;
+            goto yy977;
         }
     } else {
-        if (yych <= 'F') {
-            if (yych == '?') goto yy1156;
-            if (yych <= '@') goto yy1149;
-            goto yy1176;
+        if (yych <= 'f') {
+            if (yych <= 'L') goto yy985;
+            if (yych <= 'e') goto yy977;
+            goto yy984;
         } else {
-            if (yych <= '\\') {
-                if (yych <= '[') goto yy1149;
-                goto yy1157;
-            } else {
-                if (yych <= '`') goto yy1149;
-                if (yych <= 'f') goto yy1176;
-                goto yy1149;
-            }
+            if (yych == 'l') goto yy985;
+            goto yy977;
         }
     }
-yy1163:
+yy989:
     ++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;
+    if (yybm[0+yych] & 128) {
+        goto yy989;
+    }
+    goto yy972;
+yy991:
+    ++YYCURSOR;
+    goto yy977;
+}
+#line 452 "strict_cpp.re"
+
+    }
+}
+
+/* this subscanner is called, whenever an Integer was recognized */
+integer_suffix:
+{
+    if (s->enable_ms_extensions) {
+    
+#line 6485 "strict_cpp_re.inc"
+{
+    YYCTYPE yych;
+    if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+    yych = *(YYMARKER = YYCURSOR);
+    if (yych <= 'h') {
+        if (yych <= 'L') {
+            if (yych >= 'L') goto yy995;
         } else {
-            if (yych <= '!') {
-                if (yych <= 0x1F) goto yy1139;
-                goto yy1149;
-            } else {
-                if (yych <= '"') goto yy1155;
-                if (yych <= '/') goto yy1149;
-                goto yy1169;
-            }
+            if (yych == 'U') goto yy996;
         }
     } else {
-        if (yych <= 'F') {
-            if (yych == '?') goto yy1156;
-            if (yych <= '@') goto yy1149;
-            goto yy1169;
+        if (yych <= 'l') {
+            if (yych <= 'i') goto yy997;
+            if (yych >= 'l') goto yy995;
         } else {
-            if (yych <= '\\') {
-                if (yych <= '[') goto yy1149;
-                goto yy1157;
-            } else {
-                if (yych <= '`') goto yy1149;
-                if (yych <= 'f') goto yy1169;
-                goto yy1149;
-            }
+            if (yych == 'u') goto yy996;
         }
     }
-yy1164:
-    yyaccept = 1;
-    YYMARKER = ++YYCURSOR;
-    if (YYLIMIT <= YYCURSOR) YYFILL(1);
-    yych = *YYCURSOR;
-    if (yybm[0+yych] & 16) {
-        goto yy1149;
+yy994:
+#line 465 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_INTLIT); }
+#line 6507 "strict_cpp_re.inc"
+yy995:
+    yych = *++YYCURSOR;
+    if (yych <= 'U') {
+        if (yych == 'L') goto yy999;
+        if (yych <= 'T') goto yy994;
+        goto yy1001;
+    } else {
+        if (yych <= 'l') {
+            if (yych <= 'k') goto yy994;
+            goto yy999;
+        } else {
+            if (yych == 'u') goto yy1001;
+            goto yy994;
+        }
     }
-    if (yych <= '!') goto yy1145;
-    if (yych <= '"') goto yy1155;
-    if (yych <= '[') goto yy1156;
-    goto yy1157;
-yy1165:
+yy996:
+    yych = *++YYCURSOR;
+    if (yych == 'L') goto yy1002;
+    if (yych == 'l') goto yy1002;
+    goto yy994;
+yy997:
+    yych = *++YYCURSOR;
+    if (yych == '6') goto yy1003;
+yy998:
+    YYCURSOR = YYMARKER;
+    goto yy994;
+yy999:
+    yych = *++YYCURSOR;
+    if (yych == 'U') goto yy1004;
+    if (yych == 'u') goto yy1004;
+yy1000:
+#line 462 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_LONGINTLIT); }
+#line 6541 "strict_cpp_re.inc"
+yy1001:
     ++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:
+    goto yy994;
+yy1002:
+    yych = *++YYCURSOR;
+    if (yych == 'L') goto yy1004;
+    if (yych == 'l') goto yy1004;
+    goto yy994;
+yy1003:
+    yych = *++YYCURSOR;
+    if (yych != '4') goto yy998;
+yy1004:
     ++YYCURSOR;
-    if (YYLIMIT <= YYCURSOR) YYFILL(1);
-    yych = *YYCURSOR;
-    if (yybm[0+yych] & 128) {
-        goto yy1166;
+    goto yy1000;
+}
+#line 466 "strict_cpp.re"
+
     }
-    if (yych <= '!') {
-        if (yych <= '\n') {
-            if (yych == '\t') goto yy1149;
-            goto yy1139;
+    else {
+    
+#line 6562 "strict_cpp_re.inc"
+{
+    YYCTYPE yych;
+    if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+    yych = *YYCURSOR;
+    if (yych <= 'U') {
+        if (yych == 'L') goto yy1008;
+        if (yych >= 'U') goto yy1009;
+    } else {
+        if (yych <= 'l') {
+            if (yych >= 'l') goto yy1008;
         } else {
-            if (yych <= '\f') goto yy1149;
-            if (yych <= 0x1F) goto yy1139;
-            goto yy1149;
+            if (yych == 'u') goto yy1009;
         }
+    }
+yy1007:
+#line 474 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_INTLIT); }
+#line 6580 "strict_cpp_re.inc"
+yy1008:
+    yych = *++YYCURSOR;
+    if (yych <= 'U') {
+        if (yych == 'L') goto yy1010;
+        if (yych <= 'T') goto yy1007;
+        goto yy1012;
     } else {
-        if (yych <= '?') {
-            if (yych <= '"') goto yy1155;
-            if (yych <= '>') goto yy1149;
-            goto yy1156;
+        if (yych <= 'l') {
+            if (yych <= 'k') goto yy1007;
+            goto yy1010;
         } else {
-            if (yych == '\\') goto yy1157;
-            goto yy1149;
+            if (yych == 'u') goto yy1012;
+            goto yy1007;
         }
     }
-yy1168:
+yy1009:
+    yych = *++YYCURSOR;
+    if (yych == 'L') goto yy1013;
+    if (yych == 'l') goto yy1013;
+    goto yy1007;
+yy1010:
+    yych = *++YYCURSOR;
+    if (yych == 'U') goto yy1014;
+    if (yych == 'u') goto yy1014;
+yy1011:
+#line 471 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_LONGINTLIT); }
+#line 6608 "strict_cpp_re.inc"
+yy1012:
     ++YYCURSOR;
-    if (YYLIMIT <= YYCURSOR) YYFILL(1);
-    yych = *YYCURSOR;
-    if (yybm[0+yych] & 32) {
-        goto yy1158;
+    goto yy1007;
+yy1013:
+    yych = *++YYCURSOR;
+    if (yych == 'L') goto yy1014;
+    if (yych != 'l') goto yy1007;
+yy1014:
+    ++YYCURSOR;
+    goto yy1011;
+}
+#line 475 "strict_cpp.re"
+
     }
-    if (yych <= '!') {
+}
+
+/* this subscanner is invoked for C++0x extended character literals */
+extcharlit:
+{
+    
+#line 6629 "strict_cpp_re.inc"
+{
+    YYCTYPE yych;
+    static const unsigned char yybm[] = {
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+        128, 128, 128, 128, 128, 128, 128, 128, 
+        128, 128,   0,   0,   0,   0,   0,   0, 
+          0, 128, 128, 128, 128, 128, 128,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0, 128, 128, 128, 128, 128, 128,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+    };
+    if ((YYLIMIT - YYCURSOR) < 13) YYFILL(13);
+    yych = *YYCURSOR;
+    if (yych <= 0x1F) {
         if (yych <= '\n') {
-            if (yych == '\t') goto yy1149;
-            goto yy1139;
+            if (yych <= 0x08) goto yy1017;
+            if (yych <= '\t') goto yy1018;
+            goto yy1020;
         } else {
-            if (yych <= '\f') goto yy1149;
-            if (yych <= 0x1F) goto yy1139;
-            goto yy1149;
+            if (yych <= '\f') goto yy1018;
+            if (yych <= '\r') goto yy1020;
         }
     } else {
-        if (yych <= '/') {
-            if (yych <= '"') goto yy1155;
-            if (yych <= '.') goto yy1149;
-            goto yy1160;
+        if (yych <= '>') {
+            if (yych == '\'') goto yy1020;
+            goto yy1018;
         } else {
-            if (yych == '\\') goto yy1157;
-            goto yy1149;
+            if (yych <= '?') goto yy1021;
+            if (yych == '\\') goto yy1022;
+            goto yy1018;
         }
     }
-yy1169:
+yy1017:
+    YYCURSOR = YYMARKER;
+    goto yy1019;
+yy1018:
+    yych = *++YYCURSOR;
+    if (yych == '\'') goto yy1023;
+yy1019:
+#line 487 "strict_cpp.re"
+    { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
+#line 6696 "strict_cpp_re.inc"
+yy1020:
     ++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;
+    goto yy1019;
+yy1021:
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == '\'') goto yy1023;
+    if (yych == '?') goto yy1025;
+    goto yy1019;
+yy1022:
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych <= '`') {
+        if (yych <= '7') {
+            if (yych <= '&') {
+                if (yych == '"') goto yy1026;
+                goto yy1019;
+            } else {
+                if (yych <= '\'') goto yy1026;
+                if (yych <= '/') goto yy1019;
+                goto yy1027;
+            }
         } else {
-            if (yych <= '!') {
-                if (yych <= 0x1F) goto yy1139;
-                goto yy1149;
+            if (yych <= 'T') {
+                if (yych == '?') goto yy1028;
+                goto yy1019;
             } else {
-                if (yych <= '"') goto yy1155;
-                if (yych <= '/') goto yy1149;
+                if (yych <= 'U') goto yy1029;
+                if (yych == '\\') goto yy1026;
+                goto yy1019;
             }
         }
     } else {
-        if (yych <= 'F') {
-            if (yych == '?') goto yy1156;
-            if (yych <= '@') goto yy1149;
-        } else {
-            if (yych <= '\\') {
-                if (yych <= '[') goto yy1149;
-                goto yy1157;
+        if (yych <= 'r') {
+            if (yych <= 'f') {
+                if (yych <= 'b') goto yy1026;
+                if (yych <= 'e') goto yy1019;
+                goto yy1026;
             } else {
-                if (yych <= '`') goto yy1149;
-                if (yych >= 'g') goto yy1149;
+                if (yych == 'n') goto yy1026;
+                if (yych <= 'q') goto yy1019;
+                goto yy1026;
             }
-        }
-    }
-    ++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;
+            if (yych <= 'u') {
+                if (yych <= 's') goto yy1019;
+                if (yych <= 't') goto yy1026;
+                goto yy1030;
             } else {
-                if (yych <= '"') goto yy1155;
-                if (yych <= '/') goto yy1149;
+                if (yych <= 'v') goto yy1026;
+                if (yych == 'x') goto yy1031;
+                goto yy1019;
             }
         }
+    }
+yy1023:
+    ++YYCURSOR;
+#line 484 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_CHARLIT); }
+#line 6754 "strict_cpp_re.inc"
+yy1025:
+    yych = *++YYCURSOR;
+    if (yych == '/') goto yy1032;
+    goto yy1017;
+yy1026:
+    yych = *++YYCURSOR;
+    if (yych == '\'') goto yy1023;
+    goto yy1017;
+yy1027:
+    yych = *++YYCURSOR;
+    if (yych == '\'') goto yy1023;
+    if (yych <= '/') goto yy1017;
+    if (yych <= '7') goto yy1033;
+    goto yy1017;
+yy1028:
+    yych = *++YYCURSOR;
+    if (yych == '\'') goto yy1023;
+    if (yych == '?') goto yy1034;
+    goto yy1017;
+yy1029:
+    yych = *++YYCURSOR;
+    if (yych <= '@') {
+        if (yych <= '/') goto yy1017;
+        if (yych <= '9') goto yy1035;
+        goto yy1017;
     } else {
-        if (yych <= 'F') {
-            if (yych == '?') goto yy1156;
-            if (yych <= '@') goto yy1149;
-        } else {
-            if (yych <= '\\') {
-                if (yych <= '[') goto yy1149;
-                goto yy1157;
+        if (yych <= 'F') goto yy1035;
+        if (yych <= '`') goto yy1017;
+        if (yych <= 'f') goto yy1035;
+        goto yy1017;
+    }
+yy1030:
+    yych = *++YYCURSOR;
+    if (yych <= '@') {
+        if (yych <= '/') goto yy1017;
+        if (yych <= '9') goto yy1036;
+        goto yy1017;
+    } else {
+        if (yych <= 'F') goto yy1036;
+        if (yych <= '`') goto yy1017;
+        if (yych <= 'f') goto yy1036;
+        goto yy1017;
+    }
+yy1031:
+    yych = *++YYCURSOR;
+    if (yych == '\'') goto yy1017;
+    goto yy1038;
+yy1032:
+    yych = *++YYCURSOR;
+    if (yych <= '`') {
+        if (yych <= '7') {
+            if (yych <= '&') {
+                if (yych == '"') goto yy1026;
+                goto yy1017;
             } else {
-                if (yych <= '`') goto yy1149;
-                if (yych >= 'g') goto yy1149;
+                if (yych <= '\'') goto yy1026;
+                if (yych <= '/') goto yy1017;
+                goto yy1027;
             }
-        }
-    }
-    ++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;
+            if (yych <= 'T') {
+                if (yych == '?') goto yy1028;
+                goto yy1017;
             } else {
-                if (yych <= '"') goto yy1155;
-                if (yych <= '/') goto yy1149;
+                if (yych <= 'U') goto yy1029;
+                if (yych == '\\') goto yy1026;
+                goto yy1017;
             }
         }
     } else {
-        if (yych <= 'F') {
-            if (yych == '?') goto yy1156;
-            if (yych <= '@') goto yy1149;
+        if (yych <= 'r') {
+            if (yych <= 'f') {
+                if (yych <= 'b') goto yy1026;
+                if (yych <= 'e') goto yy1017;
+                goto yy1026;
+            } else {
+                if (yych == 'n') goto yy1026;
+                if (yych <= 'q') goto yy1017;
+                goto yy1026;
+            }
         } else {
-            if (yych <= '\\') {
-                if (yych <= '[') goto yy1149;
-                goto yy1157;
+            if (yych <= 'u') {
+                if (yych <= 's') goto yy1017;
+                if (yych <= 't') goto yy1026;
+                goto yy1030;
             } else {
-                if (yych <= '`') goto yy1149;
-                if (yych >= 'g') goto yy1149;
+                if (yych <= 'v') goto yy1026;
+                if (yych == 'x') goto yy1031;
+                goto yy1017;
             }
         }
     }
+yy1033:
+    yych = *++YYCURSOR;
+    if (yych == '\'') goto yy1023;
+    if (yych <= '/') goto yy1017;
+    if (yych <= '7') goto yy1026;
+    goto yy1017;
+yy1034:
+    yych = *++YYCURSOR;
+    if (yych == '/') goto yy1026;
+    goto yy1017;
+yy1035:
+    yych = *++YYCURSOR;
+    if (yych <= '@') {
+        if (yych <= '/') goto yy1017;
+        if (yych <= '9') goto yy1039;
+        goto yy1017;
+    } else {
+        if (yych <= 'F') goto yy1039;
+        if (yych <= '`') goto yy1017;
+        if (yych <= 'f') goto yy1039;
+        goto yy1017;
+    }
+yy1036:
+    yych = *++YYCURSOR;
+    if (yych <= '@') {
+        if (yych <= '/') goto yy1017;
+        if (yych <= '9') goto yy1040;
+        goto yy1017;
+    } else {
+        if (yych <= 'F') goto yy1040;
+        if (yych <= '`') goto yy1017;
+        if (yych <= 'f') goto yy1040;
+        goto yy1017;
+    }
+yy1037:
     ++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;
+yy1038:
+    if (yybm[0+yych] & 128) {
+        goto yy1037;
+    }
+    if (yych == '\'') goto yy1023;
+    goto yy1017;
+yy1039:
+    yych = *++YYCURSOR;
+    if (yych <= '@') {
+        if (yych <= '/') goto yy1017;
+        if (yych <= '9') goto yy1041;
+        goto yy1017;
+    } else {
+        if (yych <= 'F') goto yy1041;
+        if (yych <= '`') goto yy1017;
+        if (yych <= 'f') goto yy1041;
+        goto yy1017;
+    }
+yy1040:
+    yych = *++YYCURSOR;
+    if (yych <= '@') {
+        if (yych <= '/') goto yy1017;
+        if (yych <= '9') goto yy1042;
+        goto yy1017;
+    } else {
+        if (yych <= 'F') goto yy1042;
+        if (yych <= '`') goto yy1017;
+        if (yych <= 'f') goto yy1042;
+        goto yy1017;
+    }
+yy1041:
+    yych = *++YYCURSOR;
+    if (yych <= '@') {
+        if (yych <= '/') goto yy1017;
+        if (yych <= '9') goto yy1030;
+        goto yy1017;
+    } else {
+        if (yych <= 'F') goto yy1030;
+        if (yych <= '`') goto yy1017;
+        if (yych <= 'f') goto yy1030;
+        goto yy1017;
+    }
+yy1042:
+    yych = *++YYCURSOR;
+    if (yych <= '@') {
+        if (yych <= '/') goto yy1017;
+        if (yych <= '9') goto yy1026;
+        goto yy1017;
+    } else {
+        if (yych <= 'F') goto yy1026;
+        if (yych <= '`') goto yy1017;
+        if (yych <= 'f') goto yy1026;
+        goto yy1017;
+    }
+}
+#line 488 "strict_cpp.re"
+
+}
+
+/* this subscanner is invoked for C++0x extended character string literals */
+extstringlit:
+{
+    
+#line 6948 "strict_cpp_re.inc"
+{
+    YYCTYPE yych;
+    unsigned int yyaccept = 0;
+    static const unsigned char yybm[] = {
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,  32,   0,  32,  32,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+          0,   0,   0,   0,   0,   0,   0,   0, 
+         32,  32,   0,  32,  32,  32,  32,  32, 
+         32,  32,  32,  32,  32,  32,  32,  32, 
+         32,  32,  32,  32,  32,  32,  32,  32, 
+         32,  32,  32,  32,  32,  32,  32,  64, 
+         32,  32,  32,  32,  32,  32,  32,  32, 
+         32,  32,  32,  32,  32,  32,  32,  32, 
+         32,  32,  32,  32,  32,  32,  32,  32, 
+         32,  32,  32,  32, 128,  32,  32,  32, 
+         32,  32,  32,  32,  32,  32,  32,  32, 
+         32,  32,  32,  32,  32,  32,  32,  32, 
+         32,  32,  32,  32,  32,  32,  32,  32, 
+         32,  32,  32,  32,  32,  32,  32,  32, 
+         32,  32,  32,  32,  32,  32,  32,  32, 
+         32,  32,  32,  32,  32,  32,  32,  32, 
+         32,  32,  32,  32,  32,  32,  32,  32, 
+         32,  32,  32,  32,  32,  32,  32,  32, 
+         32,  32,  32,  32,  32,  32,  32,  32, 
+         32,  32,  32,  32,  32,  32,  32,  32, 
+         32,  32,  32,  32,  32,  32,  32,  32, 
+         32,  32,  32,  32,  32,  32,  32,  32, 
+         32,  32,  32,  32,  32,  32,  32,  32, 
+         32,  32,  32,  32,  32,  32,  32,  32, 
+         32,  32,  32,  32,  32,  32,  32,  32, 
+         32,  32,  32,  32,  32,  32,  32,  32, 
+         32,  32,  32,  32,  32,  32,  32,  32, 
+         32,  32,  32,  32,  32,  32,  32,  32, 
+         32,  32,  32,  32,  32,  32,  32,  32, 
+         32,  32,  32,  32,  32,  32,  32,  32, 
+    };
+    if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+    yych = *YYCURSOR;
+    if (yych <= 0x1F) {
+        if (yych <= '\n') {
+            if (yych <= 0x08) goto yy1045;
+            if (yych <= '\t') goto yy1046;
+            goto yy1048;
         } else {
-            if (yych <= '!') {
-                if (yych <= 0x1F) goto yy1139;
-                goto yy1149;
-            } else {
-                if (yych <= '"') goto yy1155;
-                if (yych <= '/') goto yy1149;
-            }
+            if (yych <= '\f') goto yy1046;
+            if (yych <= '\r') goto yy1048;
         }
     } else {
-        if (yych <= 'F') {
-            if (yych == '?') goto yy1156;
-            if (yych <= '@') goto yy1149;
+        if (yych <= '>') {
+            if (yych == '"') goto yy1049;
+            goto yy1046;
         } else {
-            if (yych <= '\\') {
-                if (yych <= '[') goto yy1149;
-                goto yy1157;
-            } else {
-                if (yych <= '`') goto yy1149;
-                if (yych >= 'g') goto yy1149;
-            }
+            if (yych <= '?') goto yy1051;
+            if (yych == '\\') goto yy1052;
+            goto yy1046;
         }
     }
+yy1045:
+    YYCURSOR = YYMARKER;
+    if (yyaccept == 0) {
+        goto yy1047;
+    } else {
+        goto yy1050;
+    }
+yy1046:
+    yyaccept = 0;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych <= '\n') {
+        if (yych == '\t') goto yy1054;
+    } else {
+        if (yych <= '\f') goto yy1054;
+        if (yych >= ' ') goto yy1054;
+    }
+yy1047:
+#line 499 "strict_cpp.re"
+    { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
+#line 7026 "strict_cpp_re.inc"
+yy1048:
     ++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;
+    goto yy1047;
+yy1049:
+    ++YYCURSOR;
+yy1050:
+#line 496 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_STRINGLIT); }
+#line 7035 "strict_cpp_re.inc"
+yy1051:
+    yyaccept = 0;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[0+yych] & 64) {
+        goto yy1057;
+    }
+    if (yych <= '\n') {
+        if (yych == '\t') goto yy1054;
+        goto yy1047;
+    } else {
+        if (yych <= '\f') goto yy1054;
+        if (yych <= 0x1F) goto yy1047;
+        goto yy1054;
+    }
+yy1052:
+    yyaccept = 0;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych <= '`') {
+        if (yych <= '7') {
+            if (yych <= '&') {
+                if (yych != '"') goto yy1047;
+            } else {
+                if (yych <= '\'') goto yy1053;
+                if (yych <= '/') goto yy1047;
+            }
         } else {
-            if (yych <= '!') {
-                if (yych <= 0x1F) goto yy1139;
-                goto yy1149;
+            if (yych <= 'T') {
+                if (yych != '?') goto yy1047;
             } else {
-                if (yych <= '"') goto yy1155;
-                if (yych <= '/') goto yy1149;
+                if (yych <= 'U') goto yy1059;
+                if (yych != '\\') goto yy1047;
             }
         }
     } else {
-        if (yych <= 'F') {
-            if (yych == '?') goto yy1156;
-            if (yych <= '@') goto yy1149;
+        if (yych <= 'r') {
+            if (yych <= 'f') {
+                if (yych <= 'b') goto yy1053;
+                if (yych <= 'e') goto yy1047;
+            } else {
+                if (yych == 'n') goto yy1053;
+                if (yych <= 'q') goto yy1047;
+            }
         } else {
-            if (yych <= '\\') {
-                if (yych <= '[') goto yy1149;
-                goto yy1157;
+            if (yych <= 'u') {
+                if (yych <= 's') goto yy1047;
+                if (yych >= 'u') goto yy1060;
             } else {
-                if (yych <= '`') goto yy1149;
-                if (yych >= 'g') goto yy1149;
+                if (yych <= 'v') goto yy1053;
+                if (yych == 'x') goto yy1061;
+                goto yy1047;
             }
         }
     }
+yy1053:
     ++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;
-            }
-        }
+yy1054:
+    if (yybm[0+yych] & 32) {
+        goto yy1053;
     }
+    if (yych <= 0x1F) goto yy1045;
+    if (yych <= '"') goto yy1049;
+    if (yych >= '@') goto yy1056;
+yy1055:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
-    if (yybm[0+yych] & 16) {
-        goto yy1149;
+    if (yybm[0+yych] & 32) {
+        goto yy1053;
     }
-    if (yych <= '!') goto yy1139;
-    if (yych <= '"') goto yy1155;
-    if (yych <= '[') goto yy1156;
-    goto yy1157;
-yy1176:
+    if (yych <= 0x1F) goto yy1045;
+    if (yych <= '"') goto yy1049;
+    if (yych <= '?') goto yy1057;
+yy1056:
     ++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;
+    if (yych <= '`') {
+        if (yych <= '7') {
+            if (yych <= '&') {
+                if (yych == '"') goto yy1053;
+                goto yy1045;
+            } else {
+                if (yych <= '\'') goto yy1053;
+                if (yych <= '/') goto yy1045;
+                goto yy1053;
+            }
         } else {
-            if (yych <= '!') {
-                if (yych <= 0x1F) goto yy1139;
-                goto yy1149;
+            if (yych <= 'T') {
+                if (yych == '?') goto yy1053;
+                goto yy1045;
             } else {
-                if (yych <= '"') goto yy1155;
-                if (yych <= '/') goto yy1149;
+                if (yych <= 'U') goto yy1059;
+                if (yych == '\\') goto yy1053;
+                goto yy1045;
             }
         }
     } else {
-        if (yych <= 'F') {
-            if (yych == '?') goto yy1156;
-            if (yych <= '@') goto yy1149;
+        if (yych <= 'r') {
+            if (yych <= 'f') {
+                if (yych <= 'b') goto yy1053;
+                if (yych <= 'e') goto yy1045;
+                goto yy1053;
+            } else {
+                if (yych == 'n') goto yy1053;
+                if (yych <= 'q') goto yy1045;
+                goto yy1053;
+            }
         } else {
-            if (yych <= '\\') {
-                if (yych <= '[') goto yy1149;
-                goto yy1157;
+            if (yych <= 'u') {
+                if (yych <= 's') goto yy1045;
+                if (yych <= 't') goto yy1053;
+                goto yy1060;
             } else {
-                if (yych <= '`') goto yy1149;
-                if (yych >= 'g') goto yy1149;
+                if (yych <= 'v') goto yy1053;
+                if (yych == 'x') goto yy1061;
+                goto yy1045;
             }
         }
     }
+yy1057:
     ++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;
+    if (yybm[0+yych] & 64) {
+        goto yy1057;
+    }
+    if (yych <= '!') {
+        if (yych <= '\n') {
+            if (yych == '\t') goto yy1053;
+            goto yy1045;
         } else {
-            if (yych <= '!') {
-                if (yych <= 0x1F) goto yy1139;
-                goto yy1149;
-            } else {
-                if (yych <= '"') goto yy1155;
-                if (yych <= '/') goto yy1149;
-            }
+            if (yych <= '\f') goto yy1053;
+            if (yych <= 0x1F) goto yy1045;
+            goto yy1053;
         }
     } else {
-        if (yych <= 'F') {
-            if (yych == '?') goto yy1156;
-            if (yych <= '@') goto yy1149;
+        if (yych <= '/') {
+            if (yych <= '"') goto yy1049;
+            if (yych <= '.') goto yy1053;
+            goto yy1062;
         } else {
-            if (yych <= '\\') {
-                if (yych <= '[') goto yy1149;
-                goto yy1157;
-            } else {
-                if (yych <= '`') goto yy1149;
-                if (yych >= 'g') goto yy1149;
-            }
+            if (yych == '\\') goto yy1056;
+            goto yy1053;
         }
     }
-    ++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:
+yy1059:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1139;
-        if (yych >= ':') goto yy1139;
+        if (yych <= '/') goto yy1045;
+        if (yych <= '9') goto yy1064;
+        goto yy1045;
     } else {
-        if (yych <= 'F') goto yy1181;
-        if (yych <= '`') goto yy1139;
-        if (yych >= 'g') goto yy1139;
+        if (yych <= 'F') goto yy1064;
+        if (yych <= '`') goto yy1045;
+        if (yych <= 'f') goto yy1064;
+        goto yy1045;
     }
-yy1181:
+yy1060:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1139;
-        if (yych >= ':') goto yy1139;
+        if (yych <= '/') goto yy1045;
+        if (yych <= '9') goto yy1065;
+        goto yy1045;
     } else {
-        if (yych <= 'F') goto yy1182;
-        if (yych <= '`') goto yy1139;
-        if (yych >= 'g') goto yy1139;
+        if (yych <= 'F') goto yy1065;
+        if (yych <= '`') goto yy1045;
+        if (yych <= 'f') goto yy1065;
+        goto yy1045;
     }
-yy1182:
+yy1061:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1139;
-        if (yych >= ':') goto yy1139;
+        if (yych <= '/') goto yy1045;
+        if (yych <= '9') goto yy1053;
+        goto yy1045;
     } else {
-        if (yych <= 'F') goto yy1183;
-        if (yych <= '`') goto yy1139;
-        if (yych >= 'g') goto yy1139;
+        if (yych <= 'F') goto yy1053;
+        if (yych <= '`') goto yy1045;
+        if (yych <= 'f') goto yy1053;
+        goto yy1045;
     }
-yy1183:
+yy1062:
     ++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;
+    if (yybm[0+yych] & 32) {
+        goto yy1053;
     }
-yy1184:
+    if (yych <= 0x1F) goto yy1045;
+    if (yych <= '"') goto yy1066;
+    if (yych <= '?') goto yy1055;
+    goto yy1062;
+yy1064:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1139;
-        if (yych >= ':') goto yy1139;
+        if (yych <= '/') goto yy1045;
+        if (yych <= '9') goto yy1067;
+        goto yy1045;
     } else {
-        if (yych <= 'F') goto yy1185;
-        if (yych <= '`') goto yy1139;
-        if (yych >= 'g') goto yy1139;
+        if (yych <= 'F') goto yy1067;
+        if (yych <= '`') goto yy1045;
+        if (yych <= 'f') goto yy1067;
+        goto yy1045;
     }
-yy1185:
+yy1065:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1139;
-        if (yych >= ':') goto yy1139;
+        if (yych <= '/') goto yy1045;
+        if (yych <= '9') goto yy1068;
+        goto yy1045;
     } else {
-        if (yych <= 'F') goto yy1186;
-        if (yych <= '`') goto yy1139;
-        if (yych >= 'g') goto yy1139;
+        if (yych <= 'F') goto yy1068;
+        if (yych <= '`') goto yy1045;
+        if (yych <= 'f') goto yy1068;
+        goto yy1045;
     }
-yy1186:
-    ++YYCURSOR;
+yy1066:
+    yyaccept = 1;
+    YYMARKER = ++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;
+    if (yybm[0+yych] & 32) {
+        goto yy1053;
     }
-yy1187:
+    if (yych <= 0x1F) goto yy1050;
+    if (yych <= '"') goto yy1049;
+    if (yych <= '?') goto yy1055;
+    goto yy1056;
+yy1067:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1139;
-        if (yych >= ':') goto yy1139;
+        if (yych <= '/') goto yy1045;
+        if (yych <= '9') goto yy1069;
+        goto yy1045;
     } else {
-        if (yych <= 'F') goto yy1188;
-        if (yych <= '`') goto yy1139;
-        if (yych >= 'g') goto yy1139;
+        if (yych <= 'F') goto yy1069;
+        if (yych <= '`') goto yy1045;
+        if (yych <= 'f') goto yy1069;
+        goto yy1045;
     }
-yy1188:
+yy1068:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1139;
-        if (yych >= ':') goto yy1139;
+        if (yych <= '/') goto yy1045;
+        if (yych <= '9') goto yy1061;
+        goto yy1045;
     } else {
-        if (yych <= 'F') goto yy1189;
-        if (yych <= '`') goto yy1139;
-        if (yych >= 'g') goto yy1139;
+        if (yych <= 'F') goto yy1061;
+        if (yych <= '`') goto yy1045;
+        if (yych <= 'f') goto yy1061;
+        goto yy1045;
     }
-yy1189:
+yy1069:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1139;
-        if (yych <= '9') goto yy1149;
-        goto yy1139;
+        if (yych <= '/') goto yy1045;
+        if (yych <= '9') goto yy1060;
+        goto yy1045;
     } else {
-        if (yych <= 'F') goto yy1149;
-        if (yych <= '`') goto yy1139;
-        if (yych <= 'f') goto yy1149;
-        goto yy1139;
+        if (yych <= 'F') goto yy1060;
+        if (yych <= '`') goto yy1045;
+        if (yych <= 'f') goto yy1060;
+        goto yy1045;
     }
 }
 #line 500 "strict_cpp.re"
@@ -8712,7 +7322,7 @@ yy1189:
 extrawstringlit:
 {
     
-#line 8716 "strict_cpp_re.inc"
+#line 7326 "strict_cpp_re.inc"
 {
     YYCTYPE yych;
     static const unsigned char yybm[] = {
@@ -8753,264 +7363,234 @@ extrawstringlit:
     yych = *YYCURSOR;
     if (yych <= 0x1F) {
         if (yych <= '\n') {
-            if (yych <= 0x08) goto yy1192;
-            if (yych <= '\t') goto yy1193;
-            goto yy1197;
+            if (yych <= 0x08) goto yy1072;
+            if (yych <= '\t') goto yy1073;
+            goto yy1075;
         } else {
-            if (yych <= '\f') goto yy1193;
-            if (yych <= '\r') goto yy1199;
+            if (yych <= '\f') goto yy1073;
+            if (yych <= '\r') goto yy1077;
         }
     } else {
         if (yych <= '>') {
-            if (yych == '"') goto yy1200;
-            goto yy1193;
+            if (yych == '"') goto yy1078;
+            goto yy1073;
         } else {
-            if (yych <= '?') goto yy1195;
-            if (yych == '\\') goto yy1196;
-            goto yy1193;
+            if (yych <= '?') goto yy1080;
+            if (yych == '\\') goto yy1081;
+            goto yy1073;
         }
     }
-yy1192:
+yy1072:
     YYCURSOR = YYMARKER;
-    goto yy1194;
-yy1193:
+    goto yy1074;
+yy1073:
     ++YYCURSOR;
-yy1194:
+yy1074:
 #line 507 "strict_cpp.re"
     {
             goto extrawstringlit;
         }
-#line 8784 "strict_cpp_re.inc"
-yy1195:
+#line 7394 "strict_cpp_re.inc"
+yy1075:
+    ++YYCURSOR;
+yy1076:
+#line 512 "strict_cpp.re"
+    {
+            s->line += count_backslash_newlines(s, cursor) +1;
+            cursor.column = 1;
+            goto extrawstringlit;
+        }
+#line 7404 "strict_cpp_re.inc"
+yy1077:
+    yych = *++YYCURSOR;
+    if (yych == '\n') goto yy1075;
+    goto yy1076;
+yy1078:
+    ++YYCURSOR;
+#line 518 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_RAWSTRINGLIT); }
+#line 7413 "strict_cpp_re.inc"
+yy1080:
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == '?') goto yy1221;
-    goto yy1194;
-yy1196:
+    if (yych == '?') goto yy1082;
+    goto yy1074;
+yy1081:
     yych = *++YYCURSOR;
     if (yych <= '`') {
         if (yych <= '7') {
             if (yych <= '&') {
-                if (yych == '"') goto yy1193;
-                goto yy1192;
+                if (yych == '"') goto yy1073;
+                goto yy1072;
             } else {
-                if (yych <= '\'') goto yy1193;
-                if (yych <= '/') goto yy1192;
-                goto yy1206;
+                if (yych <= '\'') goto yy1073;
+                if (yych <= '/') goto yy1072;
+                goto yy1083;
             }
         } else {
             if (yych <= 'T') {
-                if (yych == '?') goto yy1204;
-                goto yy1192;
+                if (yych == '?') goto yy1084;
+                goto yy1072;
             } else {
-                if (yych <= 'U') goto yy1203;
-                if (yych == '\\') goto yy1193;
-                goto yy1192;
+                if (yych <= 'U') goto yy1085;
+                if (yych == '\\') goto yy1073;
+                goto yy1072;
             }
         }
     } else {
         if (yych <= 'r') {
             if (yych <= 'f') {
-                if (yych <= 'b') goto yy1193;
-                if (yych <= 'e') goto yy1192;
-                goto yy1193;
+                if (yych <= 'b') goto yy1073;
+                if (yych <= 'e') goto yy1072;
+                goto yy1073;
             } else {
-                if (yych == 'n') goto yy1193;
-                if (yych <= 'q') goto yy1192;
-                goto yy1193;
+                if (yych == 'n') goto yy1073;
+                if (yych <= 'q') goto yy1072;
+                goto yy1073;
             }
         } else {
             if (yych <= 'u') {
-                if (yych <= 's') goto yy1192;
-                if (yych <= 't') goto yy1193;
-                goto yy1202;
+                if (yych <= 's') goto yy1072;
+                if (yych <= 't') goto yy1073;
+                goto yy1086;
             } else {
-                if (yych <= 'v') goto yy1193;
-                if (yych == 'x') goto yy1205;
-                goto yy1192;
+                if (yych <= 'v') goto yy1073;
+                if (yych == 'x') goto yy1087;
+                goto yy1072;
             }
         }
     }
-yy1197:
-    ++YYCURSOR;
-yy1198:
-#line 512 "strict_cpp.re"
-    {
-            s->line += count_backslash_newlines(s, cursor) +1;
-            cursor.column = 1;
-            goto extrawstringlit;
-        }
-#line 8843 "strict_cpp_re.inc"
-yy1199:
+yy1082:
     yych = *++YYCURSOR;
-    if (yych == '\n') goto yy1197;
-    goto yy1198;
-yy1200:
-    ++YYCURSOR;
-#line 518 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_RAWSTRINGLIT); }
-#line 8852 "strict_cpp_re.inc"
-yy1202:
+    if (yych == '/') goto yy1081;
+    goto yy1072;
+yy1083:
+    yych = *++YYCURSOR;
+    if (yych <= '/') goto yy1074;
+    if (yych <= '7') goto yy1088;
+    goto yy1074;
+yy1084:
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == '?') goto yy1089;
+    goto yy1074;
+yy1085:
     yych = *++YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1192;
-        if (yych <= '9') goto yy1218;
-        goto yy1192;
+        if (yych <= '/') goto yy1072;
+        if (yych <= '9') goto yy1090;
+        goto yy1072;
     } else {
-        if (yych <= 'F') goto yy1218;
-        if (yych <= '`') goto yy1192;
-        if (yych <= 'f') goto yy1218;
-        goto yy1192;
+        if (yych <= 'F') goto yy1090;
+        if (yych <= '`') goto yy1072;
+        if (yych <= 'f') goto yy1090;
+        goto yy1072;
     }
-yy1203:
+yy1086:
     yych = *++YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1192;
-        if (yych <= '9') goto yy1211;
-        goto yy1192;
+        if (yych <= '/') goto yy1072;
+        if (yych <= '9') goto yy1091;
+        goto yy1072;
     } 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;
+        if (yych <= 'F') goto yy1091;
+        if (yych <= '`') goto yy1072;
+        if (yych <= 'f') goto yy1091;
+        goto yy1072;
     }
-    goto yy1192;
-yy1206:
-    yych = *++YYCURSOR;
-    if (yych <= '/') goto yy1194;
-    if (yych >= '8') goto yy1194;
+yy1087:
     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;
+        goto yy1092;
     }
-yy1212:
+    goto yy1072;
+yy1088:
     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:
+    if (yych <= '/') goto yy1074;
+    if (yych <= '7') goto yy1073;
+    goto yy1074;
+yy1089:
     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:
+    if (yych == '/') goto yy1073;
+    goto yy1072;
+yy1090:
     yych = *++YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1192;
-        if (yych >= ':') goto yy1192;
+        if (yych <= '/') goto yy1072;
+        if (yych <= '9') goto yy1094;
+        goto yy1072;
     } else {
-        if (yych <= 'F') goto yy1215;
-        if (yych <= '`') goto yy1192;
-        if (yych >= 'g') goto yy1192;
+        if (yych <= 'F') goto yy1094;
+        if (yych <= '`') goto yy1072;
+        if (yych <= 'f') goto yy1094;
+        goto yy1072;
     }
-yy1215:
+yy1091:
     yych = *++YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1192;
-        if (yych >= ':') goto yy1192;
+        if (yych <= '/') goto yy1072;
+        if (yych <= '9') goto yy1095;
+        goto yy1072;
     } else {
-        if (yych <= 'F') goto yy1216;
-        if (yych <= '`') goto yy1192;
-        if (yych >= 'g') goto yy1192;
+        if (yych <= 'F') goto yy1095;
+        if (yych <= '`') goto yy1072;
+        if (yych <= 'f') goto yy1095;
+        goto yy1072;
     }
-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;
+yy1092:
+    ++YYCURSOR;
+    if (YYLIMIT <= YYCURSOR) YYFILL(1);
+    yych = *YYCURSOR;
+    if (yybm[0+yych] & 128) {
+        goto yy1092;
     }
-yy1217:
+    goto yy1074;
+yy1094:
     yych = *++YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1192;
-        if (yych <= '9') goto yy1193;
-        goto yy1192;
+        if (yych <= '/') goto yy1072;
+        if (yych <= '9') goto yy1096;
+        goto yy1072;
     } else {
-        if (yych <= 'F') goto yy1193;
-        if (yych <= '`') goto yy1192;
-        if (yych <= 'f') goto yy1193;
-        goto yy1192;
+        if (yych <= 'F') goto yy1096;
+        if (yych <= '`') goto yy1072;
+        if (yych <= 'f') goto yy1096;
+        goto yy1072;
     }
-yy1218:
+yy1095:
     yych = *++YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1192;
-        if (yych >= ':') goto yy1192;
+        if (yych <= '/') goto yy1072;
+        if (yych <= '9') goto yy1097;
+        goto yy1072;
     } else {
-        if (yych <= 'F') goto yy1219;
-        if (yych <= '`') goto yy1192;
-        if (yych >= 'g') goto yy1192;
+        if (yych <= 'F') goto yy1097;
+        if (yych <= '`') goto yy1072;
+        if (yych <= 'f') goto yy1097;
+        goto yy1072;
     }
-yy1219:
+yy1096:
     yych = *++YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1192;
-        if (yych >= ':') goto yy1192;
+        if (yych <= '/') goto yy1072;
+        if (yych <= '9') goto yy1086;
+        goto yy1072;
     } else {
-        if (yych <= 'F') goto yy1220;
-        if (yych <= '`') goto yy1192;
-        if (yych >= 'g') goto yy1192;
+        if (yych <= 'F') goto yy1086;
+        if (yych <= '`') goto yy1072;
+        if (yych <= 'f') goto yy1086;
+        goto yy1072;
     }
-yy1220:
+yy1097:
     yych = *++YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1192;
-        if (yych <= '9') goto yy1193;
-        goto yy1192;
+        if (yych <= '/') goto yy1072;
+        if (yych <= '9') goto yy1073;
+        goto yy1072;
     } else {
-        if (yych <= 'F') goto yy1193;
-        if (yych <= '`') goto yy1192;
-        if (yych <= 'f') goto yy1193;
-        goto yy1192;
+        if (yych <= 'F') goto yy1073;
+        if (yych <= '`') goto yy1072;
+        if (yych <= 'f') goto yy1073;
+        goto yy1072;
     }
-yy1221:
-    ++YYCURSOR;
-    if ((yych = *YYCURSOR) == '/') goto yy1196;
-    goto yy1192;
 }
 #line 519 "strict_cpp.re"