]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/boost/wave/cpplexer/re2clex/strict_cpp_re.inc
import quincy beta 17.1.0
[ceph.git] / ceph / src / boost / boost / wave / cpplexer / re2clex / strict_cpp_re.inc
index 2d8f550b2afbea7eebf6da2c47b08432da69fd44..797baf775d26e338b0d71c07667f09b19da9885d 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 1.0.2 on Mon Nov 27 19:18:43 2017 */
+/* Generated by re2c 1.0.2 on Sat Oct 24 21:16:00 2020 */
 #line 1 "strict_cpp.re"
 /*=============================================================================
     Boost.Wave: A Standard compliant C++ preprocessor library
     }
 yy2:
     ++YYCURSOR;
-#line 335 "strict_cpp.re"
+#line 353 "strict_cpp.re"
     {
         if (s->eof && cursor != s->eof)
         {
@@ -240,7 +240,7 @@ yy2:
 #line 241 "strict_cpp_re.inc"
 yy4:
     ++YYCURSOR;
-#line 348 "strict_cpp.re"
+#line 366 "strict_cpp.re"
     {
         // flag the error
         BOOST_WAVE_UPDATE_CURSOR();     // adjust the input cursor
@@ -255,13 +255,13 @@ yy6:
     if (yybm[256+yych] & 64) {
         goto yy6;
     }
-#line 325 "strict_cpp.re"
+#line 343 "strict_cpp.re"
     { BOOST_WAVE_RET(T_SPACE); }
 #line 261 "strict_cpp_re.inc"
 yy9:
     ++YYCURSOR;
 yy10:
-#line 328 "strict_cpp.re"
+#line 346 "strict_cpp.re"
     {
         s->line++;
         cursor.column = 1;
@@ -275,7 +275,7 @@ yy11:
 yy12:
     yych = *++YYCURSOR;
     if (yych == '=') goto yy96;
-#line 201 "strict_cpp.re"
+#line 209 "strict_cpp.re"
     { BOOST_WAVE_RET(T_NOT); }
 #line 281 "strict_cpp_re.inc"
 yy14:
@@ -288,7 +288,7 @@ yy14:
         if (yych >= ' ') goto yy99;
     }
 yy15:
-#line 345 "strict_cpp.re"
+#line 363 "strict_cpp.re"
     { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
 #line 294 "strict_cpp_re.inc"
 yy16:
@@ -329,7 +329,7 @@ yy16:
         }
     }
 yy17:
-#line 150 "strict_cpp.re"
+#line 158 "strict_cpp.re"
     { BOOST_WAVE_RET(T_POUND); }
 #line 335 "strict_cpp_re.inc"
 yy18:
@@ -343,14 +343,14 @@ yy19:
         if (yych <= '=') goto yy121;
         if (yych <= '>') goto yy123;
     }
-#line 189 "strict_cpp.re"
+#line 197 "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"
+#line 201 "strict_cpp.re"
     { BOOST_WAVE_RET(T_AND); }
 #line 356 "strict_cpp_re.inc"
 yy23:
@@ -367,30 +367,30 @@ yy23:
     }
 yy24:
     ++YYCURSOR;
-#line 158 "strict_cpp.re"
+#line 166 "strict_cpp.re"
     { BOOST_WAVE_RET(T_LEFTPAREN); }
 #line 373 "strict_cpp_re.inc"
 yy26:
     ++YYCURSOR;
-#line 159 "strict_cpp.re"
+#line 167 "strict_cpp.re"
     { BOOST_WAVE_RET(T_RIGHTPAREN); }
 #line 378 "strict_cpp_re.inc"
 yy28:
     yych = *++YYCURSOR;
     if (yych == '=') goto yy133;
-#line 187 "strict_cpp.re"
+#line 195 "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"
+#line 193 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PLUS); }
 #line 391 "strict_cpp_re.inc"
 yy32:
     ++YYCURSOR;
-#line 237 "strict_cpp.re"
+#line 255 "strict_cpp.re"
     { BOOST_WAVE_RET(T_COMMA); }
 #line 396 "strict_cpp_re.inc"
 yy34:
@@ -401,7 +401,7 @@ yy34:
         if (yych <= '=') goto yy141;
         if (yych <= '>') goto yy143;
     }
-#line 186 "strict_cpp.re"
+#line 194 "strict_cpp.re"
     { BOOST_WAVE_RET(T_MINUS); }
 #line 407 "strict_cpp_re.inc"
 yy36:
@@ -415,7 +415,7 @@ yy36:
         if (yych <= '9') goto yy40;
     }
 yy37:
-#line 174 "strict_cpp.re"
+#line 182 "strict_cpp.re"
     { BOOST_WAVE_RET(T_DOT); }
 #line 421 "strict_cpp_re.inc"
 yy38:
@@ -426,7 +426,7 @@ yy38:
         if (yych <= '/') goto yy150;
         if (yych == '=') goto yy152;
     }
-#line 188 "strict_cpp.re"
+#line 196 "strict_cpp.re"
     { BOOST_WAVE_RET(T_DIVIDE); }
 #line 432 "strict_cpp_re.inc"
 yy40:
@@ -438,12 +438,12 @@ yy42:
     yych = *++YYCURSOR;
     if (yych == ':') goto yy154;
     if (yych == '>') goto yy156;
-#line 161 "strict_cpp.re"
+#line 169 "strict_cpp.re"
     { BOOST_WAVE_RET(T_COLON); }
 #line 444 "strict_cpp_re.inc"
 yy44:
     ++YYCURSOR;
-#line 160 "strict_cpp.re"
+#line 168 "strict_cpp.re"
     { BOOST_WAVE_RET(T_SEMICOLON); }
 #line 449 "strict_cpp_re.inc"
 yy46:
@@ -457,13 +457,13 @@ yy46:
         if (yych <= '=') goto yy164;
     }
 yy47:
-#line 204 "strict_cpp.re"
+#line 212 "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"
+#line 211 "strict_cpp.re"
     { BOOST_WAVE_RET(T_ASSIGN); }
 #line 469 "strict_cpp_re.inc"
 yy50:
@@ -472,7 +472,7 @@ yy50:
     if (yych <= '=') goto yy168;
     if (yych <= '>') goto yy170;
 yy51:
-#line 205 "strict_cpp.re"
+#line 213 "strict_cpp.re"
     { BOOST_WAVE_RET(T_GREATER); }
 #line 478 "strict_cpp_re.inc"
 yy52:
@@ -480,7 +480,7 @@ yy52:
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych == '?') goto yy172;
 yy53:
-#line 163 "strict_cpp.re"
+#line 171 "strict_cpp.re"
     { BOOST_WAVE_RET(T_QUESTION_MARK); }
 #line 486 "strict_cpp_re.inc"
 yy54:
@@ -495,7 +495,7 @@ yy55:
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
 yy56:
-#line 296 "strict_cpp.re"
+#line 314 "strict_cpp.re"
     { BOOST_WAVE_RET(T_IDENTIFIER); }
 #line 501 "strict_cpp_re.inc"
 yy57:
@@ -526,7 +526,7 @@ yy59:
     }
 yy60:
     ++YYCURSOR;
-#line 144 "strict_cpp.re"
+#line 152 "strict_cpp.re"
     { BOOST_WAVE_RET(T_LEFTBRACKET); }
 #line 532 "strict_cpp_re.inc"
 yy62:
@@ -537,13 +537,13 @@ yy62:
     goto yy15;
 yy63:
     ++YYCURSOR;
-#line 147 "strict_cpp.re"
+#line 155 "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"
+#line 198 "strict_cpp.re"
     { BOOST_WAVE_RET(T_XOR); }
 #line 549 "strict_cpp_re.inc"
 yy67:
@@ -740,7 +740,7 @@ yy87:
     goto yy55;
 yy88:
     ++YYCURSOR;
-#line 138 "strict_cpp.re"
+#line 146 "strict_cpp.re"
     { BOOST_WAVE_RET(T_LEFTBRACE); }
 #line 746 "strict_cpp_re.inc"
 yy90:
@@ -753,22 +753,22 @@ yy90:
         if (yych == '|') goto yy253;
     }
 yy91:
-#line 195 "strict_cpp.re"
+#line 203 "strict_cpp.re"
     { BOOST_WAVE_RET(T_OR); }
 #line 759 "strict_cpp_re.inc"
 yy92:
     ++YYCURSOR;
-#line 141 "strict_cpp.re"
+#line 149 "strict_cpp.re"
     { BOOST_WAVE_RET(T_RIGHTBRACE); }
 #line 764 "strict_cpp_re.inc"
 yy94:
     ++YYCURSOR;
-#line 198 "strict_cpp.re"
+#line 206 "strict_cpp.re"
     { BOOST_WAVE_RET(T_COMPL); }
 #line 769 "strict_cpp_re.inc"
 yy96:
     ++YYCURSOR;
-#line 224 "strict_cpp.re"
+#line 232 "strict_cpp.re"
     { BOOST_WAVE_RET(T_NOTEQUAL); }
 #line 774 "strict_cpp_re.inc"
 yy98:
@@ -785,9 +785,9 @@ yy99:
     goto yy104;
 yy100:
     YYCURSOR = YYMARKER;
-    if (yyaccept <= 56) {
-        if (yyaccept <= 28) {
-            if (yyaccept <= 14) {
+    if (yyaccept <= 60) {
+        if (yyaccept <= 30) {
+            if (yyaccept <= 15) {
                 if (yyaccept <= 7) {
                     if (yyaccept <= 3) {
                         if (yyaccept <= 1) {
@@ -830,408 +830,440 @@ yy100:
                             if (yyaccept == 10) {
                                 goto yy268;
                             } else {
-                                goto yy292;
+                                goto yy294;
                             }
                         }
                     } else {
                         if (yyaccept <= 13) {
                             if (yyaccept == 12) {
-                                goto yy302;
+                                goto yy304;
                             } else {
-                                goto yy306;
+                                goto yy308;
                             }
                         } else {
-                            goto yy328;
+                            if (yyaccept == 14) {
+                                goto yy330;
+                            } else {
+                                goto yy332;
+                            }
                         }
                     }
                 }
             } else {
-                if (yyaccept <= 21) {
-                    if (yyaccept <= 18) {
-                        if (yyaccept <= 16) {
-                            if (yyaccept == 15) {
-                                goto yy330;
+                if (yyaccept <= 23) {
+                    if (yyaccept <= 19) {
+                        if (yyaccept <= 17) {
+                            if (yyaccept == 16) {
+                                goto yy356;
                             } else {
-                                goto yy353;
+                                goto yy362;
                             }
                         } else {
-                            if (yyaccept == 17) {
-                                goto yy359;
+                            if (yyaccept == 18) {
+                                goto yy367;
                             } else {
-                                goto yy364;
+                                goto yy370;
                             }
                         }
                     } else {
-                        if (yyaccept <= 20) {
-                            if (yyaccept == 19) {
-                                goto yy367;
+                        if (yyaccept <= 21) {
+                            if (yyaccept == 20) {
+                                goto yy392;
                             } else {
-                                goto yy388;
+                                goto yy403;
                             }
                         } else {
-                            goto yy399;
+                            if (yyaccept == 22) {
+                                goto yy450;
+                            } else {
+                                goto yy460;
+                            }
                         }
                     }
                 } else {
-                    if (yyaccept <= 25) {
-                        if (yyaccept <= 23) {
-                            if (yyaccept == 22) {
-                                goto yy446;
+                    if (yyaccept <= 27) {
+                        if (yyaccept <= 25) {
+                            if (yyaccept == 24) {
+                                goto yy464;
                             } else {
-                                goto yy456;
+                                goto yy467;
                             }
                         } else {
-                            if (yyaccept == 24) {
-                                goto yy460;
+                            if (yyaccept == 26) {
+                                goto yy470;
                             } else {
-                                goto yy463;
+                                goto yy485;
                             }
                         }
                     } else {
-                        if (yyaccept <= 27) {
-                            if (yyaccept == 26) {
-                                goto yy466;
+                        if (yyaccept <= 29) {
+                            if (yyaccept == 28) {
+                                goto yy487;
                             } else {
-                                goto yy477;
+                                goto yy495;
                             }
                         } else {
-                            goto yy479;
+                            goto yy499;
                         }
                     }
                 }
             }
         } else {
-            if (yyaccept <= 42) {
-                if (yyaccept <= 35) {
-                    if (yyaccept <= 32) {
-                        if (yyaccept <= 30) {
-                            if (yyaccept == 29) {
-                                goto yy487;
+            if (yyaccept <= 45) {
+                if (yyaccept <= 38) {
+                    if (yyaccept <= 34) {
+                        if (yyaccept <= 32) {
+                            if (yyaccept == 31) {
+                                goto yy522;
                             } else {
-                                goto yy491;
+                                goto yy526;
                             }
                         } else {
-                            if (yyaccept == 31) {
-                                goto yy513;
+                            if (yyaccept == 33) {
+                                goto yy533;
                             } else {
-                                goto yy517;
+                                goto yy102;
                             }
                         }
                     } else {
-                        if (yyaccept <= 34) {
-                            if (yyaccept == 33) {
-                                goto yy524;
+                        if (yyaccept <= 36) {
+                            if (yyaccept == 35) {
+                                goto yy277;
                             } else {
-                                goto yy102;
+                                goto yy572;
                             }
                         } else {
-                            goto yy277;
+                            if (yyaccept == 37) {
+                                goto yy583;
+                            } else {
+                                goto yy585;
+                            }
                         }
                     }
                 } else {
-                    if (yyaccept <= 39) {
-                        if (yyaccept <= 37) {
-                            if (yyaccept == 36) {
-                                goto yy563;
+                    if (yyaccept <= 42) {
+                        if (yyaccept <= 40) {
+                            if (yyaccept == 39) {
+                                goto yy587;
                             } else {
-                                goto yy574;
+                                goto yy592;
                             }
                         } else {
-                            if (yyaccept == 38) {
-                                goto yy576;
+                            if (yyaccept == 41) {
+                                goto yy597;
                             } else {
-                                goto yy578;
+                                goto yy600;
                             }
                         }
                     } else {
-                        if (yyaccept <= 41) {
-                            if (yyaccept == 40) {
-                                goto yy582;
+                        if (yyaccept <= 44) {
+                            if (yyaccept == 43) {
+                                goto yy611;
                             } else {
-                                goto yy584;
+                                goto yy613;
                             }
                         } else {
-                            goto yy586;
+                            goto yy624;
                         }
                     }
                 }
             } else {
-                if (yyaccept <= 49) {
-                    if (yyaccept <= 46) {
-                        if (yyaccept <= 44) {
-                            if (yyaccept == 43) {
-                                goto yy597;
+                if (yyaccept <= 53) {
+                    if (yyaccept <= 49) {
+                        if (yyaccept <= 47) {
+                            if (yyaccept == 46) {
+                                goto yy633;
                             } else {
-                                goto yy599;
+                                goto yy642;
                             }
                         } else {
-                            if (yyaccept == 45) {
-                                goto yy610;
+                            if (yyaccept == 48) {
+                                goto yy647;
                             } else {
-                                goto yy618;
+                                goto yy650;
                             }
                         }
                     } else {
-                        if (yyaccept <= 48) {
-                            if (yyaccept == 47) {
-                                goto yy627;
+                        if (yyaccept <= 51) {
+                            if (yyaccept == 50) {
+                                goto yy655;
                             } else {
-                                goto yy632;
+                                goto yy684;
                             }
                         } else {
-                            goto yy635;
+                            if (yyaccept == 52) {
+                                goto yy687;
+                            } else {
+                                goto yy689;
+                            }
                         }
                     }
                 } else {
-                    if (yyaccept <= 53) {
-                        if (yyaccept <= 51) {
-                            if (yyaccept == 50) {
-                                goto yy640;
+                    if (yyaccept <= 57) {
+                        if (yyaccept <= 55) {
+                            if (yyaccept == 54) {
+                                goto yy697;
                             } else {
-                                goto yy669;
+                                goto yy699;
                             }
                         } else {
-                            if (yyaccept == 52) {
-                                goto yy672;
+                            if (yyaccept == 56) {
+                                goto yy714;
                             } else {
-                                goto yy674;
+                                goto yy716;
                             }
                         }
                     } else {
-                        if (yyaccept <= 55) {
-                            if (yyaccept == 54) {
-                                goto yy682;
+                        if (yyaccept <= 59) {
+                            if (yyaccept == 58) {
+                                goto yy720;
                             } else {
-                                goto yy684;
+                                goto yy722;
                             }
                         } else {
-                            goto yy693;
+                            goto yy724;
                         }
                     }
                 }
             }
         }
     } else {
-        if (yyaccept <= 85) {
-            if (yyaccept <= 71) {
-                if (yyaccept <= 64) {
-                    if (yyaccept <= 60) {
-                        if (yyaccept <= 58) {
-                            if (yyaccept == 57) {
-                                goto yy695;
+        if (yyaccept <= 91) {
+            if (yyaccept <= 76) {
+                if (yyaccept <= 68) {
+                    if (yyaccept <= 64) {
+                        if (yyaccept <= 62) {
+                            if (yyaccept == 61) {
+                                goto yy726;
                             } else {
-                                goto yy699;
+                                goto yy728;
                             }
                         } else {
-                            if (yyaccept == 59) {
-                                goto yy701;
+                            if (yyaccept == 63) {
+                                goto yy733;
                             } else {
-                                goto yy703;
+                                goto yy739;
                             }
                         }
                     } else {
-                        if (yyaccept <= 62) {
-                            if (yyaccept == 61) {
-                                goto yy705;
+                        if (yyaccept <= 66) {
+                            if (yyaccept == 65) {
+                                goto yy744;
                             } else {
-                                goto yy707;
+                                goto yy746;
                             }
                         } else {
-                            if (yyaccept == 63) {
-                                goto yy712;
+                            if (yyaccept == 67) {
+                                goto yy748;
                             } else {
-                                goto yy718;
+                                goto yy750;
                             }
                         }
                     }
                 } else {
-                    if (yyaccept <= 68) {
-                        if (yyaccept <= 66) {
-                            if (yyaccept == 65) {
-                                goto yy722;
+                    if (yyaccept <= 72) {
+                        if (yyaccept <= 70) {
+                            if (yyaccept == 69) {
+                                goto yy752;
                             } else {
-                                goto yy724;
+                                goto yy754;
                             }
                         } else {
-                            if (yyaccept == 67) {
-                                goto yy726;
+                            if (yyaccept == 71) {
+                                goto yy759;
                             } else {
-                                goto yy728;
+                                goto yy766;
                             }
                         }
                     } else {
-                        if (yyaccept <= 70) {
-                            if (yyaccept == 69) {
-                                goto yy730;
+                        if (yyaccept <= 74) {
+                            if (yyaccept == 73) {
+                                goto yy781;
                             } else {
-                                goto yy732;
+                                goto yy783;
                             }
                         } else {
-                            goto yy737;
+                            if (yyaccept == 75) {
+                                goto yy785;
+                            } else {
+                                goto yy787;
+                            }
                         }
                     }
                 }
             } else {
-                if (yyaccept <= 78) {
-                    if (yyaccept <= 75) {
-                        if (yyaccept <= 73) {
-                            if (yyaccept == 72) {
-                                goto yy744;
+                if (yyaccept <= 84) {
+                    if (yyaccept <= 80) {
+                        if (yyaccept <= 78) {
+                            if (yyaccept == 77) {
+                                goto yy791;
                             } else {
-                                goto yy759;
+                                goto yy794;
                             }
                         } else {
-                            if (yyaccept == 74) {
-                                goto yy761;
+                            if (yyaccept == 79) {
+                                goto yy796;
                             } else {
-                                goto yy763;
+                                goto yy800;
                             }
                         }
                     } else {
-                        if (yyaccept <= 77) {
-                            if (yyaccept == 76) {
-                                goto yy765;
+                        if (yyaccept <= 82) {
+                            if (yyaccept == 81) {
+                                goto yy805;
                             } else {
-                                goto yy769;
+                                goto yy813;
                             }
                         } else {
-                            goto yy772;
+                            if (yyaccept == 83) {
+                                goto yy817;
+                            } else {
+                                goto yy821;
+                            }
                         }
                     }
                 } else {
-                    if (yyaccept <= 82) {
-                        if (yyaccept <= 80) {
-                            if (yyaccept == 79) {
-                                goto yy774;
+                    if (yyaccept <= 88) {
+                        if (yyaccept <= 86) {
+                            if (yyaccept == 85) {
+                                goto yy824;
                             } else {
-                                goto yy782;
+                                goto yy833;
                             }
                         } else {
-                            if (yyaccept == 81) {
-                                goto yy786;
+                            if (yyaccept == 87) {
+                                goto yy837;
                             } else {
-                                goto yy790;
+                                goto yy840;
                             }
                         }
                     } else {
-                        if (yyaccept <= 84) {
-                            if (yyaccept == 83) {
-                                goto yy793;
+                        if (yyaccept <= 90) {
+                            if (yyaccept == 89) {
+                                goto yy843;
                             } else {
-                                goto yy801;
+                                goto yy847;
                             }
                         } else {
-                            goto yy805;
+                            goto yy852;
                         }
                     }
                 }
             }
         } else {
-            if (yyaccept <= 99) {
-                if (yyaccept <= 92) {
-                    if (yyaccept <= 89) {
-                        if (yyaccept <= 87) {
-                            if (yyaccept == 86) {
-                                goto yy808;
+            if (yyaccept <= 106) {
+                if (yyaccept <= 99) {
+                    if (yyaccept <= 95) {
+                        if (yyaccept <= 93) {
+                            if (yyaccept == 92) {
+                                goto yy854;
                             } else {
-                                goto yy811;
+                                goto yy856;
                             }
                         } else {
-                            if (yyaccept == 88) {
-                                goto yy815;
+                            if (yyaccept == 94) {
+                                goto yy858;
                             } else {
-                                goto yy820;
+                                goto yy861;
                             }
                         }
                     } else {
-                        if (yyaccept <= 91) {
-                            if (yyaccept == 90) {
-                                goto yy822;
+                        if (yyaccept <= 97) {
+                            if (yyaccept == 96) {
+                                goto yy867;
                             } else {
-                                goto yy824;
+                                goto yy869;
                             }
                         } else {
-                            goto yy828;
+                            if (yyaccept == 98) {
+                                goto yy872;
+                            } else {
+                                goto yy875;
+                            }
                         }
                     }
                 } else {
-                    if (yyaccept <= 96) {
-                        if (yyaccept <= 94) {
-                            if (yyaccept == 93) {
-                                goto yy830;
+                    if (yyaccept <= 103) {
+                        if (yyaccept <= 101) {
+                            if (yyaccept == 100) {
+                                goto yy877;
                             } else {
-                                goto yy833;
+                                goto yy880;
                             }
                         } else {
-                            if (yyaccept == 95) {
-                                goto yy836;
+                            if (yyaccept == 102) {
+                                goto yy883;
                             } else {
-                                goto yy838;
+                                goto yy887;
                             }
                         }
                     } else {
-                        if (yyaccept <= 98) {
-                            if (yyaccept == 97) {
-                                goto yy841;
+                        if (yyaccept <= 105) {
+                            if (yyaccept == 104) {
+                                goto yy890;
                             } else {
-                                goto yy846;
+                                goto yy892;
                             }
                         } else {
-                            goto yy849;
+                            goto yy894;
                         }
                     }
                 }
             } else {
-                if (yyaccept <= 106) {
-                    if (yyaccept <= 103) {
-                        if (yyaccept <= 101) {
-                            if (yyaccept == 100) {
-                                goto yy851;
+                if (yyaccept <= 114) {
+                    if (yyaccept <= 110) {
+                        if (yyaccept <= 108) {
+                            if (yyaccept == 107) {
+                                goto yy903;
                             } else {
-                                goto yy853;
+                                goto yy905;
                             }
                         } else {
-                            if (yyaccept == 102) {
-                                goto yy862;
+                            if (yyaccept == 109) {
+                                goto yy907;
                             } else {
-                                goto yy864;
+                                goto yy909;
                             }
                         }
                     } else {
-                        if (yyaccept <= 105) {
-                            if (yyaccept == 104) {
-                                goto yy866;
+                        if (yyaccept <= 112) {
+                            if (yyaccept == 111) {
+                                goto yy912;
                             } else {
-                                goto yy869;
+                                goto yy914;
                             }
                         } else {
-                            goto yy872;
+                            if (yyaccept == 113) {
+                                goto yy916;
+                            } else {
+                                goto yy919;
+                            }
                         }
                     }
                 } else {
-                    if (yyaccept <= 110) {
-                        if (yyaccept <= 108) {
-                            if (yyaccept == 107) {
-                                goto yy874;
+                    if (yyaccept <= 118) {
+                        if (yyaccept <= 116) {
+                            if (yyaccept == 115) {
+                                goto yy921;
                             } else {
-                                goto yy889;
+                                goto yy936;
                             }
                         } else {
-                            if (yyaccept == 109) {
-                                goto yy906;
+                            if (yyaccept == 117) {
+                                goto yy953;
                             } else {
-                                goto yy910;
+                                goto yy957;
                             }
                         }
                     } else {
-                        if (yyaccept <= 112) {
-                            if (yyaccept == 111) {
-                                goto yy914;
+                        if (yyaccept <= 120) {
+                            if (yyaccept == 119) {
+                                goto yy961;
                             } else {
-                                goto yy917;
+                                goto yy964;
                             }
                         } else {
-                            goto yy921;
+                            goto yy968;
                         }
                     }
                 }
@@ -1241,9 +1273,9 @@ yy100:
 yy101:
     ++YYCURSOR;
 yy102:
-#line 255 "strict_cpp.re"
+#line 273 "strict_cpp.re"
     { BOOST_WAVE_RET(T_STRINGLIT); }
-#line 1247 "strict_cpp_re.inc"
+#line 1279 "strict_cpp_re.inc"
 yy103:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
@@ -1349,9 +1381,9 @@ yy106:
     }
 yy107:
     ++YYCURSOR;
-#line 153 "strict_cpp.re"
+#line 161 "strict_cpp.re"
     { BOOST_WAVE_RET(T_POUND_POUND); }
-#line 1355 "strict_cpp_re.inc"
+#line 1387 "strict_cpp_re.inc"
 yy109:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
@@ -1438,29 +1470,29 @@ yy119:
         }
     }
 yy120:
-#line 151 "strict_cpp.re"
+#line 159 "strict_cpp.re"
     { BOOST_WAVE_RET(T_POUND_ALT); }
-#line 1444 "strict_cpp_re.inc"
+#line 1476 "strict_cpp_re.inc"
 yy121:
     ++YYCURSOR;
-#line 210 "strict_cpp.re"
+#line 218 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PERCENTASSIGN); }
-#line 1449 "strict_cpp_re.inc"
+#line 1481 "strict_cpp_re.inc"
 yy123:
     ++YYCURSOR;
-#line 143 "strict_cpp.re"
+#line 151 "strict_cpp.re"
     { BOOST_WAVE_RET(T_RIGHTBRACE_ALT); }
-#line 1454 "strict_cpp_re.inc"
+#line 1486 "strict_cpp_re.inc"
 yy125:
     ++YYCURSOR;
-#line 228 "strict_cpp.re"
+#line 246 "strict_cpp.re"
     { BOOST_WAVE_RET(T_ANDAND); }
-#line 1459 "strict_cpp_re.inc"
+#line 1491 "strict_cpp_re.inc"
 yy127:
     ++YYCURSOR;
-#line 214 "strict_cpp.re"
+#line 222 "strict_cpp.re"
     { BOOST_WAVE_RET(T_ANDASSIGN); }
-#line 1464 "strict_cpp_re.inc"
+#line 1496 "strict_cpp_re.inc"
 yy129:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
@@ -1531,38 +1563,38 @@ yy132:
     }
 yy133:
     ++YYCURSOR;
-#line 208 "strict_cpp.re"
+#line 216 "strict_cpp.re"
     { BOOST_WAVE_RET(T_STARASSIGN); }
-#line 1537 "strict_cpp_re.inc"
+#line 1569 "strict_cpp_re.inc"
 yy135:
     ++YYCURSOR;
-#line 235 "strict_cpp.re"
+#line 253 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PLUSPLUS); }
-#line 1542 "strict_cpp_re.inc"
+#line 1574 "strict_cpp_re.inc"
 yy137:
     ++YYCURSOR;
-#line 206 "strict_cpp.re"
+#line 214 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PLUSASSIGN); }
-#line 1547 "strict_cpp_re.inc"
+#line 1579 "strict_cpp_re.inc"
 yy139:
     ++YYCURSOR;
-#line 236 "strict_cpp.re"
+#line 254 "strict_cpp.re"
     { BOOST_WAVE_RET(T_MINUSMINUS); }
-#line 1552 "strict_cpp_re.inc"
+#line 1584 "strict_cpp_re.inc"
 yy141:
     ++YYCURSOR;
-#line 207 "strict_cpp.re"
+#line 215 "strict_cpp.re"
     { BOOST_WAVE_RET(T_MINUSASSIGN); }
-#line 1557 "strict_cpp_re.inc"
+#line 1589 "strict_cpp_re.inc"
 yy143:
     yych = *++YYCURSOR;
     if (yych == '*') goto yy283;
-#line 248 "strict_cpp.re"
+#line 266 "strict_cpp.re"
     { BOOST_WAVE_RET(T_ARROW); }
-#line 1563 "strict_cpp_re.inc"
+#line 1595 "strict_cpp_re.inc"
 yy145:
     ++YYCURSOR;
-#line 176 "strict_cpp.re"
+#line 184 "strict_cpp.re"
     {
             if (s->act_in_c99_mode) {
                 --YYCURSOR;
@@ -1572,7 +1604,7 @@ yy145:
                 BOOST_WAVE_RET(T_DOTSTAR);
             }
         }
-#line 1576 "strict_cpp_re.inc"
+#line 1608 "strict_cpp_re.inc"
 yy147:
     yych = *++YYCURSOR;
     if (yych == '.') goto yy285;
@@ -1581,20 +1613,20 @@ yy148:
     ++YYCURSOR;
 #line 43 "strict_cpp.re"
     { goto ccomment; }
-#line 1585 "strict_cpp_re.inc"
+#line 1617 "strict_cpp_re.inc"
 yy150:
     ++YYCURSOR;
 #line 44 "strict_cpp.re"
     { goto cppcomment; }
-#line 1590 "strict_cpp_re.inc"
+#line 1622 "strict_cpp_re.inc"
 yy152:
     ++YYCURSOR;
-#line 209 "strict_cpp.re"
+#line 217 "strict_cpp.re"
     { BOOST_WAVE_RET(T_DIVIDEASSIGN); }
-#line 1595 "strict_cpp_re.inc"
+#line 1627 "strict_cpp_re.inc"
 yy154:
     ++YYCURSOR;
-#line 165 "strict_cpp.re"
+#line 173 "strict_cpp.re"
     {
             if (s->act_in_c99_mode) {
                 --YYCURSOR;
@@ -1604,68 +1636,69 @@ yy154:
                 BOOST_WAVE_RET(T_COLON_COLON);
             }
         }
-#line 1608 "strict_cpp_re.inc"
+#line 1640 "strict_cpp_re.inc"
 yy156:
     ++YYCURSOR;
-#line 149 "strict_cpp.re"
+#line 157 "strict_cpp.re"
     { BOOST_WAVE_RET(T_RIGHTBRACKET_ALT); }
-#line 1613 "strict_cpp_re.inc"
+#line 1645 "strict_cpp_re.inc"
 yy158:
     ++YYCURSOR;
-#line 140 "strict_cpp.re"
+#line 148 "strict_cpp.re"
     { BOOST_WAVE_RET(T_LEFTBRACE_ALT); }
-#line 1618 "strict_cpp_re.inc"
+#line 1650 "strict_cpp_re.inc"
 yy160:
     ++YYCURSOR;
-#line 146 "strict_cpp.re"
+#line 154 "strict_cpp.re"
     { BOOST_WAVE_RET(T_LEFTBRACKET_ALT); }
-#line 1623 "strict_cpp_re.inc"
+#line 1655 "strict_cpp_re.inc"
 yy162:
     yych = *++YYCURSOR;
     if (yych == '=') goto yy287;
-#line 219 "strict_cpp.re"
+#line 227 "strict_cpp.re"
     { BOOST_WAVE_RET(T_SHIFTLEFT); }
-#line 1629 "strict_cpp_re.inc"
+#line 1661 "strict_cpp_re.inc"
 yy164:
-    ++YYCURSOR;
-#line 226 "strict_cpp.re"
+    yych = *++YYCURSOR;
+    if (yych == '>') goto yy289;
+#line 244 "strict_cpp.re"
     { BOOST_WAVE_RET(T_LESSEQUAL); }
-#line 1634 "strict_cpp_re.inc"
+#line 1667 "strict_cpp_re.inc"
 yy166:
     ++YYCURSOR;
-#line 223 "strict_cpp.re"
+#line 231 "strict_cpp.re"
     { BOOST_WAVE_RET(T_EQUAL); }
-#line 1639 "strict_cpp_re.inc"
+#line 1672 "strict_cpp_re.inc"
 yy168:
     ++YYCURSOR;
-#line 227 "strict_cpp.re"
+#line 245 "strict_cpp.re"
     { BOOST_WAVE_RET(T_GREATEREQUAL); }
-#line 1644 "strict_cpp_re.inc"
+#line 1677 "strict_cpp_re.inc"
 yy170:
     yych = *++YYCURSOR;
-    if (yych == '=') goto yy289;
-#line 220 "strict_cpp.re"
+    if (yych == '=') goto yy291;
+#line 228 "strict_cpp.re"
     { BOOST_WAVE_RET(T_SHIFTRIGHT); }
-#line 1650 "strict_cpp_re.inc"
+#line 1683 "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;
+    case '!':    goto yy293;
+    case '\'':    goto yy295;
+    case '(':    goto yy297;
+    case ')':    goto yy299;
+    case '-':    goto yy301;
+    case '/':    goto yy303;
+    case '<':    goto yy305;
+    case '=':    goto yy307;
+    case '>':    goto yy309;
     default:    goto yy100;
     }
 yy173:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
-    if (yych == '?') goto yy309;
+    if (yych == '?') goto yy311;
     goto yy100;
 yy174:
     ++YYCURSOR;
@@ -1680,7 +1713,7 @@ yy175:
     goto yy130;
 yy176:
     ++YYCURSOR;
-#line 258 "strict_cpp.re"
+#line 276 "strict_cpp.re"
     {
             if (s->act_in_cpp0x_mode)
             {
@@ -1690,31 +1723,31 @@ yy176:
             --YYCURSOR;
             BOOST_WAVE_RET(T_IDENTIFIER);
         }
-#line 1694 "strict_cpp_re.inc"
+#line 1727 "strict_cpp_re.inc"
 yy178:
     ++YYCURSOR;
-#line 277 "strict_cpp.re"
+#line 295 "strict_cpp.re"
     {
             if (s->act_in_cpp0x_mode)
                 goto extstringlit;
             --YYCURSOR;
             BOOST_WAVE_RET(T_IDENTIFIER);
         }
-#line 1704 "strict_cpp_re.inc"
+#line 1737 "strict_cpp_re.inc"
 yy180:
     ++YYCURSOR;
-#line 269 "strict_cpp.re"
+#line 287 "strict_cpp.re"
     {
             if (s->act_in_cpp0x_mode)
                 goto extcharlit;
             --YYCURSOR;
             BOOST_WAVE_RET(T_IDENTIFIER);
         }
-#line 1714 "strict_cpp_re.inc"
+#line 1747 "strict_cpp_re.inc"
 yy182:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == '"') goto yy310;
+    if (yych == '"') goto yy312;
     goto yy55;
 yy183:
     ++YYCURSOR;
@@ -1722,12 +1755,12 @@ yy183:
     yych = *YYCURSOR;
     if (yych <= '@') {
         if (yych <= '/') goto yy100;
-        if (yych <= '9') goto yy312;
+        if (yych <= '9') goto yy314;
         goto yy100;
     } else {
-        if (yych <= 'F') goto yy312;
+        if (yych <= 'F') goto yy314;
         if (yych <= '`') goto yy100;
-        if (yych <= 'f') goto yy312;
+        if (yych <= 'f') goto yy314;
         goto yy100;
     }
 yy184:
@@ -1736,19 +1769,19 @@ yy184:
     yych = *YYCURSOR;
     if (yych <= '@') {
         if (yych <= '/') goto yy100;
-        if (yych <= '9') goto yy313;
+        if (yych <= '9') goto yy315;
         goto yy100;
     } else {
-        if (yych <= 'F') goto yy313;
+        if (yych <= 'F') goto yy315;
         if (yych <= '`') goto yy100;
-        if (yych <= 'f') goto yy313;
+        if (yych <= 'f') goto yy315;
         goto yy100;
     }
 yy185:
     ++YYCURSOR;
-#line 211 "strict_cpp.re"
+#line 219 "strict_cpp.re"
     { BOOST_WAVE_RET(T_XORASSIGN); }
-#line 1752 "strict_cpp_re.inc"
+#line 1785 "strict_cpp_re.inc"
 yy187:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
@@ -1757,117 +1790,121 @@ yy187:
     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 'e':    goto yy316;
+    case 'f':    goto yy317;
+    case 'i':    goto yy318;
+    case 'l':    goto yy319;
     case 's':    goto yy194;
-    case 't':    goto yy318;
+    case 't':    goto yy320;
     default:    goto yy55;
     }
 yy188:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 's') goto yy319;
+    if (yych == 's') goto yy321;
     goto yy55;
 yy189:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'a') goto yy320;
+    if (yych == 'a') goto yy322;
     goto yy55;
 yy190:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'd') goto yy321;
+    if (yych == 'd') goto yy323;
     goto yy55;
 yy191:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy322;
+    if (yych == 'e') goto yy324;
     goto yy55;
 yy192:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'a') goto yy323;
+    if (yych == 'a') goto yy325;
     goto yy55;
 yy193:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'n') goto yy324;
+    if (yych == 'n') goto yy326;
     goto yy55;
 yy194:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy325;
+    if (yych == 't') goto yy327;
     goto yy55;
 yy195:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'i') goto yy326;
+    if (yych == 'i') goto yy328;
     goto yy55;
 yy196:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'd') goto yy327;
+    if (yych == 'd') goto yy329;
     goto yy55;
 yy197:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'm') goto yy329;
+    if (yych == 'm') goto yy331;
     goto yy55;
 yy198:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy331;
+    if (yych == 't') goto yy333;
     goto yy55;
 yy199:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy332;
+    if (yych == 't') goto yy334;
     goto yy55;
 yy200:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'o') goto yy333;
+    if (yych == 'o') goto yy335;
     goto yy55;
 yy201:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy334;
+    if (yych == 'e') goto yy336;
     goto yy55;
 yy202:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'r') goto yy55;
-    if (yych <= 's') goto yy335;
-    if (yych <= 't') goto yy336;
+    if (yych <= 's') goto yy337;
+    if (yych <= 't') goto yy338;
     goto yy55;
 yy203:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'a') goto yy337;
+    if (yych == 'a') goto yy339;
     goto yy55;
 yy204:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'a') goto yy338;
+    if (yych == 'a') goto yy340;
     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;
+    if (yych <= 'l') {
+        if (yych == '_') goto yy341;
+        goto yy55;
+    } else {
+        if (yych <= 'm') goto yy342;
+        if (yych <= 'n') goto yy343;
+        goto yy55;
+    }
 yy206:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'e') {
-        if (yych == 'c') goto yy341;
+        if (yych == 'c') goto yy344;
         goto yy55;
     } else {
-        if (yych <= 'f') goto yy342;
-        if (yych == 'l') goto yy343;
+        if (yych <= 'f') goto yy345;
+        if (yych == 'l') goto yy346;
         goto yy55;
     }
 yy207:
@@ -1887,59 +1924,59 @@ yy207:
             if (yych <= '\\') goto yy174;
             if (yych == '_') goto yy54;
         } else {
-            if (yych == 'u') goto yy344;
+            if (yych == 'u') goto yy347;
             if (yych <= 'z') goto yy54;
         }
     }
 yy208:
-#line 66 "strict_cpp.re"
+#line 73 "strict_cpp.re"
     { BOOST_WAVE_RET(T_DO); }
-#line 1898 "strict_cpp_re.inc"
+#line 1935 "strict_cpp_re.inc"
 yy209:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'n') goto yy345;
+    if (yych == 'n') goto yy348;
     goto yy55;
 yy210:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 's') goto yy346;
+    if (yych == 's') goto yy349;
     goto yy55;
 yy211:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'u') goto yy347;
+    if (yych == 'u') goto yy350;
     goto yy55;
 yy212:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'p') goto yy348;
-    if (yych == 't') goto yy349;
+    if (yych == 'p') goto yy351;
+    if (yych == 't') goto yy352;
     goto yy55;
 yy213:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'l') goto yy350;
+    if (yych == 'l') goto yy353;
     goto yy55;
 yy214:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'o') goto yy351;
+    if (yych == 'o') goto yy354;
     goto yy55;
 yy215:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'r') goto yy352;
+    if (yych == 'r') goto yy355;
     goto yy55;
 yy216:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'i') goto yy354;
+    if (yych == 'i') goto yy357;
     goto yy55;
 yy217:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy355;
+    if (yych == 't') goto yy358;
     goto yy55;
 yy218:
     yyaccept = 8;
@@ -1950,55 +1987,55 @@ yy218:
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
 yy219:
-#line 79 "strict_cpp.re"
+#line 86 "strict_cpp.re"
     { BOOST_WAVE_RET(T_IF); }
-#line 1956 "strict_cpp_re.inc"
+#line 1993 "strict_cpp_re.inc"
 yy220:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'p') goto yy356;
+    if (yych == 'p') goto yy359;
     goto yy55;
 yy221:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'l') goto yy357;
-    if (yych == 't') goto yy358;
+    if (yych == 'l') goto yy360;
+    if (yych == 't') goto yy361;
     goto yy55;
 yy222:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'n') goto yy360;
+    if (yych == 'n') goto yy363;
     goto yy55;
 yy223:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy361;
+    if (yych == 't') goto yy364;
     goto yy55;
 yy224:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'm') goto yy362;
+    if (yych == 'm') goto yy365;
     goto yy55;
 yy225:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'w') goto yy363;
+    if (yych == 'w') goto yy366;
     goto yy55;
 yy226:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy365;
-    if (yych == 't') goto yy366;
+    if (yych == 'e') goto yy368;
+    if (yych == 't') goto yy369;
     goto yy55;
 yy227:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'l') goto yy368;
+    if (yych == 'l') goto yy371;
     goto yy55;
 yy228:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy369;
+    if (yych == 'e') goto yy372;
     goto yy55;
 yy229:
     yyaccept = 9;
@@ -2015,80 +2052,79 @@ yy229:
         if (yych <= '^') {
             if (yych == '\\') goto yy174;
         } else {
-            if (yych <= '_') goto yy370;
+            if (yych <= '_') goto yy373;
             if (yych <= '`') goto yy230;
             if (yych <= 'z') goto yy54;
         }
     }
 yy230:
-#line 233 "strict_cpp.re"
+#line 251 "strict_cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OROR_ALT); }
-#line 2027 "strict_cpp_re.inc"
+#line 2064 "strict_cpp_re.inc"
 yy231:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'i') goto yy371;
-    if (yych == 'o') goto yy372;
+    if (yych == 'i') goto yy374;
+    if (yych == 'o') goto yy375;
     goto yy55;
 yy232:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'b') goto yy373;
+    if (yych == 'b') goto yy376;
     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;
+    switch (yych) {
+    case 'g':    goto yy377;
+    case 'i':    goto yy378;
+    case 'q':    goto yy379;
+    case 't':    goto yy380;
+    default:    goto yy55;
     }
 yy234:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'o') goto yy377;
+    if (yych == 'o') goto yy381;
     goto yy55;
 yy235:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'g') goto yy378;
-    if (yych == 'z') goto yy379;
+    if (yych == 'g') goto yy382;
+    if (yych == 'z') goto yy383;
     goto yy55;
 yy236:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'a') goto yy380;
-    if (yych == 'r') goto yy381;
+    if (yych == 'a') goto yy384;
+    if (yych == 'r') goto yy385;
     goto yy55;
 yy237:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'i') goto yy382;
+    if (yych == 'i') goto yy386;
     goto yy55;
 yy238:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'm') goto yy383;
+    if (yych == 'm') goto yy387;
     goto yy55;
 yy239:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'i') goto yy384;
-    if (yych == 'r') goto yy385;
+    if (yych == 'i') goto yy388;
+    if (yych == 'r') goto yy389;
     goto yy55;
 yy240:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'u') goto yy386;
-    if (yych == 'y') goto yy387;
+    if (yych == 'u') goto yy390;
+    if (yych == 'y') goto yy391;
     goto yy55;
 yy241:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'p') goto yy389;
+    if (yych == 'p') goto yy393;
     goto yy55;
 yy242:
     yyaccept = 4;
@@ -2099,54 +2135,54 @@ yy242:
 yy243:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'i') goto yy390;
-    if (yych == 's') goto yy391;
+    if (yych == 'i') goto yy394;
+    if (yych == 's') goto yy395;
     goto yy55;
 yy244:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'i') goto yy392;
+    if (yych == 'i') goto yy396;
     goto yy55;
 yy245:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'r') goto yy393;
+    if (yych == 'r') goto yy397;
     goto yy55;
 yy246:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'i') goto yy394;
-    if (yych == 'l') goto yy395;
+    if (yych == 'i') goto yy398;
+    if (yych == 'l') goto yy399;
     goto yy55;
 yy247:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'h') goto yy396;
+    if (yych == 'h') goto yy400;
     goto yy55;
 yy248:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'i') goto yy397;
+    if (yych == 'i') goto yy401;
     goto yy55;
 yy249:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'r') goto yy398;
+    if (yych == 'r') goto yy402;
     goto yy55;
 yy250:
     ++YYCURSOR;
-#line 216 "strict_cpp.re"
+#line 224 "strict_cpp.re"
     { BOOST_WAVE_RET(T_ORASSIGN); }
-#line 2141 "strict_cpp_re.inc"
+#line 2177 "strict_cpp_re.inc"
 yy252:
     yych = *++YYCURSOR;
-    if (yych == '?') goto yy400;
+    if (yych == '?') goto yy404;
     goto yy100;
 yy253:
     ++YYCURSOR;
-#line 230 "strict_cpp.re"
+#line 248 "strict_cpp.re"
     { BOOST_WAVE_RET(T_OROR); }
-#line 2150 "strict_cpp_re.inc"
+#line 2186 "strict_cpp_re.inc"
 yy255:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
@@ -2167,7 +2203,7 @@ yy255:
         if (yych <= '/') {
             if (yych <= '"') goto yy101;
             if (yych <= '.') goto yy98;
-            goto yy401;
+            goto yy405;
         } else {
             if (yych == '\\') goto yy104;
             goto yy98;
@@ -2179,12 +2215,12 @@ yy257:
     yych = *YYCURSOR;
     if (yych <= '@') {
         if (yych <= '/') goto yy100;
-        if (yych <= '9') goto yy403;
+        if (yych <= '9') goto yy407;
         goto yy100;
     } else {
-        if (yych <= 'F') goto yy403;
+        if (yych <= 'F') goto yy407;
         if (yych <= '`') goto yy100;
-        if (yych <= 'f') goto yy403;
+        if (yych <= 'f') goto yy407;
         goto yy100;
     }
 yy258:
@@ -2193,12 +2229,12 @@ yy258:
     yych = *YYCURSOR;
     if (yych <= '@') {
         if (yych <= '/') goto yy100;
-        if (yych <= '9') goto yy404;
+        if (yych <= '9') goto yy408;
         goto yy100;
     } else {
-        if (yych <= 'F') goto yy404;
+        if (yych <= 'F') goto yy408;
         if (yych <= '`') goto yy100;
-        if (yych <= 'f') goto yy404;
+        if (yych <= 'f') goto yy408;
         goto yy100;
     }
 yy259:
@@ -2223,71 +2259,71 @@ yy260:
         goto yy260;
     }
     if (yych <= 0x1F) goto yy100;
-    goto yy405;
+    goto yy409;
 yy262:
     yych = *++YYCURSOR;
-    if (yych == '=') goto yy407;
+    if (yych == '=') goto yy411;
     goto yy100;
 yy263:
     yych = *++YYCURSOR;
-    if (yych == 'f') goto yy409;
+    if (yych == 'f') goto yy413;
     goto yy100;
 yy264:
     yych = *++YYCURSOR;
-    if (yych == 'i') goto yy410;
-    if (yych == 's') goto yy411;
+    if (yych == 'i') goto yy414;
+    if (yych == 's') goto yy415;
     goto yy100;
 yy265:
     yych = *++YYCURSOR;
-    if (yych == 'd') goto yy412;
+    if (yych == 'd') goto yy416;
     goto yy100;
 yy266:
     yych = *++YYCURSOR;
-    if (yych == 'r') goto yy413;
+    if (yych == 'r') goto yy417;
     goto yy100;
 yy267:
     yyaccept = 10;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'd') goto yy414;
-    if (yych == 'n') goto yy415;
+    if (yych == 'd') goto yy418;
+    if (yych == 'n') goto yy419;
 yy268:
-#line 307 "strict_cpp.re"
+#line 325 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PP_IF); }
-#line 2257 "strict_cpp_re.inc"
+#line 2293 "strict_cpp_re.inc"
 yy269:
     yych = *++YYCURSOR;
-    if (yych == 'c') goto yy416;
+    if (yych == 'c') goto yy420;
     goto yy100;
 yy270:
     yych = *++YYCURSOR;
-    if (yych == 'n') goto yy417;
+    if (yych == 'n') goto yy421;
     goto yy100;
 yy271:
     yych = *++YYCURSOR;
-    if (yych == 'a') goto yy418;
+    if (yych == 'a') goto yy422;
     goto yy100;
 yy272:
     yych = *++YYCURSOR;
-    if (yych == 'g') goto yy419;
+    if (yych == 'g') goto yy423;
     goto yy100;
 yy273:
     yych = *++YYCURSOR;
-    if (yych == 'd') goto yy420;
+    if (yych == 'd') goto yy424;
     goto yy100;
 yy274:
     yych = *++YYCURSOR;
-    if (yych == 'r') goto yy421;
+    if (yych == 'r') goto yy425;
     goto yy100;
 yy275:
     yych = *++YYCURSOR;
-    if (yych == ':') goto yy422;
+    if (yych == ':') goto yy426;
     goto yy100;
 yy276:
     ++YYCURSOR;
 yy277:
-#line 252 "strict_cpp.re"
+#line 270 "strict_cpp.re"
     { BOOST_WAVE_RET(T_CHARLIT); }
-#line 2291 "strict_cpp_re.inc"
+#line 2327 "strict_cpp_re.inc"
 yy278:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
@@ -2304,7 +2340,7 @@ yy278:
         }
     } else {
         if (yych <= '>') {
-            if (yych == '/') goto yy424;
+            if (yych == '/') goto yy428;
             goto yy129;
         } else {
             if (yych <= '?') goto yy278;
@@ -2318,12 +2354,12 @@ yy280:
     yych = *YYCURSOR;
     if (yych <= '@') {
         if (yych <= '/') goto yy100;
-        if (yych <= '9') goto yy426;
+        if (yych <= '9') goto yy430;
         goto yy100;
     } else {
-        if (yych <= 'F') goto yy426;
+        if (yych <= 'F') goto yy430;
         if (yych <= '`') goto yy100;
-        if (yych <= 'f') goto yy426;
+        if (yych <= 'f') goto yy430;
         goto yy100;
     }
 yy281:
@@ -2332,12 +2368,12 @@ yy281:
     yych = *YYCURSOR;
     if (yych <= '@') {
         if (yych <= '/') goto yy100;
-        if (yych <= '9') goto yy427;
+        if (yych <= '9') goto yy431;
         goto yy100;
     } else {
-        if (yych <= 'F') goto yy427;
+        if (yych <= 'F') goto yy431;
         if (yych <= '`') goto yy100;
-        if (yych <= 'f') goto yy427;
+        if (yych <= 'f') goto yy431;
         goto yy100;
     }
 yy282:
@@ -2356,7 +2392,7 @@ yy282:
     }
 yy283:
     ++YYCURSOR;
-#line 239 "strict_cpp.re"
+#line 257 "strict_cpp.re"
     {
             if (s->act_in_c99_mode) {
                 --YYCURSOR;
@@ -2366,71 +2402,84 @@ yy283:
                 BOOST_WAVE_RET(T_ARROWSTAR);
             }
         }
-#line 2370 "strict_cpp_re.inc"
+#line 2406 "strict_cpp_re.inc"
 yy285:
     ++YYCURSOR;
-#line 162 "strict_cpp.re"
+#line 170 "strict_cpp.re"
     { BOOST_WAVE_RET(T_ELLIPSIS); }
-#line 2375 "strict_cpp_re.inc"
+#line 2411 "strict_cpp_re.inc"
 yy287:
     ++YYCURSOR;
-#line 222 "strict_cpp.re"
+#line 230 "strict_cpp.re"
     { BOOST_WAVE_RET(T_SHIFTLEFTASSIGN); }
-#line 2380 "strict_cpp_re.inc"
+#line 2416 "strict_cpp_re.inc"
 yy289:
     ++YYCURSOR;
-#line 221 "strict_cpp.re"
-    { BOOST_WAVE_RET(T_SHIFTRIGHTASSIGN); }
-#line 2385 "strict_cpp_re.inc"
+#line 235 "strict_cpp.re"
+    {
+            if (s->act_in_cpp2a_mode) {
+                BOOST_WAVE_RET(T_SPACESHIP);
+            }
+            else {
+                --YYCURSOR;
+                BOOST_WAVE_RET(T_LESSEQUAL);
+            }
+        }
+#line 2429 "strict_cpp_re.inc"
 yy291:
-    yyaccept = 11;
-    yych = *(YYMARKER = ++YYCURSOR);
-    if (yych <= '>') {
-        if (yych == '=') goto yy428;
+    ++YYCURSOR;
+#line 229 "strict_cpp.re"
+    { BOOST_WAVE_RET(T_SHIFTRIGHTASSIGN); }
+#line 2434 "strict_cpp_re.inc"
+yy293:
+    yyaccept = 11;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych <= '>') {
+        if (yych == '=') goto yy432;
     } else {
-        if (yych <= '?') goto yy430;
-        if (yych == '|') goto yy431;
+        if (yych <= '?') goto yy434;
+        if (yych == '|') goto yy435;
     }
-yy292:
-#line 197 "strict_cpp.re"
+yy294:
+#line 205 "strict_cpp.re"
     { BOOST_WAVE_RET(T_OR_TRIGRAPH); }
-#line 2398 "strict_cpp_re.inc"
-yy293:
+#line 2447 "strict_cpp_re.inc"
+yy295:
     yych = *++YYCURSOR;
-    if (yych == '=') goto yy433;
-#line 191 "strict_cpp.re"
+    if (yych == '=') goto yy437;
+#line 199 "strict_cpp.re"
     { BOOST_WAVE_RET(T_XOR_TRIGRAPH); }
-#line 2404 "strict_cpp_re.inc"
-yy295:
+#line 2453 "strict_cpp_re.inc"
+yy297:
     ++YYCURSOR;
-#line 145 "strict_cpp.re"
+#line 153 "strict_cpp.re"
     { BOOST_WAVE_RET(T_LEFTBRACKET_TRIGRAPH); }
-#line 2409 "strict_cpp_re.inc"
-yy297:
+#line 2458 "strict_cpp_re.inc"
+yy299:
     ++YYCURSOR;
-#line 148 "strict_cpp.re"
+#line 156 "strict_cpp.re"
     { BOOST_WAVE_RET(T_RIGHTBRACKET_TRIGRAPH); }
-#line 2414 "strict_cpp_re.inc"
-yy299:
+#line 2463 "strict_cpp_re.inc"
+yy301:
     ++YYCURSOR;
-#line 199 "strict_cpp.re"
+#line 207 "strict_cpp.re"
     { BOOST_WAVE_RET(T_COMPL_TRIGRAPH); }
-#line 2419 "strict_cpp_re.inc"
-yy301:
+#line 2468 "strict_cpp_re.inc"
+yy303:
     yyaccept = 12;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych == 'U') goto yy183;
     if (yych == 'u') goto yy184;
-yy302:
-#line 249 "strict_cpp.re"
+yy304:
+#line 267 "strict_cpp.re"
     { BOOST_WAVE_RET(T_ANY_TRIGRAPH); }
-#line 2428 "strict_cpp_re.inc"
-yy303:
+#line 2477 "strict_cpp_re.inc"
+yy305:
     ++YYCURSOR;
-#line 139 "strict_cpp.re"
+#line 147 "strict_cpp.re"
     { BOOST_WAVE_RET(T_LEFTBRACE_TRIGRAPH); }
-#line 2433 "strict_cpp_re.inc"
-yy305:
+#line 2482 "strict_cpp_re.inc"
+yy307:
     yyaccept = 13;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'c') {
@@ -2443,10 +2492,10 @@ yy305:
             }
         } else {
             if (yych <= '.') {
-                if (yych == '#') goto yy435;
+                if (yych == '#') goto yy439;
             } else {
                 if (yych <= '/') goto yy106;
-                if (yych == '?') goto yy437;
+                if (yych == '?') goto yy441;
             }
         }
     } else {
@@ -2462,29 +2511,29 @@ yy305:
             if (yych <= 't') {
                 if (yych == 'r') goto yy106;
             } else {
-                if (yych == 'v') goto yy306;
+                if (yych == 'v') goto yy308;
                 if (yych <= 'w') goto yy106;
             }
         }
     }
-yy306:
-#line 152 "strict_cpp.re"
+yy308:
+#line 160 "strict_cpp.re"
     { BOOST_WAVE_RET(T_POUND_TRIGRAPH); }
-#line 2474 "strict_cpp_re.inc"
-yy307:
+#line 2523 "strict_cpp_re.inc"
+yy309:
     ++YYCURSOR;
-#line 142 "strict_cpp.re"
+#line 150 "strict_cpp.re"
     { BOOST_WAVE_RET(T_RIGHTBRACE_TRIGRAPH); }
-#line 2479 "strict_cpp_re.inc"
-yy309:
+#line 2528 "strict_cpp_re.inc"
+yy311:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych == '/') goto yy174;
     goto yy100;
-yy310:
+yy312:
     ++YYCURSOR;
-#line 285 "strict_cpp.re"
+#line 303 "strict_cpp.re"
     {
             if (s->act_in_cpp0x_mode)
             {
@@ -2494,107 +2543,107 @@ yy310:
             --YYCURSOR;
             BOOST_WAVE_RET(T_IDENTIFIER);
         }
-#line 2498 "strict_cpp_re.inc"
-yy312:
+#line 2547 "strict_cpp_re.inc"
+yy314:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
         if (yych <= '/') goto yy100;
-        if (yych <= '9') goto yy438;
+        if (yych <= '9') goto yy442;
         goto yy100;
     } else {
-        if (yych <= 'F') goto yy438;
+        if (yych <= 'F') goto yy442;
         if (yych <= '`') goto yy100;
-        if (yych <= 'f') goto yy438;
+        if (yych <= 'f') goto yy442;
         goto yy100;
     }
-yy313:
+yy315:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
         if (yych <= '/') goto yy100;
-        if (yych <= '9') goto yy439;
+        if (yych <= '9') goto yy443;
         goto yy100;
     } else {
-        if (yych <= 'F') goto yy439;
+        if (yych <= 'F') goto yy443;
         if (yych <= '`') goto yy100;
-        if (yych <= 'f') goto yy439;
+        if (yych <= 'f') goto yy443;
         goto yy100;
     }
-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;
+    if (yych == 'x') goto yy444;
     goto yy55;
 yy317:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy443;
+    if (yych == 'a') goto yy325;
+    if (yych == 'i') goto yy445;
     goto yy55;
 yy318:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'r') goto yy444;
+    if (yych == 'n') goto yy446;
     goto yy55;
 yy319:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'm') goto yy445;
+    if (yych == 'e') goto yy447;
     goto yy55;
 yy320:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 's') goto yy447;
+    if (yych == 'r') goto yy448;
     goto yy55;
 yy321:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy448;
+    if (yych == 'm') goto yy449;
     goto yy55;
 yy322:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'c') goto yy449;
+    if (yych == 's') goto yy451;
     goto yy55;
 yy323:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 's') goto yy450;
+    if (yych == 'e') goto yy452;
     goto yy55;
 yy324:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'l') goto yy451;
+    if (yych == 'c') goto yy453;
     goto yy55;
 yy325:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'd') goto yy452;
+    if (yych == 's') goto yy454;
     goto yy55;
 yy326:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'g') goto yy453;
+    if (yych == 'l') goto yy455;
     goto yy55;
 yy327:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'd') goto yy456;
+    goto yy55;
+yy328:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'g') goto yy457;
+    goto yy55;
+yy329:
     yyaccept = 14;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'Z') {
         if (yych <= '>') {
-            if (yych <= '/') goto yy328;
+            if (yych <= '/') goto yy330;
             if (yych <= '9') goto yy54;
         } else {
             if (yych <= '?') goto yy173;
@@ -2604,16 +2653,16 @@ yy327:
         if (yych <= '^') {
             if (yych == '\\') goto yy174;
         } else {
-            if (yych <= '_') goto yy454;
-            if (yych <= '`') goto yy328;
+            if (yych <= '_') goto yy458;
+            if (yych <= '`') goto yy330;
             if (yych <= 'z') goto yy54;
         }
     }
-yy328:
-#line 229 "strict_cpp.re"
+yy330:
+#line 247 "strict_cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDAND_ALT); }
-#line 2616 "strict_cpp_re.inc"
-yy329:
+#line 2665 "strict_cpp_re.inc"
+yy331:
     yyaccept = 15;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -2621,120 +2670,135 @@ yy329:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy330:
+yy332:
 #line 49 "strict_cpp.re"
     { BOOST_WAVE_RET(T_ASM); }
-#line 2628 "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;
+#line 2677 "strict_cpp_re.inc"
 yy333:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'l') goto yy459;
+    if (yych == 'o') goto yy459;
     goto yy55;
 yy334:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych == 'a') goto yy461;
+    if (yych == 'o') goto yy462;
     goto yy55;
 yy335:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy462;
+    if (yych == 'l') goto yy463;
     goto yy55;
 yy336:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'c') goto yy464;
+    if (yych == 'a') goto yy465;
     goto yy55;
 yy337:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'r') goto yy465;
+    if (yych == 'e') goto yy466;
     goto yy55;
 yy338:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 's') goto yy467;
+    if (yych == 'c') goto yy468;
     goto yy55;
 yy339:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'p') goto yy468;
+    if (yych == 'r') goto yy469;
     goto yy55;
 yy340:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych <= 'r') goto yy55;
-    if (yych <= 's') goto yy469;
-    if (yych <= 't') goto yy470;
+    if (yych == 's') goto yy471;
     goto yy55;
 yy341:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'l') goto yy471;
-    goto yy55;
+    if (yych <= 'q') {
+        if (yych == 'a') goto yy472;
+        goto yy55;
+    } else {
+        if (yych <= 'r') goto yy473;
+        if (yych == 'y') goto yy474;
+        goto yy55;
+    }
 yy342:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'a') goto yy472;
+    if (yych == 'p') goto yy475;
     goto yy55;
 yy343:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy473;
-    goto yy55;
+    if (yych <= 'r') {
+        if (yych == 'c') goto yy476;
+        goto yy55;
+    } else {
+        if (yych <= 's') goto yy477;
+        if (yych <= 't') goto yy478;
+        goto yy55;
+    }
 yy344:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'b') goto yy474;
+    if (yych == 'l') goto yy479;
     goto yy55;
 yy345:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'a') goto yy475;
+    if (yych == 'a') goto yy480;
     goto yy55;
 yy346:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy476;
+    if (yych == 'e') goto yy481;
     goto yy55;
 yy347:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'm') goto yy478;
+    if (yych == 'b') goto yy482;
     goto yy55;
 yy348:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'l') goto yy480;
-    if (yych == 'o') goto yy481;
+    if (yych == 'a') goto yy483;
     goto yy55;
 yy349:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy482;
+    if (yych == 'e') goto yy484;
     goto yy55;
 yy350:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 's') goto yy483;
+    if (yych == 'm') goto yy486;
     goto yy55;
 yy351:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'a') goto yy484;
+    if (yych == 'l') goto yy488;
+    if (yych == 'o') goto yy489;
     goto yy55;
 yy352:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'e') goto yy490;
+    goto yy55;
+yy353:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 's') goto yy491;
+    goto yy55;
+yy354:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'a') goto yy492;
+    goto yy55;
+yy355:
     yyaccept = 16;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -2742,31 +2806,31 @@ yy352:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy353:
-#line 76 "strict_cpp.re"
+yy356:
+#line 83 "strict_cpp.re"
     { BOOST_WAVE_RET(T_FOR); }
-#line 2749 "strict_cpp_re.inc"
-yy354:
+#line 2813 "strict_cpp_re.inc"
+yy357:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy485;
+    if (yych == 'e') goto yy493;
     goto yy55;
-yy355:
+yy358:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'o') goto yy486;
+    if (yych == 'o') goto yy494;
     goto yy55;
-yy356:
+yy359:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'o') goto yy488;
+    if (yych == 'o') goto yy496;
     goto yy55;
-yy357:
+yy360:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'i') goto yy489;
+    if (yych == 'i') goto yy497;
     goto yy55;
-yy358:
+yy361:
     yyaccept = 17;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -2774,26 +2838,26 @@ yy358:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy359:
-#line 82 "strict_cpp.re"
+yy362:
+#line 89 "strict_cpp.re"
     { BOOST_WAVE_RET(T_INT); }
-#line 2781 "strict_cpp_re.inc"
-yy360:
+#line 2845 "strict_cpp_re.inc"
+yy363:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'g') goto yy490;
+    if (yych == 'g') goto yy498;
     goto yy55;
-yy361:
+yy364:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'a') goto yy492;
+    if (yych == 'a') goto yy500;
     goto yy55;
-yy362:
+yy365:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy493;
+    if (yych == 'e') goto yy501;
     goto yy55;
-yy363:
+yy366:
     yyaccept = 18;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -2801,21 +2865,21 @@ yy363:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy364:
-#line 86 "strict_cpp.re"
+yy367:
+#line 93 "strict_cpp.re"
     { BOOST_WAVE_RET(T_NEW); }
-#line 2808 "strict_cpp_re.inc"
-yy365:
+#line 2872 "strict_cpp_re.inc"
+yy368:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'x') goto yy494;
+    if (yych == 'x') goto yy502;
     goto yy55;
-yy366:
+yy369:
     yyaccept = 19;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'Z') {
         if (yych <= '>') {
-            if (yych <= '/') goto yy367;
+            if (yych <= '/') goto yy370;
             if (yych <= '9') goto yy54;
         } else {
             if (yych <= '?') goto yy173;
@@ -2825,112 +2889,117 @@ yy366:
         if (yych <= '^') {
             if (yych == '\\') goto yy174;
         } else {
-            if (yych <= '_') goto yy495;
-            if (yych <= '`') goto yy367;
+            if (yych <= '_') goto yy503;
+            if (yych <= '`') goto yy370;
             if (yych <= 'z') goto yy54;
         }
     }
-yy367:
-#line 202 "strict_cpp.re"
-    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOT_ALT); }
-#line 2837 "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;
+#line 210 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOT_ALT); }
+#line 2901 "strict_cpp_re.inc"
 yy371:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'v') goto yy499;
+    if (yych == 'l') goto yy504;
     goto yy55;
 yy372:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy500;
+    if (yych == 'r') goto yy505;
     goto yy55;
 yy373:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'l') goto yy501;
+    if (yych == 'e') goto yy506;
     goto yy55;
 yy374:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'i') goto yy502;
+    if (yych == 'v') goto yy507;
     goto yy55;
 yy375:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'n') goto yy503;
+    if (yych == 't') goto yy508;
     goto yy55;
 yy376:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'u') goto yy504;
+    if (yych == 'l') goto yy509;
     goto yy55;
 yy377:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'r') goto yy505;
+    if (yych == 'i') goto yy510;
     goto yy55;
 yy378:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'n') goto yy506;
+    if (yych == 'n') goto yy511;
     goto yy55;
 yy379:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy507;
+    if (yych == 'u') goto yy512;
     goto yy55;
 yy380:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy508;
+    if (yych == 'u') goto yy513;
     goto yy55;
 yy381:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'u') goto yy509;
+    if (yych == 'r') goto yy514;
     goto yy55;
 yy382:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy510;
+    if (yych == 'n') goto yy515;
     goto yy55;
 yy383:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'p') goto yy511;
+    if (yych == 'e') goto yy516;
     goto yy55;
 yy384:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 's') goto yy512;
+    if (yych == 't') goto yy517;
     goto yy55;
 yy385:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy514;
-    if (yych == 'o') goto yy515;
+    if (yych == 'u') goto yy518;
     goto yy55;
 yy386:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy516;
+    if (yych == 't') goto yy519;
     goto yy55;
 yy387:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'p') goto yy520;
+    goto yy55;
+yy388:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 's') goto yy521;
+    goto yy55;
+yy389:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'e') goto yy523;
+    if (yych == 'o') goto yy524;
+    goto yy55;
+yy390:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'e') goto yy525;
+    goto yy55;
+yy391:
     yyaccept = 20;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -2938,61 +3007,61 @@ yy387:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy388:
-#line 109 "strict_cpp.re"
+yy392:
+#line 117 "strict_cpp.re"
     { BOOST_WAVE_RET(T_TRY); }
-#line 2945 "strict_cpp_re.inc"
-yy389:
+#line 3014 "strict_cpp_re.inc"
+yy393:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy518;
+    if (yych == 'e') goto yy527;
     goto yy55;
-yy390:
+yy394:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'o') goto yy519;
+    if (yych == 'o') goto yy528;
     goto yy55;
-yy391:
+yy395:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'i') goto yy520;
+    if (yych == 'i') goto yy529;
     goto yy55;
-yy392:
+yy396:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'n') goto yy521;
+    if (yych == 'n') goto yy530;
     goto yy55;
-yy393:
+yy397:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy522;
+    if (yych == 't') goto yy531;
     goto yy55;
-yy394:
+yy398:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'd') goto yy523;
+    if (yych == 'd') goto yy532;
     goto yy55;
-yy395:
+yy399:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'a') goto yy525;
+    if (yych == 'a') goto yy534;
     goto yy55;
-yy396:
+yy400:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'a') goto yy526;
+    if (yych == 'a') goto yy535;
     goto yy55;
-yy397:
+yy401:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'l') goto yy527;
+    if (yych == 'l') goto yy536;
     goto yy55;
-yy398:
+yy402:
     yyaccept = 21;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'Z') {
         if (yych <= '>') {
-            if (yych <= '/') goto yy399;
+            if (yych <= '/') goto yy403;
             if (yych <= '9') goto yy54;
         } else {
             if (yych <= '?') goto yy173;
@@ -3002,20 +3071,20 @@ yy398:
         if (yych <= '^') {
             if (yych == '\\') goto yy174;
         } else {
-            if (yych <= '_') goto yy528;
-            if (yych <= '`') goto yy399;
+            if (yych <= '_') goto yy537;
+            if (yych <= '`') goto yy403;
             if (yych <= 'z') goto yy54;
         }
     }
-yy399:
-#line 192 "strict_cpp.re"
+yy403:
+#line 200 "strict_cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XOR_ALT); }
-#line 3014 "strict_cpp_re.inc"
-yy400:
+#line 3083 "strict_cpp_re.inc"
+yy404:
     yych = *++YYCURSOR;
-    if (yych == '!') goto yy529;
+    if (yych == '!') goto yy538;
     goto yy100;
-yy401:
+yy405:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
@@ -3023,43 +3092,43 @@ yy401:
         goto yy98;
     }
     if (yych <= 0x1F) goto yy100;
-    if (yych <= '"') goto yy531;
+    if (yych <= '"') goto yy540;
     if (yych <= '?') goto yy103;
-    goto yy401;
-yy403:
+    goto yy405;
+yy407:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
         if (yych <= '/') goto yy100;
-        if (yych <= '9') goto yy532;
+        if (yych <= '9') goto yy541;
         goto yy100;
     } else {
-        if (yych <= 'F') goto yy532;
+        if (yych <= 'F') goto yy541;
         if (yych <= '`') goto yy100;
-        if (yych <= 'f') goto yy532;
+        if (yych <= 'f') goto yy541;
         goto yy100;
     }
-yy404:
+yy408:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
         if (yych <= '/') goto yy100;
-        if (yych <= '9') goto yy533;
+        if (yych <= '9') goto yy542;
         goto yy100;
     } else {
-        if (yych <= 'F') goto yy533;
+        if (yych <= 'F') goto yy542;
         if (yych <= '`') goto yy100;
-        if (yych <= 'f') goto yy533;
+        if (yych <= 'f') goto yy542;
         goto yy100;
     }
-yy405:
+yy409:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 32) {
-        goto yy405;
+        goto yy409;
     }
     if (yych <= 0x1F) {
         if (yych <= 0x08) goto yy100;
@@ -3069,70 +3138,70 @@ yy405:
         if (yych == '/') goto yy105;
         goto yy260;
     }
-yy407:
+yy411:
     ++YYCURSOR;
-#line 154 "strict_cpp.re"
+#line 162 "strict_cpp.re"
     { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
-#line 3077 "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;
+#line 3146 "strict_cpp_re.inc"
 yy413:
     yych = *++YYCURSOR;
-    if (yych == 'o') goto yy541;
+    if (yych == 'i') goto yy543;
     goto yy100;
 yy414:
     yych = *++YYCURSOR;
-    if (yych == 'e') goto yy542;
+    if (yych == 'f') goto yy544;
     goto yy100;
 yy415:
     yych = *++YYCURSOR;
-    if (yych == 'd') goto yy543;
+    if (yych == 'e') goto yy546;
     goto yy100;
 yy416:
     yych = *++YYCURSOR;
-    if (yych == 'l') goto yy544;
+    if (yych == 'i') goto yy548;
+    if (yych == 'r') goto yy549;
     goto yy100;
 yy417:
     yych = *++YYCURSOR;
-    if (yych == 'e') goto yy545;
+    if (yych == 'o') goto yy550;
     goto yy100;
 yy418:
     yych = *++YYCURSOR;
-    if (yych == 'g') goto yy547;
+    if (yych == 'e') goto yy551;
     goto yy100;
 yy419:
     yych = *++YYCURSOR;
-    if (yych == 'i') goto yy548;
+    if (yych == 'd') goto yy552;
     goto yy100;
 yy420:
     yych = *++YYCURSOR;
-    if (yych == 'e') goto yy549;
+    if (yych == 'l') goto yy553;
     goto yy100;
 yy421:
     yych = *++YYCURSOR;
-    if (yych == 'n') goto yy550;
+    if (yych == 'e') goto yy554;
     goto yy100;
 yy422:
+    yych = *++YYCURSOR;
+    if (yych == 'g') goto yy556;
+    goto yy100;
+yy423:
+    yych = *++YYCURSOR;
+    if (yych == 'i') goto yy557;
+    goto yy100;
+yy424:
+    yych = *++YYCURSOR;
+    if (yych == 'e') goto yy558;
+    goto yy100;
+yy425:
+    yych = *++YYCURSOR;
+    if (yych == 'n') goto yy559;
+    goto yy100;
+yy426:
     ++YYCURSOR;
-#line 157 "strict_cpp.re"
+#line 165 "strict_cpp.re"
     { BOOST_WAVE_RET(T_POUND_POUND_ALT); }
-#line 3135 "strict_cpp_re.inc"
-yy424:
+#line 3204 "strict_cpp_re.inc"
+yy428:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
@@ -3140,120 +3209,120 @@ yy424:
         goto yy129;
     }
     if (yych <= 0x1F) goto yy100;
-    if (yych <= '\'') goto yy551;
+    if (yych <= '\'') goto yy560;
     if (yych <= '?') goto yy131;
-    goto yy424;
-yy426:
+    goto yy428;
+yy430:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
         if (yych <= '/') goto yy100;
-        if (yych <= '9') goto yy552;
+        if (yych <= '9') goto yy561;
         goto yy100;
     } else {
-        if (yych <= 'F') goto yy552;
+        if (yych <= 'F') goto yy561;
         if (yych <= '`') goto yy100;
-        if (yych <= 'f') goto yy552;
+        if (yych <= 'f') goto yy561;
         goto yy100;
     }
-yy427:
+yy431:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
         if (yych <= '/') goto yy100;
-        if (yych <= '9') goto yy553;
+        if (yych <= '9') goto yy562;
         goto yy100;
     } else {
-        if (yych <= 'F') goto yy553;
+        if (yych <= 'F') goto yy562;
         if (yych <= '`') goto yy100;
-        if (yych <= 'f') goto yy553;
+        if (yych <= 'f') goto yy562;
         goto yy100;
     }
-yy428:
+yy432:
     ++YYCURSOR;
-#line 218 "strict_cpp.re"
+#line 226 "strict_cpp.re"
     { BOOST_WAVE_RET(T_ORASSIGN_TRIGRAPH); }
-#line 3179 "strict_cpp_re.inc"
-yy430:
+#line 3248 "strict_cpp_re.inc"
+yy434:
     yych = *++YYCURSOR;
-    if (yych == '?') goto yy554;
+    if (yych == '?') goto yy563;
     goto yy100;
-yy431:
+yy435:
     ++YYCURSOR;
-#line 231 "strict_cpp.re"
+#line 249 "strict_cpp.re"
     { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
-#line 3188 "strict_cpp_re.inc"
-yy433:
+#line 3257 "strict_cpp_re.inc"
+yy437:
     ++YYCURSOR;
-#line 213 "strict_cpp.re"
+#line 221 "strict_cpp.re"
     { BOOST_WAVE_RET(T_XORASSIGN_TRIGRAPH); }
-#line 3193 "strict_cpp_re.inc"
-yy435:
+#line 3262 "strict_cpp_re.inc"
+yy439:
     ++YYCURSOR;
-#line 155 "strict_cpp.re"
+#line 163 "strict_cpp.re"
     { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
-#line 3198 "strict_cpp_re.inc"
-yy437:
+#line 3267 "strict_cpp_re.inc"
+yy441:
     yych = *++YYCURSOR;
-    if (yych == '?') goto yy555;
+    if (yych == '?') goto yy564;
     goto yy100;
-yy438:
+yy442:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
         if (yych <= '/') goto yy100;
-        if (yych <= '9') goto yy556;
+        if (yych <= '9') goto yy565;
         goto yy100;
     } else {
-        if (yych <= 'F') goto yy556;
+        if (yych <= 'F') goto yy565;
         if (yych <= '`') goto yy100;
-        if (yych <= 'f') goto yy556;
+        if (yych <= 'f') goto yy565;
         goto yy100;
     }
-yy439:
+yy443:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
         if (yych <= '/') goto yy100;
-        if (yych <= '9') goto yy557;
+        if (yych <= '9') goto yy566;
         goto yy100;
     } else {
-        if (yych <= 'F') goto yy557;
+        if (yych <= 'F') goto yy566;
         if (yych <= '`') goto yy100;
-        if (yych <= 'f') goto yy557;
+        if (yych <= 'f') goto yy566;
         goto yy100;
     }
-yy440:
+yy444:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'c') goto yy558;
+    if (yych == 'c') goto yy567;
     goto yy55;
-yy441:
+yy445:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'n') goto yy559;
+    if (yych == 'n') goto yy568;
     goto yy55;
-yy442:
+yy446:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'l') goto yy451;
-    if (yych == 't') goto yy560;
+    if (yych == 'l') goto yy455;
+    if (yych == 't') goto yy569;
     goto yy55;
-yy443:
+yy447:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'a') goto yy561;
+    if (yych == 'a') goto yy570;
     goto yy55;
-yy444:
+yy448:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'y') goto yy562;
+    if (yych == 'y') goto yy571;
     goto yy55;
-yy445:
+yy449:
     yyaccept = 22;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -3261,51 +3330,51 @@ yy445:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy446:
-#line 136 "strict_cpp.re"
+yy450:
+#line 144 "strict_cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_ASM : T_IDENTIFIER); }
-#line 3268 "strict_cpp_re.inc"
-yy447:
+#line 3337 "strict_cpp_re.inc"
+yy451:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy564;
+    if (yych == 'e') goto yy573;
     goto yy55;
-yy448:
+yy452:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'c') goto yy565;
+    if (yych == 'c') goto yy574;
     goto yy55;
-yy449:
+yy453:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'l') goto yy566;
+    if (yych == 'l') goto yy575;
     goto yy55;
-yy450:
+yy454:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy567;
+    if (yych == 't') goto yy576;
     goto yy55;
-yy451:
+yy455:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'i') goto yy568;
+    if (yych == 'i') goto yy577;
     goto yy55;
-yy452:
+yy456:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'c') goto yy569;
+    if (yych == 'c') goto yy578;
     goto yy55;
-yy453:
+yy457:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'n') goto yy570;
+    if (yych == 'n') goto yy579;
     goto yy55;
-yy454:
+yy458:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy571;
+    if (yych == 'e') goto yy580;
     goto yy55;
-yy455:
+yy459:
     yyaccept = 23;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -3313,21 +3382,21 @@ yy455:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy456:
+yy460:
 #line 50 "strict_cpp.re"
     { BOOST_WAVE_RET(T_AUTO); }
-#line 3320 "strict_cpp_re.inc"
-yy457:
+#line 3389 "strict_cpp_re.inc"
+yy461:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'n') goto yy572;
+    if (yych == 'n') goto yy581;
     goto yy55;
-yy458:
+yy462:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'r') goto yy573;
+    if (yych == 'r') goto yy582;
     goto yy55;
-yy459:
+yy463:
     yyaccept = 24;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -3335,16 +3404,16 @@ yy459:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy460:
+yy464:
 #line 51 "strict_cpp.re"
     { BOOST_WAVE_RET(T_BOOL); }
-#line 3342 "strict_cpp_re.inc"
-yy461:
+#line 3411 "strict_cpp_re.inc"
+yy465:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'k') goto yy575;
+    if (yych == 'k') goto yy584;
     goto yy55;
-yy462:
+yy466:
     yyaccept = 25;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -3352,92 +3421,119 @@ yy462:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy463:
+yy467:
 #line 53 "strict_cpp.re"
     { BOOST_WAVE_RET(T_CASE); }
-#line 3359 "strict_cpp_re.inc"
-yy464:
+#line 3428 "strict_cpp_re.inc"
+yy468:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'h') goto yy577;
+    if (yych == 'h') goto yy586;
     goto yy55;
-yy465:
+yy469:
     yyaccept = 26;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych <= '?') {
+    if (yych <= '>') {
         if (yych <= '2') {
-            if (yych <= '/') goto yy466;
-            if (yych == '1') goto yy579;
+            if (yych <= '/') goto yy470;
+            if (yych == '1') goto yy588;
             goto yy54;
         } else {
-            if (yych <= '3') goto yy580;
-            if (yych <= '9') goto yy54;
-            if (yych >= '?') goto yy173;
+            if (yych <= '7') {
+                if (yych <= '3') goto yy589;
+                goto yy54;
+            } else {
+                if (yych <= '8') goto yy590;
+                if (yych <= '9') goto yy54;
+            }
         }
     } else {
         if (yych <= '\\') {
-            if (yych <= '@') goto yy466;
-            if (yych <= 'Z') goto yy54;
-            if (yych >= '\\') goto yy174;
+            if (yych <= '@') {
+                if (yych <= '?') goto yy173;
+            } else {
+                if (yych <= 'Z') goto yy54;
+                if (yych >= '\\') goto yy174;
+            }
         } else {
             if (yych <= '_') {
                 if (yych >= '_') goto yy54;
             } else {
-                if (yych <= '`') goto yy466;
+                if (yych <= '`') goto yy470;
                 if (yych <= 'z') goto yy54;
             }
         }
     }
-yy466:
+yy470:
 #line 55 "strict_cpp.re"
     { BOOST_WAVE_RET(T_CHAR); }
-#line 3395 "strict_cpp_re.inc"
-yy467:
+#line 3471 "strict_cpp_re.inc"
+yy471:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 's') goto yy581;
+    if (yych == 's') goto yy591;
     goto yy55;
-yy468:
+yy472:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'l') goto yy583;
+    if (yych == 'w') goto yy593;
     goto yy55;
-yy469:
+yy473:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy585;
+    if (yych == 'e') goto yy594;
     goto yy55;
-yy470:
+yy474:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'i') goto yy587;
+    if (yych == 'i') goto yy595;
     goto yy55;
-yy471:
+yy475:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy588;
+    if (yych == 'l') goto yy596;
     goto yy55;
-yy472:
+yy476:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'u') goto yy589;
+    if (yych == 'e') goto yy598;
     goto yy55;
-yy473:
+yy477:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy590;
+    if (yych == 't') goto yy599;
     goto yy55;
-yy474:
+yy478:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'l') goto yy591;
+    if (yych == 'i') goto yy601;
     goto yy55;
-yy475:
+yy479:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'm') goto yy592;
+    if (yych == 't') goto yy602;
     goto yy55;
-yy476:
+yy480:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'u') goto yy603;
+    goto yy55;
+yy481:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 't') goto yy604;
+    goto yy55;
+yy482:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'l') goto yy605;
+    goto yy55;
+yy483:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'm') goto yy606;
+    goto yy55;
+yy484:
     yyaccept = 27;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -3445,11 +3541,11 @@ yy476:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy477:
-#line 69 "strict_cpp.re"
+yy485:
+#line 76 "strict_cpp.re"
     { BOOST_WAVE_RET(T_ELSE); }
-#line 3452 "strict_cpp_re.inc"
-yy478:
+#line 3548 "strict_cpp_re.inc"
+yy486:
     yyaccept = 28;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -3457,41 +3553,41 @@ yy478:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy479:
-#line 70 "strict_cpp.re"
+yy487:
+#line 77 "strict_cpp.re"
     { BOOST_WAVE_RET(T_ENUM); }
-#line 3464 "strict_cpp_re.inc"
-yy480:
+#line 3560 "strict_cpp_re.inc"
+yy488:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'i') goto yy593;
+    if (yych == 'i') goto yy607;
     goto yy55;
-yy481:
+yy489:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'r') goto yy594;
+    if (yych == 'r') goto yy608;
     goto yy55;
-yy482:
+yy490:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'r') goto yy595;
+    if (yych == 'r') goto yy609;
     goto yy55;
-yy483:
+yy491:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy596;
+    if (yych == 'e') goto yy610;
     goto yy55;
-yy484:
+yy492:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy598;
+    if (yych == 't') goto yy612;
     goto yy55;
-yy485:
+yy493:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'n') goto yy600;
+    if (yych == 'n') goto yy614;
     goto yy55;
-yy486:
+yy494:
     yyaccept = 29;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -3499,21 +3595,21 @@ yy486:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy487:
-#line 78 "strict_cpp.re"
+yy495:
+#line 85 "strict_cpp.re"
     { BOOST_WAVE_RET(T_GOTO); }
-#line 3506 "strict_cpp_re.inc"
-yy488:
+#line 3602 "strict_cpp_re.inc"
+yy496:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'r') goto yy601;
+    if (yych == 'r') goto yy615;
     goto yy55;
-yy489:
+yy497:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'n') goto yy602;
+    if (yych == 'n') goto yy616;
     goto yy55;
-yy490:
+yy498:
     yyaccept = 30;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -3521,111 +3617,116 @@ yy490:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy491:
-#line 83 "strict_cpp.re"
+yy499:
+#line 90 "strict_cpp.re"
     { BOOST_WAVE_RET(T_LONG); }
-#line 3528 "strict_cpp_re.inc"
-yy492:
+#line 3624 "strict_cpp_re.inc"
+yy500:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'b') goto yy603;
+    if (yych == 'b') goto yy617;
     goto yy55;
-yy493:
+yy501:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 's') goto yy604;
+    if (yych == 's') goto yy618;
     goto yy55;
-yy494:
+yy502:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'c') goto yy605;
+    if (yych == 'c') goto yy619;
     goto yy55;
-yy495:
+yy503:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy606;
+    if (yych == 'e') goto yy620;
     goto yy55;
-yy496:
+yy504:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'p') goto yy607;
+    if (yych == 'p') goto yy621;
     goto yy55;
-yy497:
+yy505:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'a') goto yy608;
+    if (yych == 'a') goto yy622;
     goto yy55;
-yy498:
+yy506:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'q') goto yy609;
+    if (yych == 'q') goto yy623;
     goto yy55;
-yy499:
+yy507:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'a') goto yy611;
+    if (yych == 'a') goto yy625;
     goto yy55;
-yy500:
+yy508:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy612;
+    if (yych == 'e') goto yy626;
     goto yy55;
-yy501:
+yy509:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'i') goto yy613;
+    if (yych == 'i') goto yy627;
     goto yy55;
-yy502:
+yy510:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 's') goto yy614;
+    if (yych == 's') goto yy628;
     goto yy55;
-yy503:
+yy511:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy615;
+    if (yych == 't') goto yy629;
     goto yy55;
-yy504:
+yy512:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'r') goto yy616;
+    if (yych == 'i') goto yy630;
     goto yy55;
-yy505:
+yy513:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy617;
+    if (yych == 'r') goto yy631;
     goto yy55;
-yy506:
+yy514:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy619;
+    if (yych == 't') goto yy632;
     goto yy55;
-yy507:
+yy515:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'o') goto yy620;
+    if (yych == 'e') goto yy634;
     goto yy55;
-yy508:
+yy516:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'i') goto yy621;
+    if (yych == 'o') goto yy635;
     goto yy55;
-yy509:
+yy517:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'c') goto yy622;
+    if (yych == 'i') goto yy636;
     goto yy55;
-yy510:
+yy518:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'c') goto yy623;
+    if (yych == 'c') goto yy637;
     goto yy55;
-yy511:
+yy519:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'l') goto yy624;
+    if (yych == 'c') goto yy638;
     goto yy55;
-yy512:
+yy520:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'l') goto yy639;
+    goto yy55;
+yy521:
     yyaccept = 31;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -3633,21 +3734,21 @@ yy512:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy513:
-#line 105 "strict_cpp.re"
+yy522:
+#line 113 "strict_cpp.re"
     { BOOST_WAVE_RET(T_THIS); }
-#line 3640 "strict_cpp_re.inc"
-yy514:
+#line 3741 "strict_cpp_re.inc"
+yy523:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'a') goto yy625;
+    if (yych == 'a') goto yy640;
     goto yy55;
-yy515:
+yy524:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'w') goto yy626;
+    if (yych == 'w') goto yy641;
     goto yy55;
-yy516:
+yy525:
     yyaccept = 32;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -3655,42 +3756,42 @@ yy516:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy517:
-#line 108 "strict_cpp.re"
+yy526:
+#line 116 "strict_cpp.re"
     { BOOST_WAVE_RET(T_TRUE); }
-#line 3662 "strict_cpp_re.inc"
-yy518:
+#line 3763 "strict_cpp_re.inc"
+yy527:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'h') {
-        if (yych == 'd') goto yy628;
+        if (yych == 'd') goto yy643;
         goto yy55;
     } else {
-        if (yych <= 'i') goto yy629;
-        if (yych == 'n') goto yy630;
+        if (yych <= 'i') goto yy644;
+        if (yych == 'n') goto yy645;
         goto yy55;
     }
-yy519:
+yy528:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'n') goto yy631;
+    if (yych == 'n') goto yy646;
     goto yy55;
-yy520:
+yy529:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'g') goto yy633;
+    if (yych == 'g') goto yy648;
     goto yy55;
-yy521:
+yy530:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'g') goto yy634;
+    if (yych == 'g') goto yy649;
     goto yy55;
-yy522:
+yy531:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'u') goto yy636;
+    if (yych == 'u') goto yy651;
     goto yy55;
-yy523:
+yy532:
     yyaccept = 33;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -3698,36 +3799,36 @@ yy523:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy524:
-#line 117 "strict_cpp.re"
+yy533:
+#line 125 "strict_cpp.re"
     { BOOST_WAVE_RET(T_VOID); }
-#line 3705 "strict_cpp_re.inc"
-yy525:
+#line 3806 "strict_cpp_re.inc"
+yy534:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy637;
+    if (yych == 't') goto yy652;
     goto yy55;
-yy526:
+yy535:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'r') goto yy638;
+    if (yych == 'r') goto yy653;
     goto yy55;
-yy527:
+yy536:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy639;
+    if (yych == 'e') goto yy654;
     goto yy55;
-yy528:
+yy537:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy641;
+    if (yych == 'e') goto yy656;
     goto yy55;
-yy529:
+yy538:
     ++YYCURSOR;
-#line 232 "strict_cpp.re"
+#line 250 "strict_cpp.re"
     { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
-#line 3730 "strict_cpp_re.inc"
-yy531:
+#line 3831 "strict_cpp_re.inc"
+yy540:
     yyaccept = 34;
     YYMARKER = ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
@@ -3739,21 +3840,21 @@ yy531:
     if (yych <= '"') goto yy101;
     if (yych <= '?') goto yy103;
     goto yy104;
-yy532:
+yy541:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
         if (yych <= '/') goto yy100;
-        if (yych <= '9') goto yy642;
+        if (yych <= '9') goto yy657;
         goto yy100;
     } else {
-        if (yych <= 'F') goto yy642;
+        if (yych <= 'F') goto yy657;
         if (yych <= '`') goto yy100;
-        if (yych <= 'f') goto yy642;
+        if (yych <= 'f') goto yy657;
         goto yy100;
     }
-yy533:
+yy542:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
@@ -3767,66 +3868,66 @@ yy533:
         if (yych <= 'f') goto yy259;
         goto yy100;
     }
-yy534:
+yy543:
     yych = *++YYCURSOR;
-    if (yych == 'n') goto yy643;
+    if (yych == 'n') goto yy658;
     goto yy100;
-yy535:
+yy544:
     ++YYCURSOR;
-#line 311 "strict_cpp.re"
+#line 329 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PP_ELIF); }
-#line 3779 "strict_cpp_re.inc"
-yy537:
+#line 3880 "strict_cpp_re.inc"
+yy546:
     ++YYCURSOR;
-#line 310 "strict_cpp.re"
+#line 328 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PP_ELSE); }
-#line 3784 "strict_cpp_re.inc"
-yy539:
+#line 3885 "strict_cpp_re.inc"
+yy548:
     yych = *++YYCURSOR;
-    if (yych == 'f') goto yy644;
+    if (yych == 'f') goto yy659;
     goto yy100;
-yy540:
+yy549:
     yych = *++YYCURSOR;
-    if (yych == 'e') goto yy646;
+    if (yych == 'e') goto yy661;
     goto yy100;
-yy541:
+yy550:
     yych = *++YYCURSOR;
-    if (yych == 'r') goto yy647;
+    if (yych == 'r') goto yy662;
     goto yy100;
-yy542:
+yy551:
     yych = *++YYCURSOR;
-    if (yych == 'f') goto yy649;
+    if (yych == 'f') goto yy664;
     goto yy100;
-yy543:
+yy552:
     yych = *++YYCURSOR;
-    if (yych == 'e') goto yy651;
+    if (yych == 'e') goto yy666;
     goto yy100;
-yy544:
+yy553:
     yych = *++YYCURSOR;
-    if (yych == 'u') goto yy652;
+    if (yych == 'u') goto yy667;
     goto yy100;
-yy545:
+yy554:
     ++YYCURSOR;
-#line 315 "strict_cpp.re"
+#line 333 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PP_LINE); }
-#line 3813 "strict_cpp_re.inc"
-yy547:
+#line 3914 "strict_cpp_re.inc"
+yy556:
     yych = *++YYCURSOR;
-    if (yych == 'm') goto yy653;
+    if (yych == 'm') goto yy668;
     goto yy100;
-yy548:
+yy557:
     yych = *++YYCURSOR;
-    if (yych == 'o') goto yy654;
+    if (yych == 'o') goto yy669;
     goto yy100;
-yy549:
+yy558:
     yych = *++YYCURSOR;
-    if (yych == 'f') goto yy655;
+    if (yych == 'f') goto yy670;
     goto yy100;
-yy550:
+yy559:
     yych = *++YYCURSOR;
-    if (yych == 'i') goto yy657;
+    if (yych == 'i') goto yy672;
     goto yy100;
-yy551:
+yy560:
     yyaccept = 35;
     YYMARKER = ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
@@ -3838,21 +3939,21 @@ yy551:
     if (yych <= '\'') goto yy276;
     if (yych <= '?') goto yy131;
     goto yy132;
-yy552:
+yy561:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
         if (yych <= '/') goto yy100;
-        if (yych <= '9') goto yy658;
+        if (yych <= '9') goto yy673;
         goto yy100;
     } else {
-        if (yych <= 'F') goto yy658;
+        if (yych <= 'F') goto yy673;
         if (yych <= '`') goto yy100;
-        if (yych <= 'f') goto yy658;
+        if (yych <= 'f') goto yy673;
         goto yy100;
     }
-yy553:
+yy562:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
@@ -3866,15 +3967,15 @@ yy553:
         if (yych <= 'f') goto yy282;
         goto yy100;
     }
-yy554:
+yy563:
     yych = *++YYCURSOR;
-    if (yych == '!') goto yy659;
+    if (yych == '!') goto yy674;
     goto yy100;
-yy555:
+yy564:
     yych = *++YYCURSOR;
-    if (yych == '=') goto yy661;
+    if (yych == '=') goto yy676;
     goto yy100;
-yy556:
+yy565:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
@@ -3888,7 +3989,7 @@ yy556:
         if (yych <= 'f') goto yy184;
         goto yy100;
     }
-yy557:
+yy566:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
@@ -3902,32 +4003,32 @@ yy557:
         if (yych <= 'f') goto yy54;
         goto yy100;
     }
-yy558:
+yy567:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy663;
+    if (yych == 'e') goto yy678;
     goto yy55;
-yy559:
+yy568:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'a') goto yy664;
+    if (yych == 'a') goto yy679;
     goto yy55;
-yy560:
+yy569:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
     switch (yych) {
-    case '1':    goto yy665;
-    case '3':    goto yy666;
-    case '6':    goto yy667;
-    case '8':    goto yy668;
+    case '1':    goto yy680;
+    case '3':    goto yy681;
+    case '6':    goto yy682;
+    case '8':    goto yy683;
     default:    goto yy55;
     }
-yy561:
+yy570:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'v') goto yy670;
+    if (yych == 'v') goto yy685;
     goto yy55;
-yy562:
+yy571:
     yyaccept = 36;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -3935,57 +4036,57 @@ yy562:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy563:
-#line 131 "strict_cpp.re"
+yy572:
+#line 139 "strict_cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_TRY : T_IDENTIFIER); }
-#line 3942 "strict_cpp_re.inc"
-yy564:
+#line 4043 "strict_cpp_re.inc"
+yy573:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'd') goto yy671;
+    if (yych == 'd') goto yy686;
     goto yy55;
-yy565:
+yy574:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'l') goto yy673;
+    if (yych == 'l') goto yy688;
     goto yy55;
-yy566:
+yy575:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 's') goto yy675;
+    if (yych == 's') goto yy690;
     goto yy55;
-yy567:
+yy576:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'c') goto yy676;
+    if (yych == 'c') goto yy691;
     goto yy55;
-yy568:
+yy577:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'n') goto yy677;
+    if (yych == 'n') goto yy692;
     goto yy55;
-yy569:
+yy578:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'a') goto yy678;
+    if (yych == 'a') goto yy693;
     goto yy55;
-yy570:
+yy579:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'a') goto yy679;
-    if (yych == 'o') goto yy680;
+    if (yych == 'a') goto yy694;
+    if (yych == 'o') goto yy695;
     goto yy55;
-yy571:
+yy580:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'q') goto yy681;
+    if (yych == 'q') goto yy696;
     goto yy55;
-yy572:
+yy581:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'd') goto yy683;
+    if (yych == 'd') goto yy698;
     goto yy55;
-yy573:
+yy582:
     yyaccept = 37;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -3993,11 +4094,11 @@ yy573:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy574:
-#line 196 "strict_cpp.re"
+yy583:
+#line 204 "strict_cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OR_ALT); }
-#line 4000 "strict_cpp_re.inc"
-yy575:
+#line 4101 "strict_cpp_re.inc"
+yy584:
     yyaccept = 38;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4005,11 +4106,11 @@ yy575:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy576:
+yy585:
 #line 52 "strict_cpp.re"
     { BOOST_WAVE_RET(T_BREAK); }
-#line 4012 "strict_cpp_re.inc"
-yy577:
+#line 4113 "strict_cpp_re.inc"
+yy586:
     yyaccept = 39;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4017,21 +4118,26 @@ yy577:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy578:
+yy587:
 #line 54 "strict_cpp.re"
     { BOOST_WAVE_RET(T_CATCH); }
-#line 4024 "strict_cpp_re.inc"
-yy579:
+#line 4125 "strict_cpp_re.inc"
+yy588:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == '6') goto yy685;
+    if (yych == '6') goto yy700;
     goto yy55;
-yy580:
+yy589:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == '2') goto yy686;
+    if (yych == '2') goto yy701;
     goto yy55;
-yy581:
+yy590:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == '_') goto yy702;
+    goto yy55;
+yy591:
     yyaccept = 40;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4039,11 +4145,26 @@ yy581:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy582:
-#line 58 "strict_cpp.re"
+yy592:
+#line 59 "strict_cpp.re"
     { BOOST_WAVE_RET(T_CLASS); }
-#line 4046 "strict_cpp_re.inc"
-yy583:
+#line 4152 "strict_cpp_re.inc"
+yy593:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'a') goto yy703;
+    goto yy55;
+yy594:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 't') goto yy704;
+    goto yy55;
+yy595:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'e') goto yy705;
+    goto yy55;
+yy596:
     yyaccept = 41;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4051,81 +4172,92 @@ yy583:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy584:
-#line 200 "strict_cpp.re"
+yy597:
+#line 208 "strict_cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_COMPL_ALT); }
-#line 4058 "strict_cpp_re.inc"
-yy585:
+#line 4179 "strict_cpp_re.inc"
+yy598:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'p') goto yy706;
+    goto yy55;
+yy599:
     yyaccept = 42;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych <= '[') {
-        if (yych <= '>') {
-            if (yych <= '/') goto yy586;
+    if (yych <= '\\') {
+        if (yych <= '?') {
+            if (yych <= '/') goto yy600;
             if (yych <= '9') goto yy54;
+            if (yych >= '?') goto yy173;
         } else {
-            if (yych <= '?') goto yy173;
-            if (yych <= '@') goto yy586;
+            if (yych <= '@') goto yy600;
             if (yych <= 'Z') goto yy54;
+            if (yych >= '\\') goto yy174;
         }
     } else {
-        if (yych <= '`') {
-            if (yych <= '\\') goto yy174;
-            if (yych == '_') goto yy687;
+        if (yych <= 'd') {
+            if (yych == '_') goto yy707;
+            if (yych >= 'a') goto yy54;
         } else {
-            if (yych == 'e') goto yy688;
-            if (yych <= 'z') goto yy54;
+            if (yych <= 'h') {
+                if (yych <= 'e') goto yy708;
+                goto yy54;
+            } else {
+                if (yych <= 'i') goto yy709;
+                if (yych <= 'z') goto yy54;
+            }
         }
     }
-yy586:
-#line 59 "strict_cpp.re"
+yy600:
+#line 61 "strict_cpp.re"
     { BOOST_WAVE_RET(T_CONST); }
-#line 4083 "strict_cpp_re.inc"
-yy587:
+#line 4215 "strict_cpp_re.inc"
+yy601:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'n') goto yy689;
+    if (yych == 'n') goto yy710;
     goto yy55;
-yy588:
+yy602:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'y') goto yy690;
+    if (yych == 'y') goto yy711;
     goto yy55;
-yy589:
+yy603:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'l') goto yy691;
+    if (yych == 'l') goto yy712;
     goto yy55;
-yy590:
+yy604:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy692;
+    if (yych == 'e') goto yy713;
     goto yy55;
-yy591:
+yy605:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy694;
+    if (yych == 'e') goto yy715;
     goto yy55;
-yy592:
+yy606:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'i') goto yy696;
+    if (yych == 'i') goto yy717;
     goto yy55;
-yy593:
+yy607:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'c') goto yy697;
+    if (yych == 'c') goto yy718;
     goto yy55;
-yy594:
+yy608:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy698;
+    if (yych == 't') goto yy719;
     goto yy55;
-yy595:
+yy609:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'n') goto yy700;
+    if (yych == 'n') goto yy721;
     goto yy55;
-yy596:
+yy610:
     yyaccept = 43;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4133,11 +4265,11 @@ yy596:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy597:
-#line 74 "strict_cpp.re"
+yy611:
+#line 81 "strict_cpp.re"
     { BOOST_WAVE_RET(T_FALSE); }
-#line 4140 "strict_cpp_re.inc"
-yy598:
+#line 4272 "strict_cpp_re.inc"
+yy612:
     yyaccept = 44;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4145,56 +4277,56 @@ yy598:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy599:
-#line 75 "strict_cpp.re"
+yy613:
+#line 82 "strict_cpp.re"
     { BOOST_WAVE_RET(T_FLOAT); }
-#line 4152 "strict_cpp_re.inc"
-yy600:
+#line 4284 "strict_cpp_re.inc"
+yy614:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'd') goto yy702;
+    if (yych == 'd') goto yy723;
     goto yy55;
-yy601:
+yy615:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy704;
+    if (yych == 't') goto yy725;
     goto yy55;
-yy602:
+yy616:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy706;
+    if (yych == 'e') goto yy727;
     goto yy55;
-yy603:
+yy617:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'l') goto yy708;
+    if (yych == 'l') goto yy729;
     goto yy55;
-yy604:
+yy618:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'p') goto yy709;
+    if (yych == 'p') goto yy730;
     goto yy55;
-yy605:
+yy619:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy710;
+    if (yych == 'e') goto yy731;
     goto yy55;
-yy606:
+yy620:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'q') goto yy711;
+    if (yych == 'q') goto yy732;
     goto yy55;
-yy607:
+yy621:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy713;
+    if (yych == 't') goto yy734;
     goto yy55;
-yy608:
+yy622:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy714;
+    if (yych == 't') goto yy735;
     goto yy55;
-yy609:
+yy623:
     yyaccept = 45;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4202,41 +4334,46 @@ yy609:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy610:
-#line 217 "strict_cpp.re"
+yy624:
+#line 225 "strict_cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ORASSIGN_ALT); }
-#line 4209 "strict_cpp_re.inc"
-yy611:
+#line 4341 "strict_cpp_re.inc"
+yy625:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy715;
+    if (yych == 't') goto yy736;
     goto yy55;
-yy612:
+yy626:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'c') goto yy716;
+    if (yych == 'c') goto yy737;
     goto yy55;
-yy613:
+yy627:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'c') goto yy717;
+    if (yych == 'c') goto yy738;
     goto yy55;
-yy614:
+yy628:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy719;
+    if (yych == 't') goto yy740;
     goto yy55;
-yy615:
+yy629:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy720;
+    if (yych == 'e') goto yy741;
     goto yy55;
-yy616:
+yy630:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'n') goto yy721;
+    if (yych == 'r') goto yy742;
     goto yy55;
-yy617:
+yy631:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'n') goto yy743;
+    goto yy55;
+yy632:
     yyaccept = 46;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4244,46 +4381,46 @@ yy617:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy618:
-#line 96 "strict_cpp.re"
+yy633:
+#line 104 "strict_cpp.re"
     { BOOST_WAVE_RET(T_SHORT); }
-#line 4251 "strict_cpp_re.inc"
-yy619:
+#line 4388 "strict_cpp_re.inc"
+yy634:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'd') goto yy723;
+    if (yych == 'd') goto yy745;
     goto yy55;
-yy620:
+yy635:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'f') goto yy725;
+    if (yych == 'f') goto yy747;
     goto yy55;
-yy621:
+yy636:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'c') goto yy727;
+    if (yych == 'c') goto yy749;
     goto yy55;
-yy622:
+yy637:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy729;
+    if (yych == 't') goto yy751;
     goto yy55;
-yy623:
+yy638:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'h') goto yy731;
+    if (yych == 'h') goto yy753;
     goto yy55;
-yy624:
+yy639:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'a') goto yy733;
+    if (yych == 'a') goto yy755;
     goto yy55;
-yy625:
+yy640:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'd') goto yy734;
+    if (yych == 'd') goto yy756;
     goto yy55;
-yy626:
+yy641:
     yyaccept = 47;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4291,26 +4428,26 @@ yy626:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy627:
-#line 107 "strict_cpp.re"
+yy642:
+#line 115 "strict_cpp.re"
     { BOOST_WAVE_RET(T_THROW); }
-#line 4298 "strict_cpp_re.inc"
-yy628:
+#line 4435 "strict_cpp_re.inc"
+yy643:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy735;
+    if (yych == 'e') goto yy757;
     goto yy55;
-yy629:
+yy644:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'd') goto yy736;
+    if (yych == 'd') goto yy758;
     goto yy55;
-yy630:
+yy645:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'a') goto yy738;
+    if (yych == 'a') goto yy760;
     goto yy55;
-yy631:
+yy646:
     yyaccept = 48;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4318,16 +4455,16 @@ yy631:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy632:
-#line 113 "strict_cpp.re"
+yy647:
+#line 121 "strict_cpp.re"
     { BOOST_WAVE_RET(T_UNION); }
-#line 4325 "strict_cpp_re.inc"
-yy633:
+#line 4462 "strict_cpp_re.inc"
+yy648:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'n') goto yy739;
+    if (yych == 'n') goto yy761;
     goto yy55;
-yy634:
+yy649:
     yyaccept = 49;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4335,26 +4472,26 @@ yy634:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy635:
-#line 115 "strict_cpp.re"
+yy650:
+#line 123 "strict_cpp.re"
     { BOOST_WAVE_RET(T_USING); }
-#line 4342 "strict_cpp_re.inc"
-yy636:
+#line 4479 "strict_cpp_re.inc"
+yy651:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'a') goto yy740;
+    if (yych == 'a') goto yy762;
     goto yy55;
-yy637:
+yy652:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'i') goto yy741;
+    if (yych == 'i') goto yy763;
     goto yy55;
-yy638:
+yy653:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == '_') goto yy742;
+    if (yych == '_') goto yy764;
     goto yy55;
-yy639:
+yy654:
     yyaccept = 50;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4362,16 +4499,16 @@ yy639:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy640:
-#line 120 "strict_cpp.re"
+yy655:
+#line 128 "strict_cpp.re"
     { BOOST_WAVE_RET(T_WHILE); }
-#line 4369 "strict_cpp_re.inc"
-yy641:
+#line 4506 "strict_cpp_re.inc"
+yy656:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'q') goto yy743;
+    if (yych == 'q') goto yy765;
     goto yy55;
-yy642:
+yy657:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
@@ -4385,55 +4522,55 @@ yy642:
         if (yych <= 'f') goto yy258;
         goto yy100;
     }
-yy643:
+yy658:
     yych = *++YYCURSOR;
-    if (yych == 'e') goto yy745;
+    if (yych == 'e') goto yy767;
     goto yy100;
-yy644:
+yy659:
     ++YYCURSOR;
-#line 312 "strict_cpp.re"
+#line 330 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PP_ENDIF); }
-#line 4397 "strict_cpp_re.inc"
-yy646:
+#line 4534 "strict_cpp_re.inc"
+yy661:
     yych = *++YYCURSOR;
-    if (yych == 'g') goto yy747;
+    if (yych == 'g') goto yy769;
     goto yy100;
-yy647:
+yy662:
     ++YYCURSOR;
-#line 316 "strict_cpp.re"
+#line 334 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PP_ERROR); }
-#line 4406 "strict_cpp_re.inc"
-yy649:
+#line 4543 "strict_cpp_re.inc"
+yy664:
     ++YYCURSOR;
-#line 308 "strict_cpp.re"
+#line 326 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PP_IFDEF); }
-#line 4411 "strict_cpp_re.inc"
-yy651:
+#line 4548 "strict_cpp_re.inc"
+yy666:
     yych = *++YYCURSOR;
-    if (yych == 'f') goto yy748;
+    if (yych == 'f') goto yy770;
     goto yy100;
-yy652:
+yy667:
     yych = *++YYCURSOR;
-    if (yych == 'd') goto yy750;
+    if (yych == 'd') goto yy772;
     goto yy100;
-yy653:
+yy668:
     yych = *++YYCURSOR;
-    if (yych == 'a') goto yy751;
+    if (yych == 'a') goto yy773;
     goto yy100;
-yy654:
+yy669:
     yych = *++YYCURSOR;
-    if (yych == 'n') goto yy753;
+    if (yych == 'n') goto yy775;
     goto yy100;
-yy655:
+yy670:
     ++YYCURSOR;
-#line 314 "strict_cpp.re"
+#line 332 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PP_UNDEF); }
-#line 4432 "strict_cpp_re.inc"
-yy657:
+#line 4569 "strict_cpp_re.inc"
+yy672:
     yych = *++YYCURSOR;
-    if (yych == 'n') goto yy755;
+    if (yych == 'n') goto yy777;
     goto yy100;
-yy658:
+yy673:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
@@ -4447,42 +4584,42 @@ yy658:
         if (yych <= 'f') goto yy281;
         goto yy100;
     }
-yy659:
+yy674:
     ++YYCURSOR;
-#line 234 "strict_cpp.re"
+#line 252 "strict_cpp.re"
     { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
-#line 4455 "strict_cpp_re.inc"
-yy661:
+#line 4592 "strict_cpp_re.inc"
+yy676:
     ++YYCURSOR;
-#line 156 "strict_cpp.re"
+#line 164 "strict_cpp.re"
     { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
-#line 4460 "strict_cpp_re.inc"
-yy663:
+#line 4597 "strict_cpp_re.inc"
+yy678:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'p') goto yy756;
+    if (yych == 'p') goto yy778;
     goto yy55;
-yy664:
+yy679:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'l') goto yy757;
+    if (yych == 'l') goto yy779;
     goto yy55;
-yy665:
+yy680:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == '6') goto yy758;
+    if (yych == '6') goto yy780;
     goto yy55;
-yy666:
+yy681:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == '2') goto yy760;
+    if (yych == '2') goto yy782;
     goto yy55;
-yy667:
+yy682:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == '4') goto yy762;
+    if (yych == '4') goto yy784;
     goto yy55;
-yy668:
+yy683:
     yyaccept = 51;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4490,16 +4627,16 @@ yy668:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy669:
-#line 122 "strict_cpp.re"
+yy684:
+#line 130 "strict_cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT8 : T_IDENTIFIER); }
-#line 4497 "strict_cpp_re.inc"
-yy670:
+#line 4634 "strict_cpp_re.inc"
+yy685:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy764;
+    if (yych == 'e') goto yy786;
     goto yy55;
-yy671:
+yy686:
     yyaccept = 52;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4507,11 +4644,11 @@ yy671:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy672:
-#line 126 "strict_cpp.re"
+yy687:
+#line 134 "strict_cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_BASED : T_IDENTIFIER); }
-#line 4514 "strict_cpp_re.inc"
-yy673:
+#line 4651 "strict_cpp_re.inc"
+yy688:
     yyaccept = 53;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4519,41 +4656,41 @@ yy673:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy674:
-#line 128 "strict_cpp.re"
+yy689:
+#line 136 "strict_cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_CDECL : T_IDENTIFIER); }
-#line 4526 "strict_cpp_re.inc"
-yy675:
+#line 4663 "strict_cpp_re.inc"
+yy690:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'p') goto yy766;
+    if (yych == 'p') goto yy788;
     goto yy55;
-yy676:
+yy691:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'a') goto yy767;
+    if (yych == 'a') goto yy789;
     goto yy55;
-yy677:
+yy692:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy768;
+    if (yych == 'e') goto yy790;
     goto yy55;
-yy678:
+yy693:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'l') goto yy770;
+    if (yych == 'l') goto yy792;
     goto yy55;
-yy679:
+yy694:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 's') goto yy771;
+    if (yych == 's') goto yy793;
     goto yy55;
-yy680:
+yy695:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'f') goto yy773;
+    if (yych == 'f') goto yy795;
     goto yy55;
-yy681:
+yy696:
     yyaccept = 54;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4561,11 +4698,11 @@ yy681:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy682:
-#line 215 "strict_cpp.re"
+yy697:
+#line 223 "strict_cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDASSIGN_ALT); }
-#line 4568 "strict_cpp_re.inc"
-yy683:
+#line 4705 "strict_cpp_re.inc"
+yy698:
     yyaccept = 55;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4573,46 +4710,77 @@ yy683:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy684:
-#line 194 "strict_cpp.re"
+yy699:
+#line 202 "strict_cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_AND_ALT); }
-#line 4580 "strict_cpp_re.inc"
-yy685:
+#line 4717 "strict_cpp_re.inc"
+yy700:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == '_') goto yy775;
+    if (yych == '_') goto yy797;
     goto yy55;
-yy686:
+yy701:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == '_') goto yy776;
+    if (yych == '_') goto yy798;
     goto yy55;
-yy687:
+yy702:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'c') goto yy777;
+    if (yych == 't') goto yy799;
     goto yy55;
-yy688:
+yy703:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'x') goto yy778;
+    if (yych == 'i') goto yy801;
     goto yy55;
-yy689:
+yy704:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'u') goto yy779;
+    if (yych == 'u') goto yy802;
     goto yy55;
-yy690:
+yy705:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'p') goto yy780;
+    if (yych == 'l') goto yy803;
     goto yy55;
-yy691:
+yy706:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy781;
+    if (yych == 't') goto yy804;
     goto yy55;
-yy692:
+yy707:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'c') goto yy806;
+    goto yy55;
+yy708:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'v') goto yy807;
+    if (yych == 'x') goto yy808;
+    goto yy55;
+yy709:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'n') goto yy809;
+    goto yy55;
+yy710:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'u') goto yy810;
+    goto yy55;
+yy711:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'p') goto yy811;
+    goto yy55;
+yy712:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 't') goto yy812;
+    goto yy55;
+yy713:
     yyaccept = 56;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4620,11 +4788,11 @@ yy692:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy693:
-#line 65 "strict_cpp.re"
+yy714:
+#line 72 "strict_cpp.re"
     { BOOST_WAVE_RET(T_DELETE); }
-#line 4627 "strict_cpp_re.inc"
-yy694:
+#line 4795 "strict_cpp_re.inc"
+yy715:
     yyaccept = 57;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4632,21 +4800,21 @@ yy694:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy695:
-#line 67 "strict_cpp.re"
+yy716:
+#line 74 "strict_cpp.re"
     { BOOST_WAVE_RET(T_DOUBLE); }
-#line 4639 "strict_cpp_re.inc"
-yy696:
+#line 4807 "strict_cpp_re.inc"
+yy717:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'c') goto yy783;
+    if (yych == 'c') goto yy814;
     goto yy55;
-yy697:
+yy718:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'i') goto yy784;
+    if (yych == 'i') goto yy815;
     goto yy55;
-yy698:
+yy719:
     yyaccept = 58;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4654,11 +4822,11 @@ yy698:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy699:
-#line 72 "strict_cpp.re"
+yy720:
+#line 79 "strict_cpp.re"
     { BOOST_WAVE_RET(T_EXPORT); }
-#line 4661 "strict_cpp_re.inc"
-yy700:
+#line 4829 "strict_cpp_re.inc"
+yy721:
     yyaccept = 59;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4666,11 +4834,11 @@ yy700:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy701:
-#line 73 "strict_cpp.re"
+yy722:
+#line 80 "strict_cpp.re"
     { BOOST_WAVE_RET(T_EXTERN); }
-#line 4673 "strict_cpp_re.inc"
-yy702:
+#line 4841 "strict_cpp_re.inc"
+yy723:
     yyaccept = 60;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4678,11 +4846,11 @@ yy702:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy703:
-#line 77 "strict_cpp.re"
+yy724:
+#line 84 "strict_cpp.re"
     { BOOST_WAVE_RET(T_FRIEND); }
-#line 4685 "strict_cpp_re.inc"
-yy704:
+#line 4853 "strict_cpp_re.inc"
+yy725:
     yyaccept = 61;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4690,11 +4858,11 @@ yy704:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy705:
-#line 80 "strict_cpp.re"
+yy726:
+#line 87 "strict_cpp.re"
     { BOOST_WAVE_RET(s->enable_import_keyword ? T_IMPORT : T_IDENTIFIER); }
-#line 4697 "strict_cpp_re.inc"
-yy706:
+#line 4865 "strict_cpp_re.inc"
+yy727:
     yyaccept = 62;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4702,26 +4870,26 @@ yy706:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy707:
-#line 81 "strict_cpp.re"
+yy728:
+#line 88 "strict_cpp.re"
     { BOOST_WAVE_RET(T_INLINE); }
-#line 4709 "strict_cpp_re.inc"
-yy708:
+#line 4877 "strict_cpp_re.inc"
+yy729:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy785;
+    if (yych == 'e') goto yy816;
     goto yy55;
-yy709:
+yy730:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'a') goto yy787;
+    if (yych == 'a') goto yy818;
     goto yy55;
-yy710:
+yy731:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'p') goto yy788;
+    if (yych == 'p') goto yy819;
     goto yy55;
-yy711:
+yy732:
     yyaccept = 63;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4729,31 +4897,31 @@ yy711:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy712:
-#line 225 "strict_cpp.re"
+yy733:
+#line 233 "strict_cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOTEQUAL_ALT); }
-#line 4736 "strict_cpp_re.inc"
-yy713:
+#line 4904 "strict_cpp_re.inc"
+yy734:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'r') goto yy789;
+    if (yych == 'r') goto yy820;
     goto yy55;
-yy714:
+yy735:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'o') goto yy791;
+    if (yych == 'o') goto yy822;
     goto yy55;
-yy715:
+yy736:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy792;
+    if (yych == 'e') goto yy823;
     goto yy55;
-yy716:
+yy737:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy794;
+    if (yych == 't') goto yy825;
     goto yy55;
-yy717:
+yy738:
     yyaccept = 64;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4761,21 +4929,26 @@ yy717:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy718:
-#line 92 "strict_cpp.re"
+yy739:
+#line 99 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PUBLIC); }
-#line 4768 "strict_cpp_re.inc"
-yy719:
+#line 4936 "strict_cpp_re.inc"
+yy740:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy795;
+    if (yych == 'e') goto yy826;
     goto yy55;
-yy720:
+yy741:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'r') goto yy796;
+    if (yych == 'r') goto yy827;
     goto yy55;
-yy721:
+yy742:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'e') goto yy828;
+    goto yy55;
+yy743:
     yyaccept = 65;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4783,11 +4956,11 @@ yy721:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy722:
-#line 95 "strict_cpp.re"
+yy744:
+#line 103 "strict_cpp.re"
     { BOOST_WAVE_RET(T_RETURN); }
-#line 4790 "strict_cpp_re.inc"
-yy723:
+#line 4963 "strict_cpp_re.inc"
+yy745:
     yyaccept = 66;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4795,11 +4968,11 @@ yy723:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy724:
-#line 97 "strict_cpp.re"
+yy746:
+#line 105 "strict_cpp.re"
     { BOOST_WAVE_RET(T_SIGNED); }
-#line 4802 "strict_cpp_re.inc"
-yy725:
+#line 4975 "strict_cpp_re.inc"
+yy747:
     yyaccept = 67;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4807,16 +4980,16 @@ yy725:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy726:
-#line 98 "strict_cpp.re"
+yy748:
+#line 106 "strict_cpp.re"
     { BOOST_WAVE_RET(T_SIZEOF); }
-#line 4814 "strict_cpp_re.inc"
-yy727:
+#line 4987 "strict_cpp_re.inc"
+yy749:
     yyaccept = 68;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'Z') {
         if (yych <= '>') {
-            if (yych <= '/') goto yy728;
+            if (yych <= '/') goto yy750;
             if (yych <= '9') goto yy54;
         } else {
             if (yych <= '?') goto yy173;
@@ -4826,16 +4999,16 @@ yy727:
         if (yych <= '^') {
             if (yych == '\\') goto yy174;
         } else {
-            if (yych <= '_') goto yy797;
-            if (yych <= '`') goto yy728;
+            if (yych <= '_') goto yy829;
+            if (yych <= '`') goto yy750;
             if (yych <= 'z') goto yy54;
         }
     }
-yy728:
-#line 99 "strict_cpp.re"
+yy750:
+#line 107 "strict_cpp.re"
     { BOOST_WAVE_RET(T_STATIC); }
-#line 4838 "strict_cpp_re.inc"
-yy729:
+#line 5011 "strict_cpp_re.inc"
+yy751:
     yyaccept = 69;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4843,11 +5016,11 @@ yy729:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy730:
-#line 102 "strict_cpp.re"
+yy752:
+#line 110 "strict_cpp.re"
     { BOOST_WAVE_RET(T_STRUCT); }
-#line 4850 "strict_cpp_re.inc"
-yy731:
+#line 5023 "strict_cpp_re.inc"
+yy753:
     yyaccept = 70;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4855,26 +5028,26 @@ yy731:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy732:
-#line 103 "strict_cpp.re"
+yy754:
+#line 111 "strict_cpp.re"
     { BOOST_WAVE_RET(T_SWITCH); }
-#line 4862 "strict_cpp_re.inc"
-yy733:
+#line 5035 "strict_cpp_re.inc"
+yy755:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy798;
+    if (yych == 't') goto yy830;
     goto yy55;
-yy734:
+yy756:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == '_') goto yy799;
+    if (yych == '_') goto yy831;
     goto yy55;
-yy735:
+yy757:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'f') goto yy800;
+    if (yych == 'f') goto yy832;
     goto yy55;
-yy736:
+yy758:
     yyaccept = 71;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4882,36 +5055,36 @@ yy736:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy737:
-#line 111 "strict_cpp.re"
+yy759:
+#line 119 "strict_cpp.re"
     { BOOST_WAVE_RET(T_TYPEID); }
-#line 4889 "strict_cpp_re.inc"
-yy738:
+#line 5062 "strict_cpp_re.inc"
+yy760:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'm') goto yy802;
+    if (yych == 'm') goto yy834;
     goto yy55;
-yy739:
+yy761:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy803;
+    if (yych == 'e') goto yy835;
     goto yy55;
-yy740:
+yy762:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'l') goto yy804;
+    if (yych == 'l') goto yy836;
     goto yy55;
-yy741:
+yy763:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'l') goto yy806;
+    if (yych == 'l') goto yy838;
     goto yy55;
-yy742:
+yy764:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy807;
+    if (yych == 't') goto yy839;
     goto yy55;
-yy743:
+yy765:
     yyaccept = 72;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4919,53 +5092,53 @@ yy743:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy744:
-#line 212 "strict_cpp.re"
+yy766:
+#line 220 "strict_cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XORASSIGN_ALT); }
-#line 4926 "strict_cpp_re.inc"
-yy745:
+#line 5099 "strict_cpp_re.inc"
+yy767:
     ++YYCURSOR;
-#line 313 "strict_cpp.re"
+#line 331 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PP_DEFINE); }
-#line 4931 "strict_cpp_re.inc"
-yy747:
+#line 5104 "strict_cpp_re.inc"
+yy769:
     yych = *++YYCURSOR;
-    if (yych == 'i') goto yy809;
+    if (yych == 'i') goto yy841;
     goto yy100;
-yy748:
+yy770:
     ++YYCURSOR;
-#line 309 "strict_cpp.re"
+#line 327 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PP_IFNDEF); }
-#line 4940 "strict_cpp_re.inc"
-yy750:
+#line 5113 "strict_cpp_re.inc"
+yy772:
     yych = *++YYCURSOR;
-    if (yych == 'e') goto yy810;
+    if (yych == 'e') goto yy842;
     goto yy100;
-yy751:
+yy773:
     ++YYCURSOR;
-#line 317 "strict_cpp.re"
+#line 335 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PP_PRAGMA); }
-#line 4949 "strict_cpp_re.inc"
-yy753:
+#line 5122 "strict_cpp_re.inc"
+yy775:
     ++YYCURSOR;
-#line 321 "strict_cpp.re"
+#line 339 "strict_cpp.re"
     { BOOST_WAVE_RET(T_MSEXT_PP_REGION); }
-#line 4954 "strict_cpp_re.inc"
-yy755:
+#line 5127 "strict_cpp_re.inc"
+yy777:
     yych = *++YYCURSOR;
-    if (yych == 'g') goto yy812;
+    if (yych == 'g') goto yy844;
     goto yy100;
-yy756:
+yy778:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy814;
+    if (yych == 't') goto yy846;
     goto yy55;
-yy757:
+yy779:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'l') goto yy816;
+    if (yych == 'l') goto yy848;
     goto yy55;
-yy758:
+yy780:
     yyaccept = 73;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4973,11 +5146,11 @@ yy758:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy759:
-#line 123 "strict_cpp.re"
+yy781:
+#line 131 "strict_cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT16 : T_IDENTIFIER); }
-#line 4980 "strict_cpp_re.inc"
-yy760:
+#line 5153 "strict_cpp_re.inc"
+yy782:
     yyaccept = 74;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4985,11 +5158,11 @@ yy760:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy761:
-#line 124 "strict_cpp.re"
+yy783:
+#line 132 "strict_cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT32 : T_IDENTIFIER); }
-#line 4992 "strict_cpp_re.inc"
-yy762:
+#line 5165 "strict_cpp_re.inc"
+yy784:
     yyaccept = 75;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -4997,11 +5170,11 @@ yy762:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy763:
-#line 125 "strict_cpp.re"
+yy785:
+#line 133 "strict_cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT64 : T_IDENTIFIER); }
-#line 5004 "strict_cpp_re.inc"
-yy764:
+#line 5177 "strict_cpp_re.inc"
+yy786:
     yyaccept = 76;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -5009,21 +5182,21 @@ yy764:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy765:
-#line 134 "strict_cpp.re"
+yy787:
+#line 142 "strict_cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_LEAVE : T_IDENTIFIER); }
-#line 5016 "strict_cpp_re.inc"
-yy766:
+#line 5189 "strict_cpp_re.inc"
+yy788:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy817;
+    if (yych == 'e') goto yy849;
     goto yy55;
-yy767:
+yy789:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'l') goto yy818;
+    if (yych == 'l') goto yy850;
     goto yy55;
-yy768:
+yy790:
     yyaccept = 77;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -5031,16 +5204,16 @@ yy768:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy769:
-#line 135 "strict_cpp.re"
+yy791:
+#line 143 "strict_cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INLINE : T_IDENTIFIER); }
-#line 5038 "strict_cpp_re.inc"
-yy770:
+#line 5211 "strict_cpp_re.inc"
+yy792:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'l') goto yy819;
+    if (yych == 'l') goto yy851;
     goto yy55;
-yy771:
+yy793:
     yyaccept = 78;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -5048,11 +5221,11 @@ yy771:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy772:
+yy794:
 #line 47 "strict_cpp.re"
     { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_ALIGNAS : T_IDENTIFIER); }
-#line 5055 "strict_cpp_re.inc"
-yy773:
+#line 5228 "strict_cpp_re.inc"
+yy795:
     yyaccept = 79;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
@@ -5060,828 +5233,969 @@ yy773:
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy774:
+yy796:
 #line 48 "strict_cpp.re"
     { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_ALIGNOF : T_IDENTIFIER); }
-#line 5067 "strict_cpp_re.inc"
-yy775:
+#line 5240 "strict_cpp_re.inc"
+yy797:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy821;
+    if (yych == 't') goto yy853;
     goto yy55;
-yy776:
+yy798:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy823;
+    if (yych == 't') goto yy855;
     goto yy55;
-yy777:
+yy799:
+    yyaccept = 80;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy800:
+#line 56 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->act_in_cpp2a_mode ? T_CHAR8_T : T_IDENTIFIER); }
+#line 5262 "strict_cpp_re.inc"
+yy801:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'a') goto yy825;
+    if (yych == 't') goto yy857;
     goto yy55;
-yy778:
+yy802:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'p') goto yy826;
+    if (yych == 'r') goto yy859;
     goto yy55;
-yy779:
+yy803:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy827;
+    if (yych == 'd') goto yy860;
     goto yy55;
-yy780:
+yy804:
+    yyaccept = 81;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy805:
+#line 60 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->act_in_cpp2a_mode ? T_CONCEPT : T_IDENTIFIER); }
+#line 5289 "strict_cpp_re.inc"
+yy806:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy829;
+    if (yych == 'a') goto yy862;
     goto yy55;
-yy781:
-    yyaccept = 80;
+yy807:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'a') goto yy863;
+    goto yy55;
+yy808:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'p') goto yy864;
+    goto yy55;
+yy809:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'i') goto yy865;
+    goto yy55;
+yy810:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'e') goto yy866;
+    goto yy55;
+yy811:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'e') goto yy868;
+    goto yy55;
+yy812:
+    yyaccept = 82;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
         goto yy54;
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy782:
-#line 64 "strict_cpp.re"
+yy813:
+#line 71 "strict_cpp.re"
     { BOOST_WAVE_RET(T_DEFAULT); }
-#line 5109 "strict_cpp_re.inc"
-yy783:
+#line 5331 "strict_cpp_re.inc"
+yy814:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == '_') goto yy831;
+    if (yych == '_') goto yy870;
     goto yy55;
-yy784:
+yy815:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy832;
+    if (yych == 't') goto yy871;
     goto yy55;
-yy785:
-    yyaccept = 81;
+yy816:
+    yyaccept = 83;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
         goto yy54;
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy786:
-#line 84 "strict_cpp.re"
+yy817:
+#line 91 "strict_cpp.re"
     { BOOST_WAVE_RET(T_MUTABLE); }
-#line 5131 "strict_cpp_re.inc"
-yy787:
+#line 5353 "strict_cpp_re.inc"
+yy818:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'c') goto yy834;
+    if (yych == 'c') goto yy873;
     goto yy55;
-yy788:
+yy819:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy835;
+    if (yych == 't') goto yy874;
     goto yy55;
-yy789:
-    yyaccept = 82;
+yy820:
+    yyaccept = 84;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
         goto yy54;
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy790:
-#line 88 "strict_cpp.re"
+yy821:
+#line 95 "strict_cpp.re"
     { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_NULLPTR : T_IDENTIFIER); }
-#line 5153 "strict_cpp_re.inc"
-yy791:
+#line 5375 "strict_cpp_re.inc"
+yy822:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'r') goto yy837;
+    if (yych == 'r') goto yy876;
     goto yy55;
-yy792:
-    yyaccept = 83;
+yy823:
+    yyaccept = 85;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
         goto yy54;
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy793:
-#line 90 "strict_cpp.re"
+yy824:
+#line 97 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PRIVATE); }
-#line 5170 "strict_cpp_re.inc"
-yy794:
+#line 5392 "strict_cpp_re.inc"
+yy825:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy839;
+    if (yych == 'e') goto yy878;
     goto yy55;
-yy795:
+yy826:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'r') goto yy840;
+    if (yych == 'r') goto yy879;
     goto yy55;
-yy796:
+yy827:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'p') goto yy842;
+    if (yych == 'p') goto yy881;
     goto yy55;
-yy797:
+yy828:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'a') goto yy843;
-    if (yych == 'c') goto yy844;
+    if (yych == 's') goto yy882;
     goto yy55;
-yy798:
+yy829:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy845;
+    if (yych == 'a') goto yy884;
+    if (yych == 'c') goto yy885;
     goto yy55;
-yy799:
+yy830:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'l') goto yy847;
+    if (yych == 'e') goto yy886;
     goto yy55;
-yy800:
-    yyaccept = 84;
+yy831:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'l') goto yy888;
+    goto yy55;
+yy832:
+    yyaccept = 86;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
         goto yy54;
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy801:
-#line 110 "strict_cpp.re"
+yy833:
+#line 118 "strict_cpp.re"
     { BOOST_WAVE_RET(T_TYPEDEF); }
-#line 5213 "strict_cpp_re.inc"
-yy802:
+#line 5440 "strict_cpp_re.inc"
+yy834:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy848;
+    if (yych == 'e') goto yy889;
     goto yy55;
-yy803:
+yy835:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'd') goto yy850;
+    if (yych == 'd') goto yy891;
     goto yy55;
-yy804:
-    yyaccept = 85;
+yy836:
+    yyaccept = 87;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
         goto yy54;
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy805:
-#line 116 "strict_cpp.re"
+yy837:
+#line 124 "strict_cpp.re"
     { BOOST_WAVE_RET(T_VIRTUAL); }
-#line 5235 "strict_cpp_re.inc"
-yy806:
+#line 5462 "strict_cpp_re.inc"
+yy838:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy852;
+    if (yych == 'e') goto yy893;
     goto yy55;
-yy807:
-    yyaccept = 86;
+yy839:
+    yyaccept = 88;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
         goto yy54;
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy808:
-#line 119 "strict_cpp.re"
+yy840:
+#line 127 "strict_cpp.re"
     { BOOST_WAVE_RET(T_WCHART); }
-#line 5252 "strict_cpp_re.inc"
-yy809:
+#line 5479 "strict_cpp_re.inc"
+yy841:
     yych = *++YYCURSOR;
-    if (yych == 'o') goto yy854;
+    if (yych == 'o') goto yy895;
     goto yy100;
-yy810:
-    yyaccept = 87;
+yy842:
+    yyaccept = 89;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == '_') goto yy860;
-    goto yy856;
-yy811:
-#line 305 "strict_cpp.re"
+    if (yych == '_') goto yy901;
+    goto yy897;
+yy843:
+#line 323 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PP_INCLUDE); }
-#line 5265 "strict_cpp_re.inc"
-yy812:
+#line 5492 "strict_cpp_re.inc"
+yy844:
     ++YYCURSOR;
-#line 319 "strict_cpp.re"
+#line 337 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PP_WARNING); }
-#line 5270 "strict_cpp_re.inc"
-yy814:
-    yyaccept = 88;
+#line 5497 "strict_cpp_re.inc"
+yy846:
+    yyaccept = 90;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
         goto yy54;
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy815:
-#line 132 "strict_cpp.re"
+yy847:
+#line 140 "strict_cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_EXCEPT : T_IDENTIFIER); }
-#line 5282 "strict_cpp_re.inc"
-yy816:
+#line 5509 "strict_cpp_re.inc"
+yy848:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'y') goto yy861;
+    if (yych == 'y') goto yy902;
     goto yy55;
-yy817:
+yy849:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'c') goto yy863;
+    if (yych == 'c') goto yy904;
     goto yy55;
-yy818:
+yy850:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'l') goto yy865;
+    if (yych == 'l') goto yy906;
     goto yy55;
-yy819:
-    yyaccept = 89;
+yy851:
+    yyaccept = 91;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
         goto yy54;
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy820:
-#line 130 "strict_cpp.re"
+yy852:
+#line 138 "strict_cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_STDCALL : T_IDENTIFIER); }
-#line 5309 "strict_cpp_re.inc"
-yy821:
-    yyaccept = 90;
+#line 5536 "strict_cpp_re.inc"
+yy853:
+    yyaccept = 92;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
         goto yy54;
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy822:
-#line 56 "strict_cpp.re"
+yy854:
+#line 57 "strict_cpp.re"
     { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CHAR16_T : T_IDENTIFIER); }
-#line 5321 "strict_cpp_re.inc"
-yy823:
-    yyaccept = 91;
+#line 5548 "strict_cpp_re.inc"
+yy855:
+    yyaccept = 93;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
         goto yy54;
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy824:
-#line 57 "strict_cpp.re"
+yy856:
+#line 58 "strict_cpp.re"
     { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CHAR32_T : T_IDENTIFIER); }
-#line 5333 "strict_cpp_re.inc"
-yy825:
+#line 5560 "strict_cpp_re.inc"
+yy857:
+    yyaccept = 94;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy858:
+#line 67 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->act_in_cpp2a_mode ? T_CO_AWAIT : T_IDENTIFIER); }
+#line 5572 "strict_cpp_re.inc"
+yy859:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 's') goto yy867;
+    if (yych == 'n') goto yy908;
     goto yy55;
-yy826:
+yy860:
+    yyaccept = 95;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy861:
+#line 69 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->act_in_cpp2a_mode ? T_CO_YIELD : T_IDENTIFIER); }
+#line 5589 "strict_cpp_re.inc"
+yy862:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'r') goto yy868;
+    if (yych == 's') goto yy910;
     goto yy55;
-yy827:
-    yyaccept = 92;
+yy863:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'l') goto yy911;
+    goto yy55;
+yy864:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 'r') goto yy913;
+    goto yy55;
+yy865:
+    yyaccept = 4;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yych == 't') goto yy915;
+    goto yy55;
+yy866:
+    yyaccept = 96;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
         goto yy54;
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy828:
-#line 62 "strict_cpp.re"
+yy867:
+#line 66 "strict_cpp.re"
     { BOOST_WAVE_RET(T_CONTINUE); }
-#line 5355 "strict_cpp_re.inc"
-yy829:
-    yyaccept = 93;
+#line 5621 "strict_cpp_re.inc"
+yy868:
+    yyaccept = 97;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
         goto yy54;
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy830:
-#line 63 "strict_cpp.re"
+yy869:
+#line 70 "strict_cpp.re"
     { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_DECLTYPE : T_IDENTIFIER); }
-#line 5367 "strict_cpp_re.inc"
-yy831:
+#line 5633 "strict_cpp_re.inc"
+yy870:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'c') goto yy870;
+    if (yych == 'c') goto yy917;
     goto yy55;
-yy832:
-    yyaccept = 94;
+yy871:
+    yyaccept = 98;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
         goto yy54;
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy833:
-#line 71 "strict_cpp.re"
+yy872:
+#line 78 "strict_cpp.re"
     { BOOST_WAVE_RET(T_EXPLICIT); }
-#line 5384 "strict_cpp_re.inc"
-yy834:
+#line 5650 "strict_cpp_re.inc"
+yy873:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy871;
+    if (yych == 'e') goto yy918;
     goto yy55;
-yy835:
-    yyaccept = 95;
+yy874:
+    yyaccept = 99;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
         goto yy54;
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy836:
-#line 87 "strict_cpp.re"
+yy875:
+#line 94 "strict_cpp.re"
     { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_NOEXCEPT : T_IDENTIFIER); }
-#line 5401 "strict_cpp_re.inc"
-yy837:
-    yyaccept = 96;
+#line 5667 "strict_cpp_re.inc"
+yy876:
+    yyaccept = 100;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
         goto yy54;
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy838:
-#line 89 "strict_cpp.re"
+yy877:
+#line 96 "strict_cpp.re"
     { BOOST_WAVE_RET(T_OPERATOR); }
-#line 5413 "strict_cpp_re.inc"
-yy839:
+#line 5679 "strict_cpp_re.inc"
+yy878:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'd') goto yy873;
+    if (yych == 'd') goto yy920;
     goto yy55;
-yy840:
-    yyaccept = 97;
+yy879:
+    yyaccept = 101;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
         goto yy54;
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy841:
-#line 93 "strict_cpp.re"
+yy880:
+#line 100 "strict_cpp.re"
     { BOOST_WAVE_RET(T_REGISTER); }
-#line 5430 "strict_cpp_re.inc"
-yy842:
+#line 5696 "strict_cpp_re.inc"
+yy881:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'r') goto yy875;
+    if (yych == 'r') goto yy922;
     goto yy55;
-yy843:
+yy882:
+    yyaccept = 102;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy883:
+#line 102 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->act_in_cpp2a_mode ? T_REQUIRES : T_IDENTIFIER); }
+#line 5713 "strict_cpp_re.inc"
+yy884:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 's') goto yy876;
+    if (yych == 's') goto yy923;
     goto yy55;
-yy844:
+yy885:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'a') goto yy877;
+    if (yych == 'a') goto yy924;
     goto yy55;
-yy845:
-    yyaccept = 98;
+yy886:
+    yyaccept = 103;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
         goto yy54;
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy846:
-#line 104 "strict_cpp.re"
+yy887:
+#line 112 "strict_cpp.re"
     { BOOST_WAVE_RET(T_TEMPLATE); }
-#line 5457 "strict_cpp_re.inc"
-yy847:
+#line 5735 "strict_cpp_re.inc"
+yy888:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'o') goto yy878;
+    if (yych == 'o') goto yy925;
     goto yy55;
-yy848:
-    yyaccept = 99;
+yy889:
+    yyaccept = 104;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
         goto yy54;
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy849:
-#line 112 "strict_cpp.re"
+yy890:
+#line 120 "strict_cpp.re"
     { BOOST_WAVE_RET(T_TYPENAME); }
-#line 5474 "strict_cpp_re.inc"
-yy850:
-    yyaccept = 100;
+#line 5752 "strict_cpp_re.inc"
+yy891:
+    yyaccept = 105;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
         goto yy54;
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy851:
-#line 114 "strict_cpp.re"
+yy892:
+#line 122 "strict_cpp.re"
     { BOOST_WAVE_RET(T_UNSIGNED); }
-#line 5486 "strict_cpp_re.inc"
-yy852:
-    yyaccept = 101;
+#line 5764 "strict_cpp_re.inc"
+yy893:
+    yyaccept = 106;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
         goto yy54;
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy853:
-#line 118 "strict_cpp.re"
+yy894:
+#line 126 "strict_cpp.re"
     { BOOST_WAVE_RET(T_VOLATILE); }
-#line 5498 "strict_cpp_re.inc"
-yy854:
+#line 5776 "strict_cpp_re.inc"
+yy895:
     yych = *++YYCURSOR;
-    if (yych == 'n') goto yy879;
+    if (yych == 'n') goto yy926;
     goto yy100;
-yy855:
-    yyaccept = 87;
+yy896:
+    yyaccept = 89;
     YYMARKER = ++YYCURSOR;
     if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
     yych = *YYCURSOR;
-yy856:
+yy897:
     if (yych <= ' ') {
         if (yych <= '\n') {
-            if (yych == '\t') goto yy855;
-            goto yy811;
+            if (yych == '\t') goto yy896;
+            goto yy843;
         } else {
-            if (yych <= '\f') goto yy855;
-            if (yych <= 0x1F) goto yy811;
-            goto yy855;
+            if (yych <= '\f') goto yy896;
+            if (yych <= 0x1F) goto yy843;
+            goto yy896;
         }
     } else {
         if (yych <= '.') {
-            if (yych != '"') goto yy811;
+            if (yych != '"') goto yy843;
         } else {
-            if (yych <= '/') goto yy858;
-            if (yych == '<') goto yy859;
-            goto yy811;
+            if (yych <= '/') goto yy899;
+            if (yych == '<') goto yy900;
+            goto yy843;
         }
     }
     yych = *++YYCURSOR;
     if (yych == '"') goto yy100;
-    goto yy882;
-yy858:
+    goto yy929;
+yy899:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
-    if (yych == '*') goto yy883;
+    if (yych == '*') goto yy930;
     goto yy100;
-yy859:
+yy900:
     yych = *++YYCURSOR;
     if (yych == '>') goto yy100;
-    goto yy886;
-yy860:
+    goto yy933;
+yy901:
     yych = *++YYCURSOR;
-    if (yych == 'n') goto yy887;
+    if (yych == 'n') goto yy934;
     goto yy100;
-yy861:
-    yyaccept = 102;
+yy902:
+    yyaccept = 107;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
         goto yy54;
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy862:
-#line 133 "strict_cpp.re"
+yy903:
+#line 141 "strict_cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FINALLY : T_IDENTIFIER); }
-#line 5555 "strict_cpp_re.inc"
-yy863:
-    yyaccept = 103;
+#line 5833 "strict_cpp_re.inc"
+yy904:
+    yyaccept = 108;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
         goto yy54;
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy864:
-#line 127 "strict_cpp.re"
+yy905:
+#line 135 "strict_cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_DECLSPEC : T_IDENTIFIER); }
-#line 5567 "strict_cpp_re.inc"
-yy865:
-    yyaccept = 104;
+#line 5845 "strict_cpp_re.inc"
+yy906:
+    yyaccept = 109;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
         goto yy54;
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy866:
-#line 129 "strict_cpp.re"
+yy907:
+#line 137 "strict_cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FASTCALL : T_IDENTIFIER); }
-#line 5579 "strict_cpp_re.inc"
-yy867:
+#line 5857 "strict_cpp_re.inc"
+yy908:
+    yyaccept = 110;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy909:
+#line 68 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->act_in_cpp2a_mode ? T_CO_RETURN : T_IDENTIFIER); }
+#line 5869 "strict_cpp_re.inc"
+yy910:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy888;
+    if (yych == 't') goto yy935;
     goto yy55;
-yy868:
-    yyaccept = 105;
+yy911:
+    yyaccept = 111;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
         goto yy54;
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy869:
-#line 60 "strict_cpp.re"
+yy912:
+#line 62 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->act_in_cpp2a_mode ? T_CONSTEVAL : T_IDENTIFIER); }
+#line 5886 "strict_cpp_re.inc"
+yy913:
+    yyaccept = 112;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy914:
+#line 63 "strict_cpp.re"
     { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CONSTEXPR : T_IDENTIFIER); }
-#line 5596 "strict_cpp_re.inc"
-yy870:
+#line 5898 "strict_cpp_re.inc"
+yy915:
+    yyaccept = 113;
+    yych = *(YYMARKER = ++YYCURSOR);
+    if (yybm[256+yych] & 128) {
+        goto yy54;
+    }
+    if (yych == '?') goto yy173;
+    if (yych == '\\') goto yy174;
+yy916:
+#line 64 "strict_cpp.re"
+    { BOOST_WAVE_RET(s->act_in_cpp2a_mode ? T_CONSTINIT : T_IDENTIFIER); }
+#line 5910 "strict_cpp_re.inc"
+yy917:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'a') goto yy890;
+    if (yych == 'a') goto yy937;
     goto yy55;
-yy871:
-    yyaccept = 106;
+yy918:
+    yyaccept = 114;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
         goto yy54;
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy872:
-#line 85 "strict_cpp.re"
+yy919:
+#line 92 "strict_cpp.re"
     { BOOST_WAVE_RET(T_NAMESPACE); }
-#line 5613 "strict_cpp_re.inc"
-yy873:
-    yyaccept = 107;
+#line 5927 "strict_cpp_re.inc"
+yy920:
+    yyaccept = 115;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
         goto yy54;
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy874:
-#line 91 "strict_cpp.re"
+yy921:
+#line 98 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PROTECTED); }
-#line 5625 "strict_cpp_re.inc"
-yy875:
+#line 5939 "strict_cpp_re.inc"
+yy922:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy891;
+    if (yych == 'e') goto yy938;
     goto yy55;
-yy876:
+yy923:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 's') goto yy892;
+    if (yych == 's') goto yy939;
     goto yy55;
-yy877:
+yy924:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 's') goto yy893;
+    if (yych == 's') goto yy940;
     goto yy55;
-yy878:
+yy925:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'c') goto yy894;
+    if (yych == 'c') goto yy941;
     goto yy55;
-yy879:
+yy926:
     ++YYCURSOR;
-#line 322 "strict_cpp.re"
+#line 340 "strict_cpp.re"
     { BOOST_WAVE_RET(T_MSEXT_PP_ENDREGION); }
-#line 5650 "strict_cpp_re.inc"
-yy881:
+#line 5964 "strict_cpp_re.inc"
+yy928:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
-yy882:
+yy929:
     if (yybm[0+yych] & 64) {
-        goto yy881;
+        goto yy928;
     }
     if (yych <= 0x1F) goto yy100;
-    goto yy895;
-yy883:
+    goto yy942;
+yy930:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= 0x1F) {
         if (yych <= 0x08) goto yy100;
-        if (yych <= '\r') goto yy883;
+        if (yych <= '\r') goto yy930;
         goto yy100;
     } else {
-        if (yych == '*') goto yy897;
-        goto yy883;
+        if (yych == '*') goto yy944;
+        goto yy930;
     }
-yy885:
+yy932:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
-yy886:
+yy933:
     if (yybm[0+yych] & 128) {
-        goto yy885;
+        goto yy932;
     }
     if (yych <= 0x1F) goto yy100;
-    goto yy899;
-yy887:
+    goto yy946;
+yy934:
     yych = *++YYCURSOR;
-    if (yych == 'e') goto yy901;
+    if (yych == 'e') goto yy948;
     goto yy100;
-yy888:
-    yyaccept = 108;
+yy935:
+    yyaccept = 116;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
         goto yy54;
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy889:
-#line 61 "strict_cpp.re"
+yy936:
+#line 65 "strict_cpp.re"
     { BOOST_WAVE_RET(T_CONSTCAST); }
-#line 5698 "strict_cpp_re.inc"
-yy890:
+#line 6012 "strict_cpp_re.inc"
+yy937:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 's') goto yy902;
+    if (yych == 's') goto yy949;
     goto yy55;
-yy891:
+yy938:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy903;
+    if (yych == 't') goto yy950;
     goto yy55;
-yy892:
+yy939:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'e') goto yy904;
+    if (yych == 'e') goto yy951;
     goto yy55;
-yy893:
+yy940:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy905;
+    if (yych == 't') goto yy952;
     goto yy55;
-yy894:
+yy941:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'a') goto yy907;
+    if (yych == 'a') goto yy954;
     goto yy55;
-yy895:
+yy942:
     ++YYCURSOR;
-#line 302 "strict_cpp.re"
+#line 320 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PP_QHEADER); }
-#line 5728 "strict_cpp_re.inc"
-yy897:
+#line 6042 "strict_cpp_re.inc"
+yy944:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= ')') {
         if (yych <= 0x08) goto yy100;
-        if (yych <= '\r') goto yy883;
+        if (yych <= '\r') goto yy930;
         if (yych <= 0x1F) goto yy100;
-        goto yy883;
+        goto yy930;
     } else {
-        if (yych <= '*') goto yy897;
-        if (yych == '/') goto yy855;
-        goto yy883;
+        if (yych <= '*') goto yy944;
+        if (yych == '/') goto yy896;
+        goto yy930;
     }
-yy899:
+yy946:
     ++YYCURSOR;
-#line 299 "strict_cpp.re"
+#line 317 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PP_HHEADER); }
-#line 5747 "strict_cpp_re.inc"
-yy901:
+#line 6061 "strict_cpp_re.inc"
+yy948:
     yych = *++YYCURSOR;
-    if (yych == 'x') goto yy908;
+    if (yych == 'x') goto yy955;
     goto yy100;
-yy902:
+yy949:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy909;
+    if (yych == 't') goto yy956;
     goto yy55;
-yy903:
+yy950:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == '_') goto yy911;
+    if (yych == '_') goto yy958;
     goto yy55;
-yy904:
+yy951:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'r') goto yy912;
+    if (yych == 'r') goto yy959;
     goto yy55;
-yy905:
-    yyaccept = 109;
+yy952:
+    yyaccept = 117;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
         goto yy54;
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy906:
-#line 100 "strict_cpp.re"
+yy953:
+#line 108 "strict_cpp.re"
     { BOOST_WAVE_RET(T_STATICCAST); }
-#line 5778 "strict_cpp_re.inc"
-yy907:
+#line 6092 "strict_cpp_re.inc"
+yy954:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'l') goto yy913;
+    if (yych == 'l') goto yy960;
     goto yy55;
-yy908:
+yy955:
     yych = *++YYCURSOR;
-    if (yych == 't') goto yy855;
+    if (yych == 't') goto yy896;
     goto yy100;
-yy909:
-    yyaccept = 110;
+yy956:
+    yyaccept = 118;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
         goto yy54;
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy910:
-#line 68 "strict_cpp.re"
+yy957:
+#line 75 "strict_cpp.re"
     { BOOST_WAVE_RET(T_DYNAMICCAST); }
-#line 5799 "strict_cpp_re.inc"
-yy911:
+#line 6113 "strict_cpp_re.inc"
+yy958:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'c') goto yy915;
+    if (yych == 'c') goto yy962;
     goto yy55;
-yy912:
+yy959:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 't') goto yy916;
+    if (yych == 't') goto yy963;
     goto yy55;
-yy913:
-    yyaccept = 111;
+yy960:
+    yyaccept = 119;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
         goto yy54;
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy914:
-#line 106 "strict_cpp.re"
+yy961:
+#line 114 "strict_cpp.re"
     { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_THREADLOCAL : T_IDENTIFIER); }
-#line 5821 "strict_cpp_re.inc"
-yy915:
+#line 6135 "strict_cpp_re.inc"
+yy962:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'a') goto yy918;
+    if (yych == 'a') goto yy965;
     goto yy55;
-yy916:
-    yyaccept = 112;
+yy963:
+    yyaccept = 120;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
         goto yy54;
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy917:
-#line 101 "strict_cpp.re"
+yy964:
+#line 109 "strict_cpp.re"
     { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_STATICASSERT : T_IDENTIFIER); }
-#line 5838 "strict_cpp_re.inc"
-yy918:
+#line 6152 "strict_cpp_re.inc"
+yy965:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych != 's') goto yy55;
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych != 't') goto yy55;
-    yyaccept = 113;
+    yyaccept = 121;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[256+yych] & 128) {
         goto yy54;
     }
     if (yych == '?') goto yy173;
     if (yych == '\\') goto yy174;
-yy921:
-#line 94 "strict_cpp.re"
+yy968:
+#line 101 "strict_cpp.re"
     { BOOST_WAVE_RET(T_REINTERPRETCAST); }
-#line 5856 "strict_cpp_re.inc"
+#line 6170 "strict_cpp_re.inc"
 }
-#line 354 "strict_cpp.re"
+#line 372 "strict_cpp.re"
 
 
 ccomment:
 
-#line 5863 "strict_cpp_re.inc"
+#line 6177 "strict_cpp_re.inc"
 {
     YYCTYPE yych;
     if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
     yych = *YYCURSOR;
     if (yych <= '\f') {
         if (yych <= 0x08) {
-            if (yych >= 0x01) goto yy926;
+            if (yych >= 0x01) goto yy973;
         } else {
-            if (yych == '\n') goto yy930;
-            goto yy928;
+            if (yych == '\n') goto yy977;
+            goto yy975;
         }
     } else {
         if (yych <= 0x1F) {
-            if (yych <= '\r') goto yy932;
-            goto yy926;
+            if (yych <= '\r') goto yy979;
+            goto yy973;
         } else {
-            if (yych == '*') goto yy933;
-            goto yy928;
+            if (yych == '*') goto yy980;
+            goto yy975;
         }
     }
     ++YYCURSOR;
-#line 372 "strict_cpp.re"
+#line 390 "strict_cpp.re"
     {
         if(cursor == s->eof)
         {
@@ -5897,27 +6211,27 @@ ccomment:
                 "invalid character: '\\000' in input stream");
         }
     }
-#line 5901 "strict_cpp_re.inc"
-yy926:
+#line 6215 "strict_cpp_re.inc"
+yy973:
     ++YYCURSOR;
-#line 389 "strict_cpp.re"
+#line 407 "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 5911 "strict_cpp_re.inc"
-yy928:
+#line 6225 "strict_cpp_re.inc"
+yy975:
     ++YYCURSOR;
-yy929:
-#line 369 "strict_cpp.re"
+yy976:
+#line 387 "strict_cpp.re"
     { goto ccomment; }
-#line 5917 "strict_cpp_re.inc"
-yy930:
+#line 6231 "strict_cpp_re.inc"
+yy977:
     ++YYCURSOR;
-yy931:
-#line 361 "strict_cpp.re"
+yy978:
+#line 379 "strict_cpp.re"
     {
         /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF);*/
         /*s->tok = cursor; */
@@ -5925,43 +6239,43 @@ yy931:
         cursor.column = 1;
         goto ccomment;
     }
-#line 5929 "strict_cpp_re.inc"
-yy932:
+#line 6243 "strict_cpp_re.inc"
+yy979:
     yych = *++YYCURSOR;
-    if (yych == '\n') goto yy930;
-    goto yy931;
-yy933:
+    if (yych == '\n') goto yy977;
+    goto yy978;
+yy980:
     yych = *++YYCURSOR;
-    if (yych != '/') goto yy929;
+    if (yych != '/') goto yy976;
     ++YYCURSOR;
-#line 358 "strict_cpp.re"
+#line 376 "strict_cpp.re"
     { BOOST_WAVE_RET(T_CCOMMENT); }
-#line 5940 "strict_cpp_re.inc"
+#line 6254 "strict_cpp_re.inc"
 }
-#line 395 "strict_cpp.re"
+#line 413 "strict_cpp.re"
 
 
 cppcomment:
 
-#line 5947 "strict_cpp_re.inc"
+#line 6261 "strict_cpp_re.inc"
 {
     YYCTYPE yych;
     if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
     yych = *YYCURSOR;
     if (yych <= '\n') {
-        if (yych <= 0x00) goto yy938;
-        if (yych <= 0x08) goto yy940;
-        if (yych <= '\t') goto yy942;
-        goto yy944;
-    } else {
-        if (yych <= '\f') goto yy942;
-        if (yych <= '\r') goto yy946;
-        if (yych <= 0x1F) goto yy940;
-        goto yy942;
+        if (yych <= 0x00) goto yy985;
+        if (yych <= 0x08) goto yy987;
+        if (yych <= '\t') goto yy989;
+        goto yy991;
+    } else {
+        if (yych <= '\f') goto yy989;
+        if (yych <= '\r') goto yy993;
+        if (yych <= 0x1F) goto yy987;
+        goto yy989;
     }
-yy938:
+yy985:
     ++YYCURSOR;
-#line 411 "strict_cpp.re"
+#line 429 "strict_cpp.re"
     {
         if (s->eof && cursor != s->eof)
         {
@@ -5980,26 +6294,26 @@ yy938:
         }
         BOOST_WAVE_RET(T_CPPCOMMENT);
     }
-#line 5984 "strict_cpp_re.inc"
-yy940:
+#line 6298 "strict_cpp_re.inc"
+yy987:
     ++YYCURSOR;
-#line 431 "strict_cpp.re"
+#line 449 "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 5994 "strict_cpp_re.inc"
-yy942:
+#line 6308 "strict_cpp_re.inc"
+yy989:
     ++YYCURSOR;
-#line 408 "strict_cpp.re"
+#line 426 "strict_cpp.re"
     { goto cppcomment; }
-#line 5999 "strict_cpp_re.inc"
-yy944:
+#line 6313 "strict_cpp_re.inc"
+yy991:
     ++YYCURSOR;
-yy945:
-#line 400 "strict_cpp.re"
+yy992:
+#line 418 "strict_cpp.re"
     {
         /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF); */
         /*s->tok = cursor; */
@@ -6007,13 +6321,13 @@ yy945:
         cursor.column = 1;
         BOOST_WAVE_RET(T_CPPCOMMENT);
     }
-#line 6011 "strict_cpp_re.inc"
-yy946:
+#line 6325 "strict_cpp_re.inc"
+yy993:
     yych = *++YYCURSOR;
-    if (yych == '\n') goto yy944;
-    goto yy945;
+    if (yych == '\n') goto yy991;
+    goto yy992;
 }
-#line 437 "strict_cpp.re"
+#line 455 "strict_cpp.re"
 
 
 /* this subscanner is called whenever a pp_number has been started */
@@ -6025,7 +6339,7 @@ pp_number:
 
     if (s->detect_pp_numbers) {
     
-#line 6029 "strict_cpp_re.inc"
+#line 6343 "strict_cpp_re.inc"
 {
     YYCTYPE yych;
     static const unsigned char yybm[] = {
@@ -6064,210 +6378,215 @@ pp_number:
     };
     if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
     yych = *YYCURSOR;
-    if (yych == '.') goto yy950;
-    if (yych <= '/') goto yy949;
-    if (yych <= '9') goto yy951;
-yy949:
-    YYCURSOR = YYMARKER;
-    goto yy953;
-yy950:
+    if (yych == '.') goto yy998;
+    if (yych <= '/') goto yy996;
+    if (yych <= '9') goto yy999;
+yy996:
+    ++YYCURSOR;
+yy997:
+#line 469 "strict_cpp.re"
+    { BOOST_ASSERT(false); }
+#line 6390 "strict_cpp_re.inc"
+yy998:
     yych = *++YYCURSOR;
-    if (yych <= '/') goto yy949;
-    if (yych >= ':') goto yy949;
-yy951:
+    if (yych <= '/') goto yy997;
+    if (yych >= ':') goto yy997;
+yy999:
     YYMARKER = ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 64) {
-        goto yy951;
+        goto yy999;
     }
     if (yych <= 'E') {
-        if (yych == '?') goto yy954;
-        if (yych >= 'A') goto yy955;
+        if (yych == '?') goto yy1002;
+        if (yych >= 'A') goto yy1004;
     } else {
         if (yych <= '\\') {
-            if (yych >= '\\') goto yy957;
+            if (yych >= '\\') goto yy1006;
         } else {
-            if (yych <= '`') goto yy953;
-            if (yych <= 'e') goto yy955;
+            if (yych <= '`') goto yy1001;
+            if (yych <= 'e') goto yy1004;
         }
     }
-yy953:
-#line 449 "strict_cpp.re"
+yy1001:
+#line 467 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PP_NUMBER); }
-#line 6099 "strict_cpp_re.inc"
-yy954:
+#line 6416 "strict_cpp_re.inc"
+yy1002:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
-    if (yych == '?') goto yy958;
-    goto yy949;
-yy955:
+    if (yych == '?') goto yy1007;
+yy1003:
+    YYCURSOR = YYMARKER;
+    goto yy1001;
+yy1004:
     YYMARKER = ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 128) {
-        goto yy955;
+        goto yy1004;
     }
     if (yych <= '?') {
         if (yych <= '.') {
-            if (yych == '+') goto yy951;
-            if (yych <= ',') goto yy953;
-            goto yy951;
+            if (yych == '+') goto yy999;
+            if (yych <= ',') goto yy1001;
+            goto yy999;
         } else {
-            if (yych <= '/') goto yy953;
-            if (yych <= '9') goto yy951;
-            if (yych <= '>') goto yy953;
-            goto yy954;
+            if (yych <= '/') goto yy1001;
+            if (yych <= '9') goto yy999;
+            if (yych <= '>') goto yy1001;
+            goto yy1002;
         }
     } else {
         if (yych <= '\\') {
-            if (yych <= '@') goto yy953;
-            if (yych <= 'Z') goto yy951;
-            if (yych <= '[') goto yy953;
+            if (yych <= '@') goto yy1001;
+            if (yych <= 'Z') goto yy999;
+            if (yych <= '[') goto yy1001;
         } else {
             if (yych <= '_') {
-                if (yych <= '^') goto yy953;
-                goto yy951;
+                if (yych <= '^') goto yy1001;
+                goto yy999;
             } else {
-                if (yych <= '`') goto yy953;
-                if (yych <= 'z') goto yy951;
-                goto yy953;
+                if (yych <= '`') goto yy1001;
+                if (yych <= 'z') goto yy999;
+                goto yy1001;
             }
         }
     }
-yy957:
+yy1006:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
-    if (yych == 'U') goto yy959;
-    if (yych == 'u') goto yy960;
-    goto yy949;
-yy958:
+    if (yych == 'U') goto yy1008;
+    if (yych == 'u') goto yy1009;
+    goto yy1003;
+yy1007:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
-    if (yych == '/') goto yy957;
-    goto yy949;
-yy959:
+    if (yych == '/') goto yy1006;
+    goto yy1003;
+yy1008:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy949;
-        if (yych <= '9') goto yy961;
-        goto yy949;
+        if (yych <= '/') goto yy1003;
+        if (yych <= '9') goto yy1010;
+        goto yy1003;
     } else {
-        if (yych <= 'F') goto yy961;
-        if (yych <= '`') goto yy949;
-        if (yych <= 'f') goto yy961;
-        goto yy949;
+        if (yych <= 'F') goto yy1010;
+        if (yych <= '`') goto yy1003;
+        if (yych <= 'f') goto yy1010;
+        goto yy1003;
     }
-yy960:
+yy1009:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy949;
-        if (yych <= '9') goto yy962;
-        goto yy949;
+        if (yych <= '/') goto yy1003;
+        if (yych <= '9') goto yy1011;
+        goto yy1003;
     } else {
-        if (yych <= 'F') goto yy962;
-        if (yych <= '`') goto yy949;
-        if (yych <= 'f') goto yy962;
-        goto yy949;
+        if (yych <= 'F') goto yy1011;
+        if (yych <= '`') goto yy1003;
+        if (yych <= 'f') goto yy1011;
+        goto yy1003;
     }
-yy961:
+yy1010:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy949;
-        if (yych <= '9') goto yy963;
-        goto yy949;
+        if (yych <= '/') goto yy1003;
+        if (yych <= '9') goto yy1012;
+        goto yy1003;
     } else {
-        if (yych <= 'F') goto yy963;
-        if (yych <= '`') goto yy949;
-        if (yych <= 'f') goto yy963;
-        goto yy949;
+        if (yych <= 'F') goto yy1012;
+        if (yych <= '`') goto yy1003;
+        if (yych <= 'f') goto yy1012;
+        goto yy1003;
     }
-yy962:
+yy1011:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy949;
-        if (yych <= '9') goto yy964;
-        goto yy949;
+        if (yych <= '/') goto yy1003;
+        if (yych <= '9') goto yy1013;
+        goto yy1003;
     } else {
-        if (yych <= 'F') goto yy964;
-        if (yych <= '`') goto yy949;
-        if (yych <= 'f') goto yy964;
-        goto yy949;
+        if (yych <= 'F') goto yy1013;
+        if (yych <= '`') goto yy1003;
+        if (yych <= 'f') goto yy1013;
+        goto yy1003;
     }
-yy963:
+yy1012:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy949;
-        if (yych <= '9') goto yy965;
-        goto yy949;
+        if (yych <= '/') goto yy1003;
+        if (yych <= '9') goto yy1014;
+        goto yy1003;
     } else {
-        if (yych <= 'F') goto yy965;
-        if (yych <= '`') goto yy949;
-        if (yych <= 'f') goto yy965;
-        goto yy949;
+        if (yych <= 'F') goto yy1014;
+        if (yych <= '`') goto yy1003;
+        if (yych <= 'f') goto yy1014;
+        goto yy1003;
     }
-yy964:
+yy1013:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy949;
-        if (yych <= '9') goto yy966;
-        goto yy949;
+        if (yych <= '/') goto yy1003;
+        if (yych <= '9') goto yy1015;
+        goto yy1003;
     } else {
-        if (yych <= 'F') goto yy966;
-        if (yych <= '`') goto yy949;
-        if (yych <= 'f') goto yy966;
-        goto yy949;
+        if (yych <= 'F') goto yy1015;
+        if (yych <= '`') goto yy1003;
+        if (yych <= 'f') goto yy1015;
+        goto yy1003;
     }
-yy965:
+yy1014:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy949;
-        if (yych <= '9') goto yy960;
-        goto yy949;
+        if (yych <= '/') goto yy1003;
+        if (yych <= '9') goto yy1009;
+        goto yy1003;
     } else {
-        if (yych <= 'F') goto yy960;
-        if (yych <= '`') goto yy949;
-        if (yych <= 'f') goto yy960;
-        goto yy949;
+        if (yych <= 'F') goto yy1009;
+        if (yych <= '`') goto yy1003;
+        if (yych <= 'f') goto yy1009;
+        goto yy1003;
     }
-yy966:
+yy1015:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy949;
-        if (yych <= '9') goto yy951;
-        goto yy949;
+        if (yych <= '/') goto yy1003;
+        if (yych <= '9') goto yy999;
+        goto yy1003;
     } else {
-        if (yych <= 'F') goto yy951;
-        if (yych <= '`') goto yy949;
-        if (yych <= 'f') goto yy951;
-        goto yy949;
+        if (yych <= 'F') goto yy999;
+        if (yych <= '`') goto yy1003;
+        if (yych <= 'f') goto yy999;
+        goto yy1003;
     }
 }
-#line 450 "strict_cpp.re"
+#line 470 "strict_cpp.re"
 
     }
     else {
     
-#line 6271 "strict_cpp_re.inc"
+#line 6590 "strict_cpp_re.inc"
 {
     YYCTYPE yych;
     unsigned int yyaccept = 0;
@@ -6308,176 +6627,180 @@ yy966:
     if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
     yych = *YYCURSOR;
     if (yych <= '/') {
-        if (yych == '.') goto yy970;
-    } else {
-        if (yych <= '0') goto yy971;
-        if (yych <= '9') goto yy973;
-    }
-yy969:
-    YYCURSOR = YYMARKER;
-    if (yyaccept == 0) {
-        goto yy972;
+        if (yych == '.') goto yy1020;
     } else {
-        goto yy977;
+        if (yych <= '0') goto yy1021;
+        if (yych <= '9') goto yy1023;
     }
-yy970:
+    ++YYCURSOR;
+yy1019:
+#line 479 "strict_cpp.re"
+    { BOOST_ASSERT(false); }
+#line 6640 "strict_cpp_re.inc"
+yy1020:
     yych = *++YYCURSOR;
-    if (yych <= '/') goto yy969;
-    if (yych <= '9') goto yy975;
-    goto yy969;
-yy971:
+    if (yych <= '/') goto yy1019;
+    if (yych <= '9') goto yy1025;
+    goto yy1019;
+yy1021:
     yyaccept = 0;
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == 'X') goto yy983;
-    if (yych == 'x') goto yy983;
-    goto yy979;
-yy972:
-#line 457 "strict_cpp.re"
+    if (yych == 'X') goto yy1034;
+    if (yych == 'x') goto yy1034;
+    goto yy1029;
+yy1022:
+#line 477 "strict_cpp.re"
     { goto integer_suffix; }
-#line 6338 "strict_cpp_re.inc"
-yy973:
+#line 6655 "strict_cpp_re.inc"
+yy1023:
     yyaccept = 0;
     YYMARKER = ++YYCURSOR;
     if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 32) {
-        goto yy973;
+        goto yy1023;
     }
     if (yych <= 'D') {
-        if (yych != '.') goto yy972;
+        if (yych != '.') goto yy1022;
     } else {
-        if (yych <= 'E') goto yy982;
-        if (yych == 'e') goto yy982;
-        goto yy972;
+        if (yych <= 'E') goto yy1033;
+        if (yych == 'e') goto yy1033;
+        goto yy1022;
     }
-yy975:
+yy1025:
     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;
+            if (yych <= '/') goto yy1027;
+            if (yych <= '9') goto yy1025;
         } else {
-            if (yych <= 'E') goto yy982;
-            if (yych <= 'F') goto yy984;
+            if (yych <= 'E') goto yy1033;
+            if (yych <= 'F') goto yy1035;
         }
     } else {
         if (yych <= 'e') {
-            if (yych <= 'L') goto yy985;
-            if (yych >= 'e') goto yy982;
+            if (yych <= 'L') goto yy1036;
+            if (yych >= 'e') goto yy1033;
         } else {
-            if (yych <= 'f') goto yy984;
-            if (yych == 'l') goto yy985;
+            if (yych <= 'f') goto yy1035;
+            if (yych == 'l') goto yy1036;
         }
     }
-yy977:
-#line 455 "strict_cpp.re"
+yy1027:
+#line 475 "strict_cpp.re"
     { BOOST_WAVE_RET(T_FLOATLIT); }
-#line 6379 "strict_cpp_re.inc"
-yy978:
+#line 6696 "strict_cpp_re.inc"
+yy1028:
     yyaccept = 0;
     YYMARKER = ++YYCURSOR;
     if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
     yych = *YYCURSOR;
-yy979:
+yy1029:
     if (yybm[0+yych] & 64) {
-        goto yy978;
+        goto yy1028;
     }
     if (yych <= '9') {
-        if (yych == '.') goto yy975;
-        if (yych <= '/') goto yy972;
+        if (yych == '.') goto yy1025;
+        if (yych <= '/') goto yy1022;
     } else {
         if (yych <= 'E') {
-            if (yych <= 'D') goto yy972;
-            goto yy982;
+            if (yych <= 'D') goto yy1022;
+            goto yy1033;
         } else {
-            if (yych == 'e') goto yy982;
-            goto yy972;
+            if (yych == 'e') goto yy1033;
+            goto yy1022;
         }
     }
-yy980:
+yy1030:
     ++YYCURSOR;
     if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
     yych = *YYCURSOR;
     if (yych <= '9') {
-        if (yych == '.') goto yy975;
-        if (yych <= '/') goto yy969;
-        goto yy980;
+        if (yych == '.') goto yy1025;
+        if (yych >= '0') goto yy1030;
     } else {
         if (yych <= 'E') {
-            if (yych <= 'D') goto yy969;
+            if (yych >= 'E') goto yy1033;
         } else {
-            if (yych != 'e') goto yy969;
+            if (yych == 'e') goto yy1033;
         }
     }
-yy982:
+yy1032:
+    YYCURSOR = YYMARKER;
+    if (yyaccept == 0) {
+        goto yy1022;
+    } else {
+        goto yy1027;
+    }
+yy1033:
     yych = *++YYCURSOR;
     if (yych <= ',') {
-        if (yych == '+') goto yy986;
-        goto yy969;
+        if (yych == '+') goto yy1037;
+        goto yy1032;
     } else {
-        if (yych <= '-') goto yy986;
-        if (yych <= '/') goto yy969;
-        if (yych <= '9') goto yy987;
-        goto yy969;
+        if (yych <= '-') goto yy1037;
+        if (yych <= '/') goto yy1032;
+        if (yych <= '9') goto yy1038;
+        goto yy1032;
     }
-yy983:
+yy1034:
     yych = *++YYCURSOR;
     if (yybm[0+yych] & 128) {
-        goto yy989;
+        goto yy1040;
     }
-    goto yy969;
-yy984:
+    goto yy1032;
+yy1035:
     yych = *++YYCURSOR;
-    if (yych == 'L') goto yy991;
-    if (yych == 'l') goto yy991;
-    goto yy977;
-yy985:
+    if (yych == 'L') goto yy1042;
+    if (yych == 'l') goto yy1042;
+    goto yy1027;
+yy1036:
     yych = *++YYCURSOR;
-    if (yych == 'F') goto yy991;
-    if (yych == 'f') goto yy991;
-    goto yy977;
-yy986:
+    if (yych == 'F') goto yy1042;
+    if (yych == 'f') goto yy1042;
+    goto yy1027;
+yy1037:
     yych = *++YYCURSOR;
-    if (yych <= '/') goto yy969;
-    if (yych >= ':') goto yy969;
-yy987:
+    if (yych <= '/') goto yy1032;
+    if (yych >= ':') goto yy1032;
+yy1038:
     ++YYCURSOR;
     if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
     yych = *YYCURSOR;
     if (yych <= 'K') {
         if (yych <= '9') {
-            if (yych <= '/') goto yy977;
-            goto yy987;
+            if (yych <= '/') goto yy1027;
+            goto yy1038;
         } else {
-            if (yych == 'F') goto yy984;
-            goto yy977;
+            if (yych == 'F') goto yy1035;
+            goto yy1027;
         }
     } else {
         if (yych <= 'f') {
-            if (yych <= 'L') goto yy985;
-            if (yych <= 'e') goto yy977;
-            goto yy984;
+            if (yych <= 'L') goto yy1036;
+            if (yych <= 'e') goto yy1027;
+            goto yy1035;
         } else {
-            if (yych == 'l') goto yy985;
-            goto yy977;
+            if (yych == 'l') goto yy1036;
+            goto yy1027;
         }
     }
-yy989:
+yy1040:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 128) {
-        goto yy989;
+        goto yy1040;
     }
-    goto yy972;
-yy991:
+    goto yy1022;
+yy1042:
     ++YYCURSOR;
-    goto yy977;
+    goto yy1027;
 }
-#line 458 "strict_cpp.re"
+#line 480 "strict_cpp.re"
 
     }
 }
@@ -6487,151 +6810,171 @@ integer_suffix:
 {
     if (s->enable_ms_extensions) {
     
-#line 6491 "strict_cpp_re.inc"
+#line 6814 "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;
+            if (yych >= 'L') goto yy1046;
         } else {
-            if (yych == 'U') goto yy996;
+            if (yych == 'U') goto yy1047;
         }
     } else {
         if (yych <= 'l') {
-            if (yych <= 'i') goto yy997;
-            if (yych >= 'l') goto yy995;
+            if (yych <= 'i') goto yy1048;
+            if (yych >= 'l') goto yy1050;
         } else {
-            if (yych == 'u') goto yy996;
+            if (yych == 'u') goto yy1047;
         }
     }
-yy994:
-#line 471 "strict_cpp.re"
+yy1045:
+#line 493 "strict_cpp.re"
     { BOOST_WAVE_RET(T_INTLIT); }
-#line 6513 "strict_cpp_re.inc"
-yy995:
+#line 6836 "strict_cpp_re.inc"
+yy1046:
     yych = *++YYCURSOR;
-    if (yych <= 'U') {
-        if (yych == 'L') goto yy999;
-        if (yych <= 'T') goto yy994;
-        goto yy1001;
+    if (yych <= 'T') {
+        if (yych == 'L') goto yy1051;
+        goto yy1045;
     } else {
-        if (yych <= 'l') {
-            if (yych <= 'k') goto yy994;
-            goto yy999;
-        } else {
-            if (yych == 'u') goto yy1001;
-            goto yy994;
-        }
+        if (yych <= 'U') goto yy1053;
+        if (yych == 'u') goto yy1053;
+        goto yy1045;
     }
-yy996:
+yy1047:
     yych = *++YYCURSOR;
-    if (yych == 'L') goto yy1002;
-    if (yych == 'l') goto yy1002;
-    goto yy994;
-yy997:
+    if (yych == 'L') goto yy1054;
+    if (yych == 'l') goto yy1055;
+    goto yy1045;
+yy1048:
     yych = *++YYCURSOR;
-    if (yych == '6') goto yy1003;
-yy998:
+    if (yych == '6') goto yy1056;
+yy1049:
     YYCURSOR = YYMARKER;
-    goto yy994;
-yy999:
+    goto yy1045;
+yy1050:
     yych = *++YYCURSOR;
-    if (yych == 'U') goto yy1004;
-    if (yych == 'u') goto yy1004;
-yy1000:
-#line 468 "strict_cpp.re"
+    if (yych <= 'k') {
+        if (yych == 'U') goto yy1053;
+        goto yy1045;
+    } else {
+        if (yych <= 'l') goto yy1051;
+        if (yych == 'u') goto yy1053;
+        goto yy1045;
+    }
+yy1051:
+    yych = *++YYCURSOR;
+    if (yych == 'U') goto yy1057;
+    if (yych == 'u') goto yy1057;
+yy1052:
+#line 490 "strict_cpp.re"
     { BOOST_WAVE_RET(T_LONGINTLIT); }
-#line 6547 "strict_cpp_re.inc"
-yy1001:
+#line 6875 "strict_cpp_re.inc"
+yy1053:
     ++YYCURSOR;
-    goto yy994;
-yy1002:
+    goto yy1045;
+yy1054:
     yych = *++YYCURSOR;
-    if (yych == 'L') goto yy1004;
-    if (yych == 'l') goto yy1004;
-    goto yy994;
-yy1003:
+    if (yych == 'L') goto yy1057;
+    goto yy1045;
+yy1055:
     yych = *++YYCURSOR;
-    if (yych != '4') goto yy998;
-yy1004:
+    if (yych == 'l') goto yy1057;
+    goto yy1045;
+yy1056:
+    yych = *++YYCURSOR;
+    if (yych != '4') goto yy1049;
+yy1057:
     ++YYCURSOR;
-    goto yy1000;
+    goto yy1052;
 }
-#line 472 "strict_cpp.re"
+#line 494 "strict_cpp.re"
 
     }
     else {
     
-#line 6568 "strict_cpp_re.inc"
+#line 6899 "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;
+        if (yych == 'L') goto yy1061;
+        if (yych >= 'U') goto yy1062;
     } else {
         if (yych <= 'l') {
-            if (yych >= 'l') goto yy1008;
+            if (yych >= 'l') goto yy1063;
         } else {
-            if (yych == 'u') goto yy1009;
+            if (yych == 'u') goto yy1062;
         }
     }
-yy1007:
-#line 480 "strict_cpp.re"
+yy1060:
+#line 502 "strict_cpp.re"
     { BOOST_WAVE_RET(T_INTLIT); }
-#line 6586 "strict_cpp_re.inc"
-yy1008:
+#line 6917 "strict_cpp_re.inc"
+yy1061:
     yych = *++YYCURSOR;
-    if (yych <= 'U') {
-        if (yych == 'L') goto yy1010;
-        if (yych <= 'T') goto yy1007;
-        goto yy1012;
+    if (yych <= 'T') {
+        if (yych == 'L') goto yy1064;
+        goto yy1060;
     } else {
-        if (yych <= 'l') {
-            if (yych <= 'k') goto yy1007;
-            goto yy1010;
-        } else {
-            if (yych == 'u') goto yy1012;
-            goto yy1007;
-        }
+        if (yych <= 'U') goto yy1066;
+        if (yych == 'u') goto yy1066;
+        goto yy1060;
     }
-yy1009:
+yy1062:
     yych = *++YYCURSOR;
-    if (yych == 'L') goto yy1013;
-    if (yych == 'l') goto yy1013;
-    goto yy1007;
-yy1010:
+    if (yych == 'L') goto yy1067;
+    if (yych == 'l') goto yy1068;
+    goto yy1060;
+yy1063:
     yych = *++YYCURSOR;
-    if (yych == 'U') goto yy1014;
-    if (yych == 'u') goto yy1014;
-yy1011:
-#line 477 "strict_cpp.re"
+    if (yych <= 'k') {
+        if (yych == 'U') goto yy1066;
+        goto yy1060;
+    } else {
+        if (yych <= 'l') goto yy1064;
+        if (yych == 'u') goto yy1066;
+        goto yy1060;
+    }
+yy1064:
+    yych = *++YYCURSOR;
+    if (yych == 'U') goto yy1069;
+    if (yych == 'u') goto yy1069;
+yy1065:
+#line 499 "strict_cpp.re"
     { BOOST_WAVE_RET(T_LONGINTLIT); }
-#line 6614 "strict_cpp_re.inc"
-yy1012:
+#line 6950 "strict_cpp_re.inc"
+yy1066:
     ++YYCURSOR;
-    goto yy1007;
-yy1013:
+    goto yy1060;
+yy1067:
     yych = *++YYCURSOR;
-    if (yych == 'L') goto yy1014;
-    if (yych != 'l') goto yy1007;
-yy1014:
+    if (yych == 'L') goto yy1069;
+    goto yy1060;
+yy1068:
+    yych = *++YYCURSOR;
+    if (yych != 'l') goto yy1060;
+yy1069:
     ++YYCURSOR;
-    goto yy1011;
+    goto yy1065;
 }
-#line 481 "strict_cpp.re"
+#line 503 "strict_cpp.re"
 
     }
+
+    // re2c will complain about -Wmatch-empty-string above
+    // it's OK because we've already matched an integer
+    // and will return T_INTLIT
 }
 
 /* this subscanner is invoked for C++0x extended character literals */
 extcharlit:
 {
     
-#line 6635 "strict_cpp_re.inc"
+#line 6978 "strict_cpp_re.inc"
 {
     YYCTYPE yych;
     static const unsigned char yybm[] = {
@@ -6672,277 +7015,284 @@ extcharlit:
     yych = *YYCURSOR;
     if (yych <= 0x1F) {
         if (yych <= '\n') {
-            if (yych <= 0x08) goto yy1017;
-            if (yych <= '\t') goto yy1018;
-            goto yy1020;
+            if (yych <= 0x08) goto yy1072;
+            if (yych <= '\t') goto yy1074;
+            goto yy1076;
         } else {
-            if (yych <= '\f') goto yy1018;
-            if (yych <= '\r') goto yy1020;
+            if (yych <= '\f') goto yy1074;
+            if (yych <= '\r') goto yy1076;
         }
     } else {
         if (yych <= '>') {
-            if (yych == '\'') goto yy1020;
-            goto yy1018;
+            if (yych == '\'') goto yy1076;
+            goto yy1074;
         } else {
-            if (yych <= '?') goto yy1021;
-            if (yych == '\\') goto yy1022;
-            goto yy1018;
+            if (yych <= '?') goto yy1077;
+            if (yych == '\\') goto yy1078;
+            goto yy1074;
         }
     }
-yy1017:
-    YYCURSOR = YYMARKER;
-    goto yy1019;
-yy1018:
+yy1072:
+    ++YYCURSOR;
+#line 515 "strict_cpp.re"
+    {
+            (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+                "Invalid character in raw string delimiter ('%c')", yych);
+        }
+#line 7043 "strict_cpp_re.inc"
+yy1074:
     yych = *++YYCURSOR;
-    if (yych == '\'') goto yy1023;
-yy1019:
-#line 493 "strict_cpp.re"
+    if (yych == '\'') goto yy1079;
+yy1075:
+#line 524 "strict_cpp.re"
     { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
-#line 6702 "strict_cpp_re.inc"
-yy1020:
+#line 7050 "strict_cpp_re.inc"
+yy1076:
     ++YYCURSOR;
-    goto yy1019;
-yy1021:
+    goto yy1075;
+yy1077:
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == '\'') goto yy1023;
-    if (yych == '?') goto yy1025;
-    goto yy1019;
-yy1022:
+    if (yych == '\'') goto yy1079;
+    if (yych == '?') goto yy1081;
+    goto yy1075;
+yy1078:
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= '`') {
         if (yych <= '7') {
             if (yych <= '&') {
-                if (yych == '"') goto yy1026;
-                goto yy1019;
+                if (yych == '"') goto yy1083;
+                goto yy1075;
             } else {
-                if (yych <= '\'') goto yy1026;
-                if (yych <= '/') goto yy1019;
-                goto yy1027;
+                if (yych <= '\'') goto yy1083;
+                if (yych <= '/') goto yy1075;
+                goto yy1084;
             }
         } else {
             if (yych <= 'T') {
-                if (yych == '?') goto yy1028;
-                goto yy1019;
+                if (yych == '?') goto yy1085;
+                goto yy1075;
             } else {
-                if (yych <= 'U') goto yy1029;
-                if (yych == '\\') goto yy1026;
-                goto yy1019;
+                if (yych <= 'U') goto yy1086;
+                if (yych == '\\') goto yy1083;
+                goto yy1075;
             }
         }
     } else {
         if (yych <= 'r') {
             if (yych <= 'f') {
-                if (yych <= 'b') goto yy1026;
-                if (yych <= 'e') goto yy1019;
-                goto yy1026;
+                if (yych <= 'b') goto yy1083;
+                if (yych <= 'e') goto yy1075;
+                goto yy1083;
             } else {
-                if (yych == 'n') goto yy1026;
-                if (yych <= 'q') goto yy1019;
-                goto yy1026;
+                if (yych == 'n') goto yy1083;
+                if (yych <= 'q') goto yy1075;
+                goto yy1083;
             }
         } else {
             if (yych <= 'u') {
-                if (yych <= 's') goto yy1019;
-                if (yych <= 't') goto yy1026;
-                goto yy1030;
+                if (yych <= 's') goto yy1075;
+                if (yych <= 't') goto yy1083;
+                goto yy1087;
             } else {
-                if (yych <= 'v') goto yy1026;
-                if (yych == 'x') goto yy1031;
-                goto yy1019;
+                if (yych <= 'v') goto yy1083;
+                if (yych == 'x') goto yy1088;
+                goto yy1075;
             }
         }
     }
-yy1023:
+yy1079:
     ++YYCURSOR;
-#line 490 "strict_cpp.re"
+#line 521 "strict_cpp.re"
     { BOOST_WAVE_RET(T_CHARLIT); }
-#line 6760 "strict_cpp_re.inc"
-yy1025:
+#line 7108 "strict_cpp_re.inc"
+yy1081:
     yych = *++YYCURSOR;
-    if (yych == '/') goto yy1032;
-    goto yy1017;
-yy1026:
+    if (yych == '/') goto yy1089;
+yy1082:
+    YYCURSOR = YYMARKER;
+    goto yy1075;
+yy1083:
     yych = *++YYCURSOR;
-    if (yych == '\'') goto yy1023;
-    goto yy1017;
-yy1027:
+    if (yych == '\'') goto yy1079;
+    goto yy1082;
+yy1084:
     yych = *++YYCURSOR;
-    if (yych == '\'') goto yy1023;
-    if (yych <= '/') goto yy1017;
-    if (yych <= '7') goto yy1033;
-    goto yy1017;
-yy1028:
+    if (yych == '\'') goto yy1079;
+    if (yych <= '/') goto yy1082;
+    if (yych <= '7') goto yy1090;
+    goto yy1082;
+yy1085:
     yych = *++YYCURSOR;
-    if (yych == '\'') goto yy1023;
-    if (yych == '?') goto yy1034;
-    goto yy1017;
-yy1029:
+    if (yych == '\'') goto yy1079;
+    if (yych == '?') goto yy1091;
+    goto yy1082;
+yy1086:
     yych = *++YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1017;
-        if (yych <= '9') goto yy1035;
-        goto yy1017;
+        if (yych <= '/') goto yy1082;
+        if (yych <= '9') goto yy1092;
+        goto yy1082;
     } else {
-        if (yych <= 'F') goto yy1035;
-        if (yych <= '`') goto yy1017;
-        if (yych <= 'f') goto yy1035;
-        goto yy1017;
+        if (yych <= 'F') goto yy1092;
+        if (yych <= '`') goto yy1082;
+        if (yych <= 'f') goto yy1092;
+        goto yy1082;
     }
-yy1030:
+yy1087:
     yych = *++YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1017;
-        if (yych <= '9') goto yy1036;
-        goto yy1017;
+        if (yych <= '/') goto yy1082;
+        if (yych <= '9') goto yy1093;
+        goto yy1082;
     } else {
-        if (yych <= 'F') goto yy1036;
-        if (yych <= '`') goto yy1017;
-        if (yych <= 'f') goto yy1036;
-        goto yy1017;
+        if (yych <= 'F') goto yy1093;
+        if (yych <= '`') goto yy1082;
+        if (yych <= 'f') goto yy1093;
+        goto yy1082;
     }
-yy1031:
+yy1088:
     yych = *++YYCURSOR;
-    if (yych == '\'') goto yy1017;
-    goto yy1038;
-yy1032:
+    if (yych == '\'') goto yy1082;
+    goto yy1095;
+yy1089:
     yych = *++YYCURSOR;
     if (yych <= '`') {
         if (yych <= '7') {
             if (yych <= '&') {
-                if (yych == '"') goto yy1026;
-                goto yy1017;
+                if (yych == '"') goto yy1083;
+                goto yy1082;
             } else {
-                if (yych <= '\'') goto yy1026;
-                if (yych <= '/') goto yy1017;
-                goto yy1027;
+                if (yych <= '\'') goto yy1083;
+                if (yych <= '/') goto yy1082;
+                goto yy1084;
             }
         } else {
             if (yych <= 'T') {
-                if (yych == '?') goto yy1028;
-                goto yy1017;
+                if (yych == '?') goto yy1085;
+                goto yy1082;
             } else {
-                if (yych <= 'U') goto yy1029;
-                if (yych == '\\') goto yy1026;
-                goto yy1017;
+                if (yych <= 'U') goto yy1086;
+                if (yych == '\\') goto yy1083;
+                goto yy1082;
             }
         }
     } else {
         if (yych <= 'r') {
             if (yych <= 'f') {
-                if (yych <= 'b') goto yy1026;
-                if (yych <= 'e') goto yy1017;
-                goto yy1026;
+                if (yych <= 'b') goto yy1083;
+                if (yych <= 'e') goto yy1082;
+                goto yy1083;
             } else {
-                if (yych == 'n') goto yy1026;
-                if (yych <= 'q') goto yy1017;
-                goto yy1026;
+                if (yych == 'n') goto yy1083;
+                if (yych <= 'q') goto yy1082;
+                goto yy1083;
             }
         } else {
             if (yych <= 'u') {
-                if (yych <= 's') goto yy1017;
-                if (yych <= 't') goto yy1026;
-                goto yy1030;
+                if (yych <= 's') goto yy1082;
+                if (yych <= 't') goto yy1083;
+                goto yy1087;
             } else {
-                if (yych <= 'v') goto yy1026;
-                if (yych == 'x') goto yy1031;
-                goto yy1017;
+                if (yych <= 'v') goto yy1083;
+                if (yych == 'x') goto yy1088;
+                goto yy1082;
             }
         }
     }
-yy1033:
+yy1090:
     yych = *++YYCURSOR;
-    if (yych == '\'') goto yy1023;
-    if (yych <= '/') goto yy1017;
-    if (yych <= '7') goto yy1026;
-    goto yy1017;
-yy1034:
+    if (yych == '\'') goto yy1079;
+    if (yych <= '/') goto yy1082;
+    if (yych <= '7') goto yy1083;
+    goto yy1082;
+yy1091:
     yych = *++YYCURSOR;
-    if (yych == '/') goto yy1026;
-    goto yy1017;
-yy1035:
+    if (yych == '/') goto yy1083;
+    goto yy1082;
+yy1092:
     yych = *++YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1017;
-        if (yych <= '9') goto yy1039;
-        goto yy1017;
+        if (yych <= '/') goto yy1082;
+        if (yych <= '9') goto yy1096;
+        goto yy1082;
     } else {
-        if (yych <= 'F') goto yy1039;
-        if (yych <= '`') goto yy1017;
-        if (yych <= 'f') goto yy1039;
-        goto yy1017;
+        if (yych <= 'F') goto yy1096;
+        if (yych <= '`') goto yy1082;
+        if (yych <= 'f') goto yy1096;
+        goto yy1082;
     }
-yy1036:
+yy1093:
     yych = *++YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1017;
-        if (yych <= '9') goto yy1040;
-        goto yy1017;
+        if (yych <= '/') goto yy1082;
+        if (yych <= '9') goto yy1097;
+        goto yy1082;
     } else {
-        if (yych <= 'F') goto yy1040;
-        if (yych <= '`') goto yy1017;
-        if (yych <= 'f') goto yy1040;
-        goto yy1017;
+        if (yych <= 'F') goto yy1097;
+        if (yych <= '`') goto yy1082;
+        if (yych <= 'f') goto yy1097;
+        goto yy1082;
     }
-yy1037:
+yy1094:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
-yy1038:
+yy1095:
     if (yybm[0+yych] & 128) {
-        goto yy1037;
+        goto yy1094;
     }
-    if (yych == '\'') goto yy1023;
-    goto yy1017;
-yy1039:
+    if (yych == '\'') goto yy1079;
+    goto yy1082;
+yy1096:
     yych = *++YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1017;
-        if (yych <= '9') goto yy1041;
-        goto yy1017;
+        if (yych <= '/') goto yy1082;
+        if (yych <= '9') goto yy1098;
+        goto yy1082;
     } else {
-        if (yych <= 'F') goto yy1041;
-        if (yych <= '`') goto yy1017;
-        if (yych <= 'f') goto yy1041;
-        goto yy1017;
+        if (yych <= 'F') goto yy1098;
+        if (yych <= '`') goto yy1082;
+        if (yych <= 'f') goto yy1098;
+        goto yy1082;
     }
-yy1040:
+yy1097:
     yych = *++YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1017;
-        if (yych <= '9') goto yy1042;
-        goto yy1017;
+        if (yych <= '/') goto yy1082;
+        if (yych <= '9') goto yy1099;
+        goto yy1082;
     } else {
-        if (yych <= 'F') goto yy1042;
-        if (yych <= '`') goto yy1017;
-        if (yych <= 'f') goto yy1042;
-        goto yy1017;
+        if (yych <= 'F') goto yy1099;
+        if (yych <= '`') goto yy1082;
+        if (yych <= 'f') goto yy1099;
+        goto yy1082;
     }
-yy1041:
+yy1098:
     yych = *++YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1017;
-        if (yych <= '9') goto yy1030;
-        goto yy1017;
+        if (yych <= '/') goto yy1082;
+        if (yych <= '9') goto yy1087;
+        goto yy1082;
     } else {
-        if (yych <= 'F') goto yy1030;
-        if (yych <= '`') goto yy1017;
-        if (yych <= 'f') goto yy1030;
-        goto yy1017;
+        if (yych <= 'F') goto yy1087;
+        if (yych <= '`') goto yy1082;
+        if (yych <= 'f') goto yy1087;
+        goto yy1082;
     }
-yy1042:
+yy1099:
     yych = *++YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1017;
-        if (yych <= '9') goto yy1026;
-        goto yy1017;
+        if (yych <= '/') goto yy1082;
+        if (yych <= '9') goto yy1083;
+        goto yy1082;
     } else {
-        if (yych <= 'F') goto yy1026;
-        if (yych <= '`') goto yy1017;
-        if (yych <= 'f') goto yy1026;
-        goto yy1017;
+        if (yych <= 'F') goto yy1083;
+        if (yych <= '`') goto yy1082;
+        if (yych <= 'f') goto yy1083;
+        goto yy1082;
     }
 }
-#line 494 "strict_cpp.re"
+#line 525 "strict_cpp.re"
 
 }
 
@@ -6950,7 +7300,7 @@ yy1042:
 extstringlit:
 {
     
-#line 6954 "strict_cpp_re.inc"
+#line 7304 "strict_cpp_re.inc"
 {
     YYCTYPE yych;
     unsigned int yyaccept = 0;
@@ -6992,336 +7342,345 @@ extstringlit:
     yych = *YYCURSOR;
     if (yych <= 0x1F) {
         if (yych <= '\n') {
-            if (yych <= 0x08) goto yy1045;
-            if (yych <= '\t') goto yy1046;
-            goto yy1048;
+            if (yych <= 0x08) goto yy1102;
+            if (yych <= '\t') goto yy1104;
+            goto yy1106;
         } else {
-            if (yych <= '\f') goto yy1046;
-            if (yych <= '\r') goto yy1048;
+            if (yych <= '\f') goto yy1104;
+            if (yych <= '\r') goto yy1106;
         }
     } else {
         if (yych <= '>') {
-            if (yych == '"') goto yy1049;
-            goto yy1046;
+            if (yych == '"') goto yy1107;
+            goto yy1104;
         } else {
-            if (yych <= '?') goto yy1051;
-            if (yych == '\\') goto yy1052;
-            goto yy1046;
+            if (yych <= '?') goto yy1109;
+            if (yych == '\\') goto yy1110;
+            goto yy1104;
         }
     }
-yy1045:
-    YYCURSOR = YYMARKER;
-    if (yyaccept == 0) {
-        goto yy1047;
-    } else {
-        goto yy1050;
-    }
-yy1046:
+yy1102:
+    ++YYCURSOR;
+#line 532 "strict_cpp.re"
+    {
+            (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+                "Invalid character in raw string delimiter ('%c')", yych);
+        }
+#line 7370 "strict_cpp_re.inc"
+yy1104:
     yyaccept = 0;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= '\n') {
-        if (yych == '\t') goto yy1054;
+        if (yych == '\t') goto yy1112;
     } else {
-        if (yych <= '\f') goto yy1054;
-        if (yych >= ' ') goto yy1054;
+        if (yych <= '\f') goto yy1112;
+        if (yych >= ' ') goto yy1112;
     }
-yy1047:
-#line 505 "strict_cpp.re"
+yy1105:
+#line 541 "strict_cpp.re"
     { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
-#line 7032 "strict_cpp_re.inc"
-yy1048:
+#line 7383 "strict_cpp_re.inc"
+yy1106:
     ++YYCURSOR;
-    goto yy1047;
-yy1049:
+    goto yy1105;
+yy1107:
     ++YYCURSOR;
-yy1050:
-#line 502 "strict_cpp.re"
+yy1108:
+#line 538 "strict_cpp.re"
     { BOOST_WAVE_RET(T_STRINGLIT); }
-#line 7041 "strict_cpp_re.inc"
-yy1051:
+#line 7392 "strict_cpp_re.inc"
+yy1109:
     yyaccept = 0;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[0+yych] & 64) {
-        goto yy1057;
+        goto yy1116;
     }
     if (yych <= '\n') {
-        if (yych == '\t') goto yy1054;
-        goto yy1047;
+        if (yych == '\t') goto yy1112;
+        goto yy1105;
     } else {
-        if (yych <= '\f') goto yy1054;
-        if (yych <= 0x1F) goto yy1047;
-        goto yy1054;
+        if (yych <= '\f') goto yy1112;
+        if (yych <= 0x1F) goto yy1105;
+        goto yy1112;
     }
-yy1052:
+yy1110:
     yyaccept = 0;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= '`') {
         if (yych <= '7') {
             if (yych <= '&') {
-                if (yych != '"') goto yy1047;
+                if (yych != '"') goto yy1105;
             } else {
-                if (yych <= '\'') goto yy1053;
-                if (yych <= '/') goto yy1047;
+                if (yych <= '\'') goto yy1111;
+                if (yych <= '/') goto yy1105;
             }
         } else {
             if (yych <= 'T') {
-                if (yych != '?') goto yy1047;
+                if (yych != '?') goto yy1105;
             } else {
-                if (yych <= 'U') goto yy1059;
-                if (yych != '\\') goto yy1047;
+                if (yych <= 'U') goto yy1118;
+                if (yych != '\\') goto yy1105;
             }
         }
     } else {
         if (yych <= 'r') {
             if (yych <= 'f') {
-                if (yych <= 'b') goto yy1053;
-                if (yych <= 'e') goto yy1047;
+                if (yych <= 'b') goto yy1111;
+                if (yych <= 'e') goto yy1105;
             } else {
-                if (yych == 'n') goto yy1053;
-                if (yych <= 'q') goto yy1047;
+                if (yych == 'n') goto yy1111;
+                if (yych <= 'q') goto yy1105;
             }
         } else {
             if (yych <= 'u') {
-                if (yych <= 's') goto yy1047;
-                if (yych >= 'u') goto yy1060;
+                if (yych <= 's') goto yy1105;
+                if (yych >= 'u') goto yy1119;
             } else {
-                if (yych <= 'v') goto yy1053;
-                if (yych == 'x') goto yy1061;
-                goto yy1047;
+                if (yych <= 'v') goto yy1111;
+                if (yych == 'x') goto yy1120;
+                goto yy1105;
             }
         }
     }
-yy1053:
+yy1111:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
-yy1054:
+yy1112:
     if (yybm[0+yych] & 32) {
-        goto yy1053;
+        goto yy1111;
     }
-    if (yych <= 0x1F) goto yy1045;
-    if (yych <= '"') goto yy1049;
-    if (yych >= '@') goto yy1056;
-yy1055:
+    if (yych <= 0x1F) goto yy1113;
+    if (yych <= '"') goto yy1107;
+    if (yych <= '?') goto yy1114;
+    goto yy1115;
+yy1113:
+    YYCURSOR = YYMARKER;
+    if (yyaccept == 0) {
+        goto yy1105;
+    } else {
+        goto yy1108;
+    }
+yy1114:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 32) {
-        goto yy1053;
+        goto yy1111;
     }
-    if (yych <= 0x1F) goto yy1045;
-    if (yych <= '"') goto yy1049;
-    if (yych <= '?') goto yy1057;
-yy1056:
+    if (yych <= 0x1F) goto yy1113;
+    if (yych <= '"') goto yy1107;
+    if (yych <= '?') goto yy1116;
+yy1115:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '`') {
         if (yych <= '7') {
             if (yych <= '&') {
-                if (yych == '"') goto yy1053;
-                goto yy1045;
+                if (yych == '"') goto yy1111;
+                goto yy1113;
             } else {
-                if (yych <= '\'') goto yy1053;
-                if (yych <= '/') goto yy1045;
-                goto yy1053;
+                if (yych <= '\'') goto yy1111;
+                if (yych <= '/') goto yy1113;
+                goto yy1111;
             }
         } else {
             if (yych <= 'T') {
-                if (yych == '?') goto yy1053;
-                goto yy1045;
+                if (yych == '?') goto yy1111;
+                goto yy1113;
             } else {
-                if (yych <= 'U') goto yy1059;
-                if (yych == '\\') goto yy1053;
-                goto yy1045;
+                if (yych <= 'U') goto yy1118;
+                if (yych == '\\') goto yy1111;
+                goto yy1113;
             }
         }
     } else {
         if (yych <= 'r') {
             if (yych <= 'f') {
-                if (yych <= 'b') goto yy1053;
-                if (yych <= 'e') goto yy1045;
-                goto yy1053;
+                if (yych <= 'b') goto yy1111;
+                if (yych <= 'e') goto yy1113;
+                goto yy1111;
             } else {
-                if (yych == 'n') goto yy1053;
-                if (yych <= 'q') goto yy1045;
-                goto yy1053;
+                if (yych == 'n') goto yy1111;
+                if (yych <= 'q') goto yy1113;
+                goto yy1111;
             }
         } else {
             if (yych <= 'u') {
-                if (yych <= 's') goto yy1045;
-                if (yych <= 't') goto yy1053;
-                goto yy1060;
+                if (yych <= 's') goto yy1113;
+                if (yych <= 't') goto yy1111;
+                goto yy1119;
             } else {
-                if (yych <= 'v') goto yy1053;
-                if (yych == 'x') goto yy1061;
-                goto yy1045;
+                if (yych <= 'v') goto yy1111;
+                if (yych == 'x') goto yy1120;
+                goto yy1113;
             }
         }
     }
-yy1057:
+yy1116:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 64) {
-        goto yy1057;
+        goto yy1116;
     }
     if (yych <= '!') {
         if (yych <= '\n') {
-            if (yych == '\t') goto yy1053;
-            goto yy1045;
+            if (yych == '\t') goto yy1111;
+            goto yy1113;
         } else {
-            if (yych <= '\f') goto yy1053;
-            if (yych <= 0x1F) goto yy1045;
-            goto yy1053;
+            if (yych <= '\f') goto yy1111;
+            if (yych <= 0x1F) goto yy1113;
+            goto yy1111;
         }
     } else {
         if (yych <= '/') {
-            if (yych <= '"') goto yy1049;
-            if (yych <= '.') goto yy1053;
-            goto yy1062;
+            if (yych <= '"') goto yy1107;
+            if (yych <= '.') goto yy1111;
+            goto yy1121;
         } else {
-            if (yych == '\\') goto yy1056;
-            goto yy1053;
+            if (yych == '\\') goto yy1115;
+            goto yy1111;
         }
     }
-yy1059:
+yy1118:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1045;
-        if (yych <= '9') goto yy1064;
-        goto yy1045;
+        if (yych <= '/') goto yy1113;
+        if (yych <= '9') goto yy1123;
+        goto yy1113;
     } else {
-        if (yych <= 'F') goto yy1064;
-        if (yych <= '`') goto yy1045;
-        if (yych <= 'f') goto yy1064;
-        goto yy1045;
+        if (yych <= 'F') goto yy1123;
+        if (yych <= '`') goto yy1113;
+        if (yych <= 'f') goto yy1123;
+        goto yy1113;
     }
-yy1060:
+yy1119:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1045;
-        if (yych <= '9') goto yy1065;
-        goto yy1045;
+        if (yych <= '/') goto yy1113;
+        if (yych <= '9') goto yy1124;
+        goto yy1113;
     } else {
-        if (yych <= 'F') goto yy1065;
-        if (yych <= '`') goto yy1045;
-        if (yych <= 'f') goto yy1065;
-        goto yy1045;
+        if (yych <= 'F') goto yy1124;
+        if (yych <= '`') goto yy1113;
+        if (yych <= 'f') goto yy1124;
+        goto yy1113;
     }
-yy1061:
+yy1120:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1045;
-        if (yych <= '9') goto yy1053;
-        goto yy1045;
+        if (yych <= '/') goto yy1113;
+        if (yych <= '9') goto yy1111;
+        goto yy1113;
     } else {
-        if (yych <= 'F') goto yy1053;
-        if (yych <= '`') goto yy1045;
-        if (yych <= 'f') goto yy1053;
-        goto yy1045;
+        if (yych <= 'F') goto yy1111;
+        if (yych <= '`') goto yy1113;
+        if (yych <= 'f') goto yy1111;
+        goto yy1113;
     }
-yy1062:
+yy1121:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 32) {
-        goto yy1053;
+        goto yy1111;
     }
-    if (yych <= 0x1F) goto yy1045;
-    if (yych <= '"') goto yy1066;
-    if (yych <= '?') goto yy1055;
-    goto yy1062;
-yy1064:
+    if (yych <= 0x1F) goto yy1113;
+    if (yych <= '"') goto yy1125;
+    if (yych <= '?') goto yy1114;
+    goto yy1121;
+yy1123:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1045;
-        if (yych <= '9') goto yy1067;
-        goto yy1045;
+        if (yych <= '/') goto yy1113;
+        if (yych <= '9') goto yy1126;
+        goto yy1113;
     } else {
-        if (yych <= 'F') goto yy1067;
-        if (yych <= '`') goto yy1045;
-        if (yych <= 'f') goto yy1067;
-        goto yy1045;
+        if (yych <= 'F') goto yy1126;
+        if (yych <= '`') goto yy1113;
+        if (yych <= 'f') goto yy1126;
+        goto yy1113;
     }
-yy1065:
+yy1124:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1045;
-        if (yych <= '9') goto yy1068;
-        goto yy1045;
+        if (yych <= '/') goto yy1113;
+        if (yych <= '9') goto yy1127;
+        goto yy1113;
     } else {
-        if (yych <= 'F') goto yy1068;
-        if (yych <= '`') goto yy1045;
-        if (yych <= 'f') goto yy1068;
-        goto yy1045;
+        if (yych <= 'F') goto yy1127;
+        if (yych <= '`') goto yy1113;
+        if (yych <= 'f') goto yy1127;
+        goto yy1113;
     }
-yy1066:
+yy1125:
     yyaccept = 1;
     YYMARKER = ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 32) {
-        goto yy1053;
+        goto yy1111;
     }
-    if (yych <= 0x1F) goto yy1050;
-    if (yych <= '"') goto yy1049;
-    if (yych <= '?') goto yy1055;
-    goto yy1056;
-yy1067:
+    if (yych <= 0x1F) goto yy1108;
+    if (yych <= '"') goto yy1107;
+    if (yych <= '?') goto yy1114;
+    goto yy1115;
+yy1126:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1045;
-        if (yych <= '9') goto yy1069;
-        goto yy1045;
+        if (yych <= '/') goto yy1113;
+        if (yych <= '9') goto yy1128;
+        goto yy1113;
     } else {
-        if (yych <= 'F') goto yy1069;
-        if (yych <= '`') goto yy1045;
-        if (yych <= 'f') goto yy1069;
-        goto yy1045;
+        if (yych <= 'F') goto yy1128;
+        if (yych <= '`') goto yy1113;
+        if (yych <= 'f') goto yy1128;
+        goto yy1113;
     }
-yy1068:
+yy1127:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1045;
-        if (yych <= '9') goto yy1061;
-        goto yy1045;
+        if (yych <= '/') goto yy1113;
+        if (yych <= '9') goto yy1120;
+        goto yy1113;
     } else {
-        if (yych <= 'F') goto yy1061;
-        if (yych <= '`') goto yy1045;
-        if (yych <= 'f') goto yy1061;
-        goto yy1045;
+        if (yych <= 'F') goto yy1120;
+        if (yych <= '`') goto yy1113;
+        if (yych <= 'f') goto yy1120;
+        goto yy1113;
     }
-yy1069:
+yy1128:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1045;
-        if (yych <= '9') goto yy1060;
-        goto yy1045;
+        if (yych <= '/') goto yy1113;
+        if (yych <= '9') goto yy1119;
+        goto yy1113;
     } else {
-        if (yych <= 'F') goto yy1060;
-        if (yych <= '`') goto yy1045;
-        if (yych <= 'f') goto yy1060;
-        goto yy1045;
+        if (yych <= 'F') goto yy1119;
+        if (yych <= '`') goto yy1113;
+        if (yych <= 'f') goto yy1119;
+        goto yy1113;
     }
 }
-#line 506 "strict_cpp.re"
+#line 542 "strict_cpp.re"
 
 }
 
@@ -7331,30 +7690,30 @@ extrawstringlit:
     // at this point we may see a delimiter
 
     
-#line 7335 "strict_cpp_re.inc"
+#line 7694 "strict_cpp_re.inc"
 {
     YYCTYPE yych;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '(') {
-        if (yych <= 0x1F) goto yy1072;
-        if (yych <= '\'') goto yy1074;
-        goto yy1076;
+        if (yych <= 0x1F) goto yy1131;
+        if (yych <= '\'') goto yy1133;
+        goto yy1135;
     } else {
-        if (yych <= ')') goto yy1072;
-        if (yych != '\\') goto yy1074;
+        if (yych <= ')') goto yy1131;
+        if (yych != '\\') goto yy1133;
     }
-yy1072:
+yy1131:
     ++YYCURSOR;
-#line 515 "strict_cpp.re"
+#line 551 "strict_cpp.re"
     {
             (*s->error_proc)(s, lexing_exception::generic_lexing_error,
                 "Invalid character in raw string delimiter ('%c')", yych);
         }
-#line 7355 "strict_cpp_re.inc"
-yy1074:
+#line 7714 "strict_cpp_re.inc"
+yy1133:
     ++YYCURSOR;
-#line 522 "strict_cpp.re"
+#line 558 "strict_cpp.re"
     {
             rawstringdelim += yych;
             if (rawstringdelim.size() > 16)
@@ -7365,24 +7724,24 @@ yy1074:
             }
             goto extrawstringlit;
         }
-#line 7369 "strict_cpp_re.inc"
-yy1076:
+#line 7728 "strict_cpp_re.inc"
+yy1135:
     ++YYCURSOR;
-#line 534 "strict_cpp.re"
+#line 570 "strict_cpp.re"
     {
             rawstringdelim = ")" + rawstringdelim;
             goto extrawstringbody;
         }
-#line 7377 "strict_cpp_re.inc"
+#line 7736 "strict_cpp_re.inc"
 }
-#line 539 "strict_cpp.re"
+#line 575 "strict_cpp.re"
 
 }
 
 extrawstringbody:
 {
     
-#line 7386 "strict_cpp_re.inc"
+#line 7745 "strict_cpp_re.inc"
 {
     YYCTYPE yych;
     static const unsigned char yybm[] = {
@@ -7423,56 +7782,56 @@ extrawstringbody:
     yych = *YYCURSOR;
     if (yych <= 0x1F) {
         if (yych <= '\n') {
-            if (yych <= 0x08) goto yy1080;
-            if (yych <= '\t') goto yy1082;
-            goto yy1084;
+            if (yych <= 0x08) goto yy1139;
+            if (yych <= '\t') goto yy1141;
+            goto yy1143;
         } else {
-            if (yych <= '\f') goto yy1082;
-            if (yych <= '\r') goto yy1086;
+            if (yych <= '\f') goto yy1141;
+            if (yych <= '\r') goto yy1145;
         }
     } else {
         if (yych <= '>') {
-            if (yych == '"') goto yy1087;
-            goto yy1082;
+            if (yych == '"') goto yy1146;
+            goto yy1141;
         } else {
-            if (yych <= '?') goto yy1089;
-            if (yych == '\\') goto yy1090;
-            goto yy1082;
+            if (yych <= '?') goto yy1148;
+            if (yych == '\\') goto yy1149;
+            goto yy1141;
         }
     }
-yy1080:
+yy1139:
     ++YYCURSOR;
-#line 546 "strict_cpp.re"
+#line 582 "strict_cpp.re"
     {
             (*s->error_proc)(s, lexing_exception::generic_lexing_error,
                 "Invalid character in raw string body ('%c')", yych);
         }
-#line 7451 "strict_cpp_re.inc"
-yy1082:
+#line 7810 "strict_cpp_re.inc"
+yy1141:
     ++YYCURSOR;
-yy1083:
-#line 559 "strict_cpp.re"
+yy1142:
+#line 595 "strict_cpp.re"
     {
             goto extrawstringbody;
         }
-#line 7459 "strict_cpp_re.inc"
-yy1084:
+#line 7818 "strict_cpp_re.inc"
+yy1143:
     ++YYCURSOR;
-yy1085:
-#line 552 "strict_cpp.re"
+yy1144:
+#line 588 "strict_cpp.re"
     {
             s->line += count_backslash_newlines(s, cursor) +1;
             cursor.column = 1;
             goto extrawstringbody;
         }
-#line 7469 "strict_cpp_re.inc"
-yy1086:
+#line 7828 "strict_cpp_re.inc"
+yy1145:
     yych = *++YYCURSOR;
-    if (yych == '\n') goto yy1084;
-    goto yy1085;
-yy1087:
+    if (yych == '\n') goto yy1143;
+    goto yy1144;
+yy1146:
     ++YYCURSOR;
-#line 564 "strict_cpp.re"
+#line 600 "strict_cpp.re"
     {
             // check to see if we have completed a delimiter
             if (string_type((char *)(YYCURSOR - rawstringdelim.size() - 1),
@@ -7483,236 +7842,236 @@ yy1087:
                 goto extrawstringbody;
             }
         }
-#line 7487 "strict_cpp_re.inc"
-yy1089:
+#line 7846 "strict_cpp_re.inc"
+yy1148:
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == '?') goto yy1091;
-    goto yy1083;
-yy1090:
+    if (yych == '?') goto yy1150;
+    goto yy1142;
+yy1149:
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= '`') {
         if (yych <= '7') {
             if (yych <= '&') {
-                if (yych == '"') goto yy1082;
-                goto yy1083;
+                if (yych == '"') goto yy1141;
+                goto yy1142;
             } else {
-                if (yych <= '\'') goto yy1082;
-                if (yych <= '/') goto yy1083;
-                goto yy1093;
+                if (yych <= '\'') goto yy1141;
+                if (yych <= '/') goto yy1142;
+                goto yy1152;
             }
         } else {
             if (yych <= 'T') {
-                if (yych == '?') goto yy1094;
-                goto yy1083;
+                if (yych == '?') goto yy1153;
+                goto yy1142;
             } else {
-                if (yych <= 'U') goto yy1095;
-                if (yych == '\\') goto yy1082;
-                goto yy1083;
+                if (yych <= 'U') goto yy1154;
+                if (yych == '\\') goto yy1141;
+                goto yy1142;
             }
         }
     } else {
         if (yych <= 'r') {
             if (yych <= 'f') {
-                if (yych <= 'b') goto yy1082;
-                if (yych <= 'e') goto yy1083;
-                goto yy1082;
+                if (yych <= 'b') goto yy1141;
+                if (yych <= 'e') goto yy1142;
+                goto yy1141;
             } else {
-                if (yych == 'n') goto yy1082;
-                if (yych <= 'q') goto yy1083;
-                goto yy1082;
+                if (yych == 'n') goto yy1141;
+                if (yych <= 'q') goto yy1142;
+                goto yy1141;
             }
         } else {
             if (yych <= 'u') {
-                if (yych <= 's') goto yy1083;
-                if (yych <= 't') goto yy1082;
-                goto yy1096;
+                if (yych <= 's') goto yy1142;
+                if (yych <= 't') goto yy1141;
+                goto yy1155;
             } else {
-                if (yych <= 'v') goto yy1082;
-                if (yych == 'x') goto yy1097;
-                goto yy1083;
+                if (yych <= 'v') goto yy1141;
+                if (yych == 'x') goto yy1156;
+                goto yy1142;
             }
         }
     }
-yy1091:
+yy1150:
     yych = *++YYCURSOR;
-    if (yych == '/') goto yy1098;
-yy1092:
+    if (yych == '/') goto yy1157;
+yy1151:
     YYCURSOR = YYMARKER;
-    goto yy1083;
-yy1093:
+    goto yy1142;
+yy1152:
     yych = *++YYCURSOR;
-    if (yych <= '/') goto yy1083;
-    if (yych <= '7') goto yy1099;
-    goto yy1083;
-yy1094:
+    if (yych <= '/') goto yy1142;
+    if (yych <= '7') goto yy1158;
+    goto yy1142;
+yy1153:
     yych = *(YYMARKER = ++YYCURSOR);
-    if (yych == '?') goto yy1100;
-    goto yy1083;
-yy1095:
+    if (yych == '?') goto yy1159;
+    goto yy1142;
+yy1154:
     yych = *++YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1092;
-        if (yych <= '9') goto yy1101;
-        goto yy1092;
+        if (yych <= '/') goto yy1151;
+        if (yych <= '9') goto yy1160;
+        goto yy1151;
     } else {
-        if (yych <= 'F') goto yy1101;
-        if (yych <= '`') goto yy1092;
-        if (yych <= 'f') goto yy1101;
-        goto yy1092;
+        if (yych <= 'F') goto yy1160;
+        if (yych <= '`') goto yy1151;
+        if (yych <= 'f') goto yy1160;
+        goto yy1151;
     }
-yy1096:
+yy1155:
     yych = *++YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1092;
-        if (yych <= '9') goto yy1102;
-        goto yy1092;
+        if (yych <= '/') goto yy1151;
+        if (yych <= '9') goto yy1161;
+        goto yy1151;
     } else {
-        if (yych <= 'F') goto yy1102;
-        if (yych <= '`') goto yy1092;
-        if (yych <= 'f') goto yy1102;
-        goto yy1092;
+        if (yych <= 'F') goto yy1161;
+        if (yych <= '`') goto yy1151;
+        if (yych <= 'f') goto yy1161;
+        goto yy1151;
     }
-yy1097:
+yy1156:
     yych = *++YYCURSOR;
     if (yybm[0+yych] & 128) {
-        goto yy1103;
+        goto yy1162;
     }
-    goto yy1092;
-yy1098:
+    goto yy1151;
+yy1157:
     yych = *++YYCURSOR;
     if (yych <= '`') {
         if (yych <= '7') {
             if (yych <= '&') {
-                if (yych == '"') goto yy1082;
-                goto yy1092;
+                if (yych == '"') goto yy1141;
+                goto yy1151;
             } else {
-                if (yych <= '\'') goto yy1082;
-                if (yych <= '/') goto yy1092;
-                goto yy1093;
+                if (yych <= '\'') goto yy1141;
+                if (yych <= '/') goto yy1151;
+                goto yy1152;
             }
         } else {
             if (yych <= 'T') {
-                if (yych == '?') goto yy1094;
-                goto yy1092;
+                if (yych == '?') goto yy1153;
+                goto yy1151;
             } else {
-                if (yych <= 'U') goto yy1095;
-                if (yych == '\\') goto yy1082;
-                goto yy1092;
+                if (yych <= 'U') goto yy1154;
+                if (yych == '\\') goto yy1141;
+                goto yy1151;
             }
         }
     } else {
         if (yych <= 'r') {
             if (yych <= 'f') {
-                if (yych <= 'b') goto yy1082;
-                if (yych <= 'e') goto yy1092;
-                goto yy1082;
+                if (yych <= 'b') goto yy1141;
+                if (yych <= 'e') goto yy1151;
+                goto yy1141;
             } else {
-                if (yych == 'n') goto yy1082;
-                if (yych <= 'q') goto yy1092;
-                goto yy1082;
+                if (yych == 'n') goto yy1141;
+                if (yych <= 'q') goto yy1151;
+                goto yy1141;
             }
         } else {
             if (yych <= 'u') {
-                if (yych <= 's') goto yy1092;
-                if (yych <= 't') goto yy1082;
-                goto yy1096;
+                if (yych <= 's') goto yy1151;
+                if (yych <= 't') goto yy1141;
+                goto yy1155;
             } else {
-                if (yych <= 'v') goto yy1082;
-                if (yych == 'x') goto yy1097;
-                goto yy1092;
+                if (yych <= 'v') goto yy1141;
+                if (yych == 'x') goto yy1156;
+                goto yy1151;
             }
         }
     }
-yy1099:
+yy1158:
     yych = *++YYCURSOR;
-    if (yych <= '/') goto yy1083;
-    if (yych <= '7') goto yy1082;
-    goto yy1083;
-yy1100:
+    if (yych <= '/') goto yy1142;
+    if (yych <= '7') goto yy1141;
+    goto yy1142;
+yy1159:
     yych = *++YYCURSOR;
-    if (yych == '/') goto yy1082;
-    goto yy1092;
-yy1101:
+    if (yych == '/') goto yy1141;
+    goto yy1151;
+yy1160:
     yych = *++YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1092;
-        if (yych <= '9') goto yy1105;
-        goto yy1092;
+        if (yych <= '/') goto yy1151;
+        if (yych <= '9') goto yy1164;
+        goto yy1151;
     } else {
-        if (yych <= 'F') goto yy1105;
-        if (yych <= '`') goto yy1092;
-        if (yych <= 'f') goto yy1105;
-        goto yy1092;
+        if (yych <= 'F') goto yy1164;
+        if (yych <= '`') goto yy1151;
+        if (yych <= 'f') goto yy1164;
+        goto yy1151;
     }
-yy1102:
+yy1161:
     yych = *++YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1092;
-        if (yych <= '9') goto yy1106;
-        goto yy1092;
+        if (yych <= '/') goto yy1151;
+        if (yych <= '9') goto yy1165;
+        goto yy1151;
     } else {
-        if (yych <= 'F') goto yy1106;
-        if (yych <= '`') goto yy1092;
-        if (yych <= 'f') goto yy1106;
-        goto yy1092;
+        if (yych <= 'F') goto yy1165;
+        if (yych <= '`') goto yy1151;
+        if (yych <= 'f') goto yy1165;
+        goto yy1151;
     }
-yy1103:
+yy1162:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 128) {
-        goto yy1103;
+        goto yy1162;
     }
-    goto yy1083;
-yy1105:
+    goto yy1142;
+yy1164:
     yych = *++YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1092;
-        if (yych <= '9') goto yy1107;
-        goto yy1092;
+        if (yych <= '/') goto yy1151;
+        if (yych <= '9') goto yy1166;
+        goto yy1151;
     } else {
-        if (yych <= 'F') goto yy1107;
-        if (yych <= '`') goto yy1092;
-        if (yych <= 'f') goto yy1107;
-        goto yy1092;
+        if (yych <= 'F') goto yy1166;
+        if (yych <= '`') goto yy1151;
+        if (yych <= 'f') goto yy1166;
+        goto yy1151;
     }
-yy1106:
+yy1165:
     yych = *++YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1092;
-        if (yych <= '9') goto yy1108;
-        goto yy1092;
+        if (yych <= '/') goto yy1151;
+        if (yych <= '9') goto yy1167;
+        goto yy1151;
     } else {
-        if (yych <= 'F') goto yy1108;
-        if (yych <= '`') goto yy1092;
-        if (yych <= 'f') goto yy1108;
-        goto yy1092;
+        if (yych <= 'F') goto yy1167;
+        if (yych <= '`') goto yy1151;
+        if (yych <= 'f') goto yy1167;
+        goto yy1151;
     }
-yy1107:
+yy1166:
     yych = *++YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1092;
-        if (yych <= '9') goto yy1096;
-        goto yy1092;
+        if (yych <= '/') goto yy1151;
+        if (yych <= '9') goto yy1155;
+        goto yy1151;
     } else {
-        if (yych <= 'F') goto yy1096;
-        if (yych <= '`') goto yy1092;
-        if (yych <= 'f') goto yy1096;
-        goto yy1092;
+        if (yych <= 'F') goto yy1155;
+        if (yych <= '`') goto yy1151;
+        if (yych <= 'f') goto yy1155;
+        goto yy1151;
     }
-yy1108:
+yy1167:
     yych = *++YYCURSOR;
     if (yych <= '@') {
-        if (yych <= '/') goto yy1092;
-        if (yych <= '9') goto yy1082;
-        goto yy1092;
+        if (yych <= '/') goto yy1151;
+        if (yych <= '9') goto yy1141;
+        goto yy1151;
     } else {
-        if (yych <= 'F') goto yy1082;
-        if (yych <= '`') goto yy1092;
-        if (yych <= 'f') goto yy1082;
-        goto yy1092;
+        if (yych <= 'F') goto yy1141;
+        if (yych <= '`') goto yy1151;
+        if (yych <= 'f') goto yy1141;
+        goto yy1151;
     }
 }
-#line 574 "strict_cpp.re"
+#line 610 "strict_cpp.re"
 
 }