diff --git a/src/libs/glsl/glsl.g b/src/libs/glsl/glsl.g index 597d5d12d9524f1f41e3a20e015efe7a8808fa4a..934545d74a2fcb63f54aca908f9312c864335594 100644 --- a/src/libs/glsl/glsl.g +++ b/src/libs/glsl/glsl.g @@ -207,6 +207,7 @@ %token PREPROC "preprocessor directive" %token COMMENT "comment" %token ERROR "error" +%token RESERVED "reserved word" %start translation_unit diff --git a/src/libs/glsl/glsllexer.cpp b/src/libs/glsl/glsllexer.cpp index a400643c119239e147812e82e276e49392551c69..232ab46a28a63c5aa5317baec6c93b6adbe5a858 100644 --- a/src/libs/glsl/glsllexer.cpp +++ b/src/libs/glsl/glsllexer.cpp @@ -393,10 +393,11 @@ int Lexer::findKeyword(const char *word, int length) const if (!(t & Variant_Mask)) return t; if ((_variant & t & Variant_Mask) == 0) { - // TODO: issue a proper error for the unsupported keyword - QByteArray keyword(word, length); - fprintf(stderr, "unsupported keyword `%s' at line %d\n", - keyword.constData(), _lineno); + // Return a "reserved word" token if this keyword is not permitted + // in the current language variant so that the syntax highlighter + // can warn the user about the word. + if (!_scanKeywords) + return Parser::T_RESERVED; } return t & ~Variant_Mask; } diff --git a/src/libs/glsl/glslparser.cpp b/src/libs/glsl/glslparser.cpp index 6268a0dcc7c57aa54b8cf69f208b837d73e866c9..a1a73aad58d5b033c848f08111c5076e87e90aba 100644 --- a/src/libs/glsl/glslparser.cpp +++ b/src/libs/glsl/glslparser.cpp @@ -1,5 +1,5 @@ -#line 399 "./glsl.g" +#line 400 "./glsl.g" /************************************************************************** ** @@ -168,137 +168,137 @@ TranslationUnit *Parser::parse() return 0; } -#line 570 "./glsl.g" +#line 571 "./glsl.g" void Parser::reduce(int ruleno) { switch(ruleno) { -#line 579 "./glsl.g" +#line 580 "./glsl.g" case 0: { ast(1) = makeAstNode<IdentifierExpression>(string(1)); } break; -#line 586 "./glsl.g" +#line 587 "./glsl.g" case 1: { ast(1) = makeAstNode<LiteralExpression>(string(1)); } break; -#line 593 "./glsl.g" +#line 594 "./glsl.g" case 2: { ast(1) = makeAstNode<LiteralExpression>(_engine->identifier("true", 4)); } break; -#line 600 "./glsl.g" +#line 601 "./glsl.g" case 3: { ast(1) = makeAstNode<LiteralExpression>(_engine->identifier("false", 5)); } break; -#line 607 "./glsl.g" +#line 608 "./glsl.g" case 4: { // nothing to do. } break; -#line 614 "./glsl.g" +#line 615 "./glsl.g" case 5: { ast(1) = ast(2); } break; -#line 621 "./glsl.g" +#line 622 "./glsl.g" case 6: { // nothing to do. } break; -#line 628 "./glsl.g" +#line 629 "./glsl.g" case 7: { ast(1) = makeAstNode<BinaryExpression>(AST::Kind_ArrayAccess, expression(1), expression(3)); } break; -#line 635 "./glsl.g" +#line 636 "./glsl.g" case 8: { // nothing to do. } break; -#line 642 "./glsl.g" +#line 643 "./glsl.g" case 9: { ast(1) = makeAstNode<MemberAccessExpression>(expression(1), string(3)); } break; -#line 649 "./glsl.g" +#line 650 "./glsl.g" case 10: { ast(1) = makeAstNode<UnaryExpression>(AST::Kind_PostIncrement, expression(1)); } break; -#line 656 "./glsl.g" +#line 657 "./glsl.g" case 11: { ast(1) = makeAstNode<UnaryExpression>(AST::Kind_PostDecrement, expression(1)); } break; -#line 663 "./glsl.g" +#line 664 "./glsl.g" case 12: { // nothing to do. } break; -#line 670 "./glsl.g" +#line 671 "./glsl.g" case 13: { // nothing to do. } break; -#line 677 "./glsl.g" +#line 678 "./glsl.g" case 14: { ast(1) = makeAstNode<FunctionCallExpression> (sym(1).function.id, sym(1).function.arguments); } break; -#line 685 "./glsl.g" +#line 686 "./glsl.g" case 15: { ast(1) = makeAstNode<FunctionCallExpression> (expression(1), sym(3).function.id, sym(3).function.arguments); } break; -#line 693 "./glsl.g" +#line 694 "./glsl.g" case 16: { // nothing to do. } break; -#line 700 "./glsl.g" +#line 701 "./glsl.g" case 17: { // nothing to do. } break; -#line 707 "./glsl.g" +#line 708 "./glsl.g" case 18: { sym(1).function.id = sym(1).function_identifier; sym(1).function.arguments = 0; } break; -#line 715 "./glsl.g" +#line 716 "./glsl.g" case 19: { sym(1).function.id = sym(1).function_identifier; sym(1).function.arguments = 0; } break; -#line 723 "./glsl.g" +#line 724 "./glsl.g" case 20: { sym(1).function.id = sym(1).function_identifier; @@ -306,7 +306,7 @@ case 20: { makeAstNode< List<Expression *> >(expression(2)); } break; -#line 732 "./glsl.g" +#line 733 "./glsl.g" case 21: { sym(1).function.arguments = @@ -314,379 +314,379 @@ case 21: { (sym(1).function.arguments, expression(3)); } break; -#line 741 "./glsl.g" +#line 742 "./glsl.g" case 22: { // nothing to do. } break; -#line 748 "./glsl.g" +#line 749 "./glsl.g" case 23: { ast(1) = makeAstNode<FunctionIdentifier>(type(1)); } break; -#line 755 "./glsl.g" +#line 756 "./glsl.g" case 24: { ast(1) = makeAstNode<FunctionIdentifier>(string(1)); } break; -#line 762 "./glsl.g" +#line 763 "./glsl.g" case 25: { // nothing to do. } break; -#line 769 "./glsl.g" +#line 770 "./glsl.g" case 26: { ast(1) = makeAstNode<UnaryExpression>(AST::Kind_PreIncrement, expression(2)); } break; -#line 776 "./glsl.g" +#line 777 "./glsl.g" case 27: { ast(1) = makeAstNode<UnaryExpression>(AST::Kind_PreDecrement, expression(2)); } break; -#line 783 "./glsl.g" +#line 784 "./glsl.g" case 28: { ast(1) = makeAstNode<UnaryExpression>(sym(1).kind, expression(2)); } break; -#line 790 "./glsl.g" +#line 791 "./glsl.g" case 29: { sym(1).kind = AST::Kind_UnaryPlus; } break; -#line 797 "./glsl.g" +#line 798 "./glsl.g" case 30: { sym(1).kind = AST::Kind_UnaryMinus; } break; -#line 804 "./glsl.g" +#line 805 "./glsl.g" case 31: { sym(1).kind = AST::Kind_LogicalNot; } break; -#line 811 "./glsl.g" +#line 812 "./glsl.g" case 32: { sym(1).kind = AST::Kind_BitwiseNot; } break; -#line 818 "./glsl.g" +#line 819 "./glsl.g" case 33: { // nothing to do. } break; -#line 825 "./glsl.g" +#line 826 "./glsl.g" case 34: { ast(1) = makeAstNode<BinaryExpression>(AST::Kind_Multiply, expression(1), expression(3)); } break; -#line 832 "./glsl.g" +#line 833 "./glsl.g" case 35: { ast(1) = makeAstNode<BinaryExpression>(AST::Kind_Divide, expression(1), expression(3)); } break; -#line 839 "./glsl.g" +#line 840 "./glsl.g" case 36: { ast(1) = makeAstNode<BinaryExpression>(AST::Kind_Modulus, expression(1), expression(3)); } break; -#line 846 "./glsl.g" +#line 847 "./glsl.g" case 37: { // nothing to do. } break; -#line 853 "./glsl.g" +#line 854 "./glsl.g" case 38: { ast(1) = makeAstNode<BinaryExpression>(AST::Kind_Plus, expression(1), expression(3)); } break; -#line 860 "./glsl.g" +#line 861 "./glsl.g" case 39: { ast(1) = makeAstNode<BinaryExpression>(AST::Kind_Minus, expression(1), expression(3)); } break; -#line 867 "./glsl.g" +#line 868 "./glsl.g" case 40: { // nothing to do. } break; -#line 874 "./glsl.g" +#line 875 "./glsl.g" case 41: { ast(1) = makeAstNode<BinaryExpression>(AST::Kind_ShiftLeft, expression(1), expression(3)); } break; -#line 881 "./glsl.g" +#line 882 "./glsl.g" case 42: { ast(1) = makeAstNode<BinaryExpression>(AST::Kind_ShiftRight, expression(1), expression(3)); } break; -#line 888 "./glsl.g" +#line 889 "./glsl.g" case 43: { // nothing to do. } break; -#line 895 "./glsl.g" +#line 896 "./glsl.g" case 44: { ast(1) = makeAstNode<BinaryExpression>(AST::Kind_LessThan, expression(1), expression(3)); } break; -#line 902 "./glsl.g" +#line 903 "./glsl.g" case 45: { ast(1) = makeAstNode<BinaryExpression>(AST::Kind_GreaterThan, expression(1), expression(3)); } break; -#line 909 "./glsl.g" +#line 910 "./glsl.g" case 46: { ast(1) = makeAstNode<BinaryExpression>(AST::Kind_LessEqual, expression(1), expression(3)); } break; -#line 916 "./glsl.g" +#line 917 "./glsl.g" case 47: { ast(1) = makeAstNode<BinaryExpression>(AST::Kind_GreaterEqual, expression(1), expression(3)); } break; -#line 923 "./glsl.g" +#line 924 "./glsl.g" case 48: { // nothing to do. } break; -#line 930 "./glsl.g" +#line 931 "./glsl.g" case 49: { ast(1) = makeAstNode<BinaryExpression>(AST::Kind_Equal, expression(1), expression(3)); } break; -#line 937 "./glsl.g" +#line 938 "./glsl.g" case 50: { ast(1) = makeAstNode<BinaryExpression>(AST::Kind_NotEqual, expression(1), expression(3)); } break; -#line 944 "./glsl.g" +#line 945 "./glsl.g" case 51: { // nothing to do. } break; -#line 951 "./glsl.g" +#line 952 "./glsl.g" case 52: { ast(1) = makeAstNode<BinaryExpression>(AST::Kind_BitwiseAnd, expression(1), expression(3)); } break; -#line 958 "./glsl.g" +#line 959 "./glsl.g" case 53: { // nothing to do. } break; -#line 965 "./glsl.g" +#line 966 "./glsl.g" case 54: { ast(1) = makeAstNode<BinaryExpression>(AST::Kind_BitwiseXor, expression(1), expression(3)); } break; -#line 972 "./glsl.g" +#line 973 "./glsl.g" case 55: { // nothing to do. } break; -#line 979 "./glsl.g" +#line 980 "./glsl.g" case 56: { ast(1) = makeAstNode<BinaryExpression>(AST::Kind_BitwiseOr, expression(1), expression(3)); } break; -#line 986 "./glsl.g" +#line 987 "./glsl.g" case 57: { // nothing to do. } break; -#line 993 "./glsl.g" +#line 994 "./glsl.g" case 58: { ast(1) = makeAstNode<BinaryExpression>(AST::Kind_LogicalAnd, expression(1), expression(3)); } break; -#line 1000 "./glsl.g" +#line 1001 "./glsl.g" case 59: { // nothing to do. } break; -#line 1007 "./glsl.g" +#line 1008 "./glsl.g" case 60: { ast(1) = makeAstNode<BinaryExpression>(AST::Kind_LogicalXor, expression(1), expression(3)); } break; -#line 1014 "./glsl.g" +#line 1015 "./glsl.g" case 61: { // nothing to do. } break; -#line 1021 "./glsl.g" +#line 1022 "./glsl.g" case 62: { ast(1) = makeAstNode<BinaryExpression>(AST::Kind_LogicalOr, expression(1), expression(3)); } break; -#line 1028 "./glsl.g" +#line 1029 "./glsl.g" case 63: { // nothing to do. } break; -#line 1035 "./glsl.g" +#line 1036 "./glsl.g" case 64: { ast(1) = makeAstNode<TernaryExpression>(AST::Kind_Conditional, expression(1), expression(3), expression(5)); } break; -#line 1042 "./glsl.g" +#line 1043 "./glsl.g" case 65: { // nothing to do. } break; -#line 1049 "./glsl.g" +#line 1050 "./glsl.g" case 66: { ast(1) = makeAstNode<AssignmentExpression>(sym(2).kind, expression(1), expression(3)); } break; -#line 1056 "./glsl.g" +#line 1057 "./glsl.g" case 67: { sym(1).kind = AST::Kind_Assign; } break; -#line 1063 "./glsl.g" +#line 1064 "./glsl.g" case 68: { sym(1).kind = AST::Kind_AssignMultiply; } break; -#line 1070 "./glsl.g" +#line 1071 "./glsl.g" case 69: { sym(1).kind = AST::Kind_AssignDivide; } break; -#line 1077 "./glsl.g" +#line 1078 "./glsl.g" case 70: { sym(1).kind = AST::Kind_AssignModulus; } break; -#line 1084 "./glsl.g" +#line 1085 "./glsl.g" case 71: { sym(1).kind = AST::Kind_AssignPlus; } break; -#line 1091 "./glsl.g" +#line 1092 "./glsl.g" case 72: { sym(1).kind = AST::Kind_AssignMinus; } break; -#line 1098 "./glsl.g" +#line 1099 "./glsl.g" case 73: { sym(1).kind = AST::Kind_AssignShiftLeft; } break; -#line 1105 "./glsl.g" +#line 1106 "./glsl.g" case 74: { sym(1).kind = AST::Kind_AssignShiftRight; } break; -#line 1112 "./glsl.g" +#line 1113 "./glsl.g" case 75: { sym(1).kind = AST::Kind_AssignAnd; } break; -#line 1119 "./glsl.g" +#line 1120 "./glsl.g" case 76: { sym(1).kind = AST::Kind_AssignXor; } break; -#line 1126 "./glsl.g" +#line 1127 "./glsl.g" case 77: { sym(1).kind = AST::Kind_AssignOr; } break; -#line 1133 "./glsl.g" +#line 1134 "./glsl.g" case 78: { // nothing to do. } break; -#line 1140 "./glsl.g" +#line 1141 "./glsl.g" case 79: { ast(1) = makeAstNode<BinaryExpression>(AST::Kind_Comma, expression(1), expression(3)); } break; -#line 1147 "./glsl.g" +#line 1148 "./glsl.g" case 80: { // nothing to do. } break; -#line 1154 "./glsl.g" +#line 1155 "./glsl.g" case 81: { // nothing to do. } break; -#line 1161 "./glsl.g" +#line 1162 "./glsl.g" case 82: { ast(1) = makeAstNode<InitDeclaration>(sym(1).declaration_list); } break; -#line 1168 "./glsl.g" +#line 1169 "./glsl.g" case 83: { ast(1) = makeAstNode<PrecisionDeclaration>(sym(2).precision, type(3)); } break; -#line 1175 "./glsl.g" +#line 1176 "./glsl.g" case 84: { if (sym(1).type_qualifier.qualifier != QualifiedType::Struct) { @@ -696,7 +696,7 @@ case 84: { ast(1) = makeAstNode<TypeDeclaration>(type); } break; -#line 1186 "./glsl.g" +#line 1187 "./glsl.g" case 85: { if ((sym(1).type_qualifier.qualifier & QualifiedType::Struct) == 0) { @@ -714,7 +714,7 @@ case 85: { makeAstNode<VariableDeclaration>(qualtype, string(6))); } break; -#line 1205 "./glsl.g" +#line 1206 "./glsl.g" case 86: { if ((sym(1).type_qualifier.qualifier & QualifiedType::Struct) == 0) { @@ -733,7 +733,7 @@ case 86: { (makeAstNode<ArrayType>(qualtype), string(6))); } break; -#line 1225 "./glsl.g" +#line 1226 "./glsl.g" case 87: { if ((sym(1).type_qualifier.qualifier & QualifiedType::Struct) == 0) { @@ -752,7 +752,7 @@ case 87: { (makeAstNode<ArrayType>(qualtype, expression(8)), string(6))); } break; -#line 1245 "./glsl.g" +#line 1246 "./glsl.g" case 88: { Type *type = makeAstNode<QualifiedType> @@ -761,59 +761,59 @@ case 88: { ast(1) = makeAstNode<TypeDeclaration>(type); } break; -#line 1255 "./glsl.g" +#line 1256 "./glsl.g" case 89: { function(1)->finishParams(); } break; -#line 1262 "./glsl.g" +#line 1263 "./glsl.g" case 90: { // nothing to do. } break; -#line 1269 "./glsl.g" +#line 1270 "./glsl.g" case 91: { // nothing to do. } break; -#line 1276 "./glsl.g" +#line 1277 "./glsl.g" case 92: { function(1)->params = makeAstNode< List<ParameterDeclaration *> > (sym(2).param_declaration); } break; -#line 1284 "./glsl.g" +#line 1285 "./glsl.g" case 93: { function(1)->params = makeAstNode< List<ParameterDeclaration *> > (function(1)->params, sym(3).param_declaration); } break; -#line 1292 "./glsl.g" +#line 1293 "./glsl.g" case 94: { function(1) = makeAstNode<FunctionDeclaration>(type(1), string(2)); } break; -#line 1299 "./glsl.g" +#line 1300 "./glsl.g" case 95: { sym(1).param_declarator.type = type(1); sym(1).param_declarator.name = string(2); } break; -#line 1307 "./glsl.g" +#line 1308 "./glsl.g" case 96: { sym(1).param_declarator.type = makeAstNode<ArrayType>(type(1), expression(4)); sym(1).param_declarator.name = string(2); } break; -#line 1315 "./glsl.g" +#line 1316 "./glsl.g" case 97: { ast(1) = makeAstNode<ParameterDeclaration> @@ -824,7 +824,7 @@ case 97: { sym(3).param_declarator.name); } break; -#line 1327 "./glsl.g" +#line 1328 "./glsl.g" case 98: { ast(1) = makeAstNode<ParameterDeclaration> @@ -833,7 +833,7 @@ case 98: { sym(2).param_declarator.name); } break; -#line 1337 "./glsl.g" +#line 1338 "./glsl.g" case 99: { ast(1) = makeAstNode<ParameterDeclaration> @@ -843,7 +843,7 @@ case 99: { (const QString *)0); } break; -#line 1348 "./glsl.g" +#line 1349 "./glsl.g" case 100: { ast(1) = makeAstNode<ParameterDeclaration> @@ -851,44 +851,44 @@ case 100: { (const QString *)0); } break; -#line 1357 "./glsl.g" +#line 1358 "./glsl.g" case 101: { sym(1).qualifier = ParameterDeclaration::In; } break; -#line 1364 "./glsl.g" +#line 1365 "./glsl.g" case 102: { sym(1).qualifier = ParameterDeclaration::In; } break; -#line 1371 "./glsl.g" +#line 1372 "./glsl.g" case 103: { sym(1).qualifier = ParameterDeclaration::Out; } break; -#line 1378 "./glsl.g" +#line 1379 "./glsl.g" case 104: { sym(1).qualifier = ParameterDeclaration::InOut; } break; -#line 1385 "./glsl.g" +#line 1386 "./glsl.g" case 105: { // nothing to do. } break; -#line 1392 "./glsl.g" +#line 1393 "./glsl.g" case 106: { sym(1).declaration_list = makeAstNode< List<Declaration *> > (sym(1).declaration); } break; -#line 1400 "./glsl.g" +#line 1401 "./glsl.g" case 107: { Type *type = VariableDeclaration::declarationType(sym(1).declaration_list); @@ -897,7 +897,7 @@ case 107: { (sym(1).declaration_list, decl); } break; -#line 1410 "./glsl.g" +#line 1411 "./glsl.g" case 108: { Type *type = VariableDeclaration::declarationType(sym(1).declaration_list); @@ -907,7 +907,7 @@ case 108: { (sym(1).declaration_list, decl); } break; -#line 1421 "./glsl.g" +#line 1422 "./glsl.g" case 109: { Type *type = VariableDeclaration::declarationType(sym(1).declaration_list); @@ -917,7 +917,7 @@ case 109: { (sym(1).declaration_list, decl); } break; -#line 1432 "./glsl.g" +#line 1433 "./glsl.g" case 110: { Type *type = VariableDeclaration::declarationType(sym(1).declaration_list); @@ -928,7 +928,7 @@ case 110: { (sym(1).declaration_list, decl); } break; -#line 1444 "./glsl.g" +#line 1445 "./glsl.g" case 111: { Type *type = VariableDeclaration::declarationType(sym(1).declaration_list); @@ -939,7 +939,7 @@ case 111: { (sym(1).declaration_list, decl); } break; -#line 1456 "./glsl.g" +#line 1457 "./glsl.g" case 112: { Type *type = VariableDeclaration::declarationType(sym(1).declaration_list); @@ -949,40 +949,40 @@ case 112: { (sym(1).declaration_list, decl); } break; -#line 1467 "./glsl.g" +#line 1468 "./glsl.g" case 113: { ast(1) = makeAstNode<TypeDeclaration>(type(1)); } break; -#line 1474 "./glsl.g" +#line 1475 "./glsl.g" case 114: { ast(1) = makeAstNode<VariableDeclaration>(type(1), string(2)); } break; -#line 1481 "./glsl.g" +#line 1482 "./glsl.g" case 115: { ast(1) = makeAstNode<VariableDeclaration> (makeAstNode<ArrayType>(type(1)), string(2)); } break; -#line 1489 "./glsl.g" +#line 1490 "./glsl.g" case 116: { ast(1) = makeAstNode<VariableDeclaration> (makeAstNode<ArrayType>(type(1), expression(4)), string(2)); } break; -#line 1497 "./glsl.g" +#line 1498 "./glsl.g" case 117: { ast(1) = makeAstNode<VariableDeclaration> (makeAstNode<ArrayType>(type(1)), string(2), expression(6)); } break; -#line 1505 "./glsl.g" +#line 1506 "./glsl.g" case 118: { ast(1) = makeAstNode<VariableDeclaration> @@ -990,26 +990,26 @@ case 118: { string(2), expression(7)); } break; -#line 1514 "./glsl.g" +#line 1515 "./glsl.g" case 119: { ast(1) = makeAstNode<VariableDeclaration> (type(1), string(2), expression(4)); } break; -#line 1522 "./glsl.g" +#line 1523 "./glsl.g" case 120: { ast(1) = makeAstNode<InvariantDeclaration>(string(2)); } break; -#line 1529 "./glsl.g" +#line 1530 "./glsl.g" case 121: { ast(1) = makeAstNode<QualifiedType>(0, type(1), (List<LayoutQualifier *> *)0); } break; -#line 1536 "./glsl.g" +#line 1537 "./glsl.g" case 122: { ast(1) = makeAstNode<QualifiedType> @@ -1017,207 +1017,207 @@ case 122: { sym(1).type_qualifier.layout_list); } break; -#line 1545 "./glsl.g" +#line 1546 "./glsl.g" case 123: { sym(1).qualifier = QualifiedType::Invariant; } break; -#line 1552 "./glsl.g" +#line 1553 "./glsl.g" case 124: { sym(1).qualifier = QualifiedType::Smooth; } break; -#line 1559 "./glsl.g" +#line 1560 "./glsl.g" case 125: { sym(1).qualifier = QualifiedType::Flat; } break; -#line 1566 "./glsl.g" +#line 1567 "./glsl.g" case 126: { sym(1).qualifier = QualifiedType::NoPerspective; } break; -#line 1573 "./glsl.g" +#line 1574 "./glsl.g" case 127: { sym(1) = sym(3); } break; -#line 1580 "./glsl.g" +#line 1581 "./glsl.g" case 128: { sym(1).layout_list = makeAstNode< List<LayoutQualifier *> >(sym(1).layout); } break; -#line 1587 "./glsl.g" +#line 1588 "./glsl.g" case 129: { sym(1).layout_list = makeAstNode< List<LayoutQualifier *> >(sym(1).layout_list, sym(3).layout); } break; -#line 1594 "./glsl.g" +#line 1595 "./glsl.g" case 130: { sym(1).layout = makeAstNode<LayoutQualifier>(string(1), (const QString *)0); } break; -#line 1601 "./glsl.g" +#line 1602 "./glsl.g" case 131: { sym(1).layout = makeAstNode<LayoutQualifier>(string(1), string(3)); } break; -#line 1608 "./glsl.g" +#line 1609 "./glsl.g" case 132: { sym(1).qualifier = QualifiedType::Const; } break; -#line 1615 "./glsl.g" +#line 1616 "./glsl.g" case 133: { sym(1).type_qualifier.qualifier = sym(1).qualifier; sym(1).type_qualifier.layout_list = 0; } break; -#line 1623 "./glsl.g" +#line 1624 "./glsl.g" case 134: { sym(1).type_qualifier.layout_list = sym(1).layout_list; sym(1).type_qualifier.qualifier = 0; } break; -#line 1631 "./glsl.g" +#line 1632 "./glsl.g" case 135: { sym(1).type_qualifier.layout_list = sym(1).layout_list; sym(1).type_qualifier.qualifier = sym(2).qualifier; } break; -#line 1639 "./glsl.g" +#line 1640 "./glsl.g" case 136: { sym(1).type_qualifier.qualifier = sym(1).qualifier | sym(2).qualifier; sym(1).type_qualifier.layout_list = 0; } break; -#line 1647 "./glsl.g" +#line 1648 "./glsl.g" case 137: { sym(1).type_qualifier.qualifier = sym(1).qualifier; sym(1).type_qualifier.layout_list = 0; } break; -#line 1655 "./glsl.g" +#line 1656 "./glsl.g" case 138: { sym(1).type_qualifier.qualifier = sym(1).qualifier | sym(2).qualifier; sym(1).type_qualifier.layout_list = 0; } break; -#line 1663 "./glsl.g" +#line 1664 "./glsl.g" case 139: { sym(1).type_qualifier.qualifier = sym(1).qualifier | sym(2).qualifier | sym(3).qualifier; sym(1).type_qualifier.layout_list = 0; } break; -#line 1671 "./glsl.g" +#line 1672 "./glsl.g" case 140: { sym(1).type_qualifier.qualifier = QualifiedType::Invariant; sym(1).type_qualifier.layout_list = 0; } break; -#line 1679 "./glsl.g" +#line 1680 "./glsl.g" case 141: { sym(1).qualifier = QualifiedType::Const; } break; -#line 1686 "./glsl.g" +#line 1687 "./glsl.g" case 142: { sym(1).qualifier = QualifiedType::Attribute; } break; -#line 1693 "./glsl.g" +#line 1694 "./glsl.g" case 143: { sym(1).qualifier = QualifiedType::Varying; } break; -#line 1700 "./glsl.g" +#line 1701 "./glsl.g" case 144: { sym(1).qualifier = QualifiedType::CentroidVarying; } break; -#line 1707 "./glsl.g" +#line 1708 "./glsl.g" case 145: { sym(1).qualifier = QualifiedType::In; } break; -#line 1714 "./glsl.g" +#line 1715 "./glsl.g" case 146: { sym(1).qualifier = QualifiedType::Out; } break; -#line 1721 "./glsl.g" +#line 1722 "./glsl.g" case 147: { sym(1).qualifier = QualifiedType::CentroidIn; } break; -#line 1728 "./glsl.g" +#line 1729 "./glsl.g" case 148: { sym(1).qualifier = QualifiedType::CentroidOut; } break; -#line 1735 "./glsl.g" +#line 1736 "./glsl.g" case 149: { sym(1).qualifier = QualifiedType::PatchIn; } break; -#line 1742 "./glsl.g" +#line 1743 "./glsl.g" case 150: { sym(1).qualifier = QualifiedType::PatchOut; } break; -#line 1749 "./glsl.g" +#line 1750 "./glsl.g" case 151: { sym(1).qualifier = QualifiedType::SampleIn; } break; -#line 1756 "./glsl.g" +#line 1757 "./glsl.g" case 152: { sym(1).qualifier = QualifiedType::SampleOut; } break; -#line 1763 "./glsl.g" +#line 1764 "./glsl.g" case 153: { sym(1).qualifier = QualifiedType::Uniform; } break; -#line 1770 "./glsl.g" +#line 1771 "./glsl.g" case 154: { // nothing to do. } break; -#line 1777 "./glsl.g" +#line 1778 "./glsl.g" case 155: { if (!type(2)->setPrecision(sym(1).precision)) { @@ -1226,595 +1226,595 @@ case 155: { ast(1) = type(2); } break; -#line 1787 "./glsl.g" +#line 1788 "./glsl.g" case 156: { // nothing to do. } break; -#line 1794 "./glsl.g" +#line 1795 "./glsl.g" case 157: { ast(1) = makeAstNode<ArrayType>(type(1)); } break; -#line 1801 "./glsl.g" +#line 1802 "./glsl.g" case 158: { ast(1) = makeAstNode<ArrayType>(type(1), expression(3)); } break; -#line 1808 "./glsl.g" +#line 1809 "./glsl.g" case 159: { ast(1) = makeBasicType(T_VOID, Type::Void); } break; -#line 1815 "./glsl.g" +#line 1816 "./glsl.g" case 160: { ast(1) = makeBasicType(T_FLOAT, Type::Primitive); } break; -#line 1822 "./glsl.g" +#line 1823 "./glsl.g" case 161: { ast(1) = makeBasicType(T_DOUBLE, Type::Primitive); } break; -#line 1829 "./glsl.g" +#line 1830 "./glsl.g" case 162: { ast(1) = makeBasicType(T_INT, Type::Primitive); } break; -#line 1836 "./glsl.g" +#line 1837 "./glsl.g" case 163: { ast(1) = makeBasicType(T_UINT, Type::Primitive); } break; -#line 1843 "./glsl.g" +#line 1844 "./glsl.g" case 164: { ast(1) = makeBasicType(T_BOOL, Type::Primitive); } break; -#line 1850 "./glsl.g" +#line 1851 "./glsl.g" case 165: { ast(1) = makeBasicType(T_VEC2, Type::Vector2); } break; -#line 1857 "./glsl.g" +#line 1858 "./glsl.g" case 166: { ast(1) = makeBasicType(T_VEC3, Type::Vector3); } break; -#line 1864 "./glsl.g" +#line 1865 "./glsl.g" case 167: { ast(1) = makeBasicType(T_VEC4, Type::Vector4); } break; -#line 1871 "./glsl.g" +#line 1872 "./glsl.g" case 168: { ast(1) = makeBasicType(T_DVEC2, Type::Vector2); } break; -#line 1878 "./glsl.g" +#line 1879 "./glsl.g" case 169: { ast(1) = makeBasicType(T_DVEC3, Type::Vector3); } break; -#line 1885 "./glsl.g" +#line 1886 "./glsl.g" case 170: { ast(1) = makeBasicType(T_DVEC4, Type::Vector4); } break; -#line 1892 "./glsl.g" +#line 1893 "./glsl.g" case 171: { ast(1) = makeBasicType(T_BVEC2, Type::Vector2); } break; -#line 1899 "./glsl.g" +#line 1900 "./glsl.g" case 172: { ast(1) = makeBasicType(T_BVEC3, Type::Vector3); } break; -#line 1906 "./glsl.g" +#line 1907 "./glsl.g" case 173: { ast(1) = makeBasicType(T_BVEC4, Type::Vector4); } break; -#line 1913 "./glsl.g" +#line 1914 "./glsl.g" case 174: { ast(1) = makeBasicType(T_IVEC2, Type::Vector2); } break; -#line 1920 "./glsl.g" +#line 1921 "./glsl.g" case 175: { ast(1) = makeBasicType(T_IVEC3, Type::Vector3); } break; -#line 1927 "./glsl.g" +#line 1928 "./glsl.g" case 176: { ast(1) = makeBasicType(T_IVEC4, Type::Vector4); } break; -#line 1934 "./glsl.g" +#line 1935 "./glsl.g" case 177: { ast(1) = makeBasicType(T_UVEC2, Type::Vector2); } break; -#line 1941 "./glsl.g" +#line 1942 "./glsl.g" case 178: { ast(1) = makeBasicType(T_UVEC3, Type::Vector3); } break; -#line 1948 "./glsl.g" +#line 1949 "./glsl.g" case 179: { ast(1) = makeBasicType(T_UVEC4, Type::Vector4); } break; -#line 1955 "./glsl.g" +#line 1956 "./glsl.g" case 180: { ast(1) = makeBasicType(T_MAT2, Type::Matrix); } break; -#line 1962 "./glsl.g" +#line 1963 "./glsl.g" case 181: { ast(1) = makeBasicType(T_MAT3, Type::Matrix); } break; -#line 1969 "./glsl.g" +#line 1970 "./glsl.g" case 182: { ast(1) = makeBasicType(T_MAT4, Type::Matrix); } break; -#line 1976 "./glsl.g" +#line 1977 "./glsl.g" case 183: { ast(1) = makeBasicType(T_MAT2, Type::Matrix); } break; -#line 1983 "./glsl.g" +#line 1984 "./glsl.g" case 184: { ast(1) = makeBasicType(T_MAT2X3, Type::Matrix); } break; -#line 1990 "./glsl.g" +#line 1991 "./glsl.g" case 185: { ast(1) = makeBasicType(T_MAT2X4, Type::Matrix); } break; -#line 1997 "./glsl.g" +#line 1998 "./glsl.g" case 186: { ast(1) = makeBasicType(T_MAT3X2, Type::Matrix); } break; -#line 2004 "./glsl.g" +#line 2005 "./glsl.g" case 187: { ast(1) = makeBasicType(T_MAT3, Type::Matrix); } break; -#line 2011 "./glsl.g" +#line 2012 "./glsl.g" case 188: { ast(1) = makeBasicType(T_MAT3X4, Type::Matrix); } break; -#line 2018 "./glsl.g" +#line 2019 "./glsl.g" case 189: { ast(1) = makeBasicType(T_MAT4X2, Type::Matrix); } break; -#line 2025 "./glsl.g" +#line 2026 "./glsl.g" case 190: { ast(1) = makeBasicType(T_MAT4X3, Type::Matrix); } break; -#line 2032 "./glsl.g" +#line 2033 "./glsl.g" case 191: { ast(1) = makeBasicType(T_MAT4, Type::Matrix); } break; -#line 2039 "./glsl.g" +#line 2040 "./glsl.g" case 192: { ast(1) = makeBasicType(T_DMAT2, Type::Matrix); } break; -#line 2046 "./glsl.g" +#line 2047 "./glsl.g" case 193: { ast(1) = makeBasicType(T_DMAT3, Type::Matrix); } break; -#line 2053 "./glsl.g" +#line 2054 "./glsl.g" case 194: { ast(1) = makeBasicType(T_DMAT4, Type::Matrix); } break; -#line 2060 "./glsl.g" +#line 2061 "./glsl.g" case 195: { ast(1) = makeBasicType(T_DMAT2, Type::Matrix); } break; -#line 2067 "./glsl.g" +#line 2068 "./glsl.g" case 196: { ast(1) = makeBasicType(T_DMAT2X3, Type::Matrix); } break; -#line 2074 "./glsl.g" +#line 2075 "./glsl.g" case 197: { ast(1) = makeBasicType(T_DMAT2X4, Type::Matrix); } break; -#line 2081 "./glsl.g" +#line 2082 "./glsl.g" case 198: { ast(1) = makeBasicType(T_DMAT3X2, Type::Matrix); } break; -#line 2088 "./glsl.g" +#line 2089 "./glsl.g" case 199: { ast(1) = makeBasicType(T_DMAT3, Type::Matrix); } break; -#line 2095 "./glsl.g" +#line 2096 "./glsl.g" case 200: { ast(1) = makeBasicType(T_DMAT3X4, Type::Matrix); } break; -#line 2102 "./glsl.g" +#line 2103 "./glsl.g" case 201: { ast(1) = makeBasicType(T_DMAT4X2, Type::Matrix); } break; -#line 2109 "./glsl.g" +#line 2110 "./glsl.g" case 202: { ast(1) = makeBasicType(T_DMAT4X3, Type::Matrix); } break; -#line 2116 "./glsl.g" +#line 2117 "./glsl.g" case 203: { ast(1) = makeBasicType(T_DMAT4, Type::Matrix); } break; -#line 2123 "./glsl.g" +#line 2124 "./glsl.g" case 204: { ast(1) = makeBasicType(T_SAMPLER1D, Type::Sampler1D); } break; -#line 2130 "./glsl.g" +#line 2131 "./glsl.g" case 205: { ast(1) = makeBasicType(T_SAMPLER2D, Type::Sampler2D); } break; -#line 2137 "./glsl.g" +#line 2138 "./glsl.g" case 206: { ast(1) = makeBasicType(T_SAMPLER3D, Type::Sampler3D); } break; -#line 2144 "./glsl.g" +#line 2145 "./glsl.g" case 207: { ast(1) = makeBasicType(T_SAMPLERCUBE, Type::SamplerCube); } break; -#line 2151 "./glsl.g" +#line 2152 "./glsl.g" case 208: { ast(1) = makeBasicType(T_SAMPLER1DSHADOW, Type::Sampler1DShadow); } break; -#line 2158 "./glsl.g" +#line 2159 "./glsl.g" case 209: { ast(1) = makeBasicType(T_SAMPLER2DSHADOW, Type::Sampler2DShadow); } break; -#line 2165 "./glsl.g" +#line 2166 "./glsl.g" case 210: { ast(1) = makeBasicType(T_SAMPLERCUBESHADOW, Type::SamplerCubeShadow); } break; -#line 2172 "./glsl.g" +#line 2173 "./glsl.g" case 211: { ast(1) = makeBasicType(T_SAMPLER1DARRAY, Type::Sampler1DArray); } break; -#line 2179 "./glsl.g" +#line 2180 "./glsl.g" case 212: { ast(1) = makeBasicType(T_SAMPLER2DARRAY, Type::Sampler2DArray); } break; -#line 2186 "./glsl.g" +#line 2187 "./glsl.g" case 213: { ast(1) = makeBasicType(T_SAMPLER1DARRAYSHADOW, Type::Sampler1DArrayShadow); } break; -#line 2193 "./glsl.g" +#line 2194 "./glsl.g" case 214: { ast(1) = makeBasicType(T_SAMPLER2DARRAYSHADOW, Type::Sampler2DArrayShadow); } break; -#line 2200 "./glsl.g" +#line 2201 "./glsl.g" case 215: { ast(1) = makeBasicType(T_SAMPLERCUBEARRAY, Type::SamplerCubeShadow); } break; -#line 2207 "./glsl.g" +#line 2208 "./glsl.g" case 216: { ast(1) = makeBasicType(T_SAMPLERCUBEARRAYSHADOW, Type::SamplerCubeArrayShadow); } break; -#line 2214 "./glsl.g" +#line 2215 "./glsl.g" case 217: { ast(1) = makeBasicType(T_ISAMPLER1D, Type::Sampler1D); } break; -#line 2221 "./glsl.g" +#line 2222 "./glsl.g" case 218: { ast(1) = makeBasicType(T_ISAMPLER2D, Type::Sampler2D); } break; -#line 2228 "./glsl.g" +#line 2229 "./glsl.g" case 219: { ast(1) = makeBasicType(T_ISAMPLER3D, Type::Sampler3D); } break; -#line 2235 "./glsl.g" +#line 2236 "./glsl.g" case 220: { ast(1) = makeBasicType(T_ISAMPLERCUBE, Type::SamplerCube); } break; -#line 2242 "./glsl.g" +#line 2243 "./glsl.g" case 221: { ast(1) = makeBasicType(T_ISAMPLER1DARRAY, Type::Sampler1DArray); } break; -#line 2249 "./glsl.g" +#line 2250 "./glsl.g" case 222: { ast(1) = makeBasicType(T_ISAMPLER2DARRAY, Type::Sampler2DArray); } break; -#line 2256 "./glsl.g" +#line 2257 "./glsl.g" case 223: { ast(1) = makeBasicType(T_ISAMPLERCUBEARRAY, Type::SamplerCubeArray); } break; -#line 2263 "./glsl.g" +#line 2264 "./glsl.g" case 224: { ast(1) = makeBasicType(T_USAMPLER1D, Type::Sampler1D); } break; -#line 2270 "./glsl.g" +#line 2271 "./glsl.g" case 225: { ast(1) = makeBasicType(T_USAMPLER2D, Type::Sampler2D); } break; -#line 2277 "./glsl.g" +#line 2278 "./glsl.g" case 226: { ast(1) = makeBasicType(T_USAMPLER3D, Type::Sampler3D); } break; -#line 2284 "./glsl.g" +#line 2285 "./glsl.g" case 227: { ast(1) = makeBasicType(T_USAMPLERCUBE, Type::SamplerCube); } break; -#line 2291 "./glsl.g" +#line 2292 "./glsl.g" case 228: { ast(1) = makeBasicType(T_USAMPLER1DARRAY, Type::Sampler1DArray); } break; -#line 2298 "./glsl.g" +#line 2299 "./glsl.g" case 229: { ast(1) = makeBasicType(T_USAMPLER2DARRAY, Type::Sampler2DArray); } break; -#line 2305 "./glsl.g" +#line 2306 "./glsl.g" case 230: { ast(1) = makeBasicType(T_USAMPLERCUBEARRAY, Type::SamplerCubeArray); } break; -#line 2312 "./glsl.g" +#line 2313 "./glsl.g" case 231: { ast(1) = makeBasicType(T_SAMPLER2DRECT, Type::Sampler2DRect); } break; -#line 2319 "./glsl.g" +#line 2320 "./glsl.g" case 232: { ast(1) = makeBasicType(T_SAMPLER2DRECTSHADOW, Type::Sampler2DRectShadow); } break; -#line 2326 "./glsl.g" +#line 2327 "./glsl.g" case 233: { ast(1) = makeBasicType(T_ISAMPLER2DRECT, Type::Sampler2DRect); } break; -#line 2333 "./glsl.g" +#line 2334 "./glsl.g" case 234: { ast(1) = makeBasicType(T_USAMPLER2DRECT, Type::Sampler2DRect); } break; -#line 2340 "./glsl.g" +#line 2341 "./glsl.g" case 235: { ast(1) = makeBasicType(T_SAMPLERBUFFER, Type::SamplerBuffer); } break; -#line 2347 "./glsl.g" +#line 2348 "./glsl.g" case 236: { ast(1) = makeBasicType(T_ISAMPLERBUFFER, Type::SamplerBuffer); } break; -#line 2354 "./glsl.g" +#line 2355 "./glsl.g" case 237: { ast(1) = makeBasicType(T_USAMPLERBUFFER, Type::SamplerBuffer); } break; -#line 2361 "./glsl.g" +#line 2362 "./glsl.g" case 238: { ast(1) = makeBasicType(T_SAMPLER2DMS, Type::Sampler2DMS); } break; -#line 2368 "./glsl.g" +#line 2369 "./glsl.g" case 239: { ast(1) = makeBasicType(T_ISAMPLER2DMS, Type::Sampler2DMS); } break; -#line 2375 "./glsl.g" +#line 2376 "./glsl.g" case 240: { ast(1) = makeBasicType(T_USAMPLER2DMS, Type::Sampler2DMS); } break; -#line 2382 "./glsl.g" +#line 2383 "./glsl.g" case 241: { ast(1) = makeBasicType(T_SAMPLER2DMSARRAY, Type::Sampler2DMSArray); } break; -#line 2389 "./glsl.g" +#line 2390 "./glsl.g" case 242: { ast(1) = makeBasicType(T_ISAMPLER2DMSARRAY, Type::Sampler2DMSArray); } break; -#line 2396 "./glsl.g" +#line 2397 "./glsl.g" case 243: { ast(1) = makeBasicType(T_USAMPLER2DMSARRAY, Type::Sampler2DMSArray); } break; -#line 2403 "./glsl.g" +#line 2404 "./glsl.g" case 244: { // nothing to do. } break; -#line 2410 "./glsl.g" +#line 2411 "./glsl.g" case 245: { ast(1) = makeAstNode<NamedType>(string(1)); } break; -#line 2417 "./glsl.g" +#line 2418 "./glsl.g" case 246: { sym(1).precision = Type::Highp; } break; -#line 2424 "./glsl.g" +#line 2425 "./glsl.g" case 247: { sym(1).precision = Type::Mediump; } break; -#line 2431 "./glsl.g" +#line 2432 "./glsl.g" case 248: { sym(1).precision = Type::Lowp; } break; -#line 2438 "./glsl.g" +#line 2439 "./glsl.g" case 249: { ast(1) = makeAstNode<StructType>(string(2), sym(4).field_list); } break; -#line 2445 "./glsl.g" +#line 2446 "./glsl.g" case 250: { ast(1) = makeAstNode<StructType>(sym(3).field_list); } break; -#line 2452 "./glsl.g" +#line 2453 "./glsl.g" case 251: { // nothing to do. } break; -#line 2459 "./glsl.g" +#line 2460 "./glsl.g" case 252: { sym(1).field_list = appendLists(sym(1).field_list, sym(2).field_list); } break; -#line 2466 "./glsl.g" +#line 2467 "./glsl.g" case 253: { sym(1).field_list = StructType::fixInnerTypes(type(1), sym(2).field_list); } break; -#line 2473 "./glsl.g" +#line 2474 "./glsl.g" case 254: { sym(1).field_list = StructType::fixInnerTypes @@ -1823,321 +1823,321 @@ case 254: { sym(1).type_qualifier.layout_list), sym(3).field_list); } break; -#line 2483 "./glsl.g" +#line 2484 "./glsl.g" case 255: { // nothing to do. sym(1).field_list = makeAstNode< List<StructType::Field *> >(sym(1).field); } break; -#line 2491 "./glsl.g" +#line 2492 "./glsl.g" case 256: { sym(1).field_list = makeAstNode< List<StructType::Field *> >(sym(1).field_list, sym(3).field); } break; -#line 2498 "./glsl.g" +#line 2499 "./glsl.g" case 257: { sym(1).field = makeAstNode<StructType::Field>(string(1)); } break; -#line 2505 "./glsl.g" +#line 2506 "./glsl.g" case 258: { sym(1).field = makeAstNode<StructType::Field> (string(1), makeAstNode<ArrayType>((Type *)0)); } break; -#line 2513 "./glsl.g" +#line 2514 "./glsl.g" case 259: { sym(1).field = makeAstNode<StructType::Field> (string(1), makeAstNode<ArrayType>((Type *)0, expression(3))); } break; -#line 2521 "./glsl.g" +#line 2522 "./glsl.g" case 260: { // nothing to do. } break; -#line 2528 "./glsl.g" +#line 2529 "./glsl.g" case 261: { ast(1) = makeAstNode<DeclarationStatement>(sym(1).declaration_list); } break; -#line 2535 "./glsl.g" +#line 2536 "./glsl.g" case 262: { // nothing to do. } break; -#line 2542 "./glsl.g" +#line 2543 "./glsl.g" case 263: { // nothing to do. } break; -#line 2549 "./glsl.g" +#line 2550 "./glsl.g" case 264: { // nothing to do. } break; -#line 2556 "./glsl.g" +#line 2557 "./glsl.g" case 265: { // nothing to do. } break; -#line 2563 "./glsl.g" +#line 2564 "./glsl.g" case 266: { // nothing to do. } break; -#line 2570 "./glsl.g" +#line 2571 "./glsl.g" case 267: { // nothing to do. } break; -#line 2577 "./glsl.g" +#line 2578 "./glsl.g" case 268: { // nothing to do. } break; -#line 2584 "./glsl.g" +#line 2585 "./glsl.g" case 269: { // nothing to do. } break; -#line 2591 "./glsl.g" +#line 2592 "./glsl.g" case 270: { // nothing to do. } break; -#line 2598 "./glsl.g" +#line 2599 "./glsl.g" case 271: { ast(1) = makeAstNode<CompoundStatement>(); } break; -#line 2605 "./glsl.g" +#line 2606 "./glsl.g" case 272: { ast(1) = makeAstNode<CompoundStatement>(sym(2).statement_list); } break; -#line 2612 "./glsl.g" +#line 2613 "./glsl.g" case 273: { // nothing to do. } break; -#line 2619 "./glsl.g" +#line 2620 "./glsl.g" case 274: { // nothing to do. } break; -#line 2626 "./glsl.g" +#line 2627 "./glsl.g" case 275: { ast(1) = makeAstNode<CompoundStatement>(); } break; -#line 2633 "./glsl.g" +#line 2634 "./glsl.g" case 276: { ast(1) = makeAstNode<CompoundStatement>(sym(2).statement_list); } break; -#line 2640 "./glsl.g" +#line 2641 "./glsl.g" case 277: { sym(1).statement_list = makeAstNode< List<Statement *> >(sym(1).statement); } break; -#line 2647 "./glsl.g" +#line 2648 "./glsl.g" case 278: { sym(1).statement_list = makeAstNode< List<Statement *> >(sym(1).statement_list, sym(2).statement); } break; -#line 2654 "./glsl.g" +#line 2655 "./glsl.g" case 279: { ast(1) = makeAstNode<CompoundStatement>(); // Empty statement } break; -#line 2661 "./glsl.g" +#line 2662 "./glsl.g" case 280: { ast(1) = makeAstNode<ExpressionStatement>(expression(1)); } break; -#line 2668 "./glsl.g" +#line 2669 "./glsl.g" case 281: { ast(1) = makeAstNode<IfStatement>(expression(3), sym(5).ifstmt.thenClause, sym(5).ifstmt.elseClause); } break; -#line 2675 "./glsl.g" +#line 2676 "./glsl.g" case 282: { sym(1).ifstmt.thenClause = statement(1); sym(1).ifstmt.elseClause = statement(3); } break; -#line 2683 "./glsl.g" +#line 2684 "./glsl.g" case 283: { sym(1).ifstmt.thenClause = statement(1); sym(1).ifstmt.elseClause = 0; } break; -#line 2691 "./glsl.g" +#line 2692 "./glsl.g" case 284: { // nothing to do. } break; -#line 2698 "./glsl.g" +#line 2699 "./glsl.g" case 285: { ast(1) = makeAstNode<DeclarationExpression> (type(1), string(2), expression(4)); } break; -#line 2706 "./glsl.g" +#line 2707 "./glsl.g" case 286: { ast(1) = makeAstNode<SwitchStatement>(expression(3), statement(6)); } break; -#line 2713 "./glsl.g" +#line 2714 "./glsl.g" case 287: { ast(1) = makeAstNode<CompoundStatement>(); } break; -#line 2720 "./glsl.g" +#line 2721 "./glsl.g" case 288: { ast(1) = makeAstNode<CompoundStatement>(sym(1).statement_list); } break; -#line 2727 "./glsl.g" +#line 2728 "./glsl.g" case 289: { ast(1) = makeAstNode<CaseLabelStatement>(expression(2)); } break; -#line 2734 "./glsl.g" +#line 2735 "./glsl.g" case 290: { ast(1) = makeAstNode<CaseLabelStatement>(); } break; -#line 2741 "./glsl.g" +#line 2742 "./glsl.g" case 291: { ast(1) = makeAstNode<WhileStatement>(expression(3), statement(5)); } break; -#line 2748 "./glsl.g" +#line 2749 "./glsl.g" case 292: { ast(1) = makeAstNode<DoStatement>(statement(2), expression(5)); } break; -#line 2755 "./glsl.g" +#line 2756 "./glsl.g" case 293: { ast(1) = makeAstNode<ForStatement>(statement(3), sym(4).forstmt.condition, sym(4).forstmt.increment, statement(6)); } break; -#line 2762 "./glsl.g" +#line 2763 "./glsl.g" case 294: { // nothing to do. } break; -#line 2769 "./glsl.g" +#line 2770 "./glsl.g" case 295: { // nothing to do. } break; -#line 2776 "./glsl.g" +#line 2777 "./glsl.g" case 296: { // nothing to do. } break; -#line 2783 "./glsl.g" +#line 2784 "./glsl.g" case 297: { // nothing to do. } break; -#line 2790 "./glsl.g" +#line 2791 "./glsl.g" case 298: { sym(1).forstmt.condition = expression(1); sym(1).forstmt.increment = 0; } break; -#line 2798 "./glsl.g" +#line 2799 "./glsl.g" case 299: { sym(1).forstmt.condition = expression(1); sym(1).forstmt.increment = expression(3); } break; -#line 2806 "./glsl.g" +#line 2807 "./glsl.g" case 300: { ast(1) = makeAstNode<JumpStatement>(AST::Kind_Continue); } break; -#line 2813 "./glsl.g" +#line 2814 "./glsl.g" case 301: { ast(1) = makeAstNode<JumpStatement>(AST::Kind_Break); } break; -#line 2820 "./glsl.g" +#line 2821 "./glsl.g" case 302: { ast(1) = makeAstNode<ReturnStatement>(); } break; -#line 2827 "./glsl.g" +#line 2828 "./glsl.g" case 303: { ast(1) = makeAstNode<ReturnStatement>(expression(2)); } break; -#line 2834 "./glsl.g" +#line 2835 "./glsl.g" case 304: { ast(1) = makeAstNode<JumpStatement>(AST::Kind_Discard); } break; -#line 2841 "./glsl.g" +#line 2842 "./glsl.g" case 305: { ast(1) = makeAstNode<TranslationUnit>(sym(1).declaration_list); } break; -#line 2848 "./glsl.g" +#line 2849 "./glsl.g" case 306: { if (sym(1).declaration) { @@ -2148,7 +2148,7 @@ case 306: { } } break; -#line 2860 "./glsl.g" +#line 2861 "./glsl.g" case 307: { if (sym(1).declaration_list && sym(2).declaration) { @@ -2164,37 +2164,37 @@ case 307: { } } break; -#line 2877 "./glsl.g" +#line 2878 "./glsl.g" case 308: { // nothing to do. } break; -#line 2884 "./glsl.g" +#line 2885 "./glsl.g" case 309: { // nothing to do. } break; -#line 2891 "./glsl.g" +#line 2892 "./glsl.g" case 310: { ast(1) = 0; } break; -#line 2898 "./glsl.g" +#line 2899 "./glsl.g" case 311: { function(1)->body = statement(2); } break; -#line 2905 "./glsl.g" +#line 2906 "./glsl.g" case 312: { ast(1) = 0; } break; -#line 2913 "./glsl.g" +#line 2914 "./glsl.g" } // end switch } // end Parser::reduce() diff --git a/src/libs/glsl/glslparser.h b/src/libs/glsl/glslparser.h index a548a0883a870b6bf1aa6dfc110ad1f745ee0723..0902465fa07dcfa601ea2d7ccfbe40fb5bc52453 100644 --- a/src/libs/glsl/glslparser.h +++ b/src/libs/glsl/glslparser.h @@ -1,5 +1,5 @@ -#line 213 "./glsl.g" +#line 214 "./glsl.g" /************************************************************************** ** diff --git a/src/libs/glsl/glslparsertable.cpp b/src/libs/glsl/glslparsertable.cpp index 576fa94e04d9df9bc8a190c819a35df1b71a18c4..9e9cf2df7f92c667005f3ba10002075496079df3 100644 --- a/src/libs/glsl/glslparsertable.cpp +++ b/src/libs/glsl/glslparsertable.cpp @@ -62,41 +62,41 @@ const char *const GLSLParserTable::spell [] = { "~", "type_name", "uint", "uniform", "usampler1D", "usampler1DArray", "usampler2D", "usampler2DArray", "usampler2DMS", "usampler2DMSarray", "usampler2DRect", "usampler3D", "usamplerBuffer", "usamplerCube", "usamplerCubeArray", "uvec2", "uvec3", "uvec4", "varying", "vec2", "vec3", "vec4", "|", "void", "while", "^=", "^", "true", "false", "preprocessor directive", - "comment", "error"}; + "comment", "error", "reserved word"}; const short GLSLParserTable::lhs [] = { - 173, 174, 174, 174, 174, 174, 176, 176, 176, 176, - 176, 176, 177, 178, 179, 179, 180, 180, 182, 182, - 181, 181, 183, 185, 185, 187, 187, 187, 187, 188, - 188, 188, 188, 189, 189, 189, 189, 190, 190, 190, - 191, 191, 191, 192, 192, 192, 192, 192, 193, 193, - 193, 194, 194, 195, 195, 196, 196, 197, 197, 198, - 198, 199, 199, 200, 200, 184, 184, 201, 201, 201, - 201, 201, 201, 201, 201, 201, 201, 201, 175, 175, - 202, 203, 203, 203, 203, 203, 203, 203, 203, 204, - 210, 210, 212, 212, 211, 215, 215, 213, 213, 213, - 213, 217, 217, 217, 217, 218, 205, 205, 205, 205, - 205, 205, 205, 220, 220, 220, 220, 220, 220, 220, - 220, 214, 214, 222, 223, 223, 223, 224, 225, 225, - 226, 226, 216, 208, 208, 208, 208, 208, 208, 208, - 208, 227, 227, 227, 227, 227, 227, 227, 227, 227, - 227, 227, 227, 227, 186, 186, 207, 207, 207, 228, - 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, - 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, - 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, - 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, - 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, - 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, - 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, - 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, - 228, 228, 228, 228, 228, 228, 206, 206, 206, 229, - 229, 209, 209, 230, 230, 231, 231, 232, 232, 232, - 221, 233, 234, 234, 236, 236, 236, 236, 236, 236, - 236, 235, 235, 244, 244, 245, 245, 243, 243, 237, - 237, 238, 246, 246, 247, 247, 239, 248, 248, 240, - 240, 241, 241, 241, 249, 249, 251, 251, 250, 250, - 242, 242, 242, 242, 242, 172, 252, 252, 253, 253, - 253, 254, 219, 255}; + 174, 175, 175, 175, 175, 175, 177, 177, 177, 177, + 177, 177, 178, 179, 180, 180, 181, 181, 183, 183, + 182, 182, 184, 186, 186, 188, 188, 188, 188, 189, + 189, 189, 189, 190, 190, 190, 190, 191, 191, 191, + 192, 192, 192, 193, 193, 193, 193, 193, 194, 194, + 194, 195, 195, 196, 196, 197, 197, 198, 198, 199, + 199, 200, 200, 201, 201, 185, 185, 202, 202, 202, + 202, 202, 202, 202, 202, 202, 202, 202, 176, 176, + 203, 204, 204, 204, 204, 204, 204, 204, 204, 205, + 211, 211, 213, 213, 212, 216, 216, 214, 214, 214, + 214, 218, 218, 218, 218, 219, 206, 206, 206, 206, + 206, 206, 206, 221, 221, 221, 221, 221, 221, 221, + 221, 215, 215, 223, 224, 224, 224, 225, 226, 226, + 227, 227, 217, 209, 209, 209, 209, 209, 209, 209, + 209, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 187, 187, 208, 208, 208, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 207, 207, 207, 230, + 230, 210, 210, 231, 231, 232, 232, 233, 233, 233, + 222, 234, 235, 235, 237, 237, 237, 237, 237, 237, + 237, 236, 236, 245, 245, 246, 246, 244, 244, 238, + 238, 239, 247, 247, 248, 248, 240, 249, 249, 241, + 241, 242, 242, 242, 250, 250, 252, 252, 251, 251, + 243, 243, 243, 243, 243, 173, 253, 253, 254, 254, + 254, 255, 220, 256}; const short GLSLParserTable::rhs [] = { 1, 1, 1, 1, 1, 3, 1, 4, 1, 3, @@ -192,52 +192,52 @@ const short GLSLParserTable::goto_default [] = { 109, 108, 112, 0}; const short GLSLParserTable::action_index [] = { - 3220, -172, -172, -172, -172, -172, 54, -172, -172, -172, - -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, - -172, -172, -172, -172, -172, -172, -172, -172, -172, 239, - -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, - -172, -172, -172, -172, -54, -172, -172, -172, -172, -172, - -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, - -172, 47, 76, 43, -172, -172, -172, -172, -172, -172, - -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, - -172, -172, -172, -172, 36, -172, -172, -172, -172, -172, - -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, - -172, -172, -172, -172, -172, -172, -172, -172, -172, 3220, - -6, -72, -172, 143, 32, 5, 64, 172, 397, 211, - 562, -172, -172, -172, 37, 1057, -172, -172, -44, -172, - -172, -172, -172, 6, 14, -172, 57, -36, -172, 19, - -172, -172, -172, -172, 562, -73, -172, -172, -172, -11, - 2552, 2552, 231, -172, 2719, 727, 10, -172, -172, -14, - -37, -172, 55, 1721, -172, -172, 1223, -172, -38, 1223, - 1223, -172, -172, -172, -172, -172, 62, 31, -172, -69, - 40, 30, -172, -172, 1389, -62, 67, -172, -28, -115, - 42, -27, -121, 7, 138, -172, 230, 25, -172, -172, - 1223, -172, -172, -172, -172, -172, 86, 228, 1223, -172, - -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, - -172, -172, 1223, -172, 1223, 1223, 24, 1223, 1223, 1223, - -172, -172, -172, 16, 1223, 46, 1223, 1223, 230, 1223, - 1223, 1223, 1223, 20, 1223, 1223, 70, 73, 18, 21, - 17, 102, -172, 1223, 65, -47, -172, -172, 1223, -172, - -172, -172, 1223, 56, 1223, -92, 1223, 1223, -112, 1223, - 51, 72, 1223, -172, -172, 892, -172, 1223, -26, -172, - 106, -48, -172, -172, 8, -172, -172, 69, -172, 2886, - -172, -172, 71, 1223, 2219, -172, -172, -172, -40, -109, - 1223, -172, -35, 1223, -172, -172, -172, -172, -172, -172, - -172, -172, 727, 53, -172, -172, -25, -51, 1223, -90, - -172, 727, -172, -172, -39, 110, -172, 4556, -172, -172, - -123, 1223, -117, -2, -104, 3721, -60, -61, 4389, 1887, - -172, -172, -63, -65, -172, -172, -172, -172, 61, -172, - -122, -172, -172, -172, -172, -172, 4055, -172, -59, -172, - 59, -172, -172, -172, -172, -135, -70, 1223, 60, -105, - -172, 3554, -172, -172, 3387, -56, -172, -106, -172, 106, - -108, -50, 727, 1223, 106, 3888, -172, -172, -172, -41, - 1223, -172, -172, 1223, 66, 3721, -172, -23, 3721, -172, - -172, 4222, -172, -172, -172, 82, -172, 1223, 87, -52, - 3721, -172, 3721, -103, -172, 3387, -107, 3888, -172, -172, - -172, -20, -172, 48, 1223, 2053, -172, 23, -75, 1223, - -172, -9, 1223, -172, -172, 206, -172, -172, -172, -172, - -172, -22, -172, 2552, 3053, 50, 29, -172, 1555, -172, - -100, -57, -172, -68, -172, 2385, -172, -67, -172, + 3240, -173, -173, -173, -173, -173, 54, -173, -173, -173, + -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, + -173, -173, -173, -173, -173, -173, -173, -173, -173, 248, + -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, + -173, -173, -173, -173, -54, -173, -173, -173, -173, -173, + -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, + -173, 47, 76, 43, -173, -173, -173, -173, -173, -173, + -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, + -173, -173, -173, -173, 36, -173, -173, -173, -173, -173, + -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, + -173, -173, -173, -173, -173, -173, -173, -173, -173, 3240, + -6, -72, -173, 110, 32, 5, 64, 166, 212, 189, + 566, -173, -173, -173, 37, 1064, -173, -173, -44, -173, + -173, -173, -173, 6, 14, -173, 57, -36, -173, 19, + -173, -173, -173, -173, 566, -73, -173, -173, -173, -11, + 2568, 2568, 400, -173, 2736, 732, 10, -173, -173, -14, + -37, -173, 55, 1732, -173, -173, 1231, -173, -38, 1231, + 1231, -173, -173, -173, -173, -173, 62, 31, -173, -69, + 40, 30, -173, -173, 1398, -62, 67, -173, -28, -115, + 42, -27, -121, 7, 91, -173, 232, 25, -173, -173, + 1231, -173, -173, -173, -173, -173, 86, 188, 1231, -173, + -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, + -173, -173, 1231, -173, 1231, 1231, 17, 1231, 1231, 1231, + -173, -173, -173, 16, 1231, 46, 1231, 1231, 232, 1231, + 1231, 1231, 1231, 20, 1231, 1231, 70, 74, 18, 21, + 15, 85, -173, 1231, 65, -47, -173, -173, 1231, -173, + -173, -173, 1231, 56, 1231, -92, 1231, 1231, -112, 1231, + 51, 72, 1231, -173, -173, 898, -173, 1231, -26, -173, + 107, -48, -173, -173, 8, -173, -173, 69, -173, 2904, + -173, -173, 71, 1231, 2233, -173, -173, -173, -40, -109, + 1231, -173, -35, 1231, -173, -173, -173, -173, -173, -173, + -173, -173, 732, 53, -173, -173, -25, -51, 1231, -90, + -173, 732, -173, -173, -39, 104, -173, 4584, -173, -173, + -123, 1231, -117, -2, -104, 3744, -60, -61, 4416, 1899, + -173, -173, -63, -65, -173, -173, -173, -173, 61, -173, + -122, -173, -173, -173, -173, -173, 4080, -173, -59, -173, + 59, -173, -173, -173, -173, -135, -70, 1231, 60, -105, + -173, 3576, -173, -173, 3408, -56, -173, -106, -173, 107, + -108, -50, 732, 1231, 107, 3912, -173, -173, -173, -41, + 1231, -173, -173, 1231, 66, 3744, -173, -23, 3744, -173, + -173, 4248, -173, -173, -173, 82, -173, 1231, 87, -52, + 3744, -173, 3744, -103, -173, 3408, -107, 3912, -173, -173, + -173, -20, -173, 49, 1231, 2066, -173, 23, -75, 1231, + -173, -9, 1231, -173, -173, 171, -173, -173, -173, -173, + -173, -22, -173, 2568, 3072, 50, 29, -173, 1565, -173, + -100, -57, -173, -68, -173, 2400, -173, -67, -173, 124, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, @@ -296,92 +296,76 @@ const short GLSLParserTable::action_info [] = { 160, 138, 282, 151, 454, -19, 429, 234, 253, 134, 262, 284, 266, 139, 361, 208, 208, 208, 267, 327, 421, 224, 208, 258, 236, 284, 149, 272, 208, 224, - 236, 424, 224, 244, 244, 147, 244, 244, 208, 142, + 236, 244, 424, 224, 244, 147, 244, 244, 208, 142, 446, 244, 208, 208, 448, 307, 129, 308, 0, 227, - 150, 0, 0, 0, 293, 0, 0, 0, 227, 0, - 0, 0, 208, 425, 0, 26, 227, 306, 245, 245, - 0, 245, 245, 0, 0, 237, 245, 328, 0, 0, - 228, 237, 229, 148, 0, 0, 294, 143, 295, 228, - 239, 229, 0, 309, 130, 45, 0, 228, 274, 229, - 306, 449, 307, 0, 308, 225, 0, 0, 58, 140, - 0, 0, 369, 225, 240, 275, 225, 1, 395, 259, - 241, 0, 447, 0, 0, 0, 6, 285, 0, 7, - 0, 276, 0, 419, 0, 307, 422, 308, 209, 409, - 0, 288, 0, 0, 0, 0, 0, 0, 0, 242, - 309, 1, 131, 277, 406, 0, 1, 0, 0, 0, - 6, 0, 0, 7, 27, 6, 0, 0, 7, 211, - 0, 212, 0, 0, 0, 0, -124, 0, 0, 0, - 0, 0, 0, 309, -124, -124, 0, 0, -124, 0, - 0, 213, 0, -124, 0, -91, -124, 0, 27, 0, - 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, - 0, 214, 60, 61, 0, 0, -124, 0, 239, 0, - 0, 0, 0, -124, -124, 63, 0, 0, 0, 132, + 150, 274, 0, 0, 293, 0, 0, 0, 227, 227, + 0, 306, 0, 208, 425, 26, 245, 306, 275, 245, + 0, 245, 245, 239, 0, 237, 245, 328, 0, 0, + 228, 237, 229, 148, 276, 0, 294, 143, 295, 228, + 228, 229, 229, 309, 130, 45, 307, 240, 308, 0, + 0, 449, 307, 241, 308, 225, 277, 0, 58, 140, + 0, 1, 369, 225, 0, 0, 1, 225, 395, 259, + 6, 0, 447, 7, 0, 6, 0, 285, 7, 211, + 0, 212, 242, 419, 1, 0, 422, 0, 209, 409, + 0, 288, 0, 6, 309, 0, 7, 0, 0, 0, + 309, 213, 131, 0, 406, 0, 0, 1, 27, 0, + 0, 0, -91, 27, 0, 0, 6, 0, 0, 7, + 0, 214, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -124, 0, 0, 0, 24, 0, 0, + 0, 215, -124, 0, 27, -124, 60, 61, 0, 0, + 0, 60, 61, 0, 0, 0, 0, 0, 0, 63, + 239, 216, 217, 0, 63, 0, 218, 0, 0, 60, + 61, 0, 0, -124, 0, 0, 219, 0, 132, 0, + -124, 0, 63, 0, 240, 0, 0, 0, 59, 87, + 241, 0, 60, 61, 87, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 102, 63, 220, 0, 0, 102, + 0, 0, 87, 0, 0, 0, 0, 0, 0, 242, + 0, 0, 0, 0, -124, 0, 83, 102, -124, -124, + 0, 0, 0, 221, 0, 87, 0, 0, 0, 0, 0, -124, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 215, 240, 0, 0, 0, 60, 61, 241, 0, - 0, 60, 61, 0, 0, 87, 0, 0, 0, 63, - 0, 216, 217, 0, 63, 0, 218, -124, 0, 0, - 102, -124, -124, 0, 0, -124, 219, 242, 0, -124, - -124, 0, 0, 0, -124, 0, 0, 0, 0, 87, - 0, 0, -124, 0, 87, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 102, -124, 220, 0, 0, 102, - 0, 0, 0, -124, -124, 0, 0, 0, 0, 0, - 0, 0, -124, 0, 0, 0, 0, 0, 0, -124, - 0, 0, 0, 221, 0, 0, 0, -124, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 6, 0, 0, 7, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 24, 0, 0, 0, 0, 0, 0, 27, + 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -124, 0, 0, 0, 0, 0, 0, 0, + 0, -124, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -124, -124, 0, 0, 0, + 0, 0, 0, 0, -124, 0, 0, -124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -124, 0, 0, 0, 0, + 0, 0, -124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 59, 0, 0, 0, 60, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -124, 0, 0, 0, + -124, -124, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, - 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, - 0, 3, 4, 5, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, - 20, 21, 22, 23, 0, 0, 0, 0, 25, 0, - 0, 0, 0, 0, 0, 0, 0, 28, 0, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -124, 0, 0, 0, 0, 0, + 0, 0, 0, -124, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 0, 0, 0, 0, 84, 0, - 0, 0, 0, 85, 86, 0, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 0, 103, 104, 105, 0, 106, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 3, 4, 5, 0, + 0, 0, 0, 2, 0, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 0, 0, 20, 21, 22, 23, 0, - 0, 0, 0, 25, 0, 0, 26, 0, 0, 0, - 0, 0, 28, 0, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 0, 0, - 0, 0, 0, 0, 0, 0, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 0, 0, 20, 21, 22, 23, 0, 0, + 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, + 0, 28, 0, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 0, - 0, 0, 0, 84, 0, 0, 0, 0, 85, 86, - 0, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 103, 104, 105, 0, - 106, 0, 0, 0, 0, 0, 0, 0, 0, 2, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 0, 0, + 0, 0, 84, 0, 0, 0, 0, 85, 86, 0, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 0, 103, 104, 105, 0, 106, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, 20, 21, 22, 23, 0, 0, 0, 0, 25, 0, - 0, 26, 278, 0, 0, 0, 0, 28, 0, 30, + 0, 26, 0, 0, 0, 0, 0, 28, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, 45, 46, 47, 48, 49, 50, 51, 52, 53, @@ -393,73 +377,40 @@ const short GLSLParserTable::action_info [] = { 0, 0, 0, 85, 86, 0, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 0, 103, 104, 105, 0, 106, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 3, 4, 5, 0, + 0, 0, 0, 0, 0, 2, 0, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 0, 0, 20, 21, 22, 23, 0, - 0, 0, 0, 25, 0, 0, 26, 441, 0, 0, - 0, 0, 28, 0, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 0, 0, - 0, 0, 0, 0, 0, 0, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 0, 0, 20, 21, 22, 23, + 0, 0, 0, 0, 25, 0, 0, 26, 278, 0, + 0, 0, 0, 28, 0, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 0, + 0, 0, 0, 0, 0, 0, 0, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 0, 0, 0, 0, 84, 0, 0, 0, 0, 85, + 86, 0, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 0, 103, 104, 105, + 0, 106, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 0, 3, 4, 5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 0, 0, 20, 21, 22, 23, 0, 0, 0, 0, + 25, 0, 0, 26, 441, 0, 0, 0, 0, 28, + 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 0, 0, 0, 0, 0, + 0, 0, 0, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 442, - 0, 0, 0, 84, 0, 0, 0, 0, 85, 86, - 0, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 103, 104, 105, 0, - 106, 0, 0, 0, 0, 0, 0, 0, 0, 164, - 2, 0, 3, 4, 5, 0, 0, 0, 0, 0, - 0, 0, 165, 166, 0, 0, 0, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, - 0, 20, 21, 22, 23, 0, 0, 0, 0, 25, - 0, 0, 26, 168, 0, 0, 169, 0, 28, 0, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 0, 0, 0, 0, 0, 0, - 170, 0, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 0, 0, 0, 0, - 171, 0, 0, 0, 0, 0, 172, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 0, 0, 0, 0, 84, - 0, 0, 0, 174, 85, 86, 0, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 0, 103, 104, 105, 0, 106, 0, 0, 0, - 175, 167, 0, 0, 0, 164, 2, 0, 3, 4, - 5, 0, 0, 0, 0, 0, 0, 0, 165, 166, - 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 0, 0, 20, 21, 22, - 23, 0, 0, 0, 0, 25, 0, 0, 26, 168, - 0, 0, 169, 0, 28, 0, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 0, 0, 0, 0, 0, 0, 170, 0, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 0, 0, 0, 0, 171, 0, 0, 0, - 0, 0, 172, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 0, 0, 0, 0, 84, 0, 0, 0, 174, - 85, 86, 0, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 0, 103, 104, - 105, 0, 255, 0, 0, 0, 175, 167, 0, 0, - 0, 164, 2, 0, 3, 4, 5, 0, 0, 0, - 0, 0, 0, 0, 165, 166, 0, 0, 0, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 0, 0, 20, 21, 22, 23, 0, 0, 0, - 0, 25, 0, 0, 26, 168, 0, 0, 169, 0, - 28, 0, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 0, 0, 0, 0, - 0, 0, 170, 0, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, - 0, 0, 171, 0, 0, 0, 0, 0, 172, 0, - 0, 0, 0, 0, 0, 450, 0, 0, 0, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 0, 0, 0, - 0, 84, 0, 0, 0, 174, 85, 86, 0, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 0, 103, 104, 105, 0, 106, 0, - 0, 0, 175, 167, 0, 0, 0, 164, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 442, 0, 0, 0, + 84, 0, 0, 0, 0, 85, 86, 0, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 0, 103, 104, 105, 0, 106, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 164, 2, 0, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 165, 166, 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, 20, @@ -470,62 +421,29 @@ const short GLSLParserTable::action_info [] = { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, 0, 0, 171, 0, 0, 0, 0, 0, 172, 0, 0, 0, 0, 0, - 0, 173, 0, 0, 0, 64, 65, 66, 67, 68, + 0, 0, 0, 0, 0, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 0, 0, 0, 0, 84, 0, 0, 0, 174, 85, 86, 0, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 0, 103, 104, 105, 0, 106, 0, 0, 0, 175, 167, - 0, 0, 0, 164, 2, 0, 3, 4, 5, 0, - 0, 0, 0, 0, 0, 0, 165, 166, 0, 0, - 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 0, 0, 20, 21, 22, 23, 0, - 0, 0, 0, 25, 0, 0, 26, 168, 0, 0, - 169, 0, 28, 0, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 0, 0, - 0, 0, 0, 0, 170, 0, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 0, 0, 0, 0, 171, 0, 0, 0, 0, 0, - 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 404, - 0, 0, 0, 84, 0, 0, 0, 174, 85, 86, - 0, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 103, 104, 105, 0, - 106, 0, 0, 0, 175, 167, 0, 0, 0, 164, - 2, 0, 3, 4, 5, 0, 0, 0, 0, 0, - 0, 0, 165, 166, 0, 0, 0, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, - 0, 20, 21, 22, 23, 0, 0, 0, 0, 25, - 0, 0, 26, 168, 0, 0, 169, 0, 28, 0, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 0, 0, 0, 0, 0, 0, - 170, 0, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 0, 0, 0, 0, - 171, 0, 0, 0, 0, 0, 172, 0, 0, 0, - 0, 0, 0, 427, 0, 0, 0, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 0, 0, 0, 0, 84, - 0, 0, 0, 174, 85, 86, 0, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 0, 103, 104, 105, 0, 106, 0, 0, 0, - 175, 167, 0, 0, 0, 164, 2, 0, 3, 4, - 5, 0, 0, 0, 0, 0, 0, 0, 165, 166, - 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 0, 0, 20, 21, 22, - 23, 0, 0, 0, 0, 25, 0, 0, 26, 168, - 0, 0, 169, 0, 28, 0, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 0, 0, 0, 0, 0, 0, 170, 0, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 0, 0, 0, 0, 171, 0, 0, 0, - 0, 0, 172, 0, 0, 0, 0, 0, 0, 298, - 0, 0, 0, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 0, 0, 0, 0, 84, 0, 0, 0, 174, - 85, 86, 0, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 0, 103, 104, - 105, 0, 106, 0, 0, 0, 175, 167, 0, 0, + 0, 0, 0, 0, 164, 2, 0, 3, 4, 5, + 0, 0, 0, 0, 0, 0, 0, 165, 166, 0, + 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 0, 0, 20, 21, 22, 23, + 0, 0, 0, 0, 25, 0, 0, 26, 168, 0, + 0, 169, 0, 28, 0, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 0, + 0, 0, 0, 0, 0, 170, 0, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 0, 0, 0, 0, 171, 0, 0, 0, 0, + 0, 172, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 0, 0, 0, 0, 84, 0, 0, 0, 174, 85, + 86, 0, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 0, 103, 104, 105, + 0, 255, 0, 0, 0, 175, 167, 0, 0, 0, 0, 164, 2, 0, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 165, 166, 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, @@ -536,46 +454,113 @@ const short GLSLParserTable::action_info [] = { 0, 0, 170, 0, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, 0, 0, 171, 0, 0, 0, 0, 0, 172, 0, - 0, 0, 0, 0, 0, 456, 0, 0, 0, 64, + 0, 0, 0, 0, 0, 450, 0, 0, 0, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 0, 0, 0, 0, 84, 0, 0, 0, 174, 85, 86, 0, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 0, 103, 104, 105, 0, 106, 0, - 0, 0, 175, 167, 0, 0, 0, 1, 0, 2, - 0, 3, 4, 5, 0, 0, 6, 0, 0, 7, - 0, 0, 0, 0, 0, 0, 8, 9, 10, 11, + 0, 0, 175, 167, 0, 0, 0, 0, 164, 2, + 0, 3, 4, 5, 0, 0, 0, 0, 0, 0, + 0, 165, 166, 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, - 20, 21, 22, 23, 0, 0, 0, 24, 25, 0, - 0, 26, 0, 0, 27, 0, 0, 28, 152, 30, + 20, 21, 22, 23, 0, 0, 0, 0, 25, 0, + 0, 26, 168, 0, 0, 169, 0, 28, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 0, 0, 0, 0, 0, 0, + 41, 42, 43, 0, 0, 0, 0, 0, 0, 170, 0, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 0, 0, 0, 59, 0, - 0, 0, 60, 61, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 63, 64, 65, 66, 67, + 54, 55, 56, 57, 58, 0, 0, 0, 0, 171, + 0, 0, 0, 0, 0, 172, 0, 0, 0, 0, + 0, 0, 173, 0, 0, 0, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 0, 0, 83, 0, 84, 0, - 0, 0, 0, 85, 86, 87, 88, 89, 90, 91, + 78, 79, 80, 81, 0, 0, 0, 0, 84, 0, + 0, 0, 174, 85, 86, 0, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 0, 106, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 2, 0, 3, 4, - 5, 0, 0, 6, 0, 0, 7, 0, 0, 0, + 0, 103, 104, 105, 0, 106, 0, 0, 0, 175, + 167, 0, 0, 0, 0, 164, 2, 0, 3, 4, + 5, 0, 0, 0, 0, 0, 0, 0, 165, 166, 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, 20, 21, 22, - 23, 0, 0, 0, 24, 25, 0, 0, 26, 0, - 0, 27, 0, 0, 28, 152, 30, 31, 32, 33, + 23, 0, 0, 0, 0, 25, 0, 0, 26, 168, + 0, 0, 169, 0, 28, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 0, 0, 0, 0, 0, 0, 0, 45, 46, + 0, 0, 0, 0, 0, 0, 170, 0, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 0, 0, 0, 59, 0, 0, 0, 60, - 61, 0, 0, 0, 0, 0, 0, 0, 157, 0, - 0, 0, 63, 64, 65, 66, 67, 68, 69, 70, + 57, 58, 0, 0, 0, 0, 171, 0, 0, 0, + 0, 0, 172, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 0, 0, 83, 0, 84, 0, 0, 0, 0, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 0, 106, 0, 0, 0, 0, 0, 0, 0, + 81, 404, 0, 0, 0, 84, 0, 0, 0, 174, + 85, 86, 0, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 0, 103, 104, + 105, 0, 106, 0, 0, 0, 175, 167, 0, 0, + 0, 0, 164, 2, 0, 3, 4, 5, 0, 0, + 0, 0, 0, 0, 0, 165, 166, 0, 0, 0, + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 0, 0, 20, 21, 22, 23, 0, 0, + 0, 0, 25, 0, 0, 26, 168, 0, 0, 169, + 0, 28, 0, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 0, 0, 0, + 0, 0, 0, 170, 0, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 0, + 0, 0, 0, 171, 0, 0, 0, 0, 0, 172, + 0, 0, 0, 0, 0, 0, 427, 0, 0, 0, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 0, 0, + 0, 0, 84, 0, 0, 0, 174, 85, 86, 0, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 0, 103, 104, 105, 0, 106, + 0, 0, 0, 175, 167, 0, 0, 0, 0, 164, + 2, 0, 3, 4, 5, 0, 0, 0, 0, 0, + 0, 0, 165, 166, 0, 0, 0, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, + 0, 20, 21, 22, 23, 0, 0, 0, 0, 25, + 0, 0, 26, 168, 0, 0, 169, 0, 28, 0, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 0, 0, 0, 0, 0, 0, + 170, 0, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 0, 0, 0, 0, + 171, 0, 0, 0, 0, 0, 172, 0, 0, 0, + 0, 0, 0, 298, 0, 0, 0, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 0, 0, 0, 0, 84, + 0, 0, 0, 174, 85, 86, 0, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 103, 104, 105, 0, 106, 0, 0, 0, + 175, 167, 0, 0, 0, 0, 164, 2, 0, 3, + 4, 5, 0, 0, 0, 0, 0, 0, 0, 165, + 166, 0, 0, 0, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 0, 0, 20, 21, + 22, 23, 0, 0, 0, 0, 25, 0, 0, 26, + 168, 0, 0, 169, 0, 28, 0, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 0, 0, 0, 0, 0, 0, 170, 0, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 0, 0, 0, 0, 171, 0, 0, + 0, 0, 0, 172, 0, 0, 0, 0, 0, 0, + 456, 0, 0, 0, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 0, 0, 0, 0, 84, 0, 0, 0, + 174, 85, 86, 0, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 0, 103, + 104, 105, 0, 106, 0, 0, 0, 175, 167, 0, + 0, 0, 0, 1, 0, 2, 0, 3, 4, 5, + 0, 0, 6, 0, 0, 7, 0, 0, 0, 0, + 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 0, 0, 20, 21, 22, 23, + 0, 0, 0, 24, 25, 0, 0, 26, 0, 0, + 27, 0, 0, 28, 152, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 0, 0, 0, 0, 0, 0, 0, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 0, 0, 0, 59, 0, 0, 0, 60, 61, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 0, 0, 83, 0, 84, 0, 0, 0, 0, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 0, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 3, 4, 5, 0, 0, 6, 0, 0, 7, 0, 0, 0, 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, @@ -586,29 +571,46 @@ const short GLSLParserTable::action_info [] = { 0, 0, 0, 0, 0, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, 0, 59, 0, 0, 0, 60, 61, 0, 0, - 0, 0, 0, 0, 0, 290, 0, 0, 0, 63, + 0, 0, 0, 0, 0, 157, 0, 0, 0, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 0, 0, 83, 0, 84, 0, 0, 0, 0, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 0, 106, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 2, 0, 3, 4, 5, 0, 0, 6, 0, 0, - 7, 0, 0, 0, 0, 0, 0, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, - 0, 20, 21, 22, 23, 0, 0, 0, 24, 25, - 0, 0, 26, 0, 0, 27, 0, 0, 28, 152, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 0, 0, 0, 0, 0, - 0, 0, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 0, 0, 0, 59, - 0, 0, 0, 60, 61, 0, 0, 0, 0, 0, - 0, 0, 445, 0, 0, 0, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 0, 0, 83, 0, 84, - 0, 0, 0, 0, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 0, 106, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 0, 2, 0, 3, 4, 5, 0, 0, 6, 0, + 0, 7, 0, 0, 0, 0, 0, 0, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 0, 0, 20, 21, 22, 23, 0, 0, 0, 24, + 25, 0, 0, 26, 0, 0, 27, 0, 0, 28, + 152, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 0, 0, 0, 0, + 0, 0, 0, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 0, 0, 0, + 59, 0, 0, 0, 60, 61, 0, 0, 0, 0, + 0, 0, 0, 290, 0, 0, 0, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 0, 0, 83, 0, + 84, 0, 0, 0, 0, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 0, 106, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, + 0, 3, 4, 5, 0, 0, 6, 0, 0, 7, + 0, 0, 0, 0, 0, 0, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, + 20, 21, 22, 23, 0, 0, 0, 24, 25, 0, + 0, 26, 0, 0, 27, 0, 0, 28, 152, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 0, 0, 0, 0, 0, 0, + 0, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 0, 0, 0, 59, 0, + 0, 0, 60, 61, 0, 0, 0, 0, 0, 0, + 0, 445, 0, 0, 0, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 0, 0, 83, 0, 84, 0, + 0, 0, 0, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 0, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 3, 4, 5, 0, 0, 6, 0, 0, 7, 0, 0, 0, 0, 0, 0, 8, 9, 10, 11, 12, 13, @@ -626,56 +628,90 @@ const short GLSLParserTable::action_info [] = { 0, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 0, 106, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 164, 2, 0, 3, 4, 5, 0, - 0, 6, 0, 0, 7, 0, 165, 166, 0, 0, - 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 0, 0, 20, 21, 22, 23, 0, - 0, 0, 24, 25, 0, 0, 26, 168, 0, 27, - 169, 0, 28, 152, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 0, - 0, 0, 0, 0, 170, 0, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 0, 0, 0, 59, 171, 0, 0, 60, 61, 0, - 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 0, - 0, 83, 0, 84, 0, 0, 0, 174, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 0, - 106, 0, 0, 0, 175, 167, 0, 0, 0, 1, - 164, 2, 0, 3, 4, 5, 0, 0, 6, 0, - 0, 7, 0, 165, 166, 0, 0, 0, 8, 9, + 0, 0, 0, 1, 164, 2, 0, 3, 4, 5, + 0, 0, 6, 0, 0, 7, 0, 165, 166, 0, + 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 0, 0, 20, 21, 22, 23, + 0, 0, 0, 24, 25, 0, 0, 26, 168, 0, + 27, 169, 0, 28, 152, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 0, 0, 0, 0, 0, 170, 0, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 0, 0, 0, 59, 171, 0, 0, 60, 61, + 0, 172, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 0, 0, 83, 0, 84, 0, 0, 0, 174, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 0, 106, 0, 0, 0, 175, 167, 0, 0, 0, + 0, 1, 164, 2, 0, 3, 4, 5, 0, 0, + 6, 0, 0, 7, 0, 165, 166, 0, 0, 0, + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 0, 0, 20, 21, 22, 23, 0, 0, + 0, 24, 25, 0, 0, 26, 168, 0, 27, 169, + 0, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 0, 0, + 0, 0, 0, 170, 0, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 0, + 0, 0, 59, 171, 0, 0, 60, 61, 0, 172, + 62, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 341, 0, + 83, 0, 84, 0, 0, 0, 174, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 0, 106, + 0, 0, 0, 175, 167, 0, 0, 0, 0, 1, + 164, 2, 330, 3, 4, 5, 0, 331, 6, 0, + 0, 7, 332, 165, 166, 333, 334, 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 0, 0, 20, 21, 22, 23, 0, 0, 0, 24, - 25, 0, 0, 26, 168, 0, 27, 169, 0, 28, + 335, 0, 20, 21, 22, 23, 0, 0, 0, 24, + 25, 336, 0, 26, 168, 337, 27, 169, 0, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 0, 0, 0, 0, + 39, 40, 41, 42, 43, 44, 0, 0, 338, 0, 0, 170, 0, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, 0, 59, 171, 0, 0, 60, 61, 0, 172, 62, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 64, 65, + 339, 0, 0, 0, 0, 0, 0, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 341, 0, 83, 0, - 84, 0, 0, 0, 174, 85, 86, 87, 88, 89, + 84, 0, 0, 342, 174, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 0, 106, 0, 0, - 0, 175, 167, 0, 0, 0, 1, 164, 2, 330, - 3, 4, 5, 0, 331, 6, 0, 0, 7, 332, - 165, 166, 333, 334, 0, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 335, 0, 20, - 21, 22, 23, 0, 0, 0, 24, 25, 336, 0, - 26, 168, 337, 27, 169, 0, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 0, 0, 338, 0, 0, 170, 0, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 0, 0, 0, 59, 171, 0, - 0, 60, 61, 0, 172, 62, 0, 339, 0, 0, - 0, 0, 0, 0, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 341, 0, 83, 0, 84, 0, 0, - 342, 174, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 0, 106, 343, 0, 0, 175, 167, + 100, 101, 102, 103, 104, 105, 0, 106, 343, 0, + 0, 175, 167, 0, 0, 0, 0, 1, 164, 2, + 330, 3, 4, 5, 0, 331, 6, 0, 0, 7, + 332, 165, 166, 333, 334, 0, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 335, 0, + 20, 21, 22, 23, 0, 0, 0, 24, 25, 336, + 0, 26, 168, 337, 27, 169, 0, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 0, 0, 327, 0, 0, 170, + 0, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 0, 0, 0, 59, 171, + 0, 0, 60, 61, 0, 172, 62, 0, 339, 0, + 0, 0, 0, 0, 0, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 341, 0, 83, 0, 84, 0, + 0, 342, 174, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 0, 106, 343, 0, 0, 175, + 167, 0, 0, 0, 0, 1, 164, 2, 330, 3, + 4, 5, 0, 331, 6, 0, 0, 7, 332, 165, + 166, 333, 334, 0, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 335, 0, 20, 21, + 22, 23, 0, 0, 0, 24, 25, 336, 0, 26, + 168, 337, 27, 169, 0, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 0, 0, 338, 0, 0, 170, 0, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 0, 0, 0, 59, 171, 0, 0, + 60, 61, 0, 172, 62, 0, 339, 0, 0, 420, + 0, 0, 0, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 341, 0, 83, 0, 84, 0, 0, 342, + 174, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 0, 106, 343, 0, 0, 175, 167, 0, 0, 0, 0, 1, 164, 2, 330, 3, 4, 5, 0, 331, 6, 0, 0, 7, 332, 165, 166, 333, 334, 0, 8, 9, 10, 11, 12, 13, 14, 15, @@ -683,66 +719,16 @@ const short GLSLParserTable::action_info [] = { 0, 0, 0, 24, 25, 336, 0, 26, 168, 337, 27, 169, 0, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 0, 0, 327, 0, 0, 170, 0, 45, 46, 47, + 0, 0, 338, 0, 0, 170, 0, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, 0, 59, 171, 0, 0, 60, 61, - 0, 172, 62, 0, 339, 0, 0, 0, 0, 0, + 0, 172, 62, 0, 339, 0, 0, 402, 0, 0, 0, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 341, 0, 83, 0, 84, 0, 0, 342, 174, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 0, 106, 343, 0, 0, 175, 167, 0, 0, 0, - 1, 164, 2, 330, 3, 4, 5, 0, 331, 6, - 0, 0, 7, 332, 165, 166, 333, 334, 0, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 335, 0, 20, 21, 22, 23, 0, 0, 0, - 24, 25, 336, 0, 26, 168, 337, 27, 169, 0, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 0, 0, 338, - 0, 0, 170, 0, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, - 0, 59, 171, 0, 0, 60, 61, 0, 172, 62, - 0, 339, 0, 0, 420, 0, 0, 0, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 341, 0, 83, - 0, 84, 0, 0, 342, 174, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 0, 106, 343, - 0, 0, 175, 167, 0, 0, 0, 1, 164, 2, - 330, 3, 4, 5, 0, 331, 6, 0, 0, 7, - 332, 165, 166, 333, 334, 0, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 335, 0, - 20, 21, 22, 23, 0, 0, 0, 24, 25, 336, - 0, 26, 168, 337, 27, 169, 0, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 0, 0, 338, 0, 0, 170, - 0, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 0, 0, 0, 59, 171, - 0, 0, 60, 61, 0, 172, 62, 0, 339, 0, - 0, 402, 0, 0, 0, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 341, 0, 83, 0, 84, 0, - 0, 342, 174, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 0, 106, 343, 0, 0, 175, - 167, 0, 0, 0, 1, 164, 2, 330, 3, 4, - 5, 0, 331, 6, 0, 0, 7, 332, 165, 166, - 333, 334, 0, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 335, 0, 20, 21, 22, - 23, 0, 0, 0, 24, 25, 336, 0, 26, 168, - 337, 27, 169, 0, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 0, 0, 338, 0, 0, 170, 0, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 0, 0, 0, 59, 171, 0, 0, 60, - 61, 0, 172, 62, 0, 339, 0, 0, 400, 0, - 0, 0, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 341, 0, 83, 0, 84, 0, 0, 342, 174, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 0, 106, 343, 0, 0, 175, 167, 0, 0, 0, 1, 164, 2, 330, 3, 4, 5, 0, 331, 6, 0, 0, 7, 332, 165, 166, 333, 334, 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, @@ -753,17 +739,34 @@ const short GLSLParserTable::action_info [] = { 338, 0, 0, 170, 0, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, 0, 59, 171, 0, 0, 60, 61, 0, 172, - 62, 0, 339, 0, 0, 340, 0, 0, 0, 63, + 62, 0, 339, 0, 0, 400, 0, 0, 0, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 341, 0, 83, 0, 84, 0, 0, 342, 174, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 0, 106, - 343, 0, 0, 175, 167, 0, 0, 0, - - 384, 437, 394, 392, 273, 232, 279, 434, 280, 392, - 439, 283, 296, 256, 210, 438, 223, 141, 231, 271, - 260, 230, 286, 358, 360, 326, 159, 405, 145, 368, + 343, 0, 0, 175, 167, 0, 0, 0, 0, 1, + 164, 2, 330, 3, 4, 5, 0, 331, 6, 0, + 0, 7, 332, 165, 166, 333, 334, 0, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 335, 0, 20, 21, 22, 23, 0, 0, 0, 24, + 25, 336, 0, 26, 168, 337, 27, 169, 0, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 0, 0, 338, 0, + 0, 170, 0, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 0, 0, 0, + 59, 171, 0, 0, 60, 61, 0, 172, 62, 0, + 339, 0, 0, 340, 0, 0, 0, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 341, 0, 83, 0, + 84, 0, 0, 342, 174, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 0, 106, 343, 0, + 0, 175, 167, 0, 0, 0, 0, + + 384, 437, 394, 392, 273, 232, 279, 434, 280, 392, + 439, 283, 296, 256, 210, 438, 223, 141, 231, 271, + 260, 230, 286, 358, 360, 326, 159, 405, 145, 368, 206, 316, 321, 202, 329, 162, 0, 203, 199, 0, 199, 144, 156, 251, 199, 296, 235, 296, 296, 238, 0, 296, 199, 199, 233, 199, 199, 226, 199, 247, @@ -796,92 +799,76 @@ const short GLSLParserTable::action_check [] = { 50, 97, 110, 74, 132, 112, 43, 2, 12, 50, 162, 16, 99, 16, 15, 16, 16, 16, 105, 74, 16, 19, 16, 16, 44, 16, 50, 15, 16, 19, - 44, 43, 19, 76, 76, 52, 76, 76, 16, 52, + 44, 76, 43, 19, 76, 52, 76, 76, 16, 52, 50, 76, 16, 16, 75, 52, 52, 54, -1, 102, - 74, -1, -1, -1, 43, -1, -1, -1, 102, -1, - -1, -1, 16, 75, -1, 49, 102, 17, 111, 111, - -1, 111, 111, -1, -1, 95, 111, 132, -1, -1, - 133, 95, 135, 100, -1, -1, 75, 100, 77, 133, - 48, 135, -1, 100, 100, 79, -1, 133, 20, 135, - 17, 132, 52, -1, 54, 103, -1, -1, 92, 112, - -1, -1, 112, 103, 72, 37, 103, 5, 112, 112, - 78, -1, 132, -1, -1, -1, 14, 132, -1, 17, - -1, 53, -1, 132, -1, 52, 132, 54, 112, 112, - -1, 132, -1, -1, -1, -1, -1, -1, -1, 107, - 100, 5, 158, 75, 132, -1, 5, -1, -1, -1, - 14, -1, -1, 17, 52, 14, -1, -1, 17, 1, - -1, 3, -1, -1, -1, -1, 5, -1, -1, -1, - -1, -1, -1, 100, 5, 14, -1, -1, 17, -1, - -1, 23, -1, 14, -1, 112, 17, -1, 52, -1, - -1, -1, -1, 52, -1, -1, -1, -1, -1, -1, - -1, 43, 100, 101, -1, -1, 45, -1, 48, -1, - -1, -1, -1, 52, 45, 113, -1, -1, -1, 50, + 74, 20, -1, -1, 43, -1, -1, -1, 102, 102, + -1, 17, -1, 16, 75, 49, 111, 17, 37, 111, + -1, 111, 111, 48, -1, 95, 111, 132, -1, -1, + 133, 95, 135, 100, 53, -1, 75, 100, 77, 133, + 133, 135, 135, 100, 100, 79, 52, 72, 54, -1, + -1, 132, 52, 78, 54, 103, 75, -1, 92, 112, + -1, 5, 112, 103, -1, -1, 5, 103, 112, 112, + 14, -1, 132, 17, -1, 14, -1, 132, 17, 1, + -1, 3, 107, 132, 5, -1, 132, -1, 112, 112, + -1, 132, -1, 14, 100, -1, 17, -1, -1, -1, + 100, 23, 158, -1, 132, -1, -1, 5, 52, -1, + -1, -1, 112, 52, -1, -1, 14, -1, -1, 17, + -1, 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 73, 72, -1, -1, -1, 100, 101, 78, -1, - -1, 100, 101, -1, -1, 143, -1, -1, -1, 113, - -1, 93, 94, -1, 113, -1, 98, 96, -1, -1, - 158, 100, 101, -1, -1, 96, 108, 107, -1, 100, - 101, -1, -1, -1, 113, -1, -1, -1, -1, 143, - -1, -1, 113, -1, 143, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 158, 134, 138, -1, -1, 158, - -1, -1, -1, 134, 143, -1, -1, -1, -1, -1, - -1, -1, 143, -1, -1, -1, -1, -1, -1, 158, - -1, -1, -1, 165, -1, -1, -1, 158, -1, -1, - -1, -1, 5, -1, -1, -1, -1, -1, -1, -1, - -1, 14, -1, -1, 17, -1, -1, -1, -1, -1, + -1, -1, -1, 5, -1, -1, -1, 45, -1, -1, + -1, 73, 14, -1, 52, 17, 100, 101, -1, -1, + -1, 100, 101, -1, -1, -1, -1, -1, -1, 113, + 48, 93, 94, -1, 113, -1, 98, -1, -1, 100, + 101, -1, -1, 45, -1, -1, 108, -1, 50, -1, + 52, -1, 113, -1, 72, -1, -1, -1, 96, 143, + 78, -1, 100, 101, 143, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 158, 113, 138, -1, -1, 158, + -1, -1, 143, -1, -1, -1, -1, -1, -1, 107, + -1, -1, -1, -1, 96, -1, 134, 158, 100, 101, + -1, -1, -1, 165, -1, 143, -1, -1, -1, -1, + -1, 113, -1, -1, -1, -1, -1, -1, -1, -1, + 158, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 134, -1, -1, -1, -1, -1, -1, -1, + -1, 143, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 5, 158, -1, -1, -1, + -1, -1, -1, -1, 14, -1, -1, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 45, -1, -1, -1, -1, -1, -1, 52, + -1, -1, -1, -1, -1, 45, -1, -1, -1, -1, + -1, -1, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 96, -1, -1, -1, + 100, 101, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 113, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 96, -1, -1, -1, 100, 101, -1, + -1, -1, -1, -1, 134, -1, -1, -1, -1, -1, + -1, -1, -1, 143, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 158, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 113, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 7, -1, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, - 143, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 158, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 7, - -1, 9, 10, 11, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, - 38, 39, 40, 41, -1, -1, -1, -1, 46, -1, - -1, -1, -1, -1, -1, -1, -1, 55, -1, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, -1, -1, -1, -1, 136, -1, - -1, -1, -1, 141, 142, -1, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - -1, 159, 160, 161, -1, 163, -1, -1, -1, -1, - -1, -1, -1, -1, 7, -1, 9, 10, 11, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, -1, -1, 38, 39, 40, 41, -1, - -1, -1, -1, 46, -1, -1, 49, -1, -1, -1, - -1, -1, 55, -1, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, -1, -1, - -1, -1, -1, -1, -1, -1, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, -1, -1, 38, 39, 40, 41, -1, -1, + -1, -1, 46, -1, -1, -1, -1, -1, -1, -1, + -1, 55, -1, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, - -1, -1, -1, 136, -1, -1, -1, -1, 141, 142, - -1, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, -1, 159, 160, 161, -1, - 163, -1, -1, -1, -1, -1, -1, -1, -1, 7, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, -1, -1, + -1, -1, 136, -1, -1, -1, -1, 141, 142, -1, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, -1, 159, 160, 161, -1, 163, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 7, -1, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, 38, 39, 40, 41, -1, -1, -1, -1, 46, -1, - -1, 49, 50, -1, -1, -1, -1, 55, -1, 57, + -1, 49, -1, -1, -1, -1, -1, 55, -1, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, -1, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, @@ -893,73 +880,40 @@ const short GLSLParserTable::action_check [] = { -1, -1, -1, 141, 142, -1, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, -1, 159, 160, 161, -1, 163, -1, -1, -1, -1, - -1, -1, -1, -1, 7, -1, 9, 10, 11, -1, + -1, -1, -1, -1, -1, 7, -1, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, -1, -1, 38, 39, 40, 41, -1, - -1, -1, -1, 46, -1, -1, 49, 50, -1, -1, - -1, -1, 55, -1, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, -1, -1, - -1, -1, -1, -1, -1, -1, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + -1, -1, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, -1, -1, 38, 39, 40, 41, + -1, -1, -1, -1, 46, -1, -1, 49, 50, -1, + -1, -1, -1, 55, -1, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, -1, + -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + -1, -1, -1, -1, 136, -1, -1, -1, -1, 141, + 142, -1, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, -1, 159, 160, 161, + -1, 163, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 7, -1, 9, 10, 11, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + -1, -1, 38, 39, 40, 41, -1, -1, -1, -1, + 46, -1, -1, 49, 50, -1, -1, -1, -1, 55, + -1, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, -1, -1, -1, -1, -1, + -1, -1, -1, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - -1, -1, -1, 136, -1, -1, -1, -1, 141, 142, - -1, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, -1, 159, 160, 161, -1, - 163, -1, -1, -1, -1, -1, -1, -1, -1, 6, - 7, -1, 9, 10, 11, -1, -1, -1, -1, -1, - -1, -1, 19, 20, -1, -1, -1, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, - -1, 38, 39, 40, 41, -1, -1, -1, -1, 46, - -1, -1, 49, 50, -1, -1, 53, -1, 55, -1, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, -1, -1, -1, -1, -1, -1, - 77, -1, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, -1, -1, -1, -1, - 97, -1, -1, -1, -1, -1, 103, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, -1, -1, -1, -1, 136, - -1, -1, -1, 140, 141, 142, -1, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, -1, 159, 160, 161, -1, 163, -1, -1, -1, - 167, 168, -1, -1, -1, 6, 7, -1, 9, 10, - 11, -1, -1, -1, -1, -1, -1, -1, 19, 20, - -1, -1, -1, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, -1, -1, 38, 39, 40, - 41, -1, -1, -1, -1, 46, -1, -1, 49, 50, - -1, -1, 53, -1, 55, -1, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - -1, -1, -1, -1, -1, -1, 77, -1, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, -1, -1, -1, -1, 97, -1, -1, -1, - -1, -1, 103, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, -1, -1, -1, -1, 136, -1, -1, -1, 140, - 141, 142, -1, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, -1, 159, 160, - 161, -1, 163, -1, -1, -1, 167, 168, -1, -1, - -1, 6, 7, -1, 9, 10, 11, -1, -1, -1, - -1, -1, -1, -1, 19, 20, -1, -1, -1, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, -1, -1, 38, 39, 40, 41, -1, -1, -1, - -1, 46, -1, -1, 49, 50, -1, -1, 53, -1, - 55, -1, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, -1, -1, -1, -1, - -1, -1, 77, -1, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, -1, -1, - -1, -1, 97, -1, -1, -1, -1, -1, 103, -1, - -1, -1, -1, -1, -1, 110, -1, -1, -1, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, -1, -1, -1, - -1, 136, -1, -1, -1, 140, 141, 142, -1, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, -1, 159, 160, 161, -1, 163, -1, - -1, -1, 167, 168, -1, -1, -1, 6, 7, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, -1, -1, -1, + 136, -1, -1, -1, -1, 141, 142, -1, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, -1, 159, 160, 161, -1, 163, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 6, 7, -1, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, 19, 20, -1, -1, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, 38, @@ -970,62 +924,29 @@ const short GLSLParserTable::action_check [] = { 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, -1, -1, -1, -1, 97, -1, -1, -1, -1, -1, 103, -1, -1, -1, -1, -1, - -1, 110, -1, -1, -1, 114, 115, 116, 117, 118, + -1, -1, -1, -1, -1, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, -1, -1, -1, 136, -1, -1, -1, 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, -1, 159, 160, 161, -1, 163, -1, -1, -1, 167, 168, - -1, -1, -1, 6, 7, -1, 9, 10, 11, -1, - -1, -1, -1, -1, -1, -1, 19, 20, -1, -1, - -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, -1, -1, 38, 39, 40, 41, -1, - -1, -1, -1, 46, -1, -1, 49, 50, -1, -1, - 53, -1, 55, -1, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, -1, -1, - -1, -1, -1, -1, 77, -1, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - -1, -1, -1, -1, 97, -1, -1, -1, -1, -1, - 103, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - -1, -1, -1, 136, -1, -1, -1, 140, 141, 142, - -1, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, -1, 159, 160, 161, -1, - 163, -1, -1, -1, 167, 168, -1, -1, -1, 6, - 7, -1, 9, 10, 11, -1, -1, -1, -1, -1, - -1, -1, 19, 20, -1, -1, -1, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, - -1, 38, 39, 40, 41, -1, -1, -1, -1, 46, - -1, -1, 49, 50, -1, -1, 53, -1, 55, -1, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, -1, -1, -1, -1, -1, -1, - 77, -1, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, -1, -1, -1, -1, - 97, -1, -1, -1, -1, -1, 103, -1, -1, -1, - -1, -1, -1, 110, -1, -1, -1, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, -1, -1, -1, -1, 136, - -1, -1, -1, 140, 141, 142, -1, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, -1, 159, 160, 161, -1, 163, -1, -1, -1, - 167, 168, -1, -1, -1, 6, 7, -1, 9, 10, - 11, -1, -1, -1, -1, -1, -1, -1, 19, 20, - -1, -1, -1, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, -1, -1, 38, 39, 40, - 41, -1, -1, -1, -1, 46, -1, -1, 49, 50, - -1, -1, 53, -1, 55, -1, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - -1, -1, -1, -1, -1, -1, 77, -1, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, -1, -1, -1, -1, 97, -1, -1, -1, - -1, -1, 103, -1, -1, -1, -1, -1, -1, 110, - -1, -1, -1, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, -1, -1, -1, -1, 136, -1, -1, -1, 140, - 141, 142, -1, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, -1, 159, 160, - 161, -1, 163, -1, -1, -1, 167, 168, -1, -1, + -1, -1, -1, -1, 6, 7, -1, 9, 10, 11, + -1, -1, -1, -1, -1, -1, -1, 19, 20, -1, + -1, -1, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, -1, -1, 38, 39, 40, 41, + -1, -1, -1, -1, 46, -1, -1, 49, 50, -1, + -1, 53, -1, 55, -1, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, -1, + -1, -1, -1, -1, -1, 77, -1, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, -1, -1, -1, -1, 97, -1, -1, -1, -1, + -1, 103, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + -1, -1, -1, -1, 136, -1, -1, -1, 140, 141, + 142, -1, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, -1, 159, 160, 161, + -1, 163, -1, -1, -1, 167, 168, -1, -1, -1, -1, 6, 7, -1, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, 19, 20, -1, -1, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, @@ -1042,40 +963,107 @@ const short GLSLParserTable::action_check [] = { -1, 136, -1, -1, -1, 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, -1, 159, 160, 161, -1, 163, -1, - -1, -1, 167, 168, -1, -1, -1, 5, -1, 7, - -1, 9, 10, 11, -1, -1, 14, -1, -1, 17, - -1, -1, -1, -1, -1, -1, 24, 25, 26, 27, + -1, -1, 167, 168, -1, -1, -1, -1, 6, 7, + -1, 9, 10, 11, -1, -1, -1, -1, -1, -1, + -1, 19, 20, -1, -1, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, - 38, 39, 40, 41, -1, -1, -1, 45, 46, -1, - -1, 49, -1, -1, 52, -1, -1, 55, 56, 57, + 38, 39, 40, 41, -1, -1, -1, -1, 46, -1, + -1, 49, 50, -1, -1, 53, -1, 55, -1, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, -1, -1, -1, -1, -1, -1, + 68, 69, 70, -1, -1, -1, -1, -1, -1, 77, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, -1, -1, -1, 96, -1, - -1, -1, 100, 101, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, + 88, 89, 90, 91, 92, -1, -1, -1, -1, 97, + -1, -1, -1, -1, -1, 103, -1, -1, -1, -1, + -1, -1, 110, -1, -1, -1, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, -1, -1, 134, -1, 136, -1, - -1, -1, -1, 141, 142, 143, 144, 145, 146, 147, + 128, 129, 130, 131, -1, -1, -1, -1, 136, -1, + -1, -1, 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, -1, 163, -1, -1, -1, -1, - -1, -1, -1, -1, 5, -1, 7, -1, 9, 10, - 11, -1, -1, 14, -1, -1, 17, -1, -1, -1, + -1, 159, 160, 161, -1, 163, -1, -1, -1, 167, + 168, -1, -1, -1, -1, 6, 7, -1, 9, 10, + 11, -1, -1, -1, -1, -1, -1, -1, 19, 20, -1, -1, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, 38, 39, 40, - 41, -1, -1, -1, 45, 46, -1, -1, 49, -1, - -1, 52, -1, -1, 55, 56, 57, 58, 59, 60, + 41, -1, -1, -1, -1, 46, -1, -1, 49, 50, + -1, -1, 53, -1, 55, -1, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, + -1, -1, -1, -1, -1, -1, 77, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, - 101, -1, -1, -1, -1, -1, -1, -1, 109, -1, - -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, + 91, 92, -1, -1, -1, -1, 97, -1, -1, -1, + -1, -1, 103, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, -1, -1, 134, -1, 136, -1, -1, -1, -1, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, -1, 163, -1, -1, -1, -1, -1, -1, -1, + 131, 132, -1, -1, -1, 136, -1, -1, -1, 140, + 141, 142, -1, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, -1, 159, 160, + 161, -1, 163, -1, -1, -1, 167, 168, -1, -1, + -1, -1, 6, 7, -1, 9, 10, 11, -1, -1, + -1, -1, -1, -1, -1, 19, 20, -1, -1, -1, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, -1, -1, 38, 39, 40, 41, -1, -1, + -1, -1, 46, -1, -1, 49, 50, -1, -1, 53, + -1, 55, -1, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, -1, -1, -1, + -1, -1, -1, 77, -1, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, -1, + -1, -1, -1, 97, -1, -1, -1, -1, -1, 103, + -1, -1, -1, -1, -1, -1, 110, -1, -1, -1, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, -1, -1, + -1, -1, 136, -1, -1, -1, 140, 141, 142, -1, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, -1, 159, 160, 161, -1, 163, + -1, -1, -1, 167, 168, -1, -1, -1, -1, 6, + 7, -1, 9, 10, 11, -1, -1, -1, -1, -1, + -1, -1, 19, 20, -1, -1, -1, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, + -1, 38, 39, 40, 41, -1, -1, -1, -1, 46, + -1, -1, 49, 50, -1, -1, 53, -1, 55, -1, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, -1, -1, -1, -1, -1, -1, + 77, -1, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, -1, -1, -1, -1, + 97, -1, -1, -1, -1, -1, 103, -1, -1, -1, + -1, -1, -1, 110, -1, -1, -1, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, -1, -1, -1, -1, 136, + -1, -1, -1, 140, 141, 142, -1, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, -1, 159, 160, 161, -1, 163, -1, -1, -1, + 167, 168, -1, -1, -1, -1, 6, 7, -1, 9, + 10, 11, -1, -1, -1, -1, -1, -1, -1, 19, + 20, -1, -1, -1, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, -1, -1, 38, 39, + 40, 41, -1, -1, -1, -1, 46, -1, -1, 49, + 50, -1, -1, 53, -1, 55, -1, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, -1, -1, -1, -1, -1, -1, 77, -1, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, -1, -1, -1, -1, 97, -1, -1, + -1, -1, -1, 103, -1, -1, -1, -1, -1, -1, + 110, -1, -1, -1, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, -1, -1, -1, -1, 136, -1, -1, -1, + 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, -1, 159, + 160, 161, -1, 163, -1, -1, -1, 167, 168, -1, + -1, -1, -1, 5, -1, 7, -1, 9, 10, 11, + -1, -1, 14, -1, -1, 17, -1, -1, -1, -1, + -1, -1, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, -1, -1, 38, 39, 40, 41, + -1, -1, -1, 45, 46, -1, -1, 49, -1, -1, + 52, -1, -1, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, -1, -1, -1, 96, -1, -1, -1, 100, 101, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + -1, -1, 134, -1, 136, -1, -1, -1, -1, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + -1, 163, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, -1, 7, -1, 9, 10, 11, -1, -1, 14, -1, -1, 17, -1, -1, -1, -1, -1, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, @@ -1092,23 +1080,40 @@ const short GLSLParserTable::action_check [] = { 134, -1, 136, -1, -1, -1, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, - -1, -1, -1, -1, -1, -1, -1, -1, 5, -1, - 7, -1, 9, 10, 11, -1, -1, 14, -1, -1, - 17, -1, -1, -1, -1, -1, -1, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, - -1, 38, 39, 40, 41, -1, -1, -1, 45, 46, - -1, -1, 49, -1, -1, 52, -1, -1, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, -1, -1, -1, -1, -1, - -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, -1, -1, -1, 96, - -1, -1, -1, 100, 101, -1, -1, -1, -1, -1, - -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, -1, -1, 134, -1, 136, - -1, -1, -1, -1, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, -1, 163, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, + -1, 7, -1, 9, 10, 11, -1, -1, 14, -1, + -1, 17, -1, -1, -1, -1, -1, -1, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + -1, -1, 38, 39, 40, 41, -1, -1, -1, 45, + 46, -1, -1, 49, -1, -1, 52, -1, -1, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, -1, -1, -1, -1, + -1, -1, -1, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, -1, -1, -1, + 96, -1, -1, -1, 100, 101, -1, -1, -1, -1, + -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, -1, -1, 134, -1, + 136, -1, -1, -1, -1, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, -1, 163, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 5, -1, 7, + -1, 9, 10, 11, -1, -1, 14, -1, -1, 17, + -1, -1, -1, -1, -1, -1, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, + 38, 39, 40, 41, -1, -1, -1, 45, 46, -1, + -1, 49, -1, -1, 52, -1, -1, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, -1, -1, -1, -1, -1, -1, + -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, -1, -1, -1, 96, -1, + -1, -1, 100, 101, -1, -1, -1, -1, -1, -1, + -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, -1, -1, 134, -1, 136, -1, + -1, -1, -1, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, -1, 163, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, -1, 7, -1, 9, 10, 11, -1, -1, 14, -1, -1, 17, -1, -1, -1, -1, -1, -1, 24, 25, 26, 27, 28, 29, @@ -1126,56 +1131,90 @@ const short GLSLParserTable::action_check [] = { -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, -1, -1, -1, -1, -1, - -1, -1, 5, 6, 7, -1, 9, 10, 11, -1, - -1, 14, -1, -1, 17, -1, 19, 20, -1, -1, - -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, -1, -1, 38, 39, 40, 41, -1, - -1, -1, 45, 46, -1, -1, 49, 50, -1, 52, - 53, -1, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, -1, - -1, -1, -1, -1, 77, -1, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - -1, -1, -1, 96, 97, -1, -1, 100, 101, -1, - 103, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, - -1, 134, -1, 136, -1, -1, -1, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, - 163, -1, -1, -1, 167, 168, -1, -1, -1, 5, - 6, 7, -1, 9, 10, 11, -1, -1, 14, -1, - -1, 17, -1, 19, 20, -1, -1, -1, 24, 25, + -1, -1, -1, 5, 6, 7, -1, 9, 10, 11, + -1, -1, 14, -1, -1, 17, -1, 19, 20, -1, + -1, -1, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, -1, -1, 38, 39, 40, 41, + -1, -1, -1, 45, 46, -1, -1, 49, 50, -1, + 52, 53, -1, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + -1, -1, -1, -1, -1, 77, -1, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, -1, -1, -1, 96, 97, -1, -1, 100, 101, + -1, 103, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + -1, -1, 134, -1, 136, -1, -1, -1, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + -1, 163, -1, -1, -1, 167, 168, -1, -1, -1, + -1, 5, 6, 7, -1, 9, 10, 11, -1, -1, + 14, -1, -1, 17, -1, 19, 20, -1, -1, -1, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, -1, -1, 38, 39, 40, 41, -1, -1, + -1, 45, 46, -1, -1, 49, 50, -1, 52, 53, + -1, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, -1, -1, + -1, -1, -1, 77, -1, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, -1, + -1, -1, 96, 97, -1, -1, 100, 101, -1, 103, + 104, -1, -1, -1, -1, -1, -1, -1, -1, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, -1, + 134, -1, 136, -1, -1, -1, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, + -1, -1, -1, 167, 168, -1, -1, -1, -1, 5, + 6, 7, 8, 9, 10, 11, -1, 13, 14, -1, + -1, 17, 18, 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - -1, -1, 38, 39, 40, 41, -1, -1, -1, 45, - 46, -1, -1, 49, 50, -1, 52, 53, -1, 55, + 36, -1, 38, 39, 40, 41, -1, -1, -1, 45, + 46, 47, -1, 49, 50, 51, 52, 53, -1, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, -1, -1, -1, -1, + 66, 67, 68, 69, 70, 71, -1, -1, 74, -1, -1, 77, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, -1, -1, -1, 96, 97, -1, -1, 100, 101, -1, 103, 104, -1, - -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, + 106, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, -1, 134, -1, - 136, -1, -1, -1, 140, 141, 142, 143, 144, 145, + 136, -1, -1, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, -1, 163, -1, -1, - -1, 167, 168, -1, -1, -1, 5, 6, 7, 8, - 9, 10, 11, -1, 13, 14, -1, -1, 17, 18, - 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, -1, 38, - 39, 40, 41, -1, -1, -1, 45, 46, 47, -1, - 49, 50, 51, 52, 53, -1, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, -1, -1, 74, -1, -1, 77, -1, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, -1, -1, -1, 96, 97, -1, - -1, 100, 101, -1, 103, 104, -1, 106, -1, -1, - -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, -1, 134, -1, 136, -1, -1, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, -1, 163, 164, -1, -1, 167, 168, + 156, 157, 158, 159, 160, 161, -1, 163, 164, -1, + -1, 167, 168, -1, -1, -1, -1, 5, 6, 7, + 8, 9, 10, 11, -1, 13, 14, -1, -1, 17, + 18, 19, 20, 21, 22, -1, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, -1, + 38, 39, 40, 41, -1, -1, -1, 45, 46, 47, + -1, 49, 50, 51, 52, 53, -1, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, -1, -1, 74, -1, -1, 77, + -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, -1, -1, -1, 96, 97, + -1, -1, 100, 101, -1, 103, 104, -1, 106, -1, + -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, -1, 134, -1, 136, -1, + -1, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, -1, 163, 164, -1, -1, 167, + 168, -1, -1, -1, -1, 5, 6, 7, 8, 9, + 10, 11, -1, 13, 14, -1, -1, 17, 18, 19, + 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, -1, 38, 39, + 40, 41, -1, -1, -1, 45, 46, 47, -1, 49, + 50, 51, 52, 53, -1, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, -1, -1, 74, -1, -1, 77, -1, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, -1, -1, -1, 96, 97, -1, -1, + 100, 101, -1, 103, 104, -1, 106, -1, -1, 109, + -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, -1, 134, -1, 136, -1, -1, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, -1, 163, 164, -1, -1, 167, 168, -1, -1, -1, -1, 5, 6, 7, 8, 9, 10, 11, -1, 13, 14, -1, -1, 17, 18, 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, @@ -1186,63 +1225,13 @@ const short GLSLParserTable::action_check [] = { -1, -1, 74, -1, -1, 77, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, -1, -1, -1, 96, 97, -1, -1, 100, 101, - -1, 103, 104, -1, 106, -1, -1, -1, -1, -1, + -1, 103, 104, -1, 106, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, -1, 134, -1, 136, -1, -1, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, 164, -1, -1, 167, 168, -1, -1, -1, - 5, 6, 7, 8, 9, 10, 11, -1, 13, 14, - -1, -1, 17, 18, 19, 20, 21, 22, -1, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, -1, 38, 39, 40, 41, -1, -1, -1, - 45, 46, 47, -1, 49, 50, 51, 52, 53, -1, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, -1, -1, 74, - -1, -1, 77, -1, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, -1, -1, - -1, 96, 97, -1, -1, 100, 101, -1, 103, 104, - -1, 106, -1, -1, 109, -1, -1, -1, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, -1, 134, - -1, 136, -1, -1, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, -1, 163, 164, - -1, -1, 167, 168, -1, -1, -1, 5, 6, 7, - 8, 9, 10, 11, -1, 13, 14, -1, -1, 17, - 18, 19, 20, 21, 22, -1, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, -1, - 38, 39, 40, 41, -1, -1, -1, 45, 46, 47, - -1, 49, 50, 51, 52, 53, -1, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, -1, -1, 74, -1, -1, 77, - -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, -1, -1, -1, 96, 97, - -1, -1, 100, 101, -1, 103, 104, -1, 106, -1, - -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, -1, 134, -1, 136, -1, - -1, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, -1, 163, 164, -1, -1, 167, - 168, -1, -1, -1, 5, 6, 7, 8, 9, 10, - 11, -1, 13, 14, -1, -1, 17, 18, 19, 20, - 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, -1, 38, 39, 40, - 41, -1, -1, -1, 45, 46, 47, -1, 49, 50, - 51, 52, 53, -1, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, -1, -1, 74, -1, -1, 77, -1, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, -1, -1, -1, 96, 97, -1, -1, 100, - 101, -1, 103, 104, -1, 106, -1, -1, 109, -1, - -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, -1, 134, -1, 136, -1, -1, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, -1, 163, 164, -1, -1, 167, 168, -1, -1, -1, 5, 6, 7, 8, 9, 10, 11, -1, 13, 14, -1, -1, 17, 18, 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, @@ -1259,7 +1248,24 @@ const short GLSLParserTable::action_check [] = { 134, -1, 136, -1, -1, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, - 164, -1, -1, 167, 168, -1, -1, -1, + 164, -1, -1, 167, 168, -1, -1, -1, -1, 5, + 6, 7, 8, 9, 10, 11, -1, 13, 14, -1, + -1, 17, 18, 19, 20, 21, 22, -1, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, -1, 38, 39, 40, 41, -1, -1, -1, 45, + 46, 47, -1, 49, 50, 51, 52, 53, -1, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, -1, -1, 74, -1, + -1, 77, -1, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, -1, -1, -1, + 96, 97, -1, -1, 100, 101, -1, 103, 104, -1, + 106, -1, -1, 109, -1, -1, -1, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, -1, 134, -1, + 136, -1, -1, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, -1, 163, 164, -1, + -1, 167, 168, -1, -1, -1, -1, 3, 55, 3, 14, 12, 15, 8, 55, 3, 14, 35, 15, 12, 12, 12, 55, 12, 54, 15, 3, diff --git a/src/libs/glsl/glslparsertable_p.h b/src/libs/glsl/glslparsertable_p.h index 6cbdf9f1132542e02494c6418eb9bca14567fbe2..4faa7e655d05c08d93cb9d2166befec68c63e4a7 100644 --- a/src/libs/glsl/glslparsertable_p.h +++ b/src/libs/glsl/glslparsertable_p.h @@ -172,6 +172,7 @@ public: T_PRECISION = 104, T_PREPROC = 169, T_QUESTION = 105, + T_RESERVED = 172, T_RETURN = 106, T_RIGHT_ANGLE = 107, T_RIGHT_ASSIGN = 108, @@ -238,12 +239,12 @@ public: ACCEPT_STATE = 440, RULE_COUNT = 314, STATE_COUNT = 459, - TERMINAL_COUNT = 172, + TERMINAL_COUNT = 173, NON_TERMINAL_COUNT = 84, GOTO_INDEX_OFFSET = 459, - GOTO_INFO_OFFSET = 4728, - GOTO_CHECK_OFFSET = 4728 + GOTO_INFO_OFFSET = 4757, + GOTO_CHECK_OFFSET = 4757 }; static const char *const spell []; diff --git a/src/plugins/glsleditor/glsleditor.cpp b/src/plugins/glsleditor/glsleditor.cpp index 586894d99c891aa11ce4228c09cb8b079f7fa4d2..c933ce20fee12b588cb28d7247249a8ee5f2346a 100644 --- a/src/plugins/glsleditor/glsleditor.cpp +++ b/src/plugins/glsleditor/glsleditor.cpp @@ -176,9 +176,14 @@ void GLSLTextEditor::setFontSettings(const TextEditor::FontSettings &fs) << QLatin1String(TextEditor::Constants::C_STRING) << QLatin1String(TextEditor::Constants::C_TYPE) << QLatin1String(TextEditor::Constants::C_KEYWORD) - << QLatin1String(TextEditor::Constants::C_FIELD) + << QLatin1String(TextEditor::Constants::C_OPERATOR) + << QLatin1String(TextEditor::Constants::C_PREPROCESSOR) + << QLatin1String(TextEditor::Constants::C_LABEL) << QLatin1String(TextEditor::Constants::C_COMMENT) - << QLatin1String(TextEditor::Constants::C_VISUAL_WHITESPACE); + << QLatin1String(TextEditor::Constants::C_DOXYGEN_COMMENT) + << QLatin1String(TextEditor::Constants::C_DOXYGEN_TAG) + << QLatin1String(TextEditor::Constants::C_VISUAL_WHITESPACE) + << QLatin1String(TextEditor::Constants::C_REMOVED_LINE); } highlighter->setFormats(fs.toTextCharFormats(categories)); @@ -252,7 +257,6 @@ void GLSLTextEditor::updateDocumentNow() m_updateDocumentTimer->stop(); const int variant = Lexer::Variant_GLSL_Qt | // ### hardcoded - Lexer::Variant_GLSL_ES_100 | Lexer::Variant_VertexShader | Lexer::Variant_FragmentShader; const QString contents = toPlainText(); // get the code from the editor diff --git a/src/plugins/glsleditor/glslhighlighter.cpp b/src/plugins/glsleditor/glslhighlighter.cpp index d8bf89928bb208e0d2f27ec7bad7615f5a6ab86f..72b58460d040290be95897dbaf5cc5b0459fbdd4 100644 --- a/src/plugins/glsleditor/glslhighlighter.cpp +++ b/src/plugins/glsleditor/glslhighlighter.cpp @@ -57,6 +57,10 @@ void Highlighter::highlightBlock(const QString &text) lex.setState(qMax(0, previousBlockState())); lex.setScanKeywords(false); lex.setScanComments(true); + const int variant = GLSL::Lexer::Variant_GLSL_Qt | // ### FIXME: hardcoded + GLSL::Lexer::Variant_VertexShader | + GLSL::Lexer::Variant_FragmentShader; + lex.setVariant(variant); GLSL::Token tk; do { lex.yylex(&tk); @@ -66,7 +70,10 @@ void Highlighter::highlightBlock(const QString &text) else if (tk.is(GLSL::Parser::T_COMMENT)) setFormat(tk.position, tk.length, Qt::darkGreen); // ### FIXME: m_formats[GLSLCommentFormat]); else if (tk.is(GLSL::Parser::T_IDENTIFIER)) { - if (lex.findKeyword(data.constData() + tk.position, tk.length) != GLSL::Parser::T_IDENTIFIER) + int kind = lex.findKeyword(data.constData() + tk.position, tk.length); + if (kind == GLSL::Parser::T_RESERVED) + setFormat(tk.position, tk.length, m_formats[GLSLReservedKeyword]); + else if (kind != GLSL::Parser::T_IDENTIFIER) setFormat(tk.position, tk.length, m_formats[GLSLKeywordFormat]); } } while (tk.isNot(GLSL::Parser::EOF_SYMBOL)); diff --git a/src/plugins/glsleditor/glslhighlighter.h b/src/plugins/glsleditor/glslhighlighter.h index 4971ff5bd1cc51848ad3802d38de3a34e0f282ec..b92763bc6b3006b37f984a6fb9d7225795ea2a99 100644 --- a/src/plugins/glsleditor/glslhighlighter.h +++ b/src/plugins/glsleditor/glslhighlighter.h @@ -51,6 +51,7 @@ public: GLSLDoxygenCommentFormat, GLSLDoxygenTagFormat, GLSLVisualWhitespace, + GLSLReservedKeyword, NumGLSLFormats };