glsl2: Add support for floating constants like "1f".
authorEric Anholt <eric@anholt.net>
Mon, 2 Aug 2010 18:26:43 +0000 (11:26 -0700)
committerEric Anholt <eric@anholt.net>
Mon, 2 Aug 2010 18:26:43 +0000 (11:26 -0700)
Fixes glsl-floating-constant-120.

src/glsl/glsl_lexer.cpp
src/glsl/glsl_lexer.lpp

index af29dce3376e2a1dfeca7f9a5b8afd1b861f0e96..43be3170ba8e341091d2cde5789877db4a1e75a5 100644 (file)
@@ -358,8 +358,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 146
-#define YY_END_OF_BUFFER 147
+#define YY_NUM_RULES 147
+#define YY_END_OF_BUFFER 148
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -367,66 +367,66 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static yyconst flex_int16_t yy_accept[524] =
+static yyconst flex_int16_t yy_accept[525] =
     {   0,
-        0,    0,    9,    9,  147,  145,    1,   14,  145,  145,
-      145,  145,  145,  145,  145,  145,   90,   88,  145,  145,
-      145,  144,  145,  144,  144,  144,  144,  144,  144,  144,
-      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
-      144,  144,  144,  145,    1,  145,   85,  146,    9,   13,
-      146,   12,   10,   11,    1,   74,   81,   75,   84,   78,
+        0,    0,    9,    9,  148,  146,    1,   14,  146,  146,
+      146,  146,  146,  146,  146,  146,   90,   88,  146,  146,
+      146,  145,  146,  145,  145,  145,  145,  145,  145,  145,
+      145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
+      145,  145,  145,  146,    1,  146,   85,  147,    9,   13,
+      147,   12,   10,   11,    1,   74,   81,   75,   84,   78,
        69,   80,   70,   87,   92,   79,   93,   90,    0,    0,
-        0,   88,    0,   71,   73,   72,    0,  144,   77,  144,
-      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
-       22,  144,  144,  144,  144,  144,  144,  144,  144,  144,
-
-      144,  144,  144,  144,   26,   50,  144,  144,  144,  144,
-      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
-      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
-      144,  144,  144,  144,   86,   76,    1,    0,    0,    2,
-        0,    0,    0,    0,    9,    8,   12,   11,    0,   92,
-       91,    0,   93,    0,   94,   89,   82,   83,   97,  144,
-      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
-      144,  144,  144,  144,  144,  144,  144,  144,   25,  144,
-      144,  144,  144,  144,  144,  144,  144,   19,  144,  144,
-      144,  144,  144,  144,  144,  144,  144,  144,   51,  144,
-
-      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
-      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
-      144,  144,    0,    0,    0,    0,    8,    0,   92,    0,
-       91,    0,   93,   94,  144,   17,  144,  144,  137,  144,
-      144,  144,  144,  144,  144,  144,  144,   24,  100,  144,
-      144,  144,   57,  144,  144,  105,  119,  144,  144,  144,
-      144,  144,  144,  144,  144,  144,  116,  140,   38,   39,
-       40,  144,  144,  144,  144,  144,  144,  144,  144,  144,
-      144,  144,  144,  144,  144,  144,  144,  144,  103,   95,
-      144,  144,  144,  144,  144,  144,   35,   36,   37,   67,
-
-      144,  144,    0,    0,    0,    0,    0,   91,  144,   20,
-       29,   30,   31,  144,   98,   16,  144,  144,  144,  144,
-      127,  128,  129,  144,   96,  120,   18,  130,  131,  132,
-      142,  124,  125,  126,  144,   52,  122,  144,  144,   32,
-       33,   34,  144,  144,  144,  144,  144,  144,  144,  144,
-      144,  144,  144,  144,  144,  144,  117,  144,  144,  144,
-      144,  144,  144,  144,  144,   99,  144,  139,  144,  144,
-       23,    0,    0,    0,    0,  144,  144,  144,  144,  144,
-      118,  113,  108,  144,  144,   68,   41,   42,   43,   44,
-       45,   46,   47,   48,   49,  144,  144,  144,  144,  123,
-
-      104,  144,  111,   28,  144,  136,   58,  112,   66,  106,
-      144,  144,  144,  144,  144,  144,    0,    0,    0,    0,
-      144,  144,  144,  107,   27,  144,  144,  144,  141,  144,
-      144,  144,  144,  144,  144,  101,   53,  144,   54,  144,
-        0,    0,    0,    7,    0,  144,   55,   21,  114,  144,
-      144,  144,  109,  144,  144,  144,  144,  144,  144,  102,
-      121,  110,    0,    0,    6,    0,    0,    0,    3,   15,
-      115,   56,  138,  144,  143,   60,   61,   62,  144,    0,
-        0,    0,    0,  144,  144,  144,  144,  144,  144,    4,
-        0,    5,    0,    0,    0,  144,  144,  144,  144,  144,
-
-       63,    0,  144,  144,  144,  144,  144,   59,  144,  133,
-      144,  134,  144,  144,  144,   64,  144,   65,  144,  144,
-      144,  135,    0
+       95,    0,   88,    0,   71,   73,   72,    0,  145,   77,
+      145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
+      145,   22,  145,  145,  145,  145,  145,  145,  145,  145,
+
+      145,  145,  145,  145,  145,   26,   50,  145,  145,  145,
+      145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
+      145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
+      145,  145,  145,  145,  145,   86,   76,    1,    0,    0,
+        2,    0,    0,    0,    0,    9,    8,   12,   11,    0,
+       92,   91,    0,   93,    0,   94,   89,   82,   83,   98,
+      145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
+      145,  145,  145,  145,  145,  145,  145,  145,  145,   25,
+      145,  145,  145,  145,  145,  145,  145,  145,   19,  145,
+      145,  145,  145,  145,  145,  145,  145,  145,  145,   51,
+
+      145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
+      145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
+      145,  145,  145,    0,    0,    0,    0,    8,    0,   92,
+        0,   91,    0,   93,   94,  145,   17,  145,  145,  138,
+      145,  145,  145,  145,  145,  145,  145,  145,   24,  101,
+      145,  145,  145,   57,  145,  145,  106,  120,  145,  145,
+      145,  145,  145,  145,  145,  145,  145,  117,  141,   38,
+       39,   40,  145,  145,  145,  145,  145,  145,  145,  145,
+      145,  145,  145,  145,  145,  145,  145,  145,  145,  104,
+       96,  145,  145,  145,  145,  145,  145,   35,   36,   37,
+
+       67,  145,  145,    0,    0,    0,    0,    0,   91,  145,
+       20,   29,   30,   31,  145,   99,   16,  145,  145,  145,
+      145,  128,  129,  130,  145,   97,  121,   18,  131,  132,
+      133,  143,  125,  126,  127,  145,   52,  123,  145,  145,
+       32,   33,   34,  145,  145,  145,  145,  145,  145,  145,
+      145,  145,  145,  145,  145,  145,  145,  118,  145,  145,
+      145,  145,  145,  145,  145,  145,  100,  145,  140,  145,
+      145,   23,    0,    0,    0,    0,  145,  145,  145,  145,
+      145,  119,  114,  109,  145,  145,   68,   41,   42,   43,
+       44,   45,   46,   47,   48,   49,  145,  145,  145,  145,
+
+      124,  105,  145,  112,   28,  145,  137,   58,  113,   66,
+      107,  145,  145,  145,  145,  145,  145,    0,    0,    0,
+        0,  145,  145,  145,  108,   27,  145,  145,  145,  142,
+      145,  145,  145,  145,  145,  145,  102,   53,  145,   54,
+      145,    0,    0,    0,    7,    0,  145,   55,   21,  115,
+      145,  145,  145,  110,  145,  145,  145,  145,  145,  145,
+      103,  122,  111,    0,    0,    6,    0,    0,    0,    3,
+       15,  116,   56,  139,  145,  144,   60,   61,   62,  145,
+        0,    0,    0,    0,  145,  145,  145,  145,  145,  145,
+        4,    0,    5,    0,    0,    0,  145,  145,  145,  145,
+
+      145,   63,    0,  145,  145,  145,  145,  145,   59,  145,
+      134,  145,  135,  145,  145,  145,   64,  145,   65,  145,
+      145,  145,  136,    0
     } ;
 
 static yyconst flex_int32_t yy_ec[256] =
@@ -464,96 +464,96 @@ static yyconst flex_int32_t yy_ec[256] =
 static yyconst flex_int32_t yy_meta[60] =
     {   0,
         1,    2,    3,    1,    1,    1,    1,    1,    1,    4,
-        4,    5,    1,    6,    6,    6,    6,    6,    6,    7,
-        1,    1,    1,    1,    8,    8,    8,    9,   10,   11,
-       11,   11,   12,    1,    8,    8,    8,    8,    9,   10,
-       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
-       11,   11,   11,   11,   11,   12,   11,   11,    1
+        4,    1,    1,    5,    5,    5,    5,    5,    5,    6,
+        1,    1,    1,    1,    7,    7,    7,    8,    8,    9,
+        9,    9,   10,    1,    7,    7,    7,    7,    8,    8,
+        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
+        9,    9,    9,    9,    9,   10,    9,    9,    1
     } ;
 
-static yyconst flex_int16_t yy_base[543] =
+static yyconst flex_int16_t yy_base[542] =
     {   0,
         0,   58,   81,    0,  814,  815,   59,  815,  790,  789,
-       54,  788,   55,   56,   54,  787,  129,  130,   53,  786,
-      127,    0,  774,  101,  106,  126,  116,  128,  143,  759,
-      144,  136,  132,  142,  147,  753,  154,  766,  157,  163,
-      159,  176,  762,  149,  212,  191,  780,  815,  215,  815,
-      789,  232,  815,    0,  219,  815,  815,  815,  815,  815,
-      815,  815,  815,  815,  198,  815,  203,  200,  216,  224,
-        0,  229,  778,  815,  815,  815,  777,    0,  815,  753,
-      746,  749,  757,  756,  743,  746,  757,  744,  750,  738,
-      735,  748,  735,  732,  732,  738,  726,  218,  731,  741,
-
-      727,  733,  736,  737,    0,  213,  736,  717,  216,  721,
-      734,  725,  211,  718,  732,  729,  731,  714,  719,  716,
-      705,  714,  224,  718,  714,  716,  705,  708,  221,  713,
-      705,  717,  230,  710,  815,  815,  274,  267,  279,  815,
-      696,  708,  700,  710,  275,    0,  269,    0,  280,  815,
-      264,  284,  815,  282,  297,    0,  815,  815,    0,  698,
-      702,  711,  708,  692,  691,  691,  258,  706,  703,  703,
-      701,  698,  690,  696,  683,  694,  680,  696,    0,  693,
-      681,  688,  685,  689,  682,  671,  670,  683,  686,  683,
-      671,  677,  668,  297,  673,  676,  667,  674,  663,  667,
-
-      673,  664,  655,  658,  656,  666,  656,  651,  649,  649,
-      651,  648,  659,  658,  271,  653,  648,  637,  313,  655,
-      657,  646,  638,  642,  653,  637,    0,  324,  324,  312,
-      815,  331,  344,  815,  643,    0,  641,  340,    0,  634,
-      632,  630,  638,  627,  644,  633,  343,    0,    0,  627,
-      637,  637,    0,  622,  349,    0,    0,  624,  352,  625,
-      619,  618,  619,  618,  358,  614,    0,    0,  610,  609,
-      608,  610,  611,  616,  610,  606,  619,  614,  613,  605,
-      609,  601,  604,  599,  607,  612,  611,  602,    0,    0,
-      608,  597,  597,  602,  601,  598,    0,    0,    0,    0,
-
-      588,  600,  599,  598,  595,  584,  363,  361,  598,    0,
-        0,    0,    0,  585,    0,    0,  585,  586,  580,  590,
-        0,    0,    0,  581,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  588,    0,    0,  586,  582,    0,
-        0,    0,  572,  369,  375,  378,  577,  573,  578,  569,
-      567,  580,  566,  579,  568,  575,    0,  573,  570,  574,
-      558,  567,  573,  568,  556,    0,  558,    0,  557,  560,
-        0,  555,  599,  554,  556,  545,  554,  543,  543,  556,
-        0,  551,    0,  550,  546,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  531,  544,  531,  528,    0,
-
-        0,  532,    0,    0,  524,    0,    0,    0,    0,    0,
-      512,  523,  512,  518,  512,  507,  500,  395,  515,  501,
-      495,  508,  502,    0,    0,  492,  496,  475,    0,  475,
-      470,  464,  450,  390,  441,    0,    0,  437,    0,  435,
-      430,  386,  360,  815,  425,  432,    0,    0,    0,  431,
-      417,  429,    0,  430,  419,  438,  437,  436,  409,    0,
-        0,    0,  413,  415,  815,  418,    0,  396,  815,    0,
-        0,    0,    0,  402,    0,  420,  371,  420,  414,  402,
-      420,  422,  424,  405,  405,  407,  403,  389,  369,  815,
-      428,  815,  441,    0,  436,  350,  365,  315,  301,  295,
-
-        0,  438,  288,  287,  268,  279,  253,    0,  191,  197,
-      177,    0,  167,  159,  141,    0,  131,    0,  125,   32,
-       11,    0,  815,  472,  476,  483,  490,  495,  501,  507,
-      509,  519,  528,  532,  536,  542,  553,  559,  561,  570,
-      581,  583
+       54,  788,   55,   56,   54,  787,  129,  174,   53,  786,
+      127,    0,  774,  101,  106,  126,  116,  128,  152,  759,
+      161,  158,  128,  142,  131,  753,  166,  766,  175,  181,
+      131,  187,  762,  149,  205,  222,  780,  815,  230,  815,
+      789,  225,  815,    0,  244,  815,  815,  815,  815,  815,
+      815,  815,  815,  815,  223,  815,  225,  200,  265,  218,
+      815,    0,    0,  778,  815,  815,  815,  777,    0,  815,
+      753,  746,  749,  757,  756,  743,  746,  757,  744,  750,
+      738,  735,  748,  735,  732,  732,  738,  726,  132,  731,
+
+      741,  727,  733,  736,  737,    0,  221,  736,  717,  200,
+      721,  734,  725,  225,  718,  732,  729,  731,  714,  719,
+      716,  705,  714,  222,  718,  714,  716,  705,  708,  207,
+      713,  705,  717,  243,  710,  815,  815,  285,  257,  295,
+      815,  696,  708,  700,  710,  288,    0,  298,    0,  226,
+      815,  280,  289,  815,  307,  318,    0,  815,  815,    0,
+      698,  702,  711,  708,  692,  691,  691,  279,  706,  703,
+      703,  701,  698,  690,  696,  683,  694,  680,  696,    0,
+      693,  681,  688,  685,  689,  682,  671,  670,  683,  686,
+      683,  671,  677,  668,  319,  673,  676,  667,  674,  663,
+
+      667,  673,  664,  655,  658,  656,  666,  656,  651,  649,
+      649,  651,  648,  659,  658,  255,  653,  648,  637,  325,
+      655,  657,  646,  638,  642,  653,  637,    0,  336,  328,
+      322,  815,  345,  356,  815,  643,    0,  641,  353,    0,
+      634,  632,  630,  638,  627,  644,  633,  356,    0,    0,
+      627,  637,  637,    0,  622,  359,    0,    0,  624,  362,
+      625,  619,  618,  619,  618,  365,  614,    0,    0,  610,
+      609,  608,  610,  611,  616,  610,  606,  619,  614,  613,
+      605,  609,  601,  604,  599,  607,  612,  611,  602,    0,
+        0,  608,  597,  597,  602,  601,  598,    0,    0,    0,
+
+        0,  588,  600,  599,  598,  595,  584,  372,  383,  598,
+        0,    0,    0,    0,  585,    0,    0,  585,  586,  580,
+      590,    0,    0,    0,  581,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  588,    0,    0,  586,  582,
+        0,    0,    0,  572,  381,  384,  387,  577,  573,  578,
+      569,  567,  580,  566,  579,  568,  575,    0,  573,  570,
+      574,  558,  567,  573,  568,  556,    0,  558,    0,  557,
+      560,    0,  555,  599,  554,  556,  545,  554,  543,  543,
+      556,    0,  558,    0,  557,  556,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  541,  554,  541,  538,
+
+        0,    0,  543,    0,    0,  535,    0,    0,    0,    0,
+        0,  532,  543,  536,  542,  539,  534,  527,  411,  542,
+      522,  514,  527,  525,    0,    0,  518,  524,  505,    0,
+      510,  504,  503,  493,  391,  501,    0,    0,  500,    0,
+      480,  465,  407,  343,  815,  457,  449,    0,    0,    0,
+      448,  434,  446,    0,  447,  436,  455,  454,  453,  426,
+        0,    0,    0,  430,  418,  815,  431,    0,  412,  815,
+        0,    0,    0,    0,  425,    0,  444,  387,  444,  438,
+      426,  433,  435,  439,  422,  422,  423,  419,  421,  420,
+      815,  441,  815,  453,    0,  449,  404,  422,  402,  389,
+
+      385,    0,  451,  377,  373,  343,  346,  296,    0,  262,
+      275,  253,    0,  223,  207,  144,    0,  148,    0,  104,
+       32,   11,    0,  815,  485,  491,  497,  501,  506,  508,
+      516,  523,  526,  529,  534,  543,  548,  550,  557,  566,
+      568
     } ;
 
-static yyconst flex_int16_t yy_def[543] =
+static yyconst flex_int16_t yy_def[542] =
     {   0,
-      523,    1,  523,    3,  523,  523,  523,  523,  523,  523,
-      523,  523,  523,  523,  523,  523,  523,  524,  523,  523,
-      523,  525,  523,  525,  525,  525,  525,  525,  525,  525,
+      524,    1,  524,    3,  524,  524,  524,  524,  524,  524,
+      524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
+      524,  525,  524,  525,  525,  525,  525,  525,  525,  525,
       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
-      525,  525,  525,  523,  523,  523,  523,  523,  523,  523,
-      523,  523,  523,  526,  523,  523,  523,  523,  523,  523,
-      523,  523,  523,  523,  527,  523,  528,   17,  529,  530,
-      531,  524,  523,  523,  523,  523,  523,  525,  523,  525,
+      525,  525,  525,  524,  524,  524,  524,  524,  524,  524,
+      524,  524,  524,  526,  524,  524,  524,  524,  524,  524,
+      524,  524,  524,  524,  527,  524,  528,   17,  524,  529,
+      524,  530,   18,  524,  524,  524,  524,  524,  525,  524,
       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
 
       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
-      525,  525,  525,  525,  523,  523,  523,  523,  523,  523,
-      523,  523,  523,  523,  523,  532,  523,  526,  533,  523,
-      528,  534,  523,  523,  530,  531,  523,  523,  525,  525,
+      525,  525,  525,  525,  525,  524,  524,  524,  524,  524,
+      524,  524,  524,  524,  524,  524,  531,  524,  526,  532,
+      524,  528,  533,  524,  524,  529,  530,  524,  524,  525,
       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
@@ -561,8 +561,8 @@ static yyconst flex_int16_t yy_def[543] =
 
       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
-      525,  525,  523,  523,  523,  523,  532,  523,  533,  535,
-      523,  523,  534,  523,  525,  525,  525,  525,  525,  525,
+      525,  525,  525,  524,  524,  524,  524,  531,  524,  532,
+      534,  524,  524,  533,  524,  525,  525,  525,  525,  525,
       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
@@ -570,33 +570,33 @@ static yyconst flex_int16_t yy_def[543] =
       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
 
-      525,  525,  523,  523,  523,  523,  523,  535,  525,  525,
+      525,  525,  525,  524,  524,  524,  524,  524,  534,  525,
       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
-      525,  523,  523,  523,  523,  525,  525,  525,  525,  525,
+      525,  525,  524,  524,  524,  524,  525,  525,  525,  525,
       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
 
       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
-      525,  525,  525,  525,  525,  525,  523,  523,  523,  523,
+      525,  525,  525,  525,  525,  525,  525,  524,  524,  524,
+      524,  525,  525,  525,  525,  525,  525,  525,  525,  525,
       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
+      525,  524,  535,  536,  524,  524,  525,  525,  525,  525,
       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
-      523,  536,  537,  523,  523,  525,  525,  525,  525,  525,
+      525,  525,  525,  524,  537,  524,  524,  538,  536,  524,
       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
-      525,  525,  523,  538,  523,  523,  539,  537,  523,  525,
-      525,  525,  525,  525,  525,  525,  525,  525,  525,  523,
-      540,  541,  539,  525,  525,  525,  525,  525,  525,  523,
-      523,  523,  523,  542,  541,  525,  525,  525,  525,  525,
+      524,  539,  540,  538,  525,  525,  525,  525,  525,  525,
+      524,  524,  524,  524,  541,  540,  525,  525,  525,  525,
 
-      525,  542,  525,  525,  525,  525,  525,  525,  525,  525,
+      525,  525,  541,  525,  525,  525,  525,  525,  525,  525,
       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
-      525,  525,    0,  523,  523,  523,  523,  523,  523,  523,
-      523,  523,  523,  523,  523,  523,  523,  523,  523,  523,
-      523,  523
+      525,  525,  525,    0,  524,  524,  524,  524,  524,  524,
+      524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
+      524
     } ;
 
 static yyconst flex_int16_t yy_nxt[875] =
@@ -607,8 +607,8 @@ static yyconst flex_int16_t yy_nxt[875] =
        22,   22,   22,   23,   24,   25,   26,   27,   28,   29,
        30,   31,   32,   22,   33,   34,   35,   36,   37,   38,
        39,   40,   41,   42,   43,   22,   22,   22,   44,   45,
-       55,   58,   55,   46,   61,  522,   63,   65,   65,   65,
-       65,   65,   65,   65,   73,   74,   59,   62,   64,  521,
+       55,   58,   55,   46,   61,  523,   63,   65,   65,   65,
+       65,   65,   65,   65,   74,   75,   59,   62,   64,  522,
        47,   48,   49,   50,   49,   48,   48,   48,   48,   48,
        48,   48,   48,   51,   48,   52,   52,   52,   52,   52,
 
@@ -616,87 +616,87 @@ static yyconst flex_int16_t yy_nxt[875] =
        54,   54,   54,   54,   48,   54,   54,   54,   54,   54,
        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
        54,   54,   54,   54,   54,   54,   54,   54,   54,   48,
-       67,   67,   68,   68,   68,   68,   68,   68,   69,   76,
-       77,   80,   81,   82,   89,   83,   70,   70,   90,   84,
-       85,   71,  520,   91,   86,  519,  108,   70,   70,   92,
-       87,  135,   93,   88,   94,  105,  110,   96,  102,  109,
-      111,  112,  106,   95,   71,   97,  103,   98,  115,  107,
-       99,  119,  139,  140,  113,  518,  100,  104,  120,  121,
-
-      517,  125,  122,  116,  126,  129,  117,  136,  123,  130,
-      131,  124,  127,  137,  132,   55,  145,  138,  145,  128,
-       55,  516,   55,  133,  515,  149,  150,   67,  514,  141,
-      152,  153,  523,  154,  154,  142,  149,  150,  513,  143,
-       67,  152,  153,   70,  144,  147,  147,  147,  147,  147,
-      147,  147,  177,  197,   70,  523,   70,  185,  208,  198,
-      186,  187,  192,  215,  188,  178,  189,   70,  139,  140,
-      193,  216,  220,  209,  221,  137,  145,   55,  145,  138,
-      139,  140,  147,  147,  147,  147,  147,  147,  147,  228,
-      228,  230,  231,  232,  232,  155,  155,  155,  155,  155,
-
-      155,  155,  230,  231,  512,  141,  523,  523,  242,  243,
-      292,  142,  269,  270,  271,  143,  511,  141,  293,  510,
-      144,  307,  307,  142,  509,  234,  508,  143,  297,  298,
-      299,  507,  144,  523,  523,  506,  234,  229,  229,  229,
-      229,  229,  229,  229,  233,  233,  233,  233,  233,  233,
-      233,  505,  150,  523,  523,  311,  312,  313,  321,  322,
-      323,  464,  465,  150,  328,  329,  330,  332,  333,  334,
-      523,  523,  153,  340,  341,  342,  308,  308,  308,  308,
-      308,  308,  308,  153,  387,  388,  389,  464,  465,  231,
-      390,  391,  392,  393,  394,  395,  418,  464,  465,  504,
-
-      231,  486,  487,  503,  456,  457,  458,  501,  442,  443,
-      443,  443,  443,  443,  443,  459,  464,  465,  467,  464,
-      465,  491,  492,  491,  492,  464,  465,  500,  481,  491,
-      492,  466,  466,  466,  466,  466,  466,  491,  492,  491,
-      492,  467,  491,  492,  499,  498,  497,  496,  490,  489,
-      488,  485,  494,  484,  493,  493,  493,  493,  493,  493,
-      480,  479,  478,  477,  476,  475,  474,  473,  472,  471,
-      470,  469,  463,  462,  461,  494,   72,   72,   72,  460,
-       72,   78,   78,   78,   78,   78,   78,   78,  148,  148,
-      148,  148,  148,  148,  148,   65,   65,  455,   65,   65,
-
-      151,  151,  454,  151,  151,   69,   69,   69,  453,   69,
-      155,  452,  155,  155,  156,  156,  156,  156,  156,  227,
-      227,  451,  227,  227,  227,  227,  227,  227,  227,  227,
-      227,  229,  450,  229,  229,  233,  449,  233,  233,  308,
-      448,  308,  308,  466,  466,  447,  446,  466,  445,  444,
-      441,  440,  439,  466,  468,  468,  438,  437,  468,  468,
-      482,  482,  436,  435,  482,  482,  483,  483,  483,  483,
-      483,  493,  493,  434,  433,  493,  432,  431,  430,  429,
-      428,  493,  495,  495,  427,  426,  495,  495,  502,  502,
-      502,  502,  502,  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,  386,  385,  384,  383,  382,  381,  380,
-      379,  378,  377,  376,  375,  374,  373,  372,  371,  370,
-      369,  368,  367,  366,  365,  364,  363,  362,  361,  360,
-      359,  358,  357,  356,  355,  354,  353,  352,  351,  350,
-      349,  348,  347,  346,  345,  344,  343,  339,  338,  337,
-      336,  335,  331,  327,  326,  325,  324,  320,  319,  318,
-      317,  316,  315,  314,  310,  309,  306,  305,  304,  303,
-      302,  301,  300,  296,  295,  294,  291,  290,  289,  288,
-
-      287,  286,  285,  284,  283,  282,  281,  280,  279,  278,
-      277,  276,  275,  274,  273,  272,  268,  267,  266,  265,
-      264,  263,  262,  261,  260,  259,  258,  257,  256,  255,
-      254,  253,  252,  251,  250,  249,  248,  247,  246,  245,
-      244,  241,  240,  239,  238,  237,  236,  235,  226,  225,
-      224,  223,  222,  219,  218,  217,  214,  213,  212,  211,
-      210,  207,  206,  205,  204,  203,  202,  201,  200,  199,
-      196,  195,  194,  191,  190,  184,  183,  182,  181,  180,
-      179,  176,  175,  174,  173,  172,  171,  170,  169,  168,
-      167,  166,  165,  164,  163,  162,  161,  160,  159,  158,
-
-      157,  146,   75,  134,  118,  114,  101,   79,   75,   66,
-       60,   57,   56,  523,    5,  523,  523,  523,  523,  523,
-      523,  523,  523,  523,  523,  523,  523,  523,  523,  523,
-      523,  523,  523,  523,  523,  523,  523,  523,  523,  523,
-      523,  523,  523,  523,  523,  523,  523,  523,  523,  523,
-      523,  523,  523,  523,  523,  523,  523,  523,  523,  523,
-      523,  523,  523,  523,  523,  523,  523,  523,  523,  523,
-      523,  523,  523,  523
+       67,  521,   68,   68,   68,   68,   68,   68,   69,   77,
+       78,   81,   82,   83,   90,   84,   70,   71,   91,   85,
+       86,   72,  109,   92,   87,  113,  178,   70,   71,   93,
+       88,  136,   94,   89,   95,  110,  111,  130,  114,  179,
+      112,  131,  520,   96,   72,   67,   97,   73,   73,   73,
+       73,   73,   73,   73,   98,  103,   99,  106,  519,  100,
+
+      116,   70,   71,  104,  107,  101,  138,  137,   55,  120,
+      139,  108,   70,   71,  105,  117,  121,  122,  118,  126,
+      123,  132,  127,  140,  141,  133,  124,  155,  155,  125,
+      128,  146,  524,  146,  134,  229,  229,  129,  148,  148,
+      148,  148,  148,  148,  148,   55,  193,   55,  518,  216,
+      150,  151,  153,  154,  194,  524,  209,  217,  140,  141,
+      142,  150,  151,  153,  154,  186,  143,  198,  187,  188,
+      144,  210,  189,  199,  190,  145,   67,  517,   69,   69,
+       69,   69,   69,   69,   69,  221,  138,  222,   55,  146,
+      139,  146,   70,   71,  293,  142,  140,  141,  233,  233,
+
+      516,  143,  294,   70,   71,  144,  515,  231,  232,  514,
+      145,  148,  148,  148,  148,  148,  148,  148,  231,  232,
+      156,  156,  156,  156,  156,  156,  156,  524,  524,  243,
+      244,  308,  308,  142,  270,  271,  272,  524,  524,  143,
+      298,  299,  300,  144,  465,  466,  235,  513,  145,  230,
+      230,  230,  230,  230,  230,  230,  151,  235,  234,  234,
+      234,  234,  234,  234,  234,  524,  524,  151,  312,  313,
+      314,  322,  323,  324,  329,  330,  331,  333,  334,  335,
+      341,  342,  343,  512,  154,  309,  309,  309,  309,  309,
+      309,  309,  524,  524,  511,  154,  388,  389,  390,  391,
+
+      392,  393,  394,  395,  396,  457,  458,  459,  465,  466,
+      510,  232,  419,  465,  466,  509,  460,  487,  488,  465,
+      466,  508,  232,  507,  443,  444,  444,  444,  444,  444,
+      444,  482,  465,  466,  492,  493,  492,  493,  506,  468,
+      465,  466,  492,  493,  467,  467,  467,  467,  467,  467,
+      492,  493,  492,  493,  492,  493,  505,  504,  502,  501,
+      500,  499,  468,  498,  497,  495,  494,  494,  494,  494,
+      494,  494,  491,  490,  489,  486,  485,  481,  480,  479,
+      478,  477,  476,  475,  474,  473,  472,  471,  495,   79,
+       79,   79,   79,   79,   79,  149,  149,  149,  149,  149,
+
+      149,   65,   65,  470,   65,  152,  152,  464,  152,  156,
+      156,  156,  157,  157,  157,  157,  228,  228,  463,  228,
+      228,  228,  228,  228,  228,  228,  230,  230,  230,  234,
+      234,  234,  309,  309,  309,  467,  467,  462,  467,  461,
+      456,  455,  454,  467,  469,  469,  453,  469,  469,  483,
+      483,  452,  483,  483,  484,  484,  484,  484,  494,  494,
+      451,  494,  450,  449,  448,  447,  494,  496,  496,  446,
+      496,  496,  503,  503,  503,  503,  445,  442,  441,  440,
+      439,  438,  437,  436,  435,  434,  433,  432,  431,  430,
+      429,  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,  387,  386,  385,  384,  383,  382,  381,
+      380,  379,  378,  377,  376,  375,  374,  373,  372,  371,
+      370,  369,  368,  367,  366,  365,  364,  363,  362,  361,
+      360,  359,  358,  357,  356,  355,  354,  353,  352,  351,
+      350,  349,  348,  347,  346,  345,  344,  340,  339,  338,
+      337,  336,  332,  328,  327,  326,  325,  321,  320,  319,
+      318,  317,  316,  315,  311,  310,  307,  306,  305,  304,
+      303,  302,  301,  297,  296,  295,  292,  291,  290,  289,
+
+      288,  287,  286,  285,  284,  283,  282,  281,  280,  279,
+      278,  277,  276,  275,  274,  273,  269,  268,  267,  266,
+      265,  264,  263,  262,  261,  260,  259,  258,  257,  256,
+      255,  254,  253,  252,  251,  250,  249,  248,  247,  246,
+      245,  242,  241,  240,  239,  238,  237,  236,  227,  226,
+      225,  224,  223,  220,  219,  218,  215,  214,  213,  212,
+      211,  208,  207,  206,  205,  204,  203,  202,  201,  200,
+      197,  196,  195,  192,  191,  185,  184,  183,  182,  181,
+      180,  177,  176,  175,  174,  173,  172,  171,  170,  169,
+      168,  167,  166,  165,  164,  163,  162,  161,  160,  159,
+
+      158,  147,   76,  135,  119,  115,  102,   80,   76,   66,
+       60,   57,   56,  524,    5,  524,  524,  524,  524,  524,
+      524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
+      524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
+      524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
+      524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
+      524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
+      524,  524,  524,  524
     } ;
 
 static yyconst flex_int16_t yy_chk[875] =
@@ -707,8 +707,8 @@ static yyconst flex_int16_t yy_chk[875] =
         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,    2,
-        7,   11,    7,    2,   13,  521,   14,   15,   15,   15,
-       15,   15,   15,   15,   19,   19,   11,   13,   14,  520,
+        7,   11,    7,    2,   13,  522,   14,   15,   15,   15,
+       15,   15,   15,   15,   19,   19,   11,   13,   14,  521,
         2,    3,    3,    3,    3,    3,    3,    3,    3,    3,
         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
 
@@ -716,87 +716,87 @@ static yyconst flex_int16_t yy_chk[875] =
         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-       17,   18,   17,   17,   17,   17,   17,   17,   17,   21,
-       21,   24,   24,   25,   27,   25,   17,   18,   27,   25,
-       26,   17,  519,   27,   26,  517,   33,   17,   18,   27,
-       26,   44,   28,   26,   28,   32,   34,   29,   31,   33,
-       34,   35,   32,   28,   17,   29,   31,   29,   37,   32,
-       29,   39,   46,   46,   35,  515,   29,   31,   39,   39,
-
-      514,   40,   39,   37,   40,   41,   37,   44,   39,   41,
-       42,   39,   40,   45,   42,   45,   49,   45,   49,   40,
-       55,  513,   55,   42,  511,   65,   65,   69,  510,   46,
-       67,   67,   68,   70,   70,   46,   65,   65,  509,   46,
-       72,   67,   67,   69,   46,   52,   52,   52,   52,   52,
-       52,   52,   98,  113,   69,   68,   72,  106,  123,  113,
-      106,  106,  109,  129,  106,   98,  106,   72,  138,  138,
-      109,  129,  133,  123,  133,  137,  145,  137,  145,  137,
-      139,  139,  147,  147,  147,  147,  147,  147,  147,  149,
-      149,  151,  151,  152,  152,  154,  154,  154,  154,  154,
-
-      154,  154,  151,  151,  507,  138,  155,  155,  167,  167,
-      215,  138,  194,  194,  194,  138,  506,  139,  215,  505,
-      138,  230,  230,  139,  504,  155,  503,  139,  219,  219,
-      219,  500,  139,  229,  229,  499,  155,  228,  228,  228,
-      228,  228,  228,  228,  232,  232,  232,  232,  232,  232,
-      232,  498,  229,  233,  233,  238,  238,  238,  247,  247,
-      247,  443,  443,  229,  255,  255,  255,  259,  259,  259,
-      308,  308,  233,  265,  265,  265,  307,  307,  307,  307,
-      307,  307,  307,  233,  344,  344,  344,  442,  442,  308,
-      345,  345,  345,  346,  346,  346,  418,  468,  468,  497,
-
-      308,  477,  477,  496,  434,  434,  434,  489,  418,  418,
-      418,  418,  418,  418,  418,  434,  464,  464,  442,  466,
-      466,  481,  481,  482,  482,  483,  483,  488,  464,  491,
-      491,  466,  466,  466,  466,  466,  466,  495,  495,  502,
-      502,  442,  493,  493,  487,  486,  485,  484,  480,  479,
-      478,  476,  481,  474,  493,  493,  493,  493,  493,  493,
-      463,  459,  458,  457,  456,  455,  454,  452,  451,  450,
-      446,  445,  441,  440,  438,  481,  524,  524,  524,  435,
-      524,  525,  525,  525,  525,  525,  525,  525,  526,  526,
-      526,  526,  526,  526,  526,  527,  527,  433,  527,  527,
-
-      528,  528,  432,  528,  528,  529,  529,  529,  431,  529,
-      530,  430,  530,  530,  531,  531,  531,  531,  531,  532,
-      532,  428,  532,  532,  532,  532,  532,  532,  532,  532,
-      532,  533,  427,  533,  533,  534,  426,  534,  534,  535,
-      423,  535,  535,  536,  536,  422,  421,  536,  420,  419,
-      417,  416,  415,  536,  537,  537,  414,  413,  537,  537,
-      538,  538,  412,  411,  538,  538,  539,  539,  539,  539,
-      539,  540,  540,  405,  402,  540,  399,  398,  397,  396,
-      385,  540,  541,  541,  384,  382,  541,  541,  542,  542,
-      542,  542,  542,  380,  379,  378,  377,  376,  375,  374,
-
-      373,  372,  370,  369,  367,  365,  364,  363,  362,  361,
-      360,  359,  358,  356,  355,  354,  353,  352,  351,  350,
-      349,  348,  347,  343,  339,  338,  335,  324,  320,  319,
-      318,  317,  314,  309,  306,  305,  304,  303,  302,  301,
-      296,  295,  294,  293,  292,  291,  288,  287,  286,  285,
-      284,  283,  282,  281,  280,  279,  278,  277,  276,  275,
-      274,  273,  272,  271,  270,  269,  266,  264,  263,  262,
-      261,  260,  258,  254,  252,  251,  250,  246,  245,  244,
-      243,  242,  241,  240,  237,  235,  226,  225,  224,  223,
-      222,  221,  220,  218,  217,  216,  214,  213,  212,  211,
-
-      210,  209,  208,  207,  206,  205,  204,  203,  202,  201,
-      200,  199,  198,  197,  196,  195,  193,  192,  191,  190,
-      189,  188,  187,  186,  185,  184,  183,  182,  181,  180,
-      178,  177,  176,  175,  174,  173,  172,  171,  170,  169,
-      168,  166,  165,  164,  163,  162,  161,  160,  144,  143,
-      142,  141,  134,  132,  131,  130,  128,  127,  126,  125,
-      124,  122,  121,  120,  119,  118,  117,  116,  115,  114,
-      112,  111,  110,  108,  107,  104,  103,  102,  101,  100,
-       99,   97,   96,   95,   94,   93,   92,   91,   90,   89,
-       88,   87,   86,   85,   84,   83,   82,   81,   80,   77,
-
-       73,   51,   47,   43,   38,   36,   30,   23,   20,   16,
-       12,   10,    9,    5,  523,  523,  523,  523,  523,  523,
-      523,  523,  523,  523,  523,  523,  523,  523,  523,  523,
-      523,  523,  523,  523,  523,  523,  523,  523,  523,  523,
-      523,  523,  523,  523,  523,  523,  523,  523,  523,  523,
-      523,  523,  523,  523,  523,  523,  523,  523,  523,  523,
-      523,  523,  523,  523,  523,  523,  523,  523,  523,  523,
-      523,  523,  523,  523
+       17,  520,   17,   17,   17,   17,   17,   17,   17,   21,
+       21,   24,   24,   25,   27,   25,   17,   17,   27,   25,
+       26,   17,   33,   27,   26,   35,   99,   17,   17,   27,
+       26,   44,   28,   26,   28,   33,   34,   41,   35,   99,
+       34,   41,  518,   28,   17,   18,   29,   18,   18,   18,
+       18,   18,   18,   18,   29,   31,   29,   32,  516,   29,
+
+       37,   18,   18,   31,   32,   29,   45,   44,   45,   39,
+       45,   32,   18,   18,   31,   37,   39,   39,   37,   40,
+       39,   42,   40,   46,   46,   42,   39,   70,   70,   39,
+       40,   49,   68,   49,   42,  150,  150,   40,   52,   52,
+       52,   52,   52,   52,   52,   55,  110,   55,  515,  130,
+       65,   65,   67,   67,  110,   68,  124,  130,  139,  139,
+       46,   65,   65,   67,   67,  107,   46,  114,  107,  107,
+       46,  124,  107,  114,  107,   46,   69,  514,   69,   69,
+       69,   69,   69,   69,   69,  134,  138,  134,  138,  146,
+      138,  146,   69,   69,  216,  139,  140,  140,  153,  153,
+
+      512,  139,  216,   69,   69,  139,  511,  152,  152,  510,
+      139,  148,  148,  148,  148,  148,  148,  148,  152,  152,
+      155,  155,  155,  155,  155,  155,  155,  156,  156,  168,
+      168,  231,  231,  140,  195,  195,  195,  230,  230,  140,
+      220,  220,  220,  140,  444,  444,  156,  508,  140,  229,
+      229,  229,  229,  229,  229,  229,  230,  156,  233,  233,
+      233,  233,  233,  233,  233,  234,  234,  230,  239,  239,
+      239,  248,  248,  248,  256,  256,  256,  260,  260,  260,
+      266,  266,  266,  507,  234,  308,  308,  308,  308,  308,
+      308,  308,  309,  309,  506,  234,  345,  345,  345,  346,
+
+      346,  346,  347,  347,  347,  435,  435,  435,  443,  443,
+      505,  309,  419,  469,  469,  504,  435,  478,  478,  465,
+      465,  501,  309,  500,  419,  419,  419,  419,  419,  419,
+      419,  465,  467,  467,  482,  482,  483,  483,  499,  443,
+      484,  484,  492,  492,  467,  467,  467,  467,  467,  467,
+      496,  496,  503,  503,  494,  494,  498,  497,  490,  489,
+      488,  487,  443,  486,  485,  482,  494,  494,  494,  494,
+      494,  494,  481,  480,  479,  477,  475,  464,  460,  459,
+      458,  457,  456,  455,  453,  452,  451,  447,  482,  525,
+      525,  525,  525,  525,  525,  526,  526,  526,  526,  526,
+
+      526,  527,  527,  446,  527,  528,  528,  442,  528,  529,
+      529,  529,  530,  530,  530,  530,  531,  531,  441,  531,
+      531,  531,  531,  531,  531,  531,  532,  532,  532,  533,
+      533,  533,  534,  534,  534,  535,  535,  439,  535,  436,
+      434,  433,  432,  535,  536,  536,  431,  536,  536,  537,
+      537,  429,  537,  537,  538,  538,  538,  538,  539,  539,
+      428,  539,  427,  424,  423,  422,  539,  540,  540,  421,
+      540,  540,  541,  541,  541,  541,  420,  418,  417,  416,
+      415,  414,  413,  412,  406,  403,  400,  399,  398,  397,
+      386,  385,  383,  381,  380,  379,  378,  377,  376,  375,
+
+      374,  373,  371,  370,  368,  366,  365,  364,  363,  362,
+      361,  360,  359,  357,  356,  355,  354,  353,  352,  351,
+      350,  349,  348,  344,  340,  339,  336,  325,  321,  320,
+      319,  318,  315,  310,  307,  306,  305,  304,  303,  302,
+      297,  296,  295,  294,  293,  292,  289,  288,  287,  286,
+      285,  284,  283,  282,  281,  280,  279,  278,  277,  276,
+      275,  274,  273,  272,  271,  270,  267,  265,  264,  263,
+      262,  261,  259,  255,  253,  252,  251,  247,  246,  245,
+      244,  243,  242,  241,  238,  236,  227,  226,  225,  224,
+      223,  222,  221,  219,  218,  217,  215,  214,  213,  212,
+
+      211,  210,  209,  208,  207,  206,  205,  204,  203,  202,
+      201,  200,  199,  198,  197,  196,  194,  193,  192,  191,
+      190,  189,  188,  187,  186,  185,  184,  183,  182,  181,
+      179,  178,  177,  176,  175,  174,  173,  172,  171,  170,
+      169,  167,  166,  165,  164,  163,  162,  161,  145,  144,
+      143,  142,  135,  133,  132,  131,  129,  128,  127,  126,
+      125,  123,  122,  121,  120,  119,  118,  117,  116,  115,
+      113,  112,  111,  109,  108,  105,  104,  103,  102,  101,
+      100,   98,   97,   96,   95,   94,   93,   92,   91,   90,
+       89,   88,   87,   86,   85,   84,   83,   82,   81,   78,
+
+       74,   51,   47,   43,   38,   36,   30,   23,   20,   16,
+       12,   10,    9,    5,  524,  524,  524,  524,  524,  524,
+      524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
+      524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
+      524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
+      524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
+      524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
+      524,  524,  524,  524
     } ;
 
 /* The intent behind this definition is that it'll catch
@@ -1163,13 +1163,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 >= 524 )
+                               if ( yy_current_state >= 525 )
                                        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 != 523 );
+               while ( yy_current_state != 524 );
                yy_cp = yyg->yy_last_accepting_cpos;
                yy_current_state = yyg->yy_last_accepting_state;
 
@@ -1735,260 +1735,268 @@ YY_RULE_SETUP
        YY_BREAK
 case 95:
 YY_RULE_SETUP
-#line 240 "glsl_lexer.lpp"
+#line 239 "glsl_lexer.lpp"
 {
-                           yylval->n = 1;
-                           return BOOLCONSTANT;
+                           yylval->real = strtod(yytext, NULL);
+                           return FLOATCONSTANT;
                        }
        YY_BREAK
 case 96:
 YY_RULE_SETUP
 #line 244 "glsl_lexer.lpp"
+{
+                           yylval->n = 1;
+                           return BOOLCONSTANT;
+                       }
+       YY_BREAK
+case 97:
+YY_RULE_SETUP
+#line 248 "glsl_lexer.lpp"
 {
                            yylval->n = 0;
                            return BOOLCONSTANT;
                        }
        YY_BREAK
 /* Reserved words in GLSL 1.10. */
-case 97:
+case 98:
 YY_RULE_SETUP
-#line 251 "glsl_lexer.lpp"
+#line 255 "glsl_lexer.lpp"
 return ASM;
        YY_BREAK
-case 98:
+case 99:
 YY_RULE_SETUP
-#line 252 "glsl_lexer.lpp"
+#line 256 "glsl_lexer.lpp"
 return CLASS;
        YY_BREAK
-case 99:
+case 100:
 YY_RULE_SETUP
-#line 253 "glsl_lexer.lpp"
+#line 257 "glsl_lexer.lpp"
 return UNION;
        YY_BREAK
-case 100:
+case 101:
 YY_RULE_SETUP
-#line 254 "glsl_lexer.lpp"
+#line 258 "glsl_lexer.lpp"
 return ENUM;
        YY_BREAK
-case 101:
+case 102:
 YY_RULE_SETUP
-#line 255 "glsl_lexer.lpp"
+#line 259 "glsl_lexer.lpp"
 return TYPEDEF;
        YY_BREAK
-case 102:
+case 103:
 YY_RULE_SETUP
-#line 256 "glsl_lexer.lpp"
+#line 260 "glsl_lexer.lpp"
 return TEMPLATE;
        YY_BREAK
-case 103:
+case 104:
 YY_RULE_SETUP
-#line 257 "glsl_lexer.lpp"
+#line 261 "glsl_lexer.lpp"
 return THIS;
        YY_BREAK
-case 104:
+case 105:
 YY_RULE_SETUP
-#line 258 "glsl_lexer.lpp"
+#line 262 "glsl_lexer.lpp"
 return PACKED;
        YY_BREAK
-case 105:
+case 106:
 YY_RULE_SETUP
-#line 259 "glsl_lexer.lpp"
+#line 263 "glsl_lexer.lpp"
 return GOTO;
        YY_BREAK
-case 106:
+case 107:
 YY_RULE_SETUP
-#line 260 "glsl_lexer.lpp"
+#line 264 "glsl_lexer.lpp"
 return SWITCH;
        YY_BREAK
-case 107:
+case 108:
 YY_RULE_SETUP
-#line 261 "glsl_lexer.lpp"
+#line 265 "glsl_lexer.lpp"
 return DEFAULT;
        YY_BREAK
-case 108:
+case 109:
 YY_RULE_SETUP
-#line 262 "glsl_lexer.lpp"
+#line 266 "glsl_lexer.lpp"
 return INLINE_TOK;
        YY_BREAK
-case 109:
+case 110:
 YY_RULE_SETUP
-#line 263 "glsl_lexer.lpp"
+#line 267 "glsl_lexer.lpp"
 return NOINLINE;
        YY_BREAK
-case 110:
+case 111:
 YY_RULE_SETUP
-#line 264 "glsl_lexer.lpp"
+#line 268 "glsl_lexer.lpp"
 return VOLATILE;
        YY_BREAK
-case 111:
+case 112:
 YY_RULE_SETUP
-#line 265 "glsl_lexer.lpp"
+#line 269 "glsl_lexer.lpp"
 return PUBLIC_TOK;
        YY_BREAK
-case 112:
+case 113:
 YY_RULE_SETUP
-#line 266 "glsl_lexer.lpp"
+#line 270 "glsl_lexer.lpp"
 return STATIC;
        YY_BREAK
-case 113:
+case 114:
 YY_RULE_SETUP
-#line 267 "glsl_lexer.lpp"
+#line 271 "glsl_lexer.lpp"
 return EXTERN;
        YY_BREAK
-case 114:
+case 115:
 YY_RULE_SETUP
-#line 268 "glsl_lexer.lpp"
+#line 272 "glsl_lexer.lpp"
 return EXTERNAL;
        YY_BREAK
-case 115:
+case 116:
 YY_RULE_SETUP
-#line 269 "glsl_lexer.lpp"
+#line 273 "glsl_lexer.lpp"
 return INTERFACE;
        YY_BREAK
-case 116:
+case 117:
 YY_RULE_SETUP
-#line 270 "glsl_lexer.lpp"
+#line 274 "glsl_lexer.lpp"
 return LONG;
        YY_BREAK
-case 117:
+case 118:
 YY_RULE_SETUP
-#line 271 "glsl_lexer.lpp"
+#line 275 "glsl_lexer.lpp"
 return SHORT;
        YY_BREAK
-case 118:
+case 119:
 YY_RULE_SETUP
-#line 272 "glsl_lexer.lpp"
+#line 276 "glsl_lexer.lpp"
 return DOUBLE;
        YY_BREAK
-case 119:
+case 120:
 YY_RULE_SETUP
-#line 273 "glsl_lexer.lpp"
+#line 277 "glsl_lexer.lpp"
 return HALF;
        YY_BREAK
-case 120:
+case 121:
 YY_RULE_SETUP
-#line 274 "glsl_lexer.lpp"
+#line 278 "glsl_lexer.lpp"
 return FIXED;
        YY_BREAK
-case 121:
+case 122:
 YY_RULE_SETUP
-#line 275 "glsl_lexer.lpp"
+#line 279 "glsl_lexer.lpp"
 return UNSIGNED;
        YY_BREAK
-case 122:
+case 123:
 YY_RULE_SETUP
-#line 276 "glsl_lexer.lpp"
+#line 280 "glsl_lexer.lpp"
 return INPUT;
        YY_BREAK
-case 123:
+case 124:
 YY_RULE_SETUP
-#line 277 "glsl_lexer.lpp"
+#line 281 "glsl_lexer.lpp"
 return OUTPUT;
        YY_BREAK
-case 124:
+case 125:
 YY_RULE_SETUP
-#line 278 "glsl_lexer.lpp"
+#line 282 "glsl_lexer.lpp"
 return HVEC2;
        YY_BREAK
-case 125:
+case 126:
 YY_RULE_SETUP
-#line 279 "glsl_lexer.lpp"
+#line 283 "glsl_lexer.lpp"
 return HVEC3;
        YY_BREAK
-case 126:
+case 127:
 YY_RULE_SETUP
-#line 280 "glsl_lexer.lpp"
+#line 284 "glsl_lexer.lpp"
 return HVEC4;
        YY_BREAK
-case 127:
+case 128:
 YY_RULE_SETUP
-#line 281 "glsl_lexer.lpp"
+#line 285 "glsl_lexer.lpp"
 return DVEC2;
        YY_BREAK
-case 128:
+case 129:
 YY_RULE_SETUP
-#line 282 "glsl_lexer.lpp"
+#line 286 "glsl_lexer.lpp"
 return DVEC3;
        YY_BREAK
-case 129:
+case 130:
 YY_RULE_SETUP
-#line 283 "glsl_lexer.lpp"
+#line 287 "glsl_lexer.lpp"
 return DVEC4;
        YY_BREAK
-case 130:
+case 131:
 YY_RULE_SETUP
-#line 284 "glsl_lexer.lpp"
+#line 288 "glsl_lexer.lpp"
 return FVEC2;
        YY_BREAK
-case 131:
+case 132:
 YY_RULE_SETUP
-#line 285 "glsl_lexer.lpp"
+#line 289 "glsl_lexer.lpp"
 return FVEC3;
        YY_BREAK
-case 132:
+case 133:
 YY_RULE_SETUP
-#line 286 "glsl_lexer.lpp"
+#line 290 "glsl_lexer.lpp"
 return FVEC4;
        YY_BREAK
-case 133:
+case 134:
 YY_RULE_SETUP
-#line 287 "glsl_lexer.lpp"
+#line 291 "glsl_lexer.lpp"
 return SAMPLER2DRECT;
        YY_BREAK
-case 134:
+case 135:
 YY_RULE_SETUP
-#line 288 "glsl_lexer.lpp"
+#line 292 "glsl_lexer.lpp"
 return SAMPLER3DRECT;
        YY_BREAK
-case 135:
+case 136:
 YY_RULE_SETUP
-#line 289 "glsl_lexer.lpp"
+#line 293 "glsl_lexer.lpp"
 return SAMPLER2DRECTSHADOW;
        YY_BREAK
-case 136:
+case 137:
 YY_RULE_SETUP
-#line 290 "glsl_lexer.lpp"
+#line 294 "glsl_lexer.lpp"
 return SIZEOF;
        YY_BREAK
-case 137:
+case 138:
 YY_RULE_SETUP
-#line 291 "glsl_lexer.lpp"
+#line 295 "glsl_lexer.lpp"
 return CAST;
        YY_BREAK
-case 138:
+case 139:
 YY_RULE_SETUP
-#line 292 "glsl_lexer.lpp"
+#line 296 "glsl_lexer.lpp"
 return NAMESPACE;
        YY_BREAK
-case 139:
+case 140:
 YY_RULE_SETUP
-#line 293 "glsl_lexer.lpp"
+#line 297 "glsl_lexer.lpp"
 return USING;
        YY_BREAK
 /* Additional reserved words in GLSL 1.20. */
-case 140:
+case 141:
 YY_RULE_SETUP
-#line 296 "glsl_lexer.lpp"
+#line 300 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(120, LOWP);
        YY_BREAK
-case 141:
+case 142:
 YY_RULE_SETUP
-#line 297 "glsl_lexer.lpp"
+#line 301 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(120, MEDIUMP);
        YY_BREAK
-case 142:
+case 143:
 YY_RULE_SETUP
-#line 298 "glsl_lexer.lpp"
+#line 302 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(120, HIGHP);
        YY_BREAK
-case 143:
+case 144:
 YY_RULE_SETUP
-#line 299 "glsl_lexer.lpp"
+#line 303 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(120, PRECISION);
        YY_BREAK
-case 144:
+case 145:
 YY_RULE_SETUP
-#line 301 "glsl_lexer.lpp"
+#line 305 "glsl_lexer.lpp"
 {
                            struct _mesa_glsl_parse_state *state = yyextra;
                            void *ctx = state;  
@@ -1996,17 +2004,17 @@ YY_RULE_SETUP
                            return IDENTIFIER;
                        }
        YY_BREAK
-case 145:
+case 146:
 YY_RULE_SETUP
-#line 308 "glsl_lexer.lpp"
+#line 312 "glsl_lexer.lpp"
 { return yytext[0]; }
        YY_BREAK
-case 146:
+case 147:
 YY_RULE_SETUP
-#line 310 "glsl_lexer.lpp"
+#line 314 "glsl_lexer.lpp"
 ECHO;
        YY_BREAK
-#line 2010 "glsl_lexer.cpp"
+#line 2018 "glsl_lexer.cpp"
 case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(PP):
        yyterminate();
@@ -2303,7 +2311,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 >= 524 )
+                       if ( yy_current_state >= 525 )
                                yy_c = yy_meta[(unsigned int) yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -2332,11 +2340,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 >= 524 )
+               if ( yy_current_state >= 525 )
                        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 == 523);
+       yy_is_jam = (yy_current_state == 524);
 
        return yy_is_jam ? 0 : yy_current_state;
 }
@@ -3148,7 +3156,7 @@ void _mesa_glsl_free (void * ptr , yyscan_t yyscanner)
 
 #define YYTABLES_NAME "yytables"
 
-#line 310 "glsl_lexer.lpp"
+#line 314 "glsl_lexer.lpp"
 
 
 
index 21c81a266359ad999dd2146205753c133cf03744..9fd9b53c5c62b0847e5519ca46d438b97be5769b 100644 (file)
@@ -236,6 +236,10 @@ layout             {
                            yylval->real = strtod(yytext, NULL);
                            return FLOATCONSTANT;
                        }
+[0-9]+[fF]             {
+                           yylval->real = strtod(yytext, NULL);
+                           return FLOATCONSTANT;
+                       }
 
 true                   {
                            yylval->n = 1;