/* * My changes over the original lempar.c from SQLite are encased in * #if __MOJOSHADER__ blocks. --ryan. */ #ifndef __MOJOSHADER__ #define __MOJOSHADER__ 1 #endif #if !__MOJOSHADER__ #define LEMON_SUPPORT_TRACING (!defined(NDEBUG)) #endif /* Driver template for the LEMON parser generator. ** The original author(s) of lempar.c disclaim copyright to this source code. ** However, changes made for MojoShader fall under the same license as the ** rest of MojoShader. Please see the file LICENSE.txt in the source's root ** directory. */ /* First off, code is included that follows the "include" declaration ** in the input grammar file. */ #include #line 31 "E:/mojoshader/mojoshader_parser_hlsl.lemon" #ifndef __MOJOSHADER_HLSL_COMPILER__ #error Do not compile this file directly. #endif #line 28 "E:/mojoshader/mojoshader_parser_hlsl.h" /* Next is all token values, in a form suitable for use by makeheaders. ** This section will be null unless lemon is run with the -m switch. */ /* ** These constants (all generated automatically by the parser generator) ** specify the various kinds of tokens (terminals) that the parser ** understands. ** ** Each symbol here is a terminal symbol in the grammar. */ #define TOKEN_HLSL_COMMA 1 #define TOKEN_HLSL_ASSIGN 2 #define TOKEN_HLSL_ADDASSIGN 3 #define TOKEN_HLSL_SUBASSIGN 4 #define TOKEN_HLSL_MULASSIGN 5 #define TOKEN_HLSL_DIVASSIGN 6 #define TOKEN_HLSL_MODASSIGN 7 #define TOKEN_HLSL_LSHIFTASSIGN 8 #define TOKEN_HLSL_RSHIFTASSIGN 9 #define TOKEN_HLSL_ANDASSIGN 10 #define TOKEN_HLSL_ORASSIGN 11 #define TOKEN_HLSL_XORASSIGN 12 #define TOKEN_HLSL_QUESTION 13 #define TOKEN_HLSL_OROR 14 #define TOKEN_HLSL_ANDAND 15 #define TOKEN_HLSL_OR 16 #define TOKEN_HLSL_XOR 17 #define TOKEN_HLSL_AND 18 #define TOKEN_HLSL_EQL 19 #define TOKEN_HLSL_NEQ 20 #define TOKEN_HLSL_LT 21 #define TOKEN_HLSL_LEQ 22 #define TOKEN_HLSL_GT 23 #define TOKEN_HLSL_GEQ 24 #define TOKEN_HLSL_LSHIFT 25 #define TOKEN_HLSL_RSHIFT 26 #define TOKEN_HLSL_PLUS 27 #define TOKEN_HLSL_MINUS 28 #define TOKEN_HLSL_STAR 29 #define TOKEN_HLSL_SLASH 30 #define TOKEN_HLSL_PERCENT 31 #define TOKEN_HLSL_TYPECAST 32 #define TOKEN_HLSL_EXCLAMATION 33 #define TOKEN_HLSL_COMPLEMENT 34 #define TOKEN_HLSL_MINUSMINUS 35 #define TOKEN_HLSL_PLUSPLUS 36 #define TOKEN_HLSL_DOT 37 #define TOKEN_HLSL_LBRACKET 38 #define TOKEN_HLSL_RBRACKET 39 #define TOKEN_HLSL_LPAREN 40 #define TOKEN_HLSL_RPAREN 41 #define TOKEN_HLSL_ELSE 42 #define TOKEN_HLSL_SEMICOLON 43 #define TOKEN_HLSL_TYPEDEF 44 #define TOKEN_HLSL_CONST 45 #define TOKEN_HLSL_IDENTIFIER 46 #define TOKEN_HLSL_VOID 47 #define TOKEN_HLSL_INLINE 48 #define TOKEN_HLSL_IN 49 #define TOKEN_HLSL_INOUT 50 #define TOKEN_HLSL_OUT 51 #define TOKEN_HLSL_UNIFORM 52 #define TOKEN_HLSL_COLON 53 #define TOKEN_HLSL_LINEAR 54 #define TOKEN_HLSL_CENTROID 55 #define TOKEN_HLSL_NOINTERPOLATION 56 #define TOKEN_HLSL_NOPERSPECTIVE 57 #define TOKEN_HLSL_SAMPLE 58 #define TOKEN_HLSL_EXTERN 59 #define TOKEN_HLSL_SHARED 60 #define TOKEN_HLSL_STATIC 61 #define TOKEN_HLSL_VOLATILE 62 #define TOKEN_HLSL_ROWMAJOR 63 #define TOKEN_HLSL_COLUMNMAJOR 64 #define TOKEN_HLSL_LBRACE 65 #define TOKEN_HLSL_RBRACE 66 #define TOKEN_HLSL_STRUCT 67 #define TOKEN_HLSL_PACKOFFSET 68 #define TOKEN_HLSL_REGISTER 69 #define TOKEN_HLSL_USERTYPE 70 #define TOKEN_HLSL_SAMPLER 71 #define TOKEN_HLSL_SAMPLER1D 72 #define TOKEN_HLSL_SAMPLER2D 73 #define TOKEN_HLSL_SAMPLER3D 74 #define TOKEN_HLSL_SAMPLERCUBE 75 #define TOKEN_HLSL_SAMPLER_STATE 76 #define TOKEN_HLSL_SAMPLERSTATE 77 #define TOKEN_HLSL_SAMPLERCOMPARISONSTATE 78 #define TOKEN_HLSL_BOOL 79 #define TOKEN_HLSL_INT 80 #define TOKEN_HLSL_UINT 81 #define TOKEN_HLSL_HALF 82 #define TOKEN_HLSL_FLOAT 83 #define TOKEN_HLSL_DOUBLE 84 #define TOKEN_HLSL_STRING 85 #define TOKEN_HLSL_SNORM 86 #define TOKEN_HLSL_UNORM 87 #define TOKEN_HLSL_BUFFER 88 #define TOKEN_HLSL_VECTOR 89 #define TOKEN_HLSL_INT_CONSTANT 90 #define TOKEN_HLSL_MATRIX 91 #define TOKEN_HLSL_ISOLATE 92 #define TOKEN_HLSL_MAXINSTRUCTIONCOUNT 93 #define TOKEN_HLSL_NOEXPRESSIONOPTIMIZATIONS 94 #define TOKEN_HLSL_REMOVEUNUSEDINPUTS 95 #define TOKEN_HLSL_UNUSED 96 #define TOKEN_HLSL_XPS 97 #define TOKEN_HLSL_BREAK 98 #define TOKEN_HLSL_CONTINUE 99 #define TOKEN_HLSL_DISCARD 100 #define TOKEN_HLSL_DO 101 #define TOKEN_HLSL_WHILE 102 #define TOKEN_HLSL_RETURN 103 #define TOKEN_HLSL_UNROLL 104 #define TOKEN_HLSL_LOOP 105 #define TOKEN_HLSL_FOR 106 #define TOKEN_HLSL_BRANCH 107 #define TOKEN_HLSL_IF 108 #define TOKEN_HLSL_FLATTEN 109 #define TOKEN_HLSL_IFALL 110 #define TOKEN_HLSL_IFANY 111 #define TOKEN_HLSL_PREDICATE 112 #define TOKEN_HLSL_PREDICATEBLOCK 113 #define TOKEN_HLSL_SWITCH 114 #define TOKEN_HLSL_FORCECASE 115 #define TOKEN_HLSL_CALL 116 #define TOKEN_HLSL_CASE 117 #define TOKEN_HLSL_DEFAULT 118 #define TOKEN_HLSL_FLOAT_CONSTANT 119 #define TOKEN_HLSL_STRING_LITERAL 120 #define TOKEN_HLSL_TRUE 121 #define TOKEN_HLSL_FALSE 122 /* Make sure the INTERFACE macro is defined. */ #ifndef INTERFACE # define INTERFACE 1 #endif /* The next thing included is series of defines which control ** various aspects of the generated parser. ** YYCODETYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 terminals ** and nonterminals. "int" is used otherwise. ** YYNOCODE is a number of type YYCODETYPE which corresponds ** to no legal terminal or nonterminal number. This ** number is used to fill in empty slots of the hash ** table. ** YYFALLBACK If defined, this indicates that one or more tokens ** have fall-back values which should be used if the ** original value of the token will not parse. ** YYACTIONTYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 rules and ** states combined. "int" is used otherwise. ** ParseHLSLTOKENTYPE is the data type used for minor tokens given ** directly to the parser from the tokenizer. ** YYMINORTYPE is the data type used for all minor tokens. ** This is typically a union of many types, one of ** which is ParseHLSLTOKENTYPE. The entry in the union ** for base tokens is called "yy0". ** YYSTACKDEPTH is the maximum depth of the parser's stack. If ** zero the stack is dynamically sized using realloc() ** ParseHLSLARG_SDECL A static variable declaration for the %extra_argument ** ParseHLSLARG_PDECL A parameter declaration for the %extra_argument ** ParseHLSLARG_STORE Code to store %extra_argument into yypParser ** ParseHLSLARG_FETCH Code to extract %extra_argument from yypParser ** YYNSTATE the combined number of states. ** YYNRULE the number of rules in the grammar ** YYERRORSYMBOL is the code number of the error symbol. If not ** defined, then do no error processing. */ #define YYCODETYPE unsigned char #define YYNOCODE 198 #define YYACTIONTYPE unsigned short int #define ParseHLSLTOKENTYPE TokenData typedef union { int yyinit; ParseHLSLTOKENTYPE yy0; MOJOSHADER_astPackOffset * yy8; MOJOSHADER_astVariableDeclaration * yy24; MOJOSHADER_astArguments * yy26; const MOJOSHADER_astDataType * yy37; MOJOSHADER_astTypedef * yy71; MOJOSHADER_astInputModifier yy75; MOJOSHADER_astVariableLowLevel * yy82; MOJOSHADER_astInterpolationModifier yy111; MOJOSHADER_astCompilationUnit * yy139; MOJOSHADER_astSwitchCases * yy165; MOJOSHADER_astFunctionStorageClass yy175; MOJOSHADER_astStatement * yy233; MOJOSHADER_astStructDeclaration * yy249; MOJOSHADER_astAnnotations * yy268; int yy270; const char * yy306; MOJOSHADER_astFunctionParameters * yy307; MOJOSHADER_astExpression * yy322; MOJOSHADER_astStructMembers * yy346; MOJOSHADER_astFunctionSignature * yy364; MOJOSHADER_astScalarOrArray * yy380; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 100 #endif #define ParseHLSLARG_SDECL Context *ctx ; #define ParseHLSLARG_PDECL , Context *ctx #define ParseHLSLARG_FETCH Context *ctx = yypParser->ctx #define ParseHLSLARG_STORE yypParser->ctx = ctx #define YYNSTATE 525 #define YYNRULE 288 #define YY_NO_ACTION (YYNSTATE+YYNRULE+2) #define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1) #define YY_ERROR_ACTION (YYNSTATE+YYNRULE) /* The yyzerominor constant is used to initialize instances of ** YYMINORTYPE objects to zero. */ static const YYMINORTYPE yyzerominor = { 0 }; /* Define the yytestcase() macro to be a no-op if is not already defined ** otherwise. ** ** Applications can choose to define yytestcase() in the %include section ** to a macro that can assist in verifying code coverage. For production ** code the yytestcase() macro should be turned off. But it is useful ** for testing. */ #ifndef yytestcase # define yytestcase(X) #endif /* Next are the tables used to determine what action to take based on the ** current state and lookahead token. These tables are used to implement ** functions that take a state number and lookahead value and return an ** action integer. ** ** Suppose the action integer is N. Then the action is determined as ** follows ** ** 0 <= N < YYNSTATE Shift N. That is, push the lookahead ** token onto the stack and goto state N. ** ** YYNSTATE <= N < YYNSTATE+YYNRULE Reduce by rule N-YYNSTATE. ** ** N == YYNSTATE+YYNRULE A syntax error has occurred. ** ** N == YYNSTATE+YYNRULE+1 The parser accepts its input. ** ** N == YYNSTATE+YYNRULE+2 No such action. Denotes unused ** slots in the yy_action[] table. ** ** The action table is constructed as a single large table named yy_action[]. ** Given state S and lookahead X, the action is computed as ** ** yy_action[ yy_shift_ofst[S] + X ] ** ** If the index value yy_shift_ofst[S]+X is out of range or if the value ** yy_lookahead[yy_shift_ofst[S]+X] is not equal to X or if yy_shift_ofst[S] ** is equal to YY_SHIFT_USE_DFLT, it means that the action is not in the table ** and that yy_default[S] should be used instead. ** ** The formula above is for computing the action when the lookahead is ** a terminal symbol. If the lookahead is a non-terminal (as occurs after ** a reduce action) then the yy_reduce_ofst[] array is used in place of ** the yy_shift_ofst[] array and YY_REDUCE_USE_DFLT is used in place of ** YY_SHIFT_USE_DFLT. ** ** The following are the tables generated in this section: ** ** yy_action[] A single table containing all actions. ** yy_lookahead[] A table containing the lookahead for each entry in ** yy_action. Used to detect hash collisions. ** yy_shift_ofst[] For each state, the offset into yy_action for ** shifting terminals. ** yy_reduce_ofst[] For each state, the offset into yy_action for ** shifting non-terminals after a reduce. ** yy_default[] Default action for each state. */ #define YY_ACTTAB_COUNT (5407) static const YYACTIONTYPE yy_action[] = { /* 0 */ 86, 85, 446, 447, 264, 46, 83, 84, 90, 91, /* 10 */ 39, 123, 88, 47, 27, 114, 344, 97, 405, 143, /* 20 */ 104, 422, 82, 81, 80, 407, 348, 140, 139, 410, /* 30 */ 78, 77, 411, 409, 408, 406, 404, 403, 1, 383, /* 40 */ 249, 495, 60, 511, 510, 509, 508, 507, 506, 505, /* 50 */ 504, 503, 502, 501, 500, 499, 498, 497, 496, 295, /* 60 */ 294, 293, 282, 482, 278, 250, 398, 397, 396, 395, /* 70 */ 394, 248, 247, 246, 334, 338, 37, 40, 214, 336, /* 80 */ 518, 333, 74, 72, 73, 71, 39, 332, 494, 100, /* 90 */ 86, 85, 481, 480, 479, 478, 83, 84, 90, 91, /* 100 */ 186, 123, 413, 47, 27, 115, 344, 97, 405, 143, /* 110 */ 362, 429, 70, 69, 432, 407, 361, 140, 139, 410, /* 120 */ 140, 139, 411, 409, 408, 406, 404, 403, 1, 384, /* 130 */ 249, 76, 75, 511, 510, 509, 508, 507, 506, 505, /* 140 */ 504, 503, 502, 501, 500, 499, 498, 497, 496, 295, /* 150 */ 294, 293, 282, 482, 278, 146, 398, 397, 396, 395, /* 160 */ 394, 248, 247, 246, 334, 338, 37, 369, 371, 336, /* 170 */ 119, 333, 370, 366, 368, 132, 310, 332, 367, 100, /* 180 */ 86, 85, 481, 480, 479, 478, 83, 84, 90, 91, /* 190 */ 180, 123, 413, 47, 113, 423, 344, 97, 405, 143, /* 200 */ 416, 140, 139, 493, 417, 407, 140, 139, 100, 410, /* 210 */ 140, 139, 411, 409, 408, 406, 404, 403, 1, 181, /* 220 */ 249, 413, 60, 511, 510, 509, 508, 507, 506, 505, /* 230 */ 504, 503, 502, 501, 500, 499, 498, 497, 496, 295, /* 240 */ 294, 293, 282, 482, 278, 63, 436, 117, 418, 138, /* 250 */ 492, 248, 247, 246, 334, 338, 37, 415, 122, 336, /* 260 */ 121, 333, 477, 140, 139, 62, 63, 332, 263, 259, /* 270 */ 86, 85, 481, 480, 479, 478, 83, 84, 90, 91, /* 280 */ 391, 261, 24, 47, 61, 434, 33, 515, 405, 143, /* 290 */ 512, 517, 516, 514, 513, 407, 363, 365, 100, 410, /* 300 */ 438, 364, 411, 409, 408, 406, 404, 403, 48, 181, /* 310 */ 249, 413, 60, 511, 510, 509, 508, 507, 506, 505, /* 320 */ 504, 503, 502, 501, 500, 499, 498, 497, 496, 295, /* 330 */ 294, 293, 282, 482, 278, 263, 259, 352, 118, 340, /* 340 */ 345, 109, 102, 130, 306, 122, 474, 428, 443, 122, /* 350 */ 475, 152, 241, 94, 360, 399, 491, 421, 400, 252, /* 360 */ 359, 296, 481, 480, 479, 478, 170, 24, 60, 515, /* 370 */ 38, 79, 512, 517, 516, 514, 513, 18, 346, 60, /* 380 */ 223, 219, 218, 216, 251, 339, 135, 402, 60, 476, /* 390 */ 150, 401, 60, 450, 145, 467, 157, 199, 198, 149, /* 400 */ 191, 272, 271, 269, 267, 189, 462, 352, 220, 340, /* 410 */ 345, 109, 102, 502, 501, 500, 499, 498, 497, 496, /* 420 */ 295, 294, 60, 94, 100, 399, 390, 522, 21, 252, /* 430 */ 490, 3, 426, 489, 343, 38, 170, 437, 60, 515, /* 440 */ 60, 296, 512, 517, 516, 514, 513, 5, 346, 1, /* 450 */ 223, 219, 218, 216, 318, 339, 135, 296, 27, 476, /* 460 */ 150, 27, 20, 450, 145, 467, 157, 199, 198, 149, /* 470 */ 191, 272, 271, 269, 267, 189, 462, 105, 215, 285, /* 480 */ 105, 352, 341, 340, 345, 109, 102, 502, 501, 500, /* 490 */ 499, 498, 497, 496, 295, 294, 101, 94, 488, 399, /* 500 */ 126, 487, 112, 252, 320, 40, 214, 103, 414, 184, /* 510 */ 170, 283, 154, 515, 140, 139, 512, 517, 516, 514, /* 520 */ 513, 4, 346, 486, 223, 219, 218, 216, 60, 339, /* 530 */ 135, 60, 213, 476, 150, 134, 125, 450, 145, 467, /* 540 */ 157, 199, 198, 149, 191, 272, 271, 269, 267, 189, /* 550 */ 462, 352, 137, 340, 345, 109, 102, 280, 60, 515, /* 560 */ 60, 60, 512, 517, 516, 514, 513, 94, 485, 399, /* 570 */ 36, 17, 179, 252, 292, 291, 290, 289, 288, 287, /* 580 */ 170, 286, 284, 515, 60, 124, 512, 517, 516, 514, /* 590 */ 513, 60, 222, 60, 223, 219, 218, 216, 14, 339, /* 600 */ 135, 12, 31, 476, 150, 144, 60, 450, 145, 467, /* 610 */ 157, 199, 198, 149, 191, 272, 271, 269, 267, 189, /* 620 */ 462, 27, 133, 312, 279, 352, 35, 340, 345, 109, /* 630 */ 102, 10, 515, 9, 276, 512, 517, 516, 514, 513, /* 640 */ 60, 94, 275, 399, 131, 308, 274, 252, 29, 420, /* 650 */ 138, 273, 484, 68, 170, 67, 65, 515, 64, 448, /* 660 */ 512, 517, 516, 514, 513, 262, 350, 185, 223, 219, /* 670 */ 218, 216, 184, 339, 135, 209, 260, 476, 150, 259, /* 680 */ 6, 450, 145, 467, 157, 199, 198, 149, 191, 272, /* 690 */ 271, 269, 267, 189, 462, 352, 435, 340, 345, 109, /* 700 */ 102, 258, 515, 257, 433, 512, 517, 516, 514, 513, /* 710 */ 60, 94, 263, 399, 419, 89, 389, 252, 436, 385, /* 720 */ 381, 380, 379, 244, 170, 377, 243, 515, 136, 239, /* 730 */ 512, 517, 516, 514, 513, 153, 217, 240, 223, 219, /* 740 */ 218, 216, 151, 339, 135, 177, 176, 476, 150, 141, /* 750 */ 234, 450, 145, 467, 157, 199, 198, 149, 191, 272, /* 760 */ 271, 269, 267, 189, 462, 232, 358, 357, 230, 352, /* 770 */ 356, 340, 345, 109, 102, 228, 515, 355, 226, 512, /* 780 */ 517, 516, 514, 513, 224, 94, 22, 399, 354, 353, /* 790 */ 44, 252, 221, 43, 351, 42, 19, 41, 170, 120, /* 800 */ 2, 515, 212, 88, 512, 517, 516, 514, 513, 316, /* 810 */ 349, 93, 223, 219, 218, 216, 107, 339, 135, 106, /* 820 */ 305, 476, 150, 303, 204, 450, 145, 467, 157, 199, /* 830 */ 198, 149, 191, 272, 271, 269, 267, 189, 462, 352, /* 840 */ 87, 340, 345, 109, 102, 300, 520, 296, 483, 38, /* 850 */ 439, 256, 431, 430, 27, 94, 255, 399, 253, 388, /* 860 */ 250, 252, 474, 337, 372, 23, 317, 1, 170, 313, /* 870 */ 311, 515, 521, 309, 512, 517, 516, 514, 513, 307, /* 880 */ 382, 281, 223, 219, 218, 216, 347, 339, 135, 242, /* 890 */ 184, 476, 150, 158, 299, 450, 145, 467, 157, 199, /* 900 */ 198, 149, 191, 272, 271, 269, 267, 189, 462, 815, /* 910 */ 815, 277, 815, 352, 815, 340, 345, 109, 102, 815, /* 920 */ 815, 815, 815, 815, 815, 815, 815, 815, 815, 94, /* 930 */ 815, 399, 815, 815, 815, 252, 815, 815, 815, 815, /* 940 */ 815, 815, 170, 815, 815, 515, 815, 815, 512, 517, /* 950 */ 516, 514, 513, 815, 335, 815, 223, 219, 218, 216, /* 960 */ 815, 339, 135, 815, 815, 476, 150, 815, 815, 450, /* 970 */ 145, 467, 157, 199, 198, 149, 191, 272, 271, 269, /* 980 */ 267, 189, 462, 352, 815, 340, 345, 109, 102, 815, /* 990 */ 815, 815, 815, 815, 815, 815, 815, 815, 815, 94, /* 1000 */ 815, 399, 815, 815, 815, 252, 815, 815, 815, 815, /* 1010 */ 815, 815, 170, 815, 815, 515, 815, 815, 512, 517, /* 1020 */ 516, 514, 513, 815, 331, 815, 223, 219, 218, 216, /* 1030 */ 815, 339, 135, 815, 815, 476, 150, 815, 815, 450, /* 1040 */ 145, 467, 157, 199, 198, 149, 191, 272, 271, 269, /* 1050 */ 267, 189, 462, 815, 815, 815, 815, 352, 815, 340, /* 1060 */ 345, 109, 102, 815, 815, 815, 815, 815, 815, 815, /* 1070 */ 815, 815, 815, 94, 815, 399, 815, 815, 815, 252, /* 1080 */ 815, 815, 815, 815, 815, 815, 170, 815, 815, 515, /* 1090 */ 815, 815, 512, 517, 516, 514, 513, 815, 330, 815, /* 1100 */ 223, 219, 218, 216, 815, 339, 135, 815, 815, 476, /* 1110 */ 150, 815, 815, 450, 145, 467, 157, 199, 198, 149, /* 1120 */ 191, 272, 271, 269, 267, 189, 462, 352, 815, 340, /* 1130 */ 345, 109, 102, 815, 815, 815, 815, 815, 815, 815, /* 1140 */ 815, 815, 815, 94, 815, 399, 815, 815, 815, 252, /* 1150 */ 815, 815, 815, 815, 815, 815, 170, 815, 815, 515, /* 1160 */ 815, 815, 512, 517, 516, 514, 513, 815, 329, 815, /* 1170 */ 223, 219, 218, 216, 815, 339, 135, 815, 815, 476, /* 1180 */ 150, 815, 815, 450, 145, 467, 157, 199, 198, 149, /* 1190 */ 191, 272, 271, 269, 267, 189, 462, 815, 815, 815, /* 1200 */ 815, 352, 815, 340, 345, 109, 102, 815, 815, 815, /* 1210 */ 815, 815, 815, 815, 815, 815, 815, 94, 815, 399, /* 1220 */ 815, 815, 815, 252, 815, 815, 815, 815, 815, 815, /* 1230 */ 170, 815, 815, 515, 815, 815, 512, 517, 516, 514, /* 1240 */ 513, 815, 328, 815, 223, 219, 218, 216, 815, 339, /* 1250 */ 135, 815, 815, 476, 150, 815, 815, 450, 145, 467, /* 1260 */ 157, 199, 198, 149, 191, 272, 271, 269, 267, 189, /* 1270 */ 462, 352, 815, 340, 345, 109, 102, 815, 815, 815, /* 1280 */ 815, 815, 815, 815, 815, 815, 815, 94, 815, 399, /* 1290 */ 815, 815, 815, 252, 815, 815, 815, 815, 815, 815, /* 1300 */ 170, 815, 815, 515, 815, 815, 512, 517, 516, 514, /* 1310 */ 513, 815, 327, 815, 223, 219, 218, 216, 815, 339, /* 1320 */ 135, 815, 815, 476, 150, 815, 815, 450, 145, 467, /* 1330 */ 157, 199, 198, 149, 191, 272, 271, 269, 267, 189, /* 1340 */ 462, 815, 815, 815, 815, 352, 815, 340, 345, 109, /* 1350 */ 102, 815, 815, 815, 815, 815, 815, 815, 815, 815, /* 1360 */ 815, 94, 815, 399, 815, 815, 815, 252, 815, 815, /* 1370 */ 815, 815, 815, 815, 170, 815, 815, 515, 815, 815, /* 1380 */ 512, 517, 516, 514, 513, 815, 326, 815, 223, 219, /* 1390 */ 218, 216, 815, 339, 135, 815, 815, 476, 150, 815, /* 1400 */ 815, 450, 145, 467, 157, 199, 198, 149, 191, 272, /* 1410 */ 271, 269, 267, 189, 462, 352, 815, 340, 345, 109, /* 1420 */ 102, 815, 815, 815, 815, 815, 815, 815, 815, 815, /* 1430 */ 815, 94, 815, 399, 815, 815, 815, 252, 815, 815, /* 1440 */ 815, 815, 815, 815, 170, 815, 815, 515, 815, 815, /* 1450 */ 512, 517, 516, 514, 513, 815, 325, 815, 223, 219, /* 1460 */ 218, 216, 815, 339, 135, 815, 815, 476, 150, 815, /* 1470 */ 815, 450, 145, 467, 157, 199, 198, 149, 191, 272, /* 1480 */ 271, 269, 267, 189, 462, 815, 815, 815, 815, 352, /* 1490 */ 815, 340, 345, 109, 102, 815, 815, 815, 815, 815, /* 1500 */ 815, 815, 815, 815, 815, 94, 815, 399, 815, 815, /* 1510 */ 815, 252, 815, 815, 815, 815, 815, 815, 170, 815, /* 1520 */ 815, 515, 815, 815, 512, 517, 516, 514, 513, 815, /* 1530 */ 324, 815, 223, 219, 218, 216, 815, 339, 135, 815, /* 1540 */ 815, 476, 150, 815, 815, 450, 145, 467, 157, 199, /* 1550 */ 198, 149, 191, 272, 271, 269, 267, 189, 462, 352, /* 1560 */ 815, 340, 345, 109, 102, 815, 815, 815, 815, 815, /* 1570 */ 815, 815, 815, 815, 815, 94, 815, 399, 815, 815, /* 1580 */ 815, 252, 815, 815, 815, 815, 815, 815, 170, 815, /* 1590 */ 815, 515, 815, 815, 512, 517, 516, 514, 513, 815, /* 1600 */ 323, 815, 223, 219, 218, 216, 815, 339, 135, 815, /* 1610 */ 815, 476, 150, 815, 815, 450, 145, 467, 157, 199, /* 1620 */ 198, 149, 191, 272, 271, 269, 267, 189, 462, 815, /* 1630 */ 815, 815, 815, 352, 815, 340, 345, 109, 102, 815, /* 1640 */ 815, 815, 815, 815, 815, 815, 815, 815, 815, 94, /* 1650 */ 815, 399, 815, 815, 815, 252, 815, 815, 815, 815, /* 1660 */ 815, 815, 170, 815, 815, 515, 815, 815, 512, 517, /* 1670 */ 516, 514, 513, 815, 322, 815, 223, 219, 218, 216, /* 1680 */ 815, 339, 135, 815, 815, 476, 150, 815, 815, 450, /* 1690 */ 145, 467, 157, 199, 198, 149, 191, 272, 271, 269, /* 1700 */ 267, 189, 462, 352, 815, 340, 345, 109, 102, 815, /* 1710 */ 815, 815, 815, 815, 815, 815, 815, 815, 815, 94, /* 1720 */ 815, 399, 815, 815, 815, 252, 815, 815, 815, 815, /* 1730 */ 815, 815, 170, 525, 815, 515, 815, 815, 512, 517, /* 1740 */ 516, 514, 513, 815, 321, 815, 223, 219, 218, 216, /* 1750 */ 815, 339, 135, 815, 815, 476, 150, 815, 815, 450, /* 1760 */ 145, 467, 157, 199, 198, 149, 191, 272, 271, 269, /* 1770 */ 267, 189, 462, 815, 815, 815, 815, 97, 405, 815, /* 1780 */ 205, 298, 815, 815, 815, 407, 815, 815, 815, 410, /* 1790 */ 815, 815, 411, 409, 408, 406, 404, 403, 815, 815, /* 1800 */ 249, 815, 815, 511, 510, 509, 508, 507, 506, 505, /* 1810 */ 504, 503, 502, 501, 500, 499, 498, 497, 496, 295, /* 1820 */ 294, 293, 282, 815, 278, 86, 85, 815, 815, 815, /* 1830 */ 815, 83, 84, 90, 91, 815, 815, 519, 47, 815, /* 1840 */ 815, 815, 815, 815, 143, 815, 815, 86, 85, 815, /* 1850 */ 815, 815, 815, 83, 84, 90, 91, 815, 815, 815, /* 1860 */ 47, 444, 815, 815, 815, 815, 143, 815, 511, 510, /* 1870 */ 509, 508, 507, 506, 505, 504, 503, 502, 501, 500, /* 1880 */ 499, 498, 497, 496, 295, 294, 293, 282, 482, 278, /* 1890 */ 511, 510, 509, 508, 507, 506, 505, 504, 503, 502, /* 1900 */ 501, 500, 499, 498, 497, 496, 295, 294, 293, 282, /* 1910 */ 482, 278, 815, 815, 815, 86, 85, 481, 480, 479, /* 1920 */ 478, 83, 84, 90, 91, 815, 815, 815, 47, 815, /* 1930 */ 815, 342, 815, 815, 143, 815, 815, 86, 85, 481, /* 1940 */ 480, 479, 478, 83, 84, 90, 91, 815, 815, 815, /* 1950 */ 47, 815, 815, 34, 815, 815, 143, 815, 511, 510, /* 1960 */ 509, 508, 507, 506, 505, 504, 503, 502, 501, 500, /* 1970 */ 499, 498, 497, 496, 295, 294, 293, 282, 482, 278, /* 1980 */ 511, 510, 509, 508, 507, 506, 505, 504, 503, 502, /* 1990 */ 501, 500, 499, 498, 497, 496, 295, 294, 293, 282, /* 2000 */ 482, 278, 815, 815, 815, 86, 85, 481, 480, 479, /* 2010 */ 478, 83, 84, 90, 91, 815, 815, 815, 47, 16, /* 2020 */ 815, 815, 815, 815, 143, 815, 815, 86, 85, 481, /* 2030 */ 480, 479, 478, 83, 84, 90, 91, 815, 815, 815, /* 2040 */ 47, 15, 815, 815, 815, 815, 143, 815, 511, 510, /* 2050 */ 509, 508, 507, 506, 505, 504, 503, 502, 501, 500, /* 2060 */ 499, 498, 497, 496, 295, 294, 293, 282, 482, 278, /* 2070 */ 511, 510, 509, 508, 507, 506, 505, 504, 503, 502, /* 2080 */ 501, 500, 499, 498, 497, 496, 295, 294, 293, 282, /* 2090 */ 482, 278, 815, 815, 815, 86, 85, 481, 480, 479, /* 2100 */ 478, 83, 84, 90, 91, 815, 815, 815, 47, 815, /* 2110 */ 815, 32, 815, 815, 143, 815, 815, 86, 85, 481, /* 2120 */ 480, 479, 478, 83, 84, 90, 91, 815, 815, 815, /* 2130 */ 47, 13, 815, 815, 815, 815, 143, 815, 511, 510, /* 2140 */ 509, 508, 507, 506, 505, 504, 503, 502, 501, 500, /* 2150 */ 499, 498, 497, 496, 295, 294, 293, 282, 482, 278, /* 2160 */ 511, 510, 509, 508, 507, 506, 505, 504, 503, 502, /* 2170 */ 501, 500, 499, 498, 497, 496, 295, 294, 293, 282, /* 2180 */ 482, 278, 815, 815, 815, 86, 85, 481, 480, 479, /* 2190 */ 478, 83, 84, 90, 91, 815, 815, 815, 47, 11, /* 2200 */ 815, 815, 815, 815, 143, 815, 815, 86, 85, 481, /* 2210 */ 480, 479, 478, 83, 84, 90, 91, 815, 815, 815, /* 2220 */ 47, 815, 815, 28, 815, 815, 143, 815, 511, 510, /* 2230 */ 509, 508, 507, 506, 505, 504, 503, 502, 501, 500, /* 2240 */ 499, 498, 497, 496, 295, 294, 293, 282, 482, 278, /* 2250 */ 511, 510, 509, 508, 507, 506, 505, 504, 503, 502, /* 2260 */ 501, 500, 499, 498, 497, 496, 295, 294, 293, 282, /* 2270 */ 482, 278, 815, 815, 815, 86, 85, 481, 480, 479, /* 2280 */ 478, 83, 84, 90, 91, 815, 815, 815, 47, 8, /* 2290 */ 815, 815, 815, 815, 143, 815, 815, 86, 85, 481, /* 2300 */ 480, 479, 478, 83, 84, 90, 91, 815, 815, 815, /* 2310 */ 47, 7, 815, 815, 815, 815, 143, 815, 511, 510, /* 2320 */ 509, 508, 507, 506, 505, 504, 503, 502, 501, 500, /* 2330 */ 499, 498, 497, 496, 295, 294, 293, 282, 482, 278, /* 2340 */ 511, 510, 509, 508, 507, 506, 505, 504, 503, 502, /* 2350 */ 501, 500, 499, 498, 497, 496, 295, 294, 293, 282, /* 2360 */ 482, 278, 815, 815, 815, 86, 85, 481, 480, 479, /* 2370 */ 478, 83, 84, 90, 91, 815, 815, 815, 47, 815, /* 2380 */ 815, 815, 815, 815, 143, 815, 815, 815, 815, 481, /* 2390 */ 480, 479, 478, 815, 815, 815, 815, 815, 815, 815, /* 2400 */ 815, 815, 815, 26, 815, 815, 815, 815, 511, 510, /* 2410 */ 509, 508, 507, 506, 505, 504, 503, 502, 501, 500, /* 2420 */ 499, 498, 497, 496, 295, 294, 293, 282, 482, 278, /* 2430 */ 815, 86, 85, 815, 121, 815, 815, 83, 84, 90, /* 2440 */ 91, 815, 815, 96, 47, 815, 815, 815, 815, 815, /* 2450 */ 143, 815, 92, 386, 387, 815, 815, 481, 480, 479, /* 2460 */ 478, 515, 815, 815, 512, 517, 516, 514, 513, 25, /* 2470 */ 815, 815, 815, 815, 511, 510, 509, 508, 507, 506, /* 2480 */ 505, 504, 503, 502, 501, 500, 499, 498, 497, 496, /* 2490 */ 295, 294, 293, 282, 482, 278, 815, 86, 85, 815, /* 2500 */ 815, 815, 815, 83, 84, 90, 91, 815, 815, 815, /* 2510 */ 45, 815, 815, 815, 815, 815, 143, 815, 815, 815, /* 2520 */ 815, 815, 815, 481, 480, 479, 478, 59, 55, 54, /* 2530 */ 58, 57, 56, 53, 52, 51, 49, 50, 815, 815, /* 2540 */ 511, 510, 509, 508, 507, 506, 505, 504, 503, 502, /* 2550 */ 501, 500, 499, 498, 497, 496, 295, 294, 293, 282, /* 2560 */ 482, 278, 815, 815, 815, 815, 815, 815, 86, 85, /* 2570 */ 815, 208, 815, 815, 83, 84, 90, 91, 314, 98, /* 2580 */ 815, 47, 815, 815, 815, 815, 815, 143, 815, 481, /* 2590 */ 480, 479, 478, 815, 815, 815, 815, 815, 515, 815, /* 2600 */ 815, 512, 517, 516, 514, 513, 815, 815, 815, 815, /* 2610 */ 815, 511, 510, 509, 508, 507, 506, 505, 504, 503, /* 2620 */ 502, 501, 500, 499, 498, 497, 496, 295, 294, 293, /* 2630 */ 282, 482, 278, 815, 378, 245, 376, 375, 374, 373, /* 2640 */ 815, 815, 815, 815, 815, 815, 178, 238, 815, 237, /* 2650 */ 815, 236, 235, 233, 231, 229, 815, 227, 225, 815, /* 2660 */ 481, 480, 479, 478, 97, 405, 815, 205, 298, 815, /* 2670 */ 815, 815, 407, 815, 815, 815, 410, 815, 815, 411, /* 2680 */ 409, 408, 406, 404, 403, 815, 815, 249, 815, 815, /* 2690 */ 511, 510, 509, 508, 507, 506, 505, 504, 503, 502, /* 2700 */ 501, 500, 499, 498, 497, 496, 295, 294, 293, 282, /* 2710 */ 405, 278, 815, 815, 815, 815, 815, 407, 815, 815, /* 2720 */ 815, 410, 815, 815, 411, 409, 408, 406, 404, 403, /* 2730 */ 815, 815, 815, 815, 815, 511, 510, 509, 508, 507, /* 2740 */ 506, 505, 504, 503, 502, 501, 500, 499, 498, 497, /* 2750 */ 496, 295, 294, 293, 282, 30, 278, 815, 815, 111, /* 2760 */ 102, 815, 815, 815, 815, 815, 815, 815, 815, 121, /* 2770 */ 815, 94, 815, 399, 815, 815, 815, 252, 96, 815, /* 2780 */ 815, 815, 815, 815, 168, 815, 815, 515, 392, 387, /* 2790 */ 512, 517, 516, 514, 513, 815, 515, 815, 815, 512, /* 2800 */ 517, 516, 514, 513, 815, 815, 815, 476, 150, 815, /* 2810 */ 815, 450, 145, 467, 157, 199, 198, 149, 191, 272, /* 2820 */ 271, 269, 267, 189, 462, 815, 398, 397, 396, 395, /* 2830 */ 394, 815, 815, 815, 815, 815, 815, 815, 393, 815, /* 2840 */ 815, 815, 511, 510, 509, 508, 507, 506, 505, 504, /* 2850 */ 503, 502, 501, 500, 499, 498, 497, 496, 295, 294, /* 2860 */ 293, 282, 815, 278, 815, 815, 398, 397, 396, 395, /* 2870 */ 394, 815, 815, 815, 815, 815, 815, 815, 815, 815, /* 2880 */ 815, 815, 511, 510, 509, 508, 507, 506, 505, 504, /* 2890 */ 503, 502, 501, 500, 499, 498, 497, 496, 295, 294, /* 2900 */ 293, 282, 315, 278, 207, 304, 206, 302, 815, 815, /* 2910 */ 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, /* 2920 */ 815, 815, 815, 815, 815, 511, 510, 509, 508, 507, /* 2930 */ 506, 505, 504, 503, 502, 501, 500, 499, 498, 497, /* 2940 */ 496, 295, 294, 293, 282, 815, 278, 207, 304, 206, /* 2950 */ 302, 815, 815, 815, 815, 815, 815, 815, 815, 815, /* 2960 */ 815, 815, 815, 815, 815, 815, 815, 815, 511, 510, /* 2970 */ 509, 508, 507, 506, 505, 504, 503, 502, 501, 500, /* 2980 */ 499, 498, 497, 496, 295, 294, 293, 282, 142, 278, /* 2990 */ 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, /* 3000 */ 208, 815, 815, 815, 815, 211, 210, 301, 98, 815, /* 3010 */ 815, 815, 424, 815, 815, 515, 815, 425, 512, 517, /* 3020 */ 516, 514, 513, 815, 815, 815, 815, 515, 815, 142, /* 3030 */ 512, 517, 516, 514, 513, 476, 150, 815, 815, 450, /* 3040 */ 145, 467, 157, 199, 198, 149, 191, 272, 271, 269, /* 3050 */ 267, 189, 462, 254, 815, 815, 515, 182, 815, 512, /* 3060 */ 517, 516, 514, 513, 815, 815, 815, 815, 815, 815, /* 3070 */ 142, 815, 815, 815, 815, 815, 476, 150, 815, 815, /* 3080 */ 450, 145, 467, 157, 199, 198, 149, 191, 272, 271, /* 3090 */ 269, 267, 189, 462, 254, 815, 815, 515, 183, 815, /* 3100 */ 512, 517, 516, 514, 513, 815, 815, 815, 815, 815, /* 3110 */ 815, 142, 815, 815, 815, 815, 815, 476, 150, 815, /* 3120 */ 815, 450, 145, 467, 157, 199, 198, 149, 191, 272, /* 3130 */ 271, 269, 267, 189, 462, 254, 815, 815, 515, 427, /* 3140 */ 815, 512, 517, 516, 514, 513, 815, 815, 815, 815, /* 3150 */ 815, 815, 127, 815, 815, 815, 815, 815, 476, 150, /* 3160 */ 815, 815, 450, 145, 467, 157, 199, 198, 149, 191, /* 3170 */ 272, 271, 269, 267, 189, 462, 201, 815, 815, 515, /* 3180 */ 815, 815, 512, 517, 516, 514, 513, 815, 815, 815, /* 3190 */ 815, 815, 815, 142, 815, 815, 815, 815, 815, 476, /* 3200 */ 150, 815, 815, 450, 145, 467, 157, 199, 198, 149, /* 3210 */ 191, 272, 271, 269, 267, 189, 462, 200, 815, 815, /* 3220 */ 515, 815, 815, 512, 517, 516, 514, 513, 815, 815, /* 3230 */ 815, 815, 815, 815, 142, 815, 815, 815, 815, 815, /* 3240 */ 476, 150, 815, 815, 450, 145, 467, 157, 199, 198, /* 3250 */ 149, 191, 272, 271, 269, 267, 189, 462, 201, 815, /* 3260 */ 815, 515, 815, 815, 512, 517, 516, 514, 513, 815, /* 3270 */ 815, 815, 815, 815, 815, 142, 815, 815, 815, 815, /* 3280 */ 815, 476, 150, 815, 815, 450, 145, 467, 157, 199, /* 3290 */ 198, 149, 191, 272, 271, 269, 267, 189, 462, 175, /* 3300 */ 815, 815, 515, 815, 815, 512, 517, 516, 514, 513, /* 3310 */ 815, 815, 815, 815, 815, 815, 142, 815, 815, 815, /* 3320 */ 815, 815, 476, 150, 815, 815, 450, 145, 467, 157, /* 3330 */ 199, 198, 149, 191, 272, 271, 269, 267, 189, 462, /* 3340 */ 174, 815, 815, 515, 815, 815, 512, 517, 516, 514, /* 3350 */ 513, 815, 815, 815, 815, 815, 815, 142, 815, 815, /* 3360 */ 815, 815, 815, 476, 150, 815, 815, 450, 145, 467, /* 3370 */ 157, 199, 198, 149, 191, 272, 271, 269, 267, 189, /* 3380 */ 462, 173, 815, 815, 515, 815, 815, 512, 517, 516, /* 3390 */ 514, 513, 815, 815, 815, 815, 815, 815, 142, 815, /* 3400 */ 815, 815, 815, 815, 476, 150, 815, 815, 450, 145, /* 3410 */ 467, 157, 199, 198, 149, 191, 272, 271, 269, 267, /* 3420 */ 189, 462, 172, 815, 815, 515, 815, 815, 512, 517, /* 3430 */ 516, 514, 513, 815, 815, 815, 815, 815, 815, 142, /* 3440 */ 815, 815, 815, 815, 815, 476, 150, 815, 815, 450, /* 3450 */ 145, 467, 157, 199, 198, 149, 191, 272, 271, 269, /* 3460 */ 267, 189, 462, 171, 815, 815, 515, 815, 815, 512, /* 3470 */ 517, 516, 514, 513, 815, 815, 815, 815, 815, 815, /* 3480 */ 142, 815, 815, 815, 815, 815, 476, 150, 815, 815, /* 3490 */ 450, 145, 467, 157, 199, 198, 149, 191, 272, 271, /* 3500 */ 269, 267, 189, 462, 202, 815, 815, 515, 815, 815, /* 3510 */ 512, 517, 516, 514, 513, 815, 815, 815, 815, 815, /* 3520 */ 142, 815, 815, 815, 815, 815, 815, 476, 150, 815, /* 3530 */ 815, 450, 145, 467, 157, 199, 198, 149, 191, 272, /* 3540 */ 271, 269, 267, 189, 462, 815, 815, 515, 815, 815, /* 3550 */ 512, 517, 516, 514, 513, 815, 815, 815, 815, 815, /* 3560 */ 815, 142, 815, 815, 815, 815, 815, 476, 150, 815, /* 3570 */ 187, 441, 145, 467, 157, 199, 198, 149, 191, 272, /* 3580 */ 271, 269, 267, 189, 462, 169, 815, 815, 515, 815, /* 3590 */ 815, 512, 517, 516, 514, 513, 815, 815, 815, 815, /* 3600 */ 815, 815, 142, 815, 815, 815, 815, 815, 476, 150, /* 3610 */ 815, 815, 450, 145, 467, 157, 199, 198, 149, 191, /* 3620 */ 272, 271, 269, 267, 189, 462, 167, 815, 815, 515, /* 3630 */ 815, 815, 512, 517, 516, 514, 513, 815, 815, 815, /* 3640 */ 815, 815, 815, 142, 815, 815, 815, 815, 815, 476, /* 3650 */ 150, 815, 815, 450, 145, 467, 157, 199, 198, 149, /* 3660 */ 191, 272, 271, 269, 267, 189, 462, 166, 815, 815, /* 3670 */ 515, 815, 815, 512, 517, 516, 514, 513, 815, 815, /* 3680 */ 815, 815, 815, 815, 142, 815, 815, 815, 815, 815, /* 3690 */ 476, 150, 815, 815, 450, 145, 467, 157, 199, 198, /* 3700 */ 149, 191, 272, 271, 269, 267, 189, 462, 165, 815, /* 3710 */ 815, 515, 815, 815, 512, 517, 516, 514, 513, 815, /* 3720 */ 815, 815, 815, 815, 815, 142, 815, 815, 815, 815, /* 3730 */ 815, 476, 150, 815, 815, 450, 145, 467, 157, 199, /* 3740 */ 198, 149, 191, 272, 271, 269, 267, 189, 462, 163, /* 3750 */ 815, 815, 515, 815, 815, 512, 517, 516, 514, 513, /* 3760 */ 815, 815, 815, 815, 815, 815, 142, 815, 815, 815, /* 3770 */ 815, 815, 476, 150, 815, 815, 450, 145, 467, 157, /* 3780 */ 199, 198, 149, 191, 272, 271, 269, 267, 189, 462, /* 3790 */ 164, 815, 815, 515, 815, 815, 512, 517, 516, 514, /* 3800 */ 513, 815, 815, 815, 815, 815, 815, 142, 815, 815, /* 3810 */ 815, 815, 815, 476, 150, 815, 815, 450, 145, 467, /* 3820 */ 157, 199, 198, 149, 191, 272, 271, 269, 267, 189, /* 3830 */ 462, 162, 815, 815, 515, 815, 815, 512, 517, 516, /* 3840 */ 514, 513, 815, 815, 815, 815, 815, 815, 142, 815, /* 3850 */ 815, 815, 815, 815, 476, 150, 815, 815, 450, 145, /* 3860 */ 467, 157, 199, 198, 149, 191, 272, 271, 269, 267, /* 3870 */ 189, 462, 161, 815, 815, 515, 815, 815, 512, 517, /* 3880 */ 516, 514, 513, 815, 815, 815, 815, 815, 815, 142, /* 3890 */ 815, 815, 815, 815, 815, 476, 150, 815, 815, 450, /* 3900 */ 145, 467, 157, 199, 198, 149, 191, 272, 271, 269, /* 3910 */ 267, 189, 462, 160, 815, 815, 515, 815, 815, 512, /* 3920 */ 517, 516, 514, 513, 815, 815, 815, 815, 815, 815, /* 3930 */ 142, 815, 815, 815, 815, 815, 476, 150, 815, 815, /* 3940 */ 450, 145, 467, 157, 199, 198, 149, 191, 272, 271, /* 3950 */ 269, 267, 189, 462, 159, 815, 815, 515, 815, 815, /* 3960 */ 512, 517, 516, 514, 513, 815, 815, 815, 815, 815, /* 3970 */ 142, 815, 815, 815, 815, 815, 815, 476, 150, 815, /* 3980 */ 815, 450, 145, 467, 157, 199, 198, 149, 191, 272, /* 3990 */ 271, 269, 267, 189, 462, 815, 815, 515, 815, 815, /* 4000 */ 512, 517, 516, 514, 513, 815, 815, 815, 142, 815, /* 4010 */ 815, 815, 815, 815, 815, 815, 815, 476, 150, 815, /* 4020 */ 815, 440, 145, 467, 157, 199, 198, 149, 191, 272, /* 4030 */ 271, 269, 267, 189, 462, 515, 815, 815, 512, 517, /* 4040 */ 516, 514, 513, 815, 815, 815, 142, 815, 815, 815, /* 4050 */ 815, 815, 815, 815, 815, 476, 150, 815, 815, 461, /* 4060 */ 145, 467, 157, 199, 198, 149, 191, 272, 271, 269, /* 4070 */ 267, 189, 462, 515, 815, 815, 512, 517, 516, 514, /* 4080 */ 513, 815, 815, 815, 142, 815, 815, 815, 815, 815, /* 4090 */ 815, 815, 815, 476, 150, 815, 815, 460, 145, 467, /* 4100 */ 157, 199, 198, 149, 191, 272, 271, 269, 267, 189, /* 4110 */ 462, 515, 815, 815, 512, 517, 516, 514, 513, 815, /* 4120 */ 815, 815, 142, 815, 815, 815, 815, 815, 815, 815, /* 4130 */ 815, 476, 150, 815, 815, 459, 145, 467, 157, 199, /* 4140 */ 198, 149, 191, 272, 271, 269, 267, 189, 462, 515, /* 4150 */ 815, 815, 512, 517, 516, 514, 513, 815, 815, 815, /* 4160 */ 142, 815, 815, 815, 815, 815, 815, 815, 815, 476, /* 4170 */ 150, 815, 815, 458, 145, 467, 157, 199, 198, 149, /* 4180 */ 191, 272, 271, 269, 267, 189, 462, 515, 815, 815, /* 4190 */ 512, 517, 516, 514, 513, 815, 815, 815, 142, 815, /* 4200 */ 815, 815, 815, 815, 815, 815, 815, 476, 150, 815, /* 4210 */ 815, 457, 145, 467, 157, 199, 198, 149, 191, 272, /* 4220 */ 271, 269, 267, 189, 462, 515, 815, 815, 512, 517, /* 4230 */ 516, 514, 513, 815, 815, 815, 142, 815, 815, 815, /* 4240 */ 815, 815, 815, 815, 815, 476, 150, 815, 815, 456, /* 4250 */ 145, 467, 157, 199, 198, 149, 191, 272, 271, 269, /* 4260 */ 267, 189, 462, 515, 815, 815, 512, 517, 516, 514, /* 4270 */ 513, 815, 815, 815, 142, 815, 815, 815, 815, 815, /* 4280 */ 815, 815, 815, 476, 150, 815, 815, 455, 145, 467, /* 4290 */ 157, 199, 198, 149, 191, 272, 271, 269, 267, 189, /* 4300 */ 462, 515, 815, 815, 512, 517, 516, 514, 513, 815, /* 4310 */ 815, 815, 142, 815, 815, 815, 815, 815, 815, 815, /* 4320 */ 815, 476, 150, 815, 815, 454, 145, 467, 157, 199, /* 4330 */ 198, 149, 191, 272, 271, 269, 267, 189, 462, 515, /* 4340 */ 815, 815, 512, 517, 516, 514, 513, 815, 815, 815, /* 4350 */ 142, 815, 815, 815, 815, 815, 815, 815, 815, 476, /* 4360 */ 150, 815, 815, 453, 145, 467, 157, 199, 198, 149, /* 4370 */ 191, 272, 271, 269, 267, 189, 462, 515, 815, 815, /* 4380 */ 512, 517, 516, 514, 513, 815, 815, 815, 142, 815, /* 4390 */ 815, 815, 815, 815, 815, 815, 815, 476, 150, 815, /* 4400 */ 815, 452, 145, 467, 157, 199, 198, 149, 191, 272, /* 4410 */ 271, 269, 267, 189, 462, 515, 815, 815, 512, 517, /* 4420 */ 516, 514, 513, 815, 815, 815, 142, 815, 815, 815, /* 4430 */ 815, 815, 815, 815, 815, 476, 150, 815, 815, 451, /* 4440 */ 145, 467, 157, 199, 198, 149, 191, 272, 271, 269, /* 4450 */ 267, 189, 462, 515, 815, 815, 512, 517, 516, 514, /* 4460 */ 513, 815, 815, 815, 815, 815, 99, 815, 815, 815, /* 4470 */ 815, 815, 815, 476, 150, 815, 815, 442, 145, 467, /* 4480 */ 157, 199, 198, 149, 191, 272, 271, 269, 267, 189, /* 4490 */ 462, 511, 510, 509, 508, 507, 506, 505, 504, 503, /* 4500 */ 502, 501, 500, 499, 498, 497, 496, 295, 294, 293, /* 4510 */ 282, 815, 278, 815, 205, 815, 815, 815, 815, 815, /* 4520 */ 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, /* 4530 */ 142, 815, 815, 815, 815, 815, 815, 511, 510, 509, /* 4540 */ 508, 507, 506, 505, 504, 503, 502, 501, 500, 499, /* 4550 */ 498, 497, 496, 295, 294, 293, 282, 515, 278, 815, /* 4560 */ 512, 517, 516, 514, 513, 815, 815, 815, 815, 815, /* 4570 */ 815, 815, 815, 815, 815, 815, 815, 476, 150, 815, /* 4580 */ 815, 815, 468, 467, 157, 199, 198, 149, 191, 272, /* 4590 */ 271, 269, 267, 189, 463, 815, 815, 815, 815, 815, /* 4600 */ 815, 511, 510, 509, 508, 507, 506, 505, 504, 503, /* 4610 */ 502, 501, 500, 499, 498, 497, 496, 295, 294, 293, /* 4620 */ 282, 142, 278, 815, 814, 66, 297, 523, 128, 815, /* 4630 */ 319, 108, 110, 815, 95, 129, 815, 815, 815, 815, /* 4640 */ 815, 815, 815, 94, 815, 399, 815, 815, 515, 252, /* 4650 */ 815, 512, 517, 516, 514, 513, 815, 815, 815, 515, /* 4660 */ 815, 815, 512, 517, 516, 514, 513, 815, 476, 150, /* 4670 */ 142, 815, 815, 468, 467, 157, 199, 198, 149, 191, /* 4680 */ 272, 271, 269, 267, 188, 815, 815, 815, 815, 815, /* 4690 */ 815, 815, 815, 815, 815, 815, 815, 515, 815, 815, /* 4700 */ 512, 517, 516, 514, 513, 815, 815, 815, 815, 815, /* 4710 */ 142, 815, 815, 815, 815, 815, 815, 476, 150, 815, /* 4720 */ 116, 815, 468, 467, 157, 199, 198, 149, 191, 272, /* 4730 */ 271, 269, 265, 412, 815, 815, 815, 515, 815, 815, /* 4740 */ 512, 517, 516, 514, 513, 142, 815, 515, 815, 815, /* 4750 */ 512, 517, 516, 514, 513, 815, 815, 476, 150, 815, /* 4760 */ 815, 815, 468, 467, 157, 199, 198, 149, 191, 272, /* 4770 */ 271, 266, 515, 815, 815, 512, 517, 516, 514, 513, /* 4780 */ 815, 142, 815, 815, 815, 815, 815, 815, 815, 815, /* 4790 */ 815, 815, 476, 150, 815, 815, 815, 468, 467, 157, /* 4800 */ 199, 198, 149, 191, 272, 268, 815, 815, 515, 815, /* 4810 */ 815, 512, 517, 516, 514, 513, 815, 815, 815, 815, /* 4820 */ 815, 815, 815, 815, 815, 815, 815, 815, 476, 150, /* 4830 */ 815, 815, 815, 468, 467, 157, 199, 198, 149, 191, /* 4840 */ 270, 815, 815, 815, 524, 523, 128, 815, 319, 108, /* 4850 */ 110, 815, 95, 129, 815, 815, 815, 815, 142, 815, /* 4860 */ 815, 94, 815, 399, 815, 815, 815, 252, 815, 815, /* 4870 */ 142, 815, 815, 815, 815, 815, 815, 515, 815, 815, /* 4880 */ 512, 517, 516, 514, 513, 515, 815, 815, 512, 517, /* 4890 */ 516, 514, 513, 815, 815, 815, 815, 515, 815, 815, /* 4900 */ 512, 517, 516, 514, 513, 476, 150, 815, 142, 815, /* 4910 */ 468, 467, 157, 199, 198, 149, 190, 476, 150, 815, /* 4920 */ 815, 815, 468, 467, 157, 199, 198, 148, 815, 815, /* 4930 */ 815, 815, 815, 815, 815, 515, 815, 815, 512, 517, /* 4940 */ 516, 514, 513, 815, 142, 815, 815, 815, 815, 815, /* 4950 */ 815, 815, 815, 815, 815, 476, 150, 815, 815, 815, /* 4960 */ 468, 467, 157, 199, 198, 147, 815, 815, 815, 815, /* 4970 */ 815, 515, 815, 815, 512, 517, 516, 514, 513, 142, /* 4980 */ 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, /* 4990 */ 815, 476, 150, 815, 815, 815, 468, 467, 157, 199, /* 5000 */ 195, 815, 815, 815, 815, 815, 515, 815, 815, 512, /* 5010 */ 517, 516, 514, 513, 142, 815, 815, 815, 815, 815, /* 5020 */ 815, 815, 815, 815, 142, 815, 476, 150, 815, 815, /* 5030 */ 815, 468, 467, 157, 199, 194, 815, 815, 815, 815, /* 5040 */ 815, 515, 815, 815, 512, 517, 516, 514, 513, 815, /* 5050 */ 815, 515, 815, 815, 512, 517, 516, 514, 513, 142, /* 5060 */ 815, 476, 150, 815, 815, 815, 468, 467, 157, 199, /* 5070 */ 193, 476, 150, 815, 815, 815, 468, 467, 157, 199, /* 5080 */ 192, 815, 815, 815, 815, 815, 515, 815, 142, 512, /* 5090 */ 517, 516, 514, 513, 815, 815, 815, 142, 815, 815, /* 5100 */ 815, 815, 815, 815, 815, 815, 476, 150, 815, 815, /* 5110 */ 815, 468, 467, 157, 197, 515, 815, 815, 512, 517, /* 5120 */ 516, 514, 513, 815, 515, 142, 815, 512, 517, 516, /* 5130 */ 514, 513, 815, 815, 815, 476, 150, 815, 815, 815, /* 5140 */ 468, 467, 157, 196, 476, 150, 815, 815, 815, 468, /* 5150 */ 467, 156, 515, 815, 815, 512, 517, 516, 514, 513, /* 5160 */ 208, 815, 815, 815, 815, 203, 210, 301, 98, 815, /* 5170 */ 815, 815, 476, 150, 142, 815, 815, 468, 467, 155, /* 5180 */ 815, 815, 815, 815, 142, 815, 815, 515, 815, 815, /* 5190 */ 512, 517, 516, 514, 513, 815, 815, 815, 815, 815, /* 5200 */ 815, 515, 815, 815, 512, 517, 516, 514, 513, 815, /* 5210 */ 815, 515, 142, 815, 512, 517, 516, 514, 513, 815, /* 5220 */ 815, 476, 150, 142, 815, 815, 468, 472, 815, 815, /* 5230 */ 815, 476, 150, 815, 815, 815, 468, 471, 815, 515, /* 5240 */ 815, 815, 512, 517, 516, 514, 513, 142, 815, 815, /* 5250 */ 515, 815, 815, 512, 517, 516, 514, 513, 142, 476, /* 5260 */ 150, 815, 815, 815, 468, 470, 815, 815, 815, 815, /* 5270 */ 476, 150, 815, 815, 515, 468, 469, 512, 517, 516, /* 5280 */ 514, 513, 142, 815, 815, 515, 815, 815, 512, 517, /* 5290 */ 516, 514, 513, 142, 476, 150, 815, 815, 815, 468, /* 5300 */ 466, 815, 815, 815, 815, 476, 150, 815, 815, 515, /* 5310 */ 468, 465, 512, 517, 516, 514, 513, 142, 815, 815, /* 5320 */ 515, 815, 815, 512, 517, 516, 514, 513, 815, 476, /* 5330 */ 150, 815, 815, 815, 468, 464, 815, 815, 815, 815, /* 5340 */ 476, 150, 815, 815, 515, 468, 445, 512, 517, 516, /* 5350 */ 514, 513, 815, 815, 142, 815, 815, 815, 815, 815, /* 5360 */ 815, 815, 815, 815, 476, 150, 815, 815, 815, 449, /* 5370 */ 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, /* 5380 */ 815, 515, 815, 815, 512, 517, 516, 514, 513, 815, /* 5390 */ 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, /* 5400 */ 815, 476, 150, 815, 815, 815, 473, }; static const YYCODETYPE yy_lookahead[] = { /* 0 */ 27, 28, 35, 36, 37, 38, 33, 34, 35, 36, /* 10 */ 38, 38, 40, 40, 2, 142, 43, 44, 45, 46, /* 20 */ 147, 148, 29, 30, 31, 52, 66, 154, 155, 56, /* 30 */ 27, 28, 59, 60, 61, 62, 63, 64, 65, 66, /* 40 */ 67, 83, 1, 70, 71, 72, 73, 74, 75, 76, /* 50 */ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, /* 60 */ 87, 88, 89, 90, 91, 53, 54, 55, 56, 57, /* 70 */ 58, 98, 99, 100, 101, 102, 103, 117, 118, 106, /* 80 */ 39, 108, 21, 22, 23, 24, 38, 114, 83, 133, /* 90 */ 27, 28, 119, 120, 121, 122, 33, 34, 35, 36, /* 100 */ 144, 38, 146, 40, 2, 142, 43, 44, 45, 46, /* 110 */ 108, 148, 19, 20, 148, 52, 114, 154, 155, 56, /* 120 */ 154, 155, 59, 60, 61, 62, 63, 64, 65, 66, /* 130 */ 67, 25, 26, 70, 71, 72, 73, 74, 75, 76, /* 140 */ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, /* 150 */ 87, 88, 89, 90, 91, 21, 54, 55, 56, 57, /* 160 */ 58, 98, 99, 100, 101, 102, 103, 101, 102, 106, /* 170 */ 136, 108, 106, 101, 102, 141, 142, 114, 106, 133, /* 180 */ 27, 28, 119, 120, 121, 122, 33, 34, 35, 36, /* 190 */ 144, 38, 146, 40, 142, 148, 43, 44, 45, 46, /* 200 */ 148, 154, 155, 23, 148, 52, 154, 155, 133, 56, /* 210 */ 154, 155, 59, 60, 61, 62, 63, 64, 65, 144, /* 220 */ 67, 146, 1, 70, 71, 72, 73, 74, 75, 76, /* 230 */ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, /* 240 */ 87, 88, 89, 90, 91, 14, 46, 157, 158, 159, /* 250 */ 23, 98, 99, 100, 101, 102, 103, 148, 1, 106, /* 260 */ 132, 108, 41, 154, 155, 13, 14, 114, 68, 69, /* 270 */ 27, 28, 119, 120, 121, 122, 33, 34, 35, 36, /* 280 */ 152, 37, 1, 40, 53, 41, 43, 159, 45, 46, /* 290 */ 162, 163, 164, 165, 166, 52, 101, 102, 133, 56, /* 300 */ 43, 106, 59, 60, 61, 62, 63, 64, 1, 144, /* 310 */ 67, 146, 1, 70, 71, 72, 73, 74, 75, 76, /* 320 */ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, /* 330 */ 87, 88, 89, 90, 91, 68, 69, 127, 136, 129, /* 340 */ 130, 131, 132, 141, 142, 1, 181, 66, 41, 1, /* 350 */ 39, 39, 40, 143, 108, 145, 23, 23, 43, 149, /* 360 */ 114, 46, 119, 120, 121, 122, 156, 1, 1, 159, /* 370 */ 40, 41, 162, 163, 164, 165, 166, 167, 168, 1, /* 380 */ 170, 171, 172, 173, 1, 175, 176, 43, 1, 179, /* 390 */ 180, 43, 1, 183, 184, 185, 186, 187, 188, 189, /* 400 */ 190, 191, 192, 193, 194, 195, 196, 127, 41, 129, /* 410 */ 130, 131, 132, 79, 80, 81, 82, 83, 84, 85, /* 420 */ 86, 87, 1, 143, 133, 145, 43, 43, 41, 149, /* 430 */ 23, 53, 66, 23, 43, 40, 156, 146, 1, 159, /* 440 */ 1, 46, 162, 163, 164, 165, 166, 167, 168, 65, /* 450 */ 170, 171, 172, 173, 43, 175, 176, 46, 2, 179, /* 460 */ 180, 2, 41, 183, 184, 185, 186, 187, 188, 189, /* 470 */ 190, 191, 192, 193, 194, 195, 196, 21, 41, 83, /* 480 */ 21, 127, 43, 129, 130, 131, 132, 79, 80, 81, /* 490 */ 82, 83, 84, 85, 86, 87, 136, 143, 23, 145, /* 500 */ 174, 23, 142, 149, 178, 117, 118, 147, 148, 53, /* 510 */ 156, 83, 53, 159, 154, 155, 162, 163, 164, 165, /* 520 */ 166, 167, 168, 23, 170, 171, 172, 173, 1, 175, /* 530 */ 176, 1, 132, 179, 180, 135, 21, 183, 184, 185, /* 540 */ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, /* 550 */ 196, 127, 133, 129, 130, 131, 132, 1, 1, 159, /* 560 */ 1, 1, 162, 163, 164, 165, 166, 143, 23, 145, /* 570 */ 43, 41, 153, 149, 79, 80, 81, 82, 83, 84, /* 580 */ 156, 86, 87, 159, 1, 21, 162, 163, 164, 165, /* 590 */ 166, 1, 168, 1, 170, 171, 172, 173, 41, 175, /* 600 */ 176, 41, 43, 179, 180, 132, 1, 183, 184, 185, /* 610 */ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, /* 620 */ 196, 2, 141, 142, 90, 127, 43, 129, 130, 131, /* 630 */ 132, 41, 159, 41, 1, 162, 163, 164, 165, 166, /* 640 */ 1, 143, 90, 145, 141, 142, 1, 149, 43, 158, /* 650 */ 159, 90, 23, 18, 156, 17, 16, 159, 15, 46, /* 660 */ 162, 163, 164, 165, 166, 40, 168, 46, 170, 171, /* 670 */ 172, 173, 53, 175, 176, 132, 46, 179, 180, 69, /* 680 */ 41, 183, 184, 185, 186, 187, 188, 189, 190, 191, /* 690 */ 192, 193, 194, 195, 196, 127, 41, 129, 130, 131, /* 700 */ 132, 40, 159, 46, 41, 162, 163, 164, 165, 166, /* 710 */ 1, 143, 68, 145, 43, 65, 46, 149, 46, 46, /* 720 */ 43, 43, 43, 40, 156, 41, 90, 159, 39, 41, /* 730 */ 162, 163, 164, 165, 166, 39, 168, 90, 170, 171, /* 740 */ 172, 173, 39, 175, 176, 39, 39, 179, 180, 132, /* 750 */ 39, 183, 184, 185, 186, 187, 188, 189, 190, 191, /* 760 */ 192, 193, 194, 195, 196, 39, 108, 108, 39, 127, /* 770 */ 108, 129, 130, 131, 132, 39, 159, 108, 39, 162, /* 780 */ 163, 164, 165, 166, 39, 143, 101, 145, 114, 114, /* 790 */ 40, 149, 102, 40, 43, 40, 42, 40, 156, 65, /* 800 */ 53, 159, 46, 40, 162, 163, 164, 165, 166, 41, /* 810 */ 168, 1, 170, 171, 172, 173, 46, 175, 176, 46, /* 820 */ 51, 179, 180, 49, 46, 183, 184, 185, 186, 187, /* 830 */ 188, 189, 190, 191, 192, 193, 194, 195, 196, 127, /* 840 */ 40, 129, 130, 131, 132, 41, 133, 46, 181, 40, /* 850 */ 133, 53, 155, 154, 2, 143, 53, 145, 142, 136, /* 860 */ 53, 149, 181, 177, 129, 40, 136, 65, 156, 142, /* 870 */ 142, 159, 129, 142, 162, 163, 164, 165, 166, 142, /* 880 */ 168, 159, 170, 171, 172, 173, 178, 175, 176, 169, /* 890 */ 53, 179, 180, 46, 136, 183, 184, 185, 186, 187, /* 900 */ 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, /* 910 */ 197, 159, 197, 127, 197, 129, 130, 131, 132, 197, /* 920 */ 197, 197, 197, 197, 197, 197, 197, 197, 197, 143, /* 930 */ 197, 145, 197, 197, 197, 149, 197, 197, 197, 197, /* 940 */ 197, 197, 156, 197, 197, 159, 197, 197, 162, 163, /* 950 */ 164, 165, 166, 197, 168, 197, 170, 171, 172, 173, /* 960 */ 197, 175, 176, 197, 197, 179, 180, 197, 197, 183, /* 970 */ 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, /* 980 */ 194, 195, 196, 127, 197, 129, 130, 131, 132, 197, /* 990 */ 197, 197, 197, 197, 197, 197, 197, 197, 197, 143, /* 1000 */ 197, 145, 197, 197, 197, 149, 197, 197, 197, 197, /* 1010 */ 197, 197, 156, 197, 197, 159, 197, 197, 162, 163, /* 1020 */ 164, 165, 166, 197, 168, 197, 170, 171, 172, 173, /* 1030 */ 197, 175, 176, 197, 197, 179, 180, 197, 197, 183, /* 1040 */ 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, /* 1050 */ 194, 195, 196, 197, 197, 197, 197, 127, 197, 129, /* 1060 */ 130, 131, 132, 197, 197, 197, 197, 197, 197, 197, /* 1070 */ 197, 197, 197, 143, 197, 145, 197, 197, 197, 149, /* 1080 */ 197, 197, 197, 197, 197, 197, 156, 197, 197, 159, /* 1090 */ 197, 197, 162, 163, 164, 165, 166, 197, 168, 197, /* 1100 */ 170, 171, 172, 173, 197, 175, 176, 197, 197, 179, /* 1110 */ 180, 197, 197, 183, 184, 185, 186, 187, 188, 189, /* 1120 */ 190, 191, 192, 193, 194, 195, 196, 127, 197, 129, /* 1130 */ 130, 131, 132, 197, 197, 197, 197, 197, 197, 197, /* 1140 */ 197, 197, 197, 143, 197, 145, 197, 197, 197, 149, /* 1150 */ 197, 197, 197, 197, 197, 197, 156, 197, 197, 159, /* 1160 */ 197, 197, 162, 163, 164, 165, 166, 197, 168, 197, /* 1170 */ 170, 171, 172, 173, 197, 175, 176, 197, 197, 179, /* 1180 */ 180, 197, 197, 183, 184, 185, 186, 187, 188, 189, /* 1190 */ 190, 191, 192, 193, 194, 195, 196, 197, 197, 197, /* 1200 */ 197, 127, 197, 129, 130, 131, 132, 197, 197, 197, /* 1210 */ 197, 197, 197, 197, 197, 197, 197, 143, 197, 145, /* 1220 */ 197, 197, 197, 149, 197, 197, 197, 197, 197, 197, /* 1230 */ 156, 197, 197, 159, 197, 197, 162, 163, 164, 165, /* 1240 */ 166, 197, 168, 197, 170, 171, 172, 173, 197, 175, /* 1250 */ 176, 197, 197, 179, 180, 197, 197, 183, 184, 185, /* 1260 */ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, /* 1270 */ 196, 127, 197, 129, 130, 131, 132, 197, 197, 197, /* 1280 */ 197, 197, 197, 197, 197, 197, 197, 143, 197, 145, /* 1290 */ 197, 197, 197, 149, 197, 197, 197, 197, 197, 197, /* 1300 */ 156, 197, 197, 159, 197, 197, 162, 163, 164, 165, /* 1310 */ 166, 197, 168, 197, 170, 171, 172, 173, 197, 175, /* 1320 */ 176, 197, 197, 179, 180, 197, 197, 183, 184, 185, /* 1330 */ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, /* 1340 */ 196, 197, 197, 197, 197, 127, 197, 129, 130, 131, /* 1350 */ 132, 197, 197, 197, 197, 197, 197, 197, 197, 197, /* 1360 */ 197, 143, 197, 145, 197, 197, 197, 149, 197, 197, /* 1370 */ 197, 197, 197, 197, 156, 197, 197, 159, 197, 197, /* 1380 */ 162, 163, 164, 165, 166, 197, 168, 197, 170, 171, /* 1390 */ 172, 173, 197, 175, 176, 197, 197, 179, 180, 197, /* 1400 */ 197, 183, 184, 185, 186, 187, 188, 189, 190, 191, /* 1410 */ 192, 193, 194, 195, 196, 127, 197, 129, 130, 131, /* 1420 */ 132, 197, 197, 197, 197, 197, 197, 197, 197, 197, /* 1430 */ 197, 143, 197, 145, 197, 197, 197, 149, 197, 197, /* 1440 */ 197, 197, 197, 197, 156, 197, 197, 159, 197, 197, /* 1450 */ 162, 163, 164, 165, 166, 197, 168, 197, 170, 171, /* 1460 */ 172, 173, 197, 175, 176, 197, 197, 179, 180, 197, /* 1470 */ 197, 183, 184, 185, 186, 187, 188, 189, 190, 191, /* 1480 */ 192, 193, 194, 195, 196, 197, 197, 197, 197, 127, /* 1490 */ 197, 129, 130, 131, 132, 197, 197, 197, 197, 197, /* 1500 */ 197, 197, 197, 197, 197, 143, 197, 145, 197, 197, /* 1510 */ 197, 149, 197, 197, 197, 197, 197, 197, 156, 197, /* 1520 */ 197, 159, 197, 197, 162, 163, 164, 165, 166, 197, /* 1530 */ 168, 197, 170, 171, 172, 173, 197, 175, 176, 197, /* 1540 */ 197, 179, 180, 197, 197, 183, 184, 185, 186, 187, /* 1550 */ 188, 189, 190, 191, 192, 193, 194, 195, 196, 127, /* 1560 */ 197, 129, 130, 131, 132, 197, 197, 197, 197, 197, /* 1570 */ 197, 197, 197, 197, 197, 143, 197, 145, 197, 197, /* 1580 */ 197, 149, 197, 197, 197, 197, 197, 197, 156, 197, /* 1590 */ 197, 159, 197, 197, 162, 163, 164, 165, 166, 197, /* 1600 */ 168, 197, 170, 171, 172, 173, 197, 175, 176, 197, /* 1610 */ 197, 179, 180, 197, 197, 183, 184, 185, 186, 187, /* 1620 */ 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, /* 1630 */ 197, 197, 197, 127, 197, 129, 130, 131, 132, 197, /* 1640 */ 197, 197, 197, 197, 197, 197, 197, 197, 197, 143, /* 1650 */ 197, 145, 197, 197, 197, 149, 197, 197, 197, 197, /* 1660 */ 197, 197, 156, 197, 197, 159, 197, 197, 162, 163, /* 1670 */ 164, 165, 166, 197, 168, 197, 170, 171, 172, 173, /* 1680 */ 197, 175, 176, 197, 197, 179, 180, 197, 197, 183, /* 1690 */ 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, /* 1700 */ 194, 195, 196, 127, 197, 129, 130, 131, 132, 197, /* 1710 */ 197, 197, 197, 197, 197, 197, 197, 197, 197, 143, /* 1720 */ 197, 145, 197, 197, 197, 149, 197, 197, 197, 197, /* 1730 */ 197, 197, 156, 0, 197, 159, 197, 197, 162, 163, /* 1740 */ 164, 165, 166, 197, 168, 197, 170, 171, 172, 173, /* 1750 */ 197, 175, 176, 197, 197, 179, 180, 197, 197, 183, /* 1760 */ 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, /* 1770 */ 194, 195, 196, 197, 197, 197, 197, 44, 45, 197, /* 1780 */ 47, 48, 197, 197, 197, 52, 197, 197, 197, 56, /* 1790 */ 197, 197, 59, 60, 61, 62, 63, 64, 197, 197, /* 1800 */ 67, 197, 197, 70, 71, 72, 73, 74, 75, 76, /* 1810 */ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, /* 1820 */ 87, 88, 89, 197, 91, 27, 28, 197, 197, 197, /* 1830 */ 197, 33, 34, 35, 36, 197, 197, 39, 40, 197, /* 1840 */ 197, 197, 197, 197, 46, 197, 197, 27, 28, 197, /* 1850 */ 197, 197, 197, 33, 34, 35, 36, 197, 197, 197, /* 1860 */ 40, 41, 197, 197, 197, 197, 46, 197, 70, 71, /* 1870 */ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, /* 1880 */ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, /* 1890 */ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, /* 1900 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, /* 1910 */ 90, 91, 197, 197, 197, 27, 28, 119, 120, 121, /* 1920 */ 122, 33, 34, 35, 36, 197, 197, 197, 40, 197, /* 1930 */ 197, 43, 197, 197, 46, 197, 197, 27, 28, 119, /* 1940 */ 120, 121, 122, 33, 34, 35, 36, 197, 197, 197, /* 1950 */ 40, 197, 197, 43, 197, 197, 46, 197, 70, 71, /* 1960 */ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, /* 1970 */ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, /* 1980 */ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, /* 1990 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, /* 2000 */ 90, 91, 197, 197, 197, 27, 28, 119, 120, 121, /* 2010 */ 122, 33, 34, 35, 36, 197, 197, 197, 40, 41, /* 2020 */ 197, 197, 197, 197, 46, 197, 197, 27, 28, 119, /* 2030 */ 120, 121, 122, 33, 34, 35, 36, 197, 197, 197, /* 2040 */ 40, 41, 197, 197, 197, 197, 46, 197, 70, 71, /* 2050 */ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, /* 2060 */ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, /* 2070 */ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, /* 2080 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, /* 2090 */ 90, 91, 197, 197, 197, 27, 28, 119, 120, 121, /* 2100 */ 122, 33, 34, 35, 36, 197, 197, 197, 40, 197, /* 2110 */ 197, 43, 197, 197, 46, 197, 197, 27, 28, 119, /* 2120 */ 120, 121, 122, 33, 34, 35, 36, 197, 197, 197, /* 2130 */ 40, 41, 197, 197, 197, 197, 46, 197, 70, 71, /* 2140 */ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, /* 2150 */ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, /* 2160 */ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, /* 2170 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, /* 2180 */ 90, 91, 197, 197, 197, 27, 28, 119, 120, 121, /* 2190 */ 122, 33, 34, 35, 36, 197, 197, 197, 40, 41, /* 2200 */ 197, 197, 197, 197, 46, 197, 197, 27, 28, 119, /* 2210 */ 120, 121, 122, 33, 34, 35, 36, 197, 197, 197, /* 2220 */ 40, 197, 197, 43, 197, 197, 46, 197, 70, 71, /* 2230 */ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, /* 2240 */ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, /* 2250 */ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, /* 2260 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, /* 2270 */ 90, 91, 197, 197, 197, 27, 28, 119, 120, 121, /* 2280 */ 122, 33, 34, 35, 36, 197, 197, 197, 40, 41, /* 2290 */ 197, 197, 197, 197, 46, 197, 197, 27, 28, 119, /* 2300 */ 120, 121, 122, 33, 34, 35, 36, 197, 197, 197, /* 2310 */ 40, 41, 197, 197, 197, 197, 46, 197, 70, 71, /* 2320 */ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, /* 2330 */ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, /* 2340 */ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, /* 2350 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, /* 2360 */ 90, 91, 197, 197, 197, 27, 28, 119, 120, 121, /* 2370 */ 122, 33, 34, 35, 36, 197, 197, 197, 40, 197, /* 2380 */ 197, 197, 197, 197, 46, 197, 197, 197, 197, 119, /* 2390 */ 120, 121, 122, 197, 197, 197, 197, 197, 197, 197, /* 2400 */ 197, 197, 197, 65, 197, 197, 197, 197, 70, 71, /* 2410 */ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, /* 2420 */ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, /* 2430 */ 197, 27, 28, 197, 132, 197, 197, 33, 34, 35, /* 2440 */ 36, 197, 197, 141, 40, 197, 197, 197, 197, 197, /* 2450 */ 46, 197, 150, 151, 152, 197, 197, 119, 120, 121, /* 2460 */ 122, 159, 197, 197, 162, 163, 164, 165, 166, 65, /* 2470 */ 197, 197, 197, 197, 70, 71, 72, 73, 74, 75, /* 2480 */ 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, /* 2490 */ 86, 87, 88, 89, 90, 91, 197, 27, 28, 197, /* 2500 */ 197, 197, 197, 33, 34, 35, 36, 197, 197, 197, /* 2510 */ 40, 197, 197, 197, 197, 197, 46, 197, 197, 197, /* 2520 */ 197, 197, 197, 119, 120, 121, 122, 2, 3, 4, /* 2530 */ 5, 6, 7, 8, 9, 10, 11, 12, 197, 197, /* 2540 */ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, /* 2550 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, /* 2560 */ 90, 91, 197, 197, 197, 197, 197, 197, 27, 28, /* 2570 */ 197, 132, 197, 197, 33, 34, 35, 36, 139, 140, /* 2580 */ 197, 40, 197, 197, 197, 197, 197, 46, 197, 119, /* 2590 */ 120, 121, 122, 197, 197, 197, 197, 197, 159, 197, /* 2600 */ 197, 162, 163, 164, 165, 166, 197, 197, 197, 197, /* 2610 */ 197, 70, 71, 72, 73, 74, 75, 76, 77, 78, /* 2620 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, /* 2630 */ 89, 90, 91, 197, 92, 93, 94, 95, 96, 97, /* 2640 */ 197, 197, 197, 197, 197, 197, 104, 105, 197, 107, /* 2650 */ 197, 109, 110, 111, 112, 113, 197, 115, 116, 197, /* 2660 */ 119, 120, 121, 122, 44, 45, 197, 47, 48, 197, /* 2670 */ 197, 197, 52, 197, 197, 197, 56, 197, 197, 59, /* 2680 */ 60, 61, 62, 63, 64, 197, 197, 67, 197, 197, /* 2690 */ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, /* 2700 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, /* 2710 */ 45, 91, 197, 197, 197, 197, 197, 52, 197, 197, /* 2720 */ 197, 56, 197, 197, 59, 60, 61, 62, 63, 64, /* 2730 */ 197, 197, 197, 197, 197, 70, 71, 72, 73, 74, /* 2740 */ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, /* 2750 */ 85, 86, 87, 88, 89, 127, 91, 197, 197, 131, /* 2760 */ 132, 197, 197, 197, 197, 197, 197, 197, 197, 132, /* 2770 */ 197, 143, 197, 145, 197, 197, 197, 149, 141, 197, /* 2780 */ 197, 197, 197, 197, 156, 197, 197, 159, 151, 152, /* 2790 */ 162, 163, 164, 165, 166, 197, 159, 197, 197, 162, /* 2800 */ 163, 164, 165, 166, 197, 197, 197, 179, 180, 197, /* 2810 */ 197, 183, 184, 185, 186, 187, 188, 189, 190, 191, /* 2820 */ 192, 193, 194, 195, 196, 197, 54, 55, 56, 57, /* 2830 */ 58, 197, 197, 197, 197, 197, 197, 197, 66, 197, /* 2840 */ 197, 197, 70, 71, 72, 73, 74, 75, 76, 77, /* 2850 */ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, /* 2860 */ 88, 89, 197, 91, 197, 197, 54, 55, 56, 57, /* 2870 */ 58, 197, 197, 197, 197, 197, 197, 197, 197, 197, /* 2880 */ 197, 197, 70, 71, 72, 73, 74, 75, 76, 77, /* 2890 */ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, /* 2900 */ 88, 89, 47, 91, 49, 50, 51, 52, 197, 197, /* 2910 */ 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, /* 2920 */ 197, 197, 197, 197, 197, 70, 71, 72, 73, 74, /* 2930 */ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, /* 2940 */ 85, 86, 87, 88, 89, 197, 91, 49, 50, 51, /* 2950 */ 52, 197, 197, 197, 197, 197, 197, 197, 197, 197, /* 2960 */ 197, 197, 197, 197, 197, 197, 197, 197, 70, 71, /* 2970 */ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, /* 2980 */ 82, 83, 84, 85, 86, 87, 88, 89, 132, 91, /* 2990 */ 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, /* 3000 */ 132, 197, 197, 197, 197, 137, 138, 139, 140, 197, /* 3010 */ 197, 197, 156, 197, 197, 159, 197, 161, 162, 163, /* 3020 */ 164, 165, 166, 197, 197, 197, 197, 159, 197, 132, /* 3030 */ 162, 163, 164, 165, 166, 179, 180, 197, 197, 183, /* 3040 */ 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, /* 3050 */ 194, 195, 196, 156, 197, 197, 159, 160, 197, 162, /* 3060 */ 163, 164, 165, 166, 197, 197, 197, 197, 197, 197, /* 3070 */ 132, 197, 197, 197, 197, 197, 179, 180, 197, 197, /* 3080 */ 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, /* 3090 */ 193, 194, 195, 196, 156, 197, 197, 159, 160, 197, /* 3100 */ 162, 163, 164, 165, 166, 197, 197, 197, 197, 197, /* 3110 */ 197, 132, 197, 197, 197, 197, 197, 179, 180, 197, /* 3120 */ 197, 183, 184, 185, 186, 187, 188, 189, 190, 191, /* 3130 */ 192, 193, 194, 195, 196, 156, 197, 197, 159, 160, /* 3140 */ 197, 162, 163, 164, 165, 166, 197, 197, 197, 197, /* 3150 */ 197, 197, 132, 197, 197, 197, 197, 197, 179, 180, /* 3160 */ 197, 197, 183, 184, 185, 186, 187, 188, 189, 190, /* 3170 */ 191, 192, 193, 194, 195, 196, 156, 197, 197, 159, /* 3180 */ 197, 197, 162, 163, 164, 165, 166, 197, 197, 197, /* 3190 */ 197, 197, 197, 132, 197, 197, 197, 197, 197, 179, /* 3200 */ 180, 197, 197, 183, 184, 185, 186, 187, 188, 189, /* 3210 */ 190, 191, 192, 193, 194, 195, 196, 156, 197, 197, /* 3220 */ 159, 197, 197, 162, 163, 164, 165, 166, 197, 197, /* 3230 */ 197, 197, 197, 197, 132, 197, 197, 197, 197, 197, /* 3240 */ 179, 180, 197, 197, 183, 184, 185, 186, 187, 188, /* 3250 */ 189, 190, 191, 192, 193, 194, 195, 196, 156, 197, /* 3260 */ 197, 159, 197, 197, 162, 163, 164, 165, 166, 197, /* 3270 */ 197, 197, 197, 197, 197, 132, 197, 197, 197, 197, /* 3280 */ 197, 179, 180, 197, 197, 183, 184, 185, 186, 187, /* 3290 */ 188, 189, 190, 191, 192, 193, 194, 195, 196, 156, /* 3300 */ 197, 197, 159, 197, 197, 162, 163, 164, 165, 166, /* 3310 */ 197, 197, 197, 197, 197, 197, 132, 197, 197, 197, /* 3320 */ 197, 197, 179, 180, 197, 197, 183, 184, 185, 186, /* 3330 */ 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, /* 3340 */ 156, 197, 197, 159, 197, 197, 162, 163, 164, 165, /* 3350 */ 166, 197, 197, 197, 197, 197, 197, 132, 197, 197, /* 3360 */ 197, 197, 197, 179, 180, 197, 197, 183, 184, 185, /* 3370 */ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, /* 3380 */ 196, 156, 197, 197, 159, 197, 197, 162, 163, 164, /* 3390 */ 165, 166, 197, 197, 197, 197, 197, 197, 132, 197, /* 3400 */ 197, 197, 197, 197, 179, 180, 197, 197, 183, 184, /* 3410 */ 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, /* 3420 */ 195, 196, 156, 197, 197, 159, 197, 197, 162, 163, /* 3430 */ 164, 165, 166, 197, 197, 197, 197, 197, 197, 132, /* 3440 */ 197, 197, 197, 197, 197, 179, 180, 197, 197, 183, /* 3450 */ 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, /* 3460 */ 194, 195, 196, 156, 197, 197, 159, 197, 197, 162, /* 3470 */ 163, 164, 165, 166, 197, 197, 197, 197, 197, 197, /* 3480 */ 132, 197, 197, 197, 197, 197, 179, 180, 197, 197, /* 3490 */ 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, /* 3500 */ 193, 194, 195, 196, 156, 197, 197, 159, 197, 197, /* 3510 */ 162, 163, 164, 165, 166, 197, 197, 197, 197, 197, /* 3520 */ 132, 197, 197, 197, 197, 197, 197, 179, 180, 197, /* 3530 */ 197, 183, 184, 185, 186, 187, 188, 189, 190, 191, /* 3540 */ 192, 193, 194, 195, 196, 197, 197, 159, 197, 197, /* 3550 */ 162, 163, 164, 165, 166, 197, 197, 197, 197, 197, /* 3560 */ 197, 132, 197, 197, 197, 197, 197, 179, 180, 197, /* 3570 */ 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, /* 3580 */ 192, 193, 194, 195, 196, 156, 197, 197, 159, 197, /* 3590 */ 197, 162, 163, 164, 165, 166, 197, 197, 197, 197, /* 3600 */ 197, 197, 132, 197, 197, 197, 197, 197, 179, 180, /* 3610 */ 197, 197, 183, 184, 185, 186, 187, 188, 189, 190, /* 3620 */ 191, 192, 193, 194, 195, 196, 156, 197, 197, 159, /* 3630 */ 197, 197, 162, 163, 164, 165, 166, 197, 197, 197, /* 3640 */ 197, 197, 197, 132, 197, 197, 197, 197, 197, 179, /* 3650 */ 180, 197, 197, 183, 184, 185, 186, 187, 188, 189, /* 3660 */ 190, 191, 192, 193, 194, 195, 196, 156, 197, 197, /* 3670 */ 159, 197, 197, 162, 163, 164, 165, 166, 197, 197, /* 3680 */ 197, 197, 197, 197, 132, 197, 197, 197, 197, 197, /* 3690 */ 179, 180, 197, 197, 183, 184, 185, 186, 187, 188, /* 3700 */ 189, 190, 191, 192, 193, 194, 195, 196, 156, 197, /* 3710 */ 197, 159, 197, 197, 162, 163, 164, 165, 166, 197, /* 3720 */ 197, 197, 197, 197, 197, 132, 197, 197, 197, 197, /* 3730 */ 197, 179, 180, 197, 197, 183, 184, 185, 186, 187, /* 3740 */ 188, 189, 190, 191, 192, 193, 194, 195, 196, 156, /* 3750 */ 197, 197, 159, 197, 197, 162, 163, 164, 165, 166, /* 3760 */ 197, 197, 197, 197, 197, 197, 132, 197, 197, 197, /* 3770 */ 197, 197, 179, 180, 197, 197, 183, 184, 185, 186, /* 3780 */ 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, /* 3790 */ 156, 197, 197, 159, 197, 197, 162, 163, 164, 165, /* 3800 */ 166, 197, 197, 197, 197, 197, 197, 132, 197, 197, /* 3810 */ 197, 197, 197, 179, 180, 197, 197, 183, 184, 185, /* 3820 */ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, /* 3830 */ 196, 156, 197, 197, 159, 197, 197, 162, 163, 164, /* 3840 */ 165, 166, 197, 197, 197, 197, 197, 197, 132, 197, /* 3850 */ 197, 197, 197, 197, 179, 180, 197, 197, 183, 184, /* 3860 */ 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, /* 3870 */ 195, 196, 156, 197, 197, 159, 197, 197, 162, 163, /* 3880 */ 164, 165, 166, 197, 197, 197, 197, 197, 197, 132, /* 3890 */ 197, 197, 197, 197, 197, 179, 180, 197, 197, 183, /* 3900 */ 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, /* 3910 */ 194, 195, 196, 156, 197, 197, 159, 197, 197, 162, /* 3920 */ 163, 164, 165, 166, 197, 197, 197, 197, 197, 197, /* 3930 */ 132, 197, 197, 197, 197, 197, 179, 180, 197, 197, /* 3940 */ 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, /* 3950 */ 193, 194, 195, 196, 156, 197, 197, 159, 197, 197, /* 3960 */ 162, 163, 164, 165, 166, 197, 197, 197, 197, 197, /* 3970 */ 132, 197, 197, 197, 197, 197, 197, 179, 180, 197, /* 3980 */ 197, 183, 184, 185, 186, 187, 188, 189, 190, 191, /* 3990 */ 192, 193, 194, 195, 196, 197, 197, 159, 197, 197, /* 4000 */ 162, 163, 164, 165, 166, 197, 197, 197, 132, 197, /* 4010 */ 197, 197, 197, 197, 197, 197, 197, 179, 180, 197, /* 4020 */ 197, 183, 184, 185, 186, 187, 188, 189, 190, 191, /* 4030 */ 192, 193, 194, 195, 196, 159, 197, 197, 162, 163, /* 4040 */ 164, 165, 166, 197, 197, 197, 132, 197, 197, 197, /* 4050 */ 197, 197, 197, 197, 197, 179, 180, 197, 197, 183, /* 4060 */ 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, /* 4070 */ 194, 195, 196, 159, 197, 197, 162, 163, 164, 165, /* 4080 */ 166, 197, 197, 197, 132, 197, 197, 197, 197, 197, /* 4090 */ 197, 197, 197, 179, 180, 197, 197, 183, 184, 185, /* 4100 */ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, /* 4110 */ 196, 159, 197, 197, 162, 163, 164, 165, 166, 197, /* 4120 */ 197, 197, 132, 197, 197, 197, 197, 197, 197, 197, /* 4130 */ 197, 179, 180, 197, 197, 183, 184, 185, 186, 187, /* 4140 */ 188, 189, 190, 191, 192, 193, 194, 195, 196, 159, /* 4150 */ 197, 197, 162, 163, 164, 165, 166, 197, 197, 197, /* 4160 */ 132, 197, 197, 197, 197, 197, 197, 197, 197, 179, /* 4170 */ 180, 197, 197, 183, 184, 185, 186, 187, 188, 189, /* 4180 */ 190, 191, 192, 193, 194, 195, 196, 159, 197, 197, /* 4190 */ 162, 163, 164, 165, 166, 197, 197, 197, 132, 197, /* 4200 */ 197, 197, 197, 197, 197, 197, 197, 179, 180, 197, /* 4210 */ 197, 183, 184, 185, 186, 187, 188, 189, 190, 191, /* 4220 */ 192, 193, 194, 195, 196, 159, 197, 197, 162, 163, /* 4230 */ 164, 165, 166, 197, 197, 197, 132, 197, 197, 197, /* 4240 */ 197, 197, 197, 197, 197, 179, 180, 197, 197, 183, /* 4250 */ 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, /* 4260 */ 194, 195, 196, 159, 197, 197, 162, 163, 164, 165, /* 4270 */ 166, 197, 197, 197, 132, 197, 197, 197, 197, 197, /* 4280 */ 197, 197, 197, 179, 180, 197, 197, 183, 184, 185, /* 4290 */ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, /* 4300 */ 196, 159, 197, 197, 162, 163, 164, 165, 166, 197, /* 4310 */ 197, 197, 132, 197, 197, 197, 197, 197, 197, 197, /* 4320 */ 197, 179, 180, 197, 197, 183, 184, 185, 186, 187, /* 4330 */ 188, 189, 190, 191, 192, 193, 194, 195, 196, 159, /* 4340 */ 197, 197, 162, 163, 164, 165, 166, 197, 197, 197, /* 4350 */ 132, 197, 197, 197, 197, 197, 197, 197, 197, 179, /* 4360 */ 180, 197, 197, 183, 184, 185, 186, 187, 188, 189, /* 4370 */ 190, 191, 192, 193, 194, 195, 196, 159, 197, 197, /* 4380 */ 162, 163, 164, 165, 166, 197, 197, 197, 132, 197, /* 4390 */ 197, 197, 197, 197, 197, 197, 197, 179, 180, 197, /* 4400 */ 197, 183, 184, 185, 186, 187, 188, 189, 190, 191, /* 4410 */ 192, 193, 194, 195, 196, 159, 197, 197, 162, 163, /* 4420 */ 164, 165, 166, 197, 197, 197, 132, 197, 197, 197, /* 4430 */ 197, 197, 197, 197, 197, 179, 180, 197, 197, 183, /* 4440 */ 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, /* 4450 */ 194, 195, 196, 159, 197, 197, 162, 163, 164, 165, /* 4460 */ 166, 197, 197, 197, 197, 197, 45, 197, 197, 197, /* 4470 */ 197, 197, 197, 179, 180, 197, 197, 183, 184, 185, /* 4480 */ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, /* 4490 */ 196, 70, 71, 72, 73, 74, 75, 76, 77, 78, /* 4500 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, /* 4510 */ 89, 197, 91, 197, 47, 197, 197, 197, 197, 197, /* 4520 */ 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, /* 4530 */ 132, 197, 197, 197, 197, 197, 197, 70, 71, 72, /* 4540 */ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, /* 4550 */ 83, 84, 85, 86, 87, 88, 89, 159, 91, 197, /* 4560 */ 162, 163, 164, 165, 166, 197, 197, 197, 197, 197, /* 4570 */ 197, 197, 197, 197, 197, 197, 197, 179, 180, 197, /* 4580 */ 197, 197, 184, 185, 186, 187, 188, 189, 190, 191, /* 4590 */ 192, 193, 194, 195, 196, 197, 197, 197, 197, 197, /* 4600 */ 197, 70, 71, 72, 73, 74, 75, 76, 77, 78, /* 4610 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, /* 4620 */ 89, 132, 91, 197, 124, 125, 126, 127, 128, 197, /* 4630 */ 130, 131, 132, 197, 134, 135, 197, 197, 197, 197, /* 4640 */ 197, 197, 197, 143, 197, 145, 197, 197, 159, 149, /* 4650 */ 197, 162, 163, 164, 165, 166, 197, 197, 197, 159, /* 4660 */ 197, 197, 162, 163, 164, 165, 166, 197, 179, 180, /* 4670 */ 132, 197, 197, 184, 185, 186, 187, 188, 189, 190, /* 4680 */ 191, 192, 193, 194, 195, 197, 197, 197, 197, 197, /* 4690 */ 197, 197, 197, 197, 197, 197, 197, 159, 197, 197, /* 4700 */ 162, 163, 164, 165, 166, 197, 197, 197, 197, 197, /* 4710 */ 132, 197, 197, 197, 197, 197, 197, 179, 180, 197, /* 4720 */ 132, 197, 184, 185, 186, 187, 188, 189, 190, 191, /* 4730 */ 192, 193, 194, 145, 197, 197, 197, 159, 197, 197, /* 4740 */ 162, 163, 164, 165, 166, 132, 197, 159, 197, 197, /* 4750 */ 162, 163, 164, 165, 166, 197, 197, 179, 180, 197, /* 4760 */ 197, 197, 184, 185, 186, 187, 188, 189, 190, 191, /* 4770 */ 192, 193, 159, 197, 197, 162, 163, 164, 165, 166, /* 4780 */ 197, 132, 197, 197, 197, 197, 197, 197, 197, 197, /* 4790 */ 197, 197, 179, 180, 197, 197, 197, 184, 185, 186, /* 4800 */ 187, 188, 189, 190, 191, 192, 197, 197, 159, 197, /* 4810 */ 197, 162, 163, 164, 165, 166, 197, 197, 197, 197, /* 4820 */ 197, 197, 197, 197, 197, 197, 197, 197, 179, 180, /* 4830 */ 197, 197, 197, 184, 185, 186, 187, 188, 189, 190, /* 4840 */ 191, 197, 197, 197, 126, 127, 128, 197, 130, 131, /* 4850 */ 132, 197, 134, 135, 197, 197, 197, 197, 132, 197, /* 4860 */ 197, 143, 197, 145, 197, 197, 197, 149, 197, 197, /* 4870 */ 132, 197, 197, 197, 197, 197, 197, 159, 197, 197, /* 4880 */ 162, 163, 164, 165, 166, 159, 197, 197, 162, 163, /* 4890 */ 164, 165, 166, 197, 197, 197, 197, 159, 197, 197, /* 4900 */ 162, 163, 164, 165, 166, 179, 180, 197, 132, 197, /* 4910 */ 184, 185, 186, 187, 188, 189, 190, 179, 180, 197, /* 4920 */ 197, 197, 184, 185, 186, 187, 188, 189, 197, 197, /* 4930 */ 197, 197, 197, 197, 197, 159, 197, 197, 162, 163, /* 4940 */ 164, 165, 166, 197, 132, 197, 197, 197, 197, 197, /* 4950 */ 197, 197, 197, 197, 197, 179, 180, 197, 197, 197, /* 4960 */ 184, 185, 186, 187, 188, 189, 197, 197, 197, 197, /* 4970 */ 197, 159, 197, 197, 162, 163, 164, 165, 166, 132, /* 4980 */ 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, /* 4990 */ 197, 179, 180, 197, 197, 197, 184, 185, 186, 187, /* 5000 */ 188, 197, 197, 197, 197, 197, 159, 197, 197, 162, /* 5010 */ 163, 164, 165, 166, 132, 197, 197, 197, 197, 197, /* 5020 */ 197, 197, 197, 197, 132, 197, 179, 180, 197, 197, /* 5030 */ 197, 184, 185, 186, 187, 188, 197, 197, 197, 197, /* 5040 */ 197, 159, 197, 197, 162, 163, 164, 165, 166, 197, /* 5050 */ 197, 159, 197, 197, 162, 163, 164, 165, 166, 132, /* 5060 */ 197, 179, 180, 197, 197, 197, 184, 185, 186, 187, /* 5070 */ 188, 179, 180, 197, 197, 197, 184, 185, 186, 187, /* 5080 */ 188, 197, 197, 197, 197, 197, 159, 197, 132, 162, /* 5090 */ 163, 164, 165, 166, 197, 197, 197, 132, 197, 197, /* 5100 */ 197, 197, 197, 197, 197, 197, 179, 180, 197, 197, /* 5110 */ 197, 184, 185, 186, 187, 159, 197, 197, 162, 163, /* 5120 */ 164, 165, 166, 197, 159, 132, 197, 162, 163, 164, /* 5130 */ 165, 166, 197, 197, 197, 179, 180, 197, 197, 197, /* 5140 */ 184, 185, 186, 187, 179, 180, 197, 197, 197, 184, /* 5150 */ 185, 186, 159, 197, 197, 162, 163, 164, 165, 166, /* 5160 */ 132, 197, 197, 197, 197, 137, 138, 139, 140, 197, /* 5170 */ 197, 197, 179, 180, 132, 197, 197, 184, 185, 186, /* 5180 */ 197, 197, 197, 197, 132, 197, 197, 159, 197, 197, /* 5190 */ 162, 163, 164, 165, 166, 197, 197, 197, 197, 197, /* 5200 */ 197, 159, 197, 197, 162, 163, 164, 165, 166, 197, /* 5210 */ 197, 159, 132, 197, 162, 163, 164, 165, 166, 197, /* 5220 */ 197, 179, 180, 132, 197, 197, 184, 185, 197, 197, /* 5230 */ 197, 179, 180, 197, 197, 197, 184, 185, 197, 159, /* 5240 */ 197, 197, 162, 163, 164, 165, 166, 132, 197, 197, /* 5250 */ 159, 197, 197, 162, 163, 164, 165, 166, 132, 179, /* 5260 */ 180, 197, 197, 197, 184, 185, 197, 197, 197, 197, /* 5270 */ 179, 180, 197, 197, 159, 184, 185, 162, 163, 164, /* 5280 */ 165, 166, 132, 197, 197, 159, 197, 197, 162, 163, /* 5290 */ 164, 165, 166, 132, 179, 180, 197, 197, 197, 184, /* 5300 */ 185, 197, 197, 197, 197, 179, 180, 197, 197, 159, /* 5310 */ 184, 185, 162, 163, 164, 165, 166, 132, 197, 197, /* 5320 */ 159, 197, 197, 162, 163, 164, 165, 166, 197, 179, /* 5330 */ 180, 197, 197, 197, 184, 185, 197, 197, 197, 197, /* 5340 */ 179, 180, 197, 197, 159, 184, 185, 162, 163, 164, /* 5350 */ 165, 166, 197, 197, 132, 197, 197, 197, 197, 197, /* 5360 */ 197, 197, 197, 197, 179, 180, 197, 197, 197, 184, /* 5370 */ 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, /* 5380 */ 197, 159, 197, 197, 162, 163, 164, 165, 166, 197, /* 5390 */ 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, /* 5400 */ 197, 179, 180, 197, 197, 197, 184, }; #define YY_SHIFT_USE_DFLT (-43) #define YY_SHIFT_COUNT (296) #define YY_SHIFT_MIN (-42) #define YY_SHIFT_MAX (4531) static const short yy_shift_ofst[] = { /* 0 */ 2620, 63, 153, 153, -27, 153, 153, 153, 153, 153, /* 10 */ 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, /* 20 */ 153, 153, 153, 243, 2404, 2404, 2404, 2338, 2270, 2248, /* 30 */ 2180, 2158, 2090, 2068, 2000, 1978, 1910, 1888, 1820, 1798, /* 40 */ 2541, 2541, 2541, 2541, 2541, 2541, 2541, 2541, 2541, 2541, /* 50 */ 2541, 2541, 2541, 2541, 2541, 2541, 2541, 2541, 2541, 2541, /* 60 */ 2541, 2541, 2541, 2541, 2541, 2541, 1733, 2541, 2541, 2541, /* 70 */ 2541, 2541, 2541, 2541, 2541, 2541, 2541, 2541, 2541, 2541, /* 80 */ 2541, 2541, 2541, 2541, 2541, 2541, 2541, 2855, 2855, 2812, /* 90 */ 2470, 2470, 2772, 2898, 2665, 4467, 4531, 4421, 4531, 4531, /* 100 */ 459, 456, 395, 619, 619, 408, 12, 12, 411, 315, /* 110 */ 847, 801, 837, 837, 837, 837, 801, 334, 102, 102, /* 120 */ 388, 801, 801, 2542, 408, 408, -40, 330, 384, 807, /* 130 */ 852, 852, 852, 852, 807, 825, 802, 807, 852, 803, /* 140 */ 798, 801, 809, 809, 801, 2525, 495, 61, 61, 61, /* 150 */ -33, 195, 72, 66, 200, -7, -7, -7, -28, 639, /* 160 */ 592, 605, 590, 559, 560, 557, 530, 583, 527, 439, /* 170 */ 391, 378, 437, 421, 387, 367, 246, 2, 312, 383, /* 180 */ 348, 344, 366, 281, 267, 244, 257, 307, 231, 252, /* 190 */ 93, 93, 106, 106, 106, 106, 3, 3, 106, 3, /* 200 */ 311, 221, 41, 804, 800, 778, 774, 769, 773, 770, /* 210 */ 810, 768, 763, 756, 747, 734, 757, 754, 755, 753, /* 220 */ 751, 750, 690, 685, 675, 745, 674, 739, 669, 736, /* 230 */ 662, 729, 659, 726, 658, 711, 707, 706, 703, 696, /* 240 */ 688, 647, 689, 684, 636, 683, 679, 678, 677, 673, /* 250 */ 672, 670, 650, 671, 709, 644, 610, 663, 657, 661, /* 260 */ 655, 630, 621, 625, 613, 643, 640, 643, 638, 640, /* 270 */ 635, 638, 635, 629, 561, 645, 552, 633, 564, 545, /* 280 */ 534, 556, 515, 500, 428, 478, 396, 475, 410, 407, /* 290 */ 333, 227, 180, 134, 5, -42, 48, }; #define YY_REDUCE_USE_DFLT (-128) #define YY_REDUCE_COUNT (144) #define YY_REDUCE_MIN (-127) #define YY_REDUCE_MAX (5222) static const short yy_reduce_ofst[] = { /* 0 */ 4500, 354, 280, 210, 712, 712, 1576, 1506, 1432, 1362, /* 10 */ 1288, 1218, 1144, 1074, 1000, 930, 856, 786, 712, 642, /* 20 */ 568, 498, 424, 2628, 2979, 2938, 2897, 2856, 3798, 3757, /* 30 */ 3716, 3675, 3634, 3593, 3552, 3511, 3470, 3429, 3388, 3348, /* 40 */ 3307, 3266, 3225, 3184, 3143, 3102, 3061, 3020, 4294, 4256, /* 50 */ 4218, 4180, 4142, 4104, 4066, 4028, 3990, 3952, 3914, 3876, /* 60 */ 3838, 4398, 4489, 4538, 4578, 4613, 4718, 4649, 4726, 4776, /* 70 */ 4738, 4892, 4882, 4847, 4812, 4956, 4927, 4993, 4965, 5161, /* 80 */ 5150, 5126, 5115, 5091, 5080, 5052, 5042, 5028, 2868, 2302, /* 90 */ 5222, 5185, 2637, 2439, 4588, 400, 128, 617, 543, 473, /* 100 */ 360, -127, 165, 52, -37, 90, 202, 34, 46, 46, /* 110 */ 75, 46, 109, 56, 47, -34, -44, 491, 503, 481, /* 120 */ 326, 419, 291, 720, 752, 722, 708, 681, 743, 758, /* 130 */ 737, 731, 728, 727, 730, 686, 735, 723, 716, 699, /* 140 */ 697, 717, 681, 667, 713, }; static const YYACTIONTYPE yy_default[] = { /* 0 */ 813, 813, 741, 739, 813, 740, 813, 813, 813, 813, /* 10 */ 813, 813, 813, 813, 813, 813, 813, 813, 738, 813, /* 20 */ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, /* 30 */ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, /* 40 */ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, /* 50 */ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, /* 60 */ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, /* 70 */ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, /* 80 */ 813, 813, 813, 813, 813, 813, 813, 544, 544, 813, /* 90 */ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, /* 100 */ 606, 598, 813, 602, 594, 813, 562, 554, 813, 813, /* 110 */ 813, 813, 604, 600, 596, 592, 813, 813, 558, 550, /* 120 */ 813, 813, 813, 813, 813, 813, 813, 813, 813, 538, /* 130 */ 560, 556, 552, 548, 536, 813, 813, 614, 813, 620, /* 140 */ 619, 813, 813, 742, 813, 767, 813, 786, 785, 784, /* 150 */ 760, 813, 813, 813, 813, 775, 774, 773, 623, 813, /* 160 */ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, /* 170 */ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, /* 180 */ 813, 813, 813, 813, 813, 813, 813, 813, 813, 797, /* 190 */ 788, 787, 783, 782, 781, 780, 778, 777, 779, 776, /* 200 */ 813, 813, 813, 813, 813, 813, 565, 563, 813, 813, /* 210 */ 543, 813, 813, 813, 813, 813, 813, 689, 813, 813, /* 220 */ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, /* 230 */ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, /* 240 */ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, /* 250 */ 813, 813, 813, 813, 631, 813, 813, 813, 813, 813, /* 260 */ 813, 813, 813, 813, 813, 796, 794, 795, 792, 793, /* 270 */ 790, 791, 789, 813, 813, 813, 813, 813, 813, 813, /* 280 */ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, /* 290 */ 813, 813, 813, 813, 813, 813, 623, 526, 541, 537, /* 300 */ 540, 545, 568, 567, 564, 566, 561, 559, 557, 555, /* 310 */ 553, 551, 549, 547, 546, 542, 539, 535, 532, 531, /* 320 */ 736, 718, 717, 719, 716, 712, 711, 710, 709, 714, /* 330 */ 713, 715, 735, 730, 723, 708, 707, 703, 702, 698, /* 340 */ 697, 696, 695, 694, 693, 692, 673, 737, 691, 690, /* 350 */ 688, 687, 685, 734, 733, 729, 728, 727, 726, 731, /* 360 */ 725, 732, 724, 722, 706, 701, 721, 705, 700, 720, /* 370 */ 704, 699, 684, 680, 679, 678, 677, 676, 675, 683, /* 380 */ 682, 681, 674, 672, 671, 608, 609, 612, 615, 616, /* 390 */ 613, 611, 610, 607, 574, 573, 572, 571, 570, 578, /* 400 */ 686, 577, 576, 588, 587, 586, 585, 584, 583, 582, /* 410 */ 581, 580, 579, 589, 605, 603, 601, 599, 628, 630, /* 420 */ 629, 627, 597, 595, 636, 635, 634, 633, 632, 593, /* 430 */ 618, 617, 591, 626, 625, 624, 569, 590, 575, 534, /* 440 */ 812, 758, 759, 757, 756, 768, 755, 754, 753, 761, /* 450 */ 811, 810, 809, 808, 807, 806, 805, 804, 803, 802, /* 460 */ 801, 800, 799, 798, 772, 771, 770, 769, 767, 766, /* 470 */ 765, 764, 763, 762, 752, 750, 749, 748, 747, 746, /* 480 */ 745, 744, 743, 751, 670, 669, 668, 667, 666, 665, /* 490 */ 664, 663, 662, 661, 660, 659, 658, 657, 656, 655, /* 500 */ 654, 653, 652, 651, 650, 649, 648, 647, 646, 645, /* 510 */ 644, 643, 642, 641, 640, 639, 638, 637, 622, 621, /* 520 */ 533, 530, 529, 528, 527, }; /* The next table maps tokens into fallback tokens. If a construct ** like the following: ** ** %fallback ID X Y Z. ** ** appears in the grammar, then ID becomes a fallback token for X, Y, ** and Z. Whenever one of the tokens X, Y, or Z is input to the parser ** but it does not parse, the type of the token is changed to ID and ** the parse is retried before an error is thrown. */ #ifdef YYFALLBACK static const YYCODETYPE yyFallback[] = { }; #endif /* YYFALLBACK */ /* The following structure represents a single element of the ** parser's stack. Information stored includes: ** ** + The state number for the parser at this level of the stack. ** ** + The value of the token stored at this level of the stack. ** (In other words, the "major" token.) ** ** + The semantic value stored at this level of the stack. This is ** the information used by the action routines in the grammar. ** It is sometimes called the "minor" token. */ struct yyStackEntry { YYACTIONTYPE stateno; /* The state-number */ YYCODETYPE major; /* The major token value. This is the code ** number for the token at this stack level */ YYMINORTYPE minor; /* The user-supplied minor token value. This ** is the value of the token */ }; typedef struct yyStackEntry yyStackEntry; /* The state of the parser is completely contained in an instance of ** the following structure */ struct yyParser { int yyidx; /* Index of top element in stack */ #ifdef YYTRACKMAXSTACKDEPTH int yyidxMax; /* Maximum value of yyidx */ #endif int yyerrcnt; /* Shifts left before out of the error */ ParseHLSLARG_SDECL /* A place to hold %extra_argument */ #if YYSTACKDEPTH<=0 int yystksz; /* Current side of the stack */ yyStackEntry *yystack; /* The parser's stack */ #else yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ #endif }; typedef struct yyParser yyParser; #if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */ #include static FILE *yyTraceFILE = 0; static char *yyTracePrompt = 0; #endif /* NDEBUG */ #if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */ /* ** Turn parser tracing on by giving a stream to which to write the trace ** and a prompt to preface each trace message. Tracing is turned off ** by making either argument NULL ** ** Inputs: ** ** ** Outputs: ** None. */ #if __MOJOSHADER__ static #endif void ParseHLSLTrace(FILE *TraceFILE, char *zTracePrompt){ yyTraceFILE = TraceFILE; yyTracePrompt = zTracePrompt; if( yyTraceFILE==0 ) yyTracePrompt = 0; else if( yyTracePrompt==0 ) yyTraceFILE = 0; } #endif /* NDEBUG */ #if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */ /* For tracing shifts, the names of all terminals and nonterminals ** are required. The following table supplies these names */ static const char *const yyTokenName[] = { "$", "COMMA", "ASSIGN", "ADDASSIGN", "SUBASSIGN", "MULASSIGN", "DIVASSIGN", "MODASSIGN", "LSHIFTASSIGN", "RSHIFTASSIGN", "ANDASSIGN", "ORASSIGN", "XORASSIGN", "QUESTION", "OROR", "ANDAND", "OR", "XOR", "AND", "EQL", "NEQ", "LT", "LEQ", "GT", "GEQ", "LSHIFT", "RSHIFT", "PLUS", "MINUS", "STAR", "SLASH", "PERCENT", "TYPECAST", "EXCLAMATION", "COMPLEMENT", "MINUSMINUS", "PLUSPLUS", "DOT", "LBRACKET", "RBRACKET", "LPAREN", "RPAREN", "ELSE", "SEMICOLON", "TYPEDEF", "CONST", "IDENTIFIER", "VOID", "INLINE", "IN", "INOUT", "OUT", "UNIFORM", "COLON", "LINEAR", "CENTROID", "NOINTERPOLATION", "NOPERSPECTIVE", "SAMPLE", "EXTERN", "SHARED", "STATIC", "VOLATILE", "ROWMAJOR", "COLUMNMAJOR", "LBRACE", "RBRACE", "STRUCT", "PACKOFFSET", "REGISTER", "USERTYPE", "SAMPLER", "SAMPLER1D", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE", "SAMPLER_STATE", "SAMPLERSTATE", "SAMPLERCOMPARISONSTATE", "BOOL", "INT", "UINT", "HALF", "FLOAT", "DOUBLE", "STRING", "SNORM", "UNORM", "BUFFER", "VECTOR", "INT_CONSTANT", "MATRIX", "ISOLATE", "MAXINSTRUCTIONCOUNT", "NOEXPRESSIONOPTIMIZATIONS", "REMOVEUNUSEDINPUTS", "UNUSED", "XPS", "BREAK", "CONTINUE", "DISCARD", "DO", "WHILE", "RETURN", "UNROLL", "LOOP", "FOR", "BRANCH", "IF", "FLATTEN", "IFALL", "IFANY", "PREDICATE", "PREDICATEBLOCK", "SWITCH", "FORCECASE", "CALL", "CASE", "DEFAULT", "FLOAT_CONSTANT", "STRING_LITERAL", "TRUE", "FALSE", "error", "shader", "compilation_units", "compilation_unit", "variable_declaration", "function_signature", "statement_block", "typedef", "struct_declaration", "datatype", "scalar_or_array", "function_storageclass", "function_details", "semantic", "function_parameters", "function_parameter_list", "function_parameter", "input_modifier", "interpolation_mod", "initializer", "variable_attribute_list", "variable_declaration_details_list", "variable_attribute", "variable_declaration_details", "annotations", "variable_lowlevel", "struct_intro", "struct_member_list", "struct_member", "struct_member_details", "struct_member_item_list", "packoffset", "register", "expression", "annotation_list", "annotation", "datatype_scalar", "initializer_block_list", "initializer_block", "intrinsic_datatype", "datatype_vector", "datatype_matrix", "datatype_sampler", "datatype_buffer", "statement_list", "statement", "statement_attribute", "do_intro", "while_intro", "if_intro", "switch_intro", "switch_case_list", "for_statement", "for_intro", "for_details", "switch_case", "primary_expr", "postfix_expr", "arguments", "argument_list", "assignment_expr", "unary_expr", "cast_expr", "multiplicative_expr", "additive_expr", "shift_expr", "relational_expr", "equality_expr", "and_expr", "exclusive_or_expr", "inclusive_or_expr", "logical_and_expr", "logical_or_expr", "conditional_expr", }; #endif /* NDEBUG */ #if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */ /* For tracing reduce actions, the names of all rules are required. */ static const char *const yyRuleName[] = { /* 0 */ "shader ::= compilation_units", /* 1 */ "compilation_units ::= compilation_unit", /* 2 */ "compilation_units ::= compilation_units compilation_unit", /* 3 */ "compilation_unit ::= variable_declaration", /* 4 */ "compilation_unit ::= function_signature SEMICOLON", /* 5 */ "compilation_unit ::= function_signature statement_block", /* 6 */ "compilation_unit ::= typedef", /* 7 */ "compilation_unit ::= struct_declaration SEMICOLON", /* 8 */ "typedef ::= TYPEDEF CONST datatype scalar_or_array", /* 9 */ "typedef ::= TYPEDEF datatype scalar_or_array", /* 10 */ "function_signature ::= function_storageclass function_details semantic", /* 11 */ "function_signature ::= function_storageclass function_details", /* 12 */ "function_signature ::= function_details semantic", /* 13 */ "function_signature ::= function_details", /* 14 */ "function_details ::= datatype IDENTIFIER LPAREN function_parameters RPAREN", /* 15 */ "function_details ::= VOID IDENTIFIER LPAREN function_parameters RPAREN", /* 16 */ "function_storageclass ::= INLINE", /* 17 */ "function_parameters ::= VOID", /* 18 */ "function_parameters ::= function_parameter_list", /* 19 */ "function_parameters ::=", /* 20 */ "function_parameter_list ::= function_parameter", /* 21 */ "function_parameter_list ::= function_parameter_list COMMA function_parameter", /* 22 */ "function_parameter ::= input_modifier datatype IDENTIFIER semantic interpolation_mod initializer", /* 23 */ "function_parameter ::= input_modifier datatype IDENTIFIER semantic interpolation_mod", /* 24 */ "function_parameter ::= input_modifier datatype IDENTIFIER semantic initializer", /* 25 */ "function_parameter ::= input_modifier datatype IDENTIFIER semantic", /* 26 */ "function_parameter ::= input_modifier datatype IDENTIFIER interpolation_mod initializer", /* 27 */ "function_parameter ::= input_modifier datatype IDENTIFIER interpolation_mod", /* 28 */ "function_parameter ::= input_modifier datatype IDENTIFIER initializer", /* 29 */ "function_parameter ::= input_modifier datatype IDENTIFIER", /* 30 */ "function_parameter ::= datatype IDENTIFIER semantic interpolation_mod initializer", /* 31 */ "function_parameter ::= datatype IDENTIFIER semantic interpolation_mod", /* 32 */ "function_parameter ::= datatype IDENTIFIER semantic initializer", /* 33 */ "function_parameter ::= datatype IDENTIFIER semantic", /* 34 */ "function_parameter ::= datatype IDENTIFIER interpolation_mod initializer", /* 35 */ "function_parameter ::= datatype IDENTIFIER interpolation_mod", /* 36 */ "function_parameter ::= datatype IDENTIFIER initializer", /* 37 */ "function_parameter ::= datatype IDENTIFIER", /* 38 */ "input_modifier ::= IN", /* 39 */ "input_modifier ::= INOUT", /* 40 */ "input_modifier ::= OUT", /* 41 */ "input_modifier ::= IN OUT", /* 42 */ "input_modifier ::= OUT IN", /* 43 */ "input_modifier ::= UNIFORM", /* 44 */ "semantic ::= COLON IDENTIFIER", /* 45 */ "interpolation_mod ::= LINEAR", /* 46 */ "interpolation_mod ::= CENTROID", /* 47 */ "interpolation_mod ::= NOINTERPOLATION", /* 48 */ "interpolation_mod ::= NOPERSPECTIVE", /* 49 */ "interpolation_mod ::= SAMPLE", /* 50 */ "variable_declaration ::= variable_attribute_list datatype variable_declaration_details_list SEMICOLON", /* 51 */ "variable_declaration ::= datatype variable_declaration_details_list SEMICOLON", /* 52 */ "variable_declaration ::= struct_declaration variable_declaration_details_list SEMICOLON", /* 53 */ "variable_attribute_list ::= variable_attribute", /* 54 */ "variable_attribute_list ::= variable_attribute_list variable_attribute", /* 55 */ "variable_attribute ::= EXTERN", /* 56 */ "variable_attribute ::= NOINTERPOLATION", /* 57 */ "variable_attribute ::= SHARED", /* 58 */ "variable_attribute ::= STATIC", /* 59 */ "variable_attribute ::= UNIFORM", /* 60 */ "variable_attribute ::= VOLATILE", /* 61 */ "variable_attribute ::= CONST", /* 62 */ "variable_attribute ::= ROWMAJOR", /* 63 */ "variable_attribute ::= COLUMNMAJOR", /* 64 */ "variable_declaration_details_list ::= variable_declaration_details", /* 65 */ "variable_declaration_details_list ::= variable_declaration_details_list COMMA variable_declaration_details", /* 66 */ "variable_declaration_details ::= scalar_or_array semantic annotations initializer variable_lowlevel", /* 67 */ "variable_declaration_details ::= scalar_or_array semantic annotations initializer", /* 68 */ "variable_declaration_details ::= scalar_or_array semantic annotations variable_lowlevel", /* 69 */ "variable_declaration_details ::= scalar_or_array semantic annotations", /* 70 */ "variable_declaration_details ::= scalar_or_array semantic initializer variable_lowlevel", /* 71 */ "variable_declaration_details ::= scalar_or_array semantic initializer", /* 72 */ "variable_declaration_details ::= scalar_or_array semantic variable_lowlevel", /* 73 */ "variable_declaration_details ::= scalar_or_array semantic", /* 74 */ "variable_declaration_details ::= scalar_or_array annotations initializer variable_lowlevel", /* 75 */ "variable_declaration_details ::= scalar_or_array annotations initializer", /* 76 */ "variable_declaration_details ::= scalar_or_array annotations variable_lowlevel", /* 77 */ "variable_declaration_details ::= scalar_or_array annotations", /* 78 */ "variable_declaration_details ::= scalar_or_array initializer variable_lowlevel", /* 79 */ "variable_declaration_details ::= scalar_or_array initializer", /* 80 */ "variable_declaration_details ::= scalar_or_array variable_lowlevel", /* 81 */ "variable_declaration_details ::= scalar_or_array", /* 82 */ "struct_declaration ::= struct_intro LBRACE struct_member_list RBRACE", /* 83 */ "struct_intro ::= STRUCT IDENTIFIER", /* 84 */ "struct_member_list ::= struct_member", /* 85 */ "struct_member_list ::= struct_member_list struct_member", /* 86 */ "struct_member ::= interpolation_mod struct_member_details", /* 87 */ "struct_member ::= struct_member_details", /* 88 */ "struct_member_details ::= datatype struct_member_item_list SEMICOLON", /* 89 */ "struct_member_item_list ::= scalar_or_array", /* 90 */ "struct_member_item_list ::= scalar_or_array semantic", /* 91 */ "struct_member_item_list ::= struct_member_item_list COMMA IDENTIFIER", /* 92 */ "variable_lowlevel ::= packoffset register", /* 93 */ "variable_lowlevel ::= register packoffset", /* 94 */ "variable_lowlevel ::= packoffset", /* 95 */ "variable_lowlevel ::= register", /* 96 */ "scalar_or_array ::= IDENTIFIER LBRACKET RBRACKET", /* 97 */ "scalar_or_array ::= IDENTIFIER LBRACKET expression RBRACKET", /* 98 */ "scalar_or_array ::= IDENTIFIER", /* 99 */ "packoffset ::= COLON PACKOFFSET LPAREN IDENTIFIER DOT IDENTIFIER RPAREN", /* 100 */ "packoffset ::= COLON PACKOFFSET LPAREN IDENTIFIER RPAREN", /* 101 */ "register ::= COLON REGISTER LPAREN IDENTIFIER RPAREN", /* 102 */ "annotations ::= LT annotation_list GT", /* 103 */ "annotation_list ::= annotation", /* 104 */ "annotation_list ::= annotation_list annotation", /* 105 */ "annotation ::= datatype_scalar initializer SEMICOLON", /* 106 */ "initializer_block_list ::= expression", /* 107 */ "initializer_block_list ::= LBRACE initializer_block_list RBRACE", /* 108 */ "initializer_block_list ::= initializer_block_list COMMA initializer_block_list", /* 109 */ "initializer_block ::= LBRACE initializer_block_list RBRACE", /* 110 */ "initializer ::= ASSIGN initializer_block", /* 111 */ "initializer ::= ASSIGN expression", /* 112 */ "intrinsic_datatype ::= datatype_vector", /* 113 */ "intrinsic_datatype ::= datatype_matrix", /* 114 */ "intrinsic_datatype ::= datatype_scalar", /* 115 */ "intrinsic_datatype ::= datatype_sampler", /* 116 */ "intrinsic_datatype ::= datatype_buffer", /* 117 */ "datatype ::= intrinsic_datatype", /* 118 */ "datatype ::= USERTYPE", /* 119 */ "datatype_sampler ::= SAMPLER", /* 120 */ "datatype_sampler ::= SAMPLER1D", /* 121 */ "datatype_sampler ::= SAMPLER2D", /* 122 */ "datatype_sampler ::= SAMPLER3D", /* 123 */ "datatype_sampler ::= SAMPLERCUBE", /* 124 */ "datatype_sampler ::= SAMPLER_STATE", /* 125 */ "datatype_sampler ::= SAMPLERSTATE", /* 126 */ "datatype_sampler ::= SAMPLERCOMPARISONSTATE", /* 127 */ "datatype_scalar ::= BOOL", /* 128 */ "datatype_scalar ::= INT", /* 129 */ "datatype_scalar ::= UINT", /* 130 */ "datatype_scalar ::= HALF", /* 131 */ "datatype_scalar ::= FLOAT", /* 132 */ "datatype_scalar ::= DOUBLE", /* 133 */ "datatype_scalar ::= STRING", /* 134 */ "datatype_scalar ::= SNORM FLOAT", /* 135 */ "datatype_scalar ::= UNORM FLOAT", /* 136 */ "datatype_buffer ::= BUFFER LT BOOL GT", /* 137 */ "datatype_buffer ::= BUFFER LT INT GT", /* 138 */ "datatype_buffer ::= BUFFER LT UINT GT", /* 139 */ "datatype_buffer ::= BUFFER LT HALF GT", /* 140 */ "datatype_buffer ::= BUFFER LT FLOAT GT", /* 141 */ "datatype_buffer ::= BUFFER LT DOUBLE GT", /* 142 */ "datatype_buffer ::= BUFFER LT SNORM FLOAT GT", /* 143 */ "datatype_buffer ::= BUFFER LT UNORM FLOAT GT", /* 144 */ "datatype_vector ::= VECTOR LT datatype_scalar COMMA INT_CONSTANT GT", /* 145 */ "datatype_matrix ::= MATRIX LT datatype_scalar COMMA INT_CONSTANT COMMA INT_CONSTANT GT", /* 146 */ "statement_block ::= LBRACE RBRACE", /* 147 */ "statement_block ::= LBRACE statement_list RBRACE", /* 148 */ "statement_list ::= statement", /* 149 */ "statement_list ::= statement_list statement", /* 150 */ "statement_attribute ::= ISOLATE", /* 151 */ "statement_attribute ::= MAXINSTRUCTIONCOUNT LPAREN INT_CONSTANT RPAREN", /* 152 */ "statement_attribute ::= NOEXPRESSIONOPTIMIZATIONS", /* 153 */ "statement_attribute ::= REMOVEUNUSEDINPUTS", /* 154 */ "statement_attribute ::= UNUSED", /* 155 */ "statement_attribute ::= XPS", /* 156 */ "statement ::= BREAK SEMICOLON", /* 157 */ "statement ::= CONTINUE SEMICOLON", /* 158 */ "statement ::= DISCARD SEMICOLON", /* 159 */ "statement ::= LBRACKET statement_attribute RBRACKET statement_block", /* 160 */ "statement ::= variable_declaration", /* 161 */ "statement ::= struct_declaration SEMICOLON", /* 162 */ "statement ::= do_intro DO statement WHILE LPAREN expression RPAREN SEMICOLON", /* 163 */ "statement ::= while_intro LPAREN expression RPAREN statement", /* 164 */ "statement ::= if_intro LPAREN expression RPAREN statement", /* 165 */ "statement ::= if_intro LPAREN expression RPAREN statement ELSE statement", /* 166 */ "statement ::= switch_intro LPAREN expression RPAREN LBRACE switch_case_list RBRACE", /* 167 */ "statement ::= typedef", /* 168 */ "statement ::= SEMICOLON", /* 169 */ "statement ::= expression SEMICOLON", /* 170 */ "statement ::= RETURN SEMICOLON", /* 171 */ "statement ::= RETURN expression SEMICOLON", /* 172 */ "statement ::= statement_block", /* 173 */ "statement ::= for_statement", /* 174 */ "while_intro ::= LBRACKET UNROLL LPAREN INT_CONSTANT RPAREN RBRACKET WHILE", /* 175 */ "while_intro ::= LBRACKET UNROLL RBRACKET WHILE", /* 176 */ "while_intro ::= LBRACKET LOOP RBRACKET WHILE", /* 177 */ "while_intro ::= WHILE", /* 178 */ "for_statement ::= for_intro for_details", /* 179 */ "for_intro ::= LBRACKET UNROLL LPAREN INT_CONSTANT RPAREN RBRACKET FOR", /* 180 */ "for_intro ::= LBRACKET UNROLL RBRACKET FOR", /* 181 */ "for_intro ::= LBRACKET LOOP RBRACKET FOR", /* 182 */ "for_intro ::= FOR", /* 183 */ "for_details ::= LPAREN expression SEMICOLON expression SEMICOLON expression RPAREN statement", /* 184 */ "for_details ::= LPAREN SEMICOLON SEMICOLON RPAREN statement", /* 185 */ "for_details ::= LPAREN SEMICOLON SEMICOLON expression RPAREN statement", /* 186 */ "for_details ::= LPAREN SEMICOLON expression SEMICOLON RPAREN statement", /* 187 */ "for_details ::= LPAREN SEMICOLON expression SEMICOLON expression RPAREN statement", /* 188 */ "for_details ::= LPAREN expression SEMICOLON SEMICOLON RPAREN statement", /* 189 */ "for_details ::= LPAREN expression SEMICOLON SEMICOLON expression RPAREN statement", /* 190 */ "for_details ::= LPAREN expression SEMICOLON expression SEMICOLON RPAREN statement", /* 191 */ "for_details ::= LPAREN variable_declaration expression SEMICOLON expression RPAREN statement", /* 192 */ "for_details ::= LPAREN variable_declaration SEMICOLON RPAREN statement", /* 193 */ "for_details ::= LPAREN variable_declaration SEMICOLON expression RPAREN statement", /* 194 */ "for_details ::= LPAREN variable_declaration expression SEMICOLON RPAREN statement", /* 195 */ "do_intro ::= LBRACKET UNROLL LPAREN INT_CONSTANT RPAREN RBRACKET DO", /* 196 */ "do_intro ::= LBRACKET UNROLL RBRACKET DO", /* 197 */ "do_intro ::= LBRACKET LOOP RBRACKET DO", /* 198 */ "do_intro ::= DO", /* 199 */ "if_intro ::= LBRACKET BRANCH RBRACKET IF", /* 200 */ "if_intro ::= LBRACKET FLATTEN RBRACKET IF", /* 201 */ "if_intro ::= LBRACKET IFALL RBRACKET IF", /* 202 */ "if_intro ::= LBRACKET IFANY RBRACKET IF", /* 203 */ "if_intro ::= LBRACKET PREDICATE RBRACKET IF", /* 204 */ "if_intro ::= LBRACKET PREDICATEBLOCK RBRACKET IF", /* 205 */ "if_intro ::= IF", /* 206 */ "switch_intro ::= LBRACKET FLATTEN RBRACKET SWITCH", /* 207 */ "switch_intro ::= LBRACKET BRANCH RBRACKET SWITCH", /* 208 */ "switch_intro ::= LBRACKET FORCECASE RBRACKET SWITCH", /* 209 */ "switch_intro ::= LBRACKET CALL RBRACKET SWITCH", /* 210 */ "switch_intro ::= SWITCH", /* 211 */ "switch_case_list ::= switch_case", /* 212 */ "switch_case_list ::= switch_case_list switch_case", /* 213 */ "switch_case ::= CASE expression COLON statement_list", /* 214 */ "switch_case ::= CASE expression COLON", /* 215 */ "switch_case ::= DEFAULT COLON statement_list", /* 216 */ "switch_case ::= DEFAULT COLON", /* 217 */ "primary_expr ::= IDENTIFIER", /* 218 */ "primary_expr ::= INT_CONSTANT", /* 219 */ "primary_expr ::= FLOAT_CONSTANT", /* 220 */ "primary_expr ::= STRING_LITERAL", /* 221 */ "primary_expr ::= TRUE", /* 222 */ "primary_expr ::= FALSE", /* 223 */ "primary_expr ::= LPAREN expression RPAREN", /* 224 */ "postfix_expr ::= primary_expr", /* 225 */ "postfix_expr ::= postfix_expr LBRACKET expression RBRACKET", /* 226 */ "postfix_expr ::= IDENTIFIER arguments", /* 227 */ "postfix_expr ::= datatype arguments", /* 228 */ "postfix_expr ::= postfix_expr DOT IDENTIFIER", /* 229 */ "postfix_expr ::= postfix_expr PLUSPLUS", /* 230 */ "postfix_expr ::= postfix_expr MINUSMINUS", /* 231 */ "arguments ::= LPAREN RPAREN", /* 232 */ "arguments ::= LPAREN argument_list RPAREN", /* 233 */ "argument_list ::= assignment_expr", /* 234 */ "argument_list ::= argument_list COMMA assignment_expr", /* 235 */ "unary_expr ::= postfix_expr", /* 236 */ "unary_expr ::= PLUSPLUS unary_expr", /* 237 */ "unary_expr ::= MINUSMINUS unary_expr", /* 238 */ "unary_expr ::= PLUS cast_expr", /* 239 */ "unary_expr ::= MINUS cast_expr", /* 240 */ "unary_expr ::= COMPLEMENT cast_expr", /* 241 */ "unary_expr ::= EXCLAMATION cast_expr", /* 242 */ "cast_expr ::= unary_expr", /* 243 */ "cast_expr ::= LPAREN datatype RPAREN cast_expr", /* 244 */ "multiplicative_expr ::= cast_expr", /* 245 */ "multiplicative_expr ::= multiplicative_expr STAR cast_expr", /* 246 */ "multiplicative_expr ::= multiplicative_expr SLASH cast_expr", /* 247 */ "multiplicative_expr ::= multiplicative_expr PERCENT cast_expr", /* 248 */ "additive_expr ::= multiplicative_expr", /* 249 */ "additive_expr ::= additive_expr PLUS multiplicative_expr", /* 250 */ "additive_expr ::= additive_expr MINUS multiplicative_expr", /* 251 */ "shift_expr ::= additive_expr", /* 252 */ "shift_expr ::= shift_expr LSHIFT additive_expr", /* 253 */ "shift_expr ::= shift_expr RSHIFT additive_expr", /* 254 */ "relational_expr ::= shift_expr", /* 255 */ "relational_expr ::= relational_expr LT shift_expr", /* 256 */ "relational_expr ::= relational_expr GT shift_expr", /* 257 */ "relational_expr ::= relational_expr LEQ shift_expr", /* 258 */ "relational_expr ::= relational_expr GEQ shift_expr", /* 259 */ "equality_expr ::= relational_expr", /* 260 */ "equality_expr ::= equality_expr EQL relational_expr", /* 261 */ "equality_expr ::= equality_expr NEQ relational_expr", /* 262 */ "and_expr ::= equality_expr", /* 263 */ "and_expr ::= and_expr AND equality_expr", /* 264 */ "exclusive_or_expr ::= and_expr", /* 265 */ "exclusive_or_expr ::= exclusive_or_expr XOR and_expr", /* 266 */ "inclusive_or_expr ::= exclusive_or_expr", /* 267 */ "inclusive_or_expr ::= inclusive_or_expr OR exclusive_or_expr", /* 268 */ "logical_and_expr ::= inclusive_or_expr", /* 269 */ "logical_and_expr ::= logical_and_expr ANDAND inclusive_or_expr", /* 270 */ "logical_or_expr ::= logical_and_expr", /* 271 */ "logical_or_expr ::= logical_or_expr OROR logical_and_expr", /* 272 */ "conditional_expr ::= logical_or_expr", /* 273 */ "conditional_expr ::= logical_or_expr QUESTION logical_or_expr COLON conditional_expr", /* 274 */ "assignment_expr ::= conditional_expr", /* 275 */ "assignment_expr ::= unary_expr ASSIGN assignment_expr", /* 276 */ "assignment_expr ::= unary_expr MULASSIGN assignment_expr", /* 277 */ "assignment_expr ::= unary_expr DIVASSIGN assignment_expr", /* 278 */ "assignment_expr ::= unary_expr MODASSIGN assignment_expr", /* 279 */ "assignment_expr ::= unary_expr ADDASSIGN assignment_expr", /* 280 */ "assignment_expr ::= unary_expr SUBASSIGN assignment_expr", /* 281 */ "assignment_expr ::= unary_expr LSHIFTASSIGN assignment_expr", /* 282 */ "assignment_expr ::= unary_expr RSHIFTASSIGN assignment_expr", /* 283 */ "assignment_expr ::= unary_expr ANDASSIGN assignment_expr", /* 284 */ "assignment_expr ::= unary_expr XORASSIGN assignment_expr", /* 285 */ "assignment_expr ::= unary_expr ORASSIGN assignment_expr", /* 286 */ "expression ::= assignment_expr", /* 287 */ "expression ::= expression COMMA assignment_expr", }; #endif /* NDEBUG */ #if YYSTACKDEPTH<=0 /* ** Try to increase the size of the parser stack. */ static void yyGrowStack(yyParser *p){ int newSize; yyStackEntry *pNew; newSize = p->yystksz*2 + 100; pNew = realloc(p->yystack, newSize*sizeof(pNew[0])); if( pNew ){ p->yystack = pNew; p->yystksz = newSize; #if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */ if( yyTraceFILE ){ fprintf(yyTraceFILE,"%sStack grows to %d entries!\n", yyTracePrompt, p->yystksz); } #endif } } #endif /* ** This function allocates a new parser. ** The only argument is a pointer to a function which works like ** malloc. ** ** Inputs: ** A pointer to the function used to allocate memory. ** ** Outputs: ** A pointer to a parser. This pointer is used in subsequent calls ** to ParseHLSL and ParseHLSLFree. */ #if __MOJOSHADER__ static void *ParseHLSLAlloc(void *(*mallocProc)(int,void *), void *malloc_data){ yyParser *pParser; pParser = (yyParser*)(*mallocProc)( (int)sizeof(yyParser), malloc_data ); #else void *ParseHLSLAlloc(void *(*mallocProc)(size_t)){ yyParser *pParser; pParser = (yyParser*)(*mallocProc)( (size_t)sizeof(yyParser) ); #endif if( pParser ){ pParser->yyidx = -1; #ifdef YYTRACKMAXSTACKDEPTH pParser->yyidxMax = 0; #endif #if YYSTACKDEPTH<=0 pParser->yystack = NULL; pParser->yystksz = 0; yyGrowStack(pParser); #endif } return pParser; } /* The following function deletes the value associated with a ** symbol. The symbol can be either a terminal or nonterminal. ** "yymajor" is the symbol code, and "yypminor" is a pointer to ** the value. */ static void yy_destructor( yyParser *yypParser, /* The parser */ YYCODETYPE yymajor, /* Type code for object to destroy */ YYMINORTYPE *yypminor /* The object to be destroyed */ ){ ParseHLSLARG_FETCH; switch( yymajor ){ /* Here is inserted the actions which take place when a ** terminal or non-terminal is destroyed. This can happen ** when the symbol is popped from the stack during a ** reduce or during error processing or when a parser is ** being destroyed before it is finished parsing. ** ** Note: during a reduce, the only symbols destroyed are those ** which appear on the RHS of the rule, but which are not used ** inside the C code. */ case 125: /* compilation_units */ case 126: /* compilation_unit */ { #line 81 "E:/mojoshader/mojoshader_parser_hlsl.lemon" delete_compilation_unit(ctx, (yypminor->yy139)); #line 2033 "E:/mojoshader/mojoshader_parser_hlsl.h" } break; case 127: /* variable_declaration */ case 144: /* variable_declaration_details_list */ case 146: /* variable_declaration_details */ { #line 175 "E:/mojoshader/mojoshader_parser_hlsl.lemon" delete_variable_declaration(ctx, (yypminor->yy24)); #line 2042 "E:/mojoshader/mojoshader_parser_hlsl.h" } break; case 128: /* function_signature */ case 135: /* function_details */ { #line 102 "E:/mojoshader/mojoshader_parser_hlsl.lemon" delete_function_signature(ctx, (yypminor->yy364)); #line 2050 "E:/mojoshader/mojoshader_parser_hlsl.h" } break; case 129: /* statement_block */ case 167: /* statement_list */ case 168: /* statement */ case 175: /* for_statement */ case 177: /* for_details */ { #line 354 "E:/mojoshader/mojoshader_parser_hlsl.lemon" delete_statement(ctx, (yypminor->yy233)); #line 2061 "E:/mojoshader/mojoshader_parser_hlsl.h" } break; case 130: /* typedef */ { #line 96 "E:/mojoshader/mojoshader_parser_hlsl.lemon" delete_typedef(ctx, (yypminor->yy71)); #line 2068 "E:/mojoshader/mojoshader_parser_hlsl.h" } break; case 131: /* struct_declaration */ { #line 224 "E:/mojoshader/mojoshader_parser_hlsl.lemon" delete_struct_declaration(ctx, (yypminor->yy249)); #line 2075 "E:/mojoshader/mojoshader_parser_hlsl.h" } break; case 133: /* scalar_or_array */ { #line 260 "E:/mojoshader/mojoshader_parser_hlsl.lemon" delete_scalar_or_array(ctx, (yypminor->yy380)); #line 2082 "E:/mojoshader/mojoshader_parser_hlsl.h" } break; case 137: /* function_parameters */ case 138: /* function_parameter_list */ case 139: /* function_parameter */ { #line 124 "E:/mojoshader/mojoshader_parser_hlsl.lemon" delete_function_params(ctx, (yypminor->yy307)); #line 2091 "E:/mojoshader/mojoshader_parser_hlsl.h" } break; case 142: /* initializer */ case 156: /* expression */ case 160: /* initializer_block_list */ case 161: /* initializer_block */ case 179: /* primary_expr */ case 180: /* postfix_expr */ case 183: /* assignment_expr */ case 184: /* unary_expr */ case 185: /* cast_expr */ case 186: /* multiplicative_expr */ case 187: /* additive_expr */ case 188: /* shift_expr */ case 189: /* relational_expr */ case 190: /* equality_expr */ case 191: /* and_expr */ case 192: /* exclusive_or_expr */ case 193: /* inclusive_or_expr */ case 194: /* logical_and_expr */ case 195: /* logical_or_expr */ case 196: /* conditional_expr */ { #line 301 "E:/mojoshader/mojoshader_parser_hlsl.lemon" delete_expr(ctx, (yypminor->yy322)); #line 2117 "E:/mojoshader/mojoshader_parser_hlsl.h" } break; case 147: /* annotations */ case 157: /* annotation_list */ case 158: /* annotation */ { #line 277 "E:/mojoshader/mojoshader_parser_hlsl.lemon" delete_annotation(ctx, (yypminor->yy268)); #line 2126 "E:/mojoshader/mojoshader_parser_hlsl.h" } break; case 148: /* variable_lowlevel */ { #line 252 "E:/mojoshader/mojoshader_parser_hlsl.lemon" delete_variable_lowlevel(ctx, (yypminor->yy82)); #line 2133 "E:/mojoshader/mojoshader_parser_hlsl.h" } break; case 150: /* struct_member_list */ case 151: /* struct_member */ case 152: /* struct_member_details */ case 153: /* struct_member_item_list */ { #line 232 "E:/mojoshader/mojoshader_parser_hlsl.lemon" delete_struct_member(ctx, (yypminor->yy346)); #line 2143 "E:/mojoshader/mojoshader_parser_hlsl.h" } break; case 154: /* packoffset */ { #line 266 "E:/mojoshader/mojoshader_parser_hlsl.lemon" delete_pack_offset(ctx, (yypminor->yy8)); #line 2150 "E:/mojoshader/mojoshader_parser_hlsl.h" } break; case 174: /* switch_case_list */ case 178: /* switch_case */ { #line 450 "E:/mojoshader/mojoshader_parser_hlsl.lemon" delete_switch_case(ctx, (yypminor->yy165)); #line 2158 "E:/mojoshader/mojoshader_parser_hlsl.h" } break; case 181: /* arguments */ case 182: /* argument_list */ { #line 485 "E:/mojoshader/mojoshader_parser_hlsl.lemon" delete_arguments(ctx, (yypminor->yy26)); #line 2166 "E:/mojoshader/mojoshader_parser_hlsl.h" } break; default: break; /* If no destructor action specified: do nothing */ } } /* ** Pop the parser's stack once. ** ** If there is a destructor routine associated with the token which ** is popped from the stack, then call it. ** ** Return the major token number for the symbol popped. */ static int yy_pop_parser_stack(yyParser *pParser){ YYCODETYPE yymajor; yyStackEntry *yytos = &pParser->yystack[pParser->yyidx]; if( pParser->yyidx<0 ) return 0; #if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */ if( yyTraceFILE && pParser->yyidx>=0 ){ fprintf(yyTraceFILE,"%sPopping %s\n", yyTracePrompt, yyTokenName[yytos->major]); } #endif yymajor = yytos->major; yy_destructor(pParser, yymajor, &yytos->minor); pParser->yyidx--; return yymajor; } /* ** Deallocate and destroy a parser. Destructors are all called for ** all stack elements before shutting the parser down. ** ** Inputs: ** */ #if __MOJOSHADER__ static #endif void ParseHLSLFree( void *p, /* The parser to be deleted */ #if __MOJOSHADER__ void (*freeProc)(void*,void*), /* Function used to reclaim memory */ void *malloc_data #else void (*freeProc)(void*) /* Function used to reclaim memory */ #endif ){ yyParser *pParser = (yyParser*)p; if( pParser==0 ) return; while( pParser->yyidx>=0 ) yy_pop_parser_stack(pParser); #if YYSTACKDEPTH<=0 free(pParser->yystack); #endif #if __MOJOSHADER__ (*freeProc)((void*)pParser, malloc_data); #else (*freeProc)((void*)pParser); #endif } /* ** Return the peak depth of the stack for a parser. */ #ifdef YYTRACKMAXSTACKDEPTH static int ParseHLSLStackPeak(void *p){ yyParser *pParser = (yyParser*)p; return pParser->yyidxMax; } #endif /* ** Find the appropriate action for a parser given the terminal ** look-ahead token iLookAhead. ** ** If the look-ahead token is YYNOCODE, then check to see if the action is ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ static int yy_find_shift_action( yyParser *pParser, /* The parser */ YYCODETYPE iLookAhead /* The look-ahead token */ ){ int i; int stateno = pParser->yystack[pParser->yyidx].stateno; if( stateno>YY_SHIFT_COUNT || (i = yy_shift_ofst[stateno])==YY_SHIFT_USE_DFLT ){ return yy_default[stateno]; } assert( iLookAhead!=YYNOCODE ); i += iLookAhead; if( i<0 || i>=YY_ACTTAB_COUNT || yy_lookahead[i]!=iLookAhead ){ if( iLookAhead>0 ){ #ifdef YYFALLBACK YYCODETYPE iFallback; /* Fallback token */ if( iLookAhead %s\n", yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]); } #endif return yy_find_shift_action(pParser, iFallback); } #endif #ifdef YYWILDCARD { int j = i - iLookAhead + YYWILDCARD; if( #if YY_SHIFT_MIN+YYWILDCARD<0 j>=0 && #endif #if YY_SHIFT_MAX+YYWILDCARD>=YY_ACTTAB_COUNT j %s\n", yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[YYWILDCARD]); } #endif /* NDEBUG */ return yy_action[j]; } } #endif /* YYWILDCARD */ } return yy_default[stateno]; }else{ return yy_action[i]; } } /* ** Find the appropriate action for a parser given the non-terminal ** look-ahead token iLookAhead. ** ** If the look-ahead token is YYNOCODE, then check to see if the action is ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ static int yy_find_reduce_action( int stateno, /* Current state number */ YYCODETYPE iLookAhead /* The look-ahead token */ ){ int i; #ifdef YYERRORSYMBOL if( stateno>YY_REDUCE_COUNT ){ return yy_default[stateno]; } #else assert( stateno<=YY_REDUCE_COUNT ); #endif i = yy_reduce_ofst[stateno]; assert( i!=YY_REDUCE_USE_DFLT ); assert( iLookAhead!=YYNOCODE ); i += iLookAhead; #ifdef YYERRORSYMBOL if( i<0 || i>=YY_ACTTAB_COUNT || yy_lookahead[i]!=iLookAhead ){ return yy_default[stateno]; } #else assert( i>=0 && iyyidx--; #if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */ if( yyTraceFILE ){ fprintf(yyTraceFILE,"%sStack Overflow!\n",yyTracePrompt); } #endif while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); /* Here code is inserted which will execute if the parser ** stack every overflows */ #line 47 "E:/mojoshader/mojoshader_parser_hlsl.lemon" // !!! FIXME: make this a proper fail() function. fail(ctx, "Giving up. Parser stack overflow"); #line 2364 "E:/mojoshader/mojoshader_parser_hlsl.h" ParseHLSLARG_STORE; /* Suppress warning about unused %extra_argument var */ } /* ** Perform a shift action. */ static void yy_shift( yyParser *yypParser, /* The parser to be shifted */ int yyNewState, /* The new state to shift in */ int yyMajor, /* The major token to shift in */ YYMINORTYPE *yypMinor /* Pointer to the minor token to shift in */ ){ yyStackEntry *yytos; yypParser->yyidx++; #ifdef YYTRACKMAXSTACKDEPTH if( yypParser->yyidx>yypParser->yyidxMax ){ yypParser->yyidxMax = yypParser->yyidx; } #endif #if YYSTACKDEPTH>0 if( yypParser->yyidx>=YYSTACKDEPTH ){ yyStackOverflow(yypParser, yypMinor); return; } #else if( yypParser->yyidx>=yypParser->yystksz ){ yyGrowStack(yypParser); if( yypParser->yyidx>=yypParser->yystksz ){ yyStackOverflow(yypParser, yypMinor); return; } } #endif yytos = &yypParser->yystack[yypParser->yyidx]; yytos->stateno = (YYACTIONTYPE)yyNewState; yytos->major = (YYCODETYPE)yyMajor; yytos->minor = *yypMinor; #if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */ if( yyTraceFILE && yypParser->yyidx>0 ){ int i; fprintf(yyTraceFILE,"%sShift %d\n",yyTracePrompt,yyNewState); fprintf(yyTraceFILE,"%sStack:",yyTracePrompt); for(i=1; i<=yypParser->yyidx; i++) fprintf(yyTraceFILE," %s",yyTokenName[yypParser->yystack[i].major]); fprintf(yyTraceFILE,"\n"); } #endif } /* The following table contains information about every rule that ** is used during the reduce. */ static const struct { YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ unsigned char nrhs; /* Number of right-hand side symbols in the rule */ } yyRuleInfo[] = { { 124, 1 }, { 125, 1 }, { 125, 2 }, { 126, 1 }, { 126, 2 }, { 126, 2 }, { 126, 1 }, { 126, 2 }, { 130, 4 }, { 130, 3 }, { 128, 3 }, { 128, 2 }, { 128, 2 }, { 128, 1 }, { 135, 5 }, { 135, 5 }, { 134, 1 }, { 137, 1 }, { 137, 1 }, { 137, 0 }, { 138, 1 }, { 138, 3 }, { 139, 6 }, { 139, 5 }, { 139, 5 }, { 139, 4 }, { 139, 5 }, { 139, 4 }, { 139, 4 }, { 139, 3 }, { 139, 5 }, { 139, 4 }, { 139, 4 }, { 139, 3 }, { 139, 4 }, { 139, 3 }, { 139, 3 }, { 139, 2 }, { 140, 1 }, { 140, 1 }, { 140, 1 }, { 140, 2 }, { 140, 2 }, { 140, 1 }, { 136, 2 }, { 141, 1 }, { 141, 1 }, { 141, 1 }, { 141, 1 }, { 141, 1 }, { 127, 4 }, { 127, 3 }, { 127, 3 }, { 143, 1 }, { 143, 2 }, { 145, 1 }, { 145, 1 }, { 145, 1 }, { 145, 1 }, { 145, 1 }, { 145, 1 }, { 145, 1 }, { 145, 1 }, { 145, 1 }, { 144, 1 }, { 144, 3 }, { 146, 5 }, { 146, 4 }, { 146, 4 }, { 146, 3 }, { 146, 4 }, { 146, 3 }, { 146, 3 }, { 146, 2 }, { 146, 4 }, { 146, 3 }, { 146, 3 }, { 146, 2 }, { 146, 3 }, { 146, 2 }, { 146, 2 }, { 146, 1 }, { 131, 4 }, { 149, 2 }, { 150, 1 }, { 150, 2 }, { 151, 2 }, { 151, 1 }, { 152, 3 }, { 153, 1 }, { 153, 2 }, { 153, 3 }, { 148, 2 }, { 148, 2 }, { 148, 1 }, { 148, 1 }, { 133, 3 }, { 133, 4 }, { 133, 1 }, { 154, 7 }, { 154, 5 }, { 155, 5 }, { 147, 3 }, { 157, 1 }, { 157, 2 }, { 158, 3 }, { 160, 1 }, { 160, 3 }, { 160, 3 }, { 161, 3 }, { 142, 2 }, { 142, 2 }, { 162, 1 }, { 162, 1 }, { 162, 1 }, { 162, 1 }, { 162, 1 }, { 132, 1 }, { 132, 1 }, { 165, 1 }, { 165, 1 }, { 165, 1 }, { 165, 1 }, { 165, 1 }, { 165, 1 }, { 165, 1 }, { 165, 1 }, { 159, 1 }, { 159, 1 }, { 159, 1 }, { 159, 1 }, { 159, 1 }, { 159, 1 }, { 159, 1 }, { 159, 2 }, { 159, 2 }, { 166, 4 }, { 166, 4 }, { 166, 4 }, { 166, 4 }, { 166, 4 }, { 166, 4 }, { 166, 5 }, { 166, 5 }, { 163, 6 }, { 164, 8 }, { 129, 2 }, { 129, 3 }, { 167, 1 }, { 167, 2 }, { 169, 1 }, { 169, 4 }, { 169, 1 }, { 169, 1 }, { 169, 1 }, { 169, 1 }, { 168, 2 }, { 168, 2 }, { 168, 2 }, { 168, 4 }, { 168, 1 }, { 168, 2 }, { 168, 8 }, { 168, 5 }, { 168, 5 }, { 168, 7 }, { 168, 7 }, { 168, 1 }, { 168, 1 }, { 168, 2 }, { 168, 2 }, { 168, 3 }, { 168, 1 }, { 168, 1 }, { 171, 7 }, { 171, 4 }, { 171, 4 }, { 171, 1 }, { 175, 2 }, { 176, 7 }, { 176, 4 }, { 176, 4 }, { 176, 1 }, { 177, 8 }, { 177, 5 }, { 177, 6 }, { 177, 6 }, { 177, 7 }, { 177, 6 }, { 177, 7 }, { 177, 7 }, { 177, 7 }, { 177, 5 }, { 177, 6 }, { 177, 6 }, { 170, 7 }, { 170, 4 }, { 170, 4 }, { 170, 1 }, { 172, 4 }, { 172, 4 }, { 172, 4 }, { 172, 4 }, { 172, 4 }, { 172, 4 }, { 172, 1 }, { 173, 4 }, { 173, 4 }, { 173, 4 }, { 173, 4 }, { 173, 1 }, { 174, 1 }, { 174, 2 }, { 178, 4 }, { 178, 3 }, { 178, 3 }, { 178, 2 }, { 179, 1 }, { 179, 1 }, { 179, 1 }, { 179, 1 }, { 179, 1 }, { 179, 1 }, { 179, 3 }, { 180, 1 }, { 180, 4 }, { 180, 2 }, { 180, 2 }, { 180, 3 }, { 180, 2 }, { 180, 2 }, { 181, 2 }, { 181, 3 }, { 182, 1 }, { 182, 3 }, { 184, 1 }, { 184, 2 }, { 184, 2 }, { 184, 2 }, { 184, 2 }, { 184, 2 }, { 184, 2 }, { 185, 1 }, { 185, 4 }, { 186, 1 }, { 186, 3 }, { 186, 3 }, { 186, 3 }, { 187, 1 }, { 187, 3 }, { 187, 3 }, { 188, 1 }, { 188, 3 }, { 188, 3 }, { 189, 1 }, { 189, 3 }, { 189, 3 }, { 189, 3 }, { 189, 3 }, { 190, 1 }, { 190, 3 }, { 190, 3 }, { 191, 1 }, { 191, 3 }, { 192, 1 }, { 192, 3 }, { 193, 1 }, { 193, 3 }, { 194, 1 }, { 194, 3 }, { 195, 1 }, { 195, 3 }, { 196, 1 }, { 196, 5 }, { 183, 1 }, { 183, 3 }, { 183, 3 }, { 183, 3 }, { 183, 3 }, { 183, 3 }, { 183, 3 }, { 183, 3 }, { 183, 3 }, { 183, 3 }, { 183, 3 }, { 183, 3 }, { 156, 1 }, { 156, 3 }, }; static void yy_accept(yyParser*); /* Forward Declaration */ /* ** Perform a reduce action and the shift that must immediately ** follow the reduce. */ static void yy_reduce( yyParser *yypParser, /* The parser */ int yyruleno /* Number of the rule by which to reduce */ ){ int yygoto; /* The next state */ int yyact; /* The next action */ YYMINORTYPE yygotominor; /* The LHS of the rule reduced */ yyStackEntry *yymsp; /* The top of the parser's stack */ int yysize; /* Amount to pop the stack */ ParseHLSLARG_FETCH; yymsp = &yypParser->yystack[yypParser->yyidx]; #if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */ if( yyTraceFILE && yyruleno>=0 && yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) ){ fprintf(yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt, yyRuleName[yyruleno]); } #endif /* NDEBUG */ /* Silence complaints from purify about yygotominor being uninitialized ** in some cases when it is copied into the stack after the following ** switch. yygotominor is uninitialized when a rule reduces that does ** not set the value of its left-hand side nonterminal. Leaving the ** value of the nonterminal uninitialized is utterly harmless as long ** as the value is never used. So really the only thing this code ** accomplishes is to quieten purify. ** ** 2007-01-16: The wireshark project (www.wireshark.org) reports that ** without this code, their parser segfaults. I'm not sure what there ** parser is doing to make this happen. This is the second bug report ** from wireshark this week. Clearly they are stressing Lemon in ways ** that it has not been previously stressed... (SQLite ticket #2172) */ /*memset(&yygotominor, 0, sizeof(yygotominor));*/ yygotominor = yyzerominor; switch( yyruleno ){ /* Beginning here are the reduction cases. A typical example ** follows: ** case 0: ** #line ** { ... } // User supplied code ** #line ** break; */ case 0: /* shader ::= compilation_units */ #line 78 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { assert(ctx->ast == NULL); REVERSE_LINKED_LIST(MOJOSHADER_astCompilationUnit, yymsp[0].minor.yy139); ctx->ast = (MOJOSHADER_astNode *) yymsp[0].minor.yy139; } #line 2766 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 1: /* compilation_units ::= compilation_unit */ #line 82 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy139 = yymsp[0].minor.yy139; } #line 2771 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 2: /* compilation_units ::= compilation_units compilation_unit */ #line 83 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { if (yymsp[0].minor.yy139) { yymsp[0].minor.yy139->next = yymsp[-1].minor.yy139; yygotominor.yy139 = yymsp[0].minor.yy139; } } #line 2776 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 3: /* compilation_unit ::= variable_declaration */ #line 88 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy139 = new_global_variable(ctx, yymsp[0].minor.yy24); } #line 2781 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 4: /* compilation_unit ::= function_signature SEMICOLON */ #line 89 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy139 = new_function(ctx, yymsp[-1].minor.yy364, NULL); } #line 2786 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 5: /* compilation_unit ::= function_signature statement_block */ #line 90 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy139 = new_function(ctx, yymsp[-1].minor.yy364, yymsp[0].minor.yy233); } #line 2791 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 6: /* compilation_unit ::= typedef */ #line 91 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy139 = new_global_typedef(ctx, yymsp[0].minor.yy71); } #line 2796 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 7: /* compilation_unit ::= struct_declaration SEMICOLON */ #line 92 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy139 = new_global_struct(ctx, yymsp[-1].minor.yy249); } #line 2801 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 8: /* typedef ::= TYPEDEF CONST datatype scalar_or_array */ #line 98 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy71 = new_typedef(ctx, 1, yymsp[-1].minor.yy37, yymsp[0].minor.yy380); push_usertype(ctx, yymsp[0].minor.yy380->identifier, yygotominor.yy71->datatype); } #line 2806 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 9: /* typedef ::= TYPEDEF datatype scalar_or_array */ #line 99 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy71 = new_typedef(ctx, 0, yymsp[-1].minor.yy37, yymsp[0].minor.yy380); push_usertype(ctx, yymsp[0].minor.yy380->identifier, yygotominor.yy71->datatype); } #line 2811 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 10: /* function_signature ::= function_storageclass function_details semantic */ #line 103 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy364 = yymsp[-1].minor.yy364; yygotominor.yy364->storage_class = yymsp[-2].minor.yy175; yygotominor.yy364->semantic = yymsp[0].minor.yy306; } #line 2816 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 11: /* function_signature ::= function_storageclass function_details */ #line 104 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy364 = yymsp[0].minor.yy364; yygotominor.yy364->storage_class = yymsp[-1].minor.yy175; } #line 2821 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 12: /* function_signature ::= function_details semantic */ #line 105 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy364 = yymsp[-1].minor.yy364; yygotominor.yy364->semantic = yymsp[0].minor.yy306; } #line 2826 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 13: /* function_signature ::= function_details */ #line 106 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy364 = yymsp[0].minor.yy364; } #line 2831 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 14: /* function_details ::= datatype IDENTIFIER LPAREN function_parameters RPAREN */ #line 110 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy364 = new_function_signature(ctx, yymsp[-4].minor.yy37, yymsp[-3].minor.yy0.string, yymsp[-1].minor.yy307); } #line 2836 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 15: /* function_details ::= VOID IDENTIFIER LPAREN function_parameters RPAREN */ #line 111 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy364 = new_function_signature(ctx, NULL, yymsp[-3].minor.yy0.string, yymsp[-1].minor.yy307); } #line 2841 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 16: /* function_storageclass ::= INLINE */ #line 121 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy175 = MOJOSHADER_AST_FNSTORECLS_INLINE; } #line 2846 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 17: /* function_parameters ::= VOID */ case 19: /* function_parameters ::= */ yytestcase(yyruleno==19); #line 125 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy307 = NULL; } #line 2852 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 18: /* function_parameters ::= function_parameter_list */ #line 126 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { REVERSE_LINKED_LIST(MOJOSHADER_astFunctionParameters, yymsp[0].minor.yy307); yygotominor.yy307 = yymsp[0].minor.yy307; } #line 2857 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 20: /* function_parameter_list ::= function_parameter */ #line 131 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy307 = yymsp[0].minor.yy307; } #line 2862 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 21: /* function_parameter_list ::= function_parameter_list COMMA function_parameter */ #line 132 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yymsp[0].minor.yy307->next = yymsp[-2].minor.yy307; yygotominor.yy307 = yymsp[0].minor.yy307; } #line 2867 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 22: /* function_parameter ::= input_modifier datatype IDENTIFIER semantic interpolation_mod initializer */ #line 138 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy307 = new_function_param(ctx, yymsp[-5].minor.yy75, yymsp[-4].minor.yy37, yymsp[-3].minor.yy0.string, yymsp[-2].minor.yy306, yymsp[-1].minor.yy111, yymsp[0].minor.yy322); } #line 2872 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 23: /* function_parameter ::= input_modifier datatype IDENTIFIER semantic interpolation_mod */ #line 139 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy307 = new_function_param(ctx, yymsp[-4].minor.yy75, yymsp[-3].minor.yy37, yymsp[-2].minor.yy0.string, yymsp[-1].minor.yy306, yymsp[0].minor.yy111, NULL); } #line 2877 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 24: /* function_parameter ::= input_modifier datatype IDENTIFIER semantic initializer */ #line 140 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy307 = new_function_param(ctx, yymsp[-4].minor.yy75, yymsp[-3].minor.yy37, yymsp[-2].minor.yy0.string, yymsp[-1].minor.yy306, MOJOSHADER_AST_INTERPMOD_NONE, yymsp[0].minor.yy322); } #line 2882 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 25: /* function_parameter ::= input_modifier datatype IDENTIFIER semantic */ #line 141 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy307 = new_function_param(ctx, yymsp[-3].minor.yy75, yymsp[-2].minor.yy37, yymsp[-1].minor.yy0.string, yymsp[0].minor.yy306, MOJOSHADER_AST_INTERPMOD_NONE, NULL); } #line 2887 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 26: /* function_parameter ::= input_modifier datatype IDENTIFIER interpolation_mod initializer */ #line 142 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy307 = new_function_param(ctx, yymsp[-4].minor.yy75, yymsp[-3].minor.yy37, yymsp[-2].minor.yy0.string, NULL, yymsp[-1].minor.yy111, yymsp[0].minor.yy322); } #line 2892 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 27: /* function_parameter ::= input_modifier datatype IDENTIFIER interpolation_mod */ #line 143 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy307 = new_function_param(ctx, yymsp[-3].minor.yy75, yymsp[-2].minor.yy37, yymsp[-1].minor.yy0.string, NULL, yymsp[0].minor.yy111, NULL); } #line 2897 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 28: /* function_parameter ::= input_modifier datatype IDENTIFIER initializer */ #line 144 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy307 = new_function_param(ctx, yymsp[-3].minor.yy75, yymsp[-2].minor.yy37, yymsp[-1].minor.yy0.string, NULL, MOJOSHADER_AST_INTERPMOD_NONE, yymsp[0].minor.yy322); } #line 2902 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 29: /* function_parameter ::= input_modifier datatype IDENTIFIER */ #line 145 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy307 = new_function_param(ctx, yymsp[-2].minor.yy75, yymsp[-1].minor.yy37, yymsp[0].minor.yy0.string, NULL, MOJOSHADER_AST_INTERPMOD_NONE, NULL); } #line 2907 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 30: /* function_parameter ::= datatype IDENTIFIER semantic interpolation_mod initializer */ #line 146 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy307 = new_function_param(ctx, MOJOSHADER_AST_INPUTMOD_NONE, yymsp[-4].minor.yy37, yymsp[-3].minor.yy0.string, yymsp[-2].minor.yy306, yymsp[-1].minor.yy111, yymsp[0].minor.yy322); } #line 2912 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 31: /* function_parameter ::= datatype IDENTIFIER semantic interpolation_mod */ #line 147 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy307 = new_function_param(ctx, MOJOSHADER_AST_INPUTMOD_NONE, yymsp[-3].minor.yy37, yymsp[-2].minor.yy0.string, yymsp[-1].minor.yy306, yymsp[0].minor.yy111, NULL); } #line 2917 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 32: /* function_parameter ::= datatype IDENTIFIER semantic initializer */ #line 148 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy307 = new_function_param(ctx, MOJOSHADER_AST_INPUTMOD_NONE, yymsp[-3].minor.yy37, yymsp[-2].minor.yy0.string, yymsp[-1].minor.yy306, MOJOSHADER_AST_INTERPMOD_NONE, yymsp[0].minor.yy322); } #line 2922 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 33: /* function_parameter ::= datatype IDENTIFIER semantic */ #line 149 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy307 = new_function_param(ctx, MOJOSHADER_AST_INPUTMOD_NONE, yymsp[-2].minor.yy37, yymsp[-1].minor.yy0.string, yymsp[0].minor.yy306, MOJOSHADER_AST_INTERPMOD_NONE, NULL); } #line 2927 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 34: /* function_parameter ::= datatype IDENTIFIER interpolation_mod initializer */ #line 150 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy307 = new_function_param(ctx, MOJOSHADER_AST_INPUTMOD_NONE, yymsp[-3].minor.yy37, yymsp[-2].minor.yy0.string, NULL, yymsp[-1].minor.yy111, yymsp[0].minor.yy322); } #line 2932 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 35: /* function_parameter ::= datatype IDENTIFIER interpolation_mod */ #line 151 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy307 = new_function_param(ctx, MOJOSHADER_AST_INPUTMOD_NONE, yymsp[-2].minor.yy37, yymsp[-1].minor.yy0.string, NULL, yymsp[0].minor.yy111, NULL); } #line 2937 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 36: /* function_parameter ::= datatype IDENTIFIER initializer */ #line 152 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy307 = new_function_param(ctx, MOJOSHADER_AST_INPUTMOD_NONE, yymsp[-2].minor.yy37, yymsp[-1].minor.yy0.string, NULL, MOJOSHADER_AST_INTERPMOD_NONE, yymsp[0].minor.yy322); } #line 2942 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 37: /* function_parameter ::= datatype IDENTIFIER */ #line 153 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy307 = new_function_param(ctx, MOJOSHADER_AST_INPUTMOD_NONE, yymsp[-1].minor.yy37, yymsp[0].minor.yy0.string, NULL, MOJOSHADER_AST_INTERPMOD_NONE, NULL); } #line 2947 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 38: /* input_modifier ::= IN */ #line 156 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy75 = MOJOSHADER_AST_INPUTMOD_IN; } #line 2952 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 39: /* input_modifier ::= INOUT */ case 41: /* input_modifier ::= IN OUT */ yytestcase(yyruleno==41); case 42: /* input_modifier ::= OUT IN */ yytestcase(yyruleno==42); #line 157 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy75 = MOJOSHADER_AST_INPUTMOD_INOUT; } #line 2959 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 40: /* input_modifier ::= OUT */ #line 158 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy75 = MOJOSHADER_AST_INPUTMOD_OUT; } #line 2964 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 43: /* input_modifier ::= UNIFORM */ #line 161 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy75 = MOJOSHADER_AST_INPUTMOD_UNIFORM; } #line 2969 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 44: /* semantic ::= COLON IDENTIFIER */ #line 164 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy306 = yymsp[0].minor.yy0.string; } #line 2974 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 45: /* interpolation_mod ::= LINEAR */ #line 168 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy111 = MOJOSHADER_AST_INTERPMOD_LINEAR; } #line 2979 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 46: /* interpolation_mod ::= CENTROID */ #line 169 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy111 = MOJOSHADER_AST_INTERPMOD_CENTROID; } #line 2984 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 47: /* interpolation_mod ::= NOINTERPOLATION */ #line 170 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy111 = MOJOSHADER_AST_INTERPMOD_NOINTERPOLATION; } #line 2989 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 48: /* interpolation_mod ::= NOPERSPECTIVE */ #line 171 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy111 = MOJOSHADER_AST_INTERPMOD_NOPERSPECTIVE; } #line 2994 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 49: /* interpolation_mod ::= SAMPLE */ #line 172 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy111 = MOJOSHADER_AST_INTERPMOD_SAMPLE; } #line 2999 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 50: /* variable_declaration ::= variable_attribute_list datatype variable_declaration_details_list SEMICOLON */ #line 176 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { REVERSE_LINKED_LIST(MOJOSHADER_astVariableDeclaration, yymsp[-1].minor.yy24); yygotominor.yy24 = yymsp[-1].minor.yy24; yygotominor.yy24->attributes = yymsp[-3].minor.yy270; yygotominor.yy24->datatype = yymsp[-2].minor.yy37; } #line 3004 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 51: /* variable_declaration ::= datatype variable_declaration_details_list SEMICOLON */ #line 177 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { REVERSE_LINKED_LIST(MOJOSHADER_astVariableDeclaration, yymsp[-1].minor.yy24); yygotominor.yy24 = yymsp[-1].minor.yy24; yygotominor.yy24->datatype = yymsp[-2].minor.yy37; } #line 3009 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 52: /* variable_declaration ::= struct_declaration variable_declaration_details_list SEMICOLON */ #line 179 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { REVERSE_LINKED_LIST(MOJOSHADER_astVariableDeclaration, yymsp[-1].minor.yy24); yygotominor.yy24 = yymsp[-1].minor.yy24; yygotominor.yy24->anonymous_datatype = yymsp[-2].minor.yy249; } #line 3014 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 53: /* variable_attribute_list ::= variable_attribute */ #line 182 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy270 = yymsp[0].minor.yy270; } #line 3019 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 54: /* variable_attribute_list ::= variable_attribute_list variable_attribute */ #line 183 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy270 = yymsp[-1].minor.yy270 | yymsp[0].minor.yy270; } #line 3024 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 55: /* variable_attribute ::= EXTERN */ #line 186 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy270 = MOJOSHADER_AST_VARATTR_EXTERN; } #line 3029 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 56: /* variable_attribute ::= NOINTERPOLATION */ #line 187 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy270 = MOJOSHADER_AST_VARATTR_NOINTERPOLATION; } #line 3034 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 57: /* variable_attribute ::= SHARED */ #line 188 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy270 = MOJOSHADER_AST_VARATTR_SHARED; } #line 3039 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 58: /* variable_attribute ::= STATIC */ #line 189 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy270 = MOJOSHADER_AST_VARATTR_STATIC; } #line 3044 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 59: /* variable_attribute ::= UNIFORM */ #line 190 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy270 = MOJOSHADER_AST_VARATTR_UNIFORM; } #line 3049 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 60: /* variable_attribute ::= VOLATILE */ #line 191 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy270 = MOJOSHADER_AST_VARATTR_VOLATILE; } #line 3054 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 61: /* variable_attribute ::= CONST */ #line 192 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy270 = MOJOSHADER_AST_VARATTR_CONST; } #line 3059 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 62: /* variable_attribute ::= ROWMAJOR */ #line 193 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy270 = MOJOSHADER_AST_VARATTR_ROWMAJOR; } #line 3064 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 63: /* variable_attribute ::= COLUMNMAJOR */ #line 194 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy270 = MOJOSHADER_AST_VARATTR_COLUMNMAJOR; } #line 3069 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 64: /* variable_declaration_details_list ::= variable_declaration_details */ #line 198 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy24 = yymsp[0].minor.yy24; } #line 3074 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 65: /* variable_declaration_details_list ::= variable_declaration_details_list COMMA variable_declaration_details */ #line 199 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy24 = yymsp[0].minor.yy24; yygotominor.yy24->next = yymsp[-2].minor.yy24; } #line 3079 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 66: /* variable_declaration_details ::= scalar_or_array semantic annotations initializer variable_lowlevel */ #line 203 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy24 = new_variable_declaration(ctx, yymsp[-4].minor.yy380, yymsp[-3].minor.yy306, yymsp[-2].minor.yy268, yymsp[-1].minor.yy322, yymsp[0].minor.yy82); } #line 3084 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 67: /* variable_declaration_details ::= scalar_or_array semantic annotations initializer */ #line 204 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy24 = new_variable_declaration(ctx, yymsp[-3].minor.yy380, yymsp[-2].minor.yy306, yymsp[-1].minor.yy268, yymsp[0].minor.yy322, NULL); } #line 3089 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 68: /* variable_declaration_details ::= scalar_or_array semantic annotations variable_lowlevel */ #line 205 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy24 = new_variable_declaration(ctx, yymsp[-3].minor.yy380, yymsp[-2].minor.yy306, yymsp[-1].minor.yy268, NULL, yymsp[0].minor.yy82); } #line 3094 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 69: /* variable_declaration_details ::= scalar_or_array semantic annotations */ #line 206 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy24 = new_variable_declaration(ctx, yymsp[-2].minor.yy380, yymsp[-1].minor.yy306, yymsp[0].minor.yy268, NULL, NULL); } #line 3099 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 70: /* variable_declaration_details ::= scalar_or_array semantic initializer variable_lowlevel */ #line 207 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy24 = new_variable_declaration(ctx, yymsp[-3].minor.yy380, yymsp[-2].minor.yy306, NULL, yymsp[-1].minor.yy322, yymsp[0].minor.yy82); } #line 3104 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 71: /* variable_declaration_details ::= scalar_or_array semantic initializer */ #line 208 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy24 = new_variable_declaration(ctx, yymsp[-2].minor.yy380, yymsp[-1].minor.yy306, NULL, yymsp[0].minor.yy322, NULL); } #line 3109 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 72: /* variable_declaration_details ::= scalar_or_array semantic variable_lowlevel */ #line 209 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy24 = new_variable_declaration(ctx, yymsp[-2].minor.yy380, yymsp[-1].minor.yy306, NULL, NULL, yymsp[0].minor.yy82); } #line 3114 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 73: /* variable_declaration_details ::= scalar_or_array semantic */ #line 210 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy24 = new_variable_declaration(ctx, yymsp[-1].minor.yy380, yymsp[0].minor.yy306, NULL, NULL, NULL); } #line 3119 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 74: /* variable_declaration_details ::= scalar_or_array annotations initializer variable_lowlevel */ #line 211 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy24 = new_variable_declaration(ctx, yymsp[-3].minor.yy380, NULL, yymsp[-2].minor.yy268, yymsp[-1].minor.yy322, yymsp[0].minor.yy82); } #line 3124 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 75: /* variable_declaration_details ::= scalar_or_array annotations initializer */ #line 212 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy24 = new_variable_declaration(ctx, yymsp[-2].minor.yy380, NULL, yymsp[-1].minor.yy268, yymsp[0].minor.yy322, NULL); } #line 3129 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 76: /* variable_declaration_details ::= scalar_or_array annotations variable_lowlevel */ #line 213 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy24 = new_variable_declaration(ctx, yymsp[-2].minor.yy380, NULL, yymsp[-1].minor.yy268, NULL, yymsp[0].minor.yy82); } #line 3134 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 77: /* variable_declaration_details ::= scalar_or_array annotations */ #line 214 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy24 = new_variable_declaration(ctx, yymsp[-1].minor.yy380, NULL, yymsp[0].minor.yy268, NULL, NULL); } #line 3139 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 78: /* variable_declaration_details ::= scalar_or_array initializer variable_lowlevel */ #line 215 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy24 = new_variable_declaration(ctx, yymsp[-2].minor.yy380, NULL, NULL, yymsp[-1].minor.yy322, yymsp[0].minor.yy82); } #line 3144 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 79: /* variable_declaration_details ::= scalar_or_array initializer */ #line 216 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy24 = new_variable_declaration(ctx, yymsp[-1].minor.yy380, NULL, NULL, yymsp[0].minor.yy322, NULL); } #line 3149 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 80: /* variable_declaration_details ::= scalar_or_array variable_lowlevel */ #line 217 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy24 = new_variable_declaration(ctx, yymsp[-1].minor.yy380, NULL, NULL, NULL, yymsp[0].minor.yy82); } #line 3154 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 81: /* variable_declaration_details ::= scalar_or_array */ #line 218 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy24 = new_variable_declaration(ctx, yymsp[0].minor.yy380, NULL, NULL, NULL, NULL); } #line 3159 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 82: /* struct_declaration ::= struct_intro LBRACE struct_member_list RBRACE */ #line 225 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { REVERSE_LINKED_LIST(MOJOSHADER_astStructMembers, yymsp[-1].minor.yy346); yygotominor.yy249 = new_struct_declaration(ctx, yymsp[-3].minor.yy306, yymsp[-1].minor.yy346); } #line 3164 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 83: /* struct_intro ::= STRUCT IDENTIFIER */ #line 229 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy306 = yymsp[0].minor.yy0.string; push_usertype(ctx, yygotominor.yy306, &ctx->dt_none); } #line 3169 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 84: /* struct_member_list ::= struct_member */ case 87: /* struct_member ::= struct_member_details */ yytestcase(yyruleno==87); #line 233 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy346 = yymsp[0].minor.yy346; } #line 3175 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 85: /* struct_member_list ::= struct_member_list struct_member */ #line 234 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy346 = yymsp[0].minor.yy346; MOJOSHADER_astStructMembers *i = yygotominor.yy346; while (i->next) { i = i->next; } i->next = yymsp[-1].minor.yy346; } #line 3180 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 86: /* struct_member ::= interpolation_mod struct_member_details */ #line 238 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { MOJOSHADER_astStructMembers *i = yymsp[0].minor.yy346; yygotominor.yy346 = yymsp[0].minor.yy346; while (i) { i->interpolation_mod = yymsp[-1].minor.yy111; i = i->next; } } #line 3185 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 88: /* struct_member_details ::= datatype struct_member_item_list SEMICOLON */ #line 243 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { MOJOSHADER_astStructMembers *i = yymsp[-1].minor.yy346; yygotominor.yy346 = yymsp[-1].minor.yy346; while (i) { i->datatype = yymsp[-2].minor.yy37; i = i->next; } } #line 3190 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 89: /* struct_member_item_list ::= scalar_or_array */ #line 247 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy346 = new_struct_member(ctx, yymsp[0].minor.yy380, NULL); } #line 3195 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 90: /* struct_member_item_list ::= scalar_or_array semantic */ #line 248 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy346 = new_struct_member(ctx, yymsp[-1].minor.yy380, yymsp[0].minor.yy306); } #line 3200 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 91: /* struct_member_item_list ::= struct_member_item_list COMMA IDENTIFIER */ #line 249 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy346 = new_struct_member(ctx, new_scalar_or_array(ctx, yymsp[0].minor.yy0.string, 0, NULL), NULL); yygotominor.yy346->next = yymsp[-2].minor.yy346; yygotominor.yy346->semantic = yymsp[-2].minor.yy346->semantic; } #line 3205 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 92: /* variable_lowlevel ::= packoffset register */ #line 253 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy82 = new_variable_lowlevel(ctx, yymsp[-1].minor.yy8, yymsp[0].minor.yy306); } #line 3210 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 93: /* variable_lowlevel ::= register packoffset */ #line 254 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy82 = new_variable_lowlevel(ctx, yymsp[0].minor.yy8, yymsp[-1].minor.yy306); } #line 3215 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 94: /* variable_lowlevel ::= packoffset */ #line 255 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy82 = new_variable_lowlevel(ctx, yymsp[0].minor.yy8, NULL); } #line 3220 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 95: /* variable_lowlevel ::= register */ #line 256 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy82 = new_variable_lowlevel(ctx, NULL, yymsp[0].minor.yy306); } #line 3225 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 96: /* scalar_or_array ::= IDENTIFIER LBRACKET RBRACKET */ #line 261 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy380 = new_scalar_or_array(ctx, yymsp[-2].minor.yy0.string, 1, NULL); } #line 3230 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 97: /* scalar_or_array ::= IDENTIFIER LBRACKET expression RBRACKET */ #line 262 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy380 = new_scalar_or_array(ctx, yymsp[-3].minor.yy0.string, 1, yymsp[-1].minor.yy322); } #line 3235 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 98: /* scalar_or_array ::= IDENTIFIER */ #line 263 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy380 = new_scalar_or_array(ctx, yymsp[0].minor.yy0.string, 0, NULL); } #line 3240 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 99: /* packoffset ::= COLON PACKOFFSET LPAREN IDENTIFIER DOT IDENTIFIER RPAREN */ #line 267 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy8 = new_pack_offset(ctx, yymsp[-3].minor.yy0.string, yymsp[-1].minor.yy0.string); } #line 3245 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 100: /* packoffset ::= COLON PACKOFFSET LPAREN IDENTIFIER RPAREN */ #line 268 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy8 = new_pack_offset(ctx, yymsp[-1].minor.yy0.string, NULL); } #line 3250 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 101: /* register ::= COLON REGISTER LPAREN IDENTIFIER RPAREN */ #line 274 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy306 = yymsp[-1].minor.yy0.string; } #line 3255 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 102: /* annotations ::= LT annotation_list GT */ #line 278 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { REVERSE_LINKED_LIST(MOJOSHADER_astAnnotations, yymsp[-1].minor.yy268); yygotominor.yy268 = yymsp[-1].minor.yy268; } #line 3260 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 103: /* annotation_list ::= annotation */ #line 282 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy268 = yymsp[0].minor.yy268; } #line 3265 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 104: /* annotation_list ::= annotation_list annotation */ #line 283 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy268 = yymsp[0].minor.yy268; yygotominor.yy268->next = yymsp[-1].minor.yy268; } #line 3270 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 105: /* annotation ::= datatype_scalar initializer SEMICOLON */ #line 288 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy268 = new_annotation(ctx, yymsp[-2].minor.yy37, yymsp[-1].minor.yy322); } #line 3275 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 106: /* initializer_block_list ::= expression */ case 110: /* initializer ::= ASSIGN initializer_block */ yytestcase(yyruleno==110); case 111: /* initializer ::= ASSIGN expression */ yytestcase(yyruleno==111); case 224: /* postfix_expr ::= primary_expr */ yytestcase(yyruleno==224); case 235: /* unary_expr ::= postfix_expr */ yytestcase(yyruleno==235); case 238: /* unary_expr ::= PLUS cast_expr */ yytestcase(yyruleno==238); case 242: /* cast_expr ::= unary_expr */ yytestcase(yyruleno==242); case 244: /* multiplicative_expr ::= cast_expr */ yytestcase(yyruleno==244); case 248: /* additive_expr ::= multiplicative_expr */ yytestcase(yyruleno==248); case 251: /* shift_expr ::= additive_expr */ yytestcase(yyruleno==251); case 254: /* relational_expr ::= shift_expr */ yytestcase(yyruleno==254); case 259: /* equality_expr ::= relational_expr */ yytestcase(yyruleno==259); case 262: /* and_expr ::= equality_expr */ yytestcase(yyruleno==262); case 264: /* exclusive_or_expr ::= and_expr */ yytestcase(yyruleno==264); case 266: /* inclusive_or_expr ::= exclusive_or_expr */ yytestcase(yyruleno==266); case 268: /* logical_and_expr ::= inclusive_or_expr */ yytestcase(yyruleno==268); case 270: /* logical_or_expr ::= logical_and_expr */ yytestcase(yyruleno==270); case 272: /* conditional_expr ::= logical_or_expr */ yytestcase(yyruleno==272); case 274: /* assignment_expr ::= conditional_expr */ yytestcase(yyruleno==274); case 286: /* expression ::= assignment_expr */ yytestcase(yyruleno==286); #line 292 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = yymsp[0].minor.yy322; } #line 3299 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 107: /* initializer_block_list ::= LBRACE initializer_block_list RBRACE */ case 109: /* initializer_block ::= LBRACE initializer_block_list RBRACE */ yytestcase(yyruleno==109); case 223: /* primary_expr ::= LPAREN expression RPAREN */ yytestcase(yyruleno==223); #line 293 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = yymsp[-1].minor.yy322; } #line 3306 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 108: /* initializer_block_list ::= initializer_block_list COMMA initializer_block_list */ case 287: /* expression ::= expression COMMA assignment_expr */ yytestcase(yyruleno==287); #line 294 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_COMMA, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); } #line 3312 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 112: /* intrinsic_datatype ::= datatype_vector */ case 113: /* intrinsic_datatype ::= datatype_matrix */ yytestcase(yyruleno==113); case 114: /* intrinsic_datatype ::= datatype_scalar */ yytestcase(yyruleno==114); case 115: /* intrinsic_datatype ::= datatype_sampler */ yytestcase(yyruleno==115); case 116: /* intrinsic_datatype ::= datatype_buffer */ yytestcase(yyruleno==116); case 117: /* datatype ::= intrinsic_datatype */ yytestcase(yyruleno==117); #line 306 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy37 = yymsp[0].minor.yy37; } #line 3322 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 118: /* datatype ::= USERTYPE */ #line 314 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy37 = yymsp[0].minor.yy0.datatype; } #line 3327 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 119: /* datatype_sampler ::= SAMPLER */ case 121: /* datatype_sampler ::= SAMPLER2D */ yytestcase(yyruleno==121); #line 317 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy37 = &ctx->dt_sampler2d; } #line 3333 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 120: /* datatype_sampler ::= SAMPLER1D */ #line 318 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy37 = &ctx->dt_sampler1d; } #line 3338 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 122: /* datatype_sampler ::= SAMPLER3D */ #line 320 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy37 = &ctx->dt_sampler3d; } #line 3343 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 123: /* datatype_sampler ::= SAMPLERCUBE */ #line 321 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy37 = &ctx->dt_samplercube; } #line 3348 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 124: /* datatype_sampler ::= SAMPLER_STATE */ case 125: /* datatype_sampler ::= SAMPLERSTATE */ yytestcase(yyruleno==125); #line 322 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy37 = &ctx->dt_samplerstate; } #line 3354 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 126: /* datatype_sampler ::= SAMPLERCOMPARISONSTATE */ #line 324 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy37 = &ctx->dt_samplercompstate; } #line 3359 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 127: /* datatype_scalar ::= BOOL */ #line 327 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy37 = &ctx->dt_bool; } #line 3364 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 128: /* datatype_scalar ::= INT */ #line 328 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy37 = &ctx->dt_int; } #line 3369 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 129: /* datatype_scalar ::= UINT */ #line 329 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy37 = &ctx->dt_uint; } #line 3374 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 130: /* datatype_scalar ::= HALF */ #line 330 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy37 = &ctx->dt_half; } #line 3379 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 131: /* datatype_scalar ::= FLOAT */ #line 331 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy37 = &ctx->dt_float; } #line 3384 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 132: /* datatype_scalar ::= DOUBLE */ #line 332 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy37 = &ctx->dt_double; } #line 3389 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 133: /* datatype_scalar ::= STRING */ #line 333 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy37 = &ctx->dt_string; } #line 3394 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 134: /* datatype_scalar ::= SNORM FLOAT */ #line 334 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy37 = &ctx->dt_float_snorm; } #line 3399 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 135: /* datatype_scalar ::= UNORM FLOAT */ #line 335 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy37 = &ctx->dt_float_unorm; } #line 3404 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 136: /* datatype_buffer ::= BUFFER LT BOOL GT */ #line 338 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy37 = &ctx->dt_buf_bool; } #line 3409 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 137: /* datatype_buffer ::= BUFFER LT INT GT */ #line 339 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy37 = &ctx->dt_buf_int; } #line 3414 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 138: /* datatype_buffer ::= BUFFER LT UINT GT */ #line 340 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy37 = &ctx->dt_buf_uint; } #line 3419 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 139: /* datatype_buffer ::= BUFFER LT HALF GT */ #line 341 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy37 = &ctx->dt_buf_half; } #line 3424 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 140: /* datatype_buffer ::= BUFFER LT FLOAT GT */ #line 342 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy37 = &ctx->dt_buf_float; } #line 3429 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 141: /* datatype_buffer ::= BUFFER LT DOUBLE GT */ #line 343 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy37 = &ctx->dt_buf_double; } #line 3434 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 142: /* datatype_buffer ::= BUFFER LT SNORM FLOAT GT */ #line 344 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy37 = &ctx->dt_buf_float_snorm; } #line 3439 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 143: /* datatype_buffer ::= BUFFER LT UNORM FLOAT GT */ #line 345 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy37 = &ctx->dt_buf_float_unorm; } #line 3444 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 144: /* datatype_vector ::= VECTOR LT datatype_scalar COMMA INT_CONSTANT GT */ #line 348 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy37 = new_datatype_vector(ctx, yymsp[-3].minor.yy37, (int) yymsp[-1].minor.yy0.i64); } #line 3449 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 145: /* datatype_matrix ::= MATRIX LT datatype_scalar COMMA INT_CONSTANT COMMA INT_CONSTANT GT */ #line 351 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy37 = new_datatype_matrix(ctx, yymsp[-5].minor.yy37, (int) yymsp[-3].minor.yy0.i64, (int) yymsp[-1].minor.yy0.i64); } #line 3454 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 146: /* statement_block ::= LBRACE RBRACE */ #line 355 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy233 = new_block_statement(ctx, NULL); } #line 3459 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 147: /* statement_block ::= LBRACE statement_list RBRACE */ #line 356 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { REVERSE_LINKED_LIST(MOJOSHADER_astStatement, yymsp[-1].minor.yy233); yygotominor.yy233 = new_block_statement(ctx, yymsp[-1].minor.yy233); } #line 3464 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 148: /* statement_list ::= statement */ case 172: /* statement ::= statement_block */ yytestcase(yyruleno==172); case 173: /* statement ::= for_statement */ yytestcase(yyruleno==173); #line 360 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy233 = yymsp[0].minor.yy233; } #line 3471 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 149: /* statement_list ::= statement_list statement */ #line 361 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy233 = yymsp[0].minor.yy233; yygotominor.yy233->next = yymsp[-1].minor.yy233; } #line 3476 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 150: /* statement_attribute ::= ISOLATE */ case 151: /* statement_attribute ::= MAXINSTRUCTIONCOUNT LPAREN INT_CONSTANT RPAREN */ yytestcase(yyruleno==151); case 152: /* statement_attribute ::= NOEXPRESSIONOPTIMIZATIONS */ yytestcase(yyruleno==152); case 153: /* statement_attribute ::= REMOVEUNUSEDINPUTS */ yytestcase(yyruleno==153); case 154: /* statement_attribute ::= UNUSED */ yytestcase(yyruleno==154); case 155: /* statement_attribute ::= XPS */ yytestcase(yyruleno==155); case 176: /* while_intro ::= LBRACKET LOOP RBRACKET WHILE */ yytestcase(yyruleno==176); case 181: /* for_intro ::= LBRACKET LOOP RBRACKET FOR */ yytestcase(yyruleno==181); case 197: /* do_intro ::= LBRACKET LOOP RBRACKET DO */ yytestcase(yyruleno==197); #line 367 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy270 = 0; } #line 3489 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 156: /* statement ::= BREAK SEMICOLON */ #line 376 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy233 = new_break_statement(ctx); } #line 3494 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 157: /* statement ::= CONTINUE SEMICOLON */ #line 377 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy233 = new_continue_statement(ctx); } #line 3499 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 158: /* statement ::= DISCARD SEMICOLON */ #line 378 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy233 = new_discard_statement(ctx); } #line 3504 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 159: /* statement ::= LBRACKET statement_attribute RBRACKET statement_block */ #line 379 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy233 = yymsp[0].minor.yy233; /* !!! FIXME: yygotominor.yy233->attributes = yymsp[-2].minor.yy270;*/ yymsp[-2].minor.yy270 = 0; } #line 3509 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 160: /* statement ::= variable_declaration */ #line 380 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy233 = new_vardecl_statement(ctx, yymsp[0].minor.yy24); } #line 3514 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 161: /* statement ::= struct_declaration SEMICOLON */ #line 381 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy233 = new_struct_statement(ctx, yymsp[-1].minor.yy249); } #line 3519 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 162: /* statement ::= do_intro DO statement WHILE LPAREN expression RPAREN SEMICOLON */ #line 382 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy233 = new_do_statement(ctx, yymsp[-7].minor.yy270, yymsp[-5].minor.yy233, yymsp[-2].minor.yy322); } #line 3524 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 163: /* statement ::= while_intro LPAREN expression RPAREN statement */ #line 383 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy233 = new_while_statement(ctx, yymsp[-4].minor.yy270, yymsp[-2].minor.yy322, yymsp[0].minor.yy233); } #line 3529 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 164: /* statement ::= if_intro LPAREN expression RPAREN statement */ #line 384 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy233 = new_if_statement(ctx, yymsp[-4].minor.yy270, yymsp[-2].minor.yy322, yymsp[0].minor.yy233, NULL); } #line 3534 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 165: /* statement ::= if_intro LPAREN expression RPAREN statement ELSE statement */ #line 385 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy233 = new_if_statement(ctx, yymsp[-6].minor.yy270, yymsp[-4].minor.yy322, yymsp[-2].minor.yy233, yymsp[0].minor.yy233); } #line 3539 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 166: /* statement ::= switch_intro LPAREN expression RPAREN LBRACE switch_case_list RBRACE */ #line 386 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { REVERSE_LINKED_LIST(MOJOSHADER_astSwitchCases, yymsp[-1].minor.yy165); yygotominor.yy233 = new_switch_statement(ctx, yymsp[-6].minor.yy270, yymsp[-4].minor.yy322, yymsp[-1].minor.yy165); } #line 3544 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 167: /* statement ::= typedef */ #line 387 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy233 = new_typedef_statement(ctx, yymsp[0].minor.yy71); } #line 3549 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 168: /* statement ::= SEMICOLON */ #line 388 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy233 = new_empty_statement(ctx); } #line 3554 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 169: /* statement ::= expression SEMICOLON */ #line 389 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy233 = new_expr_statement(ctx, yymsp[-1].minor.yy322); } #line 3559 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 170: /* statement ::= RETURN SEMICOLON */ #line 390 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy233 = new_return_statement(ctx, NULL); } #line 3564 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 171: /* statement ::= RETURN expression SEMICOLON */ #line 391 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy233 = new_return_statement(ctx, yymsp[-1].minor.yy322); } #line 3569 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 174: /* while_intro ::= LBRACKET UNROLL LPAREN INT_CONSTANT RPAREN RBRACKET WHILE */ case 179: /* for_intro ::= LBRACKET UNROLL LPAREN INT_CONSTANT RPAREN RBRACKET FOR */ yytestcase(yyruleno==179); #line 397 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy270 = (yymsp[-3].minor.yy0.i64 < 0) ? 0 : yymsp[-3].minor.yy0.i64; } #line 3575 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 175: /* while_intro ::= LBRACKET UNROLL RBRACKET WHILE */ case 180: /* for_intro ::= LBRACKET UNROLL RBRACKET FOR */ yytestcase(yyruleno==180); case 196: /* do_intro ::= LBRACKET UNROLL RBRACKET DO */ yytestcase(yyruleno==196); #line 398 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy270 = -1; } #line 3582 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 177: /* while_intro ::= WHILE */ case 182: /* for_intro ::= FOR */ yytestcase(yyruleno==182); case 198: /* do_intro ::= DO */ yytestcase(yyruleno==198); #line 400 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy270 = -2; } #line 3589 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 178: /* for_statement ::= for_intro for_details */ #line 404 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy233 = yymsp[0].minor.yy233; ((MOJOSHADER_astForStatement *) yygotominor.yy233)->unroll = yymsp[-1].minor.yy270; } #line 3594 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 183: /* for_details ::= LPAREN expression SEMICOLON expression SEMICOLON expression RPAREN statement */ #line 414 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy233 = new_for_statement(ctx, NULL, yymsp[-6].minor.yy322, yymsp[-4].minor.yy322, yymsp[-2].minor.yy322, yymsp[0].minor.yy233); } #line 3599 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 184: /* for_details ::= LPAREN SEMICOLON SEMICOLON RPAREN statement */ #line 415 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy233 = new_for_statement(ctx, NULL, NULL, NULL, NULL, yymsp[0].minor.yy233); } #line 3604 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 185: /* for_details ::= LPAREN SEMICOLON SEMICOLON expression RPAREN statement */ #line 416 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy233 = new_for_statement(ctx, NULL, NULL, NULL, yymsp[-2].minor.yy322, yymsp[0].minor.yy233); } #line 3609 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 186: /* for_details ::= LPAREN SEMICOLON expression SEMICOLON RPAREN statement */ #line 417 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy233 = new_for_statement(ctx, NULL, NULL, yymsp[-3].minor.yy322, NULL, yymsp[0].minor.yy233); } #line 3614 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 187: /* for_details ::= LPAREN SEMICOLON expression SEMICOLON expression RPAREN statement */ #line 418 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy233 = new_for_statement(ctx, NULL, NULL, yymsp[-4].minor.yy322, yymsp[-2].minor.yy322, yymsp[0].minor.yy233); } #line 3619 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 188: /* for_details ::= LPAREN expression SEMICOLON SEMICOLON RPAREN statement */ #line 419 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy233 = new_for_statement(ctx, NULL, yymsp[-4].minor.yy322, NULL, NULL, yymsp[0].minor.yy233); } #line 3624 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 189: /* for_details ::= LPAREN expression SEMICOLON SEMICOLON expression RPAREN statement */ #line 420 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy233 = new_for_statement(ctx, NULL, yymsp[-5].minor.yy322, NULL, yymsp[-2].minor.yy322, yymsp[0].minor.yy233); } #line 3629 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 190: /* for_details ::= LPAREN expression SEMICOLON expression SEMICOLON RPAREN statement */ #line 421 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy233 = new_for_statement(ctx, NULL, yymsp[-5].minor.yy322, yymsp[-3].minor.yy322, NULL, yymsp[0].minor.yy233); } #line 3634 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 191: /* for_details ::= LPAREN variable_declaration expression SEMICOLON expression RPAREN statement */ #line 422 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy233 = new_for_statement(ctx, yymsp[-5].minor.yy24, NULL, yymsp[-4].minor.yy322, yymsp[-2].minor.yy322, yymsp[0].minor.yy233); } #line 3639 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 192: /* for_details ::= LPAREN variable_declaration SEMICOLON RPAREN statement */ #line 423 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy233 = new_for_statement(ctx, yymsp[-3].minor.yy24, NULL, NULL, NULL, yymsp[0].minor.yy233); } #line 3644 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 193: /* for_details ::= LPAREN variable_declaration SEMICOLON expression RPAREN statement */ #line 424 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy233 = new_for_statement(ctx, yymsp[-4].minor.yy24, NULL, yymsp[-2].minor.yy322, NULL, yymsp[0].minor.yy233); } #line 3649 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 194: /* for_details ::= LPAREN variable_declaration expression SEMICOLON RPAREN statement */ #line 425 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy233 = new_for_statement(ctx, yymsp[-4].minor.yy24, NULL, yymsp[-3].minor.yy322, NULL, yymsp[0].minor.yy233); } #line 3654 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 195: /* do_intro ::= LBRACKET UNROLL LPAREN INT_CONSTANT RPAREN RBRACKET DO */ #line 428 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy270 = (yymsp[-3].minor.yy0.i64 < 0) ? 0 : (int) yymsp[-3].minor.yy0.i64; } #line 3659 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 199: /* if_intro ::= LBRACKET BRANCH RBRACKET IF */ #line 434 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy270 = MOJOSHADER_AST_IFATTR_BRANCH; } #line 3664 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 200: /* if_intro ::= LBRACKET FLATTEN RBRACKET IF */ #line 435 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy270 = MOJOSHADER_AST_IFATTR_FLATTEN; } #line 3669 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 201: /* if_intro ::= LBRACKET IFALL RBRACKET IF */ #line 436 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy270 = MOJOSHADER_AST_IFATTR_IFALL; } #line 3674 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 202: /* if_intro ::= LBRACKET IFANY RBRACKET IF */ #line 437 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy270 = MOJOSHADER_AST_IFATTR_IFANY; } #line 3679 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 203: /* if_intro ::= LBRACKET PREDICATE RBRACKET IF */ #line 438 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy270 = MOJOSHADER_AST_IFATTR_PREDICATE; } #line 3684 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 204: /* if_intro ::= LBRACKET PREDICATEBLOCK RBRACKET IF */ #line 439 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy270 = MOJOSHADER_AST_IFATTR_PREDICATEBLOCK; } #line 3689 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 205: /* if_intro ::= IF */ #line 440 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy270 = MOJOSHADER_AST_IFATTR_NONE; } #line 3694 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 206: /* switch_intro ::= LBRACKET FLATTEN RBRACKET SWITCH */ #line 443 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy270 = MOJOSHADER_AST_SWITCHATTR_FLATTEN; } #line 3699 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 207: /* switch_intro ::= LBRACKET BRANCH RBRACKET SWITCH */ #line 444 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy270 = MOJOSHADER_AST_SWITCHATTR_BRANCH; } #line 3704 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 208: /* switch_intro ::= LBRACKET FORCECASE RBRACKET SWITCH */ #line 445 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy270 = MOJOSHADER_AST_SWITCHATTR_FORCECASE; } #line 3709 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 209: /* switch_intro ::= LBRACKET CALL RBRACKET SWITCH */ #line 446 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy270 = MOJOSHADER_AST_SWITCHATTR_CALL; } #line 3714 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 210: /* switch_intro ::= SWITCH */ #line 447 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy270 = MOJOSHADER_AST_SWITCHATTR_NONE; } #line 3719 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 211: /* switch_case_list ::= switch_case */ #line 451 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy165 = yymsp[0].minor.yy165; } #line 3724 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 212: /* switch_case_list ::= switch_case_list switch_case */ #line 452 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy165 = yymsp[0].minor.yy165; yygotominor.yy165->next = yymsp[-1].minor.yy165; } #line 3729 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 213: /* switch_case ::= CASE expression COLON statement_list */ #line 458 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { REVERSE_LINKED_LIST(MOJOSHADER_astStatement, yymsp[0].minor.yy233); yygotominor.yy165 = new_switch_case(ctx, yymsp[-2].minor.yy322, yymsp[0].minor.yy233); } #line 3734 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 214: /* switch_case ::= CASE expression COLON */ #line 459 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy165 = new_switch_case(ctx, yymsp[-1].minor.yy322, NULL); } #line 3739 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 215: /* switch_case ::= DEFAULT COLON statement_list */ #line 460 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { REVERSE_LINKED_LIST(MOJOSHADER_astStatement, yymsp[0].minor.yy233); yygotominor.yy165 = new_switch_case(ctx, NULL, yymsp[0].minor.yy233); } #line 3744 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 216: /* switch_case ::= DEFAULT COLON */ #line 461 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy165 = new_switch_case(ctx, NULL, NULL); } #line 3749 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 217: /* primary_expr ::= IDENTIFIER */ #line 466 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_identifier_expr(ctx, yymsp[0].minor.yy0.string); } #line 3754 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 218: /* primary_expr ::= INT_CONSTANT */ #line 467 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_literal_int_expr(ctx, yymsp[0].minor.yy0.i64); } #line 3759 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 219: /* primary_expr ::= FLOAT_CONSTANT */ #line 468 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_literal_float_expr(ctx, yymsp[0].minor.yy0.dbl); } #line 3764 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 220: /* primary_expr ::= STRING_LITERAL */ #line 469 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_literal_string_expr(ctx, yymsp[0].minor.yy0.string); } #line 3769 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 221: /* primary_expr ::= TRUE */ #line 470 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_literal_boolean_expr(ctx, 1); } #line 3774 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 222: /* primary_expr ::= FALSE */ #line 471 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_literal_boolean_expr(ctx, 0); } #line 3779 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 225: /* postfix_expr ::= postfix_expr LBRACKET expression RBRACKET */ #line 477 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_DEREF_ARRAY, yymsp[-3].minor.yy322, yymsp[-1].minor.yy322); } #line 3784 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 226: /* postfix_expr ::= IDENTIFIER arguments */ #line 478 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_callfunc_expr(ctx, yymsp[-1].minor.yy0.string, yymsp[0].minor.yy26); } #line 3789 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 227: /* postfix_expr ::= datatype arguments */ #line 479 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_constructor_expr(ctx, yymsp[-1].minor.yy37, yymsp[0].minor.yy26); } #line 3794 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 228: /* postfix_expr ::= postfix_expr DOT IDENTIFIER */ #line 480 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_deref_struct_expr(ctx, yymsp[-2].minor.yy322, yymsp[0].minor.yy0.string); } #line 3799 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 229: /* postfix_expr ::= postfix_expr PLUSPLUS */ #line 481 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_unary_expr(ctx, MOJOSHADER_AST_OP_POSTINCREMENT, yymsp[-1].minor.yy322); } #line 3804 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 230: /* postfix_expr ::= postfix_expr MINUSMINUS */ #line 482 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_unary_expr(ctx, MOJOSHADER_AST_OP_POSTDECREMENT, yymsp[-1].minor.yy322); } #line 3809 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 231: /* arguments ::= LPAREN RPAREN */ #line 486 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy26 = NULL; } #line 3814 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 232: /* arguments ::= LPAREN argument_list RPAREN */ #line 487 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { REVERSE_LINKED_LIST(MOJOSHADER_astArguments, yymsp[-1].minor.yy26); yygotominor.yy26 = yymsp[-1].minor.yy26; } #line 3819 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 233: /* argument_list ::= assignment_expr */ #line 491 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy26 = new_argument(ctx, yymsp[0].minor.yy322); } #line 3824 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 234: /* argument_list ::= argument_list COMMA assignment_expr */ #line 492 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy26 = new_argument(ctx, yymsp[0].minor.yy322); yygotominor.yy26->next = yymsp[-2].minor.yy26; } #line 3829 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 236: /* unary_expr ::= PLUSPLUS unary_expr */ #line 497 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_unary_expr(ctx, MOJOSHADER_AST_OP_PREINCREMENT, yymsp[0].minor.yy322); } #line 3834 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 237: /* unary_expr ::= MINUSMINUS unary_expr */ #line 498 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_unary_expr(ctx, MOJOSHADER_AST_OP_PREDECREMENT, yymsp[0].minor.yy322); } #line 3839 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 239: /* unary_expr ::= MINUS cast_expr */ #line 500 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_unary_expr(ctx, MOJOSHADER_AST_OP_NEGATE, yymsp[0].minor.yy322); } #line 3844 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 240: /* unary_expr ::= COMPLEMENT cast_expr */ #line 501 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_unary_expr(ctx, MOJOSHADER_AST_OP_COMPLEMENT, yymsp[0].minor.yy322); } #line 3849 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 241: /* unary_expr ::= EXCLAMATION cast_expr */ #line 502 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_unary_expr(ctx, MOJOSHADER_AST_OP_NOT, yymsp[0].minor.yy322); } #line 3854 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 243: /* cast_expr ::= LPAREN datatype RPAREN cast_expr */ #line 507 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_cast_expr(ctx, yymsp[-2].minor.yy37, yymsp[0].minor.yy322); } #line 3859 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 245: /* multiplicative_expr ::= multiplicative_expr STAR cast_expr */ #line 512 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_MULTIPLY, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); } #line 3864 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 246: /* multiplicative_expr ::= multiplicative_expr SLASH cast_expr */ #line 513 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_DIVIDE, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); } #line 3869 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 247: /* multiplicative_expr ::= multiplicative_expr PERCENT cast_expr */ #line 514 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_MODULO, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); } #line 3874 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 249: /* additive_expr ::= additive_expr PLUS multiplicative_expr */ #line 519 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_ADD, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); } #line 3879 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 250: /* additive_expr ::= additive_expr MINUS multiplicative_expr */ #line 520 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_SUBTRACT, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); } #line 3884 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 252: /* shift_expr ::= shift_expr LSHIFT additive_expr */ #line 525 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_LSHIFT, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); } #line 3889 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 253: /* shift_expr ::= shift_expr RSHIFT additive_expr */ #line 526 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_RSHIFT, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); } #line 3894 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 255: /* relational_expr ::= relational_expr LT shift_expr */ #line 531 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_LESSTHAN, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); } #line 3899 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 256: /* relational_expr ::= relational_expr GT shift_expr */ #line 532 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_GREATERTHAN, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); } #line 3904 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 257: /* relational_expr ::= relational_expr LEQ shift_expr */ #line 533 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_LESSTHANOREQUAL, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); } #line 3909 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 258: /* relational_expr ::= relational_expr GEQ shift_expr */ #line 534 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_GREATERTHANOREQUAL, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); } #line 3914 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 260: /* equality_expr ::= equality_expr EQL relational_expr */ #line 539 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_EQUAL, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); } #line 3919 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 261: /* equality_expr ::= equality_expr NEQ relational_expr */ #line 540 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_NOTEQUAL, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); } #line 3924 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 263: /* and_expr ::= and_expr AND equality_expr */ #line 545 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_BINARYAND, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); } #line 3929 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 265: /* exclusive_or_expr ::= exclusive_or_expr XOR and_expr */ #line 550 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_BINARYXOR, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); } #line 3934 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 267: /* inclusive_or_expr ::= inclusive_or_expr OR exclusive_or_expr */ #line 555 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_BINARYOR, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); } #line 3939 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 269: /* logical_and_expr ::= logical_and_expr ANDAND inclusive_or_expr */ #line 560 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_LOGICALAND, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); } #line 3944 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 271: /* logical_or_expr ::= logical_or_expr OROR logical_and_expr */ #line 565 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_LOGICALOR, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); } #line 3949 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 273: /* conditional_expr ::= logical_or_expr QUESTION logical_or_expr COLON conditional_expr */ #line 570 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_ternary_expr(ctx, MOJOSHADER_AST_OP_CONDITIONAL, yymsp[-4].minor.yy322, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); } #line 3954 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 275: /* assignment_expr ::= unary_expr ASSIGN assignment_expr */ #line 575 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_ASSIGN, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); } #line 3959 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 276: /* assignment_expr ::= unary_expr MULASSIGN assignment_expr */ #line 576 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_MULASSIGN, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); } #line 3964 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 277: /* assignment_expr ::= unary_expr DIVASSIGN assignment_expr */ #line 577 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_DIVASSIGN, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); } #line 3969 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 278: /* assignment_expr ::= unary_expr MODASSIGN assignment_expr */ #line 578 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_MODASSIGN, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); } #line 3974 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 279: /* assignment_expr ::= unary_expr ADDASSIGN assignment_expr */ #line 579 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_ADDASSIGN, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); } #line 3979 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 280: /* assignment_expr ::= unary_expr SUBASSIGN assignment_expr */ #line 580 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_SUBASSIGN, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); } #line 3984 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 281: /* assignment_expr ::= unary_expr LSHIFTASSIGN assignment_expr */ #line 581 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_LSHIFTASSIGN, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); } #line 3989 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 282: /* assignment_expr ::= unary_expr RSHIFTASSIGN assignment_expr */ #line 582 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_RSHIFTASSIGN, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); } #line 3994 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 283: /* assignment_expr ::= unary_expr ANDASSIGN assignment_expr */ #line 583 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_ANDASSIGN, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); } #line 3999 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 284: /* assignment_expr ::= unary_expr XORASSIGN assignment_expr */ #line 584 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_XORASSIGN, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); } #line 4004 "E:/mojoshader/mojoshader_parser_hlsl.h" break; case 285: /* assignment_expr ::= unary_expr ORASSIGN assignment_expr */ #line 585 "E:/mojoshader/mojoshader_parser_hlsl.lemon" { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_ORASSIGN, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); } #line 4009 "E:/mojoshader/mojoshader_parser_hlsl.h" break; default: break; }; yygoto = yyRuleInfo[yyruleno].lhs; yysize = yyRuleInfo[yyruleno].nrhs; yypParser->yyidx -= yysize; yyact = yy_find_reduce_action(yymsp[-yysize].stateno,(YYCODETYPE)yygoto); if( yyact < YYNSTATE ){ #if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */ /* If we are not debugging and the reduce action popped at least ** one element off the stack, then we can push the new element back ** onto the stack here, and skip the stack overflow test in yy_shift(). ** That gives a significant speed improvement. */ if( yysize ){ yypParser->yyidx++; yymsp -= yysize-1; yymsp->stateno = (YYACTIONTYPE)yyact; yymsp->major = (YYCODETYPE)yygoto; yymsp->minor = yygotominor; }else #endif { yy_shift(yypParser,yyact,yygoto,&yygotominor); } }else{ assert( yyact == YYNSTATE + YYNRULE + 1 ); yy_accept(yypParser); } } /* ** The following code executes when the parse fails */ #ifndef YYNOERRORRECOVERY static void yy_parse_failed( yyParser *yypParser /* The parser */ ){ ParseHLSLARG_FETCH; #if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */ if( yyTraceFILE ){ fprintf(yyTraceFILE,"%sFail!\n",yyTracePrompt); } #endif while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); /* Here code is inserted which will be executed whenever the ** parser fails */ #line 42 "E:/mojoshader/mojoshader_parser_hlsl.lemon" // !!! FIXME: make this a proper fail() function. fail(ctx, "Giving up. Parser is hopelessly lost..."); #line 4061 "E:/mojoshader/mojoshader_parser_hlsl.h" ParseHLSLARG_STORE; /* Suppress warning about unused %extra_argument variable */ } #endif /* YYNOERRORRECOVERY */ /* ** The following code executes when a syntax error first occurs. */ static void yy_syntax_error( yyParser *yypParser, /* The parser */ int yymajor, /* The major type of the error token */ YYMINORTYPE yyminor /* The minor type of the error token */ ){ ParseHLSLARG_FETCH; #define TOKEN (yyminor.yy0) #line 37 "E:/mojoshader/mojoshader_parser_hlsl.lemon" // !!! FIXME: make this a proper fail() function. fail(ctx, "Syntax error"); #line 4080 "E:/mojoshader/mojoshader_parser_hlsl.h" ParseHLSLARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* ** The following is executed when the parser accepts */ static void yy_accept( yyParser *yypParser /* The parser */ ){ ParseHLSLARG_FETCH; #if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */ if( yyTraceFILE ){ fprintf(yyTraceFILE,"%sAccept!\n",yyTracePrompt); } #endif while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); /* Here code is inserted which will be executed whenever the ** parser accepts */ ParseHLSLARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* The main parser program. ** The first argument is a pointer to a structure obtained from ** "ParseHLSLAlloc" which describes the current state of the parser. ** The second argument is the major token number. The third is ** the minor token. The fourth optional argument is whatever the ** user wants (and specified in the grammar) and is available for ** use by the action routines. ** ** Inputs: **
    **
  • A pointer to the parser (an opaque structure.) **
  • The major token number. **
  • The minor token number. **
  • An option argument of a grammar-specified type. **
** ** Outputs: ** None. */ #if __MOJOSHADER__ static #endif void ParseHLSL( void *yyp, /* The parser */ int yymajor, /* The major token code number */ ParseHLSLTOKENTYPE yyminor /* The value for the token */ ParseHLSLARG_PDECL /* Optional %extra_argument parameter */ ){ YYMINORTYPE yyminorunion; int yyact; /* The parser action. */ int yyendofinput; /* True if we are at the end of input */ #ifdef YYERRORSYMBOL int yyerrorhit = 0; /* True if yymajor has invoked an error */ #endif yyParser *yypParser; /* The parser */ /* (re)initialize the parser, if necessary */ yypParser = (yyParser*)yyp; if( yypParser->yyidx<0 ){ #if YYSTACKDEPTH<=0 if( yypParser->yystksz <=0 ){ /*memset(&yyminorunion, 0, sizeof(yyminorunion));*/ yyminorunion = yyzerominor; yyStackOverflow(yypParser, &yyminorunion); return; } #endif yypParser->yyidx = 0; yypParser->yyerrcnt = -1; yypParser->yystack[0].stateno = 0; yypParser->yystack[0].major = 0; } yyminorunion.yy0 = yyminor; yyendofinput = (yymajor==0); ParseHLSLARG_STORE; #if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */ if( yyTraceFILE ){ fprintf(yyTraceFILE,"%sInput %s\n",yyTracePrompt,yyTokenName[yymajor]); } #endif do{ yyact = yy_find_shift_action(yypParser,(YYCODETYPE)yymajor); if( yyactyyerrcnt--; yymajor = YYNOCODE; }else if( yyact < YYNSTATE + YYNRULE ){ yy_reduce(yypParser,yyact-YYNSTATE); }else{ assert( yyact == YY_ERROR_ACTION ); #ifdef YYERRORSYMBOL int yymx; #endif #if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */ if( yyTraceFILE ){ fprintf(yyTraceFILE,"%sSyntax Error!\n",yyTracePrompt); } #endif #ifdef YYERRORSYMBOL /* A syntax error has occurred. ** The response to an error depends upon whether or not the ** grammar defines an error token "ERROR". ** ** This is what we do if the grammar does define ERROR: ** ** * Call the %syntax_error function. ** ** * Begin popping the stack until we enter a state where ** it is legal to shift the error symbol, then shift ** the error symbol. ** ** * Set the error count to three. ** ** * Begin accepting and shifting new tokens. No new error ** processing will occur until three tokens have been ** shifted successfully. ** */ if( yypParser->yyerrcnt<0 ){ yy_syntax_error(yypParser,yymajor,yyminorunion); } yymx = yypParser->yystack[yypParser->yyidx].major; if( yymx==YYERRORSYMBOL || yyerrorhit ){ #if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */ if( yyTraceFILE ){ fprintf(yyTraceFILE,"%sDiscard input token %s\n", yyTracePrompt,yyTokenName[yymajor]); } #endif yy_destructor(yypParser, (YYCODETYPE)yymajor,&yyminorunion); yymajor = YYNOCODE; }else{ while( yypParser->yyidx >= 0 && yymx != YYERRORSYMBOL && (yyact = yy_find_reduce_action( yypParser->yystack[yypParser->yyidx].stateno, YYERRORSYMBOL)) >= YYNSTATE ){ yy_pop_parser_stack(yypParser); } if( yypParser->yyidx < 0 || yymajor==0 ){ yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); yy_parse_failed(yypParser); yymajor = YYNOCODE; }else if( yymx!=YYERRORSYMBOL ){ YYMINORTYPE u2; u2.YYERRSYMDT = 0; yy_shift(yypParser,yyact,YYERRORSYMBOL,&u2); } } yypParser->yyerrcnt = 3; yyerrorhit = 1; #elif defined(YYNOERRORRECOVERY) /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to ** do any kind of error recovery. Instead, simply invoke the syntax ** error routine and continue going as if nothing had happened. ** ** Applications can set this macro (for example inside %include) if ** they intend to abandon the parse upon the first syntax error seen. */ yy_syntax_error(yypParser,yymajor,yyminorunion); yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); yymajor = YYNOCODE; #else /* YYERRORSYMBOL is not defined */ /* This is what we do if the grammar does not define ERROR: ** ** * Report an error message, and throw away the input token. ** ** * If the input token is $, then fail the parse. ** ** As before, subsequent error messages are suppressed until ** three input tokens have been successfully shifted. */ if( yypParser->yyerrcnt<=0 ){ yy_syntax_error(yypParser,yymajor,yyminorunion); } yypParser->yyerrcnt = 3; yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); if( yyendofinput ){ yy_parse_failed(yypParser); } yymajor = YYNOCODE; #endif } }while( yymajor!=YYNOCODE && yypParser->yyidx>=0 ); return; }