From 34485ffb3feb2719c84f74d868c8a87a743943b2 Mon Sep 17 00:00:00 2001 From: "Raymond W. Ko" Date: Tue, 20 May 2014 14:37:20 -0400 Subject: [PATCH 1/6] this file does not exist anymore --- hlslang.vcxproj.filters | 3 --- 1 file changed, 3 deletions(-) diff --git a/hlslang.vcxproj.filters b/hlslang.vcxproj.filters index 34cf5ad..8940e04 100644 --- a/hlslang.vcxproj.filters +++ b/hlslang.vcxproj.filters @@ -121,9 +121,6 @@ GLSL Code Gen - - OSDependent\Windows - OSDependent\Windows From 0736ed576d3dfe8fdd121cbdc5dffdac0f203d13 Mon Sep 17 00:00:00 2001 From: "Raymond W. Ko" Date: Tue, 20 May 2014 14:37:53 -0400 Subject: [PATCH 2/6] include to get std::min and std::max --- hlslang/MachineIndependent/Intermediate.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/hlslang/MachineIndependent/Intermediate.cpp b/hlslang/MachineIndependent/Intermediate.cpp index 955ac40..8a6e060 100644 --- a/hlslang/MachineIndependent/Intermediate.cpp +++ b/hlslang/MachineIndependent/Intermediate.cpp @@ -12,6 +12,7 @@ #include "ParseHelper.h" #include #include +#include static TPrecision GetHigherPrecision (TPrecision left, TPrecision right) { return left > right ? left : right; From a4bab4ea6c6ec9f6e76743f71fe4d7b660d810c1 Mon Sep 17 00:00:00 2001 From: "Raymond W. Ko" Date: Tue, 20 May 2014 14:38:52 -0400 Subject: [PATCH 3/6] add dummy UNIX header so that library compiles --- hlslang/OSDependent/Windows/unistd.h | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 hlslang/OSDependent/Windows/unistd.h diff --git a/hlslang/OSDependent/Windows/unistd.h b/hlslang/OSDependent/Windows/unistd.h new file mode 100644 index 0000000..e69de29 From 4111ea4721c91e59f243795fc0ca50d42065a107 Mon Sep 17 00:00:00 2001 From: "Raymond W. Ko" Date: Tue, 20 May 2014 14:53:42 -0400 Subject: [PATCH 4/6] do not ignore these files as I am investigating why compilation fails in Linux --- .gitignore | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 9af81fd..2857dfc 100644 --- a/.gitignore +++ b/.gitignore @@ -20,12 +20,12 @@ CMakeCache.txt Makefile build/ lib/ -Gen_hlslang.cpp -gen_hlslang.cpp -Gen_hlslang_tab.cpp -hlslang_tab.cpp -hlslang.output -hlslang_tab.h +#Gen_hlslang.cpp +#gen_hlslang.cpp +#Gen_hlslang_tab.cpp +#hlslang_tab.cpp +#hlslang.output +#hlslang_tab.h tests/out-*.txt *.dSYM tests/hlsl2glsltest/hlsl2glsltest From 3387629fdc938393a078e343c13d98e0440fcebd Mon Sep 17 00:00:00 2001 From: "Raymond W. Ko" Date: Tue, 20 May 2014 14:55:26 -0400 Subject: [PATCH 5/6] add generated files --- .../MachineIndependent/Gen_hlslang_tab.cpp | 4985 ++++++ hlslang/MachineIndependent/gen_hlslang.cpp | 2995 ++++ hlslang/MachineIndependent/hlslang.output | 12633 ++++++++++++++++ hlslang/MachineIndependent/hlslang_tab.h | 169 + 4 files changed, 20782 insertions(+) create mode 100755 hlslang/MachineIndependent/Gen_hlslang_tab.cpp create mode 100755 hlslang/MachineIndependent/gen_hlslang.cpp create mode 100755 hlslang/MachineIndependent/hlslang.output create mode 100755 hlslang/MachineIndependent/hlslang_tab.h diff --git a/hlslang/MachineIndependent/Gen_hlslang_tab.cpp b/hlslang/MachineIndependent/Gen_hlslang_tab.cpp new file mode 100755 index 0000000..9fca9fe --- /dev/null +++ b/hlslang/MachineIndependent/Gen_hlslang_tab.cpp @@ -0,0 +1,4985 @@ + +/* A Bison parser, made from hlslang.y with Bison version GNU Bison version 1.24 + */ + +#define YYBISON 1 /* Identify Bison output. */ + +#define CONST_QUAL 258 +#define STATIC_QUAL 259 +#define BOOL_TYPE 260 +#define FLOAT_TYPE 261 +#define INT_TYPE 262 +#define STRING_TYPE 263 +#define FIXED_TYPE 264 +#define HALF_TYPE 265 +#define BREAK 266 +#define CONTINUE 267 +#define DO 268 +#define ELSE 269 +#define FOR 270 +#define IF 271 +#define DISCARD 272 +#define RETURN 273 +#define BVEC2 274 +#define BVEC3 275 +#define BVEC4 276 +#define IVEC2 277 +#define IVEC3 278 +#define IVEC4 279 +#define VEC2 280 +#define VEC3 281 +#define VEC4 282 +#define HVEC2 283 +#define HVEC3 284 +#define HVEC4 285 +#define FVEC2 286 +#define FVEC3 287 +#define FVEC4 288 +#define MATRIX2x2 289 +#define MATRIX2x3 290 +#define MATRIX2x4 291 +#define MATRIX3x2 292 +#define MATRIX3x3 293 +#define MATRIX3x4 294 +#define MATRIX4x2 295 +#define MATRIX4x3 296 +#define MATRIX4x4 297 +#define HMATRIX2x2 298 +#define HMATRIX2x3 299 +#define HMATRIX2x4 300 +#define HMATRIX3x2 301 +#define HMATRIX3x3 302 +#define HMATRIX3x4 303 +#define HMATRIX4x2 304 +#define HMATRIX4x3 305 +#define HMATRIX4x4 306 +#define FMATRIX2x2 307 +#define FMATRIX2x3 308 +#define FMATRIX2x4 309 +#define FMATRIX3x2 310 +#define FMATRIX3x3 311 +#define FMATRIX3x4 312 +#define FMATRIX4x2 313 +#define FMATRIX4x3 314 +#define FMATRIX4x4 315 +#define IN_QUAL 316 +#define OUT_QUAL 317 +#define INOUT_QUAL 318 +#define UNIFORM 319 +#define STRUCT 320 +#define VOID_TYPE 321 +#define WHILE 322 +#define SAMPLER1D 323 +#define SAMPLER2D 324 +#define SAMPLER3D 325 +#define SAMPLERCUBE 326 +#define SAMPLER1DSHADOW 327 +#define SAMPLER2DSHADOW 328 +#define SAMPLERRECTSHADOW 329 +#define SAMPLERRECT 330 +#define SAMPLER2D_HALF 331 +#define SAMPLER2D_FLOAT 332 +#define SAMPLERCUBE_HALF 333 +#define SAMPLERCUBE_FLOAT 334 +#define SAMPLERGENERIC 335 +#define VECTOR 336 +#define MATRIX 337 +#define REGISTER 338 +#define TEXTURE 339 +#define SAMPLERSTATE 340 +#define IDENTIFIER 341 +#define TYPE_NAME 342 +#define FLOATCONSTANT 343 +#define INTCONSTANT 344 +#define BOOLCONSTANT 345 +#define STRINGCONSTANT 346 +#define FIELD_SELECTION 347 +#define LEFT_OP 348 +#define RIGHT_OP 349 +#define INC_OP 350 +#define DEC_OP 351 +#define LE_OP 352 +#define GE_OP 353 +#define EQ_OP 354 +#define NE_OP 355 +#define AND_OP 356 +#define OR_OP 357 +#define XOR_OP 358 +#define MUL_ASSIGN 359 +#define DIV_ASSIGN 360 +#define ADD_ASSIGN 361 +#define MOD_ASSIGN 362 +#define LEFT_ASSIGN 363 +#define RIGHT_ASSIGN 364 +#define AND_ASSIGN 365 +#define XOR_ASSIGN 366 +#define OR_ASSIGN 367 +#define SUB_ASSIGN 368 +#define LEFT_PAREN 369 +#define RIGHT_PAREN 370 +#define LEFT_BRACKET 371 +#define RIGHT_BRACKET 372 +#define LEFT_BRACE 373 +#define RIGHT_BRACE 374 +#define DOT 375 +#define COMMA 376 +#define COLON 377 +#define EQUAL 378 +#define SEMICOLON 379 +#define BANG 380 +#define DASH 381 +#define TILDE 382 +#define PLUS 383 +#define STAR 384 +#define SLASH 385 +#define PERCENT 386 +#define LEFT_ANGLE 387 +#define RIGHT_ANGLE 388 +#define VERTICAL_BAR 389 +#define CARET 390 +#define AMPERSAND 391 +#define QUESTION 392 + +#line 7 "hlslang.y" + + +/* Based on: +ANSI C Yacc grammar + +In 1985, Jeff Lee published his Yacc grammar (which is accompanied by a +matching Lex specification) for the April 30, 1985 draft version of the +ANSI C standard. Tom Stockfisch reposted it to net.sources in 1987; that +original, as mentioned in the answer to question 17.25 of the comp.lang.c +FAQ, can be ftp'ed from ftp.uu.net, file usenet/net.sources/ansi.c.grammar.Z. + +I intend to keep this version as close to the current C Standard grammar as +possible; please let me know if you discover discrepancies. + +Jutta Degener, 1995 +*/ + +#include "SymbolTable.h" +#include "ParseHelper.h" +#include "../../include/hlsl2glsl.h" + +#ifdef _WIN32 + #define YYPARSE_PARAM parseContext + #define YYPARSE_PARAM_DECL TParseContext& + #define YY_DECL int yylex(YYSTYPE* pyylval, TParseContext& parseContext) + #define YYLEX_PARAM parseContext + void yyerror(const char*); +#else + #define YYPARSE_PARAM parseContextLocal + #define parseContext (*((TParseContext*)(parseContextLocal))) + #define YY_DECL int yylex(YYSTYPE* pyylval, void* parseContextLocal) + #define YYLEX_PARAM (void*)(parseContextLocal) + extern void yyerror(const char*); +#endif + + +#define FRAG_ONLY(S, L) { \ + if (parseContext.language != EShLangFragment) { \ + parseContext.error(L, " supported in fragment shaders only ", S, "", ""); \ + parseContext.recover(); \ + } \ +} + +#define NONSQUARE_MATRIX_CHECK(S, L) { \ + if (parseContext.targetVersion < ETargetGLSL_120) { \ + parseContext.error(L, " not supported in pre-GLSL1.20", S, "", ""); \ + parseContext.recover(); \ + } \ +} + +#define UNSUPPORTED_FEATURE(S, L) { \ + parseContext.error(L, " not supported ", S, "", ""); \ + parseContext.recover(); \ +} + +#define SET_BASIC_TYPE(RES,PAR,T,PREC) \ + TQualifier qual = parseContext.getDefaultQualifier(); \ + (RES).setBasic(T, qual, (PAR).line); \ + (RES).precision = PREC + + + +#line 69 "hlslang.y" +typedef union { + struct { + TSourceLoc line; + union { + TString *string; + float f; + int i; + bool b; + }; + TSymbol* symbol; + } lex; + struct { + TSourceLoc line; + TOperator op; + union { + TIntermNode* intermNode; + TIntermNodePair nodePair; + TIntermTyped* intermTypedNode; + TIntermAggregate* intermAggregate; + TIntermTyped* intermDeclaration; + }; + union { + TPublicType type; + TQualifier qualifier; + TFunction* function; + TParameter param; + TTypeLine typeLine; + TTypeList* typeList; + TAnnotation* ann; + TTypeInfo* typeInfo; + }; + } interm; +} YYSTYPE; +#line 103 "hlslang.y" + +#ifndef _WIN32 + extern int yylex(YYSTYPE*, void*); +#endif + +#ifndef YYLTYPE +typedef + struct yyltype + { + int timestamp; + int first_line; + int first_column; + int last_line; + int last_column; + char *text; + } + yyltype; + +#define YYLTYPE yyltype +#endif + +#ifndef YYDEBUG +#define YYDEBUG 1 +#endif + +#include + +#ifndef __cplusplus +#ifndef __STDC__ +#define const +#endif +#endif + + + +#define YYFINAL 496 +#define YYFLAG -32768 +#define YYNTBASE 138 + +#define YYTRANSLATE(x) ((unsigned)(x) <= 392 ? yytranslate[x] : 230) + +static const short yytranslate[] = { 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137 +}; + +#if YYDEBUG != 0 +static const short yyprhs[] = { 0, + 0, 2, 4, 6, 8, 10, 14, 16, 21, 23, + 27, 30, 33, 35, 37, 39, 43, 46, 49, 52, + 54, 57, 61, 64, 66, 68, 70, 72, 75, 78, + 81, 86, 88, 90, 92, 94, 96, 100, 104, 108, + 110, 114, 118, 120, 124, 128, 130, 134, 138, 142, + 146, 148, 152, 156, 158, 162, 164, 168, 170, 174, + 176, 180, 182, 186, 188, 192, 194, 200, 202, 206, + 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, + 228, 230, 234, 236, 239, 242, 245, 250, 252, 254, + 257, 261, 265, 268, 273, 277, 282, 288, 296, 300, + 303, 307, 310, 311, 313, 315, 317, 319, 321, 326, + 333, 341, 350, 360, 367, 369, 373, 379, 386, 394, + 403, 409, 411, 414, 416, 418, 421, 424, 426, 428, + 433, 435, 437, 439, 441, 443, 445, 452, 459, 466, + 468, 470, 472, 474, 476, 478, 480, 482, 484, 486, + 488, 490, 492, 494, 496, 498, 500, 502, 504, 506, + 508, 510, 512, 514, 516, 518, 520, 522, 524, 526, + 528, 530, 532, 534, 536, 538, 540, 542, 544, 546, + 548, 550, 552, 554, 556, 558, 560, 562, 564, 566, + 568, 570, 572, 574, 576, 578, 580, 582, 588, 593, + 595, 598, 602, 604, 608, 610, 614, 619, 626, 628, + 630, 632, 634, 636, 638, 640, 642, 644, 646, 648, + 651, 652, 653, 659, 661, 663, 666, 670, 672, 675, + 677, 680, 686, 690, 692, 694, 699, 700, 707, 708, + 717, 718, 726, 728, 730, 732, 733, 736, 740, 743, + 746, 749, 753, 756, 758, 761, 763, 765, 767, 768, + 772, 776, 781, 783, 785, 789, 793, 796, 800, 802, + 805, 811, 813, 815, 817, 819, 821, 823, 825, 827, + 829, 831, 833, 835, 837, 839, 841, 843, 845, 847, + 849, 851, 853, 855, 857, 859, 861, 863, 865, 867, + 872, 874, 878, 882, 888, 891, 892, 894, 896, 898, + 901, 904, 907, 911, 916, 920, 922, 925, 930, 937, + 944, 949, 956 +}; + +static const short yyrhs[] = { 86, + 0, 138, 0, 89, 0, 88, 0, 90, 0, 114, + 165, 115, 0, 139, 0, 140, 116, 141, 117, 0, + 142, 0, 140, 120, 92, 0, 140, 95, 0, 140, + 96, 0, 165, 0, 143, 0, 144, 0, 140, 120, + 144, 0, 146, 115, 0, 145, 115, 0, 147, 66, + 0, 147, 0, 147, 163, 0, 146, 121, 163, 0, + 148, 114, 0, 180, 0, 86, 0, 92, 0, 140, + 0, 95, 149, 0, 96, 149, 0, 150, 149, 0, + 114, 181, 115, 149, 0, 128, 0, 126, 0, 125, + 0, 127, 0, 149, 0, 151, 129, 149, 0, 151, + 130, 149, 0, 151, 131, 149, 0, 151, 0, 152, + 128, 151, 0, 152, 126, 151, 0, 152, 0, 153, + 93, 152, 0, 153, 94, 152, 0, 153, 0, 154, + 132, 153, 0, 154, 133, 153, 0, 154, 97, 153, + 0, 154, 98, 153, 0, 154, 0, 155, 99, 154, + 0, 155, 100, 154, 0, 155, 0, 156, 136, 155, + 0, 156, 0, 157, 135, 156, 0, 157, 0, 158, + 134, 157, 0, 158, 0, 159, 101, 158, 0, 159, + 0, 160, 103, 159, 0, 160, 0, 161, 102, 160, + 0, 161, 0, 161, 137, 165, 122, 163, 0, 162, + 0, 149, 164, 163, 0, 123, 0, 104, 0, 105, + 0, 107, 0, 106, 0, 113, 0, 108, 0, 109, + 0, 110, 0, 111, 0, 112, 0, 163, 0, 165, + 121, 163, 0, 162, 0, 168, 124, 0, 176, 124, + 0, 169, 115, 0, 169, 115, 122, 86, 0, 171, + 0, 170, 0, 171, 173, 0, 170, 121, 173, 0, + 178, 86, 114, 0, 180, 86, 0, 180, 86, 123, + 187, 0, 180, 86, 224, 0, 180, 86, 122, 86, + 0, 180, 86, 116, 166, 117, 0, 180, 86, 116, + 166, 117, 122, 86, 0, 179, 174, 172, 0, 174, + 172, 0, 179, 174, 175, 0, 174, 175, 0, 0, + 61, 0, 62, 0, 63, 0, 180, 0, 177, 0, + 176, 121, 86, 226, 0, 176, 121, 86, 116, 117, + 226, 0, 176, 121, 86, 116, 166, 117, 226, 0, + 176, 121, 86, 116, 117, 226, 123, 187, 0, 176, + 121, 86, 116, 166, 117, 226, 123, 187, 0, 176, + 121, 86, 226, 123, 187, 0, 178, 0, 178, 86, + 226, 0, 178, 86, 116, 117, 226, 0, 178, 86, + 116, 166, 117, 226, 0, 178, 86, 116, 117, 226, + 123, 187, 0, 178, 86, 116, 166, 117, 226, 123, + 187, 0, 178, 86, 226, 123, 187, 0, 180, 0, + 179, 180, 0, 3, 0, 4, 0, 4, 3, 0, + 3, 4, 0, 64, 0, 181, 0, 181, 116, 166, + 117, 0, 66, 0, 6, 0, 10, 0, 9, 0, + 7, 0, 5, 0, 81, 132, 6, 121, 89, 133, + 0, 81, 132, 7, 121, 89, 133, 0, 81, 132, + 5, 121, 89, 133, 0, 25, 0, 26, 0, 27, + 0, 28, 0, 29, 0, 30, 0, 31, 0, 32, + 0, 33, 0, 19, 0, 20, 0, 21, 0, 22, + 0, 23, 0, 24, 0, 34, 0, 35, 0, 36, + 0, 37, 0, 38, 0, 39, 0, 40, 0, 41, + 0, 42, 0, 43, 0, 44, 0, 45, 0, 46, + 0, 47, 0, 48, 0, 49, 0, 50, 0, 51, + 0, 52, 0, 53, 0, 54, 0, 55, 0, 56, + 0, 57, 0, 58, 0, 59, 0, 60, 0, 84, + 0, 80, 0, 68, 0, 69, 0, 76, 0, 77, + 0, 70, 0, 71, 0, 78, 0, 79, 0, 75, + 0, 74, 0, 72, 0, 73, 0, 182, 0, 87, + 0, 65, 86, 118, 183, 119, 0, 65, 118, 183, + 119, 0, 184, 0, 183, 184, 0, 180, 185, 124, + 0, 186, 0, 185, 121, 186, 0, 86, 0, 86, + 122, 86, 0, 86, 116, 166, 117, 0, 86, 116, + 166, 117, 122, 86, 0, 163, 0, 213, 0, 227, + 0, 167, 0, 191, 0, 190, 0, 188, 0, 197, + 0, 198, 0, 201, 0, 208, 0, 118, 119, 0, + 0, 0, 118, 192, 196, 193, 119, 0, 195, 0, + 190, 0, 118, 119, 0, 118, 196, 119, 0, 189, + 0, 196, 189, 0, 124, 0, 165, 124, 0, 16, + 114, 165, 115, 199, 0, 189, 14, 189, 0, 189, + 0, 165, 0, 178, 86, 123, 187, 0, 0, 67, + 114, 202, 200, 115, 194, 0, 0, 13, 203, 189, + 67, 114, 165, 115, 124, 0, 0, 15, 114, 204, + 205, 207, 115, 194, 0, 197, 0, 188, 0, 200, + 0, 0, 206, 124, 0, 206, 124, 165, 0, 12, + 124, 0, 11, 124, 0, 18, 124, 0, 18, 165, + 124, 0, 17, 124, 0, 210, 0, 209, 210, 0, + 211, 0, 167, 0, 124, 0, 0, 168, 212, 195, + 0, 118, 214, 119, 0, 118, 214, 121, 119, 0, + 163, 0, 213, 0, 214, 121, 163, 0, 214, 121, + 213, 0, 132, 133, 0, 132, 216, 133, 0, 217, + 0, 216, 217, 0, 218, 86, 123, 219, 124, 0, + 6, 0, 10, 0, 9, 0, 7, 0, 5, 0, + 8, 0, 19, 0, 20, 0, 21, 0, 22, 0, + 23, 0, 24, 0, 25, 0, 26, 0, 27, 0, + 28, 0, 29, 0, 30, 0, 31, 0, 32, 0, + 33, 0, 220, 0, 91, 0, 221, 0, 223, 0, + 89, 0, 90, 0, 88, 0, 218, 114, 222, 115, + 0, 220, 0, 222, 121, 220, 0, 118, 222, 119, + 0, 122, 83, 114, 86, 115, 0, 122, 86, 0, + 0, 225, 0, 224, 0, 215, 0, 225, 215, 0, + 225, 224, 0, 224, 215, 0, 225, 224, 215, 0, + 85, 118, 228, 119, 0, 85, 118, 119, 0, 229, + 0, 228, 229, 0, 86, 123, 86, 124, 0, 86, + 123, 132, 86, 133, 124, 0, 86, 123, 114, 86, + 115, 124, 0, 84, 123, 86, 124, 0, 84, 123, + 132, 86, 133, 124, 0, 84, 123, 114, 86, 115, + 124, 0 +}; + +#endif + +#if YYDEBUG != 0 +static const short yyrline[] = { 0, + 182, 220, 223, 228, 233, 238, 244, 247, 311, 314, + 401, 411, 424, 438, 554, 557, 575, 579, 586, 590, + 597, 606, 618, 626, 653, 665, 675, 678, 688, 698, + 716, 751, 752, 753, 754, 760, 761, 762, 763, 767, + 768, 769, 773, 774, 775, 779, 780, 781, 782, 783, + 787, 788, 789, 793, 794, 798, 799, 803, 804, 808, + 809, 813, 814, 818, 819, 823, 824, 839, 840, 854, + 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, + 868, 871, 882, 890, 891, 895, 928, 965, 968, 975, + 983, 1004, 1036, 1047, 1060, 1072, 1084, 1102, 1131, 1136, + 1146, 1151, 1161, 1164, 1167, 1170, 1176, 1183, 1186, 1204, + 1228, 1256, 1283, 1316, 1350, 1353, 1371, 1394, 1420, 1446, + 1476, 1524, 1527, 1544, 1547, 1550, 1553, 1556, 1564, 1567, + 1582, 1585, 1588, 1591, 1594, 1597, 1600, 1611, 1622, 1633, + 1637, 1641, 1645, 1649, 1653, 1657, 1661, 1665, 1669, 1673, + 1677, 1681, 1685, 1689, 1693, 1697, 1702, 1707, 1712, 1716, + 1721, 1726, 1731, 1735, 1739, 1744, 1749, 1754, 1758, 1763, + 1768, 1773, 1777, 1781, 1786, 1791, 1796, 1800, 1805, 1810, + 1815, 1819, 1822, 1825, 1828, 1831, 1834, 1837, 1840, 1843, + 1846, 1849, 1852, 1855, 1858, 1861, 1865, 1877, 1887, 1895, + 1898, 1913, 1946, 1950, 1956, 1961, 1967, 1977, 1993, 1994, + 1995, 1999, 2003, 2004, 2010, 2011, 2012, 2013, 2014, 2018, + 2019, 2019, 2019, 2027, 2028, 2033, 2036, 2044, 2047, 2053, + 2054, 2058, 2066, 2070, 2080, 2085, 2102, 2102, 2107, 2107, + 2114, 2114, 2127, 2130, 2136, 2139, 2145, 2149, 2156, 2163, + 2170, 2177, 2197, 2208, 2212, 2219, 2222, 2225, 2229, 2298, + 2318, 2321, 2328, 2332, 2336, 2340, 2347, 2351, 2357, 2361, + 2368, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, + 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, + 2393, 2394, 2398, 2399, 2400, 2401, 2405, 2408, 2411, 2417, + 2421, 2422, 2426, 2430, 2436, 2440, 2441, 2442, 2443, 2444, + 2445, 2446, 2447, 2451, 2456, 2461, 2462, 2466, 2467, 2468, + 2469, 2470, 2471 +}; + +static const char * const yytname[] = { "$","error","$undefined.","CONST_QUAL", +"STATIC_QUAL","BOOL_TYPE","FLOAT_TYPE","INT_TYPE","STRING_TYPE","FIXED_TYPE", +"HALF_TYPE","BREAK","CONTINUE","DO","ELSE","FOR","IF","DISCARD","RETURN","BVEC2", +"BVEC3","BVEC4","IVEC2","IVEC3","IVEC4","VEC2","VEC3","VEC4","HVEC2","HVEC3", +"HVEC4","FVEC2","FVEC3","FVEC4","MATRIX2x2","MATRIX2x3","MATRIX2x4","MATRIX3x2", +"MATRIX3x3","MATRIX3x4","MATRIX4x2","MATRIX4x3","MATRIX4x4","HMATRIX2x2","HMATRIX2x3", +"HMATRIX2x4","HMATRIX3x2","HMATRIX3x3","HMATRIX3x4","HMATRIX4x2","HMATRIX4x3", +"HMATRIX4x4","FMATRIX2x2","FMATRIX2x3","FMATRIX2x4","FMATRIX3x2","FMATRIX3x3", +"FMATRIX3x4","FMATRIX4x2","FMATRIX4x3","FMATRIX4x4","IN_QUAL","OUT_QUAL","INOUT_QUAL", +"UNIFORM","STRUCT","VOID_TYPE","WHILE","SAMPLER1D","SAMPLER2D","SAMPLER3D","SAMPLERCUBE", +"SAMPLER1DSHADOW","SAMPLER2DSHADOW","SAMPLERRECTSHADOW","SAMPLERRECT","SAMPLER2D_HALF", +"SAMPLER2D_FLOAT","SAMPLERCUBE_HALF","SAMPLERCUBE_FLOAT","SAMPLERGENERIC","VECTOR", +"MATRIX","REGISTER","TEXTURE","SAMPLERSTATE","IDENTIFIER","TYPE_NAME","FLOATCONSTANT", +"INTCONSTANT","BOOLCONSTANT","STRINGCONSTANT","FIELD_SELECTION","LEFT_OP","RIGHT_OP", +"INC_OP","DEC_OP","LE_OP","GE_OP","EQ_OP","NE_OP","AND_OP","OR_OP","XOR_OP", +"MUL_ASSIGN","DIV_ASSIGN","ADD_ASSIGN","MOD_ASSIGN","LEFT_ASSIGN","RIGHT_ASSIGN", +"AND_ASSIGN","XOR_ASSIGN","OR_ASSIGN","SUB_ASSIGN","LEFT_PAREN","RIGHT_PAREN", +"LEFT_BRACKET","RIGHT_BRACKET","LEFT_BRACE","RIGHT_BRACE","DOT","COMMA","COLON", +"EQUAL","SEMICOLON","BANG","DASH","TILDE","PLUS","STAR","SLASH","PERCENT","LEFT_ANGLE", +"RIGHT_ANGLE","VERTICAL_BAR","CARET","AMPERSAND","QUESTION","variable_identifier", +"primary_expression","postfix_expression","int_expression","function_call","function_call_or_method", +"function_call_generic","function_call_header_no_parameters","function_call_header_with_parameters", +"function_call_header","function_identifier","unary_expression","unary_operator", +"mul_expression","add_expression","shift_expression","rel_expression","eq_expression", +"and_expression","xor_expression","or_expression","log_and_expression","log_xor_expression", +"log_or_expression","cond_expression","assign_expression","assignment_operator", +"expression","const_expression","declaration","function_prototype","function_declarator", +"function_header_with_parameters","function_header","parameter_declarator","parameter_declaration", +"parameter_qualifier","parameter_type_specifier","init_declarator_list","single_declaration", +"fully_specified_type","type_qualifier","type_specifier","type_specifier_nonarray", +"struct_specifier","struct_declaration_list","struct_declaration","struct_declarator_list", +"struct_declarator","initializer","declaration_statement","statement","simple_statement", +"compound_statement","@1","@2","statement_no_new_scope","compound_statement_no_new_scope", +"statement_list","expression_statement","selection_statement","selection_rest_statement", +"condition","iteration_statement","@3","@4","@5","for_init_statement","conditionopt", +"for_rest_statement","jump_statement","translation_unit","external_declaration", +"function_definition","@6","initialization_list","initializer_list","annotation", +"annotation_list","annotation_item","ann_type","ann_literal","ann_numerical_constant", +"ann_literal_constructor","ann_value_list","ann_literal_init_list","register_specifier", +"semantic","type_info","sampler_initializer","sampler_init_list","sampler_init_item", +"" +}; +#endif + +static const short yyr1[] = { 0, + 138, 139, 139, 139, 139, 139, 140, 140, 140, 140, + 140, 140, 141, 142, 143, 143, 144, 144, 145, 145, + 146, 146, 147, 148, 148, 148, 149, 149, 149, 149, + 149, 150, 150, 150, 150, 151, 151, 151, 151, 152, + 152, 152, 153, 153, 153, 154, 154, 154, 154, 154, + 155, 155, 155, 156, 156, 157, 157, 158, 158, 159, + 159, 160, 160, 161, 161, 162, 162, 163, 163, 164, + 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, + 165, 165, 166, 167, 167, 168, 168, 169, 169, 170, + 170, 171, 172, 172, 172, 172, 172, 172, 173, 173, + 173, 173, 174, 174, 174, 174, 175, 176, 176, 176, + 176, 176, 176, 176, 177, 177, 177, 177, 177, 177, + 177, 178, 178, 179, 179, 179, 179, 179, 180, 180, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 182, 182, 183, + 183, 184, 185, 185, 186, 186, 186, 186, 187, 187, + 187, 188, 189, 189, 190, 190, 190, 190, 190, 191, + 192, 193, 191, 194, 194, 195, 195, 196, 196, 197, + 197, 198, 199, 199, 200, 200, 202, 201, 203, 201, + 204, 201, 205, 205, 206, 206, 207, 207, 208, 208, + 208, 208, 208, 209, 209, 210, 210, 210, 212, 211, + 213, 213, 214, 214, 214, 214, 215, 215, 216, 216, + 217, 218, 218, 218, 218, 218, 218, 218, 218, 218, + 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, + 218, 218, 219, 219, 219, 219, 220, 220, 220, 221, + 222, 222, 223, 224, 225, 226, 226, 226, 226, 226, + 226, 226, 226, 227, 227, 228, 228, 229, 229, 229, + 229, 229, 229 +}; + +static const short yyr2[] = { 0, + 1, 1, 1, 1, 1, 3, 1, 4, 1, 3, + 2, 2, 1, 1, 1, 3, 2, 2, 2, 1, + 2, 3, 2, 1, 1, 1, 1, 2, 2, 2, + 4, 1, 1, 1, 1, 1, 3, 3, 3, 1, + 3, 3, 1, 3, 3, 1, 3, 3, 3, 3, + 1, 3, 3, 1, 3, 1, 3, 1, 3, 1, + 3, 1, 3, 1, 3, 1, 5, 1, 3, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 3, 1, 2, 2, 2, 4, 1, 1, 2, + 3, 3, 2, 4, 3, 4, 5, 7, 3, 2, + 3, 2, 0, 1, 1, 1, 1, 1, 4, 6, + 7, 8, 9, 6, 1, 3, 5, 6, 7, 8, + 5, 1, 2, 1, 1, 2, 2, 1, 1, 4, + 1, 1, 1, 1, 1, 1, 6, 6, 6, 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, 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, 5, 4, 1, + 2, 3, 1, 3, 1, 3, 4, 6, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 0, 0, 5, 1, 1, 2, 3, 1, 2, 1, + 2, 5, 3, 1, 1, 4, 0, 6, 0, 8, + 0, 7, 1, 1, 1, 0, 2, 3, 2, 2, + 2, 3, 2, 1, 2, 1, 1, 1, 0, 3, + 3, 4, 1, 1, 3, 3, 2, 3, 1, 2, + 5, 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, 4, + 1, 3, 3, 5, 2, 0, 1, 1, 1, 2, + 2, 2, 3, 4, 3, 1, 2, 4, 6, 6, + 4, 6, 6 +}; + +static const short yydefact[] = { 0, + 124, 125, 136, 132, 135, 134, 133, 149, 150, 151, + 152, 153, 154, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 128, + 0, 131, 184, 185, 188, 189, 194, 195, 193, 192, + 186, 187, 190, 191, 183, 0, 182, 197, 258, 257, + 259, 0, 89, 103, 0, 108, 115, 0, 122, 129, + 196, 0, 254, 256, 127, 126, 0, 0, 0, 84, + 0, 86, 103, 104, 105, 106, 90, 0, 103, 0, + 85, 306, 123, 0, 255, 0, 0, 0, 200, 0, + 0, 0, 0, 260, 0, 91, 100, 102, 107, 0, + 306, 92, 0, 0, 0, 309, 308, 307, 116, 1, + 4, 3, 5, 26, 0, 0, 0, 34, 33, 35, + 32, 2, 7, 27, 9, 14, 15, 0, 0, 20, + 0, 36, 0, 40, 43, 46, 51, 54, 56, 58, + 60, 62, 64, 66, 83, 0, 24, 0, 205, 0, + 203, 199, 201, 0, 0, 0, 0, 0, 239, 0, + 0, 0, 0, 0, 221, 226, 230, 36, 68, 81, + 0, 212, 0, 122, 215, 228, 214, 213, 0, 216, + 217, 218, 219, 87, 93, 99, 101, 0, 109, 306, + 0, 0, 305, 276, 272, 275, 277, 274, 273, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 267, 0, 269, 0, 312, 0, + 310, 311, 0, 28, 29, 0, 129, 11, 12, 0, + 0, 18, 17, 0, 131, 21, 23, 30, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 130, 198, + 0, 0, 0, 202, 0, 0, 0, 250, 249, 0, + 241, 0, 253, 251, 0, 237, 220, 0, 71, 72, + 74, 73, 76, 77, 78, 79, 80, 75, 70, 0, + 0, 231, 227, 229, 0, 0, 0, 95, 306, 0, + 0, 117, 306, 0, 268, 270, 0, 313, 0, 0, + 209, 121, 210, 211, 6, 0, 0, 13, 25, 10, + 16, 22, 37, 38, 39, 42, 41, 44, 45, 49, + 50, 47, 48, 52, 53, 55, 57, 59, 61, 63, + 65, 0, 0, 206, 204, 139, 137, 138, 0, 0, + 0, 252, 0, 222, 69, 82, 0, 96, 94, 110, + 306, 114, 0, 118, 0, 0, 0, 263, 264, 0, + 31, 8, 0, 207, 0, 244, 243, 246, 0, 235, + 0, 0, 0, 97, 0, 111, 119, 0, 304, 299, + 297, 298, 294, 0, 0, 0, 293, 295, 296, 0, + 0, 315, 0, 316, 261, 0, 67, 0, 0, 245, + 0, 0, 234, 232, 0, 0, 223, 0, 112, 0, + 120, 301, 0, 0, 271, 0, 0, 314, 317, 262, + 265, 266, 208, 0, 247, 0, 0, 0, 225, 238, + 224, 98, 113, 303, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 248, 242, 233, 236, 302, 300, 321, + 0, 0, 318, 0, 0, 240, 0, 0, 0, 0, + 323, 322, 320, 319, 0, 0 +}; + +static const short yydefgoto[] = { 142, + 143, 144, 337, 145, 146, 147, 148, 149, 150, 151, + 188, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 189, 190, 310, 191, 166, 192, 193, + 72, 73, 74, 117, 97, 98, 118, 75, 76, 77, + 78, 167, 80, 81, 108, 109, 170, 171, 332, 195, + 196, 197, 198, 298, 403, 460, 461, 199, 200, 201, + 434, 402, 202, 373, 290, 370, 398, 431, 432, 203, + 82, 83, 84, 91, 333, 390, 126, 236, 237, 238, + 416, 442, 418, 443, 419, 127, 128, 129, 334, 423, + 424 +}; + +static const short yypact[] = { 2191, + 72, 31,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + -59,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768, -30,-32768,-32768,-32768,-32768, + -52, 6, 20, 4, 28,-32768, 62, 2665,-32768, 37, +-32768, 1183,-32768,-32768,-32768,-32768, 46, 2665, 164,-32768, + 54, 63, 66,-32768,-32768,-32768,-32768, 2665, 113, 102, +-32768, -37,-32768, 1969,-32768, 2665, 108, 2297,-32768, 79, + 83, 87, 455,-32768, 147,-32768,-32768,-32768, 148, 2665, + -84,-32768, 1523, -3, 301,-32768, 103, -69, 115, 122, +-32768,-32768,-32768,-32768, 1969, 1969, 1969,-32768,-32768,-32768, +-32768,-32768,-32768, -45,-32768,-32768,-32768, 125, -80, 2079, + 127,-32768, 1969, 49, -19, 23, -76, 91, 106, 109, + 111, 142, 143, -85,-32768, 130,-32768, 2398, -62, 30, +-32768,-32768,-32768, 159, 161, 162, 128, 129,-32768, 140, + 141, 132, 1636, 144, 138,-32768,-32768, 27,-32768,-32768, + 34,-32768, -52, 145,-32768,-32768,-32768,-32768, 581,-32768, +-32768,-32768,-32768,-32768, -83,-32768,-32768, 1746, 137, -41, + 151, 155,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768, 330,-32768, 179,-32768, 187, +-32768, 103, 1289,-32768,-32768, -79, 77,-32768,-32768, 1969, + 2581,-32768,-32768, 1969, 156,-32768,-32768,-32768, 1969, 1969, + 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, + 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,-32768,-32768, + 1969, 186, 108,-32768, 146, 150, 152,-32768,-32768, 707, +-32768, 1969,-32768,-32768, 36,-32768,-32768, 707,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1969, + 1969,-32768,-32768,-32768, 1969, 40, 1289,-32768, -41, 157, + 1289, 153, -41, 189,-32768,-32768, 154,-32768, 160, 1859, +-32768,-32768,-32768,-32768,-32768, 1969, 163, 165,-32768, 167, +-32768,-32768,-32768,-32768,-32768, 49, 49, -19, -19, 23, + 23, 23, 23, -76, -76, 91, 106, 109, 111, 142, + 143, 76, 171,-32768,-32768,-32768,-32768,-32768, 206, 959, + -18,-32768, 1071, 707,-32768,-32768, 172,-32768,-32768, 168, + -41,-32768, 1289, 169, 180, 2481, -61,-32768,-32768, 42, +-32768,-32768, 1969, 175, 170,-32768,-32768, 1071, 707, 165, + 208, 184, 181, 182, 1289, 178,-32768, 1289,-32768,-32768, +-32768,-32768,-32768, 93, 188, 191,-32768,-32768,-32768, 190, + 193,-32768, -55,-32768,-32768, 1399,-32768, 217, 1969,-32768, + 194, 197, 291,-32768, 218, 833,-32768, 231,-32768, 1289, +-32768,-32768, 68, 93,-32768, -71, -70,-32768,-32768,-32768, +-32768,-32768,-32768, -10, 1969, 833, 707, 1289,-32768,-32768, +-32768,-32768,-32768,-32768, 93, 3, 219, 256, 258, 221, + 260, 261, 224, 165,-32768,-32768,-32768,-32768,-32768,-32768, + 249, 232,-32768, 251, 234,-32768, 244, 245, 247, 248, +-32768,-32768,-32768,-32768, 375,-32768 +}; + +static const short yypgoto[] = {-32768, +-32768,-32768,-32768,-32768,-32768, 126,-32768,-32768,-32768,-32768, + -49,-32768, -60, -58, -123, -40, 104, 105, 107, 110, + 112, 114,-32768, -86, -144,-32768, -136, -119, 2, 12, +-32768,-32768,-32768, 259, 287, 283, 263,-32768,-32768, -353, + -44, 0, 250,-32768, 278, -95,-32768, 117, -293, 16, + -190, -410,-32768,-32768,-32768, -67, 299, 94, 24,-32768, +-32768, -5,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768, 313,-32768,-32768, -325,-32768, -117,-32768, 166, 10, +-32768, -372,-32768, -47,-32768, -109,-32768, -118,-32768,-32768, + -22 +}; + + +#define YYLAST 2752 + + +static const short yytable[] = { 79, + 246, 70, 209, 211, 389, 256, 1, 2, 314, 239, + 241, 71, 173, 417, 467, 470, 277, 165, 242, 401, + 266, 267, 420, 379, 421, 459, 87, 382, 420, 99, + 421, 208, 315, 86, 253, 335, 165, 124, 316, 317, + 254, 311, 468, 471, 401, 459, 295, 125, 99, 248, + 249, 278, 240, 281, 152, 268, 269, 422, 88, 282, + 469, 472, 125, 448, 94, 95, 96, 50, 1, 2, + 250, 90, 173, 152, 251, 85, 122, 103, 123, 212, + 124, 79, 213, 70, 124, 244, 245, 107, 320, 407, + 125, 322, 478, 71, 125, 318, 399, 119, 331, 369, + 452, 89, 311, 258, 473, 107, 262, 107, 263, 342, + 311, 439, 194, 338, 441, 264, 265, 479, -88, 119, + 92, 165, 212, 465, 328, 378, 94, 95, 96, 50, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 93, 362, 350, 351, 352, 353, 463, 102, 100, 309, + 283, 101, 104, 284, 311, 371, 311, 312, 152, 372, + 425, 363, 426, 106, 477, 375, 376, 107, 110, 111, + 112, 113, 331, 94, 95, 96, 331, 259, 260, 261, + 410, 411, 412, 314, 115, 388, 464, 121, 465, 270, + 271, 336, 104, 169, 165, 377, 311, 393, 194, 174, + 380, 346, 347, 175, 384, 348, 349, 176, 433, 343, + 344, 345, 152, 152, 152, 152, 152, 152, 152, 152, + 152, 152, 152, 152, 152, 152, 152, 152, 165, 354, + 355, 152, 204, 205, 125, -25, 400, 243, 331, 252, + 257, 272, 275, 273, 274, 276, 279, 285, 427, 286, + 287, 288, 289, 291, 292, 293, 297, 296, -24, 321, + 331, 400, 406, 331, 327, 152, 476, 323, 324, 212, + -19, 364, 395, 381, 385, 383, 386, 387, 366, 392, + -26, 451, 367, 429, 368, 311, 391, 394, 404, 194, + 405, 408, 454, 435, 409, 331, 428, 194, 436, 437, + 440, 444, 453, 438, 457, 214, 215, 216, 217, 218, + 219, 456, 446, 331, 445, 447, 462, 455, 474, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 214, 215, 216, 217, 218, 219, + 458, 481, 480, 482, 483, 484, 485, 486, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 487, 488, 489, 490, 491, 492, 194, + 493, 494, 194, 194, 496, 356, 341, 357, 206, 116, + 358, 120, 207, 168, 359, 396, 247, 360, 475, 114, + 361, 374, 430, 397, 105, 415, 466, 194, 194, 365, + 449, 326, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 235, 0, 194, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 194, 194, 1, 2, 3, + 4, 5, 325, 6, 7, 177, 178, 179, 0, 180, + 181, 182, 183, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 0, 0, 0, 50, 51, + 52, 184, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 0, 0, 67, 0, + 130, 68, 131, 132, 133, 0, 134, 0, 0, 135, + 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 137, 0, + 0, 0, 185, 186, 0, 0, 0, 0, 187, 138, + 139, 140, 141, 1, 2, 3, 4, 5, 0, 6, + 7, 177, 178, 179, 0, 180, 181, 182, 183, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 0, 0, 0, 50, 51, 52, 184, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 0, 0, 67, 0, 130, 68, 131, 132, + 133, 0, 134, 0, 0, 135, 136, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 137, 0, 0, 0, 185, 313, + 0, 0, 0, 0, 187, 138, 139, 140, 141, 1, + 2, 3, 4, 5, 0, 6, 7, 177, 178, 179, + 0, 180, 181, 182, 183, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 0, 0, 0, + 50, 51, 52, 184, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 0, 0, + 67, 0, 130, 68, 131, 132, 133, 0, 134, 0, + 0, 135, 136, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 137, 0, 0, 0, 185, 0, 0, 0, 0, 0, + 187, 138, 139, 140, 141, 1, 2, 3, 4, 5, + 0, 6, 7, 177, 178, 179, 0, 180, 181, 182, + 183, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 0, 0, 0, 50, 51, 52, 184, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 0, 0, 67, 0, 130, 68, + 131, 132, 133, 0, 134, 0, 0, 135, 136, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 137, 0, 0, 0, + 113, 0, 0, 0, 0, 0, 187, 138, 139, 140, + 141, 1, 2, 3, 4, 5, 0, 6, 7, 0, + 0, 0, 0, 0, 0, 0, 0, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 0, + 0, 0, 50, 51, 52, 0, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 0, 0, 67, 0, 130, 68, 131, 132, 133, 0, + 134, 0, 0, 135, 136, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 137, 1, 2, 3, 4, 5, 0, 6, + 7, 0, 187, 138, 139, 140, 141, 0, 0, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 0, 0, 0, 50, 51, 52, 0, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 0, 0, 67, 0, 130, 68, 131, 132, + 133, 0, 134, 0, 0, 135, 136, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 495, 0, 137, 1, 2, 3, 4, 5, + 0, 6, 7, 0, 0, 138, 139, 140, 141, 0, + 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 0, 0, 0, 50, 51, 52, 0, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 0, 0, 67, 0, 0, 68, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 4, 5, 0, 6, 7, 0, + 0, 0, 0, 0, 0, 0, 69, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 0, + 0, 0, 0, 51, 52, 0, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 0, 0, 67, 329, 130, 68, 131, 132, 133, 0, + 134, 0, 0, 135, 136, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 137, 3, 4, 5, 330, 6, 7, 0, + 0, 0, 0, 138, 139, 140, 141, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 0, + 0, 0, 0, 51, 52, 0, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 0, 0, 67, 0, 130, 68, 131, 132, 133, 0, + 134, 0, 0, 135, 136, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 137, 0, 0, 0, 330, 450, 0, 0, + 0, 0, 0, 138, 139, 140, 141, 3, 4, 5, + 0, 6, 7, 0, 0, 0, 0, 0, 0, 0, + 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 0, 0, 0, 0, 51, 52, 0, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 0, 0, 67, 0, 130, 68, + 131, 132, 133, 0, 134, 0, 0, 135, 136, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 137, 0, 0, 210, + 3, 4, 5, 0, 6, 7, 0, 138, 139, 140, + 141, 0, 0, 0, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 0, 0, 0, 0, + 51, 52, 0, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 0, 0, 67, + 0, 130, 68, 131, 132, 133, 0, 134, 0, 0, + 135, 136, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 137, + 3, 4, 5, 0, 6, 7, 0, 0, 0, 294, + 138, 139, 140, 141, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 0, 0, 0, 0, + 51, 52, 0, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 0, 0, 67, + 0, 130, 68, 131, 132, 133, 0, 134, 0, 0, + 135, 136, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 137, + 0, 0, 319, 3, 4, 5, 0, 6, 7, 0, + 138, 139, 140, 141, 0, 0, 0, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 0, + 0, 0, 0, 51, 52, 0, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 0, 0, 67, 0, 130, 68, 131, 132, 133, 0, + 134, 0, 0, 135, 136, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 137, 3, 4, 5, 330, 6, 7, 0, + 0, 0, 0, 138, 139, 140, 141, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 0, + 0, 0, 0, 51, 52, 0, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 0, 0, 67, 0, 130, 68, 131, 132, 133, 0, + 134, 0, 0, 135, 136, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 137, 3, 4, 5, 0, 6, 7, 0, + 0, 0, 0, 138, 139, 140, 141, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 0, + 0, 0, 0, 51, 255, 0, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 0, 0, 67, 0, 130, 68, 131, 132, 133, 0, + 134, 0, 0, 135, 136, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 137, 1, 2, 3, 4, 5, 0, 6, + 7, 0, 0, 138, 139, 140, 141, 0, 0, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 0, 0, 0, 50, 51, 52, 0, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 0, 0, 67, 0, 0, 68, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3, 4, 5, 0, 6, 7, 0, 0, 0, + 0, 0, 0, 0, 69, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 0, 0, 0, + 0, 51, 52, 0, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 0, 0, + 67, 0, 0, 68, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3, 4, 5, 0, 6, 7, 0, 0, + 0, 0, 0, 0, 0, 172, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 0, 0, + 0, 0, 51, 52, 0, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, + 0, 67, 0, 0, 68, 214, 215, 216, 217, 218, + 219, 0, 0, 0, 0, 0, 0, 0, 0, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 0, 0, 280, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 410, 411, + 412, 413, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3, 4, 5, 0, 6, + 7, 0, 0, 0, 0, 0, 0, 0, 414, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 0, 0, 0, 0, 51, 52, 0, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 0, 0, 67, 0, 339, 68, 0, 3, + 4, 5, 340, 6, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 0, 0, 0, 0, 51, + 52, 0, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 0, 0, 67, 0, + 0, 68 +}; + +static const short yycheck[] = { 0, + 137, 0, 121, 123, 330, 150, 3, 4, 199, 127, + 128, 0, 108, 386, 86, 86, 102, 104, 128, 373, + 97, 98, 84, 317, 86, 436, 86, 321, 84, 74, + 86, 116, 116, 3, 115, 115, 123, 122, 122, 123, + 121, 121, 114, 114, 398, 456, 183, 132, 93, 95, + 96, 137, 122, 116, 104, 132, 133, 119, 118, 122, + 132, 132, 132, 119, 61, 62, 63, 64, 3, 4, + 116, 124, 168, 123, 120, 4, 114, 78, 116, 83, + 122, 82, 86, 82, 122, 135, 136, 88, 208, 383, + 132, 210, 465, 82, 132, 205, 115, 98, 243, 290, + 426, 132, 121, 153, 115, 106, 126, 108, 128, 254, + 121, 405, 113, 250, 408, 93, 94, 115, 115, 120, + 115, 208, 83, 121, 242, 86, 61, 62, 63, 64, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 121, 278, 266, 267, 268, 269, 440, 86, 121, 123, + 121, 124, 116, 124, 121, 292, 121, 124, 208, 124, + 119, 281, 121, 118, 458, 310, 311, 168, 5, 6, + 7, 118, 317, 61, 62, 63, 321, 129, 130, 131, + 88, 89, 90, 374, 122, 330, 119, 86, 121, 99, + 100, 115, 116, 86, 281, 315, 121, 122, 199, 121, + 319, 262, 263, 121, 323, 264, 265, 121, 399, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 315, 270, + 271, 281, 86, 86, 132, 114, 373, 123, 383, 115, + 114, 136, 101, 135, 134, 103, 117, 89, 393, 89, + 89, 124, 124, 114, 114, 124, 119, 114, 114, 123, + 405, 398, 381, 408, 86, 315, 457, 117, 114, 83, + 115, 86, 67, 117, 86, 123, 123, 118, 133, 117, + 114, 426, 133, 114, 133, 121, 336, 117, 117, 290, + 123, 123, 429, 86, 115, 440, 122, 298, 115, 119, + 123, 114, 86, 122, 14, 5, 6, 7, 8, 9, + 10, 115, 123, 458, 124, 123, 86, 124, 455, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 5, 6, 7, 8, 9, 10, + 123, 86, 124, 86, 124, 86, 86, 124, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 115, 133, 115, 133, 124, 124, 370, + 124, 124, 373, 374, 0, 272, 251, 273, 120, 93, + 274, 99, 120, 106, 275, 370, 137, 276, 456, 91, + 277, 298, 398, 370, 82, 386, 444, 398, 399, 283, + 423, 236, -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, 133, -1, 436, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 456, 457, 3, 4, 5, + 6, 7, 133, 9, 10, 11, 12, 13, -1, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, -1, -1, -1, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, -1, -1, 84, -1, + 86, 87, 88, 89, 90, -1, 92, -1, -1, 95, + 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 114, -1, + -1, -1, 118, 119, -1, -1, -1, -1, 124, 125, + 126, 127, 128, 3, 4, 5, 6, 7, -1, 9, + 10, 11, 12, 13, -1, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, -1, -1, -1, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, -1, -1, 84, -1, 86, 87, 88, 89, + 90, -1, 92, -1, -1, 95, 96, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 114, -1, -1, -1, 118, 119, + -1, -1, -1, -1, 124, 125, 126, 127, 128, 3, + 4, 5, 6, 7, -1, 9, 10, 11, 12, 13, + -1, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, -1, -1, -1, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, -1, -1, + 84, -1, 86, 87, 88, 89, 90, -1, 92, -1, + -1, 95, 96, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 114, -1, -1, -1, 118, -1, -1, -1, -1, -1, + 124, 125, 126, 127, 128, 3, 4, 5, 6, 7, + -1, 9, 10, 11, 12, 13, -1, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, -1, -1, -1, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, -1, -1, 84, -1, 86, 87, + 88, 89, 90, -1, 92, -1, -1, 95, 96, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 114, -1, -1, -1, + 118, -1, -1, -1, -1, -1, 124, 125, 126, 127, + 128, 3, 4, 5, 6, 7, -1, 9, 10, -1, + -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, + -1, -1, 64, 65, 66, -1, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + -1, -1, 84, -1, 86, 87, 88, 89, 90, -1, + 92, -1, -1, 95, 96, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 114, 3, 4, 5, 6, 7, -1, 9, + 10, -1, 124, 125, 126, 127, 128, -1, -1, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, -1, -1, -1, 64, 65, 66, -1, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, -1, -1, 84, -1, 86, 87, 88, 89, + 90, -1, 92, -1, -1, 95, 96, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 0, -1, 114, 3, 4, 5, 6, 7, + -1, 9, 10, -1, -1, 125, 126, 127, 128, -1, + -1, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, -1, -1, -1, 64, 65, 66, -1, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, -1, -1, 84, -1, -1, 87, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 5, 6, 7, -1, 9, 10, -1, + -1, -1, -1, -1, -1, -1, 124, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, + -1, -1, -1, 65, 66, -1, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + -1, -1, 84, 85, 86, 87, 88, 89, 90, -1, + 92, -1, -1, 95, 96, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 114, 5, 6, 7, 118, 9, 10, -1, + -1, -1, -1, 125, 126, 127, 128, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, + -1, -1, -1, 65, 66, -1, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + -1, -1, 84, -1, 86, 87, 88, 89, 90, -1, + 92, -1, -1, 95, 96, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 114, -1, -1, -1, 118, 119, -1, -1, + -1, -1, -1, 125, 126, 127, 128, 5, 6, 7, + -1, 9, 10, -1, -1, -1, -1, -1, -1, -1, + -1, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, -1, -1, -1, -1, 65, 66, -1, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, -1, -1, 84, -1, 86, 87, + 88, 89, 90, -1, 92, -1, -1, 95, 96, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 114, -1, -1, 117, + 5, 6, 7, -1, 9, 10, -1, 125, 126, 127, + 128, -1, -1, -1, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, -1, -1, -1, -1, + 65, 66, -1, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, -1, -1, 84, + -1, 86, 87, 88, 89, 90, -1, 92, -1, -1, + 95, 96, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 114, + 5, 6, 7, -1, 9, 10, -1, -1, -1, 124, + 125, 126, 127, 128, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, -1, -1, -1, -1, + 65, 66, -1, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, -1, -1, 84, + -1, 86, 87, 88, 89, 90, -1, 92, -1, -1, + 95, 96, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 114, + -1, -1, 117, 5, 6, 7, -1, 9, 10, -1, + 125, 126, 127, 128, -1, -1, -1, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, + -1, -1, -1, 65, 66, -1, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + -1, -1, 84, -1, 86, 87, 88, 89, 90, -1, + 92, -1, -1, 95, 96, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 114, 5, 6, 7, 118, 9, 10, -1, + -1, -1, -1, 125, 126, 127, 128, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, + -1, -1, -1, 65, 66, -1, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + -1, -1, 84, -1, 86, 87, 88, 89, 90, -1, + 92, -1, -1, 95, 96, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 114, 5, 6, 7, -1, 9, 10, -1, + -1, -1, -1, 125, 126, 127, 128, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, + -1, -1, -1, 65, 66, -1, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + -1, -1, 84, -1, 86, 87, 88, 89, 90, -1, + 92, -1, -1, 95, 96, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 114, 3, 4, 5, 6, 7, -1, 9, + 10, -1, -1, 125, 126, 127, 128, -1, -1, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, -1, -1, -1, 64, 65, 66, -1, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, -1, -1, 84, -1, -1, 87, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 5, 6, 7, -1, 9, 10, -1, -1, -1, + -1, -1, -1, -1, 124, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, -1, -1, -1, + -1, 65, 66, -1, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, -1, -1, + 84, -1, -1, 87, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 5, 6, 7, -1, 9, 10, -1, -1, + -1, -1, -1, -1, -1, 119, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, -1, -1, + -1, -1, 65, 66, -1, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, -1, + -1, 84, -1, -1, 87, 5, 6, 7, 8, 9, + 10, -1, -1, -1, -1, -1, -1, -1, -1, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, -1, -1, 119, -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, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 88, 89, + 90, 91, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 5, 6, 7, -1, 9, + 10, -1, -1, -1, -1, -1, -1, -1, 118, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, -1, -1, -1, -1, 65, 66, -1, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, -1, -1, 84, -1, 86, 87, -1, 5, + 6, 7, 92, 9, 10, -1, -1, -1, -1, -1, + -1, -1, -1, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, -1, -1, -1, -1, 65, + 66, -1, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, -1, -1, 84, -1, + -1, 87 +}; +#define YYPURE 1 + +/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ + +/* Skeleton output parser for bison, + Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* As a special exception, when this file is copied by Bison into a + Bison output file, you may use that output file without restriction. + This special exception was added by the Free Software Foundation + in version 1.24 of Bison. */ + +#ifdef __GNUC__ +#define alloca __builtin_alloca +#else /* not __GNUC__ */ +#if HAVE_ALLOCA_H +#include +#else /* not HAVE_ALLOCA_H */ +#ifdef _AIX + #pragma alloca +#else /* not _AIX */ +char *alloca (); +#endif /* not _AIX */ +#endif /* not HAVE_ALLOCA_H */ +#endif /* not __GNUC__ */ + +extern void yyerror(char* s); + +#ifndef alloca +#ifdef __GNUC__ +#define alloca __builtin_alloca +#else /* not GNU C. */ +#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) +#include +#else /* not sparc */ +#if (defined (MSDOS) && !defined (__TURBOC__)) || defined (WIN32) +#include +#else /* not MSDOS, or __TURBOC__ */ +#if defined(_AIX) +#include + #pragma alloca +#else /* not MSDOS, __TURBOC__, or _AIX */ +#ifdef __hpux +#ifdef __cplusplus +extern "C" { +void *alloca (unsigned int); +}; +#else /* not __cplusplus */ +void *alloca (); +#endif /* not __cplusplus */ +#endif /* __hpux */ +#endif /* not _AIX */ +#endif /* not MSDOS, or __TURBOC__ */ +#endif /* not sparc. */ +#endif /* not GNU C. */ +#endif /* alloca not defined. */ + +/* This is the parser code that is written into each bison parser + when the %semantic_parser declaration is not specified in the grammar. + It was written by Richard Stallman by simplifying the hairy parser + used when %semantic_parser is specified. */ + +/* Note: there must be only one dollar sign in this file. + It is replaced by the list of actions, each action + as one case of the switch. */ + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY -2 +#define YYEOF 0 +#define YYACCEPT return(0) +#define YYABORT return(1) +#define YYERROR goto yyerrlab1 +/* Like YYERROR except do call yyerror. + This remains here temporarily to ease the + transition to the new meaning of YYERROR, for GCC. + Once GCC version 2 has supplanted version 1, this can go. */ +#define YYFAIL goto yyerrlab +#define YYRECOVERING() (!!yyerrstatus) +#define YYBACKUP(token, value) \ +do \ + if (yychar == YYEMPTY && yylen == 1) \ + { yychar = (token), yylval = (value); \ + yychar1 = YYTRANSLATE (yychar); \ + YYPOPSTACK; \ + goto yybackup; \ + } \ + else \ + { yyerror ("syntax error: cannot back up"); YYERROR; } \ +while (0) + +#define YYTERROR 1 +#define YYERRCODE 256 + +#ifndef YYPURE +#define YYLEX yylex() +#endif + +#ifdef YYPURE +#ifdef YYLSP_NEEDED +#ifdef YYLEX_PARAM +#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM) +#else +#define YYLEX yylex(&yylval, &yylloc) +#endif +#else /* not YYLSP_NEEDED */ +#ifdef YYLEX_PARAM +#define YYLEX yylex(&yylval, YYLEX_PARAM) +#else +#define YYLEX yylex(&yylval) +#endif +#endif /* not YYLSP_NEEDED */ +#endif + +/* If nonreentrant, generate the variables here */ + +#ifndef YYPURE + +int yychar; /* the lookahead symbol */ +YYSTYPE yylval; /* the semantic value of the */ + /* lookahead symbol */ + +#ifdef YYLSP_NEEDED +YYLTYPE yylloc; /* location data for the lookahead */ + /* symbol */ +#endif + +int yynerrs; /* number of parse errors so far */ +#endif /* not YYPURE */ + +#if YYDEBUG != 0 +int yydebug; /* nonzero means print parse trace */ +/* Since this is uninitialized, it does not stop multiple parsers + from coexisting. */ +#endif + +/* YYINITDEPTH indicates the initial size of the parser's stacks */ + +#ifndef YYINITDEPTH +#define YYINITDEPTH 200 +#endif + +/* YYMAXDEPTH is the maximum size the stacks can grow to + (effective only if the built-in stack extension method is used). */ + +#if YYMAXDEPTH == 0 +#undef YYMAXDEPTH +#endif + +#ifndef YYMAXDEPTH +#define YYMAXDEPTH 10000 +#endif + +/* Prevent warning if -Wstrict-prototypes. */ +#ifdef __GNUC__ +int yyparse (void); +#endif + +#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ +#define __yy_memcpy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT) +#else /* not GNU C or C++ */ +#ifndef __cplusplus + +/* This is the most reliable way to avoid incompatibilities + in available built-in functions on various systems. */ +static void +__yy_memcpy (from, to, count) + char *from; + char *to; + size_t count; +{ + register char *f = from; + register char *t = to; + register size_t i = count; + + while (i-- > 0) + *t++ = *f++; +} + +#else /* __cplusplus */ + +/* This is the most reliable way to avoid incompatibilities + in available built-in functions on various systems. */ +static void +__yy_memcpy (char *from, char *to, size_t count) +{ + register char *f = from; + register char *t = to; + register size_t i = count; + + while (i-- > 0) + *t++ = *f++; +} + +#endif +#endif + +/* The user can define YYPARSE_PARAM as the name of an argument to be passed + into yyparse. The argument should have type void *. + It should actually point to an object. + Grammar actions can access the variable by casting it + to the proper pointer type. */ + +#ifdef YYPARSE_PARAM +#ifndef YYPARSE_PARAM_DECL +#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; +#endif +#else +#define YYPARSE_PARAM +#define YYPARSE_PARAM_DECL +#endif + +extern YY_DECL; + +int +yyparse(YYPARSE_PARAM_DECL YYPARSE_PARAM) { + register int yystate; + register int yyn; + register short *yyssp; + register YYSTYPE *yyvsp; + int yyerrstatus; /* number of tokens to shift before error messages enabled */ + int yychar1 = 0; /* lookahead token as an internal (translated) token number */ + + short yyssa[YYINITDEPTH]; /* the state stack */ + YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ + + short *yyss = yyssa; /* refer to the stacks thru separate pointers */ + YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ + +#ifdef YYLSP_NEEDED + YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ + YYLTYPE *yyls = yylsa; + YYLTYPE *yylsp; + +#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) +#else +#define YYPOPSTACK (yyvsp--, yyssp--) +#endif + + size_t yystacksize = YYINITDEPTH; + +#ifdef YYPURE + int yychar; + YYSTYPE yylval; + int yynerrs; +#ifdef YYLSP_NEEDED + YYLTYPE yylloc; +#endif +#endif + + YYSTYPE yyval; /* the variable used to return */ + /* semantic values from the action */ + /* routines */ + + int yylen; + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Starting parse\n"); +#endif + + yystate = 0; + yyerrstatus = 0; + yynerrs = 0; + yychar = YYEMPTY; /* Cause a token to be read. */ + + /* Initialize stack pointers. + Waste one element of value and location stack + so that they stay on the same level as the state stack. + The wasted elements are never initialized. */ + + yyssp = yyss - 1; + yyvsp = yyvs; +#ifdef YYLSP_NEEDED + yylsp = yyls; +#endif + +/* Push a new state, which is found in yystate . */ +/* In all cases, when you get here, the value and location stacks + have just been pushed. so pushing a state here evens the stacks. */ +yynewstate: + + *++yyssp = yystate; + + if (yyssp >= yyss + yystacksize - 1) + { + /* Give user a chance to reallocate the stack */ + /* Use copies of these so that the &'s don't force the real ones into memory. */ + YYSTYPE *yyvs1 = yyvs; + short *yyss1 = yyss; +#ifdef YYLSP_NEEDED + YYLTYPE *yyls1 = yyls; +#endif + + /* Get the current used size of the three stacks, in elements. */ + size_t size = yyssp - yyss + 1; + +#ifdef yyoverflow + /* Each stack pointer address is followed by the size of + the data in use in that stack, in bytes. */ +#ifdef YYLSP_NEEDED + /* This used to be a conditional around just the two extra args, + but that might be undefined if yyoverflow is a macro. */ + yyoverflow("parser stack overflow", + &yyss1, size * sizeof (*yyssp), + &yyvs1, size * sizeof (*yyvsp), + &yyls1, size * sizeof (*yylsp), + &yystacksize); +#else + yyoverflow("parser stack overflow", + &yyss1, size * sizeof (*yyssp), + &yyvs1, size * sizeof (*yyvsp), + &yystacksize); +#endif + + yyss = yyss1; yyvs = yyvs1; +#ifdef YYLSP_NEEDED + yyls = yyls1; +#endif +#else /* no yyoverflow */ + /* Extend the stack our own way. */ + if (yystacksize >= YYMAXDEPTH) + { + yyerror("parser stack overflow"); + return 2; + } + yystacksize *= 2; + if (yystacksize > YYMAXDEPTH) + yystacksize = YYMAXDEPTH; + yyss = (short *) alloca (yystacksize * sizeof (*yyssp)); + __yy_memcpy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp)); + yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp)); + __yy_memcpy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp)); +#ifdef YYLSP_NEEDED + yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp)); + __yy_memcpy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp)); +#endif +#endif /* no yyoverflow */ + + yyssp = yyss + size - 1; + yyvsp = yyvs + size - 1; +#ifdef YYLSP_NEEDED + yylsp = yyls + size - 1; +#endif + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Stack size increased to %d\n", yystacksize); +#endif + + if (yyssp >= yyss + yystacksize - 1) + YYABORT; + } + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Entering state %d\n", yystate); +#endif + + goto yybackup; + yybackup: + +/* Do appropriate processing given the current state. */ +/* Read a lookahead token if we need one and don't already have one. */ +/* yyresume: */ + + /* First try to decide what to do without reference to lookahead token. */ + + yyn = yypact[yystate]; + if (yyn == YYFLAG) + goto yydefault; + + /* Not known => get a lookahead token if don't already have one. */ + + /* yychar is either YYEMPTY or YYEOF + or a valid token in external form. */ + + if (yychar == YYEMPTY) + { +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Reading a token: "); +#endif + yychar = YYLEX; + } + + /* Convert token to internal form (in yychar1) for indexing tables with */ + + if (yychar <= 0) /* This means end of input. */ + { + yychar1 = 0; + yychar = YYEOF; /* Don't call YYLEX any more */ + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Now at end of input.\n"); +#endif + } + else + { + yychar1 = YYTRANSLATE(yychar); + +#if YYDEBUG != 0 + if (yydebug) + { + fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); + /* Give the individual parser a way to print the precise meaning + of a token, for further debugging info. */ +#ifdef YYPRINT + YYPRINT (stderr, yychar, yylval); +#endif + fprintf (stderr, ")\n"); + } +#endif + } + + yyn += yychar1; + if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) + goto yydefault; + + yyn = yytable[yyn]; + + /* yyn is what to do for this token type in this state. + Negative => reduce, -yyn is rule number. + Positive => shift, yyn is new state. + New state is final state => don't bother to shift, + just return success. + 0, or most negative number => error. */ + + if (yyn < 0) + { + if (yyn == YYFLAG) + goto yyerrlab; + yyn = -yyn; + goto yyreduce; + } + else if (yyn == 0) + goto yyerrlab; + + if (yyn == YYFINAL) + YYACCEPT; + + /* Shift the lookahead token. */ + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); +#endif + + /* Discard the token being shifted unless it is eof. */ + if (yychar != YYEOF) + yychar = YYEMPTY; + + *++yyvsp = yylval; +#ifdef YYLSP_NEEDED + *++yylsp = yylloc; +#endif + + /* count tokens shifted since error; after three, turn off error status. */ + if (yyerrstatus) yyerrstatus--; + + yystate = yyn; + goto yynewstate; + +/* Do the default action for the current state. */ +yydefault: + + yyn = yydefact[yystate]; + if (yyn == 0) + goto yyerrlab; + +/* Do a reduction. yyn is the number of a rule to reduce with. */ +yyreduce: + yylen = yyr2[yyn]; + if (yylen > 0) + yyval = yyvsp[1-yylen]; /* implement default value of the action */ + +#if YYDEBUG != 0 + if (yydebug) + { + int i; + + fprintf (stderr, "Reducing via rule %d (line %d), ", + yyn, yyrline[yyn]); + + /* Print the symbols being reduced, and their result. */ + for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) + fprintf (stderr, "%s ", yytname[yyrhs[i]]); + fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); + } +#endif + + + switch (yyn) { + +case 1: +#line 182 "hlslang.y" +{ + // The symbol table search was done in the lexical phase + const TSymbol* symbol = yyvsp[0].lex.symbol; + const TVariable* variable; + if (symbol == 0) { + parseContext.error(yyvsp[0].lex.line, "undeclared identifier", yyvsp[0].lex.string->c_str(), ""); + parseContext.recover(); + TType type(EbtFloat, EbpUndefined); + TVariable* fakeVariable = new TVariable(yyvsp[0].lex.string, type); + parseContext.symbolTable.insert(*fakeVariable); + variable = fakeVariable; + } else { + // This identifier can only be a variable type symbol + if (! symbol->isVariable()) { + parseContext.error(yyvsp[0].lex.line, "variable expected", yyvsp[0].lex.string->c_str(), ""); + parseContext.recover(); + } + variable = static_cast(symbol); + } + + // don't delete $1.string, it's used by error recovery, and the pool + // pop will reclaim the memory + + if (variable->getType().getQualifier() == EvqConst && variable->constValue) + { + TIntermConstant* c = ir_add_constant(variable->getType(), yyvsp[0].lex.line); + c->copyValuesFrom(*variable->constValue); + yyval.interm.intermTypedNode = c; + } + else + { + TIntermSymbol* sym = ir_add_symbol(variable, yyvsp[0].lex.line); + yyval.interm.intermTypedNode = sym; + } + ; + break;} +case 2: +#line 220 "hlslang.y" +{ + yyval.interm.intermTypedNode = yyvsp[0].interm.intermTypedNode; + ; + break;} +case 3: +#line 223 "hlslang.y" +{ + TIntermConstant* constant = ir_add_constant(TType(EbtInt, EbpUndefined, EvqConst), yyvsp[0].lex.line); + constant->setValue(yyvsp[0].lex.i); + yyval.interm.intermTypedNode = constant; + ; + break;} +case 4: +#line 228 "hlslang.y" +{ + TIntermConstant* constant = ir_add_constant(TType(EbtFloat, EbpUndefined, EvqConst), yyvsp[0].lex.line); + constant->setValue(yyvsp[0].lex.f); + yyval.interm.intermTypedNode = constant; + ; + break;} +case 5: +#line 233 "hlslang.y" +{ + TIntermConstant* constant = ir_add_constant(TType(EbtBool, EbpUndefined, EvqConst), yyvsp[0].lex.line); + constant->setValue(yyvsp[0].lex.b); + yyval.interm.intermTypedNode = constant; + ; + break;} +case 6: +#line 238 "hlslang.y" +{ + yyval.interm.intermTypedNode = yyvsp[-1].interm.intermTypedNode; + ; + break;} +case 7: +#line 244 "hlslang.y" +{ + yyval.interm.intermTypedNode = yyvsp[0].interm.intermTypedNode; + ; + break;} +case 8: +#line 247 "hlslang.y" +{ + if (!yyvsp[-3].interm.intermTypedNode) { + parseContext.error(yyvsp[-2].lex.line, " left of '[' is null ", "expression", ""); + YYERROR; + } + if (!yyvsp[-3].interm.intermTypedNode->isArray() && !yyvsp[-3].interm.intermTypedNode->isMatrix() && !yyvsp[-3].interm.intermTypedNode->isVector()) { + if (yyvsp[-3].interm.intermTypedNode->getAsSymbolNode()) + parseContext.error(yyvsp[-2].lex.line, " left of '[' is not of type array, matrix, or vector ", yyvsp[-3].interm.intermTypedNode->getAsSymbolNode()->getSymbol().c_str(), ""); + else + parseContext.error(yyvsp[-2].lex.line, " left of '[' is not of type array, matrix, or vector ", "expression", ""); + parseContext.recover(); + } + if (yyvsp[-1].interm.intermTypedNode->getQualifier() == EvqConst) { + if ((yyvsp[-3].interm.intermTypedNode->isVector() || yyvsp[-3].interm.intermTypedNode->isMatrix()) && yyvsp[-3].interm.intermTypedNode->getType().getRowsCount() <= yyvsp[-1].interm.intermTypedNode->getAsConstant()->toInt() && !yyvsp[-3].interm.intermTypedNode->isArray() ) { + parseContext.error(yyvsp[-2].lex.line, "", "[", "field selection out of range '%d'", yyvsp[-1].interm.intermTypedNode->getAsConstant()->toInt()); + parseContext.recover(); + } else { + if (yyvsp[-3].interm.intermTypedNode->isArray()) { + if (yyvsp[-3].interm.intermTypedNode->getType().getArraySize() == 0) { + if (yyvsp[-3].interm.intermTypedNode->getType().getMaxArraySize() <= yyvsp[-1].interm.intermTypedNode->getAsConstant()->toInt()) { + if (parseContext.arraySetMaxSize(yyvsp[-3].interm.intermTypedNode->getAsSymbolNode(), yyvsp[-3].interm.intermTypedNode->getTypePointer(), yyvsp[-1].interm.intermTypedNode->getAsConstant()->toInt(), true, yyvsp[-2].lex.line)) + parseContext.recover(); + } else { + if (parseContext.arraySetMaxSize(yyvsp[-3].interm.intermTypedNode->getAsSymbolNode(), yyvsp[-3].interm.intermTypedNode->getTypePointer(), 0, false, yyvsp[-2].lex.line)) + parseContext.recover(); + } + } else if ( yyvsp[-1].interm.intermTypedNode->getAsConstant()->toInt() >= yyvsp[-3].interm.intermTypedNode->getType().getArraySize()) { + parseContext.error(yyvsp[-2].lex.line, "", "[", "array index out of range '%d'", yyvsp[-1].interm.intermTypedNode->getAsConstant()->toInt()); + parseContext.recover(); + } + } + yyval.interm.intermTypedNode = ir_add_index(EOpIndexDirect, yyvsp[-3].interm.intermTypedNode, yyvsp[-1].interm.intermTypedNode, yyvsp[-2].lex.line); + } + } else { + if (yyvsp[-3].interm.intermTypedNode->isArray() && yyvsp[-3].interm.intermTypedNode->getType().getArraySize() == 0) { + parseContext.error(yyvsp[-2].lex.line, "", "[", "array must be redeclared with a size before being indexed with a variable"); + parseContext.recover(); + } + + yyval.interm.intermTypedNode = ir_add_index(EOpIndexIndirect, yyvsp[-3].interm.intermTypedNode, yyvsp[-1].interm.intermTypedNode, yyvsp[-2].lex.line); + } + if (yyval.interm.intermTypedNode == 0) { + TIntermConstant* constant = ir_add_constant(TType(EbtFloat, EbpUndefined, EvqConst), yyvsp[-2].lex.line); + constant->setValue(0.f); + yyval.interm.intermTypedNode = constant; + } else if (yyvsp[-3].interm.intermTypedNode->isArray()) { + if (yyvsp[-3].interm.intermTypedNode->getType().getStruct()) + yyval.interm.intermTypedNode->setType(TType(yyvsp[-3].interm.intermTypedNode->getType().getStruct(), yyvsp[-3].interm.intermTypedNode->getType().getTypeName(), EbpUndefined, yyvsp[-3].interm.intermTypedNode->getLine())); + else + yyval.interm.intermTypedNode->setType(TType(yyvsp[-3].interm.intermTypedNode->getBasicType(), yyvsp[-3].interm.intermTypedNode->getPrecision(), EvqTemporary, yyvsp[-3].interm.intermTypedNode->getColsCount(),yyvsp[-3].interm.intermTypedNode->getRowsCount(), yyvsp[-3].interm.intermTypedNode->isMatrix())); + + if (yyvsp[-3].interm.intermTypedNode->getType().getQualifier() == EvqConst) + yyval.interm.intermTypedNode->getTypePointer()->changeQualifier(EvqConst); + } else if (yyvsp[-3].interm.intermTypedNode->isMatrix() && yyvsp[-3].interm.intermTypedNode->getType().getQualifier() == EvqConst) + yyval.interm.intermTypedNode->setType(TType(yyvsp[-3].interm.intermTypedNode->getBasicType(), yyvsp[-3].interm.intermTypedNode->getPrecision(), EvqConst, 1, yyvsp[-3].interm.intermTypedNode->getColsCount())); + else if (yyvsp[-3].interm.intermTypedNode->isMatrix()) + yyval.interm.intermTypedNode->setType(TType(yyvsp[-3].interm.intermTypedNode->getBasicType(), yyvsp[-3].interm.intermTypedNode->getPrecision(), EvqTemporary, 1, yyvsp[-3].interm.intermTypedNode->getColsCount())); + else if (yyvsp[-3].interm.intermTypedNode->isVector() && yyvsp[-3].interm.intermTypedNode->getType().getQualifier() == EvqConst) + yyval.interm.intermTypedNode->setType(TType(yyvsp[-3].interm.intermTypedNode->getBasicType(), yyvsp[-3].interm.intermTypedNode->getPrecision(), EvqConst)); + else if (yyvsp[-3].interm.intermTypedNode->isVector()) + yyval.interm.intermTypedNode->setType(TType(yyvsp[-3].interm.intermTypedNode->getBasicType(), yyvsp[-3].interm.intermTypedNode->getPrecision(), EvqTemporary)); + else + yyval.interm.intermTypedNode->setType(yyvsp[-3].interm.intermTypedNode->getType()); + ; + break;} +case 9: +#line 311 "hlslang.y" +{ + yyval.interm.intermTypedNode = yyvsp[0].interm.intermTypedNode; + ; + break;} +case 10: +#line 314 "hlslang.y" +{ + if (!yyvsp[-2].interm.intermTypedNode) { + parseContext.error(yyvsp[0].lex.line, "field selection on null object", ".", ""); + YYERROR; + } + if (yyvsp[-2].interm.intermTypedNode->isArray()) { + parseContext.error(yyvsp[0].lex.line, "cannot apply dot operator to an array", ".", ""); + parseContext.recover(); + } + + if (yyvsp[-2].interm.intermTypedNode->isVector()) { + TVectorFields fields; + if (! parseContext.parseVectorFields(*yyvsp[0].lex.string, yyvsp[-2].interm.intermTypedNode->getRowsCount(), fields, yyvsp[0].lex.line)) { + fields.num = 1; + fields.offsets[0] = 0; + parseContext.recover(); + } + + yyval.interm.intermTypedNode = ir_add_vector_swizzle(fields, yyvsp[-2].interm.intermTypedNode, yyvsp[-1].lex.line, yyvsp[0].lex.line); + } else if (yyvsp[-2].interm.intermTypedNode->isMatrix()) { + TVectorFields fields; + if (!parseContext.parseMatrixFields(*yyvsp[0].lex.string, yyvsp[-2].interm.intermTypedNode->getColsCount(), yyvsp[-2].interm.intermTypedNode->getRowsCount(), fields, yyvsp[0].lex.line)) { + fields.num = 1; + fields.offsets[0] = 0; + parseContext.recover(); + } + + TString vectorString = *yyvsp[0].lex.string; + TIntermTyped* index = ir_add_swizzle(fields, yyvsp[0].lex.line); + yyval.interm.intermTypedNode = ir_add_index(EOpMatrixSwizzle, yyvsp[-2].interm.intermTypedNode, index, yyvsp[-1].lex.line); + yyval.interm.intermTypedNode->setType(TType(yyvsp[-2].interm.intermTypedNode->getBasicType(), yyvsp[-2].interm.intermTypedNode->getPrecision(), EvqTemporary, 1, fields.num)); + + } else if (yyvsp[-2].interm.intermTypedNode->getBasicType() == EbtStruct) { + bool fieldFound = false; + TTypeList* fields = yyvsp[-2].interm.intermTypedNode->getType().getStruct(); + if (fields == 0) { + parseContext.error(yyvsp[-1].lex.line, "structure has no fields", "Internal Error", ""); + parseContext.recover(); + yyval.interm.intermTypedNode = yyvsp[-2].interm.intermTypedNode; + } else { + unsigned int i; + for (i = 0; i < fields->size(); ++i) { + if ((*fields)[i].type->getFieldName() == *yyvsp[0].lex.string) { + fieldFound = true; + break; + } + } + if (fieldFound) { + TIntermConstant* index = ir_add_constant(TType(EbtInt, EbpUndefined, EvqConst), yyvsp[0].lex.line); + index->setValue(i); + yyval.interm.intermTypedNode = ir_add_index(EOpIndexDirectStruct, yyvsp[-2].interm.intermTypedNode, index, yyvsp[-1].lex.line); + yyval.interm.intermTypedNode->setType(*(*fields)[i].type); + } else { + parseContext.error(yyvsp[-1].lex.line, " no such field in structure", yyvsp[0].lex.string->c_str(), ""); + parseContext.recover(); + yyval.interm.intermTypedNode = yyvsp[-2].interm.intermTypedNode; + } + } + } else if (yyvsp[-2].interm.intermTypedNode->isScalar()) { + + // HLSL allows ".xxxx" field selection on single component floats. Handle that here. + TVectorFields fields; + + // Check to make sure only the "x" component is accessed. + if (! parseContext.parseVectorFields(*yyvsp[0].lex.string, 1, fields, yyvsp[0].lex.line)) + { + fields.num = 1; + fields.offsets[0] = 0; + parseContext.recover(); + yyval.interm.intermTypedNode = yyvsp[-2].interm.intermTypedNode; + } + else + { + // Create the appropriate constructor based on the number of ".x"'s there are in the selection field + TString vectorString = *yyvsp[0].lex.string; + TQualifier qualifier = yyvsp[-2].interm.intermTypedNode->getType().getQualifier() == EvqConst ? EvqConst : EvqTemporary; + TType type(yyvsp[-2].interm.intermTypedNode->getBasicType(), yyvsp[-2].interm.intermTypedNode->getPrecision(), qualifier, 1, (int) vectorString.size()); + yyval.interm.intermTypedNode = parseContext.constructBuiltIn(&type, parseContext.getConstructorOp(type), + yyval.interm.intermTypedNode, yyvsp[-2].interm.intermTypedNode->getLine(), false); + } + } else { + parseContext.error(yyvsp[-1].lex.line, " field selection requires structure, vector, or matrix on left hand side", yyvsp[0].lex.string->c_str(), ""); + parseContext.recover(); + yyval.interm.intermTypedNode = yyvsp[-2].interm.intermTypedNode; + } + // don't delete $3.string, it's from the pool + ; + break;} +case 11: +#line 401 "hlslang.y" +{ + if (parseContext.lValueErrorCheck(yyvsp[0].lex.line, "++", yyvsp[-1].interm.intermTypedNode)) + parseContext.recover(); + yyval.interm.intermTypedNode = ir_add_unary_math(EOpPostIncrement, yyvsp[-1].interm.intermTypedNode, yyvsp[0].lex.line, parseContext); + if (yyval.interm.intermTypedNode == 0) { + parseContext.unaryOpError(yyvsp[0].lex.line, "++", yyvsp[-1].interm.intermTypedNode->getCompleteString()); + parseContext.recover(); + yyval.interm.intermTypedNode = yyvsp[-1].interm.intermTypedNode; + } + ; + break;} +case 12: +#line 411 "hlslang.y" +{ + if (parseContext.lValueErrorCheck(yyvsp[0].lex.line, "--", yyvsp[-1].interm.intermTypedNode)) + parseContext.recover(); + yyval.interm.intermTypedNode = ir_add_unary_math(EOpPostDecrement, yyvsp[-1].interm.intermTypedNode, yyvsp[0].lex.line, parseContext); + if (yyval.interm.intermTypedNode == 0) { + parseContext.unaryOpError(yyvsp[0].lex.line, "--", yyvsp[-1].interm.intermTypedNode->getCompleteString()); + parseContext.recover(); + yyval.interm.intermTypedNode = yyvsp[-1].interm.intermTypedNode; + } + ; + break;} +case 13: +#line 424 "hlslang.y" +{ + if (parseContext.scalarErrorCheck(yyvsp[0].interm.intermTypedNode, "[]")) + parseContext.recover(); + TType type(EbtInt, EbpUndefined); + yyval.interm.intermTypedNode = parseContext.constructBuiltIn(&type, EOpConstructInt, yyvsp[0].interm.intermTypedNode, yyvsp[0].interm.intermTypedNode->getLine(), true); + if (yyval.interm.intermTypedNode == 0) { + parseContext.error(yyvsp[0].interm.intermTypedNode->getLine(), "cannot convert to index", "[]", ""); + parseContext.recover(); + yyval.interm.intermTypedNode = yyvsp[0].interm.intermTypedNode; + } + ; + break;} +case 14: +#line 438 "hlslang.y" +{ + TFunction* fnCall = yyvsp[0].interm.function; + TOperator op = fnCall->getBuiltInOp(); + + if (op == EOpArrayLength) { + if (yyvsp[0].interm.intermNode->getAsTyped() == 0 || yyvsp[0].interm.intermNode->getAsTyped()->getType().getArraySize() == 0) { + parseContext.error(yyvsp[0].interm.line, "", fnCall->getName().c_str(), "array must be declared with a size before using this method"); + parseContext.recover(); + } + + TIntermConstant* constant = ir_add_constant(TType(EbtInt, EbpUndefined, EvqConst), yyvsp[0].interm.line); + constant->setValue(yyvsp[0].interm.intermNode->getAsTyped()->getType().getArraySize()); + yyval.interm.intermTypedNode = constant; + } else if (op != EOpNull) { + // + // Then this should be a constructor. + // Don't go through the symbol table for constructors. + // Their parameters will be verified algorithmically. + // + TType type(EbtVoid, EbpUndefined); // use this to get the type back + if (parseContext.constructorErrorCheck(yyvsp[0].interm.line, yyvsp[0].interm.intermNode, *fnCall, op, &type)) { + yyval.interm.intermTypedNode = 0; + } else { + // + // It's a constructor, of type 'type'. + // + yyval.interm.intermTypedNode = parseContext.addConstructor(yyvsp[0].interm.intermNode, &type, op, fnCall, yyvsp[0].interm.line); + } + + if (yyval.interm.intermTypedNode == 0) { + parseContext.recover(); + yyval.interm.intermTypedNode = ir_set_aggregate_op(0, op, yyvsp[0].interm.line); + yyval.interm.intermTypedNode->setType(type); + } + } else { + // + // Not a constructor. Find it in the symbol table. + // + const TFunction* fnCandidate; + bool builtIn; + fnCandidate = parseContext.findFunction(yyvsp[0].interm.line, fnCall, &builtIn); + + if ( fnCandidate && fnCandidate->getMangledName() != fnCall->getMangledName()) { + //add constructors to arguments to ensure that they have proper types + TIntermNode *temp = parseContext.promoteFunctionArguments( yyvsp[0].interm.intermNode, + fnCandidate); + if (temp) + yyvsp[0].interm.intermNode = temp; + else { + parseContext.error( yyvsp[0].interm.intermNode->getLine(), " unable to suitably promote arguments to function", + fnCandidate->getName().c_str(), ""); + fnCandidate = 0; + } + } + + if (fnCandidate) { + // + // A declared function. But, it might still map to a built-in + // operation. + // + op = fnCandidate->getBuiltInOp(); + if (builtIn && op != EOpNull) { + // + // A function call mapped to a built-in operation. + // + if (fnCandidate->getParamCount() == 1) { + // + // Treat it like a built-in unary operator. + // + yyval.interm.intermTypedNode = ir_add_unary_math(op, yyvsp[0].interm.intermNode, gNullSourceLoc, parseContext); + if (yyval.interm.intermTypedNode == 0) { + parseContext.error(yyvsp[0].interm.intermNode->getLine(), " wrong operand type", "Internal Error", + "built in unary operator function. Type: %s", + static_cast(yyvsp[0].interm.intermNode)->getCompleteString().c_str()); + YYERROR; + } + } else { + yyval.interm.intermTypedNode = ir_set_aggregate_op(yyvsp[0].interm.intermAggregate, op, yyvsp[0].interm.line); + yyval.interm.intermTypedNode->setType(fnCandidate->getReturnType()); + } + } else { + // This is a real function call + + yyval.interm.intermTypedNode = ir_set_aggregate_op(yyvsp[0].interm.intermAggregate, EOpFunctionCall, yyvsp[0].interm.line); + yyval.interm.intermTypedNode->setType(fnCandidate->getReturnType()); + + yyval.interm.intermTypedNode->getAsAggregate()->setName(fnCandidate->getMangledName()); + yyval.interm.intermTypedNode->getAsAggregate()->setPlainName(fnCandidate->getName()); + + TQualifier qual; + for (int i = 0; i < fnCandidate->getParamCount(); ++i) { + qual = (*fnCandidate)[i].type->getQualifier(); + if (qual == EvqOut || qual == EvqInOut) { + if (parseContext.lValueErrorCheck(yyval.interm.intermTypedNode->getLine(), "assign", yyval.interm.intermTypedNode->getAsAggregate()->getNodes()[i]->getAsTyped())) { + parseContext.error(yyvsp[0].interm.intermNode->getLine(), "Constant value cannot be passed for 'out' or 'inout' parameters.", "Error", ""); + parseContext.recover(); + } + } + } + } + yyval.interm.intermTypedNode->setType(fnCandidate->getReturnType()); + } else { + // error message was put out by PaFindFunction() + // Put on a dummy node for error recovery + + TIntermConstant* constant = ir_add_constant(TType(EbtFloat, EbpUndefined, EvqConst), yyvsp[0].interm.line); + constant->setValue(0.f); + yyval.interm.intermTypedNode = constant; + parseContext.recover(); + } + } + delete fnCall; + ; + break;} +case 15: +#line 554 "hlslang.y" +{ + yyval.interm = yyvsp[0].interm; + ; + break;} +case 16: +#line 557 "hlslang.y" +{ + if (yyvsp[-2].interm.intermTypedNode->isArray() && yyvsp[0].interm.function->getName() == "length") { + // + // implement array.length() + // + yyval.interm = yyvsp[0].interm; + yyval.interm.intermNode = yyvsp[-2].interm.intermTypedNode; + yyval.interm.function->relateToOperator(EOpArrayLength); + + } else { + parseContext.error(yyvsp[0].interm.line, "methods are not supported", "", ""); + parseContext.recover(); + yyval.interm = yyvsp[0].interm; + } + ; + break;} +case 17: +#line 575 "hlslang.y" +{ + yyval.interm = yyvsp[-1].interm; + yyval.interm.line = yyvsp[0].lex.line; + ; + break;} +case 18: +#line 579 "hlslang.y" +{ + yyval.interm = yyvsp[-1].interm; + yyval.interm.line = yyvsp[0].lex.line; + ; + break;} +case 19: +#line 586 "hlslang.y" +{ + yyval.interm.function = yyvsp[-1].interm.function; + yyval.interm.intermNode = 0; + ; + break;} +case 20: +#line 590 "hlslang.y" +{ + yyval.interm.function = yyvsp[0].interm.function; + yyval.interm.intermNode = 0; + ; + break;} +case 21: +#line 597 "hlslang.y" +{ + if (!yyvsp[0].interm.intermTypedNode) { + YYERROR; + } + TParameter param = { 0, 0, new TType(yyvsp[0].interm.intermTypedNode->getType()) }; + yyvsp[-1].interm.function->addParameter(param); + yyval.interm.function = yyvsp[-1].interm.function; + yyval.interm.intermNode = yyvsp[0].interm.intermTypedNode; + ; + break;} +case 22: +#line 606 "hlslang.y" +{ + if (!yyvsp[0].interm.intermTypedNode) { + YYERROR; + } + TParameter param = { 0, 0, new TType(yyvsp[0].interm.intermTypedNode->getType()) }; + yyvsp[-2].interm.function->addParameter(param); + yyval.interm.function = yyvsp[-2].interm.function; + yyval.interm.intermNode = ir_grow_aggregate(yyvsp[-2].interm.intermNode, yyvsp[0].interm.intermTypedNode, yyvsp[-1].lex.line); + ; + break;} +case 23: +#line 618 "hlslang.y" +{ + yyval.interm.function = yyvsp[-1].interm.function; + ; + break;} +case 24: +#line 626 "hlslang.y" +{ + // + // Constructor + // + if (yyvsp[0].interm.type.array) { + //TODO : figure out how to deal with array constructors + } + + if (yyvsp[0].interm.type.userDef) { + TString tempString = ""; + TType type(yyvsp[0].interm.type); + TFunction *function = new TFunction(&tempString, type, EOpConstructStruct); + yyval.interm.function = function; + } else { + TOperator op = ir_get_constructor_op(yyvsp[0].interm.type, parseContext, false); + if (op == EOpNull) { + parseContext.error(yyvsp[0].interm.type.line, "cannot construct this type", TType::getBasicString(yyvsp[0].interm.type.type), ""); + parseContext.recover(); + yyvsp[0].interm.type.type = EbtFloat; + op = EOpConstructFloat; + } + TString tempString = ""; + TType type(yyvsp[0].interm.type); + TFunction *function = new TFunction(&tempString, type, op); + yyval.interm.function = function; + } + ; + break;} +case 25: +#line 653 "hlslang.y" +{ + if (parseContext.reservedErrorCheck(yyvsp[0].lex.line, *yyvsp[0].lex.string)) + parseContext.recover(); + TType type(EbtVoid, EbpUndefined); + const TString *mangled; + if ( *yyvsp[0].lex.string == "main") + mangled = NewPoolTString("xlat_main"); + else + mangled = yyvsp[0].lex.string; + TFunction *function = new TFunction( mangled, type); + yyval.interm.function = function; + ; + break;} +case 26: +#line 665 "hlslang.y" +{ + if (parseContext.reservedErrorCheck(yyvsp[0].lex.line, *yyvsp[0].lex.string)) + parseContext.recover(); + TType type(EbtVoid, EbpUndefined); + TFunction *function = new TFunction(yyvsp[0].lex.string, type); + yyval.interm.function = function; + ; + break;} +case 27: +#line 675 "hlslang.y" +{ + yyval.interm.intermTypedNode = yyvsp[0].interm.intermTypedNode; + ; + break;} +case 28: +#line 678 "hlslang.y" +{ + if (parseContext.lValueErrorCheck(yyvsp[-1].lex.line, "++", yyvsp[0].interm.intermTypedNode)) + parseContext.recover(); + yyval.interm.intermTypedNode = ir_add_unary_math(EOpPreIncrement, yyvsp[0].interm.intermTypedNode, yyvsp[-1].lex.line, parseContext); + if (yyval.interm.intermTypedNode == 0) { + parseContext.unaryOpError(yyvsp[-1].lex.line, "++", yyvsp[0].interm.intermTypedNode->getCompleteString()); + parseContext.recover(); + yyval.interm.intermTypedNode = yyvsp[0].interm.intermTypedNode; + } + ; + break;} +case 29: +#line 688 "hlslang.y" +{ + if (parseContext.lValueErrorCheck(yyvsp[-1].lex.line, "--", yyvsp[0].interm.intermTypedNode)) + parseContext.recover(); + yyval.interm.intermTypedNode = ir_add_unary_math(EOpPreDecrement, yyvsp[0].interm.intermTypedNode, yyvsp[-1].lex.line, parseContext); + if (yyval.interm.intermTypedNode == 0) { + parseContext.unaryOpError(yyvsp[-1].lex.line, "--", yyvsp[0].interm.intermTypedNode->getCompleteString()); + parseContext.recover(); + yyval.interm.intermTypedNode = yyvsp[0].interm.intermTypedNode; + } + ; + break;} +case 30: +#line 698 "hlslang.y" +{ + if (yyvsp[-1].interm.op != EOpNull) { + yyval.interm.intermTypedNode = ir_add_unary_math(yyvsp[-1].interm.op, yyvsp[0].interm.intermTypedNode, yyvsp[-1].interm.line, parseContext); + if (yyval.interm.intermTypedNode == 0) { + const char* errorOp = ""; + switch(yyvsp[-1].interm.op) { + case EOpNegative: errorOp = "-"; break; + case EOpLogicalNot: errorOp = "!"; break; + case EOpBitwiseNot: errorOp = "~"; break; + default: break; + } + parseContext.unaryOpError(yyvsp[-1].interm.line, errorOp, yyvsp[0].interm.intermTypedNode->getCompleteString()); + parseContext.recover(); + yyval.interm.intermTypedNode = yyvsp[0].interm.intermTypedNode; + } + } else + yyval.interm.intermTypedNode = yyvsp[0].interm.intermTypedNode; + ; + break;} +case 31: +#line 716 "hlslang.y" +{ + // cast operator, insert constructor + TOperator op = ir_get_constructor_op(yyvsp[-2].interm.type, parseContext, true); + if (op == EOpNull) { + parseContext.error(yyvsp[-2].interm.type.line, "cannot cast this type", TType::getBasicString(yyvsp[-2].interm.type.type), ""); + parseContext.recover(); + yyvsp[-2].interm.type.type = EbtFloat; + op = EOpConstructFloat; + } + TString tempString = ""; + TType type(yyvsp[-2].interm.type); + TFunction *function = new TFunction(&tempString, type, op); + TParameter param = { 0, 0, new TType(yyvsp[0].interm.intermTypedNode->getType()) }; + function->addParameter(param); + TType type2(EbtVoid, EbpUndefined); // use this to get the type back + if (parseContext.constructorErrorCheck(yyvsp[-2].interm.type.line, yyvsp[0].interm.intermTypedNode, *function, op, &type2)) { + yyval.interm.intermTypedNode = 0; + } else { + // + // It's a constructor, of type 'type'. + // + yyval.interm.intermTypedNode = parseContext.addConstructor(yyvsp[0].interm.intermTypedNode, &type2, op, function, yyvsp[-2].interm.type.line); + } + + if (yyval.interm.intermTypedNode == 0) { + parseContext.recover(); + yyval.interm.intermTypedNode = ir_set_aggregate_op(0, op, yyvsp[-2].interm.type.line); + } else { + yyval.interm.intermTypedNode->setType(type2); + } + ; + break;} +case 32: +#line 751 "hlslang.y" +{ yyval.interm.line = yyvsp[0].lex.line; yyval.interm.op = EOpNull; ; + break;} +case 33: +#line 752 "hlslang.y" +{ yyval.interm.line = yyvsp[0].lex.line; yyval.interm.op = EOpNegative; ; + break;} +case 34: +#line 753 "hlslang.y" +{ yyval.interm.line = yyvsp[0].lex.line; yyval.interm.op = EOpLogicalNot; ; + break;} +case 35: +#line 754 "hlslang.y" +{ UNSUPPORTED_FEATURE("~", yyvsp[0].lex.line); + yyval.interm.line = yyvsp[0].lex.line; yyval.interm.op = EOpBitwiseNot; ; + break;} +case 36: +#line 760 "hlslang.y" +{ yyval.interm.intermTypedNode = yyvsp[0].interm.intermTypedNode; ; + break;} +case 37: +#line 761 "hlslang.y" +{ yyval.interm.intermTypedNode = parseContext.add_binary(EOpMul, yyvsp[-2].interm.intermTypedNode, yyvsp[0].interm.intermTypedNode, yyvsp[-1].lex.line, "*", false); ; + break;} +case 38: +#line 762 "hlslang.y" +{ yyval.interm.intermTypedNode = parseContext.add_binary(EOpDiv, yyvsp[-2].interm.intermTypedNode, yyvsp[0].interm.intermTypedNode, yyvsp[-1].lex.line, "/", false); ; + break;} +case 39: +#line 763 "hlslang.y" +{ yyval.interm.intermTypedNode = parseContext.add_binary(EOpMod, yyvsp[-2].interm.intermTypedNode, yyvsp[0].interm.intermTypedNode, yyvsp[-1].lex.line, "%", false); ; + break;} +case 40: +#line 767 "hlslang.y" +{ yyval.interm.intermTypedNode = yyvsp[0].interm.intermTypedNode; ; + break;} +case 41: +#line 768 "hlslang.y" +{ yyval.interm.intermTypedNode = parseContext.add_binary(EOpAdd, yyvsp[-2].interm.intermTypedNode, yyvsp[0].interm.intermTypedNode, yyvsp[-1].lex.line, "+", false); ; + break;} +case 42: +#line 769 "hlslang.y" +{ yyval.interm.intermTypedNode = parseContext.add_binary(EOpSub, yyvsp[-2].interm.intermTypedNode, yyvsp[0].interm.intermTypedNode, yyvsp[-1].lex.line, "-", false); ; + break;} +case 43: +#line 773 "hlslang.y" +{ yyval.interm.intermTypedNode = yyvsp[0].interm.intermTypedNode; ; + break;} +case 44: +#line 774 "hlslang.y" +{ yyval.interm.intermTypedNode = parseContext.add_binary(EOpLeftShift, yyvsp[-2].interm.intermTypedNode, yyvsp[0].interm.intermTypedNode, yyvsp[-1].lex.line, "<<", false); ; + break;} +case 45: +#line 775 "hlslang.y" +{ yyval.interm.intermTypedNode = parseContext.add_binary(EOpRightShift, yyvsp[-2].interm.intermTypedNode, yyvsp[0].interm.intermTypedNode, yyvsp[-1].lex.line, ">>", false); ; + break;} +case 46: +#line 779 "hlslang.y" +{ yyval.interm.intermTypedNode = yyvsp[0].interm.intermTypedNode; ; + break;} +case 47: +#line 780 "hlslang.y" +{ yyval.interm.intermTypedNode = parseContext.add_binary(EOpLessThan, yyvsp[-2].interm.intermTypedNode, yyvsp[0].interm.intermTypedNode, yyvsp[-1].lex.line, "<", true); ; + break;} +case 48: +#line 781 "hlslang.y" +{ yyval.interm.intermTypedNode = parseContext.add_binary(EOpGreaterThan, yyvsp[-2].interm.intermTypedNode, yyvsp[0].interm.intermTypedNode, yyvsp[-1].lex.line, ">", true); ; + break;} +case 49: +#line 782 "hlslang.y" +{ yyval.interm.intermTypedNode = parseContext.add_binary(EOpLessThanEqual, yyvsp[-2].interm.intermTypedNode, yyvsp[0].interm.intermTypedNode, yyvsp[-1].lex.line, "<=", true); ; + break;} +case 50: +#line 783 "hlslang.y" +{ yyval.interm.intermTypedNode = parseContext.add_binary(EOpGreaterThanEqual, yyvsp[-2].interm.intermTypedNode, yyvsp[0].interm.intermTypedNode, yyvsp[-1].lex.line, ">=", true); ; + break;} +case 51: +#line 787 "hlslang.y" +{ yyval.interm.intermTypedNode = yyvsp[0].interm.intermTypedNode; ; + break;} +case 52: +#line 788 "hlslang.y" +{ yyval.interm.intermTypedNode = parseContext.add_binary(EOpEqual, yyvsp[-2].interm.intermTypedNode, yyvsp[0].interm.intermTypedNode, yyvsp[-1].lex.line, "==", true); ; + break;} +case 53: +#line 789 "hlslang.y" +{ yyval.interm.intermTypedNode = parseContext.add_binary(EOpNotEqual, yyvsp[-2].interm.intermTypedNode, yyvsp[0].interm.intermTypedNode, yyvsp[-1].lex.line, "!=", true); ; + break;} +case 54: +#line 793 "hlslang.y" +{ yyval.interm.intermTypedNode = yyvsp[0].interm.intermTypedNode; ; + break;} +case 55: +#line 794 "hlslang.y" +{ yyval.interm.intermTypedNode = parseContext.add_binary(EOpAnd, yyvsp[-2].interm.intermTypedNode, yyvsp[0].interm.intermTypedNode, yyvsp[-1].lex.line, "&", false); ; + break;} +case 56: +#line 798 "hlslang.y" +{ yyval.interm.intermTypedNode = yyvsp[0].interm.intermTypedNode; ; + break;} +case 57: +#line 799 "hlslang.y" +{ yyval.interm.intermTypedNode = parseContext.add_binary(EOpExclusiveOr, yyvsp[-2].interm.intermTypedNode, yyvsp[0].interm.intermTypedNode, yyvsp[-1].lex.line, "^", false); ; + break;} +case 58: +#line 803 "hlslang.y" +{ yyval.interm.intermTypedNode = yyvsp[0].interm.intermTypedNode; ; + break;} +case 59: +#line 804 "hlslang.y" +{ yyval.interm.intermTypedNode = parseContext.add_binary(EOpInclusiveOr, yyvsp[-2].interm.intermTypedNode, yyvsp[0].interm.intermTypedNode, yyvsp[-1].lex.line, "|", false); ; + break;} +case 60: +#line 808 "hlslang.y" +{ yyval.interm.intermTypedNode = yyvsp[0].interm.intermTypedNode; ; + break;} +case 61: +#line 809 "hlslang.y" +{ yyval.interm.intermTypedNode = parseContext.add_binary(EOpLogicalAnd, yyvsp[-2].interm.intermTypedNode, yyvsp[0].interm.intermTypedNode, yyvsp[-1].lex.line, "&&", true); ; + break;} +case 62: +#line 813 "hlslang.y" +{ yyval.interm.intermTypedNode = yyvsp[0].interm.intermTypedNode; ; + break;} +case 63: +#line 814 "hlslang.y" +{ yyval.interm.intermTypedNode = parseContext.add_binary(EOpLogicalXor, yyvsp[-2].interm.intermTypedNode, yyvsp[0].interm.intermTypedNode, yyvsp[-1].lex.line, "^^", true); ; + break;} +case 64: +#line 818 "hlslang.y" +{ yyval.interm.intermTypedNode = yyvsp[0].interm.intermTypedNode; ; + break;} +case 65: +#line 819 "hlslang.y" +{ yyval.interm.intermTypedNode = parseContext.add_binary(EOpLogicalOr, yyvsp[-2].interm.intermTypedNode, yyvsp[0].interm.intermTypedNode, yyvsp[-1].lex.line, "||", true); ; + break;} +case 66: +#line 823 "hlslang.y" +{ yyval.interm.intermTypedNode = yyvsp[0].interm.intermTypedNode; ; + break;} +case 67: +#line 824 "hlslang.y" +{ + if (parseContext.boolOrVectorErrorCheck(yyvsp[-3].lex.line, yyvsp[-4].interm.intermTypedNode)) + parseContext.recover(); + + yyval.interm.intermTypedNode = ir_add_selection(yyvsp[-4].interm.intermTypedNode, yyvsp[-2].interm.intermTypedNode, yyvsp[0].interm.intermTypedNode, yyvsp[-3].lex.line, parseContext.infoSink); + + if (yyval.interm.intermTypedNode == 0) { + parseContext.binaryOpError(yyvsp[-3].lex.line, ":", yyvsp[-2].interm.intermTypedNode->getCompleteString(), yyvsp[0].interm.intermTypedNode->getCompleteString()); + parseContext.recover(); + yyval.interm.intermTypedNode = yyvsp[0].interm.intermTypedNode; + } + ; + break;} +case 68: +#line 839 "hlslang.y" +{ yyval.interm.intermTypedNode = yyvsp[0].interm.intermTypedNode; ; + break;} +case 69: +#line 840 "hlslang.y" +{ + if (parseContext.lValueErrorCheck(yyvsp[-1].interm.line, "assign", yyvsp[-2].interm.intermTypedNode)) + parseContext.recover(); + yyval.interm.intermTypedNode = parseContext.addAssign(yyvsp[-1].interm.op, yyvsp[-2].interm.intermTypedNode, yyvsp[0].interm.intermTypedNode, yyvsp[-1].interm.line); + if (yyval.interm.intermTypedNode == 0) { + parseContext.assignError(yyvsp[-1].interm.line, "assign", yyvsp[-2].interm.intermTypedNode->getCompleteString(), yyvsp[0].interm.intermTypedNode->getCompleteString()); + parseContext.recover(); + yyval.interm.intermTypedNode = yyvsp[-2].interm.intermTypedNode; + } else if ((yyvsp[-2].interm.intermTypedNode->isArray() || yyvsp[0].interm.intermTypedNode->isArray())) + parseContext.recover(); + ; + break;} +case 70: +#line 854 "hlslang.y" +{ yyval.interm.line = yyvsp[0].lex.line; yyval.interm.op = EOpAssign; ; + break;} +case 71: +#line 855 "hlslang.y" +{ yyval.interm.line = yyvsp[0].lex.line; yyval.interm.op = EOpMulAssign; ; + break;} +case 72: +#line 856 "hlslang.y" +{ yyval.interm.line = yyvsp[0].lex.line; yyval.interm.op = EOpDivAssign; ; + break;} +case 73: +#line 857 "hlslang.y" +{ UNSUPPORTED_FEATURE("%=", yyvsp[0].lex.line); yyval.interm.line = yyvsp[0].lex.line; yyval.interm.op = EOpModAssign; ; + break;} +case 74: +#line 858 "hlslang.y" +{ yyval.interm.line = yyvsp[0].lex.line; yyval.interm.op = EOpAddAssign; ; + break;} +case 75: +#line 859 "hlslang.y" +{ yyval.interm.line = yyvsp[0].lex.line; yyval.interm.op = EOpSubAssign; ; + break;} +case 76: +#line 860 "hlslang.y" +{ UNSUPPORTED_FEATURE("<<=", yyvsp[0].lex.line); yyval.interm.line = yyvsp[0].lex.line; yyval.interm.op = EOpLeftShiftAssign; ; + break;} +case 77: +#line 861 "hlslang.y" +{ UNSUPPORTED_FEATURE("<<=", yyvsp[0].lex.line); yyval.interm.line = yyvsp[0].lex.line; yyval.interm.op = EOpRightShiftAssign; ; + break;} +case 78: +#line 862 "hlslang.y" +{ UNSUPPORTED_FEATURE("&=", yyvsp[0].lex.line); yyval.interm.line = yyvsp[0].lex.line; yyval.interm.op = EOpAndAssign; ; + break;} +case 79: +#line 863 "hlslang.y" +{ UNSUPPORTED_FEATURE("^=", yyvsp[0].lex.line); yyval.interm.line = yyvsp[0].lex.line; yyval.interm.op = EOpExclusiveOrAssign; ; + break;} +case 80: +#line 864 "hlslang.y" +{ UNSUPPORTED_FEATURE("|=", yyvsp[0].lex.line); yyval.interm.line = yyvsp[0].lex.line; yyval.interm.op = EOpInclusiveOrAssign; ; + break;} +case 81: +#line 868 "hlslang.y" +{ + yyval.interm.intermTypedNode = yyvsp[0].interm.intermTypedNode; + ; + break;} +case 82: +#line 871 "hlslang.y" +{ + yyval.interm.intermTypedNode = ir_add_comma(yyvsp[-2].interm.intermTypedNode, yyvsp[0].interm.intermTypedNode, yyvsp[-1].lex.line); + if (yyval.interm.intermTypedNode == 0) { + parseContext.binaryOpError(yyvsp[-1].lex.line, ",", yyvsp[-2].interm.intermTypedNode->getCompleteString(), yyvsp[0].interm.intermTypedNode->getCompleteString()); + parseContext.recover(); + yyval.interm.intermTypedNode = yyvsp[0].interm.intermTypedNode; + } + ; + break;} +case 83: +#line 882 "hlslang.y" +{ + if (parseContext.constErrorCheck(yyvsp[0].interm.intermTypedNode)) + parseContext.recover(); + yyval.interm.intermTypedNode = yyvsp[0].interm.intermTypedNode; + ; + break;} +case 84: +#line 890 "hlslang.y" +{ yyval.interm.intermDeclaration = 0; ; + break;} +case 85: +#line 891 "hlslang.y" +{ yyval.interm.intermDeclaration = yyvsp[-1].interm.intermDeclaration; ; + break;} +case 86: +#line 895 "hlslang.y" +{ + // + // Multiple declarations of the same function are allowed. + // + // If this is a definition, the definition production code will check for redefinitions + // (we don't know at this point if it's a definition or not). + // + // Redeclarations are allowed. But, return types and parameter qualifiers must match. + // + TFunction* prevDec = static_cast(parseContext.symbolTable.find(yyvsp[-1].interm.function->getMangledName())); + if (prevDec) { + if (prevDec->getReturnType() != yyvsp[-1].interm.function->getReturnType()) { + parseContext.error(yyvsp[0].lex.line, "overloaded functions must have the same return type", yyvsp[-1].interm.function->getReturnType().getBasicString(), ""); + parseContext.recover(); + } + for (int i = 0; i < prevDec->getParamCount(); ++i) { + if ((*prevDec)[i].type->getQualifier() != (*yyvsp[-1].interm.function)[i].type->getQualifier()) { + parseContext.error(yyvsp[0].lex.line, "overloaded functions must have the same parameter qualifiers", (*yyvsp[-1].interm.function)[i].type->getQualifierString(), ""); + parseContext.recover(); + } + } + } + + // + // If this is a redeclaration, it could also be a definition, + // in which case, we want to use the variable names from this one, and not the one that's + // being redeclared. So, pass back up this declaration, not the one in the symbol table. + // + yyval.interm.function = yyvsp[-1].interm.function; + yyval.interm.line = yyvsp[0].lex.line; + + parseContext.symbolTable.insert(*yyval.interm.function); + ; + break;} +case 87: +#line 928 "hlslang.y" +{ + // + // Multiple declarations of the same function are allowed. + // + // If this is a definition, the definition production code will check for redefinitions + // (we don't know at this point if it's a definition or not). + // + // Redeclarations are allowed. But, return types and parameter qualifiers must match. + // + TFunction* prevDec = static_cast(parseContext.symbolTable.find(yyvsp[-3].interm.function->getMangledName())); + if (prevDec) { + if (prevDec->getReturnType() != yyvsp[-3].interm.function->getReturnType()) { + parseContext.error(yyvsp[-2].lex.line, "overloaded functions must have the same return type", yyvsp[-3].interm.function->getReturnType().getBasicString(), ""); + parseContext.recover(); + } + for (int i = 0; i < prevDec->getParamCount(); ++i) { + if ((*prevDec)[i].type->getQualifier() != (*yyvsp[-3].interm.function)[i].type->getQualifier()) { + parseContext.error(yyvsp[-2].lex.line, "overloaded functions must have the same parameter qualifiers", (*yyvsp[-3].interm.function)[i].type->getQualifierString(), ""); + parseContext.recover(); + } + } + } + + // + // If this is a redeclaration, it could also be a definition, + // in which case, we want to use the variable names from this one, and not the one that's + // being redeclared. So, pass back up this declaration, not the one in the symbol table. + // + yyval.interm.function = yyvsp[-3].interm.function; + yyval.interm.line = yyvsp[-2].lex.line; + yyval.interm.function->setInfo(new TTypeInfo(*yyvsp[0].lex.string, 0)); + + parseContext.symbolTable.insert(*yyval.interm.function); + ; + break;} +case 88: +#line 965 "hlslang.y" +{ + yyval.interm.function = yyvsp[0].interm.function; + ; + break;} +case 89: +#line 968 "hlslang.y" +{ + yyval.interm.function = yyvsp[0].interm.function; + ; + break;} +case 90: +#line 975 "hlslang.y" +{ + // Add the parameter + yyval.interm.function = yyvsp[-1].interm.function; + if (yyvsp[0].interm.param.type->getBasicType() != EbtVoid) + yyvsp[-1].interm.function->addParameter(yyvsp[0].interm.param); + else + delete yyvsp[0].interm.param.type; + ; + break;} +case 91: +#line 983 "hlslang.y" +{ + // + // Only first parameter of one-parameter functions can be void + // The check for named parameters not being void is done in parameter_declarator + // + if (yyvsp[0].interm.param.type->getBasicType() == EbtVoid) { + // + // This parameter > first is void + // + parseContext.error(yyvsp[-1].lex.line, "cannot be an argument type except for '(void)'", "void", ""); + parseContext.recover(); + delete yyvsp[0].interm.param.type; + } else { + // Add the parameter + yyval.interm.function = yyvsp[-2].interm.function; + yyvsp[-2].interm.function->addParameter(yyvsp[0].interm.param); + } + ; + break;} +case 92: +#line 1004 "hlslang.y" +{ + if (yyvsp[-2].interm.type.qualifier != EvqGlobal && yyvsp[-2].interm.type.qualifier != EvqTemporary) { + if (yyvsp[-2].interm.type.qualifier == EvqConst || yyvsp[-2].interm.type.qualifier == EvqStatic) + { + yyvsp[-2].interm.type.qualifier = EvqTemporary; + } + else + { + parseContext.error(yyvsp[-1].lex.line, "no qualifiers allowed for function return", getQualifierString(yyvsp[-2].interm.type.qualifier), ""); + parseContext.recover(); + } + } + // make sure a sampler is not involved as well... + if (parseContext.structQualifierErrorCheck(yyvsp[-1].lex.line, yyvsp[-2].interm.type)) + parseContext.recover(); + + // Add the function as a prototype after parsing it (we do not support recursion) + TFunction *function; + TType type(yyvsp[-2].interm.type); + const TString* mangled = 0; + if ( *yyvsp[-1].lex.string == "main") + mangled = NewPoolTString( "xlat_main"); + else + mangled = yyvsp[-1].lex.string; + + function = new TFunction(mangled, type); + yyval.interm.function = function; + ; + break;} +case 93: +#line 1036 "hlslang.y" +{ + if (yyvsp[-1].interm.type.type == EbtVoid) { + parseContext.error(yyvsp[0].lex.line, "illegal use of type 'void'", yyvsp[0].lex.string->c_str(), ""); + parseContext.recover(); + } + if (parseContext.reservedErrorCheck(yyvsp[0].lex.line, *yyvsp[0].lex.string)) + parseContext.recover(); + TParameter param = {yyvsp[0].lex.string, 0, new TType(yyvsp[-1].interm.type)}; + yyval.interm.line = yyvsp[0].lex.line; + yyval.interm.param = param; + ; + break;} +case 94: +#line 1047 "hlslang.y" +{ + if (yyvsp[-3].interm.type.type == EbtVoid) { + parseContext.error(yyvsp[-2].lex.line, "illegal use of type 'void'", yyvsp[-2].lex.string->c_str(), ""); + parseContext.recover(); + } + if (parseContext.reservedErrorCheck(yyvsp[-2].lex.line, *yyvsp[-2].lex.string)) + parseContext.recover(); + TParameter param = {yyvsp[-2].lex.string, 0, new TType(yyvsp[-3].interm.type)}; + yyval.interm.line = yyvsp[-2].lex.line; + yyval.interm.param = param; + + //TODO: add initializer support + ; + break;} +case 95: +#line 1060 "hlslang.y" +{ + // register is being ignored + if (yyvsp[-2].interm.type.type == EbtVoid) { + parseContext.error(yyvsp[-1].lex.line, "illegal use of type 'void'", yyvsp[-1].lex.string->c_str(), ""); + parseContext.recover(); + } + if (parseContext.reservedErrorCheck(yyvsp[-1].lex.line, *yyvsp[-1].lex.string)) + parseContext.recover(); + TParameter param = {yyvsp[-1].lex.string, 0, new TType(yyvsp[-2].interm.type)}; + yyval.interm.line = yyvsp[-1].lex.line; + yyval.interm.param = param; + ; + break;} +case 96: +#line 1072 "hlslang.y" +{ + //Parameter with semantic + if (yyvsp[-3].interm.type.type == EbtVoid) { + parseContext.error(yyvsp[-2].lex.line, "illegal use of type 'void'", yyvsp[-2].lex.string->c_str(), ""); + parseContext.recover(); + } + if (parseContext.reservedErrorCheck(yyvsp[-2].lex.line, *yyvsp[-2].lex.string)) + parseContext.recover(); + TParameter param = {yyvsp[-2].lex.string, new TTypeInfo(*yyvsp[0].lex.string, 0), new TType(yyvsp[-3].interm.type)}; + yyval.interm.line = yyvsp[-2].lex.line; + yyval.interm.param = param; + ; + break;} +case 97: +#line 1084 "hlslang.y" +{ + // Check that we can make an array out of this type + if (parseContext.arrayTypeErrorCheck(yyvsp[-2].lex.line, yyvsp[-4].interm.type)) + parseContext.recover(); + + if (parseContext.reservedErrorCheck(yyvsp[-3].lex.line, *yyvsp[-3].lex.string)) + parseContext.recover(); + + int size; + if (parseContext.arraySizeErrorCheck(yyvsp[-2].lex.line, yyvsp[-1].interm.intermTypedNode, size)) + parseContext.recover(); + yyvsp[-4].interm.type.setArray(true, size); + + TType* type = new TType(yyvsp[-4].interm.type); + TParameter param = { yyvsp[-3].lex.string, 0, type }; + yyval.interm.line = yyvsp[-3].lex.line; + yyval.interm.param = param; + ; + break;} +case 98: +#line 1102 "hlslang.y" +{ + // Check that we can make an array out of this type + if (parseContext.arrayTypeErrorCheck(yyvsp[-4].lex.line, yyvsp[-6].interm.type)) + parseContext.recover(); + + if (parseContext.reservedErrorCheck(yyvsp[-5].lex.line, *yyvsp[-5].lex.string)) + parseContext.recover(); + + int size; + if (parseContext.arraySizeErrorCheck(yyvsp[-4].lex.line, yyvsp[-3].interm.intermTypedNode, size)) + parseContext.recover(); + yyvsp[-6].interm.type.setArray(true, size); + + TType* type = new TType(yyvsp[-6].interm.type); + TParameter param = { yyvsp[-5].lex.string, new TTypeInfo(*yyvsp[0].lex.string, 0), type }; + yyval.interm.line = yyvsp[-5].lex.line; + yyval.interm.param = param; + ; + break;} +case 99: +#line 1131 "hlslang.y" +{ + yyval.interm = yyvsp[0].interm; + if (parseContext.paramErrorCheck(yyvsp[0].interm.line, yyvsp[-2].interm.type.qualifier, yyvsp[-1].interm.qualifier, yyval.interm.param.type)) + parseContext.recover(); + ; + break;} +case 100: +#line 1136 "hlslang.y" +{ + yyval.interm = yyvsp[0].interm; + if (parseContext.parameterSamplerErrorCheck(yyvsp[0].interm.line, yyvsp[-1].interm.qualifier, *yyvsp[0].interm.param.type)) + parseContext.recover(); + if (parseContext.paramErrorCheck(yyvsp[0].interm.line, EvqTemporary, yyvsp[-1].interm.qualifier, yyval.interm.param.type)) + parseContext.recover(); + ; + break;} +case 101: +#line 1146 "hlslang.y" +{ + yyval.interm = yyvsp[0].interm; + if (parseContext.paramErrorCheck(yyvsp[0].interm.line, yyvsp[-2].interm.type.qualifier, yyvsp[-1].interm.qualifier, yyval.interm.param.type)) + parseContext.recover(); + ; + break;} +case 102: +#line 1151 "hlslang.y" +{ + yyval.interm = yyvsp[0].interm; + if (parseContext.parameterSamplerErrorCheck(yyvsp[0].interm.line, yyvsp[-1].interm.qualifier, *yyvsp[0].interm.param.type)) + parseContext.recover(); + if (parseContext.paramErrorCheck(yyvsp[0].interm.line, EvqTemporary, yyvsp[-1].interm.qualifier, yyval.interm.param.type)) + parseContext.recover(); + ; + break;} +case 103: +#line 1161 "hlslang.y" +{ + yyval.interm.qualifier = EvqIn; + ; + break;} +case 104: +#line 1164 "hlslang.y" +{ + yyval.interm.qualifier = EvqIn; + ; + break;} +case 105: +#line 1167 "hlslang.y" +{ + yyval.interm.qualifier = EvqOut; + ; + break;} +case 106: +#line 1170 "hlslang.y" +{ + yyval.interm.qualifier = EvqInOut; + ; + break;} +case 107: +#line 1176 "hlslang.y" +{ + TParameter param = { 0, 0, new TType(yyvsp[0].interm.type) }; + yyval.interm.param = param; + ; + break;} +case 108: +#line 1183 "hlslang.y" +{ + yyval.interm.intermDeclaration = yyvsp[0].interm.intermDeclaration; + ; + break;} +case 109: +#line 1186 "hlslang.y" +{ + TPublicType type = ir_get_decl_type_noarray(yyvsp[-3].interm.intermDeclaration); + + if (parseContext.structQualifierErrorCheck(yyvsp[-1].lex.line, type)) + parseContext.recover(); + + if (parseContext.nonInitConstErrorCheck(yyvsp[-1].lex.line, *yyvsp[-1].lex.string, type)) + parseContext.recover(); + + if (parseContext.nonInitErrorCheck(yyvsp[-1].lex.line, *yyvsp[-1].lex.string, yyvsp[0].interm.typeInfo, type)) + parseContext.recover(); + + TSymbol* sym = parseContext.symbolTable.find(*yyvsp[-1].lex.string); + if (!sym) + yyval.interm.intermDeclaration = yyvsp[-3].interm.intermDeclaration; + else + yyval.interm.intermDeclaration = ir_grow_declaration(yyvsp[-3].interm.intermDeclaration, sym, NULL, parseContext); + ; + break;} +case 110: +#line 1204 "hlslang.y" +{ + TPublicType type = ir_get_decl_type_noarray(yyvsp[-5].interm.intermDeclaration); + + if (parseContext.structQualifierErrorCheck(yyvsp[-3].lex.line, type)) + parseContext.recover(); + + if (parseContext.nonInitConstErrorCheck(yyvsp[-3].lex.line, *yyvsp[-3].lex.string, type)) + parseContext.recover(); + + if (parseContext.arrayTypeErrorCheck(yyvsp[-2].lex.line, type) || parseContext.arrayQualifierErrorCheck(yyvsp[-2].lex.line, type)) + parseContext.recover(); + else { + TVariable* variable; + if (parseContext.arrayErrorCheck(yyvsp[-2].lex.line, *yyvsp[-3].lex.string, yyvsp[0].interm.typeInfo, type, variable)) + parseContext.recover(); + + if (!variable) + yyval.interm.intermDeclaration = yyvsp[-5].interm.intermDeclaration; + else { + variable->getType().setArray(true); + yyval.interm.intermDeclaration = ir_grow_declaration(yyvsp[-5].interm.intermDeclaration, variable, NULL, parseContext); + } + } + ; + break;} +case 111: +#line 1228 "hlslang.y" +{ + TPublicType type = ir_get_decl_type_noarray(yyvsp[-6].interm.intermDeclaration); + + if (parseContext.structQualifierErrorCheck(yyvsp[-4].lex.line, type)) + parseContext.recover(); + + if (parseContext.nonInitConstErrorCheck(yyvsp[-4].lex.line, *yyvsp[-4].lex.string, type)) + parseContext.recover(); + + if (parseContext.arrayTypeErrorCheck(yyvsp[-3].lex.line, type) || parseContext.arrayQualifierErrorCheck(yyvsp[-3].lex.line, type)) + parseContext.recover(); + else { + int size; + if (parseContext.arraySizeErrorCheck(yyvsp[-3].lex.line, yyvsp[-2].interm.intermTypedNode, size)) + parseContext.recover(); + type.setArray(true, size); + + TVariable* variable; + if (parseContext.arrayErrorCheck(yyvsp[-3].lex.line, *yyvsp[-4].lex.string, yyvsp[0].interm.typeInfo, type, variable)) + parseContext.recover(); + + if (!variable) + yyval.interm.intermDeclaration = yyvsp[-6].interm.intermDeclaration; + else { + yyval.interm.intermDeclaration = ir_grow_declaration(yyvsp[-6].interm.intermDeclaration, variable, NULL, parseContext); + } + } + ; + break;} +case 112: +#line 1256 "hlslang.y" +{ + TPublicType type = ir_get_decl_type_noarray(yyvsp[-7].interm.intermDeclaration); + + if (parseContext.structQualifierErrorCheck(yyvsp[-5].lex.line, type)) + parseContext.recover(); + + TVariable* variable = 0; + if (parseContext.arrayTypeErrorCheck(yyvsp[-4].lex.line, type) || parseContext.arrayQualifierErrorCheck(yyvsp[-4].lex.line, type)) + parseContext.recover(); + else if (parseContext.arrayErrorCheck(yyvsp[-4].lex.line, *yyvsp[-5].lex.string, type, variable)) + parseContext.recover(); + + { + TIntermSymbol* symbol; + type.setArray(true, yyvsp[0].interm.intermTypedNode->getType().getArraySize()); + if (!parseContext.executeInitializer(yyvsp[-5].lex.line, *yyvsp[-5].lex.string, yyvsp[-2].interm.typeInfo, type, yyvsp[0].interm.intermTypedNode, symbol, variable)) { + if (!variable) + yyval.interm.intermDeclaration = yyvsp[-7].interm.intermDeclaration; + else { + yyval.interm.intermDeclaration = ir_grow_declaration(yyvsp[-7].interm.intermDeclaration, variable, yyvsp[0].interm.intermTypedNode, parseContext); + } + } else { + parseContext.recover(); + yyval.interm.intermDeclaration = 0; + } + } + ; + break;} +case 113: +#line 1283 "hlslang.y" +{ + TPublicType type = ir_get_decl_type_noarray(yyvsp[-8].interm.intermDeclaration); + int array_size; + + if (parseContext.structQualifierErrorCheck(yyvsp[-6].lex.line, type)) + parseContext.recover(); + + TVariable* variable = 0; + if (parseContext.arrayTypeErrorCheck(yyvsp[-5].lex.line, type) || parseContext.arrayQualifierErrorCheck(yyvsp[-5].lex.line, type)) + parseContext.recover(); + else { + if (parseContext.arraySizeErrorCheck(yyvsp[-5].lex.line, yyvsp[-4].interm.intermTypedNode, array_size)) + parseContext.recover(); + + type.setArray(true, array_size); + if (parseContext.arrayErrorCheck(yyvsp[-5].lex.line, *yyvsp[-6].lex.string, yyvsp[-2].interm.typeInfo, type, variable)) + parseContext.recover(); + } + + { + TIntermSymbol* symbol; + if (!parseContext.executeInitializer(yyvsp[-6].lex.line, *yyvsp[-6].lex.string, yyvsp[-2].interm.typeInfo, type, yyvsp[0].interm.intermTypedNode, symbol, variable)) { + if (!variable) + yyval.interm.intermDeclaration = yyvsp[-8].interm.intermDeclaration; + else { + yyval.interm.intermDeclaration = ir_grow_declaration(yyvsp[-8].interm.intermDeclaration, variable, yyvsp[0].interm.intermTypedNode, parseContext); + } + } else { + parseContext.recover(); + yyval.interm.intermDeclaration = 0; + } + } + ; + break;} +case 114: +#line 1316 "hlslang.y" +{ + TPublicType type = ir_get_decl_type_noarray(yyvsp[-5].interm.intermDeclaration); + + if (parseContext.structQualifierErrorCheck(yyvsp[-3].lex.line, type)) + parseContext.recover(); + + TIntermSymbol* symbol; + if ( !IsSampler(type.type)) { + if (!parseContext.executeInitializer(yyvsp[-3].lex.line, *yyvsp[-3].lex.string, yyvsp[-2].interm.typeInfo, type, yyvsp[0].interm.intermTypedNode, symbol)) { + TSymbol* variable = parseContext.symbolTable.find(*yyvsp[-3].lex.string); + if (!variable) + yyval.interm.intermDeclaration = yyvsp[-5].interm.intermDeclaration; + else + yyval.interm.intermDeclaration = ir_grow_declaration(yyvsp[-5].interm.intermDeclaration, variable, yyvsp[0].interm.intermTypedNode, parseContext); + } else { + parseContext.recover(); + yyval.interm.intermDeclaration = 0; + } + } else { + //Special code to skip initializers for samplers + yyval.interm.intermDeclaration = yyvsp[-5].interm.intermDeclaration; + if (parseContext.structQualifierErrorCheck(yyvsp[-3].lex.line, type)) + parseContext.recover(); + + if (parseContext.nonInitConstErrorCheck(yyvsp[-3].lex.line, *yyvsp[-3].lex.string, type)) + parseContext.recover(); + + if (parseContext.nonInitErrorCheck(yyvsp[-3].lex.line, *yyvsp[-3].lex.string, yyvsp[-2].interm.typeInfo, type)) + parseContext.recover(); + } + ; + break;} +case 115: +#line 1350 "hlslang.y" +{ + yyval.interm.intermDeclaration = 0; + ; + break;} +case 116: +#line 1353 "hlslang.y" +{ + bool error = false; + if (error &= parseContext.structQualifierErrorCheck(yyvsp[-1].lex.line, yyvsp[-2].interm.type)) + parseContext.recover(); + + if (error &= parseContext.nonInitConstErrorCheck(yyvsp[-1].lex.line, *yyvsp[-1].lex.string, yyvsp[-2].interm.type)) + parseContext.recover(); + + if (error &= parseContext.nonInitErrorCheck(yyvsp[-1].lex.line, *yyvsp[-1].lex.string, yyvsp[0].interm.typeInfo, yyvsp[-2].interm.type)) + parseContext.recover(); + + TSymbol* symbol = parseContext.symbolTable.find(*yyvsp[-1].lex.string); + if (!error && symbol) { + yyval.interm.intermDeclaration = ir_add_declaration(symbol, NULL, yyvsp[-1].lex.line, parseContext); + } else { + yyval.interm.intermDeclaration = 0; + } + ; + break;} +case 117: +#line 1371 "hlslang.y" +{ + if (parseContext.structQualifierErrorCheck(yyvsp[-3].lex.line, yyvsp[-4].interm.type)) + parseContext.recover(); + + if (parseContext.nonInitConstErrorCheck(yyvsp[-3].lex.line, *yyvsp[-3].lex.string, yyvsp[-4].interm.type)) + parseContext.recover(); + + if (parseContext.arrayTypeErrorCheck(yyvsp[-2].lex.line, yyvsp[-4].interm.type) || parseContext.arrayQualifierErrorCheck(yyvsp[-2].lex.line, yyvsp[-4].interm.type)) + parseContext.recover(); + else { + yyvsp[-4].interm.type.setArray(true); + TVariable* variable; + if (parseContext.arrayErrorCheck(yyvsp[-2].lex.line, *yyvsp[-3].lex.string, yyvsp[0].interm.typeInfo, yyvsp[-4].interm.type, variable)) + parseContext.recover(); + } + + TSymbol* symbol = parseContext.symbolTable.find(*yyvsp[-3].lex.string); + if (symbol) { + yyval.interm.intermDeclaration = ir_add_declaration(symbol, NULL, yyvsp[-3].lex.line, parseContext); + } else { + yyval.interm.intermDeclaration = 0; + } + ; + break;} +case 118: +#line 1394 "hlslang.y" +{ + if (parseContext.structQualifierErrorCheck(yyvsp[-4].lex.line, yyvsp[-5].interm.type)) + parseContext.recover(); + + if (parseContext.nonInitConstErrorCheck(yyvsp[-4].lex.line, *yyvsp[-4].lex.string, yyvsp[-5].interm.type)) + parseContext.recover(); + + TVariable* variable; + if (parseContext.arrayTypeErrorCheck(yyvsp[-3].lex.line, yyvsp[-5].interm.type) || parseContext.arrayQualifierErrorCheck(yyvsp[-3].lex.line, yyvsp[-5].interm.type)) + parseContext.recover(); + else { + int size; + if (parseContext.arraySizeErrorCheck(yyvsp[-3].lex.line, yyvsp[-2].interm.intermTypedNode, size)) + parseContext.recover(); + + yyvsp[-5].interm.type.setArray(true, size); + if (parseContext.arrayErrorCheck(yyvsp[-3].lex.line, *yyvsp[-4].lex.string, yyvsp[0].interm.typeInfo, yyvsp[-5].interm.type, variable)) + parseContext.recover(); + + if (variable) { + yyval.interm.intermDeclaration = ir_add_declaration(variable, NULL, yyvsp[-4].lex.line, parseContext); + } else { + yyval.interm.intermDeclaration = 0; + } + } + ; + break;} +case 119: +#line 1420 "hlslang.y" +{ + if (parseContext.structQualifierErrorCheck(yyvsp[-5].lex.line, yyvsp[-6].interm.type)) + parseContext.recover(); + + TVariable* variable = 0; + if (parseContext.arrayTypeErrorCheck(yyvsp[-4].lex.line, yyvsp[-6].interm.type) || parseContext.arrayQualifierErrorCheck(yyvsp[-4].lex.line, yyvsp[-6].interm.type)) + parseContext.recover(); + else { + yyvsp[-6].interm.type.setArray(true, yyvsp[0].interm.intermTypedNode->getType().getArraySize()); + if (parseContext.arrayErrorCheck(yyvsp[-4].lex.line, *yyvsp[-5].lex.string, yyvsp[-2].interm.typeInfo, yyvsp[-6].interm.type, variable)) + parseContext.recover(); + } + + { + TIntermSymbol* symbol; + if (!parseContext.executeInitializer(yyvsp[-5].lex.line, *yyvsp[-5].lex.string, yyvsp[-2].interm.typeInfo, yyvsp[-6].interm.type, yyvsp[0].interm.intermTypedNode, symbol, variable)) { + if (variable) + yyval.interm.intermDeclaration = ir_add_declaration(symbol, yyvsp[0].interm.intermTypedNode, yyvsp[-1].lex.line, parseContext); + else + yyval.interm.intermDeclaration = 0; + } else { + parseContext.recover(); + yyval.interm.intermDeclaration = 0; + } + } + ; + break;} +case 120: +#line 1446 "hlslang.y" +{ + if (parseContext.structQualifierErrorCheck(yyvsp[-6].lex.line, yyvsp[-7].interm.type)) + parseContext.recover(); + + TVariable* variable = 0; + if (parseContext.arrayTypeErrorCheck(yyvsp[-5].lex.line, yyvsp[-7].interm.type) || parseContext.arrayQualifierErrorCheck(yyvsp[-5].lex.line, yyvsp[-7].interm.type)) + parseContext.recover(); + else { + int size; + if (parseContext.arraySizeErrorCheck(yyvsp[-5].lex.line, yyvsp[-4].interm.intermTypedNode, size)) + parseContext.recover(); + + yyvsp[-7].interm.type.setArray(true, size); + if (parseContext.arrayErrorCheck(yyvsp[-5].lex.line, *yyvsp[-6].lex.string, yyvsp[-2].interm.typeInfo, yyvsp[-7].interm.type, variable)) + parseContext.recover(); + } + + { + TIntermSymbol* symbol; + if (!parseContext.executeInitializer(yyvsp[-6].lex.line, *yyvsp[-6].lex.string, yyvsp[-2].interm.typeInfo, yyvsp[-7].interm.type, yyvsp[0].interm.intermTypedNode, symbol, variable)) { + if (variable) + yyval.interm.intermDeclaration = ir_add_declaration(symbol, yyvsp[0].interm.intermTypedNode, yyvsp[-1].lex.line, parseContext); + else + yyval.interm.intermDeclaration = 0; + } else { + parseContext.recover(); + yyval.interm.intermDeclaration = 0; + } + } + ; + break;} +case 121: +#line 1476 "hlslang.y" +{ + if (parseContext.structQualifierErrorCheck(yyvsp[-3].lex.line, yyvsp[-4].interm.type)) + parseContext.recover(); + + if (!IsSampler(yyvsp[-4].interm.type.type)) { + TIntermSymbol* symbol; + if (!parseContext.executeInitializer(yyvsp[-3].lex.line, *yyvsp[-3].lex.string, yyvsp[-2].interm.typeInfo, yyvsp[-4].interm.type, yyvsp[0].interm.intermTypedNode, symbol)) { + if (symbol) + yyval.interm.intermDeclaration = ir_add_declaration(symbol, yyvsp[0].interm.intermTypedNode, yyvsp[-1].lex.line, parseContext); + else + yyval.interm.intermDeclaration = 0; + } else { + parseContext.recover(); + yyval.interm.intermDeclaration = 0; + } + } else { + if (parseContext.structQualifierErrorCheck(yyvsp[-3].lex.line, yyvsp[-4].interm.type)) + parseContext.recover(); + + if (parseContext.nonInitConstErrorCheck(yyvsp[-3].lex.line, *yyvsp[-3].lex.string, yyvsp[-4].interm.type)) + parseContext.recover(); + + if (parseContext.nonInitErrorCheck(yyvsp[-3].lex.line, *yyvsp[-3].lex.string, yyvsp[-2].interm.typeInfo, yyvsp[-4].interm.type)) + parseContext.recover(); + + TSymbol* symbol = parseContext.symbolTable.find(*yyvsp[-3].lex.string); + if (symbol) { + yyval.interm.intermDeclaration = ir_add_declaration(symbol, NULL, yyvsp[-3].lex.line, parseContext); + } else { + yyval.interm.intermDeclaration = 0; + } + } + ; + break;} +case 122: +#line 1524 "hlslang.y" +{ + yyval.interm.type = yyvsp[0].interm.type; + ; + break;} +case 123: +#line 1527 "hlslang.y" +{ + if (yyvsp[0].interm.type.array && parseContext.arrayQualifierErrorCheck(yyvsp[0].interm.type.line, yyvsp[-1].interm.type)) { + parseContext.recover(); + yyvsp[0].interm.type.setArray(false); + } + + if (yyvsp[-1].interm.type.qualifier == EvqAttribute && + (yyvsp[0].interm.type.type == EbtBool || yyvsp[0].interm.type.type == EbtInt)) { + parseContext.error(yyvsp[0].interm.type.line, "cannot be bool or int", getQualifierString(yyvsp[-1].interm.type.qualifier), ""); + parseContext.recover(); + } + yyval.interm.type = yyvsp[0].interm.type; + yyval.interm.type.qualifier = yyvsp[-1].interm.type.qualifier; + ; + break;} +case 124: +#line 1544 "hlslang.y" +{ + yyval.interm.type.setBasic(EbtVoid, EvqConst, yyvsp[0].lex.line); + ; + break;} +case 125: +#line 1547 "hlslang.y" +{ + yyval.interm.type.setBasic(EbtVoid, EvqStatic, yyvsp[0].lex.line); + ; + break;} +case 126: +#line 1550 "hlslang.y" +{ + yyval.interm.type.setBasic(EbtVoid, EvqConst, yyvsp[-1].lex.line); // same as "const" really + ; + break;} +case 127: +#line 1553 "hlslang.y" +{ + yyval.interm.type.setBasic(EbtVoid, EvqConst, yyvsp[-1].lex.line); // same as "const" really + ; + break;} +case 128: +#line 1556 "hlslang.y" +{ + if (parseContext.globalErrorCheck(yyvsp[0].lex.line, parseContext.symbolTable.atGlobalLevel(), "uniform")) + parseContext.recover(); + yyval.interm.type.setBasic(EbtVoid, EvqUniform, yyvsp[0].lex.line); + ; + break;} +case 129: +#line 1564 "hlslang.y" +{ + yyval.interm.type = yyvsp[0].interm.type; + ; + break;} +case 130: +#line 1567 "hlslang.y" +{ + yyval.interm.type = yyvsp[-3].interm.type; + + if (parseContext.arrayTypeErrorCheck(yyvsp[-2].lex.line, yyvsp[-3].interm.type)) + parseContext.recover(); + else { + int size; + if (parseContext.arraySizeErrorCheck(yyvsp[-2].lex.line, yyvsp[-1].interm.intermTypedNode, size)) + parseContext.recover(); + yyval.interm.type.setArray(true, size); + } + ; + break;} +case 131: +#line 1582 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtVoid,EbpUndefined); + ; + break;} +case 132: +#line 1585 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpHigh); + ; + break;} +case 133: +#line 1588 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpMedium); + ; + break;} +case 134: +#line 1591 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpLow); + ; + break;} +case 135: +#line 1594 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtInt,EbpHigh); + ; + break;} +case 136: +#line 1597 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtBool,EbpHigh); + ; + break;} +case 137: +#line 1600 "hlslang.y" +{ + TQualifier qual = parseContext.getDefaultQualifier(); + if ( yyvsp[-1].lex.i > 4 || yyvsp[-1].lex.i < 1 ) { + parseContext.error(yyvsp[-4].lex.line, "vector dimension out of range", "", ""); + parseContext.recover(); + yyval.interm.type.setBasic(EbtFloat, qual, yyvsp[-5].lex.line); + } else { + yyval.interm.type.setBasic(EbtFloat, qual, yyvsp[-5].lex.line); + yyval.interm.type.setVector(yyvsp[-1].lex.i); + } + ; + break;} +case 138: +#line 1611 "hlslang.y" +{ + TQualifier qual = parseContext.getDefaultQualifier(); + if ( yyvsp[-1].lex.i > 4 || yyvsp[-1].lex.i < 1 ) { + parseContext.error(yyvsp[-4].lex.line, "vector dimension out of range", "", ""); + parseContext.recover(); + yyval.interm.type.setBasic(EbtInt, qual, yyvsp[-5].lex.line); + } else { + yyval.interm.type.setBasic(EbtInt, qual, yyvsp[-5].lex.line); + yyval.interm.type.setVector(yyvsp[-1].lex.i); + } + ; + break;} +case 139: +#line 1622 "hlslang.y" +{ + TQualifier qual = parseContext.getDefaultQualifier(); + if ( yyvsp[-1].lex.i > 4 || yyvsp[-1].lex.i < 1 ) { + parseContext.error(yyvsp[-4].lex.line, "vector dimension out of range", "", ""); + parseContext.recover(); + yyval.interm.type.setBasic(EbtBool, qual, yyvsp[-5].lex.line); + } else { + yyval.interm.type.setBasic(EbtBool, qual, yyvsp[-5].lex.line); + yyval.interm.type.setVector(yyvsp[-1].lex.i); + } + ; + break;} +case 140: +#line 1633 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpHigh); + yyval.interm.type.setVector(2); + ; + break;} +case 141: +#line 1637 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpHigh); + yyval.interm.type.setVector(3); + ; + break;} +case 142: +#line 1641 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpHigh); + yyval.interm.type.setVector(4); + ; + break;} +case 143: +#line 1645 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpMedium); + yyval.interm.type.setVector(2); + ; + break;} +case 144: +#line 1649 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpMedium); + yyval.interm.type.setVector(3); + ; + break;} +case 145: +#line 1653 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpMedium); + yyval.interm.type.setVector(4); + ; + break;} +case 146: +#line 1657 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpLow); + yyval.interm.type.setVector(2); + ; + break;} +case 147: +#line 1661 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpLow); + yyval.interm.type.setVector(3); + ; + break;} +case 148: +#line 1665 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpLow); + yyval.interm.type.setVector(4); + ; + break;} +case 149: +#line 1669 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtBool,EbpHigh); + yyval.interm.type.setVector(2); + ; + break;} +case 150: +#line 1673 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtBool,EbpHigh); + yyval.interm.type.setVector(3); + ; + break;} +case 151: +#line 1677 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtBool,EbpHigh); + yyval.interm.type.setVector(4); + ; + break;} +case 152: +#line 1681 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtInt,EbpHigh); + yyval.interm.type.setVector(2); + ; + break;} +case 153: +#line 1685 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtInt,EbpHigh); + yyval.interm.type.setVector(3); + ; + break;} +case 154: +#line 1689 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtInt,EbpHigh); + yyval.interm.type.setVector(4); + ; + break;} +case 155: +#line 1693 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpHigh); + yyval.interm.type.setMatrix(2, 2); + ; + break;} +case 156: +#line 1697 "hlslang.y" +{ + NONSQUARE_MATRIX_CHECK("float2x3", yyvsp[0].lex.line); + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpHigh); + yyval.interm.type.setMatrix(3, 2); + ; + break;} +case 157: +#line 1702 "hlslang.y" +{ + NONSQUARE_MATRIX_CHECK("float2x4", yyvsp[0].lex.line); + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpHigh); + yyval.interm.type.setMatrix(4, 2); + ; + break;} +case 158: +#line 1707 "hlslang.y" +{ + NONSQUARE_MATRIX_CHECK("float3x2", yyvsp[0].lex.line); + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpHigh); + yyval.interm.type.setMatrix(2, 3); + ; + break;} +case 159: +#line 1712 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpHigh); + yyval.interm.type.setMatrix(3, 3); + ; + break;} +case 160: +#line 1716 "hlslang.y" +{ + NONSQUARE_MATRIX_CHECK("float3x4", yyvsp[0].lex.line); + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpHigh); + yyval.interm.type.setMatrix(4, 3); + ; + break;} +case 161: +#line 1721 "hlslang.y" +{ + NONSQUARE_MATRIX_CHECK("float4x2", yyvsp[0].lex.line); + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpHigh); + yyval.interm.type.setMatrix(2, 4); + ; + break;} +case 162: +#line 1726 "hlslang.y" +{ + NONSQUARE_MATRIX_CHECK("float4x3", yyvsp[0].lex.line); + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpHigh); + yyval.interm.type.setMatrix(3, 4); + ; + break;} +case 163: +#line 1731 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpHigh); + yyval.interm.type.setMatrix(4, 4); + ; + break;} +case 164: +#line 1735 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpMedium); + yyval.interm.type.setMatrix(2, 2); + ; + break;} +case 165: +#line 1739 "hlslang.y" +{ + NONSQUARE_MATRIX_CHECK("half2x3", yyvsp[0].lex.line); + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpMedium); + yyval.interm.type.setMatrix(3, 2); + ; + break;} +case 166: +#line 1744 "hlslang.y" +{ + NONSQUARE_MATRIX_CHECK("half2x4", yyvsp[0].lex.line); + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpMedium); + yyval.interm.type.setMatrix(4, 2); + ; + break;} +case 167: +#line 1749 "hlslang.y" +{ + NONSQUARE_MATRIX_CHECK("half3x2", yyvsp[0].lex.line); + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpMedium); + yyval.interm.type.setMatrix(2, 3); + ; + break;} +case 168: +#line 1754 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpMedium); + yyval.interm.type.setMatrix(3, 3); + ; + break;} +case 169: +#line 1758 "hlslang.y" +{ + NONSQUARE_MATRIX_CHECK("half3x4", yyvsp[0].lex.line); + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpMedium); + yyval.interm.type.setMatrix(4, 3); + ; + break;} +case 170: +#line 1763 "hlslang.y" +{ + NONSQUARE_MATRIX_CHECK("half4x2", yyvsp[0].lex.line); + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpMedium); + yyval.interm.type.setMatrix(2, 4); + ; + break;} +case 171: +#line 1768 "hlslang.y" +{ + NONSQUARE_MATRIX_CHECK("half4x3", yyvsp[0].lex.line); + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpMedium); + yyval.interm.type.setMatrix(3, 4); + ; + break;} +case 172: +#line 1773 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpMedium); + yyval.interm.type.setMatrix(4, 4); + ; + break;} +case 173: +#line 1777 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpLow); + yyval.interm.type.setMatrix(2, 2); + ; + break;} +case 174: +#line 1781 "hlslang.y" +{ + NONSQUARE_MATRIX_CHECK("fixed2x3", yyvsp[0].lex.line); + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpLow); + yyval.interm.type.setMatrix(3, 2); + ; + break;} +case 175: +#line 1786 "hlslang.y" +{ + NONSQUARE_MATRIX_CHECK("fixed2x4", yyvsp[0].lex.line); + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpLow); + yyval.interm.type.setMatrix(4, 2); + ; + break;} +case 176: +#line 1791 "hlslang.y" +{ + NONSQUARE_MATRIX_CHECK("fixed3x2", yyvsp[0].lex.line); + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpLow); + yyval.interm.type.setMatrix(2, 3); + ; + break;} +case 177: +#line 1796 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpLow); + yyval.interm.type.setMatrix(3, 3); + ; + break;} +case 178: +#line 1800 "hlslang.y" +{ + NONSQUARE_MATRIX_CHECK("fixed3x4", yyvsp[0].lex.line); + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpLow); + yyval.interm.type.setMatrix(4, 3); + ; + break;} +case 179: +#line 1805 "hlslang.y" +{ + NONSQUARE_MATRIX_CHECK("fixed4x2", yyvsp[0].lex.line); + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpLow); + yyval.interm.type.setMatrix(2, 4); + ; + break;} +case 180: +#line 1810 "hlslang.y" +{ + NONSQUARE_MATRIX_CHECK("fixed4x3", yyvsp[0].lex.line); + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpLow); + yyval.interm.type.setMatrix(3, 4); + ; + break;} +case 181: +#line 1815 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtFloat,EbpLow); + yyval.interm.type.setMatrix(4, 4); + ; + break;} +case 182: +#line 1819 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtTexture,EbpUndefined); + ; + break;} +case 183: +#line 1822 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtSamplerGeneric,EbpUndefined); + ; + break;} +case 184: +#line 1825 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtSampler1D,EbpUndefined); + ; + break;} +case 185: +#line 1828 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtSampler2D,EbpUndefined); + ; + break;} +case 186: +#line 1831 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtSampler2D,EbpMedium); + ; + break;} +case 187: +#line 1834 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtSampler2D,EbpHigh); + ; + break;} +case 188: +#line 1837 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtSampler3D,EbpUndefined); + ; + break;} +case 189: +#line 1840 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtSamplerCube,EbpUndefined); + ; + break;} +case 190: +#line 1843 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtSamplerCube,EbpMedium); + ; + break;} +case 191: +#line 1846 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtSamplerCube,EbpHigh); + ; + break;} +case 192: +#line 1849 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtSamplerRect,EbpUndefined); + ; + break;} +case 193: +#line 1852 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtSamplerRectShadow,EbpLow); // ES3 doesn't have default precision for shadow samplers, so always emit lowp + ; + break;} +case 194: +#line 1855 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtSampler1DShadow,EbpLow); // ES3 doesn't have default precision for shadow samplers, so always emit lowp + ; + break;} +case 195: +#line 1858 "hlslang.y" +{ + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtSampler2DShadow,EbpLow); // ES3 doesn't have default precision for shadow samplers, so always emit lowp + ; + break;} +case 196: +#line 1861 "hlslang.y" +{ + yyval.interm.type = yyvsp[0].interm.type; + yyval.interm.type.qualifier = parseContext.getDefaultQualifier(); + ; + break;} +case 197: +#line 1865 "hlslang.y" +{ + // + // This is for user defined type names. The lexical phase looked up the + // type. + // + TType& structure = static_cast(yyvsp[0].lex.symbol)->getType(); + SET_BASIC_TYPE(yyval.interm.type,yyvsp[0].lex,EbtStruct,EbpUndefined); + yyval.interm.type.userDef = &structure; + ; + break;} +case 198: +#line 1877 "hlslang.y" +{ + TType* structure = new TType(yyvsp[-1].interm.typeList, *yyvsp[-3].lex.string, EbpUndefined, yyvsp[-3].lex.line); + TVariable* userTypeDef = new TVariable(yyvsp[-3].lex.string, *structure, true); + if (! parseContext.symbolTable.insert(*userTypeDef)) { + parseContext.error(yyvsp[-3].lex.line, "redefinition", yyvsp[-3].lex.string->c_str(), "struct"); + parseContext.recover(); + } + yyval.interm.type.setBasic(EbtStruct, EvqTemporary, yyvsp[-4].lex.line); + yyval.interm.type.userDef = structure; + ; + break;} +case 199: +#line 1887 "hlslang.y" +{ + TType* structure = new TType(yyvsp[-1].interm.typeList, TString(""), EbpUndefined, yyvsp[-3].lex.line); + yyval.interm.type.setBasic(EbtStruct, EvqTemporary, yyvsp[-3].lex.line); + yyval.interm.type.userDef = structure; + ; + break;} +case 200: +#line 1895 "hlslang.y" +{ + yyval.interm.typeList = yyvsp[0].interm.typeList; + ; + break;} +case 201: +#line 1898 "hlslang.y" +{ + yyval.interm.typeList = yyvsp[-1].interm.typeList; + for (unsigned int i = 0; i < yyvsp[0].interm.typeList->size(); ++i) { + for (unsigned int j = 0; j < yyval.interm.typeList->size(); ++j) { + if ((*yyval.interm.typeList)[j].type->getFieldName() == (*yyvsp[0].interm.typeList)[i].type->getFieldName()) { + parseContext.error((*yyvsp[0].interm.typeList)[i].line, "duplicate field name in structure:", "struct", (*yyvsp[0].interm.typeList)[i].type->getFieldName().c_str()); + parseContext.recover(); + } + } + yyval.interm.typeList->push_back((*yyvsp[0].interm.typeList)[i]); + } + ; + break;} +case 202: +#line 1913 "hlslang.y" +{ + yyval.interm.typeList = yyvsp[-1].interm.typeList; + + if (parseContext.voidErrorCheck(yyvsp[-2].interm.type.line, (*yyvsp[-1].interm.typeList)[0].type->getFieldName(), yyvsp[-2].interm.type)) { + parseContext.recover(); + } + for (unsigned int i = 0; i < yyval.interm.typeList->size(); ++i) { + // + // Careful not to replace already know aspects of type, like array-ness + // + TType* type = (*yyval.interm.typeList)[i].type; + type->setBasicType(yyvsp[-2].interm.type.type); + type->setPrecision(yyvsp[-2].interm.type.precision); + type->setColsCount(yyvsp[-2].interm.type.matcols); + type->setRowsCount(yyvsp[-2].interm.type.matrows); + type->setMatrix(yyvsp[-2].interm.type.matrix); + + // don't allow arrays of arrays + if (type->isArray()) { + if (parseContext.arrayTypeErrorCheck(yyvsp[-2].interm.type.line, yyvsp[-2].interm.type)) + parseContext.recover(); + } + if (yyvsp[-2].interm.type.array) + type->setArraySize(yyvsp[-2].interm.type.arraySize); + if (yyvsp[-2].interm.type.userDef) { + type->setStruct(yyvsp[-2].interm.type.userDef->getStruct()); + type->setTypeName(yyvsp[-2].interm.type.userDef->getTypeName()); + } + } + ; + break;} +case 203: +#line 1946 "hlslang.y" +{ + yyval.interm.typeList = NewPoolTTypeList(); + yyval.interm.typeList->push_back(yyvsp[0].interm.typeLine); + ; + break;} +case 204: +#line 1950 "hlslang.y" +{ + yyval.interm.typeList->push_back(yyvsp[0].interm.typeLine); + ; + break;} +case 205: +#line 1956 "hlslang.y" +{ + yyval.interm.typeLine.type = new TType(EbtVoid, EbpUndefined); + yyval.interm.typeLine.line = yyvsp[0].lex.line; + yyval.interm.typeLine.type->setFieldName(*yyvsp[0].lex.string); + ; + break;} +case 206: +#line 1961 "hlslang.y" +{ + yyval.interm.typeLine.type = new TType(EbtVoid, EbpUndefined); + yyval.interm.typeLine.line = yyvsp[-2].lex.line; + yyval.interm.typeLine.type->setFieldName(*yyvsp[-2].lex.string); + yyval.interm.typeLine.type->setSemantic(*yyvsp[0].lex.string); + ; + break;} +case 207: +#line 1967 "hlslang.y" +{ + yyval.interm.typeLine.type = new TType(EbtVoid, EbpUndefined); + yyval.interm.typeLine.line = yyvsp[-3].lex.line; + yyval.interm.typeLine.type->setFieldName(*yyvsp[-3].lex.string); + + int size; + if (parseContext.arraySizeErrorCheck(yyvsp[-2].lex.line, yyvsp[-1].interm.intermTypedNode, size)) + parseContext.recover(); + yyval.interm.typeLine.type->setArraySize(size); + ; + break;} +case 208: +#line 1977 "hlslang.y" +{ + yyval.interm.typeLine.type = new TType(EbtVoid, EbpUndefined); + yyval.interm.typeLine.line = yyvsp[-5].lex.line; + yyval.interm.typeLine.type->setFieldName(*yyvsp[-5].lex.string); + + int size; + if (parseContext.arraySizeErrorCheck(yyvsp[-4].lex.line, yyvsp[-3].interm.intermTypedNode, size)) + parseContext.recover(); + yyval.interm.typeLine.type->setArraySize(size); + yyval.interm.typeLine.type->setSemantic(*yyvsp[0].lex.string); + ; + break;} +case 209: +#line 1993 "hlslang.y" +{ yyval.interm.intermTypedNode = yyvsp[0].interm.intermTypedNode; ; + break;} +case 210: +#line 1994 "hlslang.y" +{ yyval.interm.intermTypedNode = yyvsp[0].interm.intermTypedNode; ; + break;} +case 211: +#line 1995 "hlslang.y" +{ yyval.interm.intermTypedNode = yyvsp[0].interm.intermTypedNode; ; + break;} +case 212: +#line 1999 "hlslang.y" +{ yyval.interm.intermNode = yyvsp[0].interm.intermDeclaration; ; + break;} +case 213: +#line 2003 "hlslang.y" +{ yyval.interm.intermNode = yyvsp[0].interm.intermAggregate; ; + break;} +case 214: +#line 2004 "hlslang.y" +{ yyval.interm.intermNode = yyvsp[0].interm.intermNode; ; + break;} +case 215: +#line 2010 "hlslang.y" +{ yyval.interm.intermNode = yyvsp[0].interm.intermNode; ; + break;} +case 216: +#line 2011 "hlslang.y" +{ yyval.interm.intermNode = yyvsp[0].interm.intermNode; ; + break;} +case 217: +#line 2012 "hlslang.y" +{ yyval.interm.intermNode = yyvsp[0].interm.intermNode; ; + break;} +case 218: +#line 2013 "hlslang.y" +{ yyval.interm.intermNode = yyvsp[0].interm.intermNode; ; + break;} +case 219: +#line 2014 "hlslang.y" +{ yyval.interm.intermNode = yyvsp[0].interm.intermNode; ; + break;} +case 220: +#line 2018 "hlslang.y" +{ yyval.interm.intermAggregate = 0; ; + break;} +case 221: +#line 2019 "hlslang.y" +{ parseContext.symbolTable.push(); ; + break;} +case 222: +#line 2019 "hlslang.y" +{ parseContext.symbolTable.pop(); ; + break;} +case 223: +#line 2019 "hlslang.y" +{ + if (yyvsp[-2].interm.intermAggregate != 0) + yyvsp[-2].interm.intermAggregate->setOperator(EOpSequence); + yyval.interm.intermAggregate = yyvsp[-2].interm.intermAggregate; + ; + break;} +case 224: +#line 2027 "hlslang.y" +{ yyval.interm.intermNode = yyvsp[0].interm.intermNode; ; + break;} +case 225: +#line 2028 "hlslang.y" +{ yyval.interm.intermNode = yyvsp[0].interm.intermNode; ; + break;} +case 226: +#line 2033 "hlslang.y" +{ + yyval.interm.intermNode = 0; + ; + break;} +case 227: +#line 2036 "hlslang.y" +{ + if (yyvsp[-1].interm.intermAggregate) + yyvsp[-1].interm.intermAggregate->setOperator(EOpSequence); + yyval.interm.intermNode = yyvsp[-1].interm.intermAggregate; + ; + break;} +case 228: +#line 2044 "hlslang.y" +{ + yyval.interm.intermAggregate = ir_make_aggregate(yyvsp[0].interm.intermNode, gNullSourceLoc); + ; + break;} +case 229: +#line 2047 "hlslang.y" +{ + yyval.interm.intermAggregate = ir_grow_aggregate(yyvsp[-1].interm.intermAggregate, yyvsp[0].interm.intermNode, gNullSourceLoc); + ; + break;} +case 230: +#line 2053 "hlslang.y" +{ yyval.interm.intermNode = 0; ; + break;} +case 231: +#line 2054 "hlslang.y" +{ yyval.interm.intermNode = static_cast(yyvsp[-1].interm.intermTypedNode); ; + break;} +case 232: +#line 2058 "hlslang.y" +{ + if (parseContext.boolErrorCheck(yyvsp[-4].lex.line, yyvsp[-2].interm.intermTypedNode)) + parseContext.recover(); + yyval.interm.intermNode = ir_add_selection(yyvsp[-2].interm.intermTypedNode, yyvsp[0].interm.nodePair, yyvsp[-4].lex.line, parseContext.infoSink); + ; + break;} +case 233: +#line 2066 "hlslang.y" +{ + yyval.interm.nodePair.node1 = yyvsp[-2].interm.intermNode; + yyval.interm.nodePair.node2 = yyvsp[0].interm.intermNode; + ; + break;} +case 234: +#line 2070 "hlslang.y" +{ + yyval.interm.nodePair.node1 = yyvsp[0].interm.intermNode; + yyval.interm.nodePair.node2 = 0; + ; + break;} +case 235: +#line 2080 "hlslang.y" +{ + yyval.interm.intermTypedNode = yyvsp[0].interm.intermTypedNode; + if (parseContext.boolErrorCheck(yyvsp[0].interm.intermTypedNode->getLine(), yyvsp[0].interm.intermTypedNode)) + parseContext.recover(); + ; + break;} +case 236: +#line 2085 "hlslang.y" +{ + TIntermSymbol* symbol; + if (parseContext.structQualifierErrorCheck(yyvsp[-2].lex.line, yyvsp[-3].interm.type)) + parseContext.recover(); + if (parseContext.boolErrorCheck(yyvsp[-2].lex.line, yyvsp[-3].interm.type)) + parseContext.recover(); + + if (!parseContext.executeInitializer(yyvsp[-2].lex.line, *yyvsp[-2].lex.string, yyvsp[-3].interm.type, yyvsp[0].interm.intermTypedNode, symbol)) { + yyval.interm.intermTypedNode = ir_add_declaration(symbol, yyvsp[0].interm.intermTypedNode, yyvsp[-2].lex.line, parseContext); + } else { + parseContext.recover(); + yyval.interm.intermTypedNode = 0; + } + ; + break;} +case 237: +#line 2102 "hlslang.y" +{ parseContext.symbolTable.push(); ++parseContext.loopNestingLevel; ; + break;} +case 238: +#line 2102 "hlslang.y" +{ + parseContext.symbolTable.pop(); + yyval.interm.intermNode = ir_add_loop(ELoopWhile, yyvsp[-2].interm.intermTypedNode, 0, yyvsp[0].interm.intermNode, yyvsp[-5].lex.line); + --parseContext.loopNestingLevel; + ; + break;} +case 239: +#line 2107 "hlslang.y" +{ ++parseContext.loopNestingLevel; ; + break;} +case 240: +#line 2107 "hlslang.y" +{ + if (parseContext.boolErrorCheck(yyvsp[0].lex.line, yyvsp[-2].interm.intermTypedNode)) + parseContext.recover(); + + yyval.interm.intermNode = ir_add_loop(ELoopDoWhile, yyvsp[-2].interm.intermTypedNode, 0, yyvsp[-5].interm.intermNode, yyvsp[-4].lex.line); + --parseContext.loopNestingLevel; + ; + break;} +case 241: +#line 2114 "hlslang.y" +{ parseContext.symbolTable.push(); ++parseContext.loopNestingLevel; ; + break;} +case 242: +#line 2114 "hlslang.y" +{ + parseContext.symbolTable.pop(); + yyval.interm.intermNode = ir_make_aggregate(yyvsp[-3].interm.intermNode, yyvsp[-5].lex.line); + yyval.interm.intermNode = ir_grow_aggregate( + yyval.interm.intermNode, + ir_add_loop(ELoopFor, reinterpret_cast(yyvsp[-2].interm.nodePair.node1), reinterpret_cast(yyvsp[-2].interm.nodePair.node2), yyvsp[0].interm.intermNode, yyvsp[-6].lex.line), + yyvsp[-6].lex.line); + yyval.interm.intermNode->getAsAggregate()->setOperator(EOpSequence); + --parseContext.loopNestingLevel; + ; + break;} +case 243: +#line 2127 "hlslang.y" +{ + yyval.interm.intermNode = yyvsp[0].interm.intermNode; + ; + break;} +case 244: +#line 2130 "hlslang.y" +{ + yyval.interm.intermNode = yyvsp[0].interm.intermNode; + ; + break;} +case 245: +#line 2136 "hlslang.y" +{ + yyval.interm.intermTypedNode = yyvsp[0].interm.intermTypedNode; + ; + break;} +case 246: +#line 2139 "hlslang.y" +{ + yyval.interm.intermTypedNode = 0; + ; + break;} +case 247: +#line 2145 "hlslang.y" +{ + yyval.interm.nodePair.node1 = yyvsp[-1].interm.intermTypedNode; + yyval.interm.nodePair.node2 = 0; + ; + break;} +case 248: +#line 2149 "hlslang.y" +{ + yyval.interm.nodePair.node1 = yyvsp[-2].interm.intermTypedNode; + yyval.interm.nodePair.node2 = yyvsp[0].interm.intermTypedNode; + ; + break;} +case 249: +#line 2156 "hlslang.y" +{ + if (parseContext.loopNestingLevel <= 0) { + parseContext.error(yyvsp[-1].lex.line, "continue statement only allowed in loops", "", ""); + parseContext.recover(); + } + yyval.interm.intermNode = ir_add_branch(EOpContinue, yyvsp[-1].lex.line); + ; + break;} +case 250: +#line 2163 "hlslang.y" +{ + if (parseContext.loopNestingLevel <= 0) { + parseContext.error(yyvsp[-1].lex.line, "break statement only allowed in loops", "", ""); + parseContext.recover(); + } + yyval.interm.intermNode = ir_add_branch(EOpBreak, yyvsp[-1].lex.line); + ; + break;} +case 251: +#line 2170 "hlslang.y" +{ + yyval.interm.intermNode = ir_add_branch(EOpReturn, yyvsp[-1].lex.line); + if (parseContext.currentFunctionType->getBasicType() != EbtVoid) { + parseContext.error(yyvsp[-1].lex.line, "non-void function must return a value", "return", ""); + parseContext.recover(); + } + ; + break;} +case 252: +#line 2177 "hlslang.y" +{ + TIntermTyped *temp = yyvsp[-1].interm.intermTypedNode; + if (parseContext.currentFunctionType->getBasicType() == EbtVoid) { + parseContext.error(yyvsp[-2].lex.line, "void function cannot return a value", "return", ""); + parseContext.recover(); + } else if (*(parseContext.currentFunctionType) != yyvsp[-1].interm.intermTypedNode->getType()) { + TOperator op = parseContext.getConstructorOp(*(parseContext.currentFunctionType)); + if (op != EOpNull) + temp = parseContext.constructBuiltIn((parseContext.currentFunctionType), op, yyvsp[-1].interm.intermTypedNode, yyvsp[-2].lex.line, false); + else + temp = 0; + if (temp == 0) { + parseContext.error(yyvsp[-2].lex.line, "function return is not matching type:", "return", ""); + parseContext.recover(); + temp = yyvsp[-1].interm.intermTypedNode; + } + } + yyval.interm.intermNode = ir_add_branch(EOpReturn, temp, yyvsp[-2].lex.line); + parseContext.functionReturnsValue = true; + ; + break;} +case 253: +#line 2197 "hlslang.y" +{ + // Jim: using discard when compiling vertex shaders should not be considered a syntactic error, instead, + // we should issue a semantic error only if the code path is actually executed. (Not yet implemented) + //FRAG_ONLY("discard", $1.line); + yyval.interm.intermNode = ir_add_branch(EOpKill, yyvsp[-1].lex.line); + ; + break;} +case 254: +#line 2208 "hlslang.y" +{ + yyval.interm.intermNode = yyvsp[0].interm.intermNode; + parseContext.treeRoot = yyval.interm.intermNode; + ; + break;} +case 255: +#line 2212 "hlslang.y" +{ + yyval.interm.intermNode = ir_grow_aggregate(yyvsp[-1].interm.intermNode, yyvsp[0].interm.intermNode, gNullSourceLoc); + parseContext.treeRoot = yyval.interm.intermNode; + ; + break;} +case 256: +#line 2219 "hlslang.y" +{ + yyval.interm.intermNode = yyvsp[0].interm.intermNode; + ; + break;} +case 257: +#line 2222 "hlslang.y" +{ + yyval.interm.intermNode = yyvsp[0].interm.intermDeclaration; + ; + break;} +case 258: +#line 2225 "hlslang.y" +{ yyval.interm.intermNode = 0; ; + break;} +case 259: +#line 2229 "hlslang.y" +{ + TFunction& function = *(yyvsp[0].interm.function); + TFunction* prevDec = static_cast(parseContext.symbolTable.find(function.getMangledName())); + // + // Note: 'prevDec' could be 'function' if this is the first time we've seen function + // as it would have just been put in the symbol table. Otherwise, we're looking up + // an earlier occurance. + // + if (prevDec->isDefined()) { + // + // Then this function already has a body. + // + parseContext.error(yyvsp[0].interm.line, "function already has a body", function.getName().c_str(), ""); + parseContext.recover(); + } + prevDec->setDefined(); + + // + // New symbol table scope for body of function plus its arguments + // + parseContext.symbolTable.push(); + + // + // Remember the return type for later checking for RETURN statements. + // + parseContext.currentFunctionType = &(prevDec->getReturnType()); + parseContext.functionReturnsValue = false; + + // + // Insert parameters into the symbol table. + // If the parameter has no name, it's not an error, just don't insert it + // (could be used for unused args). + // + // Also, accumulate the list of parameters into the HIL, so lower level code + // knows where to find parameters. + // + TIntermAggregate* paramNodes = new TIntermAggregate; + for (int i = 0; i < function.getParamCount(); i++) { + TParameter& param = function[i]; + if (param.name != 0) { + TVariable *variable = new TVariable(param.name, param.info, *param.type); + // + // Insert the parameters with name in the symbol table. + // + if (! parseContext.symbolTable.insert(*variable)) { + parseContext.error(yyvsp[0].interm.line, "redefinition", variable->getName().c_str(), ""); + parseContext.recover(); + delete variable; + } + // + // Transfer ownership of name pointer to symbol table. + // + param.name = 0; + + // + // Add the parameter to the HIL + // + paramNodes = ir_grow_aggregate( + paramNodes, + ir_add_symbol(variable, yyvsp[0].interm.line), + yyvsp[0].interm.line); + } else { + paramNodes = ir_grow_aggregate(paramNodes, ir_add_symbol_internal(0, "", param.info, *param.type, yyvsp[0].interm.line), yyvsp[0].interm.line); + } + } + ir_set_aggregate_op(paramNodes, EOpParameters, yyvsp[0].interm.line); + yyvsp[0].interm.intermAggregate = paramNodes; + parseContext.loopNestingLevel = 0; + ; + break;} +case 260: +#line 2298 "hlslang.y" +{ + //?? Check that all paths return a value if return type != void ? + // May be best done as post process phase on intermediate code + if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue) { + parseContext.error(yyvsp[-2].interm.line, "function does not return a value:", "", yyvsp[-2].interm.function->getName().c_str()); + parseContext.recover(); + } + parseContext.symbolTable.pop(); + yyval.interm.intermNode = ir_grow_aggregate(yyvsp[-2].interm.intermAggregate, yyvsp[0].interm.intermNode, gNullSourceLoc); + ir_set_aggregate_op(yyval.interm.intermNode, EOpFunction, yyvsp[-2].interm.line); + yyval.interm.intermNode->getAsAggregate()->setName(yyvsp[-2].interm.function->getMangledName().c_str()); + yyval.interm.intermNode->getAsAggregate()->setPlainName(yyvsp[-2].interm.function->getName().c_str()); + yyval.interm.intermNode->getAsAggregate()->setType(yyvsp[-2].interm.function->getReturnType()); + + if ( yyvsp[-2].interm.function->getInfo()) + yyval.interm.intermNode->getAsAggregate()->setSemantic(yyvsp[-2].interm.function->getInfo()->getSemantic()); + ; + break;} +case 261: +#line 2318 "hlslang.y" +{ + yyval.interm.intermTypedNode = yyvsp[-1].interm.intermAggregate; + ; + break;} +case 262: +#line 2321 "hlslang.y" +{ + yyval.interm.intermTypedNode = yyvsp[-2].interm.intermAggregate; + ; + break;} +case 263: +#line 2328 "hlslang.y" +{ + //create a new aggNode + yyval.interm.intermAggregate = ir_make_aggregate( yyvsp[0].interm.intermTypedNode, yyvsp[0].interm.intermTypedNode->getLine()); + ; + break;} +case 264: +#line 2332 "hlslang.y" +{ + //take the inherited aggNode and return it + yyval.interm.intermAggregate = yyvsp[0].interm.intermTypedNode->getAsAggregate(); + ; + break;} +case 265: +#line 2336 "hlslang.y" +{ + // append to the aggNode + yyval.interm.intermAggregate = ir_grow_aggregate( yyvsp[-2].interm.intermAggregate, yyvsp[0].interm.intermTypedNode, yyvsp[0].interm.intermTypedNode->getLine()); + ; + break;} +case 266: +#line 2340 "hlslang.y" +{ + // append all children or $3 to $1 + yyval.interm.intermAggregate = parseContext.mergeAggregates( yyvsp[-2].interm.intermAggregate, yyvsp[0].interm.intermTypedNode->getAsAggregate()); + ; + break;} +case 267: +#line 2347 "hlslang.y" +{ + //empty annotation + yyval.interm.ann = 0; + ; + break;} +case 268: +#line 2351 "hlslang.y" +{ + yyval.interm.ann = yyvsp[-1].interm.ann; + ; + break;} +case 269: +#line 2357 "hlslang.y" +{ + yyval.interm.ann = new TAnnotation; + yyval.interm.ann->addKey( *yyvsp[0].lex.string); + ; + break;} +case 270: +#line 2361 "hlslang.y" +{ + yyvsp[-1].interm.ann->addKey( *yyvsp[0].lex.string); + yyval.interm.ann = yyvsp[-1].interm.ann; + ; + break;} +case 271: +#line 2368 "hlslang.y" +{ + yyval.lex.string = yyvsp[-3].lex.string; + ; + break;} +case 272: +#line 2374 "hlslang.y" +{; + break;} +case 273: +#line 2375 "hlslang.y" +{; + break;} +case 274: +#line 2376 "hlslang.y" +{; + break;} +case 275: +#line 2377 "hlslang.y" +{; + break;} +case 276: +#line 2378 "hlslang.y" +{; + break;} +case 277: +#line 2379 "hlslang.y" +{; + break;} +case 278: +#line 2380 "hlslang.y" +{; + break;} +case 279: +#line 2381 "hlslang.y" +{; + break;} +case 280: +#line 2382 "hlslang.y" +{; + break;} +case 281: +#line 2383 "hlslang.y" +{; + break;} +case 282: +#line 2384 "hlslang.y" +{; + break;} +case 283: +#line 2385 "hlslang.y" +{; + break;} +case 284: +#line 2386 "hlslang.y" +{; + break;} +case 285: +#line 2387 "hlslang.y" +{; + break;} +case 286: +#line 2388 "hlslang.y" +{; + break;} +case 287: +#line 2389 "hlslang.y" +{; + break;} +case 288: +#line 2390 "hlslang.y" +{; + break;} +case 289: +#line 2391 "hlslang.y" +{; + break;} +case 290: +#line 2392 "hlslang.y" +{; + break;} +case 291: +#line 2393 "hlslang.y" +{; + break;} +case 292: +#line 2394 "hlslang.y" +{; + break;} +case 293: +#line 2398 "hlslang.y" +{; + break;} +case 294: +#line 2399 "hlslang.y" +{; + break;} +case 295: +#line 2400 "hlslang.y" +{; + break;} +case 296: +#line 2401 "hlslang.y" +{; + break;} +case 297: +#line 2405 "hlslang.y" +{ + yyval.lex.f = (float)yyvsp[0].lex.i; + ; + break;} +case 298: +#line 2408 "hlslang.y" +{ + yyval.lex.f = (yyvsp[0].lex.b) ? 1.0f : 0.0f; + ; + break;} +case 299: +#line 2411 "hlslang.y" +{ + yyval.lex.f = yyvsp[0].lex.f; + ; + break;} +case 300: +#line 2417 "hlslang.y" +{; + break;} +case 301: +#line 2421 "hlslang.y" +{; + break;} +case 302: +#line 2422 "hlslang.y" +{; + break;} +case 303: +#line 2426 "hlslang.y" +{; + break;} +case 304: +#line 2430 "hlslang.y" +{ + // This is being thrown away + ; + break;} +case 305: +#line 2436 "hlslang.y" +{ yyval.lex.string = yyvsp[0].lex.string;; + break;} +case 306: +#line 2440 "hlslang.y" +{ yyval.interm.typeInfo = 0;; + break;} +case 307: +#line 2441 "hlslang.y" +{ yyval.interm.typeInfo = new TTypeInfo( *yyvsp[0].lex.string, 0); ; + break;} +case 308: +#line 2442 "hlslang.y" +{ yyval.interm.typeInfo = 0; ; + break;} +case 309: +#line 2443 "hlslang.y" +{ yyval.interm.typeInfo = new TTypeInfo( "", yyvsp[0].interm.ann); ; + break;} +case 310: +#line 2444 "hlslang.y" +{ yyval.interm.typeInfo = new TTypeInfo( *yyvsp[-1].lex.string, yyvsp[0].interm.ann); ; + break;} +case 311: +#line 2445 "hlslang.y" +{ yyval.interm.typeInfo = new TTypeInfo( *yyvsp[-1].lex.string, 0); ; + break;} +case 312: +#line 2446 "hlslang.y" +{ yyval.interm.typeInfo = new TTypeInfo( "", yyvsp[0].interm.ann); ; + break;} +case 313: +#line 2447 "hlslang.y" +{ yyval.interm.typeInfo = new TTypeInfo( *yyvsp[-2].lex.string, yyvsp[0].interm.ann); ; + break;} +case 314: +#line 2451 "hlslang.y" +{ + TIntermConstant* constant = ir_add_constant(TType(EbtFloat, EbpUndefined, EvqConst, 1), yyvsp[-3].lex.line); + constant->setValue(0.f); + yyval.interm.intermTypedNode = constant; + ; + break;} +case 315: +#line 2456 "hlslang.y" +{ + ; + break;} +case 316: +#line 2461 "hlslang.y" +{ ; + break;} +case 317: +#line 2462 "hlslang.y" +{ ; + break;} +case 318: +#line 2466 "hlslang.y" +{; + break;} +case 319: +#line 2467 "hlslang.y" +{; + break;} +case 320: +#line 2468 "hlslang.y" +{; + break;} +case 321: +#line 2469 "hlslang.y" +{; + break;} +case 322: +#line 2470 "hlslang.y" +{; + break;} +case 323: +#line 2471 "hlslang.y" +{; + break;} +} + /* the action file gets copied in in place of this dollarsign */ + yyvsp -= yylen; + yyssp -= yylen; +#ifdef YYLSP_NEEDED + yylsp -= yylen; +#endif + +#if YYDEBUG != 0 + if (yydebug) + { + short *ssp1 = yyss - 1; + fprintf (stderr, "state stack now"); + while (ssp1 != yyssp) + fprintf (stderr, " %d", *++ssp1); + fprintf (stderr, "\n"); + } +#endif + + *++yyvsp = yyval; + +#ifdef YYLSP_NEEDED + yylsp++; + if (yylen == 0) + { + yylsp->first_line = yylloc.first_line; + yylsp->first_column = yylloc.first_column; + yylsp->last_line = (yylsp-1)->last_line; + yylsp->last_column = (yylsp-1)->last_column; + yylsp->text = 0; + } + else + { + yylsp->last_line = (yylsp+yylen-1)->last_line; + yylsp->last_column = (yylsp+yylen-1)->last_column; + } +#endif + + /* Now "shift" the result of the reduction. + Determine what state that goes to, + based on the state we popped back to + and the rule number reduced by. */ + + yyn = yyr1[yyn]; + + yystate = yypgoto[yyn - YYNTBASE] + *yyssp; + if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yytable[yystate]; + else + yystate = yydefgoto[yyn - YYNTBASE]; + + goto yynewstate; + +yyerrlab: /* here on detecting error */ + + if (! yyerrstatus) + /* If not already recovering from an error, report this error. */ + { + ++yynerrs; + +#ifdef YYERROR_VERBOSE + yyn = yypact[yystate]; + + if (yyn > YYFLAG && yyn < YYLAST) + { + int size = 0; + char *msg; + int x, count; + + count = 0; + /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ + for (x = (yyn < 0 ? -yyn : 0); + x < (sizeof(yytname) / sizeof(char *)); x++) + if (yycheck[x + yyn] == x) + size += strlen(yytname[x]) + 15, count++; + msg = (char *) malloc(size + 15); + if (msg != 0) + { + strcpy(msg, "parse error"); + + if (count < 5) + { + count = 0; + for (x = (yyn < 0 ? -yyn : 0); + x < (sizeof(yytname) / sizeof(char *)); x++) + if (yycheck[x + yyn] == x) + { + strcat(msg, count == 0 ? ", expecting `" : " or `"); + strcat(msg, yytname[x]); + strcat(msg, "'"); + count++; + } + } + yyerror(msg); + free(msg); + } + else + yyerror ("parse error; also virtual memory exceeded"); + } + else +#endif /* YYERROR_VERBOSE */ + yyerror("parse error"); + } + + goto yyerrlab1; +yyerrlab1: /* here on error raised explicitly by an action */ + + if (yyerrstatus == 3) + { + /* if just tried and failed to reuse lookahead token after an error, discard it. */ + + /* return failure if at end of input */ + if (yychar == YYEOF) + YYABORT; + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); +#endif + + yychar = YYEMPTY; + } + + /* Else will try to reuse lookahead token + after shifting the error token. */ + + yyerrstatus = 3; /* Each real token shifted decrements this */ + + goto yyerrhandle; + +yyerrdefault: /* current state does not do anything special for the error token. */ + +#if 0 + /* This is wrong; only states that explicitly want error tokens + should shift them. */ + yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ + if (yyn) goto yydefault; +#endif + +yyerrpop: /* pop the current state because it cannot handle the error token */ + + if (yyssp == yyss) YYABORT; + yyvsp--; + yystate = *--yyssp; +#ifdef YYLSP_NEEDED + yylsp--; +#endif + +#if YYDEBUG != 0 + if (yydebug) + { + short *ssp1 = yyss - 1; + fprintf (stderr, "Error: state stack now"); + while (ssp1 != yyssp) + fprintf (stderr, " %d", *++ssp1); + fprintf (stderr, "\n"); + } +#endif + +yyerrhandle: + + yyn = yypact[yystate]; + if (yyn == YYFLAG) + goto yyerrdefault; + + yyn += YYTERROR; + if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) + goto yyerrdefault; + + yyn = yytable[yyn]; + if (yyn < 0) + { + if (yyn == YYFLAG) + goto yyerrpop; + yyn = -yyn; + goto yyreduce; + } + else if (yyn == 0) + goto yyerrpop; + + if (yyn == YYFINAL) + YYACCEPT; + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Shifting error token, "); +#endif + + *++yyvsp = yylval; +#ifdef YYLSP_NEEDED + *++yylsp = yylloc; +#endif + + yystate = yyn; + goto yynewstate; +} +#line 2474 "hlslang.y" + diff --git a/hlslang/MachineIndependent/gen_hlslang.cpp b/hlslang/MachineIndependent/gen_hlslang.cpp new file mode 100755 index 0000000..9572e16 --- /dev/null +++ b/hlslang/MachineIndependent/gen_hlslang.cpp @@ -0,0 +1,2995 @@ +#line 2 "Gen_hlslang.cpp" +/* A lexical scanner generated by flex */ + +/* Scanner skeleton version: + * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.85 95/04/24 10:48:47 vern Exp $ + */ + +#define FLEX_SCANNER +#define YY_FLEX_MAJOR_VERSION 2 +#define YY_FLEX_MINOR_VERSION 5 + +#include + + +/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */ +#ifdef c_plusplus +#ifndef __cplusplus +#define __cplusplus +#endif +#endif + + +#ifdef __cplusplus + +#include +#include + +/* Use prototypes in function declarations. */ +#define YY_USE_PROTOS + +/* The "const" storage-class-modifier is valid. */ +#define YY_USE_CONST + +#else /* ! __cplusplus */ + +#if __STDC__ + +#define YY_USE_PROTOS +#define YY_USE_CONST + +#endif /* __STDC__ */ +#endif /* ! __cplusplus */ + +#ifdef __TURBOC__ + #pragma warn -rch + #pragma warn -use +#include +#include +#define YY_USE_CONST +#define YY_USE_PROTOS +#endif + +#ifdef YY_USE_CONST +#define yyconst const +#else +#define yyconst +#endif + + +#ifdef YY_USE_PROTOS +#define YY_PROTO(proto) proto +#else +#define YY_PROTO(proto) () +#endif + +/* Returned upon end-of-file. */ +#define YY_NULL 0 + +/* Promotes a possibly negative, possibly signed char to an unsigned + * integer for use as an array index. If the signed char is negative, + * we want to instead treat it as an 8-bit unsigned char, hence the + * double cast. + */ +#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) + +/* Enter a start condition. This macro really ought to take a parameter, + * but we do it the disgusting crufty way forced on us by the ()-less + * definition of BEGIN. + */ +#define BEGIN yy_start = 1 + 2 * + +/* Translate the current start state into a value that can be later handed + * to BEGIN to return to the state. The YYSTATE alias is for lex + * compatibility. + */ +#define YY_START ((yy_start - 1) / 2) +#define YYSTATE YY_START + +/* Action number for EOF rule of a given start state. */ +#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) + +/* Special action meaning "start processing a new file". */ +#define YY_NEW_FILE yyrestart( yyin ) + +#define YY_END_OF_BUFFER_CHAR 0 + +/* Size of default input buffer. */ +#define YY_BUF_SIZE 16384 + +typedef struct yy_buffer_state *YY_BUFFER_STATE; + +extern int yyleng; +extern FILE *yyin, *yyout; + +#define EOB_ACT_CONTINUE_SCAN 0 +#define EOB_ACT_END_OF_FILE 1 +#define EOB_ACT_LAST_MATCH 2 + +/* The funky do-while in the following #define is used to turn the definition + * int a single C statement (which needs a semi-colon terminator). This + * avoids problems with code like: + * + * if ( condition_holds ) + * yyless( 5 ); + * else + * do_something_else(); + * + * Prior to using the do-while the compiler would get upset at the + * "else" because it interpreted the "if" statement as being all + * done when it reached the ';' after the yyless() call. + */ + +/* Return all but the first 'n' matched characters back to the input stream. */ + +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + *yy_cp = yy_hold_char; \ + yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \ + YY_DO_BEFORE_ACTION; /* set up yytext again */ \ + } \ + while ( 0 ) + +#define unput(c) yyunput( c, yytext_ptr ) + +/* The following is because we cannot portably get our hands on size_t + * (without autoconf's help, which isn't available because we want + * flex-generated scanners to compile on their own). + */ +typedef unsigned int yy_size_t; + + +struct yy_buffer_state + { + FILE *yy_input_file; + + char *yy_ch_buf; /* input buffer */ + char *yy_buf_pos; /* current position in input buffer */ + + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + yy_size_t yy_buf_size; + + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ + int yy_n_chars; + + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to + * delete it. + */ + int yy_is_our_buffer; + + /* Whether this is an "interactive" input source; if so, and + * if we're using stdio for input, then we want to use getc() + * instead of fread(), to make sure we stop fetching input after + * each newline. + */ + int yy_is_interactive; + + /* Whether we're considered to be at the beginning of a line. + * If so, '^' rules will be active on the next match, otherwise + * not. + */ + int yy_at_bol; + + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; + + int yy_buffer_status; +#define YY_BUFFER_NEW 0 +#define YY_BUFFER_NORMAL 1 + /* When an EOF's been seen but there's still some text to process + * then we mark the buffer as YY_EOF_PENDING, to indicate that we + * shouldn't try reading from the input source any more. We might + * still have a bunch of tokens to match, though, because of + * possible backing-up. + * + * When we actually see the EOF, we change the status to "new" + * (via yyrestart()), so that the user can continue scanning by + * just pointing yyin at a new input file. + */ +#define YY_BUFFER_EOF_PENDING 2 + }; + +static YY_BUFFER_STATE yy_current_buffer = 0; + +/* We provide macros for accessing buffer states in case in the + * future we want to put the buffer states in a more general + * "scanner state". + */ +#define YY_CURRENT_BUFFER yy_current_buffer + + +/* yy_hold_char holds the character lost when yytext is formed. */ +static char yy_hold_char; + +static int yy_n_chars; /* number of characters read into yy_ch_buf */ + + +int yyleng; + +/* Points to current character in buffer. */ +static char *yy_c_buf_p = (char *) 0; +static int yy_init = 1; /* whether we need to initialize */ +static int yy_start = 0; /* start state number */ + +/* Flag which is used to allow yywrap()'s to do buffer switches + * instead of setting up a fresh yyin. A bit of a hack ... + */ +static int yy_did_buffer_switch_on_eof; + +void yyrestart YY_PROTO(( FILE *input_file )); + +void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer )); +void yy_load_buffer_state YY_PROTO(( void )); +YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size )); +void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b )); +void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file )); +void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b )); +#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer ) + +YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size )); +YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *str )); +YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len )); + +static void *yy_flex_alloc YY_PROTO(( yy_size_t )); +static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )); +static void yy_flex_free YY_PROTO(( void * )); + +#define yy_new_buffer yy_create_buffer + +#define yy_set_interactive(is_interactive) \ + { \ + if ( ! yy_current_buffer ) \ + yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ + yy_current_buffer->yy_is_interactive = is_interactive; \ + } + +#define yy_set_bol(at_bol) \ + { \ + if ( ! yy_current_buffer ) \ + yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ + yy_current_buffer->yy_at_bol = at_bol; \ + } + +#define YY_AT_BOL() (yy_current_buffer->yy_at_bol) + + +#define yywrap() 1 +#define YY_SKIP_YYWRAP +typedef unsigned char YY_CHAR; +FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; +typedef int yy_state_type; +extern char *yytext; +#define yytext_ptr yytext + +static yy_state_type yy_get_previous_state YY_PROTO(( void )); +static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state )); +static int yy_get_next_buffer YY_PROTO(( void )); +static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); + +/* Done after the current pattern has been matched and before the + * corresponding action - sets up yytext. + */ +#define YY_DO_BEFORE_ACTION \ + yytext_ptr = yy_bp; \ + yyleng = (int) (yy_cp - yy_bp); \ + yy_hold_char = *yy_cp; \ + *yy_cp = '\0'; \ + yy_c_buf_p = yy_cp; + +#define YY_NUM_RULES 183 +#define YY_END_OF_BUFFER 184 +static yyconst short int yy_accept[475] = + { 0, + 0, 0, 0, 0, 184, 182, 181, 181, 165, 182, + 171, 176, 160, 161, 169, 168, 157, 166, 164, 170, + 131, 131, 158, 154, 172, 159, 173, 177, 123, 162, + 163, 175, 123, 123, 123, 123, 123, 123, 123, 123, + 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, + 123, 123, 155, 174, 156, 167, 180, 183, 182, 179, + 151, 0, 178, 137, 145, 140, 135, 143, 133, 144, + 134, 126, 132, 0, 136, 125, 129, 130, 0, 127, + 131, 0, 131, 152, 148, 150, 149, 153, 123, 141, + 147, 123, 123, 123, 123, 123, 123, 123, 123, 7, + + 123, 123, 123, 123, 123, 123, 123, 123, 123, 10, + 12, 123, 123, 123, 123, 123, 123, 123, 123, 123, + 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, + 123, 123, 123, 142, 146, 179, 0, 126, 0, 1, + 125, 0, 125, 129, 130, 0, 124, 128, 138, 139, + 96, 123, 123, 123, 123, 123, 123, 123, 123, 123, + 123, 123, 123, 123, 123, 8, 123, 123, 123, 123, + 17, 123, 123, 123, 123, 13, 123, 123, 123, 123, + 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, + 123, 123, 123, 123, 123, 123, 123, 123, 0, 126, + + 0, 125, 124, 128, 20, 123, 120, 123, 123, 123, + 123, 123, 123, 11, 99, 123, 123, 123, 123, 104, + 54, 123, 123, 18, 67, 68, 69, 123, 114, 123, + 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, + 123, 123, 123, 123, 123, 102, 23, 123, 123, 123, + 123, 123, 123, 19, 123, 123, 21, 70, 71, 72, + 5, 97, 2, 123, 123, 123, 123, 123, 24, 59, + 15, 55, 56, 57, 58, 123, 14, 123, 123, 123, + 123, 123, 123, 123, 123, 123, 115, 123, 123, 123, + 123, 123, 123, 123, 123, 123, 98, 123, 122, 123, + + 123, 9, 123, 123, 123, 116, 111, 60, 61, 62, + 63, 16, 64, 65, 66, 123, 123, 123, 107, 123, + 74, 123, 123, 103, 110, 123, 26, 123, 119, 3, + 22, 95, 105, 123, 123, 123, 123, 123, 73, 123, + 123, 106, 25, 123, 123, 123, 123, 123, 123, 123, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 123, + 123, 123, 123, 85, 123, 89, 100, 4, 123, 123, + 6, 112, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 123, 123, 108, 75, 123, 123, 123, 123, 123, 123, + + 101, 123, 123, 123, 123, 117, 109, 113, 121, 76, + 78, 82, 123, 123, 123, 90, 91, 123, 123, 123, + 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, + 123, 123, 123, 86, 83, 123, 93, 92, 123, 123, + 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, + 118, 123, 123, 123, 94, 123, 123, 123, 80, 123, + 123, 123, 77, 79, 81, 123, 123, 123, 123, 87, + 123, 88, 84, 0 + } ; + +static yyconst int yy_ec[256] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, + 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 4, 5, 1, 1, 6, 7, 1, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 21, 21, 22, 22, 23, 24, 25, + 26, 27, 28, 1, 29, 30, 31, 32, 33, 34, + 35, 36, 35, 35, 35, 37, 35, 35, 35, 35, + 35, 38, 39, 40, 41, 35, 35, 42, 35, 35, + 43, 1, 44, 45, 46, 1, 47, 48, 49, 50, + + 51, 52, 53, 54, 55, 35, 56, 57, 58, 59, + 60, 61, 35, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 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, 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, + 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, 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, 1 + } ; + +static yyconst int yy_meta[75] = + { 0, + 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, 2, 2, + 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, + 3, 3, 1, 1, 1, 3, 2, 2, 2, 2, + 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 1, 1, 1, 1 + } ; + +static yyconst short int yy_base[480] = + { 0, + 0, 0, 74, 0, 718, 719, 719, 719, 691, 711, + 689, 142, 719, 719, 688, 139, 719, 138, 136, 151, + 164, 154, 719, 719, 134, 687, 136, 719, 0, 719, + 719, 143, 649, 127, 147, 148, 134, 170, 651, 663, + 160, 649, 661, 132, 642, 148, 655, 179, 169, 151, + 177, 651, 719, 164, 719, 719, 719, 719, 689, 0, + 719, 698, 719, 719, 719, 719, 719, 719, 719, 719, + 719, 231, 719, 699, 719, 270, 198, 311, 257, 719, + 719, 0, 0, 675, 719, 719, 719, 674, 0, 719, + 719, 641, 638, 646, 633, 648, 635, 641, 629, 626, + + 627, 624, 624, 630, 618, 625, 622, 619, 625, 0, + 197, 622, 616, 621, 623, 613, 627, 627, 192, 616, + 613, 602, 162, 616, 201, 615, 604, 607, 217, 612, + 617, 187, 610, 719, 719, 0, 294, 719, 661, 719, + 0, 338, 719, 719, 719, 277, 353, 341, 719, 719, + 0, 606, 615, 597, 597, 237, 612, 609, 609, 605, + 597, 603, 590, 601, 604, 0, 590, 597, 593, 582, + 366, 593, 583, 593, 584, 0, 586, 584, 585, 574, + 577, 575, 585, 571, 216, 570, 572, 568, 568, 579, + 578, 257, 573, 568, 562, 575, 577, 566, 318, 374, + + 402, 413, 719, 719, 382, 566, 0, 558, 556, 564, + 553, 570, 559, 0, 0, 553, 563, 563, 548, 0, + 394, 552, 546, 0, 0, 0, 0, 547, 0, 553, + 544, 549, 554, 549, 540, 540, 544, 536, 539, 543, + 538, 547, 546, 537, 528, 0, 0, 542, 531, 531, + 536, 535, 527, 0, 522, 534, 0, 0, 0, 0, + 0, 0, 0, 525, 526, 520, 530, 521, 0, 419, + 423, 0, 511, 510, 509, 525, 0, 523, 506, 512, + 517, 521, 521, 505, 509, 516, 0, 514, 516, 511, + 499, 508, 514, 498, 508, 496, 0, 498, 0, 494, + + 500, 0, 489, 489, 502, 0, 504, 0, 482, 481, + 480, 0, 479, 478, 477, 300, 323, 361, 0, 497, + 0, 496, 483, 0, 0, 490, 0, 478, 0, 0, + 0, 0, 0, 475, 487, 485, 478, 484, 0, 477, + 482, 0, 0, 475, 426, 432, 435, 438, 441, 444, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 482, + 481, 478, 466, 451, 476, 453, 0, 0, 476, 474, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 473, 472, 0, 0, 490, 489, 488, 478, 485, 454, + + 0, 484, 483, 473, 480, 0, 0, 0, 0, 473, + 307, 473, 480, 478, 444, 0, 0, 466, 464, 440, + 439, 206, 441, 457, 448, 440, 453, 445, 436, 434, + 423, 432, 429, 431, 437, 411, 0, 0, 424, 423, + 406, 391, 363, 312, 371, 365, 355, 349, 357, 351, + 0, 340, 341, 330, 0, 300, 294, 286, 0, 266, + 266, 258, 0, 0, 0, 255, 232, 202, 177, 0, + 144, 0, 0, 719, 497, 499, 501, 504, 165 + } ; + +static yyconst short int yy_def[480] = + { 0, + 474, 1, 474, 3, 474, 474, 474, 474, 474, 475, + 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, + 474, 21, 474, 474, 474, 474, 474, 474, 476, 474, + 474, 474, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 474, 474, 474, 474, 474, 474, 474, 477, + 474, 475, 474, 474, 474, 474, 474, 474, 474, 474, + 474, 474, 474, 478, 474, 474, 21, 474, 474, 474, + 474, 479, 22, 474, 474, 474, 474, 474, 476, 474, + 474, 476, 476, 476, 476, 476, 476, 476, 476, 476, + + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 474, 474, 477, 474, 474, 478, 474, + 76, 474, 474, 474, 474, 474, 474, 479, 474, 474, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 474, 474, + + 474, 474, 474, 474, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 0, 474, 474, 474, 474, 474 + } ; + +static yyconst short int yy_nxt[794] = + { 0, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 22, 22, 22, + 22, 22, 23, 24, 25, 26, 27, 28, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 30, 31, 32, 29, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 29, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 29, 29, 29, + 53, 54, 55, 56, 6, 57, 58, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 59, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + + 6, 6, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 60, 6, 6, 6, 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, 6, 6, 6, 6, 65, 68, + 70, 72, 72, 72, 72, 72, 72, 72, 84, 85, + 73, 87, 88, 71, 69, 74, 148, 66, 90, 83, + 83, 83, 83, 83, 83, 83, 75, 76, 114, 77, + 77, 77, 77, 77, 77, 78, 93, 91, 94, 134, + 101, 115, 102, 95, 117, 474, 79, 80, 98, 80, + + 81, 103, 99, 96, 81, 82, 97, 100, 184, 129, + 473, 110, 118, 130, 79, 80, 104, 80, 111, 125, + 81, 474, 126, 185, 105, 120, 106, 131, 81, 107, + 127, 82, 121, 122, 144, 135, 132, 128, 144, 474, + 472, 196, 123, 197, 179, 124, 72, 72, 72, 72, + 72, 72, 72, 169, 144, 180, 170, 431, 187, 432, + 171, 471, 144, 137, 138, 474, 138, 146, 188, 146, + 241, 192, 147, 147, 147, 147, 147, 147, 147, 193, + 242, 137, 138, 470, 138, 141, 141, 141, 141, 141, + 141, 141, 147, 147, 147, 147, 147, 147, 147, 209, + + 210, 469, 142, 143, 199, 143, 199, 468, 249, 200, + 200, 200, 200, 200, 200, 200, 250, 351, 352, 353, + 142, 143, 467, 143, 76, 466, 78, 78, 78, 78, + 78, 78, 78, 200, 200, 200, 200, 200, 200, 200, + 354, 355, 356, 79, 80, 421, 80, 145, 201, 465, + 201, 145, 422, 202, 202, 202, 202, 202, 202, 202, + 464, 79, 80, 452, 80, 453, 463, 145, 147, 147, + 147, 147, 147, 147, 147, 145, 462, 204, 357, 358, + 359, 204, 224, 225, 226, 227, 203, 461, 203, 200, + 200, 200, 200, 200, 200, 200, 460, 204, 257, 258, + + 259, 260, 459, 458, 203, 204, 203, 138, 457, 138, + 272, 273, 274, 275, 456, 455, 228, 202, 202, 202, + 202, 202, 202, 202, 454, 138, 451, 138, 202, 202, + 202, 202, 202, 202, 202, 308, 309, 310, 311, 312, + 313, 314, 315, 373, 374, 375, 143, 450, 143, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 143, 449, 143, 395, 396, 397, + 402, 403, 448, 447, 446, 445, 444, 443, 442, 441, + 440, 398, 439, 404, 438, 437, 436, 435, 399, 434, + 405, 433, 430, 429, 428, 427, 400, 62, 62, 62, + + 89, 89, 136, 136, 139, 139, 139, 426, 425, 424, + 423, 420, 419, 418, 417, 416, 415, 414, 413, 412, + 411, 410, 409, 408, 407, 406, 401, 394, 393, 392, + 391, 372, 371, 370, 369, 368, 367, 366, 365, 364, + 363, 362, 361, 360, 350, 349, 348, 347, 346, 345, + 344, 343, 342, 341, 340, 339, 338, 337, 336, 335, + 334, 333, 332, 331, 330, 329, 328, 327, 326, 325, + 324, 323, 322, 321, 320, 319, 318, 317, 316, 307, + 306, 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, + 276, 271, 270, 269, 268, 267, 266, 265, 264, 263, + 262, 261, 256, 255, 254, 253, 252, 251, 248, 247, + 246, 245, 244, 243, 240, 239, 238, 237, 236, 235, + 234, 233, 232, 231, 230, 229, 223, 222, 221, 220, + 219, 218, 217, 216, 215, 214, 213, 212, 211, 208, + 207, 206, 205, 140, 198, 195, 194, 191, 190, 189, + 186, 183, 182, 181, 178, 177, 176, 175, 174, 173, + 172, 168, 167, 166, 165, 164, 163, 162, 161, 160, + 159, 158, 157, 156, 155, 154, 153, 152, 151, 150, + + 149, 140, 63, 74, 133, 119, 116, 113, 112, 109, + 108, 92, 86, 67, 64, 63, 61, 474, 5, 474, + 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, + 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, + 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, + 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, + 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, + 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, + 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, + 474, 474, 474 + + } ; + +static yyconst short int yy_chk[794] = + { 0, + 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, 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, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 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, 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, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 12, 16, + 18, 19, 19, 19, 19, 19, 19, 19, 25, 25, + 20, 27, 27, 18, 16, 20, 479, 12, 32, 22, + 22, 22, 22, 22, 22, 22, 20, 21, 44, 21, + 21, 21, 21, 21, 21, 21, 34, 32, 34, 54, + 37, 44, 37, 35, 46, 22, 21, 21, 36, 21, + + 21, 37, 36, 35, 21, 21, 35, 36, 123, 50, + 471, 41, 46, 50, 21, 21, 38, 21, 41, 49, + 21, 22, 49, 123, 38, 48, 38, 51, 21, 38, + 49, 21, 48, 48, 77, 54, 51, 49, 77, 77, + 469, 132, 48, 132, 119, 48, 72, 72, 72, 72, + 72, 72, 72, 111, 77, 119, 111, 422, 125, 422, + 111, 468, 77, 72, 72, 77, 72, 79, 125, 79, + 185, 129, 79, 79, 79, 79, 79, 79, 79, 129, + 185, 72, 72, 467, 72, 76, 76, 76, 76, 76, + 76, 76, 146, 146, 146, 146, 146, 146, 146, 156, + + 156, 466, 76, 76, 137, 76, 137, 462, 192, 137, + 137, 137, 137, 137, 137, 137, 192, 316, 316, 316, + 76, 76, 461, 76, 78, 460, 78, 78, 78, 78, + 78, 78, 78, 199, 199, 199, 199, 199, 199, 199, + 317, 317, 317, 78, 78, 411, 78, 78, 142, 458, + 142, 78, 411, 142, 142, 142, 142, 142, 142, 142, + 457, 78, 78, 444, 78, 444, 456, 78, 147, 147, + 147, 147, 147, 147, 147, 78, 454, 148, 318, 318, + 318, 148, 171, 171, 171, 171, 147, 453, 147, 200, + 200, 200, 200, 200, 200, 200, 452, 148, 205, 205, + + 205, 205, 450, 449, 147, 148, 147, 200, 448, 200, + 221, 221, 221, 221, 447, 446, 171, 201, 201, 201, + 201, 201, 201, 201, 445, 200, 443, 200, 202, 202, + 202, 202, 202, 202, 202, 270, 270, 270, 270, 271, + 271, 271, 271, 345, 345, 345, 202, 442, 202, 346, + 346, 346, 347, 347, 347, 348, 348, 348, 349, 349, + 349, 350, 350, 350, 202, 441, 202, 364, 364, 364, + 366, 366, 440, 439, 436, 435, 434, 433, 432, 431, + 430, 364, 429, 366, 428, 427, 426, 425, 364, 424, + 366, 423, 421, 420, 419, 418, 364, 475, 475, 475, + + 476, 476, 477, 477, 478, 478, 478, 415, 414, 413, + 412, 410, 405, 404, 403, 402, 400, 399, 398, 397, + 396, 395, 392, 391, 370, 369, 365, 363, 362, 361, + 360, 344, 341, 340, 338, 337, 336, 335, 334, 328, + 326, 323, 322, 320, 315, 314, 313, 311, 310, 309, + 307, 305, 304, 303, 301, 300, 298, 296, 295, 294, + 293, 292, 291, 290, 289, 288, 286, 285, 284, 283, + 282, 281, 280, 279, 278, 276, 275, 274, 273, 268, + 267, 266, 265, 264, 256, 255, 253, 252, 251, 250, + 249, 248, 245, 244, 243, 242, 241, 240, 239, 238, + + 237, 236, 235, 234, 233, 232, 231, 230, 228, 223, + 222, 219, 218, 217, 216, 213, 212, 211, 210, 209, + 208, 206, 198, 197, 196, 195, 194, 193, 191, 190, + 189, 188, 187, 186, 184, 183, 182, 181, 180, 179, + 178, 177, 175, 174, 173, 172, 170, 169, 168, 167, + 165, 164, 163, 162, 161, 160, 159, 158, 157, 155, + 154, 153, 152, 139, 133, 131, 130, 128, 127, 126, + 124, 122, 121, 120, 118, 117, 116, 115, 114, 113, + 112, 109, 108, 107, 106, 105, 104, 103, 102, 101, + 100, 99, 98, 97, 96, 95, 94, 93, 92, 88, + + 84, 74, 62, 59, 52, 47, 45, 43, 42, 40, + 39, 33, 26, 15, 11, 10, 9, 5, 474, 474, + 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, + 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, + 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, + 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, + 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, + 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, + 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, + 474, 474, 474 + + } ; + +static yy_state_type yy_last_accepting_state; +static char *yy_last_accepting_cpos; + +/* The intent behind this definition is that it'll catch + * any uses of REJECT which flex missed. + */ +#define REJECT reject_used_but_not_detected +#define yymore() yymore_used_but_not_detected +#define YY_MORE_ADJ 0 +char *yytext; +#line 1 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +#define INITIAL 0 +/*-*-C++-*- + +// Copyright (c) The HLSL2GLSLFork Project Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE.txt file. + +*/ +/* Based on +ANSI C grammar, Lex specification + +In 1985, Jeff Lee published this Lex specification together with a Yacc +grammar for the April 30, 1985 ANSI C draft. Tom Stockfisch reposted +both to net.sources in 1987; that original, as mentioned in the answer +to question 17.25 of the comp.lang.c FAQ, can be ftp'ed from ftp.uu.net, +file usenet/net.sources/ansi.c.grammar.Z. + +I intend to keep this version as close to the current C Standard grammar +as possible; please let me know if you discover discrepancies. + +Jutta Degener, 1995 +*/ +#define YY_NO_UNPUT 1 +#line 34 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +#define YY_NO_UNISTD_H + +#include +#include +#include "ParseHelper.h" +#include "hlslang_tab.h" + +/* windows only pragma */ +#ifdef _MSC_VER +#pragma warning(disable : 4102) +#endif + +int yy_input(char* buf, int max_size); +static TSourceLoc lexlineno = { 0, 0 }; + +#ifdef _WIN32 + extern int yyparse(TParseContext&); + #define YY_DECL int yylex(YYSTYPE* pyylval, TParseContext& parseContext) +#else + extern int yyparse(void*); + #define YY_DECL int yylex(YYSTYPE* pyylval, void* parseContextLocal) + #define parseContext (*((TParseContext*)(parseContextLocal))) +#endif + +#define YY_INPUT(buf,result,max_size) (result = yy_input(buf, max_size)) + +#define YY_NEVER_INTERACTIVE 1 +#define FIELDS 1 + +#line 751 "Gen_hlslang.cpp" + +/* Macros after this point can all be overridden by user definitions in + * section 1. + */ + +#ifndef YY_SKIP_YYWRAP +#ifdef __cplusplus +extern "C" int yywrap YY_PROTO(( void )); +#else +extern int yywrap YY_PROTO(( void )); +#endif +#endif + +#ifndef YY_NO_UNPUT +static void yyunput YY_PROTO(( int c, char *buf_ptr )); +#endif + +#ifndef yytext_ptr +static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int )); +#endif + +#ifndef YY_NO_INPUT +#ifdef __cplusplus +static int yyinput YY_PROTO(( void )); +#else +static int input YY_PROTO(( void )); +#endif +#endif + +#if YY_STACK_USED +static int yy_start_stack_ptr = 0; +static int yy_start_stack_depth = 0; +static int *yy_start_stack = 0; +#ifndef YY_NO_PUSH_STATE +static void yy_push_state YY_PROTO(( int new_state )); +#endif +#ifndef YY_NO_POP_STATE +static void yy_pop_state YY_PROTO(( void )); +#endif +#ifndef YY_NO_TOP_STATE +static int yy_top_state YY_PROTO(( void )); +#endif + +#else +#define YY_NO_PUSH_STATE 1 +#define YY_NO_POP_STATE 1 +#define YY_NO_TOP_STATE 1 +#endif + +#ifdef YY_MALLOC_DECL +YY_MALLOC_DECL +#else +#if __STDC__ +#ifndef __cplusplus +#include +#endif +#else +/* Just try to get by without declaring the routines. This will fail + * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int) + * or sizeof(void*) != sizeof(int). + */ +#endif +#endif + +/* Amount of stuff to slurp up with each read. */ +#ifndef YY_READ_BUF_SIZE +#define YY_READ_BUF_SIZE 8192 +#endif + +/* Copy whatever the last rule matched to the standard output. */ + +#ifndef ECHO +/* This used to be an fputs(), but since the string might contain NUL's, + * we now use fwrite(). + */ +#define ECHO (void) fwrite( yytext, yyleng, 1, yyout ) +#endif + +/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, + * is returned in "result". + */ +#ifndef YY_INPUT +#define YY_INPUT(buf,result,max_size) \ + if ( yy_current_buffer->yy_is_interactive ) \ + { \ + int c = '*', n; \ + for ( n = 0; n < max_size && \ + (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ + buf[n] = (char) c; \ + if ( c == '\n' ) \ + buf[n++] = (char) c; \ + if ( c == EOF && ferror( yyin ) ) \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + result = n; \ + } \ + else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \ + && ferror( yyin ) ) \ + YY_FATAL_ERROR( "input in flex scanner failed" ); +#endif + +/* No semi-colon after return; correct usage is to write "yyterminate();" - + * we don't want an extra ';' after the "return" because that will cause + * some compilers to complain about unreachable statements. + */ +#ifndef yyterminate +#define yyterminate() return YY_NULL +#endif + +/* Number of entries by which start-condition stack grows. */ +#ifndef YY_START_STACK_INCR +#define YY_START_STACK_INCR 25 +#endif + +/* Report a fatal error. */ +#ifndef YY_FATAL_ERROR +#define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) +#endif + +/* Default declaration of generated scanner - a define so the user can + * easily add parameters. + */ +#ifndef YY_DECL +#define YY_DECL int yylex YY_PROTO(( void )) +#endif + +/* Code executed at the beginning of each rule, after yytext and yyleng + * have been set up. + */ +#ifndef YY_USER_ACTION +#define YY_USER_ACTION +#endif + +/* Code executed at the end of each rule. */ +#ifndef YY_BREAK +#define YY_BREAK break; +#endif + +#define YY_RULE_SETUP \ + YY_USER_ACTION + +YY_DECL + { + register yy_state_type yy_current_state; + register char *yy_cp, *yy_bp; + register int yy_act; + +#line 68 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" + +#line 900 "Gen_hlslang.cpp" + + if ( yy_init ) + { + yy_init = 0; + +#ifdef YY_USER_INIT + YY_USER_INIT; +#endif + + if ( ! yy_start ) + yy_start = 1; /* first start state */ + + if ( ! yyin ) + yyin = stdin; + + if ( ! yyout ) + yyout = stdout; + + if ( ! yy_current_buffer ) + yy_current_buffer = + yy_create_buffer( yyin, YY_BUF_SIZE ); + + yy_load_buffer_state(); + } + + while ( 1 ) /* loops until end-of-file is reached */ + { + yy_cp = yy_c_buf_p; + + /* Support of yytext. */ + *yy_cp = yy_hold_char; + + /* yy_bp points to the position in yy_ch_buf of the start of + * the current run. + */ + yy_bp = yy_cp; + + yy_current_state = yy_start; +yy_match: + do + { + register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + if ( yy_accept[yy_current_state] ) + { + yy_last_accepting_state = yy_current_state; + yy_last_accepting_cpos = yy_cp; + } + 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 >= 475 ) + 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_base[yy_current_state] != 719 ); + +yy_find_action: + yy_act = yy_accept[yy_current_state]; + if ( yy_act == 0 ) + { /* have to back up */ + yy_cp = yy_last_accepting_cpos; + yy_current_state = yy_last_accepting_state; + yy_act = yy_accept[yy_current_state]; + } + + YY_DO_BEFORE_ACTION; + + +do_action: /* This label is used only to access EOF actions. */ + + + switch ( yy_act ) + { /* beginning of action switch */ + case 0: /* must back up */ + /* undo the effects of YY_DO_BEFORE_ACTION */ + *yy_cp = yy_hold_char; + yy_cp = yy_last_accepting_cpos; + yy_current_state = yy_last_accepting_state; + goto yy_find_action; + +case 1: +YY_RULE_SETUP +#line 69 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ /* ?? carriage and/or line-feed? */ }; + YY_BREAK +case 2: +YY_RULE_SETUP +#line 71 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(CONST_QUAL); } + YY_BREAK +case 3: +YY_RULE_SETUP +#line 72 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(STATIC_QUAL); } + YY_BREAK +case 4: +YY_RULE_SETUP +#line 73 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(UNIFORM); } + YY_BREAK +case 5: +YY_RULE_SETUP +#line 75 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(BREAK); } + YY_BREAK +case 6: +YY_RULE_SETUP +#line 76 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(CONTINUE); } + YY_BREAK +case 7: +YY_RULE_SETUP +#line 77 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(DO); } + YY_BREAK +case 8: +YY_RULE_SETUP +#line 78 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(FOR); } + YY_BREAK +case 9: +YY_RULE_SETUP +#line 79 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(WHILE); } + YY_BREAK +case 10: +YY_RULE_SETUP +#line 81 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(IF); } + YY_BREAK +case 11: +YY_RULE_SETUP +#line 82 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(ELSE); } + YY_BREAK +case 12: +YY_RULE_SETUP +#line 84 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(IN_QUAL); } + YY_BREAK +case 13: +YY_RULE_SETUP +#line 85 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(OUT_QUAL); } + YY_BREAK +case 14: +YY_RULE_SETUP +#line 86 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(INOUT_QUAL); } + YY_BREAK +case 15: +YY_RULE_SETUP +#line 88 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(FLOAT_TYPE); } + YY_BREAK +case 16: +YY_RULE_SETUP +#line 89 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(FLOAT_TYPE); } + YY_BREAK +case 17: +YY_RULE_SETUP +#line 90 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(INT_TYPE); } + YY_BREAK +case 18: +YY_RULE_SETUP +#line 91 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(INT_TYPE); } + YY_BREAK +case 19: +YY_RULE_SETUP +#line 92 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(VOID_TYPE); } + YY_BREAK +case 20: +YY_RULE_SETUP +#line 93 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(BOOL_TYPE); } + YY_BREAK +case 21: +YY_RULE_SETUP +#line 94 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(BOOL_TYPE); } + YY_BREAK +case 22: +YY_RULE_SETUP +#line 95 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(STRING_TYPE); } + YY_BREAK +case 23: +YY_RULE_SETUP +#line 96 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; pyylval->lex.b = true; return(BOOLCONSTANT); } + YY_BREAK +case 24: +YY_RULE_SETUP +#line 97 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; pyylval->lex.b = false; return(BOOLCONSTANT); } + YY_BREAK +case 25: +YY_RULE_SETUP +#line 99 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(DISCARD); } + YY_BREAK +case 26: +YY_RULE_SETUP +#line 100 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(RETURN); } + YY_BREAK +case 27: +YY_RULE_SETUP +#line 102 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(MATRIX2x2); } + YY_BREAK +case 28: +YY_RULE_SETUP +#line 103 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(MATRIX2x3); } + YY_BREAK +case 29: +YY_RULE_SETUP +#line 104 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(MATRIX2x4); } + YY_BREAK +case 30: +YY_RULE_SETUP +#line 106 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(MATRIX3x2); } + YY_BREAK +case 31: +YY_RULE_SETUP +#line 107 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(MATRIX3x3); } + YY_BREAK +case 32: +YY_RULE_SETUP +#line 108 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(MATRIX3x4); } + YY_BREAK +case 33: +YY_RULE_SETUP +#line 110 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(MATRIX4x2); } + YY_BREAK +case 34: +YY_RULE_SETUP +#line 111 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(MATRIX4x3); } + YY_BREAK +case 35: +YY_RULE_SETUP +#line 112 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(MATRIX4x4); } + YY_BREAK +case 36: +YY_RULE_SETUP +#line 114 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(HMATRIX2x2); } + YY_BREAK +case 37: +YY_RULE_SETUP +#line 115 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(HMATRIX2x3); } + YY_BREAK +case 38: +YY_RULE_SETUP +#line 116 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(HMATRIX2x4); } + YY_BREAK +case 39: +YY_RULE_SETUP +#line 118 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(HMATRIX3x2); } + YY_BREAK +case 40: +YY_RULE_SETUP +#line 119 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(HMATRIX3x3); } + YY_BREAK +case 41: +YY_RULE_SETUP +#line 120 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(HMATRIX3x4); } + YY_BREAK +case 42: +YY_RULE_SETUP +#line 122 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(HMATRIX4x2); } + YY_BREAK +case 43: +YY_RULE_SETUP +#line 123 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(HMATRIX4x3); } + YY_BREAK +case 44: +YY_RULE_SETUP +#line 124 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(HMATRIX4x4); } + YY_BREAK +case 45: +YY_RULE_SETUP +#line 126 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(FMATRIX2x2); } + YY_BREAK +case 46: +YY_RULE_SETUP +#line 127 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(FMATRIX2x3); } + YY_BREAK +case 47: +YY_RULE_SETUP +#line 128 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(FMATRIX2x4); } + YY_BREAK +case 48: +YY_RULE_SETUP +#line 130 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(FMATRIX3x2); } + YY_BREAK +case 49: +YY_RULE_SETUP +#line 131 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(FMATRIX3x3); } + YY_BREAK +case 50: +YY_RULE_SETUP +#line 132 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(FMATRIX3x4); } + YY_BREAK +case 51: +YY_RULE_SETUP +#line 134 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(FMATRIX4x2); } + YY_BREAK +case 52: +YY_RULE_SETUP +#line 135 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(FMATRIX4x3); } + YY_BREAK +case 53: +YY_RULE_SETUP +#line 136 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(FMATRIX4x4); } + YY_BREAK +case 54: +YY_RULE_SETUP +#line 138 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(HALF_TYPE); } + YY_BREAK +case 55: +YY_RULE_SETUP +#line 139 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(HALF_TYPE); } + YY_BREAK +case 56: +YY_RULE_SETUP +#line 140 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return (HVEC2); } + YY_BREAK +case 57: +YY_RULE_SETUP +#line 141 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return (HVEC3); } + YY_BREAK +case 58: +YY_RULE_SETUP +#line 142 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return (HVEC4); } + YY_BREAK +case 59: +YY_RULE_SETUP +#line 144 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(FIXED_TYPE); } + YY_BREAK +case 60: +YY_RULE_SETUP +#line 145 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return(FIXED_TYPE); } + YY_BREAK +case 61: +YY_RULE_SETUP +#line 146 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return (FVEC2); } + YY_BREAK +case 62: +YY_RULE_SETUP +#line 147 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return (FVEC3); } + YY_BREAK +case 63: +YY_RULE_SETUP +#line 148 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return (FVEC4); } + YY_BREAK +case 64: +YY_RULE_SETUP +#line 150 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return (VEC2); } + YY_BREAK +case 65: +YY_RULE_SETUP +#line 151 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return (VEC3); } + YY_BREAK +case 66: +YY_RULE_SETUP +#line 152 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return (VEC4); } + YY_BREAK +case 67: +YY_RULE_SETUP +#line 153 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return (IVEC2); } + YY_BREAK +case 68: +YY_RULE_SETUP +#line 154 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return (IVEC3); } + YY_BREAK +case 69: +YY_RULE_SETUP +#line 155 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return (IVEC4); } + YY_BREAK +case 70: +YY_RULE_SETUP +#line 156 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return (BVEC2); } + YY_BREAK +case 71: +YY_RULE_SETUP +#line 157 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return (BVEC3); } + YY_BREAK +case 72: +YY_RULE_SETUP +#line 158 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return (BVEC4); } + YY_BREAK +case 73: +YY_RULE_SETUP +#line 160 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return (VECTOR); } + YY_BREAK +case 74: +YY_RULE_SETUP +#line 161 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return (MATRIX); } + YY_BREAK +case 75: +YY_RULE_SETUP +#line 162 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return (REGISTER); } + YY_BREAK +case 76: +YY_RULE_SETUP +#line 164 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return SAMPLER1D; } + YY_BREAK +case 77: +YY_RULE_SETUP +#line 165 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return SAMPLER1DSHADOW; } + YY_BREAK +case 78: +YY_RULE_SETUP +#line 166 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return SAMPLER2D; } + YY_BREAK +case 79: +YY_RULE_SETUP +#line 167 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return SAMPLER2DSHADOW; } + YY_BREAK +case 80: +YY_RULE_SETUP +#line 168 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return SAMPLER2D_HALF; } + YY_BREAK +case 81: +YY_RULE_SETUP +#line 169 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return SAMPLER2D_FLOAT; } + YY_BREAK +case 82: +YY_RULE_SETUP +#line 170 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return SAMPLER3D; } + YY_BREAK +case 83: +YY_RULE_SETUP +#line 171 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return SAMPLERRECT; } + YY_BREAK +case 84: +YY_RULE_SETUP +#line 172 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return SAMPLERRECTSHADOW; } + YY_BREAK +case 85: +YY_RULE_SETUP +#line 174 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return SAMPLERGENERIC; } + YY_BREAK +case 86: +YY_RULE_SETUP +#line 175 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return SAMPLERCUBE; } + YY_BREAK +case 87: +YY_RULE_SETUP +#line 176 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return SAMPLERCUBE_HALF; } + YY_BREAK +case 88: +YY_RULE_SETUP +#line 177 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return SAMPLERCUBE_FLOAT; } + YY_BREAK +case 89: +YY_RULE_SETUP +#line 179 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return TEXTURE; } + YY_BREAK +case 90: +YY_RULE_SETUP +#line 180 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return TEXTURE; } + YY_BREAK +case 91: +YY_RULE_SETUP +#line 181 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return TEXTURE; } + YY_BREAK +case 92: +YY_RULE_SETUP +#line 182 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return TEXTURE; } + YY_BREAK +case 93: +YY_RULE_SETUP +#line 183 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return TEXTURE; } + YY_BREAK +case 94: +YY_RULE_SETUP +#line 184 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = true; return SAMPLERSTATE; } + YY_BREAK +case 95: +YY_RULE_SETUP +#line 186 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(STRUCT); } + YY_BREAK +case 96: +YY_RULE_SETUP +#line 188 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ PaReservedWord(); return 0; } + YY_BREAK +case 97: +YY_RULE_SETUP +#line 190 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ PaReservedWord(); return 0; } + YY_BREAK +case 98: +YY_RULE_SETUP +#line 191 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ PaReservedWord(); return 0; } + YY_BREAK +case 99: +YY_RULE_SETUP +#line 192 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ PaReservedWord(); return 0; } + YY_BREAK +case 100: +YY_RULE_SETUP +#line 193 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ PaReservedWord(); return 0; } + YY_BREAK +case 101: +YY_RULE_SETUP +#line 194 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ PaReservedWord(); return 0; } + YY_BREAK +case 102: +YY_RULE_SETUP +#line 195 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ PaReservedWord(); return 0; } + YY_BREAK +case 103: +YY_RULE_SETUP +#line 196 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ PaReservedWord(); return 0; } + YY_BREAK +case 104: +YY_RULE_SETUP +#line 198 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ PaReservedWord(); return 0; } + YY_BREAK +case 105: +YY_RULE_SETUP +#line 199 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ PaReservedWord(); return 0; } + YY_BREAK +case 106: +YY_RULE_SETUP +#line 200 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ PaReservedWord(); return 0; } + YY_BREAK +case 107: +YY_RULE_SETUP +#line 202 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ /* just ignore it PaReservedWord(); return 0; */ } + YY_BREAK +case 108: +YY_RULE_SETUP +#line 203 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ /* just ignore it PaReservedWord(); return 0; */ } + YY_BREAK +case 109: +YY_RULE_SETUP +#line 204 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ PaReservedWord(); return 0; } + YY_BREAK +case 110: +YY_RULE_SETUP +#line 205 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ PaReservedWord(); return 0; } + YY_BREAK +case 111: +YY_RULE_SETUP +#line 206 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ PaReservedWord(); return 0; } + YY_BREAK +case 112: +YY_RULE_SETUP +#line 207 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ PaReservedWord(); return 0; } + YY_BREAK +case 113: +YY_RULE_SETUP +#line 208 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ PaReservedWord(); return 0; } + YY_BREAK +case 114: +YY_RULE_SETUP +#line 210 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ PaReservedWord(); return 0; } + YY_BREAK +case 115: +YY_RULE_SETUP +#line 211 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ PaReservedWord(); return 0; } + YY_BREAK +case 116: +YY_RULE_SETUP +#line 212 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ PaReservedWord(); return 0; } + YY_BREAK +case 117: +YY_RULE_SETUP +#line 213 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ PaReservedWord(); return 0; } + YY_BREAK +case 118: +YY_RULE_SETUP +#line 215 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ PaReservedWord(); return 0; } + YY_BREAK +case 119: +YY_RULE_SETUP +#line 217 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ PaReservedWord(); return 0; } + YY_BREAK +case 120: +YY_RULE_SETUP +#line 218 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ PaReservedWord(); return 0; } + YY_BREAK +case 121: +YY_RULE_SETUP +#line 220 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ PaReservedWord(); return 0; } + YY_BREAK +case 122: +YY_RULE_SETUP +#line 221 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ PaReservedWord(); return 0; } + YY_BREAK +case 123: +YY_RULE_SETUP +#line 223 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ + pyylval->lex.line = lexlineno; + pyylval->lex.string = NewPoolTString(yytext); + return PaIdentOrType(*pyylval->lex.string, parseContext, pyylval->lex.symbol); +} + YY_BREAK +case 124: +YY_RULE_SETUP +#line 229 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; pyylval->lex.f = static_cast(atof(yytext)); return(FLOATCONSTANT); } + YY_BREAK +case 125: +YY_RULE_SETUP +#line 230 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; pyylval->lex.f = static_cast(atof(yytext)); return(FLOATCONSTANT); } + YY_BREAK +case 126: +YY_RULE_SETUP +#line 231 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; pyylval->lex.f = static_cast(atof(yytext)); return(FLOATCONSTANT); } + YY_BREAK +case 127: +YY_RULE_SETUP +#line 232 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; pyylval->lex.f = static_cast(atof(yytext)); return(FLOATCONSTANT); } + YY_BREAK +case 128: +YY_RULE_SETUP +#line 234 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; pyylval->lex.i = strtol(yytext, 0, 0); return(INTCONSTANT); } + YY_BREAK +case 129: +YY_RULE_SETUP +#line 235 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; pyylval->lex.i = strtol(yytext, 0, 0); return(INTCONSTANT); } + YY_BREAK +case 130: +YY_RULE_SETUP +#line 236 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.error(lexlineno, "Invalid Octal number.", yytext, "", ""); parseContext.recover(); return 0;} + YY_BREAK +case 131: +YY_RULE_SETUP +#line 237 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; pyylval->lex.i = strtol(yytext, 0, 0); return(INTCONSTANT); } + YY_BREAK +case 132: +YY_RULE_SETUP +#line 243 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ int ret = PaParseComment(pyylval->lex.line, parseContext); if (!ret) return ret; } + YY_BREAK +case 133: +YY_RULE_SETUP +#line 245 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(ADD_ASSIGN); } + YY_BREAK +case 134: +YY_RULE_SETUP +#line 246 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(SUB_ASSIGN); } + YY_BREAK +case 135: +YY_RULE_SETUP +#line 247 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(MUL_ASSIGN); } + YY_BREAK +case 136: +YY_RULE_SETUP +#line 248 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(DIV_ASSIGN); } + YY_BREAK +case 137: +YY_RULE_SETUP +#line 249 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(MOD_ASSIGN); } + YY_BREAK +case 138: +YY_RULE_SETUP +#line 250 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(LEFT_ASSIGN); } + YY_BREAK +case 139: +YY_RULE_SETUP +#line 251 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(RIGHT_ASSIGN); } + YY_BREAK +case 140: +YY_RULE_SETUP +#line 252 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(AND_ASSIGN); } + YY_BREAK +case 141: +YY_RULE_SETUP +#line 253 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(XOR_ASSIGN); } + YY_BREAK +case 142: +YY_RULE_SETUP +#line 254 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(OR_ASSIGN); } + YY_BREAK +case 143: +YY_RULE_SETUP +#line 256 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(INC_OP); } + YY_BREAK +case 144: +YY_RULE_SETUP +#line 257 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(DEC_OP); } + YY_BREAK +case 145: +YY_RULE_SETUP +#line 258 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(AND_OP); } + YY_BREAK +case 146: +YY_RULE_SETUP +#line 259 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(OR_OP); } + YY_BREAK +case 147: +YY_RULE_SETUP +#line 260 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(XOR_OP); } + YY_BREAK +case 148: +YY_RULE_SETUP +#line 261 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(LE_OP); } + YY_BREAK +case 149: +YY_RULE_SETUP +#line 262 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(GE_OP); } + YY_BREAK +case 150: +YY_RULE_SETUP +#line 263 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(EQ_OP); } + YY_BREAK +case 151: +YY_RULE_SETUP +#line 264 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(NE_OP); } + YY_BREAK +case 152: +YY_RULE_SETUP +#line 265 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(LEFT_OP); } + YY_BREAK +case 153: +YY_RULE_SETUP +#line 266 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(RIGHT_OP); } + YY_BREAK +case 154: +YY_RULE_SETUP +#line 267 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = false; return(SEMICOLON); } + YY_BREAK +case 155: +YY_RULE_SETUP +#line 268 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = false; return(LEFT_BRACE); } + YY_BREAK +case 156: +YY_RULE_SETUP +#line 269 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(RIGHT_BRACE); } + YY_BREAK +case 157: +YY_RULE_SETUP +#line 270 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; if (parseContext.inTypeParen) parseContext.lexAfterType = false; return(COMMA); } + YY_BREAK +case 158: +YY_RULE_SETUP +#line 271 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(COLON); } + YY_BREAK +case 159: +YY_RULE_SETUP +#line 272 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = false; return(EQUAL); } + YY_BREAK +case 160: +YY_RULE_SETUP +#line 273 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.lexAfterType = false; parseContext.inTypeParen = true; return(LEFT_PAREN); } + YY_BREAK +case 161: +YY_RULE_SETUP +#line 274 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; parseContext.inTypeParen = false; return(RIGHT_PAREN); } + YY_BREAK +case 162: +YY_RULE_SETUP +#line 275 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(LEFT_BRACKET); } + YY_BREAK +case 163: +YY_RULE_SETUP +#line 276 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(RIGHT_BRACKET); } + YY_BREAK +case 164: +YY_RULE_SETUP +#line 277 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ BEGIN(FIELDS); return(DOT); } + YY_BREAK +case 165: +YY_RULE_SETUP +#line 278 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(BANG); } + YY_BREAK +case 166: +YY_RULE_SETUP +#line 279 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(DASH); } + YY_BREAK +case 167: +YY_RULE_SETUP +#line 280 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(TILDE); } + YY_BREAK +case 168: +YY_RULE_SETUP +#line 281 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(PLUS); } + YY_BREAK +case 169: +YY_RULE_SETUP +#line 282 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(STAR); } + YY_BREAK +case 170: +YY_RULE_SETUP +#line 283 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(SLASH); } + YY_BREAK +case 171: +YY_RULE_SETUP +#line 284 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(PERCENT); } + YY_BREAK +case 172: +YY_RULE_SETUP +#line 285 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(LEFT_ANGLE); } + YY_BREAK +case 173: +YY_RULE_SETUP +#line 286 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(RIGHT_ANGLE); } + YY_BREAK +case 174: +YY_RULE_SETUP +#line 287 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(VERTICAL_BAR); } + YY_BREAK +case 175: +YY_RULE_SETUP +#line 288 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(CARET); } + YY_BREAK +case 176: +YY_RULE_SETUP +#line 289 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(AMPERSAND); } + YY_BREAK +case 177: +YY_RULE_SETUP +#line 290 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(QUESTION); } + YY_BREAK +case 178: +YY_RULE_SETUP +#line 292 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ pyylval->lex.line = lexlineno; return(STRINGCONSTANT); } + YY_BREAK +case 179: +YY_RULE_SETUP +#line 294 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ +BEGIN(INITIAL); + pyylval->lex.line = lexlineno; + pyylval->lex.string = NewPoolTString(yytext); + return FIELD_SELECTION; } + YY_BREAK +case 180: +YY_RULE_SETUP +#line 299 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{} + YY_BREAK +case 181: +YY_RULE_SETUP +#line 302 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ } + YY_BREAK +case YY_STATE_EOF(INITIAL): +case YY_STATE_EOF(FIELDS): +#line 303 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ (&parseContext)->AfterEOF = true; yy_delete_buffer(YY_CURRENT_BUFFER); yyterminate();} + YY_BREAK +case 182: +YY_RULE_SETUP +#line 304 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +{ parseContext.infoSink.info << "FLEX: Unknown char " << yytext << "\n"; + return 0; } + YY_BREAK +case 183: +YY_RULE_SETUP +#line 307 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" +ECHO; + YY_BREAK +#line 1912 "Gen_hlslang.cpp" + + case YY_END_OF_BUFFER: + { + /* Amount of text matched not including the EOB char. */ + int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1; + + /* Undo the effects of YY_DO_BEFORE_ACTION. */ + *yy_cp = yy_hold_char; + + if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW ) + { + /* We're scanning a new file or input source. It's + * possible that this happened because the user + * just pointed yyin at a new source and called + * yylex(). If so, then we have to assure + * consistency between yy_current_buffer and our + * globals. Here is the right place to do so, because + * this is the first action (other than possibly a + * back-up) that will match for the new input source. + */ + yy_n_chars = yy_current_buffer->yy_n_chars; + yy_current_buffer->yy_input_file = yyin; + yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL; + } + + /* Note that here we test for yy_c_buf_p "<=" to the position + * of the first EOB in the buffer, since yy_c_buf_p will + * already have been incremented past the NUL character + * (since all states make transitions on EOB to the + * end-of-buffer state). Contrast this with the test + * in input(). + */ + if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] ) + { /* This was really a NUL. */ + yy_state_type yy_next_state; + + yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state(); + + /* Okay, we're now positioned to make the NUL + * transition. We couldn't have + * yy_get_previous_state() go ahead and do it + * for us because it doesn't know how to deal + * with the possibility of jamming (and we don't + * want to build jamming into it because then it + * will run more slowly). + */ + + yy_next_state = yy_try_NUL_trans( yy_current_state ); + + yy_bp = yytext_ptr + YY_MORE_ADJ; + + if ( yy_next_state ) + { + /* Consume the NUL. */ + yy_cp = ++yy_c_buf_p; + yy_current_state = yy_next_state; + goto yy_match; + } + + else + { + yy_cp = yy_c_buf_p; + goto yy_find_action; + } + } + + else switch ( yy_get_next_buffer() ) + { + case EOB_ACT_END_OF_FILE: + { + yy_did_buffer_switch_on_eof = 0; + + if ( yywrap() ) + { + /* Note: because we've taken care in + * yy_get_next_buffer() to have set up + * yytext, we can now set up + * yy_c_buf_p so that if some total + * hoser (like flex itself) wants to + * call the scanner after we return the + * YY_NULL, it'll still work - another + * YY_NULL will get returned. + */ + yy_c_buf_p = yytext_ptr + YY_MORE_ADJ; + + yy_act = YY_STATE_EOF(YY_START); + goto do_action; + } + + else + { + if ( ! yy_did_buffer_switch_on_eof ) + YY_NEW_FILE; + } + break; + } + + case EOB_ACT_CONTINUE_SCAN: + yy_c_buf_p = + yytext_ptr + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state(); + + yy_cp = yy_c_buf_p; + yy_bp = yytext_ptr + YY_MORE_ADJ; + goto yy_match; + + case EOB_ACT_LAST_MATCH: + yy_c_buf_p = + &yy_current_buffer->yy_ch_buf[yy_n_chars]; + + yy_current_state = yy_get_previous_state(); + + yy_cp = yy_c_buf_p; + yy_bp = yytext_ptr + YY_MORE_ADJ; + goto yy_find_action; + } + break; + } + + default: + YY_FATAL_ERROR( + "fatal flex scanner internal error--no action found" ); + } /* end of action switch */ + } /* end of scanning one token */ + } /* end of yylex */ + + +/* yy_get_next_buffer - try to read in a new buffer + * + * Returns a code representing an action: + * EOB_ACT_LAST_MATCH - + * EOB_ACT_CONTINUE_SCAN - continue scanning from current position + * EOB_ACT_END_OF_FILE - end of file + */ + +static int yy_get_next_buffer() + { + register char *dest = yy_current_buffer->yy_ch_buf; + register char *source = yytext_ptr; + register int number_to_move, i; + int ret_val; + + if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] ) + YY_FATAL_ERROR( + "fatal flex scanner internal error--end of buffer missed" ); + + if ( yy_current_buffer->yy_fill_buffer == 0 ) + { /* Don't try to fill the buffer, so this is an EOF. */ + if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 ) + { + /* We matched a singled characater, the EOB, so + * treat this as a final EOF. + */ + return EOB_ACT_END_OF_FILE; + } + + else + { + /* We matched some text prior to the EOB, first + * process it. + */ + return EOB_ACT_LAST_MATCH; + } + } + + /* Try to read more data. */ + + /* First move last chars to start of buffer. */ + number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1; + + for ( i = 0; i < number_to_move; ++i ) + *(dest++) = *(source++); + + if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING ) + /* don't do the read, it's not guaranteed to return an EOF, + * just force an EOF + */ + yy_n_chars = 0; + + else + { + int num_to_read = + yy_current_buffer->yy_buf_size - number_to_move - 1; + + while ( num_to_read <= 0 ) + { /* Not enough room in the buffer - grow it. */ +#ifdef YY_USES_REJECT + YY_FATAL_ERROR( +"input buffer overflow, can't enlarge buffer because scanner uses REJECT" ); +#else + + /* just a shorter name for the current buffer */ + YY_BUFFER_STATE b = yy_current_buffer; + + int yy_c_buf_p_offset = + (int) (yy_c_buf_p - b->yy_ch_buf); + + if ( b->yy_is_our_buffer ) + { + int new_size = b->yy_buf_size * 2; + + if ( new_size <= 0 ) + b->yy_buf_size += b->yy_buf_size / 8; + else + b->yy_buf_size *= 2; + + b->yy_ch_buf = (char *) + /* Include room in for 2 EOB chars. */ + yy_flex_realloc( (void *) b->yy_ch_buf, + b->yy_buf_size + 2 ); + } + else + /* Can't grow it, we don't own it. */ + b->yy_ch_buf = 0; + + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( + "fatal error - scanner input buffer overflow" ); + + yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; + + num_to_read = yy_current_buffer->yy_buf_size - + number_to_move - 1; +#endif + } + + if ( num_to_read > YY_READ_BUF_SIZE ) + num_to_read = YY_READ_BUF_SIZE; + + /* Read in more data. */ + YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]), + yy_n_chars, num_to_read ); + } + + if ( yy_n_chars == 0 ) + { + if ( number_to_move == YY_MORE_ADJ ) + { + ret_val = EOB_ACT_END_OF_FILE; + yyrestart( yyin ); + } + + else + { + ret_val = EOB_ACT_LAST_MATCH; + yy_current_buffer->yy_buffer_status = + YY_BUFFER_EOF_PENDING; + } + } + + else + ret_val = EOB_ACT_CONTINUE_SCAN; + + yy_n_chars += number_to_move; + yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR; + yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; + + yytext_ptr = &yy_current_buffer->yy_ch_buf[0]; + + return ret_val; + } + + +/* yy_get_previous_state - get the state just before the EOB char was reached */ + +static yy_state_type yy_get_previous_state() + { + register yy_state_type yy_current_state; + register char *yy_cp; + + yy_current_state = yy_start; + + for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp ) + { + register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + if ( yy_accept[yy_current_state] ) + { + yy_last_accepting_state = yy_current_state; + yy_last_accepting_cpos = yy_cp; + } + 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 >= 475 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + } + + return yy_current_state; + } + + +/* yy_try_NUL_trans - try to make a transition on the NUL character + * + * synopsis + * next_state = yy_try_NUL_trans( current_state ); + */ + +#ifdef YY_USE_PROTOS +static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state ) +#else +static yy_state_type yy_try_NUL_trans( yy_current_state ) +yy_state_type yy_current_state; +#endif + { + register int yy_is_jam; + register char *yy_cp = yy_c_buf_p; + + register YY_CHAR yy_c = 1; + if ( yy_accept[yy_current_state] ) + { + yy_last_accepting_state = yy_current_state; + yy_last_accepting_cpos = yy_cp; + } + 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 >= 475 ) + 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 == 474); + + return yy_is_jam ? 0 : yy_current_state; + } + + +#ifndef YY_NO_UNPUT +#ifdef YY_USE_PROTOS +static void yyunput( int c, register char *yy_bp ) +#else +static void yyunput( c, yy_bp ) +int c; +register char *yy_bp; +#endif + { + register char *yy_cp = yy_c_buf_p; + + /* undo effects of setting up yytext */ + *yy_cp = yy_hold_char; + + if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) + { /* need to shift things up to make room */ + /* +2 for EOB chars. */ + register int number_to_move = yy_n_chars + 2; + register char *dest = &yy_current_buffer->yy_ch_buf[ + yy_current_buffer->yy_buf_size + 2]; + register char *source = + &yy_current_buffer->yy_ch_buf[number_to_move]; + + while ( source > yy_current_buffer->yy_ch_buf ) + *--dest = *--source; + + yy_cp += (int) (dest - source); + yy_bp += (int) (dest - source); + yy_n_chars = yy_current_buffer->yy_buf_size; + + if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) + YY_FATAL_ERROR( "flex scanner push-back overflow" ); + } + + *--yy_cp = (char) c; + + + yytext_ptr = yy_bp; + yy_hold_char = *yy_cp; + yy_c_buf_p = yy_cp; + } +#endif /* ifndef YY_NO_UNPUT */ + + +#ifdef __cplusplus +static int yyinput() +#else +static int input() +#endif + { + int c; + + *yy_c_buf_p = yy_hold_char; + + if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) + { + /* yy_c_buf_p now points to the character we want to return. + * If this occurs *before* the EOB characters, then it's a + * valid NUL; if not, then we've hit the end of the buffer. + */ + if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] ) + /* This was really a NUL. */ + *yy_c_buf_p = '\0'; + + else + { /* need more input */ + yytext_ptr = yy_c_buf_p; + ++yy_c_buf_p; + + switch ( yy_get_next_buffer() ) + { + case EOB_ACT_END_OF_FILE: + { + if ( yywrap() ) + { + yy_c_buf_p = + yytext_ptr + YY_MORE_ADJ; + return EOF; + } + + if ( ! yy_did_buffer_switch_on_eof ) + YY_NEW_FILE; +#ifdef __cplusplus + return yyinput(); +#else + return input(); +#endif + } + + case EOB_ACT_CONTINUE_SCAN: + yy_c_buf_p = yytext_ptr + YY_MORE_ADJ; + break; + + case EOB_ACT_LAST_MATCH: +#ifdef __cplusplus + YY_FATAL_ERROR( + "unexpected last match in yyinput()" ); +#else + YY_FATAL_ERROR( + "unexpected last match in input()" ); +#endif + } + } + } + + c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */ + *yy_c_buf_p = '\0'; /* preserve yytext */ + yy_hold_char = *++yy_c_buf_p; + + + return c; + } + + +#ifdef YY_USE_PROTOS +void yyrestart( FILE *input_file ) +#else +void yyrestart( input_file ) +FILE *input_file; +#endif + { + if ( ! yy_current_buffer ) + yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); + + yy_init_buffer( yy_current_buffer, input_file ); + yy_load_buffer_state(); + } + + +#ifdef YY_USE_PROTOS +void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer ) +#else +void yy_switch_to_buffer( new_buffer ) +YY_BUFFER_STATE new_buffer; +#endif + { + if ( yy_current_buffer == new_buffer ) + return; + + if ( yy_current_buffer ) + { + /* Flush out information for old buffer. */ + *yy_c_buf_p = yy_hold_char; + yy_current_buffer->yy_buf_pos = yy_c_buf_p; + yy_current_buffer->yy_n_chars = yy_n_chars; + } + + yy_current_buffer = new_buffer; + yy_load_buffer_state(); + + /* We don't actually know whether we did this switch during + * EOF (yywrap()) processing, but the only time this flag + * is looked at is after yywrap() is called, so it's safe + * to go ahead and always set it. + */ + yy_did_buffer_switch_on_eof = 1; + } + + +#ifdef YY_USE_PROTOS +void yy_load_buffer_state( void ) +#else +void yy_load_buffer_state() +#endif + { + yy_n_chars = yy_current_buffer->yy_n_chars; + yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos; + yyin = yy_current_buffer->yy_input_file; + yy_hold_char = *yy_c_buf_p; + } + + +#ifdef YY_USE_PROTOS +YY_BUFFER_STATE yy_create_buffer( FILE *file, int size ) +#else +YY_BUFFER_STATE yy_create_buffer( file, size ) +FILE *file; +int size; +#endif + { + YY_BUFFER_STATE b; + + b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); + + b->yy_buf_size = size; + + /* yy_ch_buf has to be 2 characters longer than the size given because + * we need to put in 2 end-of-buffer characters. + */ + b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 ); + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); + + b->yy_is_our_buffer = 1; + + yy_init_buffer( b, file ); + + return b; + } + + +#ifdef YY_USE_PROTOS +void yy_delete_buffer( YY_BUFFER_STATE b ) +#else +void yy_delete_buffer( b ) +YY_BUFFER_STATE b; +#endif + { + if ( ! b ) + return; + + if ( b == yy_current_buffer ) + yy_current_buffer = (YY_BUFFER_STATE) 0; + + if ( b->yy_is_our_buffer ) + yy_flex_free( (void *) b->yy_ch_buf ); + + yy_flex_free( (void *) b ); + } + + +#ifndef YY_ALWAYS_INTERACTIVE +#ifndef YY_NEVER_INTERACTIVE +extern int isatty YY_PROTO(( int )); +#endif +#endif + +#ifdef YY_USE_PROTOS +void yy_init_buffer( YY_BUFFER_STATE b, FILE *file ) +#else +void yy_init_buffer( b, file ) +YY_BUFFER_STATE b; +FILE *file; +#endif + + + { + yy_flush_buffer( b ); + + b->yy_input_file = file; + b->yy_fill_buffer = 1; + +#if YY_ALWAYS_INTERACTIVE + b->yy_is_interactive = 1; +#else +#if YY_NEVER_INTERACTIVE + b->yy_is_interactive = 0; +#else + b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; +#endif +#endif + } + + +#ifdef YY_USE_PROTOS +void yy_flush_buffer( YY_BUFFER_STATE b ) +#else +void yy_flush_buffer( b ) +YY_BUFFER_STATE b; +#endif + + { + b->yy_n_chars = 0; + + /* We always need two end-of-buffer characters. The first causes + * a transition to the end-of-buffer state. The second causes + * a jam in that state. + */ + b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; + b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; + + b->yy_buf_pos = &b->yy_ch_buf[0]; + + b->yy_at_bol = 1; + b->yy_buffer_status = YY_BUFFER_NEW; + + if ( b == yy_current_buffer ) + yy_load_buffer_state(); + } + + +#ifndef YY_NO_SCAN_BUFFER +#ifdef YY_USE_PROTOS +YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size ) +#else +YY_BUFFER_STATE yy_scan_buffer( base, size ) +char *base; +yy_size_t size; +#endif + { + YY_BUFFER_STATE b; + + if ( size < 2 || + base[size-2] != YY_END_OF_BUFFER_CHAR || + base[size-1] != YY_END_OF_BUFFER_CHAR ) + /* They forgot to leave room for the EOB's. */ + return 0; + + b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); + + b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_pos = b->yy_ch_buf = base; + b->yy_is_our_buffer = 0; + b->yy_input_file = 0; + b->yy_n_chars = b->yy_buf_size; + b->yy_is_interactive = 0; + b->yy_at_bol = 1; + b->yy_fill_buffer = 0; + b->yy_buffer_status = YY_BUFFER_NEW; + + yy_switch_to_buffer( b ); + + return b; + } +#endif + + +#ifndef YY_NO_SCAN_STRING +#ifdef YY_USE_PROTOS +YY_BUFFER_STATE yy_scan_string( yyconst char *str ) +#else +YY_BUFFER_STATE yy_scan_string( str ) +yyconst char *str; +#endif + { + int len; + for ( len = 0; str[len]; ++len ) + ; + + return yy_scan_bytes( str, len ); + } +#endif + + +#ifndef YY_NO_SCAN_BYTES +#ifdef YY_USE_PROTOS +YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len ) +#else +YY_BUFFER_STATE yy_scan_bytes( bytes, len ) +yyconst char *bytes; +int len; +#endif + { + YY_BUFFER_STATE b; + char *buf; + yy_size_t n; + int i; + + /* Get memory for full buffer, including space for trailing EOB's. */ + n = len + 2; + buf = (char *) yy_flex_alloc( n ); + if ( ! buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); + + for ( i = 0; i < len; ++i ) + buf[i] = bytes[i]; + + buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR; + + b = yy_scan_buffer( buf, n ); + if ( ! b ) + YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); + + /* It's okay to grow etc. this buffer, and we should throw it + * away when we're done. + */ + b->yy_is_our_buffer = 1; + + return b; + } +#endif + + +#ifndef YY_NO_PUSH_STATE +#ifdef YY_USE_PROTOS +static void yy_push_state( int new_state ) +#else +static void yy_push_state( new_state ) +int new_state; +#endif + { + if ( yy_start_stack_ptr >= yy_start_stack_depth ) + { + yy_size_t new_size; + + yy_start_stack_depth += YY_START_STACK_INCR; + new_size = yy_start_stack_depth * sizeof( int ); + + if ( ! yy_start_stack ) + yy_start_stack = (int *) yy_flex_alloc( new_size ); + + else + yy_start_stack = (int *) yy_flex_realloc( + (void *) yy_start_stack, new_size ); + + if ( ! yy_start_stack ) + YY_FATAL_ERROR( + "out of memory expanding start-condition stack" ); + } + + yy_start_stack[yy_start_stack_ptr++] = YY_START; + + BEGIN(new_state); + } +#endif + + +#ifndef YY_NO_POP_STATE +static void yy_pop_state() + { + if ( --yy_start_stack_ptr < 0 ) + YY_FATAL_ERROR( "start-condition stack underflow" ); + + BEGIN(yy_start_stack[yy_start_stack_ptr]); + } +#endif + + +#ifndef YY_NO_TOP_STATE +static int yy_top_state() + { + return yy_start_stack[yy_start_stack_ptr - 1]; + } +#endif + +#ifndef YY_EXIT_FAILURE +#define YY_EXIT_FAILURE 2 +#endif + +#ifdef YY_USE_PROTOS +static void yy_fatal_error( yyconst char msg[] ) +#else +static void yy_fatal_error( msg ) +char msg[]; +#endif + { + (void) fprintf( stderr, "%s\n", msg ); + exit( YY_EXIT_FAILURE ); + } + + + +/* Redefine yyless() so it works in section 3 code. */ + +#undef yyless +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + yytext[yyleng] = yy_hold_char; \ + yy_c_buf_p = yytext + n - YY_MORE_ADJ; \ + yy_hold_char = *yy_c_buf_p; \ + *yy_c_buf_p = '\0'; \ + yyleng = n; \ + } \ + while ( 0 ) + + +/* Internal utility routines. */ + +#ifndef yytext_ptr +#ifdef YY_USE_PROTOS +static void yy_flex_strncpy( char *s1, yyconst char *s2, int n ) +#else +static void yy_flex_strncpy( s1, s2, n ) +char *s1; +yyconst char *s2; +int n; +#endif + { + register int i; + for ( i = 0; i < n; ++i ) + s1[i] = s2[i]; + } +#endif + + +#ifdef YY_USE_PROTOS +static void *yy_flex_alloc( yy_size_t size ) +#else +static void *yy_flex_alloc( size ) +yy_size_t size; +#endif + { + return (void *) malloc( size ); + } + +#ifdef YY_USE_PROTOS +static void *yy_flex_realloc( void *ptr, yy_size_t size ) +#else +static void *yy_flex_realloc( ptr, size ) +void *ptr; +yy_size_t size; +#endif + { + /* The cast to (char *) in the following accommodates both + * implementations that use char* generic pointers, and those + * that use void* generic pointers. It works with the latter + * because both ANSI C and C++ allow castless assignment from + * any pointer type to void*, and deal with argument conversions + * as though doing an assignment. + */ + return (void *) realloc( (char *) ptr, size ); + } + +#ifdef YY_USE_PROTOS +static void yy_flex_free( void *ptr ) +#else +static void yy_flex_free( ptr ) +void *ptr; +#endif + { + free( ptr ); + } + +#if YY_MAIN +int main() + { + yylex(); + return 0; + } +#endif +#line 307 "C:\\opt\\hlsl2glslfork\\hlslang\\MachineIndependent\\hlslang.l" + + + + +//Including Pre-processor. +extern "C" { + #include "./preprocessor/preprocess.h" +} + +// +// The YY_INPUT macro just calls this. Maybe this could be just put into +// the macro directly. +// + +int yy_input(char* buf, int max_size) +{ + int len; + + if ((len = yylex_CPP(buf, max_size)) == 0) + return 0; + if (len >= max_size) + YY_FATAL_ERROR( "input buffer overflow, can't enlarge buffer because scanner uses REJECT" ); + + //debug code to dump the token stream to stdout + //buf[len] = '\0'; + //printf( ":: %s\n", buf); + + buf[len] = ' '; + return len+1; +} + + +// +// Parse an array of strings using yyparse. We set up globals used by +// yywrap. +// +// Returns 0 for success, as per yyparse(). +// +int PaParseString(char* source, TParseContext& parseContextLocal) +{ + int sourceLen; + + ScanFromString(source); + + //Storing the Current Compiler Parse context into the cpp structure. + cpp->pC = (void*)&parseContextLocal; + + if (!source) { + parseContextLocal.error(gNullSourceLoc, "Null shader source string", "", ""); + parseContextLocal.recover(); + return 1; + } + + sourceLen = (int) strlen(source); + + yyrestart(0); + (&parseContextLocal)->AfterEOF = false; + lexlineno.file = NULL; + lexlineno.line = 1; + + if (sourceLen >= 0) { + int ret; + #ifdef _WIN32 + ret = yyparse(parseContextLocal); + #else + ret = yyparse((void*)(&parseContextLocal)); + #endif + if (cpp->CompileError == 1 || parseContextLocal.recoveredFromError || parseContextLocal.numErrors > 0) + return 1; + else + return 0; + } + else + return 0; +} + +void yyerror(const char *s) +{ + if (((TParseContext *)cpp->pC)->AfterEOF) { + if (cpp->tokensBeforeEOF == 1) { + GlobalParseContext->error(lexlineno, "syntax error", "pre-mature EOF", s, ""); + GlobalParseContext->recover(); + } + } else { + GlobalParseContext->error(lexlineno, "syntax error", yytext, s, ""); + GlobalParseContext->recover(); + } +} + +void PaReservedWord() +{ + GlobalParseContext->error(lexlineno, "Reserved word.", yytext, "", ""); + GlobalParseContext->recover(); +} + +int PaIdentOrType(TString& id, TParseContext& parseContextLocal, TSymbol*& symbol) +{ + symbol = parseContextLocal.symbolTable.find(id); + if (parseContextLocal.lexAfterType == false && symbol && symbol->isVariable()) { + TVariable* variable = static_cast(symbol); + if (variable->isUserType()) { + parseContextLocal.lexAfterType = true; + return TYPE_NAME; + } + } + + return IDENTIFIER; +} + +int PaParseComment(TSourceLoc &lineno, TParseContext& parseContextLocal) +{ + int transitionFlag = 0; + int nextChar; + + while (transitionFlag != 2) { + nextChar = yyinput(); + if (nextChar == '\n') + lineno.line++; + switch (nextChar) { + case '*' : + transitionFlag = 1; + break; + case '/' : /* if star is the previous character, then it is the end of comment */ + if (transitionFlag == 1) { + return 1 ; + } + break; + case EOF : + /* Raise error message here */ + parseContextLocal.error(lexlineno, "End of shader found before end of comment.", "", "", ""); + GlobalParseContext->recover(); + return YY_NULL; + default : /* Any other character will be a part of the comment */ + transitionFlag = 0; + } + } + return 1; +} + +extern "C" { + +void CPPWarningToInfoLog(const char *msg) +{ + ((TParseContext *)cpp->pC)->infoSink.info.message(EPrefixWarning, msg, lexlineno); +} + +void CPPShInfoLogMsg(const char *msg) +{ + ((TParseContext *)cpp->pC)->error(lexlineno,"", "",msg,""); + GlobalParseContext->recover(); +} + +void CPPErrorToInfoLog(char *msg) +{ + ((TParseContext *)cpp->pC)->error(lexlineno,"syntax error", "",msg,""); + GlobalParseContext->recover(); +} + +void SetLineNumber(TSourceLoc line) +{ + lexlineno.file = NULL; + lexlineno.line = line.line; + + if(line.file && line.file[0]) + { + // GLSL does not permit quoted strings in #line directives + + if(line.file[0] == '"') + { + TString stripped(line.file + 1); + size_t len = stripped.size(); + if(stripped[len - 1] == '"') + { + stripped.resize(len - 1); + } + + lexlineno.file = NewPoolTString(stripped.c_str())->c_str(); + } + else + { + lexlineno.file = NewPoolTString(line.file)->c_str(); + } + } +} + +const TSourceLoc GetLineNumber(void) +{ + return lexlineno; +} + +void IncLineNumber(void) +{ + ++lexlineno.line; +} + +void DecLineNumber(void) +{ + if (lexlineno.line > 0) + --lexlineno.line; +} + +void StoreStr(char *string) +{ + TString strSrc; + strSrc = TString(string); + + ((TParseContext *)cpp->pC)->HashErrMsg = ((TParseContext *)cpp->pC)->HashErrMsg + " " + strSrc; +} + +const char* GetStrfromTStr(void) +{ + cpp->ErrMsg = (((TParseContext *)cpp->pC)->HashErrMsg).c_str(); + return cpp->ErrMsg; +} + +void ResetTString(void) +{ + ((TParseContext *)cpp->pC)->HashErrMsg = ""; +} + +} // extern "C" + +void setInitialState() +{ + yy_start = 1; +} diff --git a/hlslang/MachineIndependent/hlslang.output b/hlslang/MachineIndependent/hlslang.output new file mode 100755 index 0000000..15148c1 --- /dev/null +++ b/hlslang/MachineIndependent/hlslang.output @@ -0,0 +1,12633 @@ + + +Terminals which are not used: + + MATRIX + + +State 433 contains 1 shift/reduce conflict. + +Grammar +rule 1 variable_identifier -> IDENTIFIER +rule 2 primary_expression -> variable_identifier +rule 3 primary_expression -> INTCONSTANT +rule 4 primary_expression -> FLOATCONSTANT +rule 5 primary_expression -> BOOLCONSTANT +rule 6 primary_expression -> LEFT_PAREN expression RIGHT_PAREN +rule 7 postfix_expression -> primary_expression +rule 8 postfix_expression -> postfix_expression LEFT_BRACKET int_expression RIGHT_BRACKET +rule 9 postfix_expression -> function_call +rule 10 postfix_expression -> postfix_expression DOT FIELD_SELECTION +rule 11 postfix_expression -> postfix_expression INC_OP +rule 12 postfix_expression -> postfix_expression DEC_OP +rule 13 int_expression -> expression +rule 14 function_call -> function_call_or_method +rule 15 function_call_or_method -> function_call_generic +rule 16 function_call_or_method -> postfix_expression DOT function_call_generic +rule 17 function_call_generic -> function_call_header_with_parameters RIGHT_PAREN +rule 18 function_call_generic -> function_call_header_no_parameters RIGHT_PAREN +rule 19 function_call_header_no_parameters -> function_call_header VOID_TYPE +rule 20 function_call_header_no_parameters -> function_call_header +rule 21 function_call_header_with_parameters -> function_call_header assign_expression +rule 22 function_call_header_with_parameters -> function_call_header_with_parameters COMMA assign_expression +rule 23 function_call_header -> function_identifier LEFT_PAREN +rule 24 function_identifier -> type_specifier +rule 25 function_identifier -> IDENTIFIER +rule 26 function_identifier -> FIELD_SELECTION +rule 27 unary_expression -> postfix_expression +rule 28 unary_expression -> INC_OP unary_expression +rule 29 unary_expression -> DEC_OP unary_expression +rule 30 unary_expression -> unary_operator unary_expression +rule 31 unary_expression -> LEFT_PAREN type_specifier_nonarray RIGHT_PAREN unary_expression +rule 32 unary_operator -> PLUS +rule 33 unary_operator -> DASH +rule 34 unary_operator -> BANG +rule 35 unary_operator -> TILDE +rule 36 mul_expression -> unary_expression +rule 37 mul_expression -> mul_expression STAR unary_expression +rule 38 mul_expression -> mul_expression SLASH unary_expression +rule 39 mul_expression -> mul_expression PERCENT unary_expression +rule 40 add_expression -> mul_expression +rule 41 add_expression -> add_expression PLUS mul_expression +rule 42 add_expression -> add_expression DASH mul_expression +rule 43 shift_expression -> add_expression +rule 44 shift_expression -> shift_expression LEFT_OP add_expression +rule 45 shift_expression -> shift_expression RIGHT_OP add_expression +rule 46 rel_expression -> shift_expression +rule 47 rel_expression -> rel_expression LEFT_ANGLE shift_expression +rule 48 rel_expression -> rel_expression RIGHT_ANGLE shift_expression +rule 49 rel_expression -> rel_expression LE_OP shift_expression +rule 50 rel_expression -> rel_expression GE_OP shift_expression +rule 51 eq_expression -> rel_expression +rule 52 eq_expression -> eq_expression EQ_OP rel_expression +rule 53 eq_expression -> eq_expression NE_OP rel_expression +rule 54 and_expression -> eq_expression +rule 55 and_expression -> and_expression AMPERSAND eq_expression +rule 56 xor_expression -> and_expression +rule 57 xor_expression -> xor_expression CARET and_expression +rule 58 or_expression -> xor_expression +rule 59 or_expression -> or_expression VERTICAL_BAR xor_expression +rule 60 log_and_expression -> or_expression +rule 61 log_and_expression -> log_and_expression AND_OP or_expression +rule 62 log_xor_expression -> log_and_expression +rule 63 log_xor_expression -> log_xor_expression XOR_OP log_and_expression +rule 64 log_or_expression -> log_xor_expression +rule 65 log_or_expression -> log_or_expression OR_OP log_xor_expression +rule 66 cond_expression -> log_or_expression +rule 67 cond_expression -> log_or_expression QUESTION expression COLON assign_expression +rule 68 assign_expression -> cond_expression +rule 69 assign_expression -> unary_expression assignment_operator assign_expression +rule 70 assignment_operator -> EQUAL +rule 71 assignment_operator -> MUL_ASSIGN +rule 72 assignment_operator -> DIV_ASSIGN +rule 73 assignment_operator -> MOD_ASSIGN +rule 74 assignment_operator -> ADD_ASSIGN +rule 75 assignment_operator -> SUB_ASSIGN +rule 76 assignment_operator -> LEFT_ASSIGN +rule 77 assignment_operator -> RIGHT_ASSIGN +rule 78 assignment_operator -> AND_ASSIGN +rule 79 assignment_operator -> XOR_ASSIGN +rule 80 assignment_operator -> OR_ASSIGN +rule 81 expression -> assign_expression +rule 82 expression -> expression COMMA assign_expression +rule 83 const_expression -> cond_expression +rule 84 declaration -> function_prototype SEMICOLON +rule 85 declaration -> init_declarator_list SEMICOLON +rule 86 function_prototype -> function_declarator RIGHT_PAREN +rule 87 function_prototype -> function_declarator RIGHT_PAREN COLON IDENTIFIER +rule 88 function_declarator -> function_header +rule 89 function_declarator -> function_header_with_parameters +rule 90 function_header_with_parameters -> function_header parameter_declaration +rule 91 function_header_with_parameters -> function_header_with_parameters COMMA parameter_declaration +rule 92 function_header -> fully_specified_type IDENTIFIER LEFT_PAREN +rule 93 parameter_declarator -> type_specifier IDENTIFIER +rule 94 parameter_declarator -> type_specifier IDENTIFIER EQUAL initializer +rule 95 parameter_declarator -> type_specifier IDENTIFIER register_specifier +rule 96 parameter_declarator -> type_specifier IDENTIFIER COLON IDENTIFIER +rule 97 parameter_declarator -> type_specifier IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET +rule 98 parameter_declarator -> type_specifier IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET COLON IDENTIFIER +rule 99 parameter_declaration -> type_qualifier parameter_qualifier parameter_declarator +rule 100 parameter_declaration -> parameter_qualifier parameter_declarator +rule 101 parameter_declaration -> type_qualifier parameter_qualifier parameter_type_specifier +rule 102 parameter_declaration -> parameter_qualifier parameter_type_specifier +rule 103 parameter_qualifier -> /* empty */ +rule 104 parameter_qualifier -> IN_QUAL +rule 105 parameter_qualifier -> OUT_QUAL +rule 106 parameter_qualifier -> INOUT_QUAL +rule 107 parameter_type_specifier -> type_specifier +rule 108 init_declarator_list -> single_declaration +rule 109 init_declarator_list -> init_declarator_list COMMA IDENTIFIER type_info +rule 110 init_declarator_list -> init_declarator_list COMMA IDENTIFIER LEFT_BRACKET RIGHT_BRACKET type_info +rule 111 init_declarator_list -> init_declarator_list COMMA IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET type_info +rule 112 init_declarator_list -> init_declarator_list COMMA IDENTIFIER LEFT_BRACKET RIGHT_BRACKET type_info EQUAL initializer +rule 113 init_declarator_list -> init_declarator_list COMMA IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET type_info EQUAL initializer +rule 114 init_declarator_list -> init_declarator_list COMMA IDENTIFIER type_info EQUAL initializer +rule 115 single_declaration -> fully_specified_type +rule 116 single_declaration -> fully_specified_type IDENTIFIER type_info +rule 117 single_declaration -> fully_specified_type IDENTIFIER LEFT_BRACKET RIGHT_BRACKET type_info +rule 118 single_declaration -> fully_specified_type IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET type_info +rule 119 single_declaration -> fully_specified_type IDENTIFIER LEFT_BRACKET RIGHT_BRACKET type_info EQUAL initializer +rule 120 single_declaration -> fully_specified_type IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET type_info EQUAL initializer +rule 121 single_declaration -> fully_specified_type IDENTIFIER type_info EQUAL initializer +rule 122 fully_specified_type -> type_specifier +rule 123 fully_specified_type -> type_qualifier type_specifier +rule 124 type_qualifier -> CONST_QUAL +rule 125 type_qualifier -> STATIC_QUAL +rule 126 type_qualifier -> STATIC_QUAL CONST_QUAL +rule 127 type_qualifier -> CONST_QUAL STATIC_QUAL +rule 128 type_qualifier -> UNIFORM +rule 129 type_specifier -> type_specifier_nonarray +rule 130 type_specifier -> type_specifier_nonarray LEFT_BRACKET const_expression RIGHT_BRACKET +rule 131 type_specifier_nonarray -> VOID_TYPE +rule 132 type_specifier_nonarray -> FLOAT_TYPE +rule 133 type_specifier_nonarray -> HALF_TYPE +rule 134 type_specifier_nonarray -> FIXED_TYPE +rule 135 type_specifier_nonarray -> INT_TYPE +rule 136 type_specifier_nonarray -> BOOL_TYPE +rule 137 type_specifier_nonarray -> VECTOR LEFT_ANGLE FLOAT_TYPE COMMA INTCONSTANT RIGHT_ANGLE +rule 138 type_specifier_nonarray -> VECTOR LEFT_ANGLE INT_TYPE COMMA INTCONSTANT RIGHT_ANGLE +rule 139 type_specifier_nonarray -> VECTOR LEFT_ANGLE BOOL_TYPE COMMA INTCONSTANT RIGHT_ANGLE +rule 140 type_specifier_nonarray -> VEC2 +rule 141 type_specifier_nonarray -> VEC3 +rule 142 type_specifier_nonarray -> VEC4 +rule 143 type_specifier_nonarray -> HVEC2 +rule 144 type_specifier_nonarray -> HVEC3 +rule 145 type_specifier_nonarray -> HVEC4 +rule 146 type_specifier_nonarray -> FVEC2 +rule 147 type_specifier_nonarray -> FVEC3 +rule 148 type_specifier_nonarray -> FVEC4 +rule 149 type_specifier_nonarray -> BVEC2 +rule 150 type_specifier_nonarray -> BVEC3 +rule 151 type_specifier_nonarray -> BVEC4 +rule 152 type_specifier_nonarray -> IVEC2 +rule 153 type_specifier_nonarray -> IVEC3 +rule 154 type_specifier_nonarray -> IVEC4 +rule 155 type_specifier_nonarray -> MATRIX2x2 +rule 156 type_specifier_nonarray -> MATRIX2x3 +rule 157 type_specifier_nonarray -> MATRIX2x4 +rule 158 type_specifier_nonarray -> MATRIX3x2 +rule 159 type_specifier_nonarray -> MATRIX3x3 +rule 160 type_specifier_nonarray -> MATRIX3x4 +rule 161 type_specifier_nonarray -> MATRIX4x2 +rule 162 type_specifier_nonarray -> MATRIX4x3 +rule 163 type_specifier_nonarray -> MATRIX4x4 +rule 164 type_specifier_nonarray -> HMATRIX2x2 +rule 165 type_specifier_nonarray -> HMATRIX2x3 +rule 166 type_specifier_nonarray -> HMATRIX2x4 +rule 167 type_specifier_nonarray -> HMATRIX3x2 +rule 168 type_specifier_nonarray -> HMATRIX3x3 +rule 169 type_specifier_nonarray -> HMATRIX3x4 +rule 170 type_specifier_nonarray -> HMATRIX4x2 +rule 171 type_specifier_nonarray -> HMATRIX4x3 +rule 172 type_specifier_nonarray -> HMATRIX4x4 +rule 173 type_specifier_nonarray -> FMATRIX2x2 +rule 174 type_specifier_nonarray -> FMATRIX2x3 +rule 175 type_specifier_nonarray -> FMATRIX2x4 +rule 176 type_specifier_nonarray -> FMATRIX3x2 +rule 177 type_specifier_nonarray -> FMATRIX3x3 +rule 178 type_specifier_nonarray -> FMATRIX3x4 +rule 179 type_specifier_nonarray -> FMATRIX4x2 +rule 180 type_specifier_nonarray -> FMATRIX4x3 +rule 181 type_specifier_nonarray -> FMATRIX4x4 +rule 182 type_specifier_nonarray -> TEXTURE +rule 183 type_specifier_nonarray -> SAMPLERGENERIC +rule 184 type_specifier_nonarray -> SAMPLER1D +rule 185 type_specifier_nonarray -> SAMPLER2D +rule 186 type_specifier_nonarray -> SAMPLER2D_HALF +rule 187 type_specifier_nonarray -> SAMPLER2D_FLOAT +rule 188 type_specifier_nonarray -> SAMPLER3D +rule 189 type_specifier_nonarray -> SAMPLERCUBE +rule 190 type_specifier_nonarray -> SAMPLERCUBE_HALF +rule 191 type_specifier_nonarray -> SAMPLERCUBE_FLOAT +rule 192 type_specifier_nonarray -> SAMPLERRECT +rule 193 type_specifier_nonarray -> SAMPLERRECTSHADOW +rule 194 type_specifier_nonarray -> SAMPLER1DSHADOW +rule 195 type_specifier_nonarray -> SAMPLER2DSHADOW +rule 196 type_specifier_nonarray -> struct_specifier +rule 197 type_specifier_nonarray -> TYPE_NAME +rule 198 struct_specifier -> STRUCT IDENTIFIER LEFT_BRACE struct_declaration_list RIGHT_BRACE +rule 199 struct_specifier -> STRUCT LEFT_BRACE struct_declaration_list RIGHT_BRACE +rule 200 struct_declaration_list -> struct_declaration +rule 201 struct_declaration_list -> struct_declaration_list struct_declaration +rule 202 struct_declaration -> type_specifier struct_declarator_list SEMICOLON +rule 203 struct_declarator_list -> struct_declarator +rule 204 struct_declarator_list -> struct_declarator_list COMMA struct_declarator +rule 205 struct_declarator -> IDENTIFIER +rule 206 struct_declarator -> IDENTIFIER COLON IDENTIFIER +rule 207 struct_declarator -> IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET +rule 208 struct_declarator -> IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET COLON IDENTIFIER +rule 209 initializer -> assign_expression +rule 210 initializer -> initialization_list +rule 211 initializer -> sampler_initializer +rule 212 declaration_statement -> declaration +rule 213 statement -> compound_statement +rule 214 statement -> simple_statement +rule 215 simple_statement -> declaration_statement +rule 216 simple_statement -> expression_statement +rule 217 simple_statement -> selection_statement +rule 218 simple_statement -> iteration_statement +rule 219 simple_statement -> jump_statement +rule 220 compound_statement -> LEFT_BRACE RIGHT_BRACE +rule 221 @1 -> /* empty */ +rule 222 @2 -> /* empty */ +rule 223 compound_statement -> LEFT_BRACE @1 statement_list @2 RIGHT_BRACE +rule 224 statement_no_new_scope -> compound_statement_no_new_scope +rule 225 statement_no_new_scope -> simple_statement +rule 226 compound_statement_no_new_scope -> LEFT_BRACE RIGHT_BRACE +rule 227 compound_statement_no_new_scope -> LEFT_BRACE statement_list RIGHT_BRACE +rule 228 statement_list -> statement +rule 229 statement_list -> statement_list statement +rule 230 expression_statement -> SEMICOLON +rule 231 expression_statement -> expression SEMICOLON +rule 232 selection_statement -> IF LEFT_PAREN expression RIGHT_PAREN selection_rest_statement +rule 233 selection_rest_statement -> statement ELSE statement +rule 234 selection_rest_statement -> statement +rule 235 condition -> expression +rule 236 condition -> fully_specified_type IDENTIFIER EQUAL initializer +rule 237 @3 -> /* empty */ +rule 238 iteration_statement -> WHILE LEFT_PAREN @3 condition RIGHT_PAREN statement_no_new_scope +rule 239 @4 -> /* empty */ +rule 240 iteration_statement -> DO @4 statement WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON +rule 241 @5 -> /* empty */ +rule 242 iteration_statement -> FOR LEFT_PAREN @5 for_init_statement for_rest_statement RIGHT_PAREN statement_no_new_scope +rule 243 for_init_statement -> expression_statement +rule 244 for_init_statement -> declaration_statement +rule 245 conditionopt -> condition +rule 246 conditionopt -> /* empty */ +rule 247 for_rest_statement -> conditionopt SEMICOLON +rule 248 for_rest_statement -> conditionopt SEMICOLON expression +rule 249 jump_statement -> CONTINUE SEMICOLON +rule 250 jump_statement -> BREAK SEMICOLON +rule 251 jump_statement -> RETURN SEMICOLON +rule 252 jump_statement -> RETURN expression SEMICOLON +rule 253 jump_statement -> DISCARD SEMICOLON +rule 254 translation_unit -> external_declaration +rule 255 translation_unit -> translation_unit external_declaration +rule 256 external_declaration -> function_definition +rule 257 external_declaration -> declaration +rule 258 external_declaration -> SEMICOLON +rule 259 @6 -> /* empty */ +rule 260 function_definition -> function_prototype @6 compound_statement_no_new_scope +rule 261 initialization_list -> LEFT_BRACE initializer_list RIGHT_BRACE +rule 262 initialization_list -> LEFT_BRACE initializer_list COMMA RIGHT_BRACE +rule 263 initializer_list -> assign_expression +rule 264 initializer_list -> initialization_list +rule 265 initializer_list -> initializer_list COMMA assign_expression +rule 266 initializer_list -> initializer_list COMMA initialization_list +rule 267 annotation -> LEFT_ANGLE RIGHT_ANGLE +rule 268 annotation -> LEFT_ANGLE annotation_list RIGHT_ANGLE +rule 269 annotation_list -> annotation_item +rule 270 annotation_list -> annotation_list annotation_item +rule 271 annotation_item -> ann_type IDENTIFIER EQUAL ann_literal SEMICOLON +rule 272 ann_type -> FLOAT_TYPE +rule 273 ann_type -> HALF_TYPE +rule 274 ann_type -> FIXED_TYPE +rule 275 ann_type -> INT_TYPE +rule 276 ann_type -> BOOL_TYPE +rule 277 ann_type -> STRING_TYPE +rule 278 ann_type -> BVEC2 +rule 279 ann_type -> BVEC3 +rule 280 ann_type -> BVEC4 +rule 281 ann_type -> IVEC2 +rule 282 ann_type -> IVEC3 +rule 283 ann_type -> IVEC4 +rule 284 ann_type -> VEC2 +rule 285 ann_type -> VEC3 +rule 286 ann_type -> VEC4 +rule 287 ann_type -> HVEC2 +rule 288 ann_type -> HVEC3 +rule 289 ann_type -> HVEC4 +rule 290 ann_type -> FVEC2 +rule 291 ann_type -> FVEC3 +rule 292 ann_type -> FVEC4 +rule 293 ann_literal -> ann_numerical_constant +rule 294 ann_literal -> STRINGCONSTANT +rule 295 ann_literal -> ann_literal_constructor +rule 296 ann_literal -> ann_literal_init_list +rule 297 ann_numerical_constant -> INTCONSTANT +rule 298 ann_numerical_constant -> BOOLCONSTANT +rule 299 ann_numerical_constant -> FLOATCONSTANT +rule 300 ann_literal_constructor -> ann_type LEFT_PAREN ann_value_list RIGHT_PAREN +rule 301 ann_value_list -> ann_numerical_constant +rule 302 ann_value_list -> ann_value_list COMMA ann_numerical_constant +rule 303 ann_literal_init_list -> LEFT_BRACE ann_value_list RIGHT_BRACE +rule 304 register_specifier -> COLON REGISTER LEFT_PAREN IDENTIFIER RIGHT_PAREN +rule 305 semantic -> COLON IDENTIFIER +rule 306 type_info -> /* empty */ +rule 307 type_info -> semantic +rule 308 type_info -> register_specifier +rule 309 type_info -> annotation +rule 310 type_info -> semantic annotation +rule 311 type_info -> semantic register_specifier +rule 312 type_info -> register_specifier annotation +rule 313 type_info -> semantic register_specifier annotation +rule 314 sampler_initializer -> SAMPLERSTATE LEFT_BRACE sampler_init_list RIGHT_BRACE +rule 315 sampler_initializer -> SAMPLERSTATE LEFT_BRACE RIGHT_BRACE +rule 316 sampler_init_list -> sampler_init_item +rule 317 sampler_init_list -> sampler_init_list sampler_init_item +rule 318 sampler_init_item -> IDENTIFIER EQUAL IDENTIFIER SEMICOLON +rule 319 sampler_init_item -> IDENTIFIER EQUAL LEFT_ANGLE IDENTIFIER RIGHT_ANGLE SEMICOLON +rule 320 sampler_init_item -> IDENTIFIER EQUAL LEFT_PAREN IDENTIFIER RIGHT_PAREN SEMICOLON +rule 321 sampler_init_item -> TEXTURE EQUAL IDENTIFIER SEMICOLON +rule 322 sampler_init_item -> TEXTURE EQUAL LEFT_ANGLE IDENTIFIER RIGHT_ANGLE SEMICOLON +rule 323 sampler_init_item -> TEXTURE EQUAL LEFT_PAREN IDENTIFIER RIGHT_PAREN SEMICOLON + +Terminals, with rules where they appear + +$ (-1) +error (256) +CONST_QUAL (258) 124 126 127 +STATIC_QUAL (259) 125 126 127 +BOOL_TYPE (260) 136 139 276 +FLOAT_TYPE (261) 132 137 272 +INT_TYPE (262) 135 138 275 +STRING_TYPE (263) 277 +FIXED_TYPE (264) 134 274 +HALF_TYPE (265) 133 273 +BREAK (266) 250 +CONTINUE (267) 249 +DO (268) 240 +ELSE (269) 233 +FOR (270) 242 +IF (271) 232 +DISCARD (272) 253 +RETURN (273) 251 252 +BVEC2 (274) 149 278 +BVEC3 (275) 150 279 +BVEC4 (276) 151 280 +IVEC2 (277) 152 281 +IVEC3 (278) 153 282 +IVEC4 (279) 154 283 +VEC2 (280) 140 284 +VEC3 (281) 141 285 +VEC4 (282) 142 286 +HVEC2 (283) 143 287 +HVEC3 (284) 144 288 +HVEC4 (285) 145 289 +FVEC2 (286) 146 290 +FVEC3 (287) 147 291 +FVEC4 (288) 148 292 +MATRIX2x2 (289) 155 +MATRIX2x3 (290) 156 +MATRIX2x4 (291) 157 +MATRIX3x2 (292) 158 +MATRIX3x3 (293) 159 +MATRIX3x4 (294) 160 +MATRIX4x2 (295) 161 +MATRIX4x3 (296) 162 +MATRIX4x4 (297) 163 +HMATRIX2x2 (298) 164 +HMATRIX2x3 (299) 165 +HMATRIX2x4 (300) 166 +HMATRIX3x2 (301) 167 +HMATRIX3x3 (302) 168 +HMATRIX3x4 (303) 169 +HMATRIX4x2 (304) 170 +HMATRIX4x3 (305) 171 +HMATRIX4x4 (306) 172 +FMATRIX2x2 (307) 173 +FMATRIX2x3 (308) 174 +FMATRIX2x4 (309) 175 +FMATRIX3x2 (310) 176 +FMATRIX3x3 (311) 177 +FMATRIX3x4 (312) 178 +FMATRIX4x2 (313) 179 +FMATRIX4x3 (314) 180 +FMATRIX4x4 (315) 181 +IN_QUAL (316) 104 +OUT_QUAL (317) 105 +INOUT_QUAL (318) 106 +UNIFORM (319) 128 +STRUCT (320) 198 199 +VOID_TYPE (321) 19 131 +WHILE (322) 238 240 +SAMPLER1D (323) 184 +SAMPLER2D (324) 185 +SAMPLER3D (325) 188 +SAMPLERCUBE (326) 189 +SAMPLER1DSHADOW (327) 194 +SAMPLER2DSHADOW (328) 195 +SAMPLERRECTSHADOW (329) 193 +SAMPLERRECT (330) 192 +SAMPLER2D_HALF (331) 186 +SAMPLER2D_FLOAT (332) 187 +SAMPLERCUBE_HALF (333) 190 +SAMPLERCUBE_FLOAT (334) 191 +SAMPLERGENERIC (335) 183 +VECTOR (336) 137 138 139 +MATRIX (337) +REGISTER (338) 304 +TEXTURE (339) 182 321 322 323 +SAMPLERSTATE (340) 314 315 +IDENTIFIER (341) 1 25 87 92 93 94 95 96 97 98 109 110 111 112 113 114 + 116 117 118 119 120 121 198 205 206 207 208 236 271 304 305 318 + 319 320 321 322 323 +TYPE_NAME (342) 197 +FLOATCONSTANT (343) 4 299 +INTCONSTANT (344) 3 137 138 139 297 +BOOLCONSTANT (345) 5 298 +STRINGCONSTANT (346) 294 +FIELD_SELECTION (347) 10 26 +LEFT_OP (348) 44 +RIGHT_OP (349) 45 +INC_OP (350) 11 28 +DEC_OP (351) 12 29 +LE_OP (352) 49 +GE_OP (353) 50 +EQ_OP (354) 52 +NE_OP (355) 53 +AND_OP (356) 61 +OR_OP (357) 65 +XOR_OP (358) 63 +MUL_ASSIGN (359) 71 +DIV_ASSIGN (360) 72 +ADD_ASSIGN (361) 74 +MOD_ASSIGN (362) 73 +LEFT_ASSIGN (363) 76 +RIGHT_ASSIGN (364) 77 +AND_ASSIGN (365) 78 +XOR_ASSIGN (366) 79 +OR_ASSIGN (367) 80 +SUB_ASSIGN (368) 75 +LEFT_PAREN (369) 6 23 31 92 232 238 240 242 300 304 320 323 +RIGHT_PAREN (370) 6 17 18 31 86 87 232 238 240 242 300 304 320 323 +LEFT_BRACKET (371) 8 97 98 110 111 112 113 117 118 119 120 130 207 + 208 +RIGHT_BRACKET (372) 8 97 98 110 111 112 113 117 118 119 120 130 207 + 208 +LEFT_BRACE (373) 198 199 220 223 226 227 261 262 303 314 315 +RIGHT_BRACE (374) 198 199 220 223 226 227 261 262 303 314 315 +DOT (375) 10 16 +COMMA (376) 22 82 91 109 110 111 112 113 114 137 138 139 204 262 265 + 266 302 +COLON (377) 67 87 96 98 206 208 304 305 +EQUAL (378) 70 94 112 113 114 119 120 121 236 271 318 319 320 321 322 + 323 +SEMICOLON (379) 84 85 202 230 231 240 247 248 249 250 251 252 253 258 + 271 318 319 320 321 322 323 +BANG (380) 34 +DASH (381) 33 42 +TILDE (382) 35 +PLUS (383) 32 41 +STAR (384) 37 +SLASH (385) 38 +PERCENT (386) 39 +LEFT_ANGLE (387) 47 137 138 139 267 268 319 322 +RIGHT_ANGLE (388) 48 137 138 139 267 268 319 322 +VERTICAL_BAR (389) 59 +CARET (390) 57 +AMPERSAND (391) 55 +QUESTION (392) 67 + +Nonterminals, with rules where they appear + +variable_identifier (138) + on left: 1, on right: 2 +primary_expression (139) + on left: 2 3 4 5 6, on right: 7 +postfix_expression (140) + on left: 7 8 9 10 11 12, on right: 8 10 11 12 16 27 +int_expression (141) + on left: 13, on right: 8 +function_call (142) + on left: 14, on right: 9 +function_call_or_method (143) + on left: 15 16, on right: 14 +function_call_generic (144) + on left: 17 18, on right: 15 16 +function_call_header_no_parameters (145) + on left: 19 20, on right: 18 +function_call_header_with_parameters (146) + on left: 21 22, on right: 17 22 +function_call_header (147) + on left: 23, on right: 19 20 21 +function_identifier (148) + on left: 24 25 26, on right: 23 +unary_expression (149) + on left: 27 28 29 30 31, on right: 28 29 30 31 36 37 38 39 69 +unary_operator (150) + on left: 32 33 34 35, on right: 30 +mul_expression (151) + on left: 36 37 38 39, on right: 37 38 39 40 41 42 +add_expression (152) + on left: 40 41 42, on right: 41 42 43 44 45 +shift_expression (153) + on left: 43 44 45, on right: 44 45 46 47 48 49 50 +rel_expression (154) + on left: 46 47 48 49 50, on right: 47 48 49 50 51 52 53 +eq_expression (155) + on left: 51 52 53, on right: 52 53 54 55 +and_expression (156) + on left: 54 55, on right: 55 56 57 +xor_expression (157) + on left: 56 57, on right: 57 58 59 +or_expression (158) + on left: 58 59, on right: 59 60 61 +log_and_expression (159) + on left: 60 61, on right: 61 62 63 +log_xor_expression (160) + on left: 62 63, on right: 63 64 65 +log_or_expression (161) + on left: 64 65, on right: 65 66 67 +cond_expression (162) + on left: 66 67, on right: 68 83 +assign_expression (163) + on left: 68 69, on right: 21 22 67 69 81 82 209 263 265 +assignment_operator (164) + on left: 70 71 72 73 74 75 76 77 78 79 80, on right: 69 +expression (165) + on left: 81 82, on right: 6 13 67 82 231 232 235 240 248 252 +const_expression (166) + on left: 83, on right: 97 98 111 113 118 120 130 207 208 +declaration (167) + on left: 84 85, on right: 212 257 +function_prototype (168) + on left: 86 87, on right: 84 260 +function_declarator (169) + on left: 88 89, on right: 86 87 +function_header_with_parameters (170) + on left: 90 91, on right: 89 91 +function_header (171) + on left: 92, on right: 88 90 +parameter_declarator (172) + on left: 93 94 95 96 97 98, on right: 99 100 +parameter_declaration (173) + on left: 99 100 101 102, on right: 90 91 +parameter_qualifier (174) + on left: 103 104 105 106, on right: 99 100 101 102 +parameter_type_specifier (175) + on left: 107, on right: 101 102 +init_declarator_list (176) + on left: 108 109 110 111 112 113 114, on right: 85 109 110 111 + 112 113 114 +single_declaration (177) + on left: 115 116 117 118 119 120 121, on right: 108 +fully_specified_type (178) + on left: 122 123, on right: 92 115 116 117 118 119 120 121 236 +type_qualifier (179) + on left: 124 125 126 127 128, on right: 99 101 123 +type_specifier (180) + on left: 129 130, on right: 24 93 94 95 96 97 98 107 122 123 202 +type_specifier_nonarray (181) + on left: 131 132 133 134 135 136 137 138 139 140 141 142 143 144 + 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 + 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 + 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 + 193 194 195 196 197, on right: 31 129 130 +struct_specifier (182) + on left: 198 199, on right: 196 +struct_declaration_list (183) + on left: 200 201, on right: 198 199 201 +struct_declaration (184) + on left: 202, on right: 200 201 +struct_declarator_list (185) + on left: 203 204, on right: 202 204 +struct_declarator (186) + on left: 205 206 207 208, on right: 203 204 +initializer (187) + on left: 209 210 211, on right: 94 112 113 114 119 120 121 236 +declaration_statement (188) + on left: 212, on right: 215 244 +statement (189) + on left: 213 214, on right: 228 229 233 234 240 +simple_statement (190) + on left: 215 216 217 218 219, on right: 214 225 +compound_statement (191) + on left: 220 223, on right: 213 +@1 (192) + on left: 221, on right: 223 +@2 (193) + on left: 222, on right: 223 +statement_no_new_scope (194) + on left: 224 225, on right: 238 242 +compound_statement_no_new_scope (195) + on left: 226 227, on right: 224 260 +statement_list (196) + on left: 228 229, on right: 223 227 229 +expression_statement (197) + on left: 230 231, on right: 216 243 +selection_statement (198) + on left: 232, on right: 217 +selection_rest_statement (199) + on left: 233 234, on right: 232 +condition (200) + on left: 235 236, on right: 238 245 +iteration_statement (201) + on left: 238 240 242, on right: 218 +@3 (202) + on left: 237, on right: 238 +@4 (203) + on left: 239, on right: 240 +@5 (204) + on left: 241, on right: 242 +for_init_statement (205) + on left: 243 244, on right: 242 +conditionopt (206) + on left: 245 246, on right: 247 248 +for_rest_statement (207) + on left: 247 248, on right: 242 +jump_statement (208) + on left: 249 250 251 252 253, on right: 219 +translation_unit (209) + on left: 254 255, on right: 255 +external_declaration (210) + on left: 256 257 258, on right: 254 255 +function_definition (211) + on left: 260, on right: 256 +@6 (212) + on left: 259, on right: 260 +initialization_list (213) + on left: 261 262, on right: 210 264 266 +initializer_list (214) + on left: 263 264 265 266, on right: 261 262 265 266 +annotation (215) + on left: 267 268, on right: 309 310 312 313 +annotation_list (216) + on left: 269 270, on right: 268 270 +annotation_item (217) + on left: 271, on right: 269 270 +ann_type (218) + on left: 272 273 274 275 276 277 278 279 280 281 282 283 284 285 + 286 287 288 289 290 291 292, on right: 271 300 +ann_literal (219) + on left: 293 294 295 296, on right: 271 +ann_numerical_constant (220) + on left: 297 298 299, on right: 293 301 302 +ann_literal_constructor (221) + on left: 300, on right: 295 +ann_value_list (222) + on left: 301 302, on right: 300 302 303 +ann_literal_init_list (223) + on left: 303, on right: 296 +register_specifier (224) + on left: 304, on right: 95 308 311 312 313 +semantic (225) + on left: 305, on right: 307 310 311 313 +type_info (226) + on left: 306 307 308 309 310 311 312 313, on right: 109 110 111 + 112 113 114 116 117 118 119 120 121 +sampler_initializer (227) + on left: 314 315, on right: 211 +sampler_init_list (228) + on left: 316 317, on right: 314 317 +sampler_init_item (229) + on left: 318 319 320 321 322 323, on right: 316 317 + + +state 0 + + CONST_QUAL shift, and go to state 1 + STATIC_QUAL shift, and go to state 2 + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + UNIFORM shift, and go to state 50 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + TYPE_NAME shift, and go to state 68 + SEMICOLON shift, and go to state 69 + + declaration go to state 70 + function_prototype go to state 71 + function_declarator go to state 72 + function_header_with_parameters go to state 73 + function_header go to state 74 + init_declarator_list go to state 75 + single_declaration go to state 76 + fully_specified_type go to state 77 + type_qualifier go to state 78 + type_specifier go to state 79 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + translation_unit go to state 82 + external_declaration go to state 83 + function_definition go to state 84 + + + +state 1 + + type_qualifier -> CONST_QUAL . (rule 124) + type_qualifier -> CONST_QUAL . STATIC_QUAL (rule 127) + + STATIC_QUAL shift, and go to state 85 + + $default reduce using rule 124 (type_qualifier) + + + +state 2 + + type_qualifier -> STATIC_QUAL . (rule 125) + type_qualifier -> STATIC_QUAL . CONST_QUAL (rule 126) + + CONST_QUAL shift, and go to state 86 + + $default reduce using rule 125 (type_qualifier) + + + +state 3 + + type_specifier_nonarray -> BOOL_TYPE . (rule 136) + + $default reduce using rule 136 (type_specifier_nonarray) + + + +state 4 + + type_specifier_nonarray -> FLOAT_TYPE . (rule 132) + + $default reduce using rule 132 (type_specifier_nonarray) + + + +state 5 + + type_specifier_nonarray -> INT_TYPE . (rule 135) + + $default reduce using rule 135 (type_specifier_nonarray) + + + +state 6 + + type_specifier_nonarray -> FIXED_TYPE . (rule 134) + + $default reduce using rule 134 (type_specifier_nonarray) + + + +state 7 + + type_specifier_nonarray -> HALF_TYPE . (rule 133) + + $default reduce using rule 133 (type_specifier_nonarray) + + + +state 8 + + type_specifier_nonarray -> BVEC2 . (rule 149) + + $default reduce using rule 149 (type_specifier_nonarray) + + + +state 9 + + type_specifier_nonarray -> BVEC3 . (rule 150) + + $default reduce using rule 150 (type_specifier_nonarray) + + + +state 10 + + type_specifier_nonarray -> BVEC4 . (rule 151) + + $default reduce using rule 151 (type_specifier_nonarray) + + + +state 11 + + type_specifier_nonarray -> IVEC2 . (rule 152) + + $default reduce using rule 152 (type_specifier_nonarray) + + + +state 12 + + type_specifier_nonarray -> IVEC3 . (rule 153) + + $default reduce using rule 153 (type_specifier_nonarray) + + + +state 13 + + type_specifier_nonarray -> IVEC4 . (rule 154) + + $default reduce using rule 154 (type_specifier_nonarray) + + + +state 14 + + type_specifier_nonarray -> VEC2 . (rule 140) + + $default reduce using rule 140 (type_specifier_nonarray) + + + +state 15 + + type_specifier_nonarray -> VEC3 . (rule 141) + + $default reduce using rule 141 (type_specifier_nonarray) + + + +state 16 + + type_specifier_nonarray -> VEC4 . (rule 142) + + $default reduce using rule 142 (type_specifier_nonarray) + + + +state 17 + + type_specifier_nonarray -> HVEC2 . (rule 143) + + $default reduce using rule 143 (type_specifier_nonarray) + + + +state 18 + + type_specifier_nonarray -> HVEC3 . (rule 144) + + $default reduce using rule 144 (type_specifier_nonarray) + + + +state 19 + + type_specifier_nonarray -> HVEC4 . (rule 145) + + $default reduce using rule 145 (type_specifier_nonarray) + + + +state 20 + + type_specifier_nonarray -> FVEC2 . (rule 146) + + $default reduce using rule 146 (type_specifier_nonarray) + + + +state 21 + + type_specifier_nonarray -> FVEC3 . (rule 147) + + $default reduce using rule 147 (type_specifier_nonarray) + + + +state 22 + + type_specifier_nonarray -> FVEC4 . (rule 148) + + $default reduce using rule 148 (type_specifier_nonarray) + + + +state 23 + + type_specifier_nonarray -> MATRIX2x2 . (rule 155) + + $default reduce using rule 155 (type_specifier_nonarray) + + + +state 24 + + type_specifier_nonarray -> MATRIX2x3 . (rule 156) + + $default reduce using rule 156 (type_specifier_nonarray) + + + +state 25 + + type_specifier_nonarray -> MATRIX2x4 . (rule 157) + + $default reduce using rule 157 (type_specifier_nonarray) + + + +state 26 + + type_specifier_nonarray -> MATRIX3x2 . (rule 158) + + $default reduce using rule 158 (type_specifier_nonarray) + + + +state 27 + + type_specifier_nonarray -> MATRIX3x3 . (rule 159) + + $default reduce using rule 159 (type_specifier_nonarray) + + + +state 28 + + type_specifier_nonarray -> MATRIX3x4 . (rule 160) + + $default reduce using rule 160 (type_specifier_nonarray) + + + +state 29 + + type_specifier_nonarray -> MATRIX4x2 . (rule 161) + + $default reduce using rule 161 (type_specifier_nonarray) + + + +state 30 + + type_specifier_nonarray -> MATRIX4x3 . (rule 162) + + $default reduce using rule 162 (type_specifier_nonarray) + + + +state 31 + + type_specifier_nonarray -> MATRIX4x4 . (rule 163) + + $default reduce using rule 163 (type_specifier_nonarray) + + + +state 32 + + type_specifier_nonarray -> HMATRIX2x2 . (rule 164) + + $default reduce using rule 164 (type_specifier_nonarray) + + + +state 33 + + type_specifier_nonarray -> HMATRIX2x3 . (rule 165) + + $default reduce using rule 165 (type_specifier_nonarray) + + + +state 34 + + type_specifier_nonarray -> HMATRIX2x4 . (rule 166) + + $default reduce using rule 166 (type_specifier_nonarray) + + + +state 35 + + type_specifier_nonarray -> HMATRIX3x2 . (rule 167) + + $default reduce using rule 167 (type_specifier_nonarray) + + + +state 36 + + type_specifier_nonarray -> HMATRIX3x3 . (rule 168) + + $default reduce using rule 168 (type_specifier_nonarray) + + + +state 37 + + type_specifier_nonarray -> HMATRIX3x4 . (rule 169) + + $default reduce using rule 169 (type_specifier_nonarray) + + + +state 38 + + type_specifier_nonarray -> HMATRIX4x2 . (rule 170) + + $default reduce using rule 170 (type_specifier_nonarray) + + + +state 39 + + type_specifier_nonarray -> HMATRIX4x3 . (rule 171) + + $default reduce using rule 171 (type_specifier_nonarray) + + + +state 40 + + type_specifier_nonarray -> HMATRIX4x4 . (rule 172) + + $default reduce using rule 172 (type_specifier_nonarray) + + + +state 41 + + type_specifier_nonarray -> FMATRIX2x2 . (rule 173) + + $default reduce using rule 173 (type_specifier_nonarray) + + + +state 42 + + type_specifier_nonarray -> FMATRIX2x3 . (rule 174) + + $default reduce using rule 174 (type_specifier_nonarray) + + + +state 43 + + type_specifier_nonarray -> FMATRIX2x4 . (rule 175) + + $default reduce using rule 175 (type_specifier_nonarray) + + + +state 44 + + type_specifier_nonarray -> FMATRIX3x2 . (rule 176) + + $default reduce using rule 176 (type_specifier_nonarray) + + + +state 45 + + type_specifier_nonarray -> FMATRIX3x3 . (rule 177) + + $default reduce using rule 177 (type_specifier_nonarray) + + + +state 46 + + type_specifier_nonarray -> FMATRIX3x4 . (rule 178) + + $default reduce using rule 178 (type_specifier_nonarray) + + + +state 47 + + type_specifier_nonarray -> FMATRIX4x2 . (rule 179) + + $default reduce using rule 179 (type_specifier_nonarray) + + + +state 48 + + type_specifier_nonarray -> FMATRIX4x3 . (rule 180) + + $default reduce using rule 180 (type_specifier_nonarray) + + + +state 49 + + type_specifier_nonarray -> FMATRIX4x4 . (rule 181) + + $default reduce using rule 181 (type_specifier_nonarray) + + + +state 50 + + type_qualifier -> UNIFORM . (rule 128) + + $default reduce using rule 128 (type_qualifier) + + + +state 51 + + struct_specifier -> STRUCT . IDENTIFIER LEFT_BRACE struct_declaration_list RIGHT_BRACE (rule 198) + struct_specifier -> STRUCT . LEFT_BRACE struct_declaration_list RIGHT_BRACE (rule 199) + + IDENTIFIER shift, and go to state 87 + LEFT_BRACE shift, and go to state 88 + + + +state 52 + + type_specifier_nonarray -> VOID_TYPE . (rule 131) + + $default reduce using rule 131 (type_specifier_nonarray) + + + +state 53 + + type_specifier_nonarray -> SAMPLER1D . (rule 184) + + $default reduce using rule 184 (type_specifier_nonarray) + + + +state 54 + + type_specifier_nonarray -> SAMPLER2D . (rule 185) + + $default reduce using rule 185 (type_specifier_nonarray) + + + +state 55 + + type_specifier_nonarray -> SAMPLER3D . (rule 188) + + $default reduce using rule 188 (type_specifier_nonarray) + + + +state 56 + + type_specifier_nonarray -> SAMPLERCUBE . (rule 189) + + $default reduce using rule 189 (type_specifier_nonarray) + + + +state 57 + + type_specifier_nonarray -> SAMPLER1DSHADOW . (rule 194) + + $default reduce using rule 194 (type_specifier_nonarray) + + + +state 58 + + type_specifier_nonarray -> SAMPLER2DSHADOW . (rule 195) + + $default reduce using rule 195 (type_specifier_nonarray) + + + +state 59 + + type_specifier_nonarray -> SAMPLERRECTSHADOW . (rule 193) + + $default reduce using rule 193 (type_specifier_nonarray) + + + +state 60 + + type_specifier_nonarray -> SAMPLERRECT . (rule 192) + + $default reduce using rule 192 (type_specifier_nonarray) + + + +state 61 + + type_specifier_nonarray -> SAMPLER2D_HALF . (rule 186) + + $default reduce using rule 186 (type_specifier_nonarray) + + + +state 62 + + type_specifier_nonarray -> SAMPLER2D_FLOAT . (rule 187) + + $default reduce using rule 187 (type_specifier_nonarray) + + + +state 63 + + type_specifier_nonarray -> SAMPLERCUBE_HALF . (rule 190) + + $default reduce using rule 190 (type_specifier_nonarray) + + + +state 64 + + type_specifier_nonarray -> SAMPLERCUBE_FLOAT . (rule 191) + + $default reduce using rule 191 (type_specifier_nonarray) + + + +state 65 + + type_specifier_nonarray -> SAMPLERGENERIC . (rule 183) + + $default reduce using rule 183 (type_specifier_nonarray) + + + +state 66 + + type_specifier_nonarray -> VECTOR . LEFT_ANGLE FLOAT_TYPE COMMA INTCONSTANT RIGHT_ANGLE (rule 137) + type_specifier_nonarray -> VECTOR . LEFT_ANGLE INT_TYPE COMMA INTCONSTANT RIGHT_ANGLE (rule 138) + type_specifier_nonarray -> VECTOR . LEFT_ANGLE BOOL_TYPE COMMA INTCONSTANT RIGHT_ANGLE (rule 139) + + LEFT_ANGLE shift, and go to state 89 + + + +state 67 + + type_specifier_nonarray -> TEXTURE . (rule 182) + + $default reduce using rule 182 (type_specifier_nonarray) + + + +state 68 + + type_specifier_nonarray -> TYPE_NAME . (rule 197) + + $default reduce using rule 197 (type_specifier_nonarray) + + + +state 69 + + external_declaration -> SEMICOLON . (rule 258) + + $default reduce using rule 258 (external_declaration) + + + +state 70 + + external_declaration -> declaration . (rule 257) + + $default reduce using rule 257 (external_declaration) + + + +state 71 + + declaration -> function_prototype . SEMICOLON (rule 84) + function_definition -> function_prototype . @6 compound_statement_no_new_scope (rule 260) + + SEMICOLON shift, and go to state 90 + + $default reduce using rule 259 (@6) + + @6 go to state 91 + + + +state 72 + + function_prototype -> function_declarator . RIGHT_PAREN (rule 86) + function_prototype -> function_declarator . RIGHT_PAREN COLON IDENTIFIER (rule 87) + + RIGHT_PAREN shift, and go to state 92 + + + +state 73 + + function_declarator -> function_header_with_parameters . (rule 89) + function_header_with_parameters -> function_header_with_parameters . COMMA parameter_declaration (rule 91) + + COMMA shift, and go to state 93 + + $default reduce using rule 89 (function_declarator) + + + +state 74 + + function_declarator -> function_header . (rule 88) + function_header_with_parameters -> function_header . parameter_declaration (rule 90) + + CONST_QUAL shift, and go to state 1 + STATIC_QUAL shift, and go to state 2 + IN_QUAL shift, and go to state 94 + OUT_QUAL shift, and go to state 95 + INOUT_QUAL shift, and go to state 96 + UNIFORM shift, and go to state 50 + + RIGHT_PAREN reduce using rule 88 (function_declarator) + $default reduce using rule 103 (parameter_qualifier) + + parameter_declaration go to state 97 + parameter_qualifier go to state 98 + type_qualifier go to state 99 + + + +state 75 + + declaration -> init_declarator_list . SEMICOLON (rule 85) + init_declarator_list -> init_declarator_list . COMMA IDENTIFIER type_info (rule 109) + init_declarator_list -> init_declarator_list . COMMA IDENTIFIER LEFT_BRACKET RIGHT_BRACKET type_info (rule 110) + init_declarator_list -> init_declarator_list . COMMA IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET type_info (rule 111) + init_declarator_list -> init_declarator_list . COMMA IDENTIFIER LEFT_BRACKET RIGHT_BRACKET type_info EQUAL initializer (rule 112) + init_declarator_list -> init_declarator_list . COMMA IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET type_info EQUAL initializer (rule 113) + init_declarator_list -> init_declarator_list . COMMA IDENTIFIER type_info EQUAL initializer (rule 114) + + COMMA shift, and go to state 100 + SEMICOLON shift, and go to state 101 + + + +state 76 + + init_declarator_list -> single_declaration . (rule 108) + + $default reduce using rule 108 (init_declarator_list) + + + +state 77 + + function_header -> fully_specified_type . IDENTIFIER LEFT_PAREN (rule 92) + single_declaration -> fully_specified_type . (rule 115) + single_declaration -> fully_specified_type . IDENTIFIER type_info (rule 116) + single_declaration -> fully_specified_type . IDENTIFIER LEFT_BRACKET RIGHT_BRACKET type_info (rule 117) + single_declaration -> fully_specified_type . IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET type_info (rule 118) + single_declaration -> fully_specified_type . IDENTIFIER LEFT_BRACKET RIGHT_BRACKET type_info EQUAL initializer (rule 119) + single_declaration -> fully_specified_type . IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET type_info EQUAL initializer (rule 120) + single_declaration -> fully_specified_type . IDENTIFIER type_info EQUAL initializer (rule 121) + + IDENTIFIER shift, and go to state 102 + + $default reduce using rule 115 (single_declaration) + + + +state 78 + + fully_specified_type -> type_qualifier . type_specifier (rule 123) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + TYPE_NAME shift, and go to state 68 + + type_specifier go to state 103 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 79 + + fully_specified_type -> type_specifier . (rule 122) + + $default reduce using rule 122 (fully_specified_type) + + + +state 80 + + type_specifier -> type_specifier_nonarray . (rule 129) + type_specifier -> type_specifier_nonarray . LEFT_BRACKET const_expression RIGHT_BRACKET (rule 130) + + LEFT_BRACKET shift, and go to state 104 + + $default reduce using rule 129 (type_specifier) + + + +state 81 + + type_specifier_nonarray -> struct_specifier . (rule 196) + + $default reduce using rule 196 (type_specifier_nonarray) + + + +state 82 + + translation_unit -> translation_unit . external_declaration (rule 255) + + $ go to state 495 + CONST_QUAL shift, and go to state 1 + STATIC_QUAL shift, and go to state 2 + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + UNIFORM shift, and go to state 50 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + TYPE_NAME shift, and go to state 68 + SEMICOLON shift, and go to state 69 + + declaration go to state 70 + function_prototype go to state 71 + function_declarator go to state 72 + function_header_with_parameters go to state 73 + function_header go to state 74 + init_declarator_list go to state 75 + single_declaration go to state 76 + fully_specified_type go to state 77 + type_qualifier go to state 78 + type_specifier go to state 79 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + external_declaration go to state 105 + function_definition go to state 84 + + + +state 83 + + translation_unit -> external_declaration . (rule 254) + + $default reduce using rule 254 (translation_unit) + + + +state 84 + + external_declaration -> function_definition . (rule 256) + + $default reduce using rule 256 (external_declaration) + + + +state 85 + + type_qualifier -> CONST_QUAL STATIC_QUAL . (rule 127) + + $default reduce using rule 127 (type_qualifier) + + + +state 86 + + type_qualifier -> STATIC_QUAL CONST_QUAL . (rule 126) + + $default reduce using rule 126 (type_qualifier) + + + +state 87 + + struct_specifier -> STRUCT IDENTIFIER . LEFT_BRACE struct_declaration_list RIGHT_BRACE (rule 198) + + LEFT_BRACE shift, and go to state 106 + + + +state 88 + + struct_specifier -> STRUCT LEFT_BRACE . struct_declaration_list RIGHT_BRACE (rule 199) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + TYPE_NAME shift, and go to state 68 + + type_specifier go to state 107 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + struct_declaration_list go to state 108 + struct_declaration go to state 109 + + + +state 89 + + type_specifier_nonarray -> VECTOR LEFT_ANGLE . FLOAT_TYPE COMMA INTCONSTANT RIGHT_ANGLE (rule 137) + type_specifier_nonarray -> VECTOR LEFT_ANGLE . INT_TYPE COMMA INTCONSTANT RIGHT_ANGLE (rule 138) + type_specifier_nonarray -> VECTOR LEFT_ANGLE . BOOL_TYPE COMMA INTCONSTANT RIGHT_ANGLE (rule 139) + + BOOL_TYPE shift, and go to state 110 + FLOAT_TYPE shift, and go to state 111 + INT_TYPE shift, and go to state 112 + + + +state 90 + + declaration -> function_prototype SEMICOLON . (rule 84) + + $default reduce using rule 84 (declaration) + + + +state 91 + + function_definition -> function_prototype @6 . compound_statement_no_new_scope (rule 260) + + LEFT_BRACE shift, and go to state 113 + + compound_statement_no_new_scope go to state 114 + + + +state 92 + + function_prototype -> function_declarator RIGHT_PAREN . (rule 86) + function_prototype -> function_declarator RIGHT_PAREN . COLON IDENTIFIER (rule 87) + + COLON shift, and go to state 115 + + $default reduce using rule 86 (function_prototype) + + + +state 93 + + function_header_with_parameters -> function_header_with_parameters COMMA . parameter_declaration (rule 91) + + CONST_QUAL shift, and go to state 1 + STATIC_QUAL shift, and go to state 2 + IN_QUAL shift, and go to state 94 + OUT_QUAL shift, and go to state 95 + INOUT_QUAL shift, and go to state 96 + UNIFORM shift, and go to state 50 + + $default reduce using rule 103 (parameter_qualifier) + + parameter_declaration go to state 116 + parameter_qualifier go to state 98 + type_qualifier go to state 99 + + + +state 94 + + parameter_qualifier -> IN_QUAL . (rule 104) + + $default reduce using rule 104 (parameter_qualifier) + + + +state 95 + + parameter_qualifier -> OUT_QUAL . (rule 105) + + $default reduce using rule 105 (parameter_qualifier) + + + +state 96 + + parameter_qualifier -> INOUT_QUAL . (rule 106) + + $default reduce using rule 106 (parameter_qualifier) + + + +state 97 + + function_header_with_parameters -> function_header parameter_declaration . (rule 90) + + $default reduce using rule 90 (function_header_with_parameters) + + + +state 98 + + parameter_declaration -> parameter_qualifier . parameter_declarator (rule 100) + parameter_declaration -> parameter_qualifier . parameter_type_specifier (rule 102) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + TYPE_NAME shift, and go to state 68 + + parameter_declarator go to state 117 + parameter_type_specifier go to state 118 + type_specifier go to state 119 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 99 + + parameter_declaration -> type_qualifier . parameter_qualifier parameter_declarator (rule 99) + parameter_declaration -> type_qualifier . parameter_qualifier parameter_type_specifier (rule 101) + + IN_QUAL shift, and go to state 94 + OUT_QUAL shift, and go to state 95 + INOUT_QUAL shift, and go to state 96 + + $default reduce using rule 103 (parameter_qualifier) + + parameter_qualifier go to state 120 + + + +state 100 + + init_declarator_list -> init_declarator_list COMMA . IDENTIFIER type_info (rule 109) + init_declarator_list -> init_declarator_list COMMA . IDENTIFIER LEFT_BRACKET RIGHT_BRACKET type_info (rule 110) + init_declarator_list -> init_declarator_list COMMA . IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET type_info (rule 111) + init_declarator_list -> init_declarator_list COMMA . IDENTIFIER LEFT_BRACKET RIGHT_BRACKET type_info EQUAL initializer (rule 112) + init_declarator_list -> init_declarator_list COMMA . IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET type_info EQUAL initializer (rule 113) + init_declarator_list -> init_declarator_list COMMA . IDENTIFIER type_info EQUAL initializer (rule 114) + + IDENTIFIER shift, and go to state 121 + + + +state 101 + + declaration -> init_declarator_list SEMICOLON . (rule 85) + + $default reduce using rule 85 (declaration) + + + +state 102 + + function_header -> fully_specified_type IDENTIFIER . LEFT_PAREN (rule 92) + single_declaration -> fully_specified_type IDENTIFIER . type_info (rule 116) + single_declaration -> fully_specified_type IDENTIFIER . LEFT_BRACKET RIGHT_BRACKET type_info (rule 117) + single_declaration -> fully_specified_type IDENTIFIER . LEFT_BRACKET const_expression RIGHT_BRACKET type_info (rule 118) + single_declaration -> fully_specified_type IDENTIFIER . LEFT_BRACKET RIGHT_BRACKET type_info EQUAL initializer (rule 119) + single_declaration -> fully_specified_type IDENTIFIER . LEFT_BRACKET const_expression RIGHT_BRACKET type_info EQUAL initializer (rule 120) + single_declaration -> fully_specified_type IDENTIFIER . type_info EQUAL initializer (rule 121) + + LEFT_PAREN shift, and go to state 122 + LEFT_BRACKET shift, and go to state 123 + COLON shift, and go to state 124 + LEFT_ANGLE shift, and go to state 125 + + $default reduce using rule 306 (type_info) + + annotation go to state 126 + register_specifier go to state 127 + semantic go to state 128 + type_info go to state 129 + + + +state 103 + + fully_specified_type -> type_qualifier type_specifier . (rule 123) + + $default reduce using rule 123 (fully_specified_type) + + + +state 104 + + type_specifier -> type_specifier_nonarray LEFT_BRACKET . const_expression RIGHT_BRACKET (rule 130) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 152 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 165 + const_expression go to state 166 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 105 + + translation_unit -> translation_unit external_declaration . (rule 255) + + $default reduce using rule 255 (translation_unit) + + + +state 106 + + struct_specifier -> STRUCT IDENTIFIER LEFT_BRACE . struct_declaration_list RIGHT_BRACE (rule 198) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + TYPE_NAME shift, and go to state 68 + + type_specifier go to state 107 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + struct_declaration_list go to state 168 + struct_declaration go to state 109 + + + +state 107 + + struct_declaration -> type_specifier . struct_declarator_list SEMICOLON (rule 202) + + IDENTIFIER shift, and go to state 169 + + struct_declarator_list go to state 170 + struct_declarator go to state 171 + + + +state 108 + + struct_specifier -> STRUCT LEFT_BRACE struct_declaration_list . RIGHT_BRACE (rule 199) + struct_declaration_list -> struct_declaration_list . struct_declaration (rule 201) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + TYPE_NAME shift, and go to state 68 + RIGHT_BRACE shift, and go to state 172 + + type_specifier go to state 107 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + struct_declaration go to state 173 + + + +state 109 + + struct_declaration_list -> struct_declaration . (rule 200) + + $default reduce using rule 200 (struct_declaration_list) + + + +state 110 + + type_specifier_nonarray -> VECTOR LEFT_ANGLE BOOL_TYPE . COMMA INTCONSTANT RIGHT_ANGLE (rule 139) + + COMMA shift, and go to state 174 + + + +state 111 + + type_specifier_nonarray -> VECTOR LEFT_ANGLE FLOAT_TYPE . COMMA INTCONSTANT RIGHT_ANGLE (rule 137) + + COMMA shift, and go to state 175 + + + +state 112 + + type_specifier_nonarray -> VECTOR LEFT_ANGLE INT_TYPE . COMMA INTCONSTANT RIGHT_ANGLE (rule 138) + + COMMA shift, and go to state 176 + + + +state 113 + + compound_statement_no_new_scope -> LEFT_BRACE . RIGHT_BRACE (rule 226) + compound_statement_no_new_scope -> LEFT_BRACE . statement_list RIGHT_BRACE (rule 227) + + CONST_QUAL shift, and go to state 1 + STATIC_QUAL shift, and go to state 2 + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BREAK shift, and go to state 177 + CONTINUE shift, and go to state 178 + DO shift, and go to state 179 + FOR shift, and go to state 180 + IF shift, and go to state 181 + DISCARD shift, and go to state 182 + RETURN shift, and go to state 183 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + UNIFORM shift, and go to state 50 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + WHILE shift, and go to state 184 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + LEFT_BRACE shift, and go to state 185 + RIGHT_BRACE shift, and go to state 186 + SEMICOLON shift, and go to state 187 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 188 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 189 + assign_expression go to state 190 + expression go to state 191 + declaration go to state 192 + function_prototype go to state 193 + function_declarator go to state 72 + function_header_with_parameters go to state 73 + function_header go to state 74 + init_declarator_list go to state 75 + single_declaration go to state 76 + fully_specified_type go to state 77 + type_qualifier go to state 78 + type_specifier go to state 194 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + declaration_statement go to state 195 + statement go to state 196 + simple_statement go to state 197 + compound_statement go to state 198 + statement_list go to state 199 + expression_statement go to state 200 + selection_statement go to state 201 + iteration_statement go to state 202 + jump_statement go to state 203 + + + +state 114 + + function_definition -> function_prototype @6 compound_statement_no_new_scope . (rule 260) + + $default reduce using rule 260 (function_definition) + + + +state 115 + + function_prototype -> function_declarator RIGHT_PAREN COLON . IDENTIFIER (rule 87) + + IDENTIFIER shift, and go to state 204 + + + +state 116 + + function_header_with_parameters -> function_header_with_parameters COMMA parameter_declaration . (rule 91) + + $default reduce using rule 91 (function_header_with_parameters) + + + +state 117 + + parameter_declaration -> parameter_qualifier parameter_declarator . (rule 100) + + $default reduce using rule 100 (parameter_declaration) + + + +state 118 + + parameter_declaration -> parameter_qualifier parameter_type_specifier . (rule 102) + + $default reduce using rule 102 (parameter_declaration) + + + +state 119 + + parameter_declarator -> type_specifier . IDENTIFIER (rule 93) + parameter_declarator -> type_specifier . IDENTIFIER EQUAL initializer (rule 94) + parameter_declarator -> type_specifier . IDENTIFIER register_specifier (rule 95) + parameter_declarator -> type_specifier . IDENTIFIER COLON IDENTIFIER (rule 96) + parameter_declarator -> type_specifier . IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET (rule 97) + parameter_declarator -> type_specifier . IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET COLON IDENTIFIER (rule 98) + parameter_type_specifier -> type_specifier . (rule 107) + + IDENTIFIER shift, and go to state 205 + + $default reduce using rule 107 (parameter_type_specifier) + + + +state 120 + + parameter_declaration -> type_qualifier parameter_qualifier . parameter_declarator (rule 99) + parameter_declaration -> type_qualifier parameter_qualifier . parameter_type_specifier (rule 101) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + TYPE_NAME shift, and go to state 68 + + parameter_declarator go to state 206 + parameter_type_specifier go to state 207 + type_specifier go to state 119 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 121 + + init_declarator_list -> init_declarator_list COMMA IDENTIFIER . type_info (rule 109) + init_declarator_list -> init_declarator_list COMMA IDENTIFIER . LEFT_BRACKET RIGHT_BRACKET type_info (rule 110) + init_declarator_list -> init_declarator_list COMMA IDENTIFIER . LEFT_BRACKET const_expression RIGHT_BRACKET type_info (rule 111) + init_declarator_list -> init_declarator_list COMMA IDENTIFIER . LEFT_BRACKET RIGHT_BRACKET type_info EQUAL initializer (rule 112) + init_declarator_list -> init_declarator_list COMMA IDENTIFIER . LEFT_BRACKET const_expression RIGHT_BRACKET type_info EQUAL initializer (rule 113) + init_declarator_list -> init_declarator_list COMMA IDENTIFIER . type_info EQUAL initializer (rule 114) + + LEFT_BRACKET shift, and go to state 208 + COLON shift, and go to state 124 + LEFT_ANGLE shift, and go to state 125 + + $default reduce using rule 306 (type_info) + + annotation go to state 126 + register_specifier go to state 127 + semantic go to state 128 + type_info go to state 209 + + + +state 122 + + function_header -> fully_specified_type IDENTIFIER LEFT_PAREN . (rule 92) + + $default reduce using rule 92 (function_header) + + + +state 123 + + single_declaration -> fully_specified_type IDENTIFIER LEFT_BRACKET . RIGHT_BRACKET type_info (rule 117) + single_declaration -> fully_specified_type IDENTIFIER LEFT_BRACKET . const_expression RIGHT_BRACKET type_info (rule 118) + single_declaration -> fully_specified_type IDENTIFIER LEFT_BRACKET . RIGHT_BRACKET type_info EQUAL initializer (rule 119) + single_declaration -> fully_specified_type IDENTIFIER LEFT_BRACKET . const_expression RIGHT_BRACKET type_info EQUAL initializer (rule 120) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + RIGHT_BRACKET shift, and go to state 210 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 152 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 165 + const_expression go to state 211 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 124 + + register_specifier -> COLON . REGISTER LEFT_PAREN IDENTIFIER RIGHT_PAREN (rule 304) + semantic -> COLON . IDENTIFIER (rule 305) + + REGISTER shift, and go to state 212 + IDENTIFIER shift, and go to state 213 + + + +state 125 + + annotation -> LEFT_ANGLE . RIGHT_ANGLE (rule 267) + annotation -> LEFT_ANGLE . annotation_list RIGHT_ANGLE (rule 268) + + BOOL_TYPE shift, and go to state 214 + FLOAT_TYPE shift, and go to state 215 + INT_TYPE shift, and go to state 216 + STRING_TYPE shift, and go to state 217 + FIXED_TYPE shift, and go to state 218 + HALF_TYPE shift, and go to state 219 + BVEC2 shift, and go to state 220 + BVEC3 shift, and go to state 221 + BVEC4 shift, and go to state 222 + IVEC2 shift, and go to state 223 + IVEC3 shift, and go to state 224 + IVEC4 shift, and go to state 225 + VEC2 shift, and go to state 226 + VEC3 shift, and go to state 227 + VEC4 shift, and go to state 228 + HVEC2 shift, and go to state 229 + HVEC3 shift, and go to state 230 + HVEC4 shift, and go to state 231 + FVEC2 shift, and go to state 232 + FVEC3 shift, and go to state 233 + FVEC4 shift, and go to state 234 + RIGHT_ANGLE shift, and go to state 235 + + annotation_list go to state 236 + annotation_item go to state 237 + ann_type go to state 238 + + + +state 126 + + type_info -> annotation . (rule 309) + + $default reduce using rule 309 (type_info) + + + +state 127 + + type_info -> register_specifier . (rule 308) + type_info -> register_specifier . annotation (rule 312) + + LEFT_ANGLE shift, and go to state 125 + + $default reduce using rule 308 (type_info) + + annotation go to state 239 + + + +state 128 + + type_info -> semantic . (rule 307) + type_info -> semantic . annotation (rule 310) + type_info -> semantic . register_specifier (rule 311) + type_info -> semantic . register_specifier annotation (rule 313) + + COLON shift, and go to state 240 + LEFT_ANGLE shift, and go to state 125 + + $default reduce using rule 307 (type_info) + + annotation go to state 241 + register_specifier go to state 242 + + + +state 129 + + single_declaration -> fully_specified_type IDENTIFIER type_info . (rule 116) + single_declaration -> fully_specified_type IDENTIFIER type_info . EQUAL initializer (rule 121) + + EQUAL shift, and go to state 243 + + $default reduce using rule 116 (single_declaration) + + + +state 130 + + variable_identifier -> IDENTIFIER . (rule 1) + function_identifier -> IDENTIFIER . (rule 25) + + LEFT_PAREN reduce using rule 25 (function_identifier) + $default reduce using rule 1 (variable_identifier) + + + +state 131 + + primary_expression -> FLOATCONSTANT . (rule 4) + + $default reduce using rule 4 (primary_expression) + + + +state 132 + + primary_expression -> INTCONSTANT . (rule 3) + + $default reduce using rule 3 (primary_expression) + + + +state 133 + + primary_expression -> BOOLCONSTANT . (rule 5) + + $default reduce using rule 5 (primary_expression) + + + +state 134 + + function_identifier -> FIELD_SELECTION . (rule 26) + + $default reduce using rule 26 (function_identifier) + + + +state 135 + + unary_expression -> INC_OP . unary_expression (rule 28) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 244 + unary_operator go to state 153 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 136 + + unary_expression -> DEC_OP . unary_expression (rule 29) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 245 + unary_operator go to state 153 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 137 + + primary_expression -> LEFT_PAREN . expression RIGHT_PAREN (rule 6) + unary_expression -> LEFT_PAREN . type_specifier_nonarray RIGHT_PAREN unary_expression (rule 31) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 188 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 189 + assign_expression go to state 190 + expression go to state 246 + type_specifier go to state 167 + type_specifier_nonarray go to state 247 + struct_specifier go to state 81 + + + +state 138 + + unary_operator -> BANG . (rule 34) + + $default reduce using rule 34 (unary_operator) + + + +state 139 + + unary_operator -> DASH . (rule 33) + + $default reduce using rule 33 (unary_operator) + + + +state 140 + + unary_operator -> TILDE . (rule 35) + + $default reduce using rule 35 (unary_operator) + + + +state 141 + + unary_operator -> PLUS . (rule 32) + + $default reduce using rule 32 (unary_operator) + + + +state 142 + + primary_expression -> variable_identifier . (rule 2) + + $default reduce using rule 2 (primary_expression) + + + +state 143 + + postfix_expression -> primary_expression . (rule 7) + + $default reduce using rule 7 (postfix_expression) + + + +state 144 + + postfix_expression -> postfix_expression . LEFT_BRACKET int_expression RIGHT_BRACKET (rule 8) + postfix_expression -> postfix_expression . DOT FIELD_SELECTION (rule 10) + postfix_expression -> postfix_expression . INC_OP (rule 11) + postfix_expression -> postfix_expression . DEC_OP (rule 12) + function_call_or_method -> postfix_expression . DOT function_call_generic (rule 16) + unary_expression -> postfix_expression . (rule 27) + + INC_OP shift, and go to state 248 + DEC_OP shift, and go to state 249 + LEFT_BRACKET shift, and go to state 250 + DOT shift, and go to state 251 + + $default reduce using rule 27 (unary_expression) + + + +state 145 + + postfix_expression -> function_call . (rule 9) + + $default reduce using rule 9 (postfix_expression) + + + +state 146 + + function_call -> function_call_or_method . (rule 14) + + $default reduce using rule 14 (function_call) + + + +state 147 + + function_call_or_method -> function_call_generic . (rule 15) + + $default reduce using rule 15 (function_call_or_method) + + + +state 148 + + function_call_generic -> function_call_header_no_parameters . RIGHT_PAREN (rule 18) + + RIGHT_PAREN shift, and go to state 252 + + + +state 149 + + function_call_generic -> function_call_header_with_parameters . RIGHT_PAREN (rule 17) + function_call_header_with_parameters -> function_call_header_with_parameters . COMMA assign_expression (rule 22) + + RIGHT_PAREN shift, and go to state 253 + COMMA shift, and go to state 254 + + + +state 150 + + function_call_header_no_parameters -> function_call_header . VOID_TYPE (rule 19) + function_call_header_no_parameters -> function_call_header . (rule 20) + function_call_header_with_parameters -> function_call_header . assign_expression (rule 21) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 255 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + $default reduce using rule 20 (function_call_header_no_parameters) + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 188 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 189 + assign_expression go to state 256 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 151 + + function_call_header -> function_identifier . LEFT_PAREN (rule 23) + + LEFT_PAREN shift, and go to state 257 + + + +state 152 + + mul_expression -> unary_expression . (rule 36) + + $default reduce using rule 36 (mul_expression) + + + +state 153 + + unary_expression -> unary_operator . unary_expression (rule 30) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 258 + unary_operator go to state 153 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 154 + + mul_expression -> mul_expression . STAR unary_expression (rule 37) + mul_expression -> mul_expression . SLASH unary_expression (rule 38) + mul_expression -> mul_expression . PERCENT unary_expression (rule 39) + add_expression -> mul_expression . (rule 40) + + STAR shift, and go to state 259 + SLASH shift, and go to state 260 + PERCENT shift, and go to state 261 + + $default reduce using rule 40 (add_expression) + + + +state 155 + + add_expression -> add_expression . PLUS mul_expression (rule 41) + add_expression -> add_expression . DASH mul_expression (rule 42) + shift_expression -> add_expression . (rule 43) + + DASH shift, and go to state 262 + PLUS shift, and go to state 263 + + $default reduce using rule 43 (shift_expression) + + + +state 156 + + shift_expression -> shift_expression . LEFT_OP add_expression (rule 44) + shift_expression -> shift_expression . RIGHT_OP add_expression (rule 45) + rel_expression -> shift_expression . (rule 46) + + LEFT_OP shift, and go to state 264 + RIGHT_OP shift, and go to state 265 + + $default reduce using rule 46 (rel_expression) + + + +state 157 + + rel_expression -> rel_expression . LEFT_ANGLE shift_expression (rule 47) + rel_expression -> rel_expression . RIGHT_ANGLE shift_expression (rule 48) + rel_expression -> rel_expression . LE_OP shift_expression (rule 49) + rel_expression -> rel_expression . GE_OP shift_expression (rule 50) + eq_expression -> rel_expression . (rule 51) + + LE_OP shift, and go to state 266 + GE_OP shift, and go to state 267 + LEFT_ANGLE shift, and go to state 268 + RIGHT_ANGLE shift, and go to state 269 + + $default reduce using rule 51 (eq_expression) + + + +state 158 + + eq_expression -> eq_expression . EQ_OP rel_expression (rule 52) + eq_expression -> eq_expression . NE_OP rel_expression (rule 53) + and_expression -> eq_expression . (rule 54) + + EQ_OP shift, and go to state 270 + NE_OP shift, and go to state 271 + + $default reduce using rule 54 (and_expression) + + + +state 159 + + and_expression -> and_expression . AMPERSAND eq_expression (rule 55) + xor_expression -> and_expression . (rule 56) + + AMPERSAND shift, and go to state 272 + + $default reduce using rule 56 (xor_expression) + + + +state 160 + + xor_expression -> xor_expression . CARET and_expression (rule 57) + or_expression -> xor_expression . (rule 58) + + CARET shift, and go to state 273 + + $default reduce using rule 58 (or_expression) + + + +state 161 + + or_expression -> or_expression . VERTICAL_BAR xor_expression (rule 59) + log_and_expression -> or_expression . (rule 60) + + VERTICAL_BAR shift, and go to state 274 + + $default reduce using rule 60 (log_and_expression) + + + +state 162 + + log_and_expression -> log_and_expression . AND_OP or_expression (rule 61) + log_xor_expression -> log_and_expression . (rule 62) + + AND_OP shift, and go to state 275 + + $default reduce using rule 62 (log_xor_expression) + + + +state 163 + + log_xor_expression -> log_xor_expression . XOR_OP log_and_expression (rule 63) + log_or_expression -> log_xor_expression . (rule 64) + + XOR_OP shift, and go to state 276 + + $default reduce using rule 64 (log_or_expression) + + + +state 164 + + log_or_expression -> log_or_expression . OR_OP log_xor_expression (rule 65) + cond_expression -> log_or_expression . (rule 66) + cond_expression -> log_or_expression . QUESTION expression COLON assign_expression (rule 67) + + OR_OP shift, and go to state 277 + QUESTION shift, and go to state 278 + + $default reduce using rule 66 (cond_expression) + + + +state 165 + + const_expression -> cond_expression . (rule 83) + + $default reduce using rule 83 (const_expression) + + + +state 166 + + type_specifier -> type_specifier_nonarray LEFT_BRACKET const_expression . RIGHT_BRACKET (rule 130) + + RIGHT_BRACKET shift, and go to state 279 + + + +state 167 + + function_identifier -> type_specifier . (rule 24) + + $default reduce using rule 24 (function_identifier) + + + +state 168 + + struct_specifier -> STRUCT IDENTIFIER LEFT_BRACE struct_declaration_list . RIGHT_BRACE (rule 198) + struct_declaration_list -> struct_declaration_list . struct_declaration (rule 201) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + TYPE_NAME shift, and go to state 68 + RIGHT_BRACE shift, and go to state 280 + + type_specifier go to state 107 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + struct_declaration go to state 173 + + + +state 169 + + struct_declarator -> IDENTIFIER . (rule 205) + struct_declarator -> IDENTIFIER . COLON IDENTIFIER (rule 206) + struct_declarator -> IDENTIFIER . LEFT_BRACKET const_expression RIGHT_BRACKET (rule 207) + struct_declarator -> IDENTIFIER . LEFT_BRACKET const_expression RIGHT_BRACKET COLON IDENTIFIER (rule 208) + + LEFT_BRACKET shift, and go to state 281 + COLON shift, and go to state 282 + + $default reduce using rule 205 (struct_declarator) + + + +state 170 + + struct_declaration -> type_specifier struct_declarator_list . SEMICOLON (rule 202) + struct_declarator_list -> struct_declarator_list . COMMA struct_declarator (rule 204) + + COMMA shift, and go to state 283 + SEMICOLON shift, and go to state 284 + + + +state 171 + + struct_declarator_list -> struct_declarator . (rule 203) + + $default reduce using rule 203 (struct_declarator_list) + + + +state 172 + + struct_specifier -> STRUCT LEFT_BRACE struct_declaration_list RIGHT_BRACE . (rule 199) + + $default reduce using rule 199 (struct_specifier) + + + +state 173 + + struct_declaration_list -> struct_declaration_list struct_declaration . (rule 201) + + $default reduce using rule 201 (struct_declaration_list) + + + +state 174 + + type_specifier_nonarray -> VECTOR LEFT_ANGLE BOOL_TYPE COMMA . INTCONSTANT RIGHT_ANGLE (rule 139) + + INTCONSTANT shift, and go to state 285 + + + +state 175 + + type_specifier_nonarray -> VECTOR LEFT_ANGLE FLOAT_TYPE COMMA . INTCONSTANT RIGHT_ANGLE (rule 137) + + INTCONSTANT shift, and go to state 286 + + + +state 176 + + type_specifier_nonarray -> VECTOR LEFT_ANGLE INT_TYPE COMMA . INTCONSTANT RIGHT_ANGLE (rule 138) + + INTCONSTANT shift, and go to state 287 + + + +state 177 + + jump_statement -> BREAK . SEMICOLON (rule 250) + + SEMICOLON shift, and go to state 288 + + + +state 178 + + jump_statement -> CONTINUE . SEMICOLON (rule 249) + + SEMICOLON shift, and go to state 289 + + + +state 179 + + iteration_statement -> DO . @4 statement WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON (rule 240) + + $default reduce using rule 239 (@4) + + @4 go to state 290 + + + +state 180 + + iteration_statement -> FOR . LEFT_PAREN @5 for_init_statement for_rest_statement RIGHT_PAREN statement_no_new_scope (rule 242) + + LEFT_PAREN shift, and go to state 291 + + + +state 181 + + selection_statement -> IF . LEFT_PAREN expression RIGHT_PAREN selection_rest_statement (rule 232) + + LEFT_PAREN shift, and go to state 292 + + + +state 182 + + jump_statement -> DISCARD . SEMICOLON (rule 253) + + SEMICOLON shift, and go to state 293 + + + +state 183 + + jump_statement -> RETURN . SEMICOLON (rule 251) + jump_statement -> RETURN . expression SEMICOLON (rule 252) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + SEMICOLON shift, and go to state 294 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 188 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 189 + assign_expression go to state 190 + expression go to state 295 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 184 + + iteration_statement -> WHILE . LEFT_PAREN @3 condition RIGHT_PAREN statement_no_new_scope (rule 238) + + LEFT_PAREN shift, and go to state 296 + + + +state 185 + + compound_statement -> LEFT_BRACE . RIGHT_BRACE (rule 220) + compound_statement -> LEFT_BRACE . @1 statement_list @2 RIGHT_BRACE (rule 223) + + RIGHT_BRACE shift, and go to state 297 + + $default reduce using rule 221 (@1) + + @1 go to state 298 + + + +state 186 + + compound_statement_no_new_scope -> LEFT_BRACE RIGHT_BRACE . (rule 226) + + $default reduce using rule 226 (compound_statement_no_new_scope) + + + +state 187 + + expression_statement -> SEMICOLON . (rule 230) + + $default reduce using rule 230 (expression_statement) + + + +state 188 + + mul_expression -> unary_expression . (rule 36) + assign_expression -> unary_expression . assignment_operator assign_expression (rule 69) + + MUL_ASSIGN shift, and go to state 299 + DIV_ASSIGN shift, and go to state 300 + ADD_ASSIGN shift, and go to state 301 + MOD_ASSIGN shift, and go to state 302 + LEFT_ASSIGN shift, and go to state 303 + RIGHT_ASSIGN shift, and go to state 304 + AND_ASSIGN shift, and go to state 305 + XOR_ASSIGN shift, and go to state 306 + OR_ASSIGN shift, and go to state 307 + SUB_ASSIGN shift, and go to state 308 + EQUAL shift, and go to state 309 + + $default reduce using rule 36 (mul_expression) + + assignment_operator go to state 310 + + + +state 189 + + assign_expression -> cond_expression . (rule 68) + + $default reduce using rule 68 (assign_expression) + + + +state 190 + + expression -> assign_expression . (rule 81) + + $default reduce using rule 81 (expression) + + + +state 191 + + expression -> expression . COMMA assign_expression (rule 82) + expression_statement -> expression . SEMICOLON (rule 231) + + COMMA shift, and go to state 311 + SEMICOLON shift, and go to state 312 + + + +state 192 + + declaration_statement -> declaration . (rule 212) + + $default reduce using rule 212 (declaration_statement) + + + +state 193 + + declaration -> function_prototype . SEMICOLON (rule 84) + + SEMICOLON shift, and go to state 90 + + + +state 194 + + function_identifier -> type_specifier . (rule 24) + fully_specified_type -> type_specifier . (rule 122) + + LEFT_PAREN reduce using rule 24 (function_identifier) + $default reduce using rule 122 (fully_specified_type) + + + +state 195 + + simple_statement -> declaration_statement . (rule 215) + + $default reduce using rule 215 (simple_statement) + + + +state 196 + + statement_list -> statement . (rule 228) + + $default reduce using rule 228 (statement_list) + + + +state 197 + + statement -> simple_statement . (rule 214) + + $default reduce using rule 214 (statement) + + + +state 198 + + statement -> compound_statement . (rule 213) + + $default reduce using rule 213 (statement) + + + +state 199 + + compound_statement_no_new_scope -> LEFT_BRACE statement_list . RIGHT_BRACE (rule 227) + statement_list -> statement_list . statement (rule 229) + + CONST_QUAL shift, and go to state 1 + STATIC_QUAL shift, and go to state 2 + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BREAK shift, and go to state 177 + CONTINUE shift, and go to state 178 + DO shift, and go to state 179 + FOR shift, and go to state 180 + IF shift, and go to state 181 + DISCARD shift, and go to state 182 + RETURN shift, and go to state 183 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + UNIFORM shift, and go to state 50 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + WHILE shift, and go to state 184 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + LEFT_BRACE shift, and go to state 185 + RIGHT_BRACE shift, and go to state 313 + SEMICOLON shift, and go to state 187 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 188 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 189 + assign_expression go to state 190 + expression go to state 191 + declaration go to state 192 + function_prototype go to state 193 + function_declarator go to state 72 + function_header_with_parameters go to state 73 + function_header go to state 74 + init_declarator_list go to state 75 + single_declaration go to state 76 + fully_specified_type go to state 77 + type_qualifier go to state 78 + type_specifier go to state 194 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + declaration_statement go to state 195 + statement go to state 314 + simple_statement go to state 197 + compound_statement go to state 198 + expression_statement go to state 200 + selection_statement go to state 201 + iteration_statement go to state 202 + jump_statement go to state 203 + + + +state 200 + + simple_statement -> expression_statement . (rule 216) + + $default reduce using rule 216 (simple_statement) + + + +state 201 + + simple_statement -> selection_statement . (rule 217) + + $default reduce using rule 217 (simple_statement) + + + +state 202 + + simple_statement -> iteration_statement . (rule 218) + + $default reduce using rule 218 (simple_statement) + + + +state 203 + + simple_statement -> jump_statement . (rule 219) + + $default reduce using rule 219 (simple_statement) + + + +state 204 + + function_prototype -> function_declarator RIGHT_PAREN COLON IDENTIFIER . (rule 87) + + $default reduce using rule 87 (function_prototype) + + + +state 205 + + parameter_declarator -> type_specifier IDENTIFIER . (rule 93) + parameter_declarator -> type_specifier IDENTIFIER . EQUAL initializer (rule 94) + parameter_declarator -> type_specifier IDENTIFIER . register_specifier (rule 95) + parameter_declarator -> type_specifier IDENTIFIER . COLON IDENTIFIER (rule 96) + parameter_declarator -> type_specifier IDENTIFIER . LEFT_BRACKET const_expression RIGHT_BRACKET (rule 97) + parameter_declarator -> type_specifier IDENTIFIER . LEFT_BRACKET const_expression RIGHT_BRACKET COLON IDENTIFIER (rule 98) + + LEFT_BRACKET shift, and go to state 315 + COLON shift, and go to state 316 + EQUAL shift, and go to state 317 + + $default reduce using rule 93 (parameter_declarator) + + register_specifier go to state 318 + + + +state 206 + + parameter_declaration -> type_qualifier parameter_qualifier parameter_declarator . (rule 99) + + $default reduce using rule 99 (parameter_declaration) + + + +state 207 + + parameter_declaration -> type_qualifier parameter_qualifier parameter_type_specifier . (rule 101) + + $default reduce using rule 101 (parameter_declaration) + + + +state 208 + + init_declarator_list -> init_declarator_list COMMA IDENTIFIER LEFT_BRACKET . RIGHT_BRACKET type_info (rule 110) + init_declarator_list -> init_declarator_list COMMA IDENTIFIER LEFT_BRACKET . const_expression RIGHT_BRACKET type_info (rule 111) + init_declarator_list -> init_declarator_list COMMA IDENTIFIER LEFT_BRACKET . RIGHT_BRACKET type_info EQUAL initializer (rule 112) + init_declarator_list -> init_declarator_list COMMA IDENTIFIER LEFT_BRACKET . const_expression RIGHT_BRACKET type_info EQUAL initializer (rule 113) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + RIGHT_BRACKET shift, and go to state 319 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 152 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 165 + const_expression go to state 320 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 209 + + init_declarator_list -> init_declarator_list COMMA IDENTIFIER type_info . (rule 109) + init_declarator_list -> init_declarator_list COMMA IDENTIFIER type_info . EQUAL initializer (rule 114) + + EQUAL shift, and go to state 321 + + $default reduce using rule 109 (init_declarator_list) + + + +state 210 + + single_declaration -> fully_specified_type IDENTIFIER LEFT_BRACKET RIGHT_BRACKET . type_info (rule 117) + single_declaration -> fully_specified_type IDENTIFIER LEFT_BRACKET RIGHT_BRACKET . type_info EQUAL initializer (rule 119) + + COLON shift, and go to state 124 + LEFT_ANGLE shift, and go to state 125 + + $default reduce using rule 306 (type_info) + + annotation go to state 126 + register_specifier go to state 127 + semantic go to state 128 + type_info go to state 322 + + + +state 211 + + single_declaration -> fully_specified_type IDENTIFIER LEFT_BRACKET const_expression . RIGHT_BRACKET type_info (rule 118) + single_declaration -> fully_specified_type IDENTIFIER LEFT_BRACKET const_expression . RIGHT_BRACKET type_info EQUAL initializer (rule 120) + + RIGHT_BRACKET shift, and go to state 323 + + + +state 212 + + register_specifier -> COLON REGISTER . LEFT_PAREN IDENTIFIER RIGHT_PAREN (rule 304) + + LEFT_PAREN shift, and go to state 324 + + + +state 213 + + semantic -> COLON IDENTIFIER . (rule 305) + + $default reduce using rule 305 (semantic) + + + +state 214 + + ann_type -> BOOL_TYPE . (rule 276) + + $default reduce using rule 276 (ann_type) + + + +state 215 + + ann_type -> FLOAT_TYPE . (rule 272) + + $default reduce using rule 272 (ann_type) + + + +state 216 + + ann_type -> INT_TYPE . (rule 275) + + $default reduce using rule 275 (ann_type) + + + +state 217 + + ann_type -> STRING_TYPE . (rule 277) + + $default reduce using rule 277 (ann_type) + + + +state 218 + + ann_type -> FIXED_TYPE . (rule 274) + + $default reduce using rule 274 (ann_type) + + + +state 219 + + ann_type -> HALF_TYPE . (rule 273) + + $default reduce using rule 273 (ann_type) + + + +state 220 + + ann_type -> BVEC2 . (rule 278) + + $default reduce using rule 278 (ann_type) + + + +state 221 + + ann_type -> BVEC3 . (rule 279) + + $default reduce using rule 279 (ann_type) + + + +state 222 + + ann_type -> BVEC4 . (rule 280) + + $default reduce using rule 280 (ann_type) + + + +state 223 + + ann_type -> IVEC2 . (rule 281) + + $default reduce using rule 281 (ann_type) + + + +state 224 + + ann_type -> IVEC3 . (rule 282) + + $default reduce using rule 282 (ann_type) + + + +state 225 + + ann_type -> IVEC4 . (rule 283) + + $default reduce using rule 283 (ann_type) + + + +state 226 + + ann_type -> VEC2 . (rule 284) + + $default reduce using rule 284 (ann_type) + + + +state 227 + + ann_type -> VEC3 . (rule 285) + + $default reduce using rule 285 (ann_type) + + + +state 228 + + ann_type -> VEC4 . (rule 286) + + $default reduce using rule 286 (ann_type) + + + +state 229 + + ann_type -> HVEC2 . (rule 287) + + $default reduce using rule 287 (ann_type) + + + +state 230 + + ann_type -> HVEC3 . (rule 288) + + $default reduce using rule 288 (ann_type) + + + +state 231 + + ann_type -> HVEC4 . (rule 289) + + $default reduce using rule 289 (ann_type) + + + +state 232 + + ann_type -> FVEC2 . (rule 290) + + $default reduce using rule 290 (ann_type) + + + +state 233 + + ann_type -> FVEC3 . (rule 291) + + $default reduce using rule 291 (ann_type) + + + +state 234 + + ann_type -> FVEC4 . (rule 292) + + $default reduce using rule 292 (ann_type) + + + +state 235 + + annotation -> LEFT_ANGLE RIGHT_ANGLE . (rule 267) + + $default reduce using rule 267 (annotation) + + + +state 236 + + annotation -> LEFT_ANGLE annotation_list . RIGHT_ANGLE (rule 268) + annotation_list -> annotation_list . annotation_item (rule 270) + + BOOL_TYPE shift, and go to state 214 + FLOAT_TYPE shift, and go to state 215 + INT_TYPE shift, and go to state 216 + STRING_TYPE shift, and go to state 217 + FIXED_TYPE shift, and go to state 218 + HALF_TYPE shift, and go to state 219 + BVEC2 shift, and go to state 220 + BVEC3 shift, and go to state 221 + BVEC4 shift, and go to state 222 + IVEC2 shift, and go to state 223 + IVEC3 shift, and go to state 224 + IVEC4 shift, and go to state 225 + VEC2 shift, and go to state 226 + VEC3 shift, and go to state 227 + VEC4 shift, and go to state 228 + HVEC2 shift, and go to state 229 + HVEC3 shift, and go to state 230 + HVEC4 shift, and go to state 231 + FVEC2 shift, and go to state 232 + FVEC3 shift, and go to state 233 + FVEC4 shift, and go to state 234 + RIGHT_ANGLE shift, and go to state 325 + + annotation_item go to state 326 + ann_type go to state 238 + + + +state 237 + + annotation_list -> annotation_item . (rule 269) + + $default reduce using rule 269 (annotation_list) + + + +state 238 + + annotation_item -> ann_type . IDENTIFIER EQUAL ann_literal SEMICOLON (rule 271) + + IDENTIFIER shift, and go to state 327 + + + +state 239 + + type_info -> register_specifier annotation . (rule 312) + + $default reduce using rule 312 (type_info) + + + +state 240 + + register_specifier -> COLON . REGISTER LEFT_PAREN IDENTIFIER RIGHT_PAREN (rule 304) + + REGISTER shift, and go to state 212 + + + +state 241 + + type_info -> semantic annotation . (rule 310) + + $default reduce using rule 310 (type_info) + + + +state 242 + + type_info -> semantic register_specifier . (rule 311) + type_info -> semantic register_specifier . annotation (rule 313) + + LEFT_ANGLE shift, and go to state 125 + + $default reduce using rule 311 (type_info) + + annotation go to state 328 + + + +state 243 + + single_declaration -> fully_specified_type IDENTIFIER type_info EQUAL . initializer (rule 121) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + SAMPLERSTATE shift, and go to state 329 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + LEFT_BRACE shift, and go to state 330 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 188 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 189 + assign_expression go to state 331 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + initializer go to state 332 + initialization_list go to state 333 + sampler_initializer go to state 334 + + + +state 244 + + unary_expression -> INC_OP unary_expression . (rule 28) + + $default reduce using rule 28 (unary_expression) + + + +state 245 + + unary_expression -> DEC_OP unary_expression . (rule 29) + + $default reduce using rule 29 (unary_expression) + + + +state 246 + + primary_expression -> LEFT_PAREN expression . RIGHT_PAREN (rule 6) + expression -> expression . COMMA assign_expression (rule 82) + + RIGHT_PAREN shift, and go to state 335 + COMMA shift, and go to state 311 + + + +state 247 + + unary_expression -> LEFT_PAREN type_specifier_nonarray . RIGHT_PAREN unary_expression (rule 31) + type_specifier -> type_specifier_nonarray . (rule 129) + type_specifier -> type_specifier_nonarray . LEFT_BRACKET const_expression RIGHT_BRACKET (rule 130) + + RIGHT_PAREN shift, and go to state 336 + LEFT_BRACKET shift, and go to state 104 + + $default reduce using rule 129 (type_specifier) + + + +state 248 + + postfix_expression -> postfix_expression INC_OP . (rule 11) + + $default reduce using rule 11 (postfix_expression) + + + +state 249 + + postfix_expression -> postfix_expression DEC_OP . (rule 12) + + $default reduce using rule 12 (postfix_expression) + + + +state 250 + + postfix_expression -> postfix_expression LEFT_BRACKET . int_expression RIGHT_BRACKET (rule 8) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + int_expression go to state 337 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 188 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 189 + assign_expression go to state 190 + expression go to state 338 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 251 + + postfix_expression -> postfix_expression DOT . FIELD_SELECTION (rule 10) + function_call_or_method -> postfix_expression DOT . function_call_generic (rule 16) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 339 + TYPE_NAME shift, and go to state 68 + FIELD_SELECTION shift, and go to state 340 + + function_call_generic go to state 341 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 252 + + function_call_generic -> function_call_header_no_parameters RIGHT_PAREN . (rule 18) + + $default reduce using rule 18 (function_call_generic) + + + +state 253 + + function_call_generic -> function_call_header_with_parameters RIGHT_PAREN . (rule 17) + + $default reduce using rule 17 (function_call_generic) + + + +state 254 + + function_call_header_with_parameters -> function_call_header_with_parameters COMMA . assign_expression (rule 22) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 188 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 189 + assign_expression go to state 342 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 255 + + function_call_header_no_parameters -> function_call_header VOID_TYPE . (rule 19) + type_specifier_nonarray -> VOID_TYPE . (rule 131) + + RIGHT_PAREN reduce using rule 19 (function_call_header_no_parameters) + $default reduce using rule 131 (type_specifier_nonarray) + + + +state 256 + + function_call_header_with_parameters -> function_call_header assign_expression . (rule 21) + + $default reduce using rule 21 (function_call_header_with_parameters) + + + +state 257 + + function_call_header -> function_identifier LEFT_PAREN . (rule 23) + + $default reduce using rule 23 (function_call_header) + + + +state 258 + + unary_expression -> unary_operator unary_expression . (rule 30) + + $default reduce using rule 30 (unary_expression) + + + +state 259 + + mul_expression -> mul_expression STAR . unary_expression (rule 37) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 343 + unary_operator go to state 153 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 260 + + mul_expression -> mul_expression SLASH . unary_expression (rule 38) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 344 + unary_operator go to state 153 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 261 + + mul_expression -> mul_expression PERCENT . unary_expression (rule 39) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 345 + unary_operator go to state 153 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 262 + + add_expression -> add_expression DASH . mul_expression (rule 42) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 152 + unary_operator go to state 153 + mul_expression go to state 346 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 263 + + add_expression -> add_expression PLUS . mul_expression (rule 41) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 152 + unary_operator go to state 153 + mul_expression go to state 347 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 264 + + shift_expression -> shift_expression LEFT_OP . add_expression (rule 44) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 152 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 348 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 265 + + shift_expression -> shift_expression RIGHT_OP . add_expression (rule 45) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 152 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 349 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 266 + + rel_expression -> rel_expression LE_OP . shift_expression (rule 49) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 152 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 350 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 267 + + rel_expression -> rel_expression GE_OP . shift_expression (rule 50) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 152 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 351 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 268 + + rel_expression -> rel_expression LEFT_ANGLE . shift_expression (rule 47) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 152 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 352 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 269 + + rel_expression -> rel_expression RIGHT_ANGLE . shift_expression (rule 48) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 152 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 353 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 270 + + eq_expression -> eq_expression EQ_OP . rel_expression (rule 52) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 152 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 354 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 271 + + eq_expression -> eq_expression NE_OP . rel_expression (rule 53) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 152 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 355 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 272 + + and_expression -> and_expression AMPERSAND . eq_expression (rule 55) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 152 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 356 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 273 + + xor_expression -> xor_expression CARET . and_expression (rule 57) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 152 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 357 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 274 + + or_expression -> or_expression VERTICAL_BAR . xor_expression (rule 59) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 152 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 358 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 275 + + log_and_expression -> log_and_expression AND_OP . or_expression (rule 61) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 152 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 359 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 276 + + log_xor_expression -> log_xor_expression XOR_OP . log_and_expression (rule 63) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 152 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 360 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 277 + + log_or_expression -> log_or_expression OR_OP . log_xor_expression (rule 65) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 152 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 361 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 278 + + cond_expression -> log_or_expression QUESTION . expression COLON assign_expression (rule 67) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 188 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 189 + assign_expression go to state 190 + expression go to state 362 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 279 + + type_specifier -> type_specifier_nonarray LEFT_BRACKET const_expression RIGHT_BRACKET . (rule 130) + + $default reduce using rule 130 (type_specifier) + + + +state 280 + + struct_specifier -> STRUCT IDENTIFIER LEFT_BRACE struct_declaration_list RIGHT_BRACE . (rule 198) + + $default reduce using rule 198 (struct_specifier) + + + +state 281 + + struct_declarator -> IDENTIFIER LEFT_BRACKET . const_expression RIGHT_BRACKET (rule 207) + struct_declarator -> IDENTIFIER LEFT_BRACKET . const_expression RIGHT_BRACKET COLON IDENTIFIER (rule 208) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 152 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 165 + const_expression go to state 363 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 282 + + struct_declarator -> IDENTIFIER COLON . IDENTIFIER (rule 206) + + IDENTIFIER shift, and go to state 364 + + + +state 283 + + struct_declarator_list -> struct_declarator_list COMMA . struct_declarator (rule 204) + + IDENTIFIER shift, and go to state 169 + + struct_declarator go to state 365 + + + +state 284 + + struct_declaration -> type_specifier struct_declarator_list SEMICOLON . (rule 202) + + $default reduce using rule 202 (struct_declaration) + + + +state 285 + + type_specifier_nonarray -> VECTOR LEFT_ANGLE BOOL_TYPE COMMA INTCONSTANT . RIGHT_ANGLE (rule 139) + + RIGHT_ANGLE shift, and go to state 366 + + + +state 286 + + type_specifier_nonarray -> VECTOR LEFT_ANGLE FLOAT_TYPE COMMA INTCONSTANT . RIGHT_ANGLE (rule 137) + + RIGHT_ANGLE shift, and go to state 367 + + + +state 287 + + type_specifier_nonarray -> VECTOR LEFT_ANGLE INT_TYPE COMMA INTCONSTANT . RIGHT_ANGLE (rule 138) + + RIGHT_ANGLE shift, and go to state 368 + + + +state 288 + + jump_statement -> BREAK SEMICOLON . (rule 250) + + $default reduce using rule 250 (jump_statement) + + + +state 289 + + jump_statement -> CONTINUE SEMICOLON . (rule 249) + + $default reduce using rule 249 (jump_statement) + + + +state 290 + + iteration_statement -> DO @4 . statement WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON (rule 240) + + CONST_QUAL shift, and go to state 1 + STATIC_QUAL shift, and go to state 2 + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BREAK shift, and go to state 177 + CONTINUE shift, and go to state 178 + DO shift, and go to state 179 + FOR shift, and go to state 180 + IF shift, and go to state 181 + DISCARD shift, and go to state 182 + RETURN shift, and go to state 183 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + UNIFORM shift, and go to state 50 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + WHILE shift, and go to state 184 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + LEFT_BRACE shift, and go to state 185 + SEMICOLON shift, and go to state 187 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 188 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 189 + assign_expression go to state 190 + expression go to state 191 + declaration go to state 192 + function_prototype go to state 193 + function_declarator go to state 72 + function_header_with_parameters go to state 73 + function_header go to state 74 + init_declarator_list go to state 75 + single_declaration go to state 76 + fully_specified_type go to state 77 + type_qualifier go to state 78 + type_specifier go to state 194 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + declaration_statement go to state 195 + statement go to state 369 + simple_statement go to state 197 + compound_statement go to state 198 + expression_statement go to state 200 + selection_statement go to state 201 + iteration_statement go to state 202 + jump_statement go to state 203 + + + +state 291 + + iteration_statement -> FOR LEFT_PAREN . @5 for_init_statement for_rest_statement RIGHT_PAREN statement_no_new_scope (rule 242) + + $default reduce using rule 241 (@5) + + @5 go to state 370 + + + +state 292 + + selection_statement -> IF LEFT_PAREN . expression RIGHT_PAREN selection_rest_statement (rule 232) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 188 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 189 + assign_expression go to state 190 + expression go to state 371 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 293 + + jump_statement -> DISCARD SEMICOLON . (rule 253) + + $default reduce using rule 253 (jump_statement) + + + +state 294 + + jump_statement -> RETURN SEMICOLON . (rule 251) + + $default reduce using rule 251 (jump_statement) + + + +state 295 + + expression -> expression . COMMA assign_expression (rule 82) + jump_statement -> RETURN expression . SEMICOLON (rule 252) + + COMMA shift, and go to state 311 + SEMICOLON shift, and go to state 372 + + + +state 296 + + iteration_statement -> WHILE LEFT_PAREN . @3 condition RIGHT_PAREN statement_no_new_scope (rule 238) + + $default reduce using rule 237 (@3) + + @3 go to state 373 + + + +state 297 + + compound_statement -> LEFT_BRACE RIGHT_BRACE . (rule 220) + + $default reduce using rule 220 (compound_statement) + + + +state 298 + + compound_statement -> LEFT_BRACE @1 . statement_list @2 RIGHT_BRACE (rule 223) + + CONST_QUAL shift, and go to state 1 + STATIC_QUAL shift, and go to state 2 + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BREAK shift, and go to state 177 + CONTINUE shift, and go to state 178 + DO shift, and go to state 179 + FOR shift, and go to state 180 + IF shift, and go to state 181 + DISCARD shift, and go to state 182 + RETURN shift, and go to state 183 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + UNIFORM shift, and go to state 50 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + WHILE shift, and go to state 184 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + LEFT_BRACE shift, and go to state 185 + SEMICOLON shift, and go to state 187 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 188 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 189 + assign_expression go to state 190 + expression go to state 191 + declaration go to state 192 + function_prototype go to state 193 + function_declarator go to state 72 + function_header_with_parameters go to state 73 + function_header go to state 74 + init_declarator_list go to state 75 + single_declaration go to state 76 + fully_specified_type go to state 77 + type_qualifier go to state 78 + type_specifier go to state 194 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + declaration_statement go to state 195 + statement go to state 196 + simple_statement go to state 197 + compound_statement go to state 198 + statement_list go to state 374 + expression_statement go to state 200 + selection_statement go to state 201 + iteration_statement go to state 202 + jump_statement go to state 203 + + + +state 299 + + assignment_operator -> MUL_ASSIGN . (rule 71) + + $default reduce using rule 71 (assignment_operator) + + + +state 300 + + assignment_operator -> DIV_ASSIGN . (rule 72) + + $default reduce using rule 72 (assignment_operator) + + + +state 301 + + assignment_operator -> ADD_ASSIGN . (rule 74) + + $default reduce using rule 74 (assignment_operator) + + + +state 302 + + assignment_operator -> MOD_ASSIGN . (rule 73) + + $default reduce using rule 73 (assignment_operator) + + + +state 303 + + assignment_operator -> LEFT_ASSIGN . (rule 76) + + $default reduce using rule 76 (assignment_operator) + + + +state 304 + + assignment_operator -> RIGHT_ASSIGN . (rule 77) + + $default reduce using rule 77 (assignment_operator) + + + +state 305 + + assignment_operator -> AND_ASSIGN . (rule 78) + + $default reduce using rule 78 (assignment_operator) + + + +state 306 + + assignment_operator -> XOR_ASSIGN . (rule 79) + + $default reduce using rule 79 (assignment_operator) + + + +state 307 + + assignment_operator -> OR_ASSIGN . (rule 80) + + $default reduce using rule 80 (assignment_operator) + + + +state 308 + + assignment_operator -> SUB_ASSIGN . (rule 75) + + $default reduce using rule 75 (assignment_operator) + + + +state 309 + + assignment_operator -> EQUAL . (rule 70) + + $default reduce using rule 70 (assignment_operator) + + + +state 310 + + assign_expression -> unary_expression assignment_operator . assign_expression (rule 69) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 188 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 189 + assign_expression go to state 375 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 311 + + expression -> expression COMMA . assign_expression (rule 82) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 188 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 189 + assign_expression go to state 376 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 312 + + expression_statement -> expression SEMICOLON . (rule 231) + + $default reduce using rule 231 (expression_statement) + + + +state 313 + + compound_statement_no_new_scope -> LEFT_BRACE statement_list RIGHT_BRACE . (rule 227) + + $default reduce using rule 227 (compound_statement_no_new_scope) + + + +state 314 + + statement_list -> statement_list statement . (rule 229) + + $default reduce using rule 229 (statement_list) + + + +state 315 + + parameter_declarator -> type_specifier IDENTIFIER LEFT_BRACKET . const_expression RIGHT_BRACKET (rule 97) + parameter_declarator -> type_specifier IDENTIFIER LEFT_BRACKET . const_expression RIGHT_BRACKET COLON IDENTIFIER (rule 98) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 152 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 165 + const_expression go to state 377 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 316 + + parameter_declarator -> type_specifier IDENTIFIER COLON . IDENTIFIER (rule 96) + register_specifier -> COLON . REGISTER LEFT_PAREN IDENTIFIER RIGHT_PAREN (rule 304) + + REGISTER shift, and go to state 212 + IDENTIFIER shift, and go to state 378 + + + +state 317 + + parameter_declarator -> type_specifier IDENTIFIER EQUAL . initializer (rule 94) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + SAMPLERSTATE shift, and go to state 329 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + LEFT_BRACE shift, and go to state 330 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 188 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 189 + assign_expression go to state 331 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + initializer go to state 379 + initialization_list go to state 333 + sampler_initializer go to state 334 + + + +state 318 + + parameter_declarator -> type_specifier IDENTIFIER register_specifier . (rule 95) + + $default reduce using rule 95 (parameter_declarator) + + + +state 319 + + init_declarator_list -> init_declarator_list COMMA IDENTIFIER LEFT_BRACKET RIGHT_BRACKET . type_info (rule 110) + init_declarator_list -> init_declarator_list COMMA IDENTIFIER LEFT_BRACKET RIGHT_BRACKET . type_info EQUAL initializer (rule 112) + + COLON shift, and go to state 124 + LEFT_ANGLE shift, and go to state 125 + + $default reduce using rule 306 (type_info) + + annotation go to state 126 + register_specifier go to state 127 + semantic go to state 128 + type_info go to state 380 + + + +state 320 + + init_declarator_list -> init_declarator_list COMMA IDENTIFIER LEFT_BRACKET const_expression . RIGHT_BRACKET type_info (rule 111) + init_declarator_list -> init_declarator_list COMMA IDENTIFIER LEFT_BRACKET const_expression . RIGHT_BRACKET type_info EQUAL initializer (rule 113) + + RIGHT_BRACKET shift, and go to state 381 + + + +state 321 + + init_declarator_list -> init_declarator_list COMMA IDENTIFIER type_info EQUAL . initializer (rule 114) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + SAMPLERSTATE shift, and go to state 329 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + LEFT_BRACE shift, and go to state 330 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 188 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 189 + assign_expression go to state 331 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + initializer go to state 382 + initialization_list go to state 333 + sampler_initializer go to state 334 + + + +state 322 + + single_declaration -> fully_specified_type IDENTIFIER LEFT_BRACKET RIGHT_BRACKET type_info . (rule 117) + single_declaration -> fully_specified_type IDENTIFIER LEFT_BRACKET RIGHT_BRACKET type_info . EQUAL initializer (rule 119) + + EQUAL shift, and go to state 383 + + $default reduce using rule 117 (single_declaration) + + + +state 323 + + single_declaration -> fully_specified_type IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET . type_info (rule 118) + single_declaration -> fully_specified_type IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET . type_info EQUAL initializer (rule 120) + + COLON shift, and go to state 124 + LEFT_ANGLE shift, and go to state 125 + + $default reduce using rule 306 (type_info) + + annotation go to state 126 + register_specifier go to state 127 + semantic go to state 128 + type_info go to state 384 + + + +state 324 + + register_specifier -> COLON REGISTER LEFT_PAREN . IDENTIFIER RIGHT_PAREN (rule 304) + + IDENTIFIER shift, and go to state 385 + + + +state 325 + + annotation -> LEFT_ANGLE annotation_list RIGHT_ANGLE . (rule 268) + + $default reduce using rule 268 (annotation) + + + +state 326 + + annotation_list -> annotation_list annotation_item . (rule 270) + + $default reduce using rule 270 (annotation_list) + + + +state 327 + + annotation_item -> ann_type IDENTIFIER . EQUAL ann_literal SEMICOLON (rule 271) + + EQUAL shift, and go to state 386 + + + +state 328 + + type_info -> semantic register_specifier annotation . (rule 313) + + $default reduce using rule 313 (type_info) + + + +state 329 + + sampler_initializer -> SAMPLERSTATE . LEFT_BRACE sampler_init_list RIGHT_BRACE (rule 314) + sampler_initializer -> SAMPLERSTATE . LEFT_BRACE RIGHT_BRACE (rule 315) + + LEFT_BRACE shift, and go to state 387 + + + +state 330 + + initialization_list -> LEFT_BRACE . initializer_list RIGHT_BRACE (rule 261) + initialization_list -> LEFT_BRACE . initializer_list COMMA RIGHT_BRACE (rule 262) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + LEFT_BRACE shift, and go to state 330 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 188 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 189 + assign_expression go to state 388 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + initialization_list go to state 389 + initializer_list go to state 390 + + + +state 331 + + initializer -> assign_expression . (rule 209) + + $default reduce using rule 209 (initializer) + + + +state 332 + + single_declaration -> fully_specified_type IDENTIFIER type_info EQUAL initializer . (rule 121) + + $default reduce using rule 121 (single_declaration) + + + +state 333 + + initializer -> initialization_list . (rule 210) + + $default reduce using rule 210 (initializer) + + + +state 334 + + initializer -> sampler_initializer . (rule 211) + + $default reduce using rule 211 (initializer) + + + +state 335 + + primary_expression -> LEFT_PAREN expression RIGHT_PAREN . (rule 6) + + $default reduce using rule 6 (primary_expression) + + + +state 336 + + unary_expression -> LEFT_PAREN type_specifier_nonarray RIGHT_PAREN . unary_expression (rule 31) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 391 + unary_operator go to state 153 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 337 + + postfix_expression -> postfix_expression LEFT_BRACKET int_expression . RIGHT_BRACKET (rule 8) + + RIGHT_BRACKET shift, and go to state 392 + + + +state 338 + + int_expression -> expression . (rule 13) + expression -> expression . COMMA assign_expression (rule 82) + + COMMA shift, and go to state 311 + + $default reduce using rule 13 (int_expression) + + + +state 339 + + function_identifier -> IDENTIFIER . (rule 25) + + $default reduce using rule 25 (function_identifier) + + + +state 340 + + postfix_expression -> postfix_expression DOT FIELD_SELECTION . (rule 10) + function_identifier -> FIELD_SELECTION . (rule 26) + + LEFT_PAREN reduce using rule 26 (function_identifier) + $default reduce using rule 10 (postfix_expression) + + + +state 341 + + function_call_or_method -> postfix_expression DOT function_call_generic . (rule 16) + + $default reduce using rule 16 (function_call_or_method) + + + +state 342 + + function_call_header_with_parameters -> function_call_header_with_parameters COMMA assign_expression . (rule 22) + + $default reduce using rule 22 (function_call_header_with_parameters) + + + +state 343 + + mul_expression -> mul_expression STAR unary_expression . (rule 37) + + $default reduce using rule 37 (mul_expression) + + + +state 344 + + mul_expression -> mul_expression SLASH unary_expression . (rule 38) + + $default reduce using rule 38 (mul_expression) + + + +state 345 + + mul_expression -> mul_expression PERCENT unary_expression . (rule 39) + + $default reduce using rule 39 (mul_expression) + + + +state 346 + + mul_expression -> mul_expression . STAR unary_expression (rule 37) + mul_expression -> mul_expression . SLASH unary_expression (rule 38) + mul_expression -> mul_expression . PERCENT unary_expression (rule 39) + add_expression -> add_expression DASH mul_expression . (rule 42) + + STAR shift, and go to state 259 + SLASH shift, and go to state 260 + PERCENT shift, and go to state 261 + + $default reduce using rule 42 (add_expression) + + + +state 347 + + mul_expression -> mul_expression . STAR unary_expression (rule 37) + mul_expression -> mul_expression . SLASH unary_expression (rule 38) + mul_expression -> mul_expression . PERCENT unary_expression (rule 39) + add_expression -> add_expression PLUS mul_expression . (rule 41) + + STAR shift, and go to state 259 + SLASH shift, and go to state 260 + PERCENT shift, and go to state 261 + + $default reduce using rule 41 (add_expression) + + + +state 348 + + add_expression -> add_expression . PLUS mul_expression (rule 41) + add_expression -> add_expression . DASH mul_expression (rule 42) + shift_expression -> shift_expression LEFT_OP add_expression . (rule 44) + + DASH shift, and go to state 262 + PLUS shift, and go to state 263 + + $default reduce using rule 44 (shift_expression) + + + +state 349 + + add_expression -> add_expression . PLUS mul_expression (rule 41) + add_expression -> add_expression . DASH mul_expression (rule 42) + shift_expression -> shift_expression RIGHT_OP add_expression . (rule 45) + + DASH shift, and go to state 262 + PLUS shift, and go to state 263 + + $default reduce using rule 45 (shift_expression) + + + +state 350 + + shift_expression -> shift_expression . LEFT_OP add_expression (rule 44) + shift_expression -> shift_expression . RIGHT_OP add_expression (rule 45) + rel_expression -> rel_expression LE_OP shift_expression . (rule 49) + + LEFT_OP shift, and go to state 264 + RIGHT_OP shift, and go to state 265 + + $default reduce using rule 49 (rel_expression) + + + +state 351 + + shift_expression -> shift_expression . LEFT_OP add_expression (rule 44) + shift_expression -> shift_expression . RIGHT_OP add_expression (rule 45) + rel_expression -> rel_expression GE_OP shift_expression . (rule 50) + + LEFT_OP shift, and go to state 264 + RIGHT_OP shift, and go to state 265 + + $default reduce using rule 50 (rel_expression) + + + +state 352 + + shift_expression -> shift_expression . LEFT_OP add_expression (rule 44) + shift_expression -> shift_expression . RIGHT_OP add_expression (rule 45) + rel_expression -> rel_expression LEFT_ANGLE shift_expression . (rule 47) + + LEFT_OP shift, and go to state 264 + RIGHT_OP shift, and go to state 265 + + $default reduce using rule 47 (rel_expression) + + + +state 353 + + shift_expression -> shift_expression . LEFT_OP add_expression (rule 44) + shift_expression -> shift_expression . RIGHT_OP add_expression (rule 45) + rel_expression -> rel_expression RIGHT_ANGLE shift_expression . (rule 48) + + LEFT_OP shift, and go to state 264 + RIGHT_OP shift, and go to state 265 + + $default reduce using rule 48 (rel_expression) + + + +state 354 + + rel_expression -> rel_expression . LEFT_ANGLE shift_expression (rule 47) + rel_expression -> rel_expression . RIGHT_ANGLE shift_expression (rule 48) + rel_expression -> rel_expression . LE_OP shift_expression (rule 49) + rel_expression -> rel_expression . GE_OP shift_expression (rule 50) + eq_expression -> eq_expression EQ_OP rel_expression . (rule 52) + + LE_OP shift, and go to state 266 + GE_OP shift, and go to state 267 + LEFT_ANGLE shift, and go to state 268 + RIGHT_ANGLE shift, and go to state 269 + + $default reduce using rule 52 (eq_expression) + + + +state 355 + + rel_expression -> rel_expression . LEFT_ANGLE shift_expression (rule 47) + rel_expression -> rel_expression . RIGHT_ANGLE shift_expression (rule 48) + rel_expression -> rel_expression . LE_OP shift_expression (rule 49) + rel_expression -> rel_expression . GE_OP shift_expression (rule 50) + eq_expression -> eq_expression NE_OP rel_expression . (rule 53) + + LE_OP shift, and go to state 266 + GE_OP shift, and go to state 267 + LEFT_ANGLE shift, and go to state 268 + RIGHT_ANGLE shift, and go to state 269 + + $default reduce using rule 53 (eq_expression) + + + +state 356 + + eq_expression -> eq_expression . EQ_OP rel_expression (rule 52) + eq_expression -> eq_expression . NE_OP rel_expression (rule 53) + and_expression -> and_expression AMPERSAND eq_expression . (rule 55) + + EQ_OP shift, and go to state 270 + NE_OP shift, and go to state 271 + + $default reduce using rule 55 (and_expression) + + + +state 357 + + and_expression -> and_expression . AMPERSAND eq_expression (rule 55) + xor_expression -> xor_expression CARET and_expression . (rule 57) + + AMPERSAND shift, and go to state 272 + + $default reduce using rule 57 (xor_expression) + + + +state 358 + + xor_expression -> xor_expression . CARET and_expression (rule 57) + or_expression -> or_expression VERTICAL_BAR xor_expression . (rule 59) + + CARET shift, and go to state 273 + + $default reduce using rule 59 (or_expression) + + + +state 359 + + or_expression -> or_expression . VERTICAL_BAR xor_expression (rule 59) + log_and_expression -> log_and_expression AND_OP or_expression . (rule 61) + + VERTICAL_BAR shift, and go to state 274 + + $default reduce using rule 61 (log_and_expression) + + + +state 360 + + log_and_expression -> log_and_expression . AND_OP or_expression (rule 61) + log_xor_expression -> log_xor_expression XOR_OP log_and_expression . (rule 63) + + AND_OP shift, and go to state 275 + + $default reduce using rule 63 (log_xor_expression) + + + +state 361 + + log_xor_expression -> log_xor_expression . XOR_OP log_and_expression (rule 63) + log_or_expression -> log_or_expression OR_OP log_xor_expression . (rule 65) + + XOR_OP shift, and go to state 276 + + $default reduce using rule 65 (log_or_expression) + + + +state 362 + + cond_expression -> log_or_expression QUESTION expression . COLON assign_expression (rule 67) + expression -> expression . COMMA assign_expression (rule 82) + + COMMA shift, and go to state 311 + COLON shift, and go to state 393 + + + +state 363 + + struct_declarator -> IDENTIFIER LEFT_BRACKET const_expression . RIGHT_BRACKET (rule 207) + struct_declarator -> IDENTIFIER LEFT_BRACKET const_expression . RIGHT_BRACKET COLON IDENTIFIER (rule 208) + + RIGHT_BRACKET shift, and go to state 394 + + + +state 364 + + struct_declarator -> IDENTIFIER COLON IDENTIFIER . (rule 206) + + $default reduce using rule 206 (struct_declarator) + + + +state 365 + + struct_declarator_list -> struct_declarator_list COMMA struct_declarator . (rule 204) + + $default reduce using rule 204 (struct_declarator_list) + + + +state 366 + + type_specifier_nonarray -> VECTOR LEFT_ANGLE BOOL_TYPE COMMA INTCONSTANT RIGHT_ANGLE . (rule 139) + + $default reduce using rule 139 (type_specifier_nonarray) + + + +state 367 + + type_specifier_nonarray -> VECTOR LEFT_ANGLE FLOAT_TYPE COMMA INTCONSTANT RIGHT_ANGLE . (rule 137) + + $default reduce using rule 137 (type_specifier_nonarray) + + + +state 368 + + type_specifier_nonarray -> VECTOR LEFT_ANGLE INT_TYPE COMMA INTCONSTANT RIGHT_ANGLE . (rule 138) + + $default reduce using rule 138 (type_specifier_nonarray) + + + +state 369 + + iteration_statement -> DO @4 statement . WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON (rule 240) + + WHILE shift, and go to state 395 + + + +state 370 + + iteration_statement -> FOR LEFT_PAREN @5 . for_init_statement for_rest_statement RIGHT_PAREN statement_no_new_scope (rule 242) + + CONST_QUAL shift, and go to state 1 + STATIC_QUAL shift, and go to state 2 + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + UNIFORM shift, and go to state 50 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + SEMICOLON shift, and go to state 187 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 188 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 189 + assign_expression go to state 190 + expression go to state 191 + declaration go to state 192 + function_prototype go to state 193 + function_declarator go to state 72 + function_header_with_parameters go to state 73 + function_header go to state 74 + init_declarator_list go to state 75 + single_declaration go to state 76 + fully_specified_type go to state 77 + type_qualifier go to state 78 + type_specifier go to state 194 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + declaration_statement go to state 396 + expression_statement go to state 397 + for_init_statement go to state 398 + + + +state 371 + + expression -> expression . COMMA assign_expression (rule 82) + selection_statement -> IF LEFT_PAREN expression . RIGHT_PAREN selection_rest_statement (rule 232) + + RIGHT_PAREN shift, and go to state 399 + COMMA shift, and go to state 311 + + + +state 372 + + jump_statement -> RETURN expression SEMICOLON . (rule 252) + + $default reduce using rule 252 (jump_statement) + + + +state 373 + + iteration_statement -> WHILE LEFT_PAREN @3 . condition RIGHT_PAREN statement_no_new_scope (rule 238) + + CONST_QUAL shift, and go to state 1 + STATIC_QUAL shift, and go to state 2 + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + UNIFORM shift, and go to state 50 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 188 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 189 + assign_expression go to state 190 + expression go to state 400 + fully_specified_type go to state 401 + type_qualifier go to state 78 + type_specifier go to state 194 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + condition go to state 402 + + + +state 374 + + compound_statement -> LEFT_BRACE @1 statement_list . @2 RIGHT_BRACE (rule 223) + statement_list -> statement_list . statement (rule 229) + + CONST_QUAL shift, and go to state 1 + STATIC_QUAL shift, and go to state 2 + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BREAK shift, and go to state 177 + CONTINUE shift, and go to state 178 + DO shift, and go to state 179 + FOR shift, and go to state 180 + IF shift, and go to state 181 + DISCARD shift, and go to state 182 + RETURN shift, and go to state 183 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + UNIFORM shift, and go to state 50 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + WHILE shift, and go to state 184 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + LEFT_BRACE shift, and go to state 185 + SEMICOLON shift, and go to state 187 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + $default reduce using rule 222 (@2) + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 188 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 189 + assign_expression go to state 190 + expression go to state 191 + declaration go to state 192 + function_prototype go to state 193 + function_declarator go to state 72 + function_header_with_parameters go to state 73 + function_header go to state 74 + init_declarator_list go to state 75 + single_declaration go to state 76 + fully_specified_type go to state 77 + type_qualifier go to state 78 + type_specifier go to state 194 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + declaration_statement go to state 195 + statement go to state 314 + simple_statement go to state 197 + compound_statement go to state 198 + @2 go to state 403 + expression_statement go to state 200 + selection_statement go to state 201 + iteration_statement go to state 202 + jump_statement go to state 203 + + + +state 375 + + assign_expression -> unary_expression assignment_operator assign_expression . (rule 69) + + $default reduce using rule 69 (assign_expression) + + + +state 376 + + expression -> expression COMMA assign_expression . (rule 82) + + $default reduce using rule 82 (expression) + + + +state 377 + + parameter_declarator -> type_specifier IDENTIFIER LEFT_BRACKET const_expression . RIGHT_BRACKET (rule 97) + parameter_declarator -> type_specifier IDENTIFIER LEFT_BRACKET const_expression . RIGHT_BRACKET COLON IDENTIFIER (rule 98) + + RIGHT_BRACKET shift, and go to state 404 + + + +state 378 + + parameter_declarator -> type_specifier IDENTIFIER COLON IDENTIFIER . (rule 96) + + $default reduce using rule 96 (parameter_declarator) + + + +state 379 + + parameter_declarator -> type_specifier IDENTIFIER EQUAL initializer . (rule 94) + + $default reduce using rule 94 (parameter_declarator) + + + +state 380 + + init_declarator_list -> init_declarator_list COMMA IDENTIFIER LEFT_BRACKET RIGHT_BRACKET type_info . (rule 110) + init_declarator_list -> init_declarator_list COMMA IDENTIFIER LEFT_BRACKET RIGHT_BRACKET type_info . EQUAL initializer (rule 112) + + EQUAL shift, and go to state 405 + + $default reduce using rule 110 (init_declarator_list) + + + +state 381 + + init_declarator_list -> init_declarator_list COMMA IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET . type_info (rule 111) + init_declarator_list -> init_declarator_list COMMA IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET . type_info EQUAL initializer (rule 113) + + COLON shift, and go to state 124 + LEFT_ANGLE shift, and go to state 125 + + $default reduce using rule 306 (type_info) + + annotation go to state 126 + register_specifier go to state 127 + semantic go to state 128 + type_info go to state 406 + + + +state 382 + + init_declarator_list -> init_declarator_list COMMA IDENTIFIER type_info EQUAL initializer . (rule 114) + + $default reduce using rule 114 (init_declarator_list) + + + +state 383 + + single_declaration -> fully_specified_type IDENTIFIER LEFT_BRACKET RIGHT_BRACKET type_info EQUAL . initializer (rule 119) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + SAMPLERSTATE shift, and go to state 329 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + LEFT_BRACE shift, and go to state 330 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 188 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 189 + assign_expression go to state 331 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + initializer go to state 407 + initialization_list go to state 333 + sampler_initializer go to state 334 + + + +state 384 + + single_declaration -> fully_specified_type IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET type_info . (rule 118) + single_declaration -> fully_specified_type IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET type_info . EQUAL initializer (rule 120) + + EQUAL shift, and go to state 408 + + $default reduce using rule 118 (single_declaration) + + + +state 385 + + register_specifier -> COLON REGISTER LEFT_PAREN IDENTIFIER . RIGHT_PAREN (rule 304) + + RIGHT_PAREN shift, and go to state 409 + + + +state 386 + + annotation_item -> ann_type IDENTIFIER EQUAL . ann_literal SEMICOLON (rule 271) + + BOOL_TYPE shift, and go to state 214 + FLOAT_TYPE shift, and go to state 215 + INT_TYPE shift, and go to state 216 + STRING_TYPE shift, and go to state 217 + FIXED_TYPE shift, and go to state 218 + HALF_TYPE shift, and go to state 219 + BVEC2 shift, and go to state 220 + BVEC3 shift, and go to state 221 + BVEC4 shift, and go to state 222 + IVEC2 shift, and go to state 223 + IVEC3 shift, and go to state 224 + IVEC4 shift, and go to state 225 + VEC2 shift, and go to state 226 + VEC3 shift, and go to state 227 + VEC4 shift, and go to state 228 + HVEC2 shift, and go to state 229 + HVEC3 shift, and go to state 230 + HVEC4 shift, and go to state 231 + FVEC2 shift, and go to state 232 + FVEC3 shift, and go to state 233 + FVEC4 shift, and go to state 234 + FLOATCONSTANT shift, and go to state 410 + INTCONSTANT shift, and go to state 411 + BOOLCONSTANT shift, and go to state 412 + STRINGCONSTANT shift, and go to state 413 + LEFT_BRACE shift, and go to state 414 + + ann_type go to state 415 + ann_literal go to state 416 + ann_numerical_constant go to state 417 + ann_literal_constructor go to state 418 + ann_literal_init_list go to state 419 + + + +state 387 + + sampler_initializer -> SAMPLERSTATE LEFT_BRACE . sampler_init_list RIGHT_BRACE (rule 314) + sampler_initializer -> SAMPLERSTATE LEFT_BRACE . RIGHT_BRACE (rule 315) + + TEXTURE shift, and go to state 420 + IDENTIFIER shift, and go to state 421 + RIGHT_BRACE shift, and go to state 422 + + sampler_init_list go to state 423 + sampler_init_item go to state 424 + + + +state 388 + + initializer_list -> assign_expression . (rule 263) + + $default reduce using rule 263 (initializer_list) + + + +state 389 + + initializer_list -> initialization_list . (rule 264) + + $default reduce using rule 264 (initializer_list) + + + +state 390 + + initialization_list -> LEFT_BRACE initializer_list . RIGHT_BRACE (rule 261) + initialization_list -> LEFT_BRACE initializer_list . COMMA RIGHT_BRACE (rule 262) + initializer_list -> initializer_list . COMMA assign_expression (rule 265) + initializer_list -> initializer_list . COMMA initialization_list (rule 266) + + RIGHT_BRACE shift, and go to state 425 + COMMA shift, and go to state 426 + + + +state 391 + + unary_expression -> LEFT_PAREN type_specifier_nonarray RIGHT_PAREN unary_expression . (rule 31) + + $default reduce using rule 31 (unary_expression) + + + +state 392 + + postfix_expression -> postfix_expression LEFT_BRACKET int_expression RIGHT_BRACKET . (rule 8) + + $default reduce using rule 8 (postfix_expression) + + + +state 393 + + cond_expression -> log_or_expression QUESTION expression COLON . assign_expression (rule 67) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 188 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 189 + assign_expression go to state 427 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 394 + + struct_declarator -> IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET . (rule 207) + struct_declarator -> IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET . COLON IDENTIFIER (rule 208) + + COLON shift, and go to state 428 + + $default reduce using rule 207 (struct_declarator) + + + +state 395 + + iteration_statement -> DO @4 statement WHILE . LEFT_PAREN expression RIGHT_PAREN SEMICOLON (rule 240) + + LEFT_PAREN shift, and go to state 429 + + + +state 396 + + for_init_statement -> declaration_statement . (rule 244) + + $default reduce using rule 244 (for_init_statement) + + + +state 397 + + for_init_statement -> expression_statement . (rule 243) + + $default reduce using rule 243 (for_init_statement) + + + +state 398 + + iteration_statement -> FOR LEFT_PAREN @5 for_init_statement . for_rest_statement RIGHT_PAREN statement_no_new_scope (rule 242) + + CONST_QUAL shift, and go to state 1 + STATIC_QUAL shift, and go to state 2 + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + UNIFORM shift, and go to state 50 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + $default reduce using rule 246 (conditionopt) + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 188 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 189 + assign_expression go to state 190 + expression go to state 400 + fully_specified_type go to state 401 + type_qualifier go to state 78 + type_specifier go to state 194 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + condition go to state 430 + conditionopt go to state 431 + for_rest_statement go to state 432 + + + +state 399 + + selection_statement -> IF LEFT_PAREN expression RIGHT_PAREN . selection_rest_statement (rule 232) + + CONST_QUAL shift, and go to state 1 + STATIC_QUAL shift, and go to state 2 + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BREAK shift, and go to state 177 + CONTINUE shift, and go to state 178 + DO shift, and go to state 179 + FOR shift, and go to state 180 + IF shift, and go to state 181 + DISCARD shift, and go to state 182 + RETURN shift, and go to state 183 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + UNIFORM shift, and go to state 50 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + WHILE shift, and go to state 184 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + LEFT_BRACE shift, and go to state 185 + SEMICOLON shift, and go to state 187 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 188 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 189 + assign_expression go to state 190 + expression go to state 191 + declaration go to state 192 + function_prototype go to state 193 + function_declarator go to state 72 + function_header_with_parameters go to state 73 + function_header go to state 74 + init_declarator_list go to state 75 + single_declaration go to state 76 + fully_specified_type go to state 77 + type_qualifier go to state 78 + type_specifier go to state 194 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + declaration_statement go to state 195 + statement go to state 433 + simple_statement go to state 197 + compound_statement go to state 198 + expression_statement go to state 200 + selection_statement go to state 201 + selection_rest_statement go to state 434 + iteration_statement go to state 202 + jump_statement go to state 203 + + + +state 400 + + expression -> expression . COMMA assign_expression (rule 82) + condition -> expression . (rule 235) + + COMMA shift, and go to state 311 + + $default reduce using rule 235 (condition) + + + +state 401 + + condition -> fully_specified_type . IDENTIFIER EQUAL initializer (rule 236) + + IDENTIFIER shift, and go to state 435 + + + +state 402 + + iteration_statement -> WHILE LEFT_PAREN @3 condition . RIGHT_PAREN statement_no_new_scope (rule 238) + + RIGHT_PAREN shift, and go to state 436 + + + +state 403 + + compound_statement -> LEFT_BRACE @1 statement_list @2 . RIGHT_BRACE (rule 223) + + RIGHT_BRACE shift, and go to state 437 + + + +state 404 + + parameter_declarator -> type_specifier IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET . (rule 97) + parameter_declarator -> type_specifier IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET . COLON IDENTIFIER (rule 98) + + COLON shift, and go to state 438 + + $default reduce using rule 97 (parameter_declarator) + + + +state 405 + + init_declarator_list -> init_declarator_list COMMA IDENTIFIER LEFT_BRACKET RIGHT_BRACKET type_info EQUAL . initializer (rule 112) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + SAMPLERSTATE shift, and go to state 329 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + LEFT_BRACE shift, and go to state 330 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 188 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 189 + assign_expression go to state 331 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + initializer go to state 439 + initialization_list go to state 333 + sampler_initializer go to state 334 + + + +state 406 + + init_declarator_list -> init_declarator_list COMMA IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET type_info . (rule 111) + init_declarator_list -> init_declarator_list COMMA IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET type_info . EQUAL initializer (rule 113) + + EQUAL shift, and go to state 440 + + $default reduce using rule 111 (init_declarator_list) + + + +state 407 + + single_declaration -> fully_specified_type IDENTIFIER LEFT_BRACKET RIGHT_BRACKET type_info EQUAL initializer . (rule 119) + + $default reduce using rule 119 (single_declaration) + + + +state 408 + + single_declaration -> fully_specified_type IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET type_info EQUAL . initializer (rule 120) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + SAMPLERSTATE shift, and go to state 329 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + LEFT_BRACE shift, and go to state 330 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 188 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 189 + assign_expression go to state 331 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + initializer go to state 441 + initialization_list go to state 333 + sampler_initializer go to state 334 + + + +state 409 + + register_specifier -> COLON REGISTER LEFT_PAREN IDENTIFIER RIGHT_PAREN . (rule 304) + + $default reduce using rule 304 (register_specifier) + + + +state 410 + + ann_numerical_constant -> FLOATCONSTANT . (rule 299) + + $default reduce using rule 299 (ann_numerical_constant) + + + +state 411 + + ann_numerical_constant -> INTCONSTANT . (rule 297) + + $default reduce using rule 297 (ann_numerical_constant) + + + +state 412 + + ann_numerical_constant -> BOOLCONSTANT . (rule 298) + + $default reduce using rule 298 (ann_numerical_constant) + + + +state 413 + + ann_literal -> STRINGCONSTANT . (rule 294) + + $default reduce using rule 294 (ann_literal) + + + +state 414 + + ann_literal_init_list -> LEFT_BRACE . ann_value_list RIGHT_BRACE (rule 303) + + FLOATCONSTANT shift, and go to state 410 + INTCONSTANT shift, and go to state 411 + BOOLCONSTANT shift, and go to state 412 + + ann_numerical_constant go to state 442 + ann_value_list go to state 443 + + + +state 415 + + ann_literal_constructor -> ann_type . LEFT_PAREN ann_value_list RIGHT_PAREN (rule 300) + + LEFT_PAREN shift, and go to state 444 + + + +state 416 + + annotation_item -> ann_type IDENTIFIER EQUAL ann_literal . SEMICOLON (rule 271) + + SEMICOLON shift, and go to state 445 + + + +state 417 + + ann_literal -> ann_numerical_constant . (rule 293) + + $default reduce using rule 293 (ann_literal) + + + +state 418 + + ann_literal -> ann_literal_constructor . (rule 295) + + $default reduce using rule 295 (ann_literal) + + + +state 419 + + ann_literal -> ann_literal_init_list . (rule 296) + + $default reduce using rule 296 (ann_literal) + + + +state 420 + + sampler_init_item -> TEXTURE . EQUAL IDENTIFIER SEMICOLON (rule 321) + sampler_init_item -> TEXTURE . EQUAL LEFT_ANGLE IDENTIFIER RIGHT_ANGLE SEMICOLON (rule 322) + sampler_init_item -> TEXTURE . EQUAL LEFT_PAREN IDENTIFIER RIGHT_PAREN SEMICOLON (rule 323) + + EQUAL shift, and go to state 446 + + + +state 421 + + sampler_init_item -> IDENTIFIER . EQUAL IDENTIFIER SEMICOLON (rule 318) + sampler_init_item -> IDENTIFIER . EQUAL LEFT_ANGLE IDENTIFIER RIGHT_ANGLE SEMICOLON (rule 319) + sampler_init_item -> IDENTIFIER . EQUAL LEFT_PAREN IDENTIFIER RIGHT_PAREN SEMICOLON (rule 320) + + EQUAL shift, and go to state 447 + + + +state 422 + + sampler_initializer -> SAMPLERSTATE LEFT_BRACE RIGHT_BRACE . (rule 315) + + $default reduce using rule 315 (sampler_initializer) + + + +state 423 + + sampler_initializer -> SAMPLERSTATE LEFT_BRACE sampler_init_list . RIGHT_BRACE (rule 314) + sampler_init_list -> sampler_init_list . sampler_init_item (rule 317) + + TEXTURE shift, and go to state 420 + IDENTIFIER shift, and go to state 421 + RIGHT_BRACE shift, and go to state 448 + + sampler_init_item go to state 449 + + + +state 424 + + sampler_init_list -> sampler_init_item . (rule 316) + + $default reduce using rule 316 (sampler_init_list) + + + +state 425 + + initialization_list -> LEFT_BRACE initializer_list RIGHT_BRACE . (rule 261) + + $default reduce using rule 261 (initialization_list) + + + +state 426 + + initialization_list -> LEFT_BRACE initializer_list COMMA . RIGHT_BRACE (rule 262) + initializer_list -> initializer_list COMMA . assign_expression (rule 265) + initializer_list -> initializer_list COMMA . initialization_list (rule 266) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + LEFT_BRACE shift, and go to state 330 + RIGHT_BRACE shift, and go to state 450 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 188 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 189 + assign_expression go to state 451 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + initialization_list go to state 452 + + + +state 427 + + cond_expression -> log_or_expression QUESTION expression COLON assign_expression . (rule 67) + + $default reduce using rule 67 (cond_expression) + + + +state 428 + + struct_declarator -> IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET COLON . IDENTIFIER (rule 208) + + IDENTIFIER shift, and go to state 453 + + + +state 429 + + iteration_statement -> DO @4 statement WHILE LEFT_PAREN . expression RIGHT_PAREN SEMICOLON (rule 240) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 188 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 189 + assign_expression go to state 190 + expression go to state 454 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 430 + + conditionopt -> condition . (rule 245) + + $default reduce using rule 245 (conditionopt) + + + +state 431 + + for_rest_statement -> conditionopt . SEMICOLON (rule 247) + for_rest_statement -> conditionopt . SEMICOLON expression (rule 248) + + SEMICOLON shift, and go to state 455 + + + +state 432 + + iteration_statement -> FOR LEFT_PAREN @5 for_init_statement for_rest_statement . RIGHT_PAREN statement_no_new_scope (rule 242) + + RIGHT_PAREN shift, and go to state 456 + + + +state 433 + + selection_rest_statement -> statement . ELSE statement (rule 233) + selection_rest_statement -> statement . (rule 234) + + ELSE shift, and go to state 457 + + ELSE [reduce using rule 234 (selection_rest_statement)] + $default reduce using rule 234 (selection_rest_statement) + + + +state 434 + + selection_statement -> IF LEFT_PAREN expression RIGHT_PAREN selection_rest_statement . (rule 232) + + $default reduce using rule 232 (selection_statement) + + + +state 435 + + condition -> fully_specified_type IDENTIFIER . EQUAL initializer (rule 236) + + EQUAL shift, and go to state 458 + + + +state 436 + + iteration_statement -> WHILE LEFT_PAREN @3 condition RIGHT_PAREN . statement_no_new_scope (rule 238) + + CONST_QUAL shift, and go to state 1 + STATIC_QUAL shift, and go to state 2 + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BREAK shift, and go to state 177 + CONTINUE shift, and go to state 178 + DO shift, and go to state 179 + FOR shift, and go to state 180 + IF shift, and go to state 181 + DISCARD shift, and go to state 182 + RETURN shift, and go to state 183 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + UNIFORM shift, and go to state 50 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + WHILE shift, and go to state 184 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + LEFT_BRACE shift, and go to state 113 + SEMICOLON shift, and go to state 187 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 188 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 189 + assign_expression go to state 190 + expression go to state 191 + declaration go to state 192 + function_prototype go to state 193 + function_declarator go to state 72 + function_header_with_parameters go to state 73 + function_header go to state 74 + init_declarator_list go to state 75 + single_declaration go to state 76 + fully_specified_type go to state 77 + type_qualifier go to state 78 + type_specifier go to state 194 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + declaration_statement go to state 195 + simple_statement go to state 459 + statement_no_new_scope go to state 460 + compound_statement_no_new_scope go to state 461 + expression_statement go to state 200 + selection_statement go to state 201 + iteration_statement go to state 202 + jump_statement go to state 203 + + + +state 437 + + compound_statement -> LEFT_BRACE @1 statement_list @2 RIGHT_BRACE . (rule 223) + + $default reduce using rule 223 (compound_statement) + + + +state 438 + + parameter_declarator -> type_specifier IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET COLON . IDENTIFIER (rule 98) + + IDENTIFIER shift, and go to state 462 + + + +state 439 + + init_declarator_list -> init_declarator_list COMMA IDENTIFIER LEFT_BRACKET RIGHT_BRACKET type_info EQUAL initializer . (rule 112) + + $default reduce using rule 112 (init_declarator_list) + + + +state 440 + + init_declarator_list -> init_declarator_list COMMA IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET type_info EQUAL . initializer (rule 113) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + SAMPLERSTATE shift, and go to state 329 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + LEFT_BRACE shift, and go to state 330 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 188 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 189 + assign_expression go to state 331 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + initializer go to state 463 + initialization_list go to state 333 + sampler_initializer go to state 334 + + + +state 441 + + single_declaration -> fully_specified_type IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET type_info EQUAL initializer . (rule 120) + + $default reduce using rule 120 (single_declaration) + + + +state 442 + + ann_value_list -> ann_numerical_constant . (rule 301) + + $default reduce using rule 301 (ann_value_list) + + + +state 443 + + ann_value_list -> ann_value_list . COMMA ann_numerical_constant (rule 302) + ann_literal_init_list -> LEFT_BRACE ann_value_list . RIGHT_BRACE (rule 303) + + RIGHT_BRACE shift, and go to state 464 + COMMA shift, and go to state 465 + + + +state 444 + + ann_literal_constructor -> ann_type LEFT_PAREN . ann_value_list RIGHT_PAREN (rule 300) + + FLOATCONSTANT shift, and go to state 410 + INTCONSTANT shift, and go to state 411 + BOOLCONSTANT shift, and go to state 412 + + ann_numerical_constant go to state 442 + ann_value_list go to state 466 + + + +state 445 + + annotation_item -> ann_type IDENTIFIER EQUAL ann_literal SEMICOLON . (rule 271) + + $default reduce using rule 271 (annotation_item) + + + +state 446 + + sampler_init_item -> TEXTURE EQUAL . IDENTIFIER SEMICOLON (rule 321) + sampler_init_item -> TEXTURE EQUAL . LEFT_ANGLE IDENTIFIER RIGHT_ANGLE SEMICOLON (rule 322) + sampler_init_item -> TEXTURE EQUAL . LEFT_PAREN IDENTIFIER RIGHT_PAREN SEMICOLON (rule 323) + + IDENTIFIER shift, and go to state 467 + LEFT_PAREN shift, and go to state 468 + LEFT_ANGLE shift, and go to state 469 + + + +state 447 + + sampler_init_item -> IDENTIFIER EQUAL . IDENTIFIER SEMICOLON (rule 318) + sampler_init_item -> IDENTIFIER EQUAL . LEFT_ANGLE IDENTIFIER RIGHT_ANGLE SEMICOLON (rule 319) + sampler_init_item -> IDENTIFIER EQUAL . LEFT_PAREN IDENTIFIER RIGHT_PAREN SEMICOLON (rule 320) + + IDENTIFIER shift, and go to state 470 + LEFT_PAREN shift, and go to state 471 + LEFT_ANGLE shift, and go to state 472 + + + +state 448 + + sampler_initializer -> SAMPLERSTATE LEFT_BRACE sampler_init_list RIGHT_BRACE . (rule 314) + + $default reduce using rule 314 (sampler_initializer) + + + +state 449 + + sampler_init_list -> sampler_init_list sampler_init_item . (rule 317) + + $default reduce using rule 317 (sampler_init_list) + + + +state 450 + + initialization_list -> LEFT_BRACE initializer_list COMMA RIGHT_BRACE . (rule 262) + + $default reduce using rule 262 (initialization_list) + + + +state 451 + + initializer_list -> initializer_list COMMA assign_expression . (rule 265) + + $default reduce using rule 265 (initializer_list) + + + +state 452 + + initializer_list -> initializer_list COMMA initialization_list . (rule 266) + + $default reduce using rule 266 (initializer_list) + + + +state 453 + + struct_declarator -> IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET COLON IDENTIFIER . (rule 208) + + $default reduce using rule 208 (struct_declarator) + + + +state 454 + + expression -> expression . COMMA assign_expression (rule 82) + iteration_statement -> DO @4 statement WHILE LEFT_PAREN expression . RIGHT_PAREN SEMICOLON (rule 240) + + RIGHT_PAREN shift, and go to state 473 + COMMA shift, and go to state 311 + + + +state 455 + + for_rest_statement -> conditionopt SEMICOLON . (rule 247) + for_rest_statement -> conditionopt SEMICOLON . expression (rule 248) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + $default reduce using rule 247 (for_rest_statement) + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 188 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 189 + assign_expression go to state 190 + expression go to state 474 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + + + +state 456 + + iteration_statement -> FOR LEFT_PAREN @5 for_init_statement for_rest_statement RIGHT_PAREN . statement_no_new_scope (rule 242) + + CONST_QUAL shift, and go to state 1 + STATIC_QUAL shift, and go to state 2 + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BREAK shift, and go to state 177 + CONTINUE shift, and go to state 178 + DO shift, and go to state 179 + FOR shift, and go to state 180 + IF shift, and go to state 181 + DISCARD shift, and go to state 182 + RETURN shift, and go to state 183 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + UNIFORM shift, and go to state 50 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + WHILE shift, and go to state 184 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + LEFT_BRACE shift, and go to state 113 + SEMICOLON shift, and go to state 187 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 188 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 189 + assign_expression go to state 190 + expression go to state 191 + declaration go to state 192 + function_prototype go to state 193 + function_declarator go to state 72 + function_header_with_parameters go to state 73 + function_header go to state 74 + init_declarator_list go to state 75 + single_declaration go to state 76 + fully_specified_type go to state 77 + type_qualifier go to state 78 + type_specifier go to state 194 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + declaration_statement go to state 195 + simple_statement go to state 459 + statement_no_new_scope go to state 475 + compound_statement_no_new_scope go to state 461 + expression_statement go to state 200 + selection_statement go to state 201 + iteration_statement go to state 202 + jump_statement go to state 203 + + + +state 457 + + selection_rest_statement -> statement ELSE . statement (rule 233) + + CONST_QUAL shift, and go to state 1 + STATIC_QUAL shift, and go to state 2 + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BREAK shift, and go to state 177 + CONTINUE shift, and go to state 178 + DO shift, and go to state 179 + FOR shift, and go to state 180 + IF shift, and go to state 181 + DISCARD shift, and go to state 182 + RETURN shift, and go to state 183 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + UNIFORM shift, and go to state 50 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + WHILE shift, and go to state 184 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + LEFT_BRACE shift, and go to state 185 + SEMICOLON shift, and go to state 187 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 188 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 189 + assign_expression go to state 190 + expression go to state 191 + declaration go to state 192 + function_prototype go to state 193 + function_declarator go to state 72 + function_header_with_parameters go to state 73 + function_header go to state 74 + init_declarator_list go to state 75 + single_declaration go to state 76 + fully_specified_type go to state 77 + type_qualifier go to state 78 + type_specifier go to state 194 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + declaration_statement go to state 195 + statement go to state 476 + simple_statement go to state 197 + compound_statement go to state 198 + expression_statement go to state 200 + selection_statement go to state 201 + iteration_statement go to state 202 + jump_statement go to state 203 + + + +state 458 + + condition -> fully_specified_type IDENTIFIER EQUAL . initializer (rule 236) + + BOOL_TYPE shift, and go to state 3 + FLOAT_TYPE shift, and go to state 4 + INT_TYPE shift, and go to state 5 + FIXED_TYPE shift, and go to state 6 + HALF_TYPE shift, and go to state 7 + BVEC2 shift, and go to state 8 + BVEC3 shift, and go to state 9 + BVEC4 shift, and go to state 10 + IVEC2 shift, and go to state 11 + IVEC3 shift, and go to state 12 + IVEC4 shift, and go to state 13 + VEC2 shift, and go to state 14 + VEC3 shift, and go to state 15 + VEC4 shift, and go to state 16 + HVEC2 shift, and go to state 17 + HVEC3 shift, and go to state 18 + HVEC4 shift, and go to state 19 + FVEC2 shift, and go to state 20 + FVEC3 shift, and go to state 21 + FVEC4 shift, and go to state 22 + MATRIX2x2 shift, and go to state 23 + MATRIX2x3 shift, and go to state 24 + MATRIX2x4 shift, and go to state 25 + MATRIX3x2 shift, and go to state 26 + MATRIX3x3 shift, and go to state 27 + MATRIX3x4 shift, and go to state 28 + MATRIX4x2 shift, and go to state 29 + MATRIX4x3 shift, and go to state 30 + MATRIX4x4 shift, and go to state 31 + HMATRIX2x2 shift, and go to state 32 + HMATRIX2x3 shift, and go to state 33 + HMATRIX2x4 shift, and go to state 34 + HMATRIX3x2 shift, and go to state 35 + HMATRIX3x3 shift, and go to state 36 + HMATRIX3x4 shift, and go to state 37 + HMATRIX4x2 shift, and go to state 38 + HMATRIX4x3 shift, and go to state 39 + HMATRIX4x4 shift, and go to state 40 + FMATRIX2x2 shift, and go to state 41 + FMATRIX2x3 shift, and go to state 42 + FMATRIX2x4 shift, and go to state 43 + FMATRIX3x2 shift, and go to state 44 + FMATRIX3x3 shift, and go to state 45 + FMATRIX3x4 shift, and go to state 46 + FMATRIX4x2 shift, and go to state 47 + FMATRIX4x3 shift, and go to state 48 + FMATRIX4x4 shift, and go to state 49 + STRUCT shift, and go to state 51 + VOID_TYPE shift, and go to state 52 + SAMPLER1D shift, and go to state 53 + SAMPLER2D shift, and go to state 54 + SAMPLER3D shift, and go to state 55 + SAMPLERCUBE shift, and go to state 56 + SAMPLER1DSHADOW shift, and go to state 57 + SAMPLER2DSHADOW shift, and go to state 58 + SAMPLERRECTSHADOW shift, and go to state 59 + SAMPLERRECT shift, and go to state 60 + SAMPLER2D_HALF shift, and go to state 61 + SAMPLER2D_FLOAT shift, and go to state 62 + SAMPLERCUBE_HALF shift, and go to state 63 + SAMPLERCUBE_FLOAT shift, and go to state 64 + SAMPLERGENERIC shift, and go to state 65 + VECTOR shift, and go to state 66 + TEXTURE shift, and go to state 67 + SAMPLERSTATE shift, and go to state 329 + IDENTIFIER shift, and go to state 130 + TYPE_NAME shift, and go to state 68 + FLOATCONSTANT shift, and go to state 131 + INTCONSTANT shift, and go to state 132 + BOOLCONSTANT shift, and go to state 133 + FIELD_SELECTION shift, and go to state 134 + INC_OP shift, and go to state 135 + DEC_OP shift, and go to state 136 + LEFT_PAREN shift, and go to state 137 + LEFT_BRACE shift, and go to state 330 + BANG shift, and go to state 138 + DASH shift, and go to state 139 + TILDE shift, and go to state 140 + PLUS shift, and go to state 141 + + variable_identifier go to state 142 + primary_expression go to state 143 + postfix_expression go to state 144 + function_call go to state 145 + function_call_or_method go to state 146 + function_call_generic go to state 147 + function_call_header_no_parameters go to state 148 + function_call_header_with_parameters go to state 149 + function_call_header go to state 150 + function_identifier go to state 151 + unary_expression go to state 188 + unary_operator go to state 153 + mul_expression go to state 154 + add_expression go to state 155 + shift_expression go to state 156 + rel_expression go to state 157 + eq_expression go to state 158 + and_expression go to state 159 + xor_expression go to state 160 + or_expression go to state 161 + log_and_expression go to state 162 + log_xor_expression go to state 163 + log_or_expression go to state 164 + cond_expression go to state 189 + assign_expression go to state 331 + type_specifier go to state 167 + type_specifier_nonarray go to state 80 + struct_specifier go to state 81 + initializer go to state 477 + initialization_list go to state 333 + sampler_initializer go to state 334 + + + +state 459 + + statement_no_new_scope -> simple_statement . (rule 225) + + $default reduce using rule 225 (statement_no_new_scope) + + + +state 460 + + iteration_statement -> WHILE LEFT_PAREN @3 condition RIGHT_PAREN statement_no_new_scope . (rule 238) + + $default reduce using rule 238 (iteration_statement) + + + +state 461 + + statement_no_new_scope -> compound_statement_no_new_scope . (rule 224) + + $default reduce using rule 224 (statement_no_new_scope) + + + +state 462 + + parameter_declarator -> type_specifier IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET COLON IDENTIFIER . (rule 98) + + $default reduce using rule 98 (parameter_declarator) + + + +state 463 + + init_declarator_list -> init_declarator_list COMMA IDENTIFIER LEFT_BRACKET const_expression RIGHT_BRACKET type_info EQUAL initializer . (rule 113) + + $default reduce using rule 113 (init_declarator_list) + + + +state 464 + + ann_literal_init_list -> LEFT_BRACE ann_value_list RIGHT_BRACE . (rule 303) + + $default reduce using rule 303 (ann_literal_init_list) + + + +state 465 + + ann_value_list -> ann_value_list COMMA . ann_numerical_constant (rule 302) + + FLOATCONSTANT shift, and go to state 410 + INTCONSTANT shift, and go to state 411 + BOOLCONSTANT shift, and go to state 412 + + ann_numerical_constant go to state 478 + + + +state 466 + + ann_literal_constructor -> ann_type LEFT_PAREN ann_value_list . RIGHT_PAREN (rule 300) + ann_value_list -> ann_value_list . COMMA ann_numerical_constant (rule 302) + + RIGHT_PAREN shift, and go to state 479 + COMMA shift, and go to state 465 + + + +state 467 + + sampler_init_item -> TEXTURE EQUAL IDENTIFIER . SEMICOLON (rule 321) + + SEMICOLON shift, and go to state 480 + + + +state 468 + + sampler_init_item -> TEXTURE EQUAL LEFT_PAREN . IDENTIFIER RIGHT_PAREN SEMICOLON (rule 323) + + IDENTIFIER shift, and go to state 481 + + + +state 469 + + sampler_init_item -> TEXTURE EQUAL LEFT_ANGLE . IDENTIFIER RIGHT_ANGLE SEMICOLON (rule 322) + + IDENTIFIER shift, and go to state 482 + + + +state 470 + + sampler_init_item -> IDENTIFIER EQUAL IDENTIFIER . SEMICOLON (rule 318) + + SEMICOLON shift, and go to state 483 + + + +state 471 + + sampler_init_item -> IDENTIFIER EQUAL LEFT_PAREN . IDENTIFIER RIGHT_PAREN SEMICOLON (rule 320) + + IDENTIFIER shift, and go to state 484 + + + +state 472 + + sampler_init_item -> IDENTIFIER EQUAL LEFT_ANGLE . IDENTIFIER RIGHT_ANGLE SEMICOLON (rule 319) + + IDENTIFIER shift, and go to state 485 + + + +state 473 + + iteration_statement -> DO @4 statement WHILE LEFT_PAREN expression RIGHT_PAREN . SEMICOLON (rule 240) + + SEMICOLON shift, and go to state 486 + + + +state 474 + + expression -> expression . COMMA assign_expression (rule 82) + for_rest_statement -> conditionopt SEMICOLON expression . (rule 248) + + COMMA shift, and go to state 311 + + $default reduce using rule 248 (for_rest_statement) + + + +state 475 + + iteration_statement -> FOR LEFT_PAREN @5 for_init_statement for_rest_statement RIGHT_PAREN statement_no_new_scope . (rule 242) + + $default reduce using rule 242 (iteration_statement) + + + +state 476 + + selection_rest_statement -> statement ELSE statement . (rule 233) + + $default reduce using rule 233 (selection_rest_statement) + + + +state 477 + + condition -> fully_specified_type IDENTIFIER EQUAL initializer . (rule 236) + + $default reduce using rule 236 (condition) + + + +state 478 + + ann_value_list -> ann_value_list COMMA ann_numerical_constant . (rule 302) + + $default reduce using rule 302 (ann_value_list) + + + +state 479 + + ann_literal_constructor -> ann_type LEFT_PAREN ann_value_list RIGHT_PAREN . (rule 300) + + $default reduce using rule 300 (ann_literal_constructor) + + + +state 480 + + sampler_init_item -> TEXTURE EQUAL IDENTIFIER SEMICOLON . (rule 321) + + $default reduce using rule 321 (sampler_init_item) + + + +state 481 + + sampler_init_item -> TEXTURE EQUAL LEFT_PAREN IDENTIFIER . RIGHT_PAREN SEMICOLON (rule 323) + + RIGHT_PAREN shift, and go to state 487 + + + +state 482 + + sampler_init_item -> TEXTURE EQUAL LEFT_ANGLE IDENTIFIER . RIGHT_ANGLE SEMICOLON (rule 322) + + RIGHT_ANGLE shift, and go to state 488 + + + +state 483 + + sampler_init_item -> IDENTIFIER EQUAL IDENTIFIER SEMICOLON . (rule 318) + + $default reduce using rule 318 (sampler_init_item) + + + +state 484 + + sampler_init_item -> IDENTIFIER EQUAL LEFT_PAREN IDENTIFIER . RIGHT_PAREN SEMICOLON (rule 320) + + RIGHT_PAREN shift, and go to state 489 + + + +state 485 + + sampler_init_item -> IDENTIFIER EQUAL LEFT_ANGLE IDENTIFIER . RIGHT_ANGLE SEMICOLON (rule 319) + + RIGHT_ANGLE shift, and go to state 490 + + + +state 486 + + iteration_statement -> DO @4 statement WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON . (rule 240) + + $default reduce using rule 240 (iteration_statement) + + + +state 487 + + sampler_init_item -> TEXTURE EQUAL LEFT_PAREN IDENTIFIER RIGHT_PAREN . SEMICOLON (rule 323) + + SEMICOLON shift, and go to state 491 + + + +state 488 + + sampler_init_item -> TEXTURE EQUAL LEFT_ANGLE IDENTIFIER RIGHT_ANGLE . SEMICOLON (rule 322) + + SEMICOLON shift, and go to state 492 + + + +state 489 + + sampler_init_item -> IDENTIFIER EQUAL LEFT_PAREN IDENTIFIER RIGHT_PAREN . SEMICOLON (rule 320) + + SEMICOLON shift, and go to state 493 + + + +state 490 + + sampler_init_item -> IDENTIFIER EQUAL LEFT_ANGLE IDENTIFIER RIGHT_ANGLE . SEMICOLON (rule 319) + + SEMICOLON shift, and go to state 494 + + + +state 491 + + sampler_init_item -> TEXTURE EQUAL LEFT_PAREN IDENTIFIER RIGHT_PAREN SEMICOLON . (rule 323) + + $default reduce using rule 323 (sampler_init_item) + + + +state 492 + + sampler_init_item -> TEXTURE EQUAL LEFT_ANGLE IDENTIFIER RIGHT_ANGLE SEMICOLON . (rule 322) + + $default reduce using rule 322 (sampler_init_item) + + + +state 493 + + sampler_init_item -> IDENTIFIER EQUAL LEFT_PAREN IDENTIFIER RIGHT_PAREN SEMICOLON . (rule 320) + + $default reduce using rule 320 (sampler_init_item) + + + +state 494 + + sampler_init_item -> IDENTIFIER EQUAL LEFT_ANGLE IDENTIFIER RIGHT_ANGLE SEMICOLON . (rule 319) + + $default reduce using rule 319 (sampler_init_item) + + + +state 495 + + $ go to state 496 + + + +state 496 + + $default accept diff --git a/hlslang/MachineIndependent/hlslang_tab.h b/hlslang/MachineIndependent/hlslang_tab.h new file mode 100755 index 0000000..26d53a3 --- /dev/null +++ b/hlslang/MachineIndependent/hlslang_tab.h @@ -0,0 +1,169 @@ +typedef union { + struct { + TSourceLoc line; + union { + TString *string; + float f; + int i; + bool b; + }; + TSymbol* symbol; + } lex; + struct { + TSourceLoc line; + TOperator op; + union { + TIntermNode* intermNode; + TIntermNodePair nodePair; + TIntermTyped* intermTypedNode; + TIntermAggregate* intermAggregate; + TIntermTyped* intermDeclaration; + }; + union { + TPublicType type; + TQualifier qualifier; + TFunction* function; + TParameter param; + TTypeLine typeLine; + TTypeList* typeList; + TAnnotation* ann; + TTypeInfo* typeInfo; + }; + } interm; +} YYSTYPE; +#define CONST_QUAL 258 +#define STATIC_QUAL 259 +#define BOOL_TYPE 260 +#define FLOAT_TYPE 261 +#define INT_TYPE 262 +#define STRING_TYPE 263 +#define FIXED_TYPE 264 +#define HALF_TYPE 265 +#define BREAK 266 +#define CONTINUE 267 +#define DO 268 +#define ELSE 269 +#define FOR 270 +#define IF 271 +#define DISCARD 272 +#define RETURN 273 +#define BVEC2 274 +#define BVEC3 275 +#define BVEC4 276 +#define IVEC2 277 +#define IVEC3 278 +#define IVEC4 279 +#define VEC2 280 +#define VEC3 281 +#define VEC4 282 +#define HVEC2 283 +#define HVEC3 284 +#define HVEC4 285 +#define FVEC2 286 +#define FVEC3 287 +#define FVEC4 288 +#define MATRIX2x2 289 +#define MATRIX2x3 290 +#define MATRIX2x4 291 +#define MATRIX3x2 292 +#define MATRIX3x3 293 +#define MATRIX3x4 294 +#define MATRIX4x2 295 +#define MATRIX4x3 296 +#define MATRIX4x4 297 +#define HMATRIX2x2 298 +#define HMATRIX2x3 299 +#define HMATRIX2x4 300 +#define HMATRIX3x2 301 +#define HMATRIX3x3 302 +#define HMATRIX3x4 303 +#define HMATRIX4x2 304 +#define HMATRIX4x3 305 +#define HMATRIX4x4 306 +#define FMATRIX2x2 307 +#define FMATRIX2x3 308 +#define FMATRIX2x4 309 +#define FMATRIX3x2 310 +#define FMATRIX3x3 311 +#define FMATRIX3x4 312 +#define FMATRIX4x2 313 +#define FMATRIX4x3 314 +#define FMATRIX4x4 315 +#define IN_QUAL 316 +#define OUT_QUAL 317 +#define INOUT_QUAL 318 +#define UNIFORM 319 +#define STRUCT 320 +#define VOID_TYPE 321 +#define WHILE 322 +#define SAMPLER1D 323 +#define SAMPLER2D 324 +#define SAMPLER3D 325 +#define SAMPLERCUBE 326 +#define SAMPLER1DSHADOW 327 +#define SAMPLER2DSHADOW 328 +#define SAMPLERRECTSHADOW 329 +#define SAMPLERRECT 330 +#define SAMPLER2D_HALF 331 +#define SAMPLER2D_FLOAT 332 +#define SAMPLERCUBE_HALF 333 +#define SAMPLERCUBE_FLOAT 334 +#define SAMPLERGENERIC 335 +#define VECTOR 336 +#define MATRIX 337 +#define REGISTER 338 +#define TEXTURE 339 +#define SAMPLERSTATE 340 +#define IDENTIFIER 341 +#define TYPE_NAME 342 +#define FLOATCONSTANT 343 +#define INTCONSTANT 344 +#define BOOLCONSTANT 345 +#define STRINGCONSTANT 346 +#define FIELD_SELECTION 347 +#define LEFT_OP 348 +#define RIGHT_OP 349 +#define INC_OP 350 +#define DEC_OP 351 +#define LE_OP 352 +#define GE_OP 353 +#define EQ_OP 354 +#define NE_OP 355 +#define AND_OP 356 +#define OR_OP 357 +#define XOR_OP 358 +#define MUL_ASSIGN 359 +#define DIV_ASSIGN 360 +#define ADD_ASSIGN 361 +#define MOD_ASSIGN 362 +#define LEFT_ASSIGN 363 +#define RIGHT_ASSIGN 364 +#define AND_ASSIGN 365 +#define XOR_ASSIGN 366 +#define OR_ASSIGN 367 +#define SUB_ASSIGN 368 +#define LEFT_PAREN 369 +#define RIGHT_PAREN 370 +#define LEFT_BRACKET 371 +#define RIGHT_BRACKET 372 +#define LEFT_BRACE 373 +#define RIGHT_BRACE 374 +#define DOT 375 +#define COMMA 376 +#define COLON 377 +#define EQUAL 378 +#define SEMICOLON 379 +#define BANG 380 +#define DASH 381 +#define TILDE 382 +#define PLUS 383 +#define STAR 384 +#define SLASH 385 +#define PERCENT 386 +#define LEFT_ANGLE 387 +#define RIGHT_ANGLE 388 +#define VERTICAL_BAR 389 +#define CARET 390 +#define AMPERSAND 391 +#define QUESTION 392 + From 78a6547aee3859f9696b644fa9a76254dff817cc Mon Sep 17 00:00:00 2001 From: "Raymond W. Ko" Date: Tue, 20 May 2014 15:02:50 -0400 Subject: [PATCH 6/6] since only Win32 CMake has a registry write command, wrap with #ifdef so no errors are generated --- CMakeLists.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 98cb521..f7abc18 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -96,7 +96,9 @@ set(MACHINE_INDEPENDENT_CPP_FILES source_group("Machine Independent\\CPP" FILES ${MACHINE_INDEPENDENT_CPP_FILES}) -EXEC_PROGRAM(${CMAKE_COMMAND} ARGS "-E write_regv \"${hkey}\" \"${dir}\"") +if (WIN32) + EXEC_PROGRAM(${CMAKE_COMMAND} ARGS "-E write_regv \"${hkey}\" \"${dir}\"") +endif () set(MACHINE_INDEPENDENT_GENERATED_SOURCE_FILES