OSDN Git Service

Fixed clang warnings and unmuted these warnings
authorAlexis Hetu <sugoi@google.com>
Mon, 14 Nov 2016 19:10:47 +0000 (14:10 -0500)
committerAlexis Hétu <sugoi@google.com>
Tue, 15 Nov 2016 16:34:23 +0000 (16:34 +0000)
A few warnings were fixed:
- 2 sets of virtual flip/blit functions were colliding, so
  I added pure virtual function overrides so that both
  definitions appear within FrameBufferWin
- Moved a few variables within ASSERT inside the ASSERT
  statement in order to remove unused variable warnings
- Removed stack option from glslang.l and removed comments
  handling code, which is actually already done by the
  preprocessor (tested in dEQP)
- Removed unused yyscanner variable from glslang.l
- Ifdefed debug only code in main.cpp

Removed all related muted warnings from BUILD.gn files.

Change-Id: Idf9e7eed00431cc747b689b5d1931fd0c1e8d506
Reviewed-on: https://swiftshader-review.googlesource.com/8010
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nico Weber <thakis@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
14 files changed:
src/Main/BUILD.gn
src/Main/FrameBufferWin.hpp
src/OpenGL/common/BUILD.gn
src/OpenGL/compiler/BUILD.gn
src/OpenGL/compiler/OutputASM.cpp
src/OpenGL/compiler/glslang.l
src/OpenGL/compiler/glslang_lex.cpp
src/OpenGL/compiler/glslang_tab.cpp
src/OpenGL/libEGL/BUILD.gn
src/OpenGL/libEGL/main.cpp
src/OpenGL/libGLESv2/BUILD.gn
src/Reactor/BUILD.gn
src/Renderer/BUILD.gn
src/Shader/BUILD.gn

index 9f5ca94..99f6444 100644 (file)
@@ -19,7 +19,6 @@ config("swiftshader_main_private_config") {
 
     if (is_clang) {
       cflags += [
-        "-Wno-overloaded-virtual",
         "-Wno-string-conversion",
         "-Wno-sign-compare",
       ]
index 91b194a..2393658 100644 (file)
@@ -33,6 +33,9 @@ namespace sw
 
                virtual ~FrameBufferWin();
 
+               void flip(void *source, Format sourceFormat, size_t sourceStride) override = 0;
+               void blit(void *source, const Rect *sourceRect, const Rect *destRect, Format sourceFormat, size_t sourceStride) override = 0;
+
                virtual void flip(HWND windowOverride, void *source, Format sourceFormat, size_t sourceStride) = 0;
                virtual void blit(HWND windowOverride, void *source, const Rect *sourceRect, const Rect *destRect, Format sourceFormat, size_t sourceStride) = 0;
 
index 9d47e6c..d244f96 100644 (file)
@@ -19,10 +19,6 @@ config("swiftshader_opengl_common_private_config") {
       "/wd4201", # nameless struct/union
       "/wd4324", # structure was padded due to alignment specifier
     ]
-
-    if (is_clang) {
-      cflags += [ "-Wno-delete-incomplete" ]
-    }
   } else {
     cflags = [ "-DLOG_TAG=\"swiftshader_opengl_common\"" ]
   }
index 8cd74a5..facdfc0 100644 (file)
@@ -25,13 +25,6 @@ config("swiftshader_opengl_compiler_private_config") {
     if (!is_debug) {
       cflags += [ "/wd4189" ] # local variable is initialized but not referenced (variables only used in ASSERTS)
     }
-
-    if (is_clang) {
-      cflags += [
-        "-Wno-unused-function",
-        "-Wno-unused-variable",
-      ]
-    }
   } else {
     cflags = [
       "-DLOG_TAG=\"swiftshader_opengl_compiler\"",
index d88ce14..5495d3f 100644 (file)
@@ -1508,8 +1508,8 @@ namespace glsl
                        if(visit == PostVisit)
                        {
                                TIntermTyped *arg0 = arg[0]->getAsTyped();
-                               TIntermTyped *arg1 = arg[1]->getAsTyped();
-                               ASSERT((arg0->getNominalSize() == arg1->getNominalSize()) && (arg0->getSecondarySize() == arg1->getSecondarySize()));
+                               ASSERT((arg0->getNominalSize() == arg[1]->getAsTyped()->getNominalSize()) &&
+                                      (arg0->getSecondarySize() == arg[1]->getAsTyped()->getSecondarySize()));
 
                                int size = arg0->getNominalSize();
                                for(int i = 0; i < size; i++)
@@ -2169,8 +2169,7 @@ namespace glsl
 
                                if(memberType.getBasicType() == EbtBool)
                                {
-                                       int arraySize = (memberType.isArray() ? memberType.getArraySize() : 1);
-                                       ASSERT(argumentInfo.clampedIndex < arraySize);
+                                       ASSERT(argumentInfo.clampedIndex < (memberType.isArray() ? memberType.getArraySize() : 1)); // index < arraySize
 
                                        // Convert the packed bool, which is currently an int, to a true bool
                                        Instruction *instruction = new Instruction(sw::Shader::OPCODE_I2B);
@@ -2189,9 +2188,8 @@ namespace glsl
                                {
                                        int numCols = memberType.getNominalSize();
                                        int numRows = memberType.getSecondarySize();
-                                       int arraySize = (memberType.isArray() ? memberType.getArraySize() : 1);
 
-                                       ASSERT(argumentInfo.clampedIndex < (numCols * arraySize));
+                                       ASSERT(argumentInfo.clampedIndex < (numCols * (memberType.isArray() ? memberType.getArraySize() : 1))); // index < cols * arraySize
 
                                        unsigned int dstIndex = registerIndex(&unpackedUniform);
                                        unsigned int srcSwizzle = (argumentInfo.clampedIndex % numCols) * 0x55;
index 9acc29a..663db3b 100644 (file)
@@ -84,7 +84,6 @@ static int floatsuffix_check(TParseContext* context);
 
 %option noyywrap nounput never-interactive
 %option yylineno reentrant bison-bridge bison-locations
-%option stack
 %option extra-type="TParseContext*"
 %x COMMENT FIELDS
 
@@ -100,15 +99,6 @@ O           [0-7]
     TParseContext* context = yyextra;
 %}
 
-    /* Single-line comments */
-"//"[^\n]* ;
-
-    /* Multi-line comments */
-"/*"           { yy_push_state(COMMENT, yyscanner); }
-<COMMENT>. |
-<COMMENT>\n ;
-<COMMENT>"*/"  { yy_pop_state(yyscanner); }
-
 "invariant"    { return(INVARIANT); }
 "highp"        { return(HIGH_PRECISION); }
 "mediump"      { return(MEDIUM_PRECISION); }
@@ -494,7 +484,6 @@ int ES2_identifier_ES3_keyword(TParseContext *context, int token)
 int uint_constant(TParseContext *context)
 {
     struct yyguts_t* yyg = (struct yyguts_t*) context->getScanner();
-    yyscan_t yyscanner = (yyscan_t) context->getScanner();
 
     if (context->getShaderVersion() < 300)
     {
index 155605c..2316c51 100644 (file)
@@ -1,4 +1,4 @@
-#line 17 "./glslang.l"
+#line 25 "./glslang.l"
 // Copyright 2016 The SwiftShader Authors. All Rights Reserved.
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
@@ -29,7 +29,7 @@
 
 
 
-#line 25 "./glslang_lex.cpp"
+#line 33 "./glslang_lex.cpp"
 
 #define  YY_INT_ALIGNED short int
 
@@ -410,8 +410,8 @@ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
        *yy_cp = '\0'; \
        yyg->yy_c_buf_p = yy_cp;
 
-#define YY_NUM_RULES 244
-#define YY_END_OF_BUFFER 245
+#define YY_NUM_RULES 239
+#define YY_END_OF_BUFFER 240
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -419,99 +419,98 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static yyconst flex_int16_t yy_accept[828] =
+static yyconst flex_int16_t yy_accept[821] =
     {   0,
-        0,    0,    0,    0,    0,    0,  245,  243,  242,  242,
-      227,  233,  238,  222,  223,  231,  230,  219,  228,  226,
-      232,  185,  185,  220,  216,  234,  221,  235,  239,  182,
-      224,  225,  237,  182,  182,  182,  182,  182,  182,  182,
-      182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
-      182,  182,  182,  217,  236,  218,  229,    3,    4,    3,
-      241,  244,  240,  213,  199,  218,  207,  202,  197,  205,
-      195,  206,  196,  191,    2,    1,  198,  190,  184,  185,
-        0,  188,    0,  225,  217,  224,  214,  210,  212,  211,
-      215,  182,  203,  209,  182,  182,  182,  182,  182,  182,
-
-      182,  182,  182,  182,  182,  182,   17,  182,  182,  182,
-      182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
-       20,  182,  182,   28,  182,  182,  182,  182,  182,  182,
-      182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
-      182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
-      182,  182,  182,  182,  182,  182,  182,  204,  208,    5,
-      240,    0,  194,    1,  190,    0,  193,  187,    0,  189,
-      183,  200,  201,  182,  140,  182,  182,  182,  182,  182,
-      182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
-      182,  182,  182,  182,  182,  182,  182,  182,   18,  182,
-
-      182,  182,  182,  182,  182,  182,  182,  182,  182,   32,
-      182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
-      182,   29,  182,  182,  182,  182,  182,  182,  182,  182,
-      182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
-      182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
-      182,  182,  182,  182,  182,  182,    0,  191,    0,  190,
-      192,  186,  182,  182,  182,   35,  182,  182,   23,  179,
-      182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
-       21,  143,  182,  182,  182,  182,   26,  182,  182,  147,
-      159,  182,  182,  182,  182,  182,  182,  182,  182,  182,
-
-      182,  182,  182,  156,    9,   40,   41,   42,  182,  182,
-      182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
-      182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
-      182,  182,  146,   36,  182,  182,   33,  182,  182,  182,
-      182,  182,  182,  182,   52,   53,   54,   34,  182,  182,
-      182,  182,  182,  182,   15,   61,   62,   63,  182,  141,
-      182,  182,   12,  182,  182,  182,  182,  168,  169,  170,
-      182,   37,  182,  160,   31,  171,  172,  173,    7,  165,
-      166,  167,  182,  182,  182,   30,  163,  182,  182,  182,
-       55,   56,   57,  182,  182,  182,  182,  182,  182,  182,
-
-      182,  182,  182,  182,   90,  182,  182,  182,  182,  182,
-      182,  182,  157,  182,  182,  182,  182,  182,  182,  182,
-      182,  182,  182,  182,  142,  182,  182,  181,   58,   59,
-       60,  182,  182,   19,  182,   95,  182,  182,  182,  182,
-       93,  182,  182,  182,  158,  153,   96,  182,  182,  182,
-      182,  182,  182,  148,  182,  182,  182,   82,   43,   46,
-       48,   47,   44,   50,   49,   51,   45,  182,  182,  182,
-      182,  164,  139,  182,  182,  151,  182,  182,  182,   39,
-       91,  178,   27,  152,   81,  182,  162,   22,  182,  182,
-      182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
-
-      182,  182,   24,   38,  182,  182,  182,  182,  182,  182,
-       97,   98,   99,  182,  182,  182,  182,  182,    8,  182,
-      182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
-      144,  182,  182,  182,  182,  182,   13,  182,  182,   14,
-      182,  182,  182,  182,   25,   83,   16,  154,  101,  102,
-      103,  182,  182,  182,  182,  182,  182,  182,  182,  182,
-      182,  182,  182,  149,  182,  182,  182,   85,   87,   84,
-      182,  182,  182,  182,  182,  182,  182,  145,  105,  106,
-      107,  182,  182,  161,  182,  150,  182,  182,   11,  182,
-      182,  182,  182,  182,  182,  182,  182,  182,  100,  155,
-
-        6,  182,  182,  182,  182,  182,  180,  182,   94,   10,
-      174,   64,   67,  182,  182,  182,  182,  182,  182,  182,
-      182,  182,  182,  182,  182,  182,   86,  182,  182,  182,
-      182,  104,  182,  182,  182,  182,  182,  124,   70,   71,
-      182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
-      182,  182,  182,   92,  182,  182,  182,  108,  126,   74,
-       75,  182,  182,   88,  182,  182,  182,  182,  182,  182,
-      182,  119,  182,  182,  182,  182,  182,  182,  182,  182,
-      182,  182,  133,  182,  182,  182,  182,   65,  182,  182,
-      182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
-
-      120,  109,  182,  110,  182,  182,  182,  134,  182,  182,
-       72,  182,  182,  182,  182,  182,  182,  182,  182,  182,
-      182,  182,  182,  182,  121,  182,  182,  135,  182,  182,
-       76,  111,  112,  182,  115,  182,  116,  182,  182,  182,
-      182,  182,   89,  182,  182,  182,  182,  176,  182,   68,
-      130,  182,  182,  113,  114,  182,  182,  182,  182,  182,
-      182,  182,  182,  182,  182,  128,  131,  122,  182,   69,
-      182,  182,  182,  182,  182,  182,  182,  182,  129,  132,
-      182,  182,  125,   73,  182,  182,  175,  182,  182,  182,
-       78,  182,  182,  127,   77,  182,  182,  182,  182,  182,
-
-      182,  136,  182,  182,  182,  182,  182,  182,  137,  182,
-      182,  182,   79,  182,  138,  117,  118,  182,  182,  182,
-       66,  182,  182,  177,  123,   80,    0
+        0,    0,    0,    0,    0,    0,  240,  238,  237,  237,
+      222,  228,  233,  217,  218,  226,  225,  214,  223,  221,
+      227,  180,  180,  215,  211,  229,  216,  230,  234,  177,
+      219,  220,  232,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  212,  231,  213,  224,  239,  236,  235,
+      208,  194,  213,  202,  197,  192,  200,  190,  201,  191,
+      186,  193,  185,  179,  180,    0,  183,    0,  220,  212,
+      219,  209,  205,  207,  206,  210,  177,  198,  204,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+
+      177,   12,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,   15,  177,  177,   23,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  199,  203,  235,    0,  189,  185,    0,  188,
+      182,    0,  184,  178,  195,  196,  177,  135,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,   13,  177,  177,  177,  177,  177,  177,  177,  177,
+
+      177,  177,   27,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,   24,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,    0,
+      186,    0,  185,  187,  181,  177,  177,  177,   30,  177,
+      177,   18,  174,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,   16,  138,  177,  177,  177,  177,   21,
+      177,  177,  142,  154,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  151,    4,   35,   36,
+
+       37,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  141,   31,  177,  177,   28,
+      177,  177,  177,  177,  177,  177,  177,   47,   48,   49,
+       29,  177,  177,  177,  177,  177,  177,   10,   56,   57,
+       58,  177,  136,  177,  177,    7,  177,  177,  177,  177,
+      163,  164,  165,  177,   32,  177,  155,   26,  166,  167,
+      168,    2,  160,  161,  162,  177,  177,  177,   25,  158,
+      177,  177,  177,   50,   51,   52,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,   85,  177,  177,
+
+      177,  177,  177,  177,  177,  152,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  137,  177,  177,
+      176,   53,   54,   55,  177,  177,   14,  177,   90,  177,
+      177,  177,  177,   88,  177,  177,  177,  153,  148,   91,
+      177,  177,  177,  177,  177,  177,  143,  177,  177,  177,
+       77,   38,   41,   43,   42,   39,   45,   44,   46,   40,
+      177,  177,  177,  177,  159,  134,  177,  177,  146,  177,
+      177,  177,   34,   86,  173,   22,  147,   76,  177,  157,
+       17,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,   19,   33,  177,  177,  177,
+
+      177,  177,  177,   92,   93,   94,  177,  177,  177,  177,
+      177,    3,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  139,  177,  177,  177,  177,  177,    8,
+      177,  177,    9,  177,  177,  177,  177,   20,   78,   11,
+      149,   96,   97,   98,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  144,  177,  177,  177,
+       80,   82,   79,  177,  177,  177,  177,  177,  177,  177,
+      140,  100,  101,  102,  177,  177,  156,  177,  145,  177,
+      177,    6,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,   95,  150,    1,  177,  177,  177,  177,  177,  175,
+
+      177,   89,    5,  169,   59,   62,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,   81,
+      177,  177,  177,  177,   99,  177,  177,  177,  177,  177,
+      119,   65,   66,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,   87,  177,  177,  177,
+      103,  121,   69,   70,  177,  177,   83,  177,  177,  177,
+      177,  177,  177,  177,  114,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  128,  177,  177,  177,  177,
+       60,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  115,  104,  177,  105,  177,  177,  177,
+
+      129,  177,  177,   67,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  116,  177,  177,
+      130,  177,  177,   71,  106,  107,  177,  110,  177,  111,
+      177,  177,  177,  177,  177,   84,  177,  177,  177,  177,
+      171,  177,   63,  125,  177,  177,  108,  109,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  123,  126,
+      117,  177,   64,  177,  177,  177,  177,  177,  177,  177,
+      177,  124,  127,  177,  177,  120,   68,  177,  177,  170,
+      177,  177,  177,   73,  177,  177,  122,   72,  177,  177,
+      177,  177,  177,  177,  131,  177,  177,  177,  177,  177,
+
+      177,  132,  177,  177,  177,   74,  177,  133,  112,  113,
+      177,  177,  177,   61,  177,  177,  172,  118,   75,    0
     } ;
 
 static yyconst YY_CHAR yy_ec[256] =
@@ -548,209 +547,207 @@ static yyconst YY_CHAR yy_ec[256] =
 
 static yyconst YY_CHAR yy_meta[73] =
     {   0,
-        1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    3,    3,    3,    3,    3,    3,
-        3,    1,    1,    1,    1,    1,    1,    4,    4,    4,
-        4,    3,    3,    5,    5,    5,    5,    5,    5,    5,
-        1,    1,    1,    5,    4,    4,    4,    4,    3,    3,
-        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
-        5,    5,    5,    5,    5,    5,    5,    5,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    2,    2,    2,    2,    2,    2,
+        2,    1,    1,    1,    1,    1,    1,    3,    3,    3,
+        3,    2,    2,    4,    4,    4,    4,    4,    4,    4,
+        1,    1,    1,    4,    3,    3,    3,    3,    2,    2,
+        4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
+        4,    4,    4,    4,    4,    4,    4,    4,    1,    1,
         1,    1
     } ;
 
-static yyconst flex_uint16_t yy_base[835] =
+static yyconst flex_uint16_t yy_base[827] =
     {   0,
-        0,    0,   70,   71,   80,    0, 1032, 1033, 1033, 1033,
-     1006,   50,  147, 1033, 1033, 1005,  144, 1033,  143,  141,
-      156,  169,  223, 1003, 1033,  169, 1003,   52, 1033,    0,
-     1033, 1033,  152,  117,  138,  118,  157,  148,  167,  969,
-      147,  173,  159,  126,  188,  963,  200,  976,  205,  199,
-      212,  226,  147, 1033,  158, 1033, 1033, 1033, 1033, 1010,
-     1033, 1033,    0, 1033, 1033, 1033, 1033, 1033, 1033, 1033,
-     1033, 1033, 1033,  245, 1033,    0, 1033,  247,  242,    0,
-      294, 1033,    0, 1033, 1033, 1033,  998, 1033, 1033, 1033,
-      997,    0, 1033, 1033,  959,  964,  191,  961,  969,  968,
-
-      955,  958,  969,  231,  963,  951,  948,  961,  948,  945,
-      945,  951,  158,  240,  945,  955,  941,  947,  950,  951,
-        0,  943,  953,  261,  952,  947,  928,  162,  932,  945,
-      936,  240,  929,  270,  941,  943,  229,  932,  929,  918,
-      927,  247,  243,  931,  927,  929,  918,  921,  244,  203,
-      273,  930,  918,  930,  199,  923,  922, 1033, 1033, 1033,
-        0,  319, 1033,    0,  295,  331, 1033, 1033,  338,  345,
-      328, 1033, 1033,  921,    0,  917,  912,  916,  925,  922,
-      319,  906,  906,  917,  909,  260,  919,  916,  916,  914,
-      911,  903,  909,  896,  894,  906,  892,  908,    0,  905,
-
-      893,  900,  897,  901,  902,  895,  892,  881,  880,  893,
-      896,  884,  892,  880,  886,  877,  352,  882,  885,  876,
-      883,  872,  876,  867,  881,  880,  871,  877,  314,  861,
-      864,  862,  872,  862,  857,  855,  857,  867,  853,  855,
-      852,  863,  862,  865,  847,  324,  855,  851,  849,  858,
-      837,  366,  855,  857,  846,  838,  381,  388,  395,  407,
-     1033, 1033,  835,  845,  844,    0,  842,  369,    0,    0,
-      835,  833,  833,  834,  829,  837,  826,  843,  832,  375,
-        0,    0,  826,  836,  835,  835,    0,  820,  400,    0,
-        0,  822,  412,  829,  830,  821,  815,  814,  815,  814,
-
-      814,  415,  809,    0,    0,  805,  804,  803,  805,  806,
-      811,  805,  801,  814,  809,  809,  807,  806,  800,  794,
-      796,  795,  799,  791,  794,  789,  797,  802,  790,  787,
-      799,  790,    0,    0,  796,  792,    0,  784,  784,  789,
-      780,  787,  418,  784,    0,    0,    0,    0,  774,  786,
-      785,  784,  785,  785,    0,    0,    0,    0,  772,    0,
-      780,  771,    0,  770,  771,  765,  775,    0,    0,    0,
-      766,    0,  762,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  772,  425,  771,    0,    0,  769,  765,  762,
-        0,    0,    0,  754,  427,  430,  433,  759,  755,  760,
-
-      751,  749,  762,  747,    0,  747,  760,  749,  745,  751,
-      746,  753,    0,  751,  748,  752,  736,  734,  737,  743,
-      749,  744,  743,  731,    0,  733,  734,    0,    0,    0,
-        0,  731,  734,    0,  728,    0,  741,  721,  730,  725,
-        0,  718,  718,  731,    0,  733,    0,  442,  746,  745,
-      744,  711,  710,    0,  727,  726,  721,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  710,  723,  710,
-      707,    0,    0,  712,  711,    0,  708,  715,  714,    0,
-      700,    0,    0,    0,    0,  697,    0,    0,  696,  707,
-      445,  700,  706,  705,  702,  697,  694,  687,  687,  700,
-
-      685,  697,    0,    0,  690,  713,  712,  711,  678,  677,
-      351,  352,    0,  689,  692,  690,  679,  675,    0,  687,
-      684,  683,  673,  672,  662,  679,  665,  448,  673,  676,
-        0,  693,  692,  691,  658,  657,    0,  671,  658,    0,
-      668,  661,  662,  665,    0,    0,    0,    0,  685,  684,
-        0,  661,  664,  649,  656,  647,  654,  655,  655,  654,
-      640,  452,  652,    0,  653,  642,  641,    0,    0,    0,
-      666,  665,  664,  631,  630,  626,  634,    0,  662,  661,
-        0,  638,  641,    0,  467,    0,  619,  628,    0,  624,
-      623,  632,  632,  620,  634,  618,  632,  627,    0,    0,
-
-        0,  644,  643,  642,  609,  608,    0,  608,    0,    0,
-      448,  463,  632,  618,  621,  604,  616,  604,  603,  612,
-      612,  629,  628,  627,  594,  593,    0,  593,  594,  593,
-      603,    0,  606,  602,  604,  600,  587,  618,  467,    0,
-      595,  598,  590,  582,  589,  580,  601,  589,  585,  587,
-      585,  585,  584,    0,  572,  571,  581,    0,  601,  471,
-        0,  578,  581,    0,  581,  580,  564,  556,  564,  554,
-      562,    0,  559,  558,  579,  567,  565,  565,  549,  552,
-      566,  550,  581,  561,  562,  559,  556,  566,  543,  557,
-      556,  540,  539,  538,  559,  547,  545,  545,  526,  525,
-
-        0,  553,  525,  551,  523,  527,  526,  557,  537,  534,
-        0,  533,  536,  532,  534,  518,  515,  528,  513,  514,
-      521,  515,  504,  503,    0,  509,  508,  539,  519,  516,
-        0,    0,    0,  512,    0,  511,    0,  517,  516,  500,
-      497,  498,    0,  490,  498,  488,  494,  515,  494,    0,
-        0,  506,  505,    0,    0,  504,  503,  487,  484,  485,
-      499,  498,  475,  474,  480,    0,    0,  501,  473,  499,
-      491,  483,  469,  118,  125,  130,  149,  187,    0,    0,
-      255,  276,    0,    0,  288,  290,    0,  321,  308,  332,
-        0,  362,  403,    0,    0,  408,  398,  409,  406,  434,
-
-      442,    0,  440,  424,  458,  425,  428,  429,    0,  455,
-      457,  449,    0,  471,    0,    0,    0,  452,  453,  447,
-        0,  448,  449,    0,    0,    0, 1033,  514,  517,  520,
-      523,  526,  525,  529
+        0,    0, 1019, 1018,   72,    0, 1020, 1023, 1023, 1023,
+      994,  120,  141, 1023, 1023,  993,  138, 1023,  137,  135,
+      992,  154,  208,  990, 1023,  154,  990,  132, 1023,    0,
+     1023, 1023,  139,  130,  123,  140,  147,  133,  177,  956,
+      186,  151,  139,  116,  161,  950,  173,  963,  193,  199,
+      208,  215,  108, 1023,  184, 1023, 1023, 1023, 1023,    0,
+     1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
+      230, 1023,  235,  235,    0,  271, 1023,    0, 1023, 1023,
+     1023,  986, 1023, 1023, 1023,  985,    0, 1023, 1023,  947,
+      952,  152,  949,  957,  956,  943,  946,  957,  243,  951,
+
+      939,  936,  949,  936,  933,  933,  939,  147,  248,  933,
+      943,  929,  935,  938,  939,    0,  931,  941,  249,  940,
+      935,  916,  177,  920,  933,  924,  184,  917,  250,  929,
+      931,  257,  920,  917,  906,  915,  249,  257,  919,  915,
+      917,  906,  909,  196,  217,  269,  918,  906,  918,  262,
+      911,  910, 1023, 1023,    0,  311, 1023,  292,  328, 1023,
+     1023,  335,  342,  257, 1023, 1023,  909,    0,  905,  900,
+      904,  913,  910,  315,  894,  894,  905,  897,  215,  907,
+      904,  904,  902,  899,  891,  897,  884,  882,  894,  880,
+      896,    0,  893,  881,  888,  885,  889,  890,  883,  880,
+
+      869,  868,  881,  884,  872,  880,  868,  874,  865,  316,
+      870,  873,  864,  871,  860,  864,  855,  869,  868,  859,
+      865,  307,  849,  852,  850,  860,  850,  845,  843,  845,
+      855,  841,  843,  840,  851,  850,  853,  835,  316,  843,
+      839,  837,  846,  825,  353,  843,  845,  834,  826,  363,
+      370,  378,  389, 1023, 1023,  823,  833,  832,    0,  830,
+      383,    0,    0,  823,  821,  821,  822,  817,  825,  814,
+      831,  820,  394,    0,    0,  814,  824,  823,  823,    0,
+      808,  397,    0,    0,  810,  400,  817,  818,  809,  803,
+      802,  803,  802,  802,  406,  797,    0,    0,  793,  792,
+
+      791,  793,  794,  799,  793,  789,  802,  797,  797,  795,
+      794,  788,  782,  784,  783,  787,  779,  782,  777,  785,
+      790,  778,  775,  787,  778,    0,    0,  784,  780,    0,
+      772,  772,  777,  768,  775,  409,  772,    0,    0,    0,
+        0,  762,  774,  773,  772,  773,  773,    0,    0,    0,
+        0,  760,    0,  768,  759,    0,  758,  759,  753,  763,
+        0,    0,    0,  754,    0,  750,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  760,  413,  759,    0,    0,
+      757,  753,  750,    0,    0,    0,  742,  415,  418,  427,
+      747,  743,  748,  739,  737,  750,  735,    0,  735,  748,
+
+      737,  733,  739,  734,  741,    0,  739,  736,  740,  724,
+      722,  725,  731,  737,  732,  731,  719,    0,  721,  722,
+        0,    0,    0,    0,  719,  722,    0,  716,    0,  729,
+      709,  718,  713,    0,  706,  706,  719,    0,  721,    0,
+      431,  734,  733,  732,  699,  698,    0,  715,  714,  709,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+      698,  711,  698,  695,    0,    0,  700,  699,    0,  696,
+      703,  702,    0,  688,    0,    0,    0,    0,  685,    0,
+        0,  684,  695,  434,  688,  694,  693,  690,  685,  682,
+      675,  675,  688,  673,  685,    0,    0,  678,  701,  700,
+
+      699,  666,  665,  427,  428,    0,  677,  680,  678,  667,
+      663,    0,  675,  672,  671,  661,  660,  650,  667,  653,
+      441,  661,  664,    0,  681,  680,  679,  646,  645,    0,
+      659,  646,    0,  656,  649,  650,  653,    0,    0,    0,
+        0,  673,  672,    0,  649,  652,  637,  644,  635,  642,
+      643,  643,  642,  628,  451,  640,    0,  641,  630,  629,
+        0,    0,    0,  654,  653,  652,  619,  618,  614,  622,
+        0,  650,  649,    0,  626,  629,    0,  458,    0,  607,
+      616,    0,  612,  611,  620,  620,  608,  622,  606,  620,
+      615,    0,    0,    0,  632,  631,  630,  597,  596,    0,
+
+      596,    0,    0,  434,  454,  620,  606,  609,  592,  604,
+      592,  591,  600,  600,  617,  616,  615,  582,  581,    0,
+      581,  582,  581,  591,    0,  594,  590,  592,  588,  575,
+      606,  449,    0,  583,  586,  578,  570,  577,  568,  589,
+      577,  573,  575,  573,  573,  572,    0,  560,  559,  569,
+        0,  589,  462,    0,  566,  569,    0,  569,  568,  552,
+      544,  552,  542,  550,    0,  547,  546,  567,  555,  553,
+      553,  537,  540,  554,  538,  569,  549,  550,  547,  544,
+      554,  531,  545,  544,  528,  527,  526,  547,  535,  533,
+      533,  514,  513,    0,  541,  513,  539,  511,  515,  514,
+
+      545,  525,  522,    0,  521,  524,  520,  522,  506,  503,
+      516,  501,  502,  509,  503,  492,  491,    0,  497,  496,
+      527,  507,  504,    0,    0,    0,  500,    0,  499,    0,
+      505,  504,  488,  485,  486,    0,  478,  486,  476,  482,
+      503,  482,    0,    0,  494,  493,    0,    0,  492,  491,
+      475,  472,  473,  487,  486,  463,  462,  468,    0,    0,
+      489,  461,  487,  479,  128,  151,  196,  227,  238,  269,
+      277,    0,    0,  291,  319,    0,    0,  323,  321,    0,
+      324,  354,  393,    0,  382,  405,    0,    0,  408,  396,
+      420,  412,  438,  440,    0,  445,  429,  463,  429,  433,
+
+      435,    0,  453,  454,  445,    0,  466,    0,    0,    0,
+      447,  448,  442,    0,  443,  444,    0,    0,    0, 1023,
+      509,  512,  515,  518,  519,  520
     } ;
 
-static yyconst flex_int16_t yy_def[835] =
+static yyconst flex_int16_t yy_def[827] =
     {   0,
-      827,    1,  828,  828,  827,    5,  827,  827,  827,  827,
-      827,  827,  827,  827,  827,  827,  827,  827,  827,  827,
-      827,  827,  827,  827,  827,  827,  827,  827,  827,  829,
-      827,  827,  827,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  827,  827,  827,  827,  827,  827,  827,
-      827,  827,  830,  827,  827,  827,  827,  827,  827,  827,
-      827,  827,  827,  831,  827,  832,  827,  833,   22,   23,
-      827,  827,  834,  827,  827,  827,  827,  827,  827,  827,
-      827,  829,  827,  827,  829,  829,  829,  829,  829,  829,
-
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  827,  827,  827,
-      830,  827,  827,  832,  833,  827,  827,  827,  827,  827,
-      834,  827,  827,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  827,  827,  827,  827,
-      827,  827,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  829,  829,  829,  829,    0,  827,  827,  827,
-      827,  827,  827,  827
+      820,    1,  821,  821,  820,    5,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  822,
+      820,  820,  820,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  820,  820,  820,  820,  820,  820,  823,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      824,  820,  825,   22,   23,  820,  820,  826,  820,  820,
+      820,  820,  820,  820,  820,  820,  822,  820,  820,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  820,  820,  823,  820,  820,  825,  820,  820,
+      820,  820,  820,  826,  820,  820,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  820,
+      820,  820,  820,  820,  820,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,    0,
+      820,  820,  820,  820,  820,  820
     } ;
 
-static yyconst flex_uint16_t yy_nxt[1106] =
+static yyconst flex_uint16_t yy_nxt[1096] =
     {   0,
         8,    9,   10,   11,   12,   13,   14,   15,   16,   17,
        18,   19,   20,   21,   22,   23,   23,   23,   23,   23,
@@ -759,124 +756,123 @@ static yyconst flex_uint16_t yy_nxt[1106] =
        31,   32,   33,   30,   34,   35,   36,   37,   38,   39,
        40,   41,   42,   30,   43,   44,   45,   46,   47,   48,
        49,   50,   51,   52,   53,   30,   30,   30,   54,   55,
-       56,   57,   59,   59,   65,   66,   90,   91,   60,   60,
-        8,   61,   62,    8,    8,    8,    8,    8,    8,    8,
+       56,   57,    8,   59,   58,    8,    8,    8,    8,    8,
         8,    8,    8,    8,    8,    8,    8,    8,    8,    8,
+        8,    8,    8,    8,    8,    8,    8,    8,    8,   60,
+
+       60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
+       60,   60,    8,    8,    8,   60,   60,   60,   60,   60,
+       60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
+       60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
+        8,    8,    8,    8,   62,   63,   64,   67,   69,   71,
+       71,   71,   71,   71,   71,   71,   85,   86,   80,  151,
+      124,   70,   68,   88,  125,   65,   73,  152,   74,   74,
+       74,   74,   74,   74,   75,   81,   90,   82,   83,  783,
+       93,   89,   94,  122,   96,   76,   95,  104,   97,  105,
+       91,   92,   77,   78,   98,  100,  123,   99,  106,  101,
+
+      116,  188,   76,  117,  102,  126,  118,  119,  153,  169,
+      103,  120,  189,  170,  121,  784,   77,  129,  127,   78,
+       73,  107,   75,   75,   75,   75,   75,   75,   75,  108,
+      113,  109,  130,  208,  110,  131,  213,  133,  114,   76,
+      111,  209,  214,  785,  134,  135,   77,  140,  136,  115,
+      141,  237,  238,  154,  137,  138,   76,  139,  142,  148,
+      144,  156,  157,  149,  145,  143,  159,  160,  146,  239,
+       77,  147,  150,  161,  820,  268,  269,  240,  156,  157,
+      162,  786,  162,  159,  160,  163,  163,  163,  163,  163,
+      163,  163,  190,  228,  177,  255,  216,  161,  178,  179,
+
+      820,  221,  230,  200,  787,  191,  201,  202,  229,  217,
+      203,  218,  204,  241,  246,  231,  247,  222,  223,  255,
+      250,  242,  250,  159,  160,  251,  251,  251,  251,  251,
+      251,  251,  299,  300,  301,  788,  789,  252,  790,  252,
+      159,  160,  253,  253,  253,  253,  253,  253,  253,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  262,  313,  331,  791,  792,  314,  338,
+      339,  340,  793,  332,  254,  794,  263,  251,  251,  251,
+      251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
+      251,  254,  253,  253,  253,  253,  253,  253,  253,  349,
+
+      350,  351,  157,  253,  253,  253,  253,  253,  253,  253,
+      361,  362,  363,  369,  370,  371,  373,  374,  375,  157,
+      795,  160,  384,  385,  386,  422,  423,  424,  442,  443,
+      444,  452,  453,  454,  455,  456,  457,  796,  160,  797,
+      798,  445,  446,  458,  459,  460,  499,  500,  501,  525,
+      526,  527,  799,  800,  547,  549,  564,  565,  566,  502,
+      503,  637,  528,  529,  548,  550,  595,  596,  597,  567,
+      568,  638,  569,  615,  616,  617,  667,  801,  802,  598,
+      599,  639,  803,  668,  804,  669,  618,  619,  640,  687,
+      641,  642,  805,  806,  807,  808,  688,  809,  689,  810,
+
+      811,  812,  813,  814,  815,  816,  817,  818,  819,    8,
+        8,    8,    8,   87,   87,   87,  155,  155,  155,   71,
+      158,  164,  164,  782,  781,  780,  779,  778,  777,  776,
+      775,  774,  773,  772,  771,  770,  769,  768,  767,  766,
+      765,  764,  763,  762,  761,  760,  759,  758,  757,  756,
+      755,  754,  753,  752,  751,  750,  749,  748,  747,  746,
+      745,  744,  743,  742,  741,  740,  739,  738,  737,  736,
+      735,  734,  733,  732,  731,  730,  729,  728,  727,  726,
+      725,  724,  723,  722,  721,  720,  719,  718,  717,  716,
+      715,  714,  713,  712,  711,  710,  709,  708,  707,  706,
+
+      705,  704,  703,  702,  701,  700,  699,  698,  697,  696,
+      695,  694,  693,  692,  691,  690,  686,  685,  684,  683,
+      682,  681,  680,  679,  678,  677,  676,  675,  674,  673,
+      672,  671,  670,  666,  665,  664,  663,  662,  661,  660,
+      659,  658,  657,  656,  655,  654,  653,  652,  651,  650,
+      649,  648,  647,  646,  645,  644,  643,  636,  635,  634,
+      633,  632,  631,  630,  629,  628,  627,  626,  625,  624,
+      623,  622,  621,  620,  614,  613,  612,  611,  610,  609,
+      608,  607,  606,  605,  604,  603,  602,  601,  600,  594,
+      593,  592,  591,  590,  589,  588,  587,  586,  585,  584,
+
+      583,  582,  581,  580,  579,  578,  577,  576,  575,  574,
+      573,  572,  571,  570,  563,  562,  561,  560,  559,  558,
+      557,  556,  555,  554,  553,  552,  551,  546,  545,  544,
+      543,  542,  541,  540,  539,  538,  537,  536,  535,  534,
+      533,  532,  531,  530,  524,  523,  522,  521,  520,  519,
+      518,  517,  516,  515,  514,  513,  512,  511,  510,  509,
+      508,  507,  506,  505,  504,  498,  497,  496,  495,  494,
+      493,  492,  491,  490,  489,  488,  487,  486,  485,  484,
+      483,  482,  481,  480,  479,  478,  477,  476,  475,  474,
+      473,  472,  471,  470,  469,  468,  467,  466,  465,  464,
+
+      463,  462,  461,  451,  450,  449,  448,  447,  441,  440,
+      439,  438,  437,  436,  435,  434,  433,  432,  431,  430,
+      429,  428,  427,  426,  425,  421,  420,  419,  418,  417,
+      416,  415,  414,  413,  412,  411,  410,  409,  408,  407,
+      406,  405,  404,  403,  402,  401,  400,  399,  398,  397,
+      396,  395,  394,  393,  392,  391,  390,  389,  388,  387,
+      383,  382,  381,  380,  379,  378,  377,  376,  372,  368,
+      367,  366,  365,  364,  360,  359,  358,  357,  356,  355,
+      354,  353,  352,  348,  347,  346,  345,  344,  343,  342,
+      341,  337,  336,  335,  334,  333,  330,  329,  328,  327,
+
+      326,  325,  324,  323,  322,  321,  320,  319,  318,  317,
+      316,  315,  312,  311,  310,  309,  308,  307,  306,  305,
+      304,  303,  302,  298,  297,  296,  295,  294,  293,  292,
+      291,  290,  289,  288,  287,  286,  285,  284,  283,  282,
+      281,  280,  279,  278,  277,  276,  275,  274,  273,  272,
+      271,  270,  267,  266,  265,  264,  261,  260,  259,  258,
+      257,  256,  249,  248,  245,  244,  243,  236,  235,  234,
+      233,  232,  227,  226,  225,  224,  220,  219,  215,  212,
+      211,  210,  207,  206,  205,  199,  198,  197,  196,  195,
+      194,  193,  192,  187,  186,  185,  184,  183,  182,  181,
+
+      180,  176,  175,  174,  173,  172,  171,  168,  167,  166,
+      165,  132,  128,  112,   84,   79,   72,   66,   61,  820,
+       58,   58,    7,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820
 
-        8,    8,    8,    8,    8,    8,    8,   63,   63,   63,
-       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
-        8,    8,    8,   63,   63,   63,   63,   63,   63,   63,
-       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
-       63,   63,   63,   63,   63,   63,   63,   63,    8,    8,
-        8,    8,   67,   70,   72,   74,   74,   74,   74,   74,
-       74,   74,  101,   95,   75,  792,  102,   73,   71,   76,
-      129,   68,  103,   85,  130,  104,   93,   96,   97,  793,
-       77,   78,  158,   79,   79,   79,   79,   79,   79,   80,
-       86,  118,   87,   88,   94,   98,  794,   99,  156,  119,
-
-       81,  100,  109,  127,  110,  105,  157,   82,   83,  106,
-      120,  112,  195,  111,  107,  795,  128,   81,  215,  113,
-      108,  114,  121,  196,  115,  122,  216,  159,  123,  124,
-      116,   82,  131,  125,   83,   78,  126,   80,   80,   80,
-       80,   80,   80,   80,  134,  132,  796,  145,  176,  138,
-      146,  253,  177,  254,   81,  246,  139,  140,  147,  135,
-      141,   82,  136,  247,  149,  148,  142,  143,  150,  144,
-      153,   81,  151,  228,  154,  152,  162,  163,  166,  167,
-      168,  827,  184,  155,  197,   82,  185,  186,  237,  229,
-      230,  235,  220,  162,  163,  166,  167,  198,  221,  244,
-
-      245,  238,  797,  169,  168,  169,  236,  827,  170,  170,
-      170,  170,  170,  170,  170,  207,  223,  248,  208,  209,
-      275,  276,  210,  798,  211,  249,  166,  167,  257,  224,
-      257,  225,  799,  258,  258,  258,  258,  258,  258,  258,
-      259,  800,  259,  166,  167,  260,  260,  260,  260,  260,
-      260,  260,  170,  170,  170,  170,  170,  170,  170,  170,
-      170,  170,  170,  170,  170,  170,  262,  269,  306,  307,
-      308,  320,  801,  338,  802,  321,  803,  261,  554,  556,
-      270,  339,  345,  346,  347,  356,  357,  358,  555,  557,
-      262,  368,  369,  370,  261,  258,  258,  258,  258,  258,
-
-      258,  258,  258,  258,  258,  258,  258,  258,  258,  260,
-      260,  260,  260,  260,  260,  260,  376,  377,  378,  804,
-      163,  260,  260,  260,  260,  260,  260,  260,  380,  381,
-      382,  391,  392,  393,  429,  430,  431,  163,  805,  167,
-      449,  450,  451,  459,  460,  461,  462,  463,  464,  465,
-      466,  467,  806,  452,  453,  807,  167,  506,  507,  508,
-      532,  533,  534,  571,  572,  573,  808,  602,  603,  604,
-      509,  510,  809,  535,  536,  644,  574,  575,  810,  576,
-      605,  606,  622,  623,  624,  645,  811,  812,  813,  814,
-      646,  815,  816,  817,  674,  625,  626,  647,  694,  648,
-
-      649,  675,  818,  676,  819,  695,  820,  696,  821,  822,
-      823,  824,  825,  826,   58,   58,   58,   58,   58,   92,
-       92,   92,  161,  161,  161,   74,  164,  165,  164,  164,
-      164,  171,  171,  791,  790,  789,  788,  787,  786,  785,
-      784,  783,  782,  781,  780,  779,  778,  777,  776,  775,
-      774,  773,  772,  771,  770,  769,  768,  767,  766,  765,
-      764,  763,  762,  761,  760,  759,  758,  757,  756,  755,
-      754,  753,  752,  751,  750,  749,  748,  747,  746,  745,
-      744,  743,  742,  741,  740,  739,  738,  737,  736,  735,
-      734,  733,  732,  731,  730,  729,  728,  727,  726,  725,
-
-      724,  723,  722,  721,  720,  719,  718,  717,  716,  715,
-      714,  713,  712,  711,  710,  709,  708,  707,  706,  705,
-      704,  703,  702,  701,  700,  699,  698,  697,  693,  692,
-      691,  690,  689,  688,  687,  686,  685,  684,  683,  682,
-      681,  680,  679,  678,  677,  673,  672,  671,  670,  669,
-      668,  667,  666,  665,  664,  663,  662,  661,  660,  659,
-      658,  657,  656,  655,  654,  653,  652,  651,  650,  643,
-      642,  641,  640,  639,  638,  637,  636,  635,  634,  633,
-      632,  631,  630,  629,  628,  627,  621,  620,  619,  618,
-      617,  616,  615,  614,  613,  612,  611,  610,  609,  608,
-
-      607,  601,  600,  599,  598,  597,  596,  595,  594,  593,
-      592,  591,  590,  589,  588,  587,  586,  585,  584,  583,
-      582,  581,  580,  579,  578,  577,  570,  569,  568,  567,
-      566,  565,  564,  563,  562,  561,  560,  559,  558,  553,
-      552,  551,  550,  549,  548,  547,  546,  545,  544,  543,
-      542,  541,  540,  539,  538,  537,  531,  530,  529,  528,
-      527,  526,  525,  524,  523,  522,  521,  520,  519,  518,
-      517,  516,  515,  514,  513,  512,  511,  505,  504,  503,
-      502,  501,  500,  499,  498,  497,  496,  495,  494,  493,
-      492,  491,  490,  489,  488,  487,  486,  485,  484,  483,
-
-      482,  481,  480,  479,  478,  477,  476,  475,  474,  473,
-      472,  471,  470,  469,  468,  458,  457,  456,  455,  454,
-      448,  447,  446,  445,  444,  443,  442,  441,  440,  439,
-      438,  437,  436,  435,  434,  433,  432,  428,  427,  426,
-      425,  424,  423,  422,  421,  420,  419,  418,  417,  416,
-      415,  414,  413,  412,  411,  410,  409,  408,  407,  406,
-      405,  404,  403,  402,  401,  400,  399,  398,  397,  396,
-      395,  394,  390,  389,  388,  387,  386,  385,  384,  383,
-      379,  375,  374,  373,  372,  371,  367,  366,  365,  364,
-      363,  362,  361,  360,  359,  355,  354,  353,  352,  351,
-
-      350,  349,  348,  344,  343,  342,  341,  340,  337,  336,
-      335,  334,  333,  332,  331,  330,  329,  328,  327,  326,
-      325,  324,  323,  322,  319,  318,  317,  316,  315,  314,
-      313,  312,  311,  310,  309,  305,  304,  303,  302,  301,
-      300,  299,  298,  297,  296,  295,  294,  293,  292,  291,
-      290,  289,  288,  287,  286,  285,  284,  283,  282,  281,
-      280,  279,  278,  277,  274,  273,  272,  271,  268,  267,
-      266,  265,  264,  263,  256,  255,  252,  251,  250,  243,
-      242,  241,  240,  239,  234,  233,  232,  231,  227,  226,
-      222,  219,  218,  217,  214,  213,  212,  206,  205,  204,
-
-      203,  202,  201,  200,  199,  194,  193,  192,  191,  190,
-      189,  188,  187,  183,  182,  181,  180,  179,  178,  175,
-      174,  173,  172,  160,  137,  133,  117,   89,   84,   69,
-       64,  827,    7,  827,  827,  827,  827,  827,  827,  827,
-      827,  827,  827,  827,  827,  827,  827,  827,  827,  827,
-      827,  827,  827,  827,  827,  827,  827,  827,  827,  827,
-      827,  827,  827,  827,  827,  827,  827,  827,  827,  827,
-      827,  827,  827,  827,  827,  827,  827,  827,  827,  827,
-      827,  827,  827,  827,  827,  827,  827,  827,  827,  827,
-      827,  827,  827,  827,  827,  827,  827,  827,  827,  827,
-
-      827,  827,  827,  827,  827
     } ;
 
-static yyconst flex_int16_t yy_chk[1106] =
+static yyconst flex_int16_t yy_chk[1096] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -885,7 +881,7 @@ static yyconst flex_int16_t yy_chk[1106] =
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    3,    4,   12,   12,   28,   28,    3,    4,
+        1,    1,    5,    5,    5,    5,    5,    5,    5,    5,
         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
 
@@ -893,119 +889,118 @@ static yyconst flex_int16_t yy_chk[1106] =
         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
-        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
-        5,    5,   13,   17,   19,   20,   20,   20,   20,   20,
-       20,   20,   36,   34,   21,  774,   36,   19,   17,   21,
-       44,   13,   36,   26,   44,   36,   33,   34,   34,  775,
-       21,   22,   55,   22,   22,   22,   22,   22,   22,   22,
-       26,   41,   26,   26,   33,   35,  776,   35,   53,   41,
-
-       22,   35,   38,   43,   38,   37,   53,   22,   22,   37,
-       41,   39,  113,   38,   37,  777,   43,   22,  128,   39,
-       37,   39,   42,  113,   39,   42,  128,   55,   42,   42,
-       39,   22,   45,   42,   22,   23,   42,   23,   23,   23,
-       23,   23,   23,   23,   47,   45,  778,   50,   97,   49,
-       50,  155,   97,  155,   23,  150,   49,   49,   50,   47,
-       49,   23,   47,  150,   51,   50,   49,   49,   51,   49,
-       52,   23,   51,  137,   52,   51,   74,   74,   78,   78,
-       79,   79,  104,   52,  114,   23,  104,  104,  143,  137,
-      137,  142,  132,   74,   74,   78,   78,  114,  132,  149,
-
-      149,  143,  781,   81,   79,   81,  142,   79,   81,   81,
-       81,   81,   81,   81,   81,  124,  134,  151,  124,  124,
-      186,  186,  124,  782,  124,  151,  165,  165,  162,  134,
-      162,  134,  785,  162,  162,  162,  162,  162,  162,  162,
-      166,  786,  166,  165,  165,  166,  166,  166,  166,  166,
-      166,  166,  169,  169,  169,  169,  169,  169,  169,  170,
-      170,  170,  170,  170,  170,  170,  171,  181,  217,  217,
-      217,  229,  788,  246,  789,  229,  790,  170,  511,  512,
-      181,  246,  252,  252,  252,  268,  268,  268,  511,  512,
-      171,  280,  280,  280,  170,  257,  257,  257,  257,  257,
-
-      257,  257,  258,  258,  258,  258,  258,  258,  258,  259,
-      259,  259,  259,  259,  259,  259,  289,  289,  289,  792,
-      258,  260,  260,  260,  260,  260,  260,  260,  293,  293,
-      293,  302,  302,  302,  343,  343,  343,  258,  793,  260,
-      384,  384,  384,  395,  395,  395,  396,  396,  396,  397,
-      397,  397,  796,  384,  384,  797,  260,  448,  448,  448,
-      491,  491,  491,  528,  528,  528,  798,  562,  562,  562,
-      448,  448,  799,  491,  491,  611,  528,  528,  800,  528,
-      562,  562,  585,  585,  585,  611,  801,  803,  804,  805,
-      612,  806,  807,  808,  639,  585,  585,  612,  660,  612,
-
-      612,  639,  810,  639,  811,  660,  812,  660,  814,  818,
-      819,  820,  822,  823,  828,  828,  828,  828,  828,  829,
-      829,  829,  830,  830,  830,  831,  832,  833,  832,  832,
-      832,  834,  834,  773,  772,  771,  770,  769,  768,  765,
-      764,  763,  762,  761,  760,  759,  758,  757,  756,  753,
-      752,  749,  748,  747,  746,  745,  744,  742,  741,  740,
-      739,  738,  736,  734,  730,  729,  728,  727,  726,  724,
-      723,  722,  721,  720,  719,  718,  717,  716,  715,  714,
-      713,  712,  710,  709,  708,  707,  706,  705,  704,  703,
-      702,  700,  699,  698,  697,  696,  695,  694,  693,  692,
-
-      691,  690,  689,  688,  687,  686,  685,  684,  683,  682,
-      681,  680,  679,  678,  677,  676,  675,  674,  673,  671,
-      670,  669,  668,  667,  666,  665,  663,  662,  659,  657,
-      656,  655,  653,  652,  651,  650,  649,  648,  647,  646,
-      645,  644,  643,  642,  641,  638,  637,  636,  635,  634,
-      633,  631,  630,  629,  628,  626,  625,  624,  623,  622,
-      621,  620,  619,  618,  617,  616,  615,  614,  613,  608,
-      606,  605,  604,  603,  602,  598,  597,  596,  595,  594,
-      593,  592,  591,  590,  588,  587,  583,  582,  580,  579,
-      577,  576,  575,  574,  573,  572,  571,  567,  566,  565,
-
-      563,  561,  560,  559,  558,  557,  556,  555,  554,  553,
-      552,  550,  549,  544,  543,  542,  541,  539,  538,  536,
-      535,  534,  533,  532,  530,  529,  527,  526,  525,  524,
-      523,  522,  521,  520,  518,  517,  516,  515,  514,  510,
-      509,  508,  507,  506,  505,  502,  501,  500,  499,  498,
-      497,  496,  495,  494,  493,  492,  490,  489,  486,  481,
-      479,  478,  477,  475,  474,  471,  470,  469,  468,  457,
-      456,  455,  453,  452,  451,  450,  449,  446,  444,  443,
-      442,  440,  439,  438,  437,  435,  433,  432,  427,  426,
-      424,  423,  422,  421,  420,  419,  418,  417,  416,  415,
-
-      414,  412,  411,  410,  409,  408,  407,  406,  404,  403,
-      402,  401,  400,  399,  398,  394,  390,  389,  388,  385,
-      383,  373,  371,  367,  366,  365,  364,  362,  361,  359,
-      354,  353,  352,  351,  350,  349,  344,  342,  341,  340,
-      339,  338,  336,  335,  332,  331,  330,  329,  328,  327,
-      326,  325,  324,  323,  322,  321,  320,  319,  318,  317,
-      316,  315,  314,  313,  312,  311,  310,  309,  308,  307,
-      306,  303,  301,  300,  299,  298,  297,  296,  295,  294,
-      292,  288,  286,  285,  284,  283,  279,  278,  277,  276,
-      275,  274,  273,  272,  271,  267,  265,  264,  263,  256,
-
-      255,  254,  253,  251,  250,  249,  248,  247,  245,  244,
-      243,  242,  241,  240,  239,  238,  237,  236,  235,  234,
-      233,  232,  231,  230,  228,  227,  226,  225,  224,  223,
-      222,  221,  220,  219,  218,  216,  215,  214,  213,  212,
-      211,  210,  209,  208,  207,  206,  205,  204,  203,  202,
-      201,  200,  198,  197,  196,  195,  194,  193,  192,  191,
-      190,  189,  188,  187,  185,  184,  183,  182,  180,  179,
-      178,  177,  176,  174,  157,  156,  154,  153,  152,  148,
-      147,  146,  145,  144,  141,  140,  139,  138,  136,  135,
-      133,  131,  130,  129,  127,  126,  125,  123,  122,  120,
-
-      119,  118,  117,  116,  115,  112,  111,  110,  109,  108,
-      107,  106,  105,  103,  102,  101,  100,   99,   98,   96,
-       95,   91,   87,   60,   48,   46,   40,   27,   24,   16,
-       11,    7,  827,  827,  827,  827,  827,  827,  827,  827,
-      827,  827,  827,  827,  827,  827,  827,  827,  827,  827,
-      827,  827,  827,  827,  827,  827,  827,  827,  827,  827,
-      827,  827,  827,  827,  827,  827,  827,  827,  827,  827,
-      827,  827,  827,  827,  827,  827,  827,  827,  827,  827,
-      827,  827,  827,  827,  827,  827,  827,  827,  827,  827,
-      827,  827,  827,  827,  827,  827,  827,  827,  827,  827,
-
-      827,  827,  827,  827,  827
+        5,    5,    5,    5,   12,   12,   13,   17,   19,   20,
+       20,   20,   20,   20,   20,   20,   28,   28,   26,   53,
+       44,   19,   17,   33,   44,   13,   22,   53,   22,   22,
+       22,   22,   22,   22,   22,   26,   34,   26,   26,  765,
+       35,   33,   35,   43,   36,   22,   35,   38,   36,   38,
+       34,   34,   22,   22,   36,   37,   43,   36,   38,   37,
+
+       42,  108,   22,   42,   37,   45,   42,   42,   55,   92,
+       37,   42,  108,   92,   42,  766,   22,   47,   45,   22,
+       23,   39,   23,   23,   23,   23,   23,   23,   23,   39,
+       41,   39,   47,  123,   39,   47,  127,   49,   41,   23,
+       39,  123,  127,  767,   49,   49,   23,   50,   49,   41,
+       50,  144,  144,   55,   49,   49,   23,   49,   50,   52,
+       51,   71,   71,   52,   51,   50,   73,   73,   51,  145,
+       23,   51,   52,   74,   74,  179,  179,  145,   71,   71,
+       76,  768,   76,   73,   73,   76,   76,   76,   76,   76,
+       76,   76,  109,  137,   99,  164,  129,   74,   99,   99,
+
+       74,  132,  138,  119,  769,  109,  119,  119,  137,  129,
+      119,  129,  119,  146,  150,  138,  150,  132,  132,  164,
+      156,  146,  156,  158,  158,  156,  156,  156,  156,  156,
+      156,  156,  210,  210,  210,  770,  771,  159,  774,  159,
+      158,  158,  159,  159,  159,  159,  159,  159,  159,  162,
+      162,  162,  162,  162,  162,  162,  163,  163,  163,  163,
+      163,  163,  163,  174,  222,  239,  775,  778,  222,  245,
+      245,  245,  779,  239,  163,  781,  174,  250,  250,  250,
+      250,  250,  250,  250,  251,  251,  251,  251,  251,  251,
+      251,  163,  252,  252,  252,  252,  252,  252,  252,  261,
+
+      261,  261,  251,  253,  253,  253,  253,  253,  253,  253,
+      273,  273,  273,  282,  282,  282,  286,  286,  286,  251,
+      782,  253,  295,  295,  295,  336,  336,  336,  377,  377,
+      377,  388,  388,  388,  389,  389,  389,  783,  253,  785,
+      786,  377,  377,  390,  390,  390,  441,  441,  441,  484,
+      484,  484,  789,  790,  504,  505,  521,  521,  521,  441,
+      441,  604,  484,  484,  504,  505,  555,  555,  555,  521,
+      521,  604,  521,  578,  578,  578,  632,  791,  792,  555,
+      555,  605,  793,  632,  794,  632,  578,  578,  605,  653,
+      605,  605,  796,  797,  798,  799,  653,  800,  653,  801,
+
+      803,  804,  805,  807,  811,  812,  813,  815,  816,  821,
+      821,  821,  821,  822,  822,  822,  823,  823,  823,  824,
+      825,  826,  826,  764,  763,  762,  761,  758,  757,  756,
+      755,  754,  753,  752,  751,  750,  749,  746,  745,  742,
+      741,  740,  739,  738,  737,  735,  734,  733,  732,  731,
+      729,  727,  723,  722,  721,  720,  719,  717,  716,  715,
+      714,  713,  712,  711,  710,  709,  708,  707,  706,  705,
+      703,  702,  701,  700,  699,  698,  697,  696,  695,  693,
+      692,  691,  690,  689,  688,  687,  686,  685,  684,  683,
+      682,  681,  680,  679,  678,  677,  676,  675,  674,  673,
+
+      672,  671,  670,  669,  668,  667,  666,  664,  663,  662,
+      661,  660,  659,  658,  656,  655,  652,  650,  649,  648,
+      646,  645,  644,  643,  642,  641,  640,  639,  638,  637,
+      636,  635,  634,  631,  630,  629,  628,  627,  626,  624,
+      623,  622,  621,  619,  618,  617,  616,  615,  614,  613,
+      612,  611,  610,  609,  608,  607,  606,  601,  599,  598,
+      597,  596,  595,  591,  590,  589,  588,  587,  586,  585,
+      584,  583,  581,  580,  576,  575,  573,  572,  570,  569,
+      568,  567,  566,  565,  564,  560,  559,  558,  556,  554,
+      553,  552,  551,  550,  549,  548,  547,  546,  545,  543,
+
+      542,  537,  536,  535,  534,  532,  531,  529,  528,  527,
+      526,  525,  523,  522,  520,  519,  518,  517,  516,  515,
+      514,  513,  511,  510,  509,  508,  507,  503,  502,  501,
+      500,  499,  498,  495,  494,  493,  492,  491,  490,  489,
+      488,  487,  486,  485,  483,  482,  479,  474,  472,  471,
+      470,  468,  467,  464,  463,  462,  461,  450,  449,  448,
+      446,  445,  444,  443,  442,  439,  437,  436,  435,  433,
+      432,  431,  430,  428,  426,  425,  420,  419,  417,  416,
+      415,  414,  413,  412,  411,  410,  409,  408,  407,  405,
+      404,  403,  402,  401,  400,  399,  397,  396,  395,  394,
+
+      393,  392,  391,  387,  383,  382,  381,  378,  376,  366,
+      364,  360,  359,  358,  357,  355,  354,  352,  347,  346,
+      345,  344,  343,  342,  337,  335,  334,  333,  332,  331,
+      329,  328,  325,  324,  323,  322,  321,  320,  319,  318,
+      317,  316,  315,  314,  313,  312,  311,  310,  309,  308,
+      307,  306,  305,  304,  303,  302,  301,  300,  299,  296,
+      294,  293,  292,  291,  290,  289,  288,  287,  285,  281,
+      279,  278,  277,  276,  272,  271,  270,  269,  268,  267,
+      266,  265,  264,  260,  258,  257,  256,  249,  248,  247,
+      246,  244,  243,  242,  241,  240,  238,  237,  236,  235,
+
+      234,  233,  232,  231,  230,  229,  228,  227,  226,  225,
+      224,  223,  221,  220,  219,  218,  217,  216,  215,  214,
+      213,  212,  211,  209,  208,  207,  206,  205,  204,  203,
+      202,  201,  200,  199,  198,  197,  196,  195,  194,  193,
+      191,  190,  189,  188,  187,  186,  185,  184,  183,  182,
+      181,  180,  178,  177,  176,  175,  173,  172,  171,  170,
+      169,  167,  152,  151,  149,  148,  147,  143,  142,  141,
+      140,  139,  136,  135,  134,  133,  131,  130,  128,  126,
+      125,  124,  122,  121,  120,  118,  117,  115,  114,  113,
+      112,  111,  110,  107,  106,  105,  104,  103,  102,  101,
+
+      100,   98,   97,   96,   95,   94,   93,   91,   90,   86,
+       82,   48,   46,   40,   27,   24,   21,   16,   11,    7,
+        4,    3,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820
+
     } ;
 
 /* Table of booleans, true if rule could match eol. */
-static yyconst flex_int32_t yy_rule_can_match_eol[245] =
+static yyconst flex_int32_t yy_rule_can_match_eol[240] =
     {   0,
-0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
@@ -1016,8 +1011,8 @@ static yyconst flex_int32_t yy_rule_can_match_eol[245] =
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 1, 0, 0,     };
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 
+        };
 
 /* The intent behind this definition is that it'll catch
  * any uses of REJECT which flex missed.
@@ -1209,12 +1204,6 @@ static int input (yyscan_t yyscanner );
 
 #endif
 
-    static void yy_push_state (int _new_state ,yyscan_t yyscanner);
-    
-    static void yy_pop_state (yyscan_t yyscanner );
-    
-    static int yy_top_state (yyscan_t yyscanner );
-    
 /* Amount of stuff to slurp up with each read. */
 #ifndef YY_READ_BUF_SIZE
 #ifdef __ia64__
@@ -1360,8 +1349,6 @@ YY_DECL
 
     TParseContext* context = yyextra;
 
-    /* Single-line comments */
-
        while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
                {
                yy_cp = yyg->yy_c_buf_p;
@@ -1387,13 +1374,13 @@ yy_match:
                        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                                {
                                yy_current_state = (int) yy_def[yy_current_state];
-                               if ( yy_current_state >= 828 )
+                               if ( yy_current_state >= 821 )
                                        yy_c = yy_meta[(unsigned int) yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
                        ++yy_cp;
                        }
-               while ( yy_current_state != 827 );
+               while ( yy_current_state != 820 );
                yy_cp = yyg->yy_last_accepting_cpos;
                yy_current_state = yyg->yy_last_accepting_state;
 
@@ -1427,332 +1414,318 @@ do_action:    /* This label is used only to access EOF actions. */
 
 case 1:
 YY_RULE_SETUP
-;
+{ return(INVARIANT); }
        YY_BREAK
-/* Multi-line comments */
 case 2:
 YY_RULE_SETUP
-{ yy_push_state(COMMENT, yyscanner); }
+{ return(HIGH_PRECISION); }
        YY_BREAK
 case 3:
+YY_RULE_SETUP
+{ return(MEDIUM_PRECISION); }
+       YY_BREAK
 case 4:
-/* rule 4 can match eol */
 YY_RULE_SETUP
-;
+{ return(LOW_PRECISION); }
        YY_BREAK
 case 5:
 YY_RULE_SETUP
-{ yy_pop_state(yyscanner); }
+{ return(PRECISION); }
        YY_BREAK
 case 6:
 YY_RULE_SETUP
-{ return(INVARIANT); }
+{ return ES2_keyword_ES3_reserved(context, ATTRIBUTE); }
        YY_BREAK
 case 7:
 YY_RULE_SETUP
-{ return(HIGH_PRECISION); }
+{ return(CONST_QUAL); }
        YY_BREAK
 case 8:
 YY_RULE_SETUP
-{ return(MEDIUM_PRECISION); }
+{ return(UNIFORM); }
        YY_BREAK
 case 9:
 YY_RULE_SETUP
-{ return(LOW_PRECISION); }
+{ return ES2_keyword_ES3_reserved(context, VARYING); }
        YY_BREAK
 case 10:
 YY_RULE_SETUP
-{ return(PRECISION); }
+{ return(BREAK); }
        YY_BREAK
 case 11:
 YY_RULE_SETUP
-{ return ES2_keyword_ES3_reserved(context, ATTRIBUTE); }
+{ return(CONTINUE); }
        YY_BREAK
 case 12:
 YY_RULE_SETUP
-{ return(CONST_QUAL); }
+{ return(DO); }
        YY_BREAK
 case 13:
 YY_RULE_SETUP
-{ return(UNIFORM); }
+{ return(FOR); }
        YY_BREAK
 case 14:
 YY_RULE_SETUP
-{ return ES2_keyword_ES3_reserved(context, VARYING); }
+{ return(WHILE); }
        YY_BREAK
 case 15:
 YY_RULE_SETUP
-{ return(BREAK); }
+{ return(IF); }
        YY_BREAK
 case 16:
 YY_RULE_SETUP
-{ return(CONTINUE); }
+{ return(ELSE); }
        YY_BREAK
 case 17:
 YY_RULE_SETUP
-{ return(DO); }
+{ return ES2_reserved_ES3_keyword(context, SWITCH); }
        YY_BREAK
 case 18:
 YY_RULE_SETUP
-{ return(FOR); }
+{ return ES2_reserved_ES3_keyword(context, CASE); }
        YY_BREAK
 case 19:
 YY_RULE_SETUP
-{ return(WHILE); }
+{ return ES2_reserved_ES3_keyword(context, DEFAULT); }
        YY_BREAK
 case 20:
 YY_RULE_SETUP
-{ return(IF); }
+{ return ES2_reserved_ES3_keyword(context, CENTROID); }
        YY_BREAK
 case 21:
 YY_RULE_SETUP
-{ return(ELSE); }
+{ return ES2_reserved_ES3_keyword(context, FLAT); }
        YY_BREAK
 case 22:
 YY_RULE_SETUP
-{ return ES2_reserved_ES3_keyword(context, SWITCH); }
+{ return ES2_reserved_ES3_keyword(context, SMOOTH); }
        YY_BREAK
 case 23:
 YY_RULE_SETUP
-{ return ES2_reserved_ES3_keyword(context, CASE); }
+{ return(IN_QUAL); }
        YY_BREAK
 case 24:
 YY_RULE_SETUP
-{ return ES2_reserved_ES3_keyword(context, DEFAULT); }
+{ return(OUT_QUAL); }
        YY_BREAK
 case 25:
 YY_RULE_SETUP
-{ return ES2_reserved_ES3_keyword(context, CENTROID); }
+{ return(INOUT_QUAL); }
        YY_BREAK
 case 26:
 YY_RULE_SETUP
-{ return ES2_reserved_ES3_keyword(context, FLAT); }
+{ context->lexAfterType = true; return(FLOAT_TYPE); }
        YY_BREAK
 case 27:
 YY_RULE_SETUP
-{ return ES2_reserved_ES3_keyword(context, SMOOTH); }
+{ context->lexAfterType = true; return(INT_TYPE); }
        YY_BREAK
 case 28:
 YY_RULE_SETUP
-{ return(IN_QUAL); }
+{ return ES2_identifier_ES3_keyword(context, UINT_TYPE); }
        YY_BREAK
 case 29:
 YY_RULE_SETUP
-{ return(OUT_QUAL); }
+{ context->lexAfterType = true; return(VOID_TYPE); }
        YY_BREAK
 case 30:
 YY_RULE_SETUP
-{ return(INOUT_QUAL); }
+{ context->lexAfterType = true; return(BOOL_TYPE); }
        YY_BREAK
 case 31:
 YY_RULE_SETUP
-{ context->lexAfterType = true; return(FLOAT_TYPE); }
+{ yylval->lex.b = true;  return(BOOLCONSTANT); }
        YY_BREAK
 case 32:
 YY_RULE_SETUP
-{ context->lexAfterType = true; return(INT_TYPE); }
+{ yylval->lex.b = false; return(BOOLCONSTANT); }
        YY_BREAK
 case 33:
 YY_RULE_SETUP
-{ return ES2_identifier_ES3_keyword(context, UINT_TYPE); }
+{ return(DISCARD); }
        YY_BREAK
 case 34:
 YY_RULE_SETUP
-{ context->lexAfterType = true; return(VOID_TYPE); }
+{ return(RETURN); }
        YY_BREAK
 case 35:
 YY_RULE_SETUP
-{ context->lexAfterType = true; return(BOOL_TYPE); }
+{ context->lexAfterType = true; return(MATRIX2); }
        YY_BREAK
 case 36:
 YY_RULE_SETUP
-{ yylval->lex.b = true;  return(BOOLCONSTANT); }
+{ context->lexAfterType = true; return(MATRIX3); }
        YY_BREAK
 case 37:
 YY_RULE_SETUP
-{ yylval->lex.b = false; return(BOOLCONSTANT); }
+{ context->lexAfterType = true; return(MATRIX4); }
        YY_BREAK
 case 38:
 YY_RULE_SETUP
-{ return(DISCARD); }
+{ return ES2_identifier_ES3_keyword(context, MATRIX2); }
        YY_BREAK
 case 39:
 YY_RULE_SETUP
-{ return(RETURN); }
+{ return ES2_identifier_ES3_keyword(context, MATRIX3); }
        YY_BREAK
 case 40:
 YY_RULE_SETUP
-{ context->lexAfterType = true; return(MATRIX2); }
+{ return ES2_identifier_ES3_keyword(context, MATRIX4); }
        YY_BREAK
 case 41:
 YY_RULE_SETUP
-{ context->lexAfterType = true; return(MATRIX3); }
+{ return ES2_identifier_ES3_keyword(context, MATRIX2x3); }
        YY_BREAK
 case 42:
 YY_RULE_SETUP
-{ context->lexAfterType = true; return(MATRIX4); }
+{ return ES2_identifier_ES3_keyword(context, MATRIX3x2); }
        YY_BREAK
 case 43:
 YY_RULE_SETUP
-{ return ES2_identifier_ES3_keyword(context, MATRIX2); }
+{ return ES2_identifier_ES3_keyword(context, MATRIX2x4); }
        YY_BREAK
 case 44:
 YY_RULE_SETUP
-{ return ES2_identifier_ES3_keyword(context, MATRIX3); }
+{ return ES2_identifier_ES3_keyword(context, MATRIX4x2); }
        YY_BREAK
 case 45:
 YY_RULE_SETUP
-{ return ES2_identifier_ES3_keyword(context, MATRIX4); }
+{ return ES2_identifier_ES3_keyword(context, MATRIX3x4); }
        YY_BREAK
 case 46:
 YY_RULE_SETUP
-{ return ES2_identifier_ES3_keyword(context, MATRIX2x3); }
+{ return ES2_identifier_ES3_keyword(context, MATRIX4x3); }
        YY_BREAK
 case 47:
 YY_RULE_SETUP
-{ return ES2_identifier_ES3_keyword(context, MATRIX3x2); }
+{ context->lexAfterType = true; return (VEC2); }
        YY_BREAK
 case 48:
 YY_RULE_SETUP
-{ return ES2_identifier_ES3_keyword(context, MATRIX2x4); }
+{ context->lexAfterType = true; return (VEC3); }
        YY_BREAK
 case 49:
 YY_RULE_SETUP
-{ return ES2_identifier_ES3_keyword(context, MATRIX4x2); }
+{ context->lexAfterType = true; return (VEC4); }
        YY_BREAK
 case 50:
 YY_RULE_SETUP
-{ return ES2_identifier_ES3_keyword(context, MATRIX3x4); }
+{ context->lexAfterType = true; return (IVEC2); }
        YY_BREAK
 case 51:
 YY_RULE_SETUP
-{ return ES2_identifier_ES3_keyword(context, MATRIX4x3); }
+{ context->lexAfterType = true; return (IVEC3); }
        YY_BREAK
 case 52:
 YY_RULE_SETUP
-{ context->lexAfterType = true; return (VEC2); }
+{ context->lexAfterType = true; return (IVEC4); }
        YY_BREAK
 case 53:
 YY_RULE_SETUP
-{ context->lexAfterType = true; return (VEC3); }
+{ return ES2_identifier_ES3_keyword(context, UVEC2); }
        YY_BREAK
 case 54:
 YY_RULE_SETUP
-{ context->lexAfterType = true; return (VEC4); }
+{ return ES2_identifier_ES3_keyword(context, UVEC3); }
        YY_BREAK
 case 55:
 YY_RULE_SETUP
-{ context->lexAfterType = true; return (IVEC2); }
+{ return ES2_identifier_ES3_keyword(context, UVEC4); }
        YY_BREAK
 case 56:
 YY_RULE_SETUP
-{ context->lexAfterType = true; return (IVEC3); }
+{ context->lexAfterType = true; return (BVEC2); }
        YY_BREAK
 case 57:
 YY_RULE_SETUP
-{ context->lexAfterType = true; return (IVEC4); }
+{ context->lexAfterType = true; return (BVEC3); }
        YY_BREAK
 case 58:
 YY_RULE_SETUP
-{ return ES2_identifier_ES3_keyword(context, UVEC2); }
+{ context->lexAfterType = true; return (BVEC4); }
        YY_BREAK
 case 59:
 YY_RULE_SETUP
-{ return ES2_identifier_ES3_keyword(context, UVEC3); }
+{ context->lexAfterType = true; return SAMPLER2D; }
        YY_BREAK
 case 60:
 YY_RULE_SETUP
-{ return ES2_identifier_ES3_keyword(context, UVEC4); }
+{ context->lexAfterType = true; return SAMPLERCUBE; }
        YY_BREAK
 case 61:
 YY_RULE_SETUP
-{ context->lexAfterType = true; return (BVEC2); }
+{ context->lexAfterType = true; return SAMPLER_EXTERNAL_OES; }
        YY_BREAK
 case 62:
 YY_RULE_SETUP
-{ context->lexAfterType = true; return (BVEC3); }
+{ context->lexAfterType = true; return SAMPLER3D; }
        YY_BREAK
 case 63:
 YY_RULE_SETUP
-{ context->lexAfterType = true; return (BVEC4); }
+{ return ES2_reserved_ES3_keyword(context, SAMPLER3DRECT); }
        YY_BREAK
 case 64:
 YY_RULE_SETUP
-{ context->lexAfterType = true; return SAMPLER2D; }
+{ return  ES2_identifier_ES3_keyword(context, SAMPLER2DARRAY); }
        YY_BREAK
 case 65:
 YY_RULE_SETUP
-{ context->lexAfterType = true; return SAMPLERCUBE; }
+{ return  ES2_identifier_ES3_keyword(context, ISAMPLER2D); }
        YY_BREAK
 case 66:
 YY_RULE_SETUP
-{ context->lexAfterType = true; return SAMPLER_EXTERNAL_OES; }
+{ return  ES2_identifier_ES3_keyword(context, ISAMPLER3D); }
        YY_BREAK
 case 67:
 YY_RULE_SETUP
-{ context->lexAfterType = true; return SAMPLER3D; }
+{ return  ES2_identifier_ES3_keyword(context, ISAMPLERCUBE); }
        YY_BREAK
 case 68:
 YY_RULE_SETUP
-{ return ES2_reserved_ES3_keyword(context, SAMPLER3DRECT); }
+{ return  ES2_identifier_ES3_keyword(context, ISAMPLER2DARRAY); }
        YY_BREAK
 case 69:
 YY_RULE_SETUP
-{ return  ES2_identifier_ES3_keyword(context, SAMPLER2DARRAY); }
+{ return  ES2_identifier_ES3_keyword(context, USAMPLER2D); }
        YY_BREAK
 case 70:
 YY_RULE_SETUP
-{ return  ES2_identifier_ES3_keyword(context, ISAMPLER2D); }
+{ return  ES2_identifier_ES3_keyword(context, USAMPLER3D); }
        YY_BREAK
 case 71:
 YY_RULE_SETUP
-{ return  ES2_identifier_ES3_keyword(context, ISAMPLER3D); }
+{ return  ES2_identifier_ES3_keyword(context, USAMPLERCUBE); }
        YY_BREAK
 case 72:
 YY_RULE_SETUP
-{ return  ES2_identifier_ES3_keyword(context, ISAMPLERCUBE); }
+{ return  ES2_identifier_ES3_keyword(context, USAMPLER2DARRAY); }
        YY_BREAK
 case 73:
 YY_RULE_SETUP
-{ return  ES2_identifier_ES3_keyword(context, ISAMPLER2DARRAY); }
+{ return ES2_reserved_ES3_keyword(context, SAMPLER2DSHADOW); }
        YY_BREAK
 case 74:
 YY_RULE_SETUP
-{ return  ES2_identifier_ES3_keyword(context, USAMPLER2D); }
+{ return  ES2_identifier_ES3_keyword(context, SAMPLERCUBESHADOW); }
        YY_BREAK
 case 75:
 YY_RULE_SETUP
-{ return  ES2_identifier_ES3_keyword(context, USAMPLER3D); }
+{ return  ES2_identifier_ES3_keyword(context, SAMPLER2DARRAYSHADOW); }
        YY_BREAK
 case 76:
 YY_RULE_SETUP
-{ return  ES2_identifier_ES3_keyword(context, USAMPLERCUBE); }
+{ context->lexAfterType = true; return(STRUCT); }
        YY_BREAK
 case 77:
 YY_RULE_SETUP
-{ return  ES2_identifier_ES3_keyword(context, USAMPLER2DARRAY); }
+{ return ES2_identifier_ES3_keyword(context, LAYOUT); }
        YY_BREAK
+/* Reserved keywords for GLSL ES 3.00 that are not reserved for GLSL ES 1.00 */
 case 78:
-YY_RULE_SETUP
-{ return ES2_reserved_ES3_keyword(context, SAMPLER2DSHADOW); }
-       YY_BREAK
 case 79:
-YY_RULE_SETUP
-{ return  ES2_identifier_ES3_keyword(context, SAMPLERCUBESHADOW); }
-       YY_BREAK
 case 80:
-YY_RULE_SETUP
-{ return  ES2_identifier_ES3_keyword(context, SAMPLER2DARRAYSHADOW); }
-       YY_BREAK
 case 81:
-YY_RULE_SETUP
-{ context->lexAfterType = true; return(STRUCT); }
-       YY_BREAK
 case 82:
-YY_RULE_SETUP
-{ return ES2_identifier_ES3_keyword(context, LAYOUT); }
-       YY_BREAK
-/* Reserved keywords for GLSL ES 3.00 that are not reserved for GLSL ES 1.00 */
 case 83:
 case 84:
 case 85:
@@ -1804,11 +1777,6 @@ case 130:
 case 131:
 case 132:
 case 133:
-case 134:
-case 135:
-case 136:
-case 137:
-case 138:
 YY_RULE_SETUP
 { 
     if (context->getShaderVersion() < 300) {
@@ -1819,7 +1787,7 @@ YY_RULE_SETUP
 }
        YY_BREAK
 /* Reserved keywords in GLSL ES 1.00 that are not reserved in GLSL ES 3.00 */
-case 139:
+case 134:
 YY_RULE_SETUP
 {
     if (context->getShaderVersion() >= 300)
@@ -1832,6 +1800,11 @@ YY_RULE_SETUP
 }
        YY_BREAK
 /* Reserved keywords */
+case 135:
+case 136:
+case 137:
+case 138:
+case 139:
 case 140:
 case 141:
 case 142:
@@ -1869,250 +1842,245 @@ case 173:
 case 174:
 case 175:
 case 176:
-case 177:
-case 178:
-case 179:
-case 180:
-case 181:
 YY_RULE_SETUP
 { return reserved_word(yyscanner); }
        YY_BREAK
-case 182:
+case 177:
 YY_RULE_SETUP
 {
    yylval->lex.string = NewPoolTString(yytext); 
    return check_type(yyscanner);
 }
        YY_BREAK
-case 183:
+case 178:
 YY_RULE_SETUP
 { return int_constant(yyscanner); }
        YY_BREAK
-case 184:
+case 179:
 YY_RULE_SETUP
 { return int_constant(yyscanner); }
        YY_BREAK
-case 185:
+case 180:
 YY_RULE_SETUP
 { return int_constant(yyscanner); }
        YY_BREAK
-case 186:
+case 181:
 YY_RULE_SETUP
 { return uint_constant(context); }
        YY_BREAK
-case 187:
+case 182:
 YY_RULE_SETUP
 { return uint_constant(context); }
        YY_BREAK
-case 188:
+case 183:
 YY_RULE_SETUP
 { return uint_constant(context); }
        YY_BREAK
-case 189:
+case 184:
 YY_RULE_SETUP
 { return float_constant(yyscanner); }
        YY_BREAK
-case 190:
+case 185:
 YY_RULE_SETUP
 { return float_constant(yyscanner); }
        YY_BREAK
-case 191:
+case 186:
 YY_RULE_SETUP
 { return float_constant(yyscanner); }
        YY_BREAK
-case 192:
+case 187:
 YY_RULE_SETUP
 { return floatsuffix_check(context); }
        YY_BREAK
-case 193:
+case 188:
 YY_RULE_SETUP
 { return floatsuffix_check(context); }
        YY_BREAK
-case 194:
+case 189:
 YY_RULE_SETUP
 { return floatsuffix_check(context); }
        YY_BREAK
-case 195:
+case 190:
 YY_RULE_SETUP
 {  return(ADD_ASSIGN); }
        YY_BREAK
-case 196:
+case 191:
 YY_RULE_SETUP
 {  return(SUB_ASSIGN); }
        YY_BREAK
-case 197:
+case 192:
 YY_RULE_SETUP
 {  return(MUL_ASSIGN); }
        YY_BREAK
-case 198:
+case 193:
 YY_RULE_SETUP
 {  return(DIV_ASSIGN); }
        YY_BREAK
-case 199:
+case 194:
 YY_RULE_SETUP
 {  return(MOD_ASSIGN); }
        YY_BREAK
-case 200:
+case 195:
 YY_RULE_SETUP
 {  return(LEFT_ASSIGN); }
        YY_BREAK
-case 201:
+case 196:
 YY_RULE_SETUP
 {  return(RIGHT_ASSIGN); }
        YY_BREAK
-case 202:
+case 197:
 YY_RULE_SETUP
 {  return(AND_ASSIGN); }
        YY_BREAK
-case 203:
+case 198:
 YY_RULE_SETUP
 {  return(XOR_ASSIGN); }
        YY_BREAK
-case 204:
+case 199:
 YY_RULE_SETUP
 {  return(OR_ASSIGN); }
        YY_BREAK
-case 205:
+case 200:
 YY_RULE_SETUP
 {  return(INC_OP); }
        YY_BREAK
-case 206:
+case 201:
 YY_RULE_SETUP
 {  return(DEC_OP); }
        YY_BREAK
-case 207:
+case 202:
 YY_RULE_SETUP
 {  return(AND_OP); }
        YY_BREAK
-case 208:
+case 203:
 YY_RULE_SETUP
 {  return(OR_OP); }
        YY_BREAK
-case 209:
+case 204:
 YY_RULE_SETUP
 {  return(XOR_OP); }
        YY_BREAK
-case 210:
+case 205:
 YY_RULE_SETUP
 {  return(LE_OP); }
        YY_BREAK
-case 211:
+case 206:
 YY_RULE_SETUP
 {  return(GE_OP); }
        YY_BREAK
-case 212:
+case 207:
 YY_RULE_SETUP
 {  return(EQ_OP); }
        YY_BREAK
-case 213:
+case 208:
 YY_RULE_SETUP
 {  return(NE_OP); }
        YY_BREAK
-case 214:
+case 209:
 YY_RULE_SETUP
 {  return(LEFT_OP); }
        YY_BREAK
-case 215:
+case 210:
 YY_RULE_SETUP
 {  return(RIGHT_OP); }
        YY_BREAK
-case 216:
+case 211:
 YY_RULE_SETUP
 { context->lexAfterType = false; return(SEMICOLON); }
        YY_BREAK
-case 217:
+case 212:
 YY_RULE_SETUP
 { context->lexAfterType = false; return(LEFT_BRACE); }
        YY_BREAK
-case 218:
+case 213:
 YY_RULE_SETUP
 { return(RIGHT_BRACE); }
        YY_BREAK
-case 219:
+case 214:
 YY_RULE_SETUP
 { if (context->inTypeParen) context->lexAfterType = false; return(COMMA); }
        YY_BREAK
-case 220:
+case 215:
 YY_RULE_SETUP
 { return(COLON); }
        YY_BREAK
-case 221:
+case 216:
 YY_RULE_SETUP
 { context->lexAfterType = false; return(EQUAL); }
        YY_BREAK
-case 222:
+case 217:
 YY_RULE_SETUP
 { context->lexAfterType = false; context->inTypeParen = true; return(LEFT_PAREN); }
        YY_BREAK
-case 223:
+case 218:
 YY_RULE_SETUP
 { context->inTypeParen = false; return(RIGHT_PAREN); }
        YY_BREAK
-case 224:
+case 219:
 YY_RULE_SETUP
 { return(LEFT_BRACKET); }
        YY_BREAK
-case 225:
+case 220:
 YY_RULE_SETUP
 { return(RIGHT_BRACKET); }
        YY_BREAK
-case 226:
+case 221:
 YY_RULE_SETUP
 { BEGIN(FIELDS);  return(DOT); }
        YY_BREAK
-case 227:
+case 222:
 YY_RULE_SETUP
 { return(BANG); }
        YY_BREAK
-case 228:
+case 223:
 YY_RULE_SETUP
 { return(DASH); }
        YY_BREAK
-case 229:
+case 224:
 YY_RULE_SETUP
 { return(TILDE); }
        YY_BREAK
-case 230:
+case 225:
 YY_RULE_SETUP
 { return(PLUS); }
        YY_BREAK
-case 231:
+case 226:
 YY_RULE_SETUP
 { return(STAR); }
        YY_BREAK
-case 232:
+case 227:
 YY_RULE_SETUP
 { return(SLASH); }
        YY_BREAK
-case 233:
+case 228:
 YY_RULE_SETUP
 { return(PERCENT); }
        YY_BREAK
-case 234:
+case 229:
 YY_RULE_SETUP
 { return(LEFT_ANGLE); }
        YY_BREAK
-case 235:
+case 230:
 YY_RULE_SETUP
 { return(RIGHT_ANGLE); }
        YY_BREAK
-case 236:
+case 231:
 YY_RULE_SETUP
 { return(VERTICAL_BAR); }
        YY_BREAK
-case 237:
+case 232:
 YY_RULE_SETUP
 { return(CARET); }
        YY_BREAK
-case 238:
+case 233:
 YY_RULE_SETUP
 { return(AMPERSAND); }
        YY_BREAK
-case 239:
+case 234:
 YY_RULE_SETUP
 { return(QUESTION); }
        YY_BREAK
-case 240:
+case 235:
 YY_RULE_SETUP
 { 
     BEGIN(INITIAL);
@@ -2120,12 +2088,12 @@ YY_RULE_SETUP
     return FIELD_SELECTION;
 }
        YY_BREAK
-case 241:
+case 236:
 YY_RULE_SETUP
 {}
        YY_BREAK
-case 242:
-/* rule 242 can match eol */
+case 237:
+/* rule 237 can match eol */
 YY_RULE_SETUP
 {  }
        YY_BREAK
@@ -2134,11 +2102,11 @@ case YY_STATE_EOF(COMMENT):
 case YY_STATE_EOF(FIELDS):
 { context->AfterEOF = true; yyterminate(); }
        YY_BREAK
-case 243:
+case 238:
 YY_RULE_SETUP
 { context->warning(*yylloc, "Unknown char", yytext, ""); return 0; }
        YY_BREAK
-case 244:
+case 239:
 YY_RULE_SETUP
 ECHO;
        YY_BREAK
@@ -2435,7 +2403,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
                while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                        {
                        yy_current_state = (int) yy_def[yy_current_state];
-                       if ( yy_current_state >= 828 )
+                       if ( yy_current_state >= 821 )
                                yy_c = yy_meta[(unsigned int) yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -2464,11 +2432,11 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                {
                yy_current_state = (int) yy_def[yy_current_state];
-               if ( yy_current_state >= 828 )
+               if ( yy_current_state >= 821 )
                        yy_c = yy_meta[(unsigned int) yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-       yy_is_jam = (yy_current_state == 827);
+       yy_is_jam = (yy_current_state == 820);
 
        (void)yyg;
        return yy_is_jam ? 0 : yy_current_state;
@@ -2918,46 +2886,6 @@ YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len
        return b;
 }
 
-    static void yy_push_state (int  _new_state , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-       if ( yyg->yy_start_stack_ptr >= yyg->yy_start_stack_depth )
-               {
-               yy_size_t new_size;
-
-               yyg->yy_start_stack_depth += YY_START_STACK_INCR;
-               new_size = yyg->yy_start_stack_depth * sizeof( int );
-
-               if ( ! yyg->yy_start_stack )
-                       yyg->yy_start_stack = (int *) yyalloc(new_size ,yyscanner );
-
-               else
-                       yyg->yy_start_stack = (int *) yyrealloc((void *) yyg->yy_start_stack,new_size ,yyscanner );
-
-               if ( ! yyg->yy_start_stack )
-                       YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
-               }
-
-       yyg->yy_start_stack[yyg->yy_start_stack_ptr++] = YY_START;
-
-       BEGIN(_new_state);
-}
-
-    static void yy_pop_state  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-       if ( --yyg->yy_start_stack_ptr < 0 )
-               YY_FATAL_ERROR( "start-condition stack underflow" );
-
-       BEGIN(yyg->yy_start_stack[yyg->yy_start_stack_ptr]);
-}
-
-    static int yy_top_state  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-       return yyg->yy_start_stack[yyg->yy_start_stack_ptr - 1];
-}
-
 #ifndef YY_EXIT_FAILURE
 #define YY_EXIT_FAILURE 2
 #endif
@@ -3424,7 +3352,6 @@ int ES2_identifier_ES3_keyword(TParseContext *context, int token)
 int uint_constant(TParseContext *context)
 {
     struct yyguts_t* yyg = (struct yyguts_t*) context->getScanner();
-    yyscan_t yyscanner = (yyscan_t) context->getScanner();
 
     if (context->getShaderVersion() < 300)
     {
index e4f4952..ea821d3 100644 (file)
@@ -704,34 +704,34 @@ static const yytype_uint8 yytranslate[] =
   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   213,   213,   232,   235,   240,   245,   250,   255,   261,
-     264,   267,   270,   273,   276,   282,   290,   301,   305,   313,
-     316,   322,   326,   333,   339,   348,   356,   362,   369,   379,
-     382,   385,   388,   398,   399,   400,   401,   409,   410,   414,
-     418,   426,   427,   430,   436,   437,   441,   448,   449,   452,
-     455,   458,   464,   465,   468,   474,   475,   482,   483,   490,
-     491,   498,   499,   505,   506,   512,   513,   519,   520,   526,
-     527,   535,   536,   537,   538,   540,   541,   542,   545,   548,
-     551,   554,   560,   563,   574,   582,   590,   593,   599,   606,
-     610,   614,   618,   625,   631,   634,   641,   649,   670,   696,
-     706,   734,   739,   749,   754,   764,   767,   770,   773,   779,
-     786,   789,   793,   797,   802,   807,   814,   818,   822,   826,
-     831,   836,   840,   847,   857,   863,   866,   872,   878,   885,
-     894,   903,   911,   914,   921,   925,   929,   934,   942,   945,
-     949,   953,   962,   971,   979,   989,  1001,  1004,  1007,  1013,
-    1020,  1023,  1029,  1032,  1035,  1041,  1044,  1049,  1064,  1068,
-    1072,  1076,  1080,  1084,  1089,  1094,  1099,  1104,  1109,  1114,
-    1119,  1124,  1129,  1134,  1139,  1144,  1150,  1156,  1162,  1168,
-    1174,  1180,  1186,  1192,  1198,  1203,  1208,  1217,  1222,  1227,
-    1232,  1237,  1242,  1247,  1252,  1257,  1262,  1267,  1272,  1277,
-    1282,  1287,  1300,  1300,  1303,  1303,  1309,  1312,  1328,  1331,
-    1340,  1344,  1350,  1357,  1372,  1376,  1380,  1381,  1387,  1388,
-    1389,  1390,  1391,  1392,  1393,  1397,  1398,  1398,  1398,  1408,
-    1409,  1413,  1413,  1414,  1414,  1419,  1422,  1432,  1435,  1441,
-    1442,  1446,  1454,  1458,  1465,  1465,  1472,  1475,  1482,  1487,
-    1502,  1502,  1507,  1507,  1514,  1514,  1522,  1525,  1531,  1534,
-    1540,  1544,  1551,  1554,  1557,  1560,  1563,  1572,  1576,  1583,
-    1586,  1592,  1592
+       0,   229,   229,   248,   251,   256,   261,   266,   271,   277,
+     280,   283,   286,   289,   292,   298,   306,   317,   321,   329,
+     332,   338,   342,   349,   355,   364,   372,   378,   385,   395,
+     398,   401,   404,   414,   415,   416,   417,   425,   426,   430,
+     434,   442,   443,   446,   452,   453,   457,   464,   465,   468,
+     471,   474,   480,   481,   484,   490,   491,   498,   499,   506,
+     507,   514,   515,   521,   522,   528,   529,   535,   536,   542,
+     543,   551,   552,   553,   554,   556,   557,   558,   561,   564,
+     567,   570,   576,   579,   590,   598,   606,   609,   615,   622,
+     626,   630,   634,   641,   647,   650,   657,   665,   686,   712,
+     722,   750,   755,   765,   770,   780,   783,   786,   789,   795,
+     802,   805,   809,   813,   818,   823,   830,   834,   838,   842,
+     847,   852,   856,   863,   873,   879,   882,   888,   894,   901,
+     910,   919,   927,   930,   937,   941,   945,   950,   958,   961,
+     965,   969,   978,   987,   995,  1005,  1017,  1020,  1023,  1029,
+    1036,  1039,  1045,  1048,  1051,  1057,  1060,  1065,  1080,  1084,
+    1088,  1092,  1096,  1100,  1105,  1110,  1115,  1120,  1125,  1130,
+    1135,  1140,  1145,  1150,  1155,  1160,  1166,  1172,  1178,  1184,
+    1190,  1196,  1202,  1208,  1214,  1219,  1224,  1233,  1238,  1243,
+    1248,  1253,  1258,  1263,  1268,  1273,  1278,  1283,  1288,  1293,
+    1298,  1303,  1316,  1316,  1319,  1319,  1325,  1328,  1344,  1347,
+    1356,  1360,  1366,  1373,  1388,  1392,  1396,  1397,  1403,  1404,
+    1405,  1406,  1407,  1408,  1409,  1413,  1414,  1414,  1414,  1424,
+    1425,  1429,  1429,  1430,  1430,  1435,  1438,  1448,  1451,  1457,
+    1458,  1462,  1470,  1474,  1481,  1481,  1488,  1491,  1498,  1503,
+    1518,  1518,  1523,  1523,  1530,  1530,  1538,  1541,  1547,  1550,
+    1556,  1560,  1567,  1570,  1573,  1576,  1579,  1588,  1592,  1599,
+    1602,  1608,  1608
 };
 #endif
 
@@ -3215,7 +3215,7 @@ yyreduce:
         TType type((yyvsp[-2].interm.type));
         function = new TFunction((yyvsp[-1].lex).string, type);
         (yyval.interm.function) = function;
-        
+
         context->symbolTable.push();
     }
 
@@ -3576,7 +3576,7 @@ yyreduce:
     {
         context->error((yylsp[0]), "interpolation qualifier requires a fragment 'in' or vertex 'out' storage qualifier", getQualifierString((yyvsp[0].interm.type).qualifier));
         context->recover();
-        
+
         TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
         (yyval.interm.type).setBasic(EbtVoid, qual, (yylsp[0]));
     }
index f5ca320..7b3e6fe 100644 (file)
@@ -22,10 +22,6 @@ config("swiftshader_libEGL_private_config") {
       "/wd4201", # nameless struct/union
       "/wd4065", # switch statement contains 'default' but no 'case' labels
     ]
-
-    if (is_clang) {
-      cflags += [ "-Wno-unused-function" ]
-    }
   } else {
     cflags = [
       "-DLOG_TAG=\"swiftshader_libEGL\"",
index 4597165..539cad1 100644 (file)
@@ -103,6 +103,7 @@ DESTRUCTOR void detachProcess()
 }
 
 #if defined(_WIN32)
+#ifndef NDEBUG
 static INT_PTR CALLBACK DebuggerWaitDialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 {
        RECT rect;
@@ -139,6 +140,7 @@ static void WaitForDebugger(HINSTANCE instance)
                DialogBoxIndirect(instance, dialogTemplate, NULL, DebuggerWaitDialogProc);
        }
 }
+#endif
 
 extern "C" BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved)
 {
index 5875a26..a4d684d 100644 (file)
@@ -27,7 +27,6 @@ config("swiftshader_libGLESv2_private_config") {
     if (is_clang)
     {
       cflags += [
-        "-Wno-delete-incomplete",
         "-D__STDC_CONSTANT_MACROS",
         "-D__STDC_LIMIT_MACROS",
       ]
index 336d77b..7019f12 100644 (file)
@@ -19,10 +19,6 @@ config("swiftshader_reactor_private_config") {
       "/wd4201", # nameless struct/union
       "/wd4245", # conversion from int to unsigned int (llvm)
     ]
-
-    if (is_clang) {
-      cflags += [ "-Wno-delete-incomplete" ]
-    }
   } else {
     cflags = [
       "-DLOG_TAG=\"swiftshader_reactor\"",
index b29b99d..c7ee408 100644 (file)
@@ -19,13 +19,6 @@ config("swiftshader_renderer_private_config") {
       "/wd4201", # nameless struct/union
       "/wd4324", # structure was padded due to alignment specifier
     ]
-
-    if (is_clang) {
-      cflags += [
-        "-Wno-delete-incomplete",
-        "-Wno-microsoft-template",
-      ]
-    }
   } else {
     cflags = [
       "-DLOG_TAG=\"swiftshader_renderer\"",
index 8ab03c6..d437a1e 100644 (file)
@@ -23,7 +23,6 @@ config("swiftshader_shader_private_config") {
     if (is_clang) {
       cflags += [
         "-Wno-sign-compare",
-        "-Wno-delete-incomplete",
       ]
     }
   } else {