Completing GLES 3.0 language parser Added new matrix and sampler types in glslang parsed files, along with related code and new types in the C++ code. Change-Id: Id70c73fac04d000d508236bc9bf1b39a46beda6f Reviewed-on: https://swiftshader-review.googlesource.com/2826 Tested-by: Alexis Hétu <sugoi@google.com> Reviewed-by: Nicolas Capens <capn@google.com>
diff --git a/src/OpenGL/compiler/Compiler.cpp b/src/OpenGL/compiler/Compiler.cpp index 32e8e69..5bb5865 100644 --- a/src/OpenGL/compiler/Compiler.cpp +++ b/src/OpenGL/compiler/Compiler.cpp
@@ -156,14 +156,14 @@ TPublicType integer; integer.type = EbtInt; - integer.size = 1; - integer.matrix = false; + integer.primarySize = 1; + integer.secondarySize = 1; integer.array = false; TPublicType floatingPoint; floatingPoint.type = EbtFloat; - floatingPoint.size = 1; - floatingPoint.matrix = false; + floatingPoint.primarySize = 1; + floatingPoint.secondarySize = 1; floatingPoint.array = false; switch(shaderType)
diff --git a/src/OpenGL/compiler/Initialize.cpp b/src/OpenGL/compiler/Initialize.cpp index ebc1415..0373f2d 100644 --- a/src/OpenGL/compiler/Initialize.cpp +++ b/src/OpenGL/compiler/Initialize.cpp
@@ -81,9 +81,9 @@ symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpReflect, genType, "reflect", genType, genType); symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpRefract, genType, "refract", genType, genType, float1); - TType *mat2 = new TType(EbtFloat, 2, true); - TType *mat3 = new TType(EbtFloat, 3, true); - TType *mat4 = new TType(EbtFloat, 4, true); + TType *mat2 = new TType(EbtFloat, 2, 2); + TType *mat3 = new TType(EbtFloat, 3, 3); + TType *mat4 = new TType(EbtFloat, 4, 4); // // Matrix Functions. @@ -260,7 +260,7 @@ case GL_FRAGMENT_SHADER: { // Set up gl_FragData. The array size. - TType fragData(EbtFloat, EbpMedium, EvqFragData, 4, false, true); + TType fragData(EbtFloat, EbpMedium, EvqFragData, 4, 1, true); fragData.setArraySize(resources.MaxDrawBuffers); symbolTable.insert(ESSL1_BUILTINS, *new TVariable(NewPoolTString("gl_FragData"), fragData)); }
diff --git a/src/OpenGL/compiler/Intermediate.cpp b/src/OpenGL/compiler/Intermediate.cpp index 73e44ce..37de4ae 100644 --- a/src/OpenGL/compiler/Intermediate.cpp +++ b/src/OpenGL/compiler/Intermediate.cpp
@@ -697,6 +697,7 @@ } int size = std::max(left->getNominalSize(), right->getNominalSize()); + int matrixSize = std::max(left->getSecondarySize(), right->getSecondarySize()); // FIXME: This will have to change for NxM matrices // // All scalars. Code after this test assumes this case is removed! @@ -746,6 +747,12 @@ return false; } + if (left->getSecondarySize() != right->getSecondarySize()) { + // Operator cannot be of type pure assignment. + if (op == EOpAssign || op == EOpInitialize) + return false; + } + // // Can these two operands be combined? // @@ -757,12 +764,12 @@ op = EOpVectorTimesMatrix; else { op = EOpMatrixTimesScalar; - setType(TType(basicType, higherPrecision, EvqTemporary, size, true)); + setType(TType(basicType, higherPrecision, EvqTemporary, size, matrixSize)); } } else if (left->isMatrix() && !right->isMatrix()) { if (right->isVector()) { op = EOpMatrixTimesVector; - setType(TType(basicType, higherPrecision, EvqTemporary, size, false)); + setType(TType(basicType, higherPrecision, EvqTemporary, size, 1)); } else { op = EOpMatrixTimesScalar; } @@ -773,7 +780,7 @@ // leave as component product } else if (left->isVector() || right->isVector()) { op = EOpVectorTimesScalar; - setType(TType(basicType, higherPrecision, EvqTemporary, size, false)); + setType(TType(basicType, higherPrecision, EvqTemporary, size, 1)); } } else { infoSink.info.message(EPrefixInternalError, "Missing elses", getLine()); @@ -802,7 +809,7 @@ if (! left->isVector()) return false; op = EOpVectorTimesScalarAssign; - setType(TType(basicType, higherPrecision, EvqTemporary, size, false)); + setType(TType(basicType, higherPrecision, EvqTemporary, size, 1)); } } else { infoSink.info.message(EPrefixInternalError, "Missing elses", getLine()); @@ -821,7 +828,7 @@ if ((left->isMatrix() && right->isVector()) || (left->isVector() && right->isMatrix())) return false; - setType(TType(basicType, higherPrecision, EvqTemporary, size, left->isMatrix() || right->isMatrix())); + setType(TType(basicType, higherPrecision, EvqTemporary, size, matrixSize)); break; case EOpEqual: @@ -1288,6 +1295,6 @@ const TType& t = node->getType(); - return addConstantUnion(leftUnionArray, TType(promoteTo, t.getPrecision(), t.getQualifier(), t.getNominalSize(), t.isMatrix(), t.isArray()), node->getLine()); + return addConstantUnion(leftUnionArray, TType(promoteTo, t.getPrecision(), t.getQualifier(), t.getNominalSize(), t.getSecondarySize(), t.isArray()), node->getLine()); }
diff --git a/src/OpenGL/compiler/OutputASM.cpp b/src/OpenGL/compiler/OutputASM.cpp index db6ff74..aae86fe 100644 --- a/src/OpenGL/compiler/OutputASM.cpp +++ b/src/OpenGL/compiler/OutputASM.cpp
@@ -19,6 +19,7 @@ #define GL_APICALL #include <GLES2/gl2.h> #include <GLES2/gl2ext.h> +#include <GLES3/gl3.h> namespace glsl { @@ -33,7 +34,7 @@ class Temporary : public TIntermSymbol { public: - Temporary(OutputASM *assembler) : TIntermSymbol(0, "tmp", TType(EbtFloat, EbpHigh, EvqTemporary, 4, false, false)), assembler(assembler) + Temporary(OutputASM *assembler) : TIntermSymbol(0, "tmp", TType(EbtFloat, EbpHigh, EvqTemporary, 4, 1, false)), assembler(assembler) { } @@ -49,7 +50,7 @@ class Constant : public TIntermConstantUnion { public: - Constant(float x, float y, float z, float w) : TIntermConstantUnion(constants, TType(EbtFloat, EbpHigh, EvqConstExpr, 4, false, false)) + Constant(float x, float y, float z, float w) : TIntermConstantUnion(constants, TType(EbtFloat, EbpHigh, EvqConstExpr, 4, 1, false)) { constants[0].setFConst(x); constants[1].setFConst(y); @@ -57,12 +58,12 @@ constants[3].setFConst(w); } - Constant(bool b) : TIntermConstantUnion(constants, TType(EbtBool, EbpHigh, EvqConstExpr, 1, false, false)) + Constant(bool b) : TIntermConstantUnion(constants, TType(EbtBool, EbpHigh, EvqConstExpr, 1, 1, false)) { constants[0].setBConst(b); } - Constant(int i) : TIntermConstantUnion(constants, TType(EbtInt, EbpHigh, EvqConstExpr, 1, false, false)) + Constant(int i) : TIntermConstantUnion(constants, TType(EbtInt, EbpHigh, EvqConstExpr, 1, 1, false)) { constants[0].setIConst(i); } @@ -2357,9 +2358,30 @@ { switch(type.getNominalSize()) { - case 2: return GL_FLOAT_MAT2; - case 3: return GL_FLOAT_MAT3; - case 4: return GL_FLOAT_MAT4; + case 2: + switch(type.getSecondarySize()) + { + case 2: return GL_FLOAT_MAT2; + case 3: return GL_FLOAT_MAT2x3; + case 4: return GL_FLOAT_MAT2x4; + default: UNREACHABLE(); + } + case 3: + switch(type.getSecondarySize()) + { + case 2: return GL_FLOAT_MAT3x2; + case 3: return GL_FLOAT_MAT3; + case 4: return GL_FLOAT_MAT4x2; + default: UNREACHABLE(); + } + case 4: + switch(type.getSecondarySize()) + { + case 2: return GL_FLOAT_MAT4x2; + case 3: return GL_FLOAT_MAT4x3; + case 4: return GL_FLOAT_MAT4; + default: UNREACHABLE(); + } default: UNREACHABLE(); } }
diff --git a/src/OpenGL/compiler/ParseHelper.cpp b/src/OpenGL/compiler/ParseHelper.cpp index 63e5795..b8ca5cc 100644 --- a/src/OpenGL/compiler/ParseHelper.cpp +++ b/src/OpenGL/compiler/ParseHelper.cpp
@@ -580,7 +580,7 @@ // bool TParseContext::boolErrorCheck(int line, const TPublicType& pType) { - if (pType.type != EbtBool || pType.array || pType.matrix || (pType.size > 1)) { + if (pType.type != EbtBool || pType.array || (pType.primarySize > 1) || (pType.secondarySize > 1)) { error(line, "boolean expression expected", ""); return true; }
diff --git a/src/OpenGL/compiler/SymbolTable.cpp b/src/OpenGL/compiler/SymbolTable.cpp index 53a896d..6d7757d 100644 --- a/src/OpenGL/compiler/SymbolTable.cpp +++ b/src/OpenGL/compiler/SymbolTable.cpp
@@ -25,7 +25,7 @@ int TSymbolTableLevel::uniqueId = 0; TType::TType(const TPublicType &p) : - type(p.type), precision(p.precision), qualifier(p.qualifier), size(p.size), matrix(p.matrix), array(p.array), arraySize(p.arraySize), + type(p.type), precision(p.precision), primarySize(p.primarySize), secondarySize(p.secondarySize), qualifier(p.qualifier), array(p.array), arraySize(p.arraySize), maxArraySize(0), arrayInformationType(0), structure(0), structureSize(0), deepestStructNesting(0), fieldName(0), mangled(0), typeName(0) { if (p.userDef)
diff --git a/src/OpenGL/compiler/SymbolTable.h b/src/OpenGL/compiler/SymbolTable.h index 9920686..45dc096 100644 --- a/src/OpenGL/compiler/SymbolTable.h +++ b/src/OpenGL/compiler/SymbolTable.h
@@ -439,7 +439,7 @@ return true; // Skip sampler types for the time being if (type.type != EbtFloat && type.type != EbtInt) return false; // Only set default precision for int/float - if (type.size != 1 || type.matrix || type.array) + if (type.primarySize > 1 || type.secondarySize > 1 || type.array) return false; // Not allowed to set for aggregate types int indexOfLastElement = static_cast<int>(precisionStack.size()) - 1; precisionStack[indexOfLastElement][type.type] = prec; // Uses map operator [], overwrites the current value
diff --git a/src/OpenGL/compiler/Types.h b/src/OpenGL/compiler/Types.h index f8abd65..be5d61f 100644 --- a/src/OpenGL/compiler/Types.h +++ b/src/OpenGL/compiler/Types.h
@@ -39,19 +39,19 @@ public: POOL_ALLOCATOR_NEW_DELETE(); TType() {} - TType(TBasicType t, int s = 1, bool m = false) : - type(t), precision(EbpUndefined), qualifier(EvqGlobal), size(s), matrix(m), array(false), arraySize(0), + TType(TBasicType t, int s0 = 1, int s1 = 1) : + type(t), precision(EbpUndefined), qualifier(EvqGlobal), primarySize(s0), secondarySize(s1), array(false), arraySize(0), maxArraySize(0), arrayInformationType(0), structure(0), structureSize(0), deepestStructNesting(0), fieldName(0), mangled(0), typeName(0) { } - TType(TBasicType t, TPrecision p, TQualifier q = EvqTemporary, int s = 1, bool m = false, bool a = false) : - type(t), precision(p), qualifier(q), size(s), matrix(m), array(a), arraySize(0), + TType(TBasicType t, TPrecision p, TQualifier q = EvqTemporary, int s0 = 1, int s1 = 1, bool a = false) : + type(t), precision(p), qualifier(q), primarySize(s0), secondarySize(s1), array(a), arraySize(0), maxArraySize(0), arrayInformationType(0), structure(0), structureSize(0), deepestStructNesting(0), fieldName(0), mangled(0), typeName(0) { } explicit TType(const TPublicType &p); TType(TTypeList* userDef, const TString& n, TPrecision p = EbpUndefined) : - type(EbtStruct), precision(p), qualifier(EvqTemporary), size(1), matrix(false), array(false), arraySize(0), + type(EbtStruct), precision(p), qualifier(EvqTemporary), primarySize(1), secondarySize(1), array(false), arraySize(0), maxArraySize(0), arrayInformationType(0), structure(userDef), structureSize(0), deepestStructNesting(0), fieldName(0), mangled(0) { typeName = NewPoolTString(n.c_str()); @@ -67,8 +67,8 @@ void setQualifier(TQualifier q) { qualifier = q; } // One-dimensional size of single instance type - int getNominalSize() const { return size; } - void setNominalSize(int s) { size = s; } + int getNominalSize() const { return primarySize; } + void setNominalSize(int s) { primarySize = s; } // Full size of single instance of type int getObjectSize() const { @@ -88,13 +88,13 @@ { return getStructSize(); } - else if(matrix) + else if(isMatrix()) { - return size * size; + return primarySize * secondarySize; } else // Vector or scalar { - return size; + return primarySize; } } @@ -135,8 +135,9 @@ } } - bool isMatrix() const { return matrix ? true : false; } - void setMatrix(bool m) { matrix = m; } + bool isMatrix() const { return secondarySize > 1; } + void setSecondarySize(int s1) { secondarySize = s1; } + int getSecondarySize() const { return secondarySize; } bool isArray() const { return array ? true : false; } int getArraySize() const { return arraySize; } @@ -147,9 +148,9 @@ void setArrayInformationType(TType* t) { arrayInformationType = t; } TType* getArrayInformationType() const { return arrayInformationType; } - bool isVector() const { return size > 1 && !matrix; } - bool isScalar() const { return size == 1 && !matrix && !structure; } - bool isRegister() const { return !matrix && !structure && !array; } // Fits in a 4-element register + bool isVector() const { return primarySize > 1 && !isMatrix(); } + bool isScalar() const { return primarySize == 1 && !isMatrix() && !structure; } + bool isRegister() const { return !isMatrix() && !structure && !array; } // Fits in a 4-element register bool isStruct() const { return structure != 0; } bool isScalarInt() const { return isScalar() && (type == EbtInt || type == EbtUInt); } @@ -189,15 +190,15 @@ bool sameElementType(const TType& right) const { return type == right.type && - size == right.size && - matrix == right.matrix && + primarySize == right.primarySize && + secondarySize == right.secondarySize && structure == right.structure; } bool operator==(const TType& right) const { return type == right.type && - size == right.size && - matrix == right.matrix && - array == right.array && (!array || arraySize == right.arraySize) && + primarySize == right.primarySize && + secondarySize == right.secondarySize && + array == right.array && (!array || arraySize == right.arraySize) && structure == right.structure; // don't check the qualifier, it's not ever what's being sought after } @@ -206,8 +207,8 @@ } bool operator<(const TType& right) const { if (type != right.type) return type < right.type; - if (size != right.size) return size < right.size; - if (matrix != right.matrix) return matrix < right.matrix; + if(primarySize != right.primarySize) return (primarySize * secondarySize) < (right.primarySize * right.secondarySize); + if(secondarySize != right.secondarySize) return secondarySize < right.secondarySize; if (array != right.array) return array < right.array; if (arraySize != right.arraySize) return arraySize < right.arraySize; if (structure != right.structure) return structure < right.structure; @@ -244,8 +245,8 @@ TBasicType type; TPrecision precision; TQualifier qualifier; - unsigned char size; // size of vector or matrix, not size of array - bool matrix; + unsigned char primarySize; // size of vector or matrix, not size of array + unsigned char secondarySize; // secondarySize: 1 for vectors, >1 for matrices bool array; int arraySize; int maxArraySize; @@ -275,8 +276,8 @@ TLayoutQualifier layoutQualifier; TQualifier qualifier; TPrecision precision; - int size; // size of vector or matrix, not size of array - bool matrix; + int primarySize; // size of vector or matrix, not size of array + int secondarySize; // 1 for scalars/vectors, >1 for matrices bool array; int arraySize; TType* userDef; @@ -288,20 +289,26 @@ layoutQualifier = TLayoutQualifier::create(); qualifier = q; precision = EbpUndefined; - size = 1; - matrix = false; + primarySize = 1; + secondarySize = 1; array = false; arraySize = 0; userDef = 0; line = ln; } - void setAggregate(int s, bool m = false) + void setAggregate(int s) { - size = s; - matrix = m; + primarySize = s; + secondarySize = 1; } + void setMatrix(int s0, int s1) + { + primarySize = s0; + secondarySize = s1; + } + void setArray(bool a, int s = 0) { array = a;
diff --git a/src/OpenGL/compiler/glslang.l b/src/OpenGL/compiler/glslang.l index c405ebf..ed086b6 100644 --- a/src/OpenGL/compiler/glslang.l +++ b/src/OpenGL/compiler/glslang.l
@@ -1,6 +1,6 @@ /* // -// Copyright (c) 2002-2012 The ANGLE Project Authors. All rights reserved. +// Copyright (c) 2002-2015 The ANGLE Project Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -133,6 +133,17 @@ "mat3" { context->lexAfterType = true; return(MATRIX3); } "mat4" { context->lexAfterType = true; return(MATRIX4); } +"mat2x2" { return ES2_identifier_ES3_keyword(context, MATRIX2); } +"mat3x3" { return ES2_identifier_ES3_keyword(context, MATRIX3); } +"mat4x4" { return ES2_identifier_ES3_keyword(context, MATRIX4); } + +"mat2x3" { return ES2_identifier_ES3_keyword(context, MATRIX2x3); } +"mat3x2" { return ES2_identifier_ES3_keyword(context, MATRIX3x2); } +"mat2x4" { return ES2_identifier_ES3_keyword(context, MATRIX2x4); } +"mat4x2" { return ES2_identifier_ES3_keyword(context, MATRIX4x2); } +"mat3x4" { return ES2_identifier_ES3_keyword(context, MATRIX3x4); } +"mat4x3" { return ES2_identifier_ES3_keyword(context, MATRIX4x3); } + "vec2" { context->lexAfterType = true; return (VEC2); } "vec3" { context->lexAfterType = true; return (VEC3); } "vec4" { context->lexAfterType = true; return (VEC4); } @@ -151,7 +162,18 @@ "samplerExternalOES" { context->lexAfterType = true; return SAMPLER_EXTERNAL_OES; } "sampler3D" { context->lexAfterType = true; return SAMPLER3D; } "sampler3DRect" { return ES2_reserved_ES3_keyword(context, SAMPLER3DRECT); } +"sampler2DArray" { return ES2_identifier_ES3_keyword(context, SAMPLER2DARRAY); } +"isampler2D" { return ES2_identifier_ES3_keyword(context, ISAMPLER2D); } +"isampler3D" { return ES2_identifier_ES3_keyword(context, ISAMPLER3D); } +"isamplerCube" { return ES2_identifier_ES3_keyword(context, ISAMPLERCUBE); } +"isampler2DArray" { return ES2_identifier_ES3_keyword(context, ISAMPLER2DARRAY); } +"usampler2D" { return ES2_identifier_ES3_keyword(context, USAMPLER2D); } +"usampler3D" { return ES2_identifier_ES3_keyword(context, USAMPLER3D); } +"usamplerCube" { return ES2_identifier_ES3_keyword(context, USAMPLERCUBE); } +"usampler2DArray" { return ES2_identifier_ES3_keyword(context, USAMPLER2DARRAY); } "sampler2DShadow" { return ES2_reserved_ES3_keyword(context, SAMPLER2DSHADOW); } +"samplerCubeShadow" { return ES2_identifier_ES3_keyword(context, SAMPLERCUBESHADOW); } +"sampler2DArrayShadow" { return ES2_identifier_ES3_keyword(context, SAMPLER2DARRAYSHADOW); } "struct" { context->lexAfterType = true; return(STRUCT); }
diff --git a/src/OpenGL/compiler/glslang.y b/src/OpenGL/compiler/glslang.y index e4fe60d..f87072b 100644 --- a/src/OpenGL/compiler/glslang.y +++ b/src/OpenGL/compiler/glslang.y
@@ -1,6 +1,6 @@ /* // -// Copyright (c) 2002-2013 The ANGLE Project Authors. All rights reserved. +// Copyright (c) 2002-2015 The ANGLE Project Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -15,7 +15,7 @@ %{ // -// Copyright (c) 2002-2013 The ANGLE Project Authors. All rights reserved. +// Copyright (c) 2002-2015 The ANGLE Project Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -127,10 +127,13 @@ %token <lex> BREAK CONTINUE DO ELSE FOR IF DISCARD RETURN SWITCH CASE DEFAULT %token <lex> BVEC2 BVEC3 BVEC4 IVEC2 IVEC3 IVEC4 VEC2 VEC3 VEC4 UVEC2 UVEC3 UVEC4 %token <lex> MATRIX2 MATRIX3 MATRIX4 IN_QUAL OUT_QUAL INOUT_QUAL UNIFORM VARYING +%token <lex> MATRIX2x3 MATRIX3x2 MATRIX2x4 MATRIX4x2 MATRIX3x4 MATRIX4x3 %token <lex> CENTROID FLAT SMOOTH %token <lex> STRUCT VOID_TYPE WHILE -%token <lex> SAMPLER2D SAMPLERCUBE SAMPLER_EXTERNAL_OES SAMPLER2DRECT -%token <lex> SAMPLER3D SAMPLER3DRECT SAMPLER2DSHADOW +%token <lex> SAMPLER2D SAMPLERCUBE SAMPLER_EXTERNAL_OES SAMPLER2DRECT SAMPLER2DARRAY +%token <lex> ISAMPLER2D ISAMPLER3D ISAMPLERCUBE ISAMPLER2DARRAY +%token <lex> USAMPLER2D USAMPLER3D USAMPLERCUBE USAMPLER2DARRAY +%token <lex> SAMPLER3D SAMPLER3DRECT SAMPLER2DSHADOW SAMPLERCUBESHADOW SAMPLER2DARRAYSHADOW %token <lex> LAYOUT %token <lex> IDENTIFIER TYPE_NAME FLOATCONSTANT INTCONSTANT UINTCONSTANT BOOLCONSTANT @@ -315,7 +318,7 @@ if ($1->getType().getStruct()) $$->setType(TType($1->getType().getStruct(), $1->getType().getTypeName())); else - $$->setType(TType($1->getBasicType(), $1->getPrecision(), EvqTemporary, $1->getNominalSize(), $1->isMatrix())); + $$->setType(TType($1->getBasicType(), $1->getPrecision(), EvqTemporary, $1->getNominalSize(), $1->getSecondarySize())); if ($1->getType().getQualifier() == EvqConstExpr) $$->getTypePointer()->setQualifier(EvqConstExpr); @@ -631,23 +634,37 @@ } else { switch ($1.type) { case EbtFloat: - if ($1.matrix) { - switch($1.size) { - case 2: op = EOpConstructMat2; break; - case 3: op = EOpConstructMat3; break; - case 4: op = EOpConstructMat4; break; + switch($1.primarySize) { + case 1: + op = EOpConstructFloat; break; + case 2: + switch($1.secondarySize) { + case 1: op = EOpConstructVec2; break; + case 2: op = EOpConstructMat2; break; + case 3: op = EOpConstructMat2x3; break; + case 4: op = EOpConstructMat2x4; break; } - } else { - switch($1.size) { - case 1: op = EOpConstructFloat; break; - case 2: op = EOpConstructVec2; break; - case 3: op = EOpConstructVec3; break; - case 4: op = EOpConstructVec4; break; + break; + case 3: + switch($1.secondarySize) { + case 1: op = EOpConstructVec3; break; + case 2: op = EOpConstructMat3x2; break; + case 3: op = EOpConstructMat3; break; + case 4: op = EOpConstructMat3x4; break; } + break; + case 4: + switch($1.secondarySize) { + case 1: op = EOpConstructVec4; break; + case 2: op = EOpConstructMat4x2; break; + case 3: op = EOpConstructMat4x3; break; + case 4: op = EOpConstructMat4; break; + } + break; } break; case EbtInt: - switch($1.size) { + switch($1.primarySize) { case 1: op = EOpConstructInt; break; case 2: FRAG_VERT_ONLY("ivec2", $1.line); op = EOpConstructIVec2; break; case 3: FRAG_VERT_ONLY("ivec3", $1.line); op = EOpConstructIVec3; break; @@ -655,7 +672,7 @@ } break; case EbtBool: - switch($1.size) { + switch($1.primarySize) { case 1: op = EOpConstructBool; break; case 2: FRAG_VERT_ONLY("bvec2", $1.line); op = EOpConstructBVec2; break; case 3: FRAG_VERT_ONLY("bvec3", $1.line); op = EOpConstructBVec3; break; @@ -1737,19 +1754,55 @@ FRAG_VERT_ONLY("mat2", $1.line); TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; $$.setBasic(EbtFloat, qual, $1.line); - $$.setAggregate(2, true); + $$.setMatrix(2, 2); } | MATRIX3 { FRAG_VERT_ONLY("mat3", $1.line); TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; $$.setBasic(EbtFloat, qual, $1.line); - $$.setAggregate(3, true); + $$.setMatrix(3, 3); } | MATRIX4 { FRAG_VERT_ONLY("mat4", $1.line); TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; $$.setBasic(EbtFloat, qual, $1.line); - $$.setAggregate(4, true); + $$.setMatrix(4, 4); + } + | MATRIX2x3 { + FRAG_VERT_ONLY("mat2x3", $1.line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + $$.setBasic(EbtFloat, qual, $1.line); + $$.setMatrix(2, 3); + } + | MATRIX3x2 { + FRAG_VERT_ONLY("mat3x2", $1.line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + $$.setBasic(EbtFloat, qual, $1.line); + $$.setMatrix(3, 2); + } + | MATRIX2x4 { + FRAG_VERT_ONLY("mat2x4", $1.line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + $$.setBasic(EbtFloat, qual, $1.line); + $$.setMatrix(2, 4); + } + | MATRIX4x2 { + FRAG_VERT_ONLY("mat4x2", $1.line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + $$.setBasic(EbtFloat, qual, $1.line); + $$.setMatrix(4, 2); + } + | MATRIX3x4 { + FRAG_VERT_ONLY("mat3x4", $1.line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + $$.setBasic(EbtFloat, qual, $1.line); + $$.setMatrix(3, 4); + } + | MATRIX4x3 { + FRAG_VERT_ONLY("mat4x3", $1.line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + $$.setBasic(EbtFloat, qual, $1.line); + $$.setMatrix(4, 3); } | SAMPLER2D { FRAG_VERT_ONLY("sampler2D", $1.line); @@ -1775,6 +1828,66 @@ TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; $$.setBasic(EbtSampler3D, qual, $1.line); } + | SAMPLER2DARRAY { + FRAG_VERT_ONLY("sampler2DArray", $1.line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + $$.setBasic(EbtSampler2DArray, qual, $1.line); + } + | ISAMPLER2D { + FRAG_VERT_ONLY("isampler2D", $1.line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + $$.setBasic(EbtISampler2D, qual, $1.line); + } + | ISAMPLER3D { + FRAG_VERT_ONLY("isampler3D", $1.line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + $$.setBasic(EbtISampler3D, qual, $1.line); + } + | ISAMPLERCUBE { + FRAG_VERT_ONLY("isamplerCube", $1.line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + $$.setBasic(EbtISamplerCube, qual, $1.line); + } + | ISAMPLER2DARRAY { + FRAG_VERT_ONLY("isampler2DArray", $1.line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + $$.setBasic(EbtISampler2DArray, qual, $1.line); + } + | USAMPLER2D { + FRAG_VERT_ONLY("usampler2D", $1.line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + $$.setBasic(EbtUSampler2D, qual, $1.line); + } + | USAMPLER3D { + FRAG_VERT_ONLY("usampler3D", $1.line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + $$.setBasic(EbtUSampler3D, qual, $1.line); + } + | USAMPLERCUBE { + FRAG_VERT_ONLY("usamplerCube", $1.line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + $$.setBasic(EbtUSamplerCube, qual, $1.line); + } + | USAMPLER2DARRAY { + FRAG_VERT_ONLY("usampler2DArray", $1.line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + $$.setBasic(EbtUSampler2DArray, qual, $1.line); + } + | SAMPLER2DSHADOW { + FRAG_VERT_ONLY("sampler2DShadow", $1.line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + $$.setBasic(EbtSampler2DShadow, qual, $1.line); + } + | SAMPLERCUBESHADOW { + FRAG_VERT_ONLY("samplerCubeShadow", $1.line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + $$.setBasic(EbtSamplerCubeShadow, qual, $1.line); + } + | SAMPLER2DARRAYSHADOW { + FRAG_VERT_ONLY("sampler2DArrayShadow", $1.line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + $$.setBasic(EbtSampler2DArrayShadow, qual, $1.line); + } | struct_specifier { FRAG_VERT_ONLY("struct", $1.line); $$ = $1; @@ -1846,8 +1959,8 @@ // TType* type = (*$$)[i].type; type->setBasicType($1.type); - type->setNominalSize($1.size); - type->setMatrix($1.matrix); + type->setNominalSize($1.primarySize); + type->setSecondarySize($1.secondarySize); type->setPrecision($1.precision); // don't allow arrays of arrays
diff --git a/src/OpenGL/compiler/glslang_lex.cpp b/src/OpenGL/compiler/glslang_lex.cpp index 86b1b34..340b9d1 100644 --- a/src/OpenGL/compiler/glslang_lex.cpp +++ b/src/OpenGL/compiler/glslang_lex.cpp
@@ -392,8 +392,8 @@ *yy_cp = '\0'; \ yyg->yy_c_buf_p = yy_cp; -#define YY_NUM_RULES 222 -#define YY_END_OF_BUFFER 223 +#define YY_NUM_RULES 242 +#define YY_END_OF_BUFFER 243 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -401,93 +401,99 @@ flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[775] = +static yyconst flex_int16_t yy_accept[826] = { 0, - 0, 0, 0, 0, 0, 0, 223, 221, 220, 220, - 205, 211, 216, 200, 201, 209, 208, 197, 206, 204, - 210, 166, 166, 198, 194, 212, 199, 213, 217, 162, - 202, 203, 215, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 195, 214, 196, 207, 3, 4, 3, - 219, 222, 218, 191, 177, 196, 185, 180, 175, 183, - 173, 184, 174, 172, 2, 1, 176, 171, 164, 165, - 0, 169, 0, 166, 203, 195, 202, 192, 188, 190, - 189, 193, 162, 181, 187, 162, 162, 162, 162, 162, + 0, 0, 0, 0, 0, 0, 243, 241, 240, 240, + 225, 231, 236, 220, 221, 229, 228, 217, 226, 224, + 230, 186, 186, 218, 214, 232, 219, 233, 237, 182, + 222, 223, 235, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 182, 215, 234, 216, 227, 3, 4, 3, + 239, 242, 238, 211, 197, 216, 205, 200, 195, 203, + 193, 204, 194, 192, 2, 1, 196, 191, 184, 185, + 0, 189, 0, 186, 223, 215, 222, 212, 208, 210, + 209, 213, 182, 201, 207, 182, 182, 182, 182, 182, - 162, 162, 162, 162, 162, 162, 162, 17, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 20, 162, 162, 28, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 182, 186, - 5, 218, 0, 1, 171, 0, 168, 0, 170, 163, - 178, 179, 162, 120, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 18, 162, 162, + 182, 182, 182, 182, 182, 182, 182, 17, 182, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 20, 182, 182, 28, 182, 182, 182, 182, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 202, 206, + 5, 238, 0, 1, 191, 0, 188, 0, 190, 183, + 198, 199, 182, 140, 182, 182, 182, 182, 182, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 182, 182, 182, 182, 182, 18, 182, 182, - 162, 162, 162, 162, 162, 162, 162, 162, 32, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 29, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 0, 172, 0, 171, 167, - 162, 162, 162, 35, 162, 162, 23, 159, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 21, 123, - 162, 162, 162, 162, 26, 162, 162, 127, 139, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 182, 182, 182, 182, 182, 182, 182, 182, 32, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 29, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 182, 182, 182, 0, 192, 0, 191, 187, + 182, 182, 182, 35, 182, 182, 23, 179, 182, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 21, 143, + 182, 182, 182, 182, 26, 182, 182, 147, 159, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 162, 136, 9, 40, 41, 42, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 126, 36, 162, 162, 33, 162, 162, 162, 162, 162, - 162, 162, 43, 44, 45, 34, 162, 162, 162, 162, - 162, 162, 15, 52, 53, 54, 162, 121, 162, 162, - 12, 162, 162, 162, 162, 148, 149, 150, 162, 37, - 162, 140, 31, 151, 152, 153, 7, 145, 146, 147, - 162, 162, 162, 30, 143, 162, 162, 162, 46, 47, - 48, 162, 162, 162, 162, 162, 162, 162, 162, 70, + 182, 156, 9, 40, 41, 42, 182, 182, 182, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 146, 36, 182, 182, 33, 182, 182, 182, 182, 182, + 182, 182, 52, 53, 54, 34, 182, 182, 182, 182, + 182, 182, 15, 61, 62, 63, 182, 141, 182, 182, + 12, 182, 182, 182, 182, 168, 169, 170, 182, 37, + 182, 160, 31, 171, 172, 173, 7, 165, 166, 167, + 182, 182, 182, 30, 163, 182, 182, 182, 55, 56, + 57, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 162, 162, 162, 162, 162, 162, 162, 137, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 122, - 162, 162, 161, 49, 50, 51, 162, 162, 19, 162, - 75, 162, 162, 162, 162, 73, 162, 162, 162, 138, - 133, 76, 162, 162, 162, 162, 162, 162, 128, 162, - 162, 162, 62, 162, 162, 162, 162, 144, 119, 162, - 162, 131, 162, 162, 162, 39, 71, 158, 27, 132, - 61, 162, 142, 22, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 24, 38, - 162, 162, 162, 162, 162, 162, 77, 78, 79, 162, + 182, 182, 90, 182, 182, 182, 182, 182, 182, 182, + 157, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 142, 182, 182, 181, 58, 59, 60, 182, + 182, 19, 182, 95, 182, 182, 182, 182, 93, 182, + 182, 182, 158, 153, 96, 182, 182, 182, 182, 182, + 182, 148, 182, 182, 182, 82, 43, 46, 48, 47, + 44, 50, 49, 51, 45, 182, 182, 182, 182, 164, + 139, 182, 182, 151, 182, 182, 182, 39, 91, 178, + 27, 152, 81, 182, 162, 22, 182, 182, 182, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 162, 162, 162, 162, 8, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 124, 162, 162, 162, - 162, 162, 13, 162, 162, 14, 162, 162, 162, 162, - 25, 63, 16, 134, 81, 82, 83, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 129, - 162, 162, 162, 65, 67, 64, 162, 162, 162, 162, - 162, 162, 162, 125, 85, 86, 87, 162, 162, 141, - 162, 130, 162, 162, 11, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 80, 135, 6, 162, 162, 162, - 160, 162, 74, 10, 154, 55, 58, 162, 162, 162, + 24, 38, 182, 182, 182, 182, 182, 182, 97, 98, + 99, 182, 182, 182, 182, 182, 8, 182, 182, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 144, 182, + 182, 182, 182, 182, 13, 182, 182, 14, 182, 182, + 182, 182, 25, 83, 16, 154, 101, 102, 103, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 149, 182, 182, 182, 85, 87, 84, 182, 182, + 182, 182, 182, 182, 182, 145, 105, 106, 107, 182, + 182, 161, 182, 150, 182, 182, 11, 182, 182, 182, + 182, 182, 182, 182, 182, 182, 100, 155, 6, 182, - 162, 162, 162, 162, 162, 162, 162, 162, 66, 162, - 162, 162, 162, 84, 162, 162, 162, 162, 162, 104, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 72, 162, 162, 162, 88, 106, 162, 162, - 68, 162, 162, 162, 162, 162, 162, 162, 99, 162, - 162, 162, 162, 162, 162, 162, 113, 162, 162, 162, - 162, 56, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 100, 89, 162, 90, 162, 162, 114, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 101, 162, 115, 162, 162, 91, 92, 162, + 182, 182, 182, 182, 180, 182, 94, 10, 174, 64, + 67, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 182, 182, 86, 182, 182, 182, 182, 104, + 182, 182, 182, 182, 182, 124, 70, 71, 182, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 92, 182, 182, 182, 108, 126, 74, 75, 182, + 182, 88, 182, 182, 182, 182, 182, 182, 182, 119, + 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 133, 182, 182, 182, 182, 65, 182, 182, 182, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 120, 109, - 95, 162, 96, 162, 162, 162, 162, 69, 162, 162, - 162, 156, 162, 59, 110, 162, 93, 94, 162, 162, - 162, 162, 162, 162, 162, 162, 108, 111, 102, 162, - 162, 162, 162, 162, 162, 162, 109, 112, 162, 162, - 105, 162, 162, 155, 162, 162, 60, 162, 107, 162, - 162, 162, 162, 162, 116, 162, 162, 162, 162, 162, - 117, 162, 162, 162, 118, 97, 98, 162, 162, 57, - 162, 157, 103, 0 + 182, 110, 182, 182, 182, 134, 182, 182, 72, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 121, 182, 182, 135, 182, 182, 76, 111, + 112, 182, 115, 182, 116, 182, 182, 182, 182, 182, + 89, 182, 182, 182, 182, 176, 182, 68, 130, 182, + 182, 113, 114, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 182, 128, 131, 122, 182, 69, 182, 182, + 182, 182, 182, 182, 182, 182, 129, 132, 182, 182, + 125, 73, 182, 182, 175, 182, 182, 182, 78, 182, + 182, 127, 77, 182, 182, 182, 182, 182, 182, 136, + + 182, 182, 182, 182, 182, 182, 137, 182, 182, 182, + 79, 182, 138, 117, 118, 182, 182, 182, 66, 182, + 182, 177, 123, 80, 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -534,185 +540,197 @@ 1, 1 } ; -static yyconst flex_int16_t yy_base[780] = +static yyconst flex_int16_t yy_base[831] = { 0, - 0, 0, 70, 71, 80, 0, 995, 996, 996, 996, - 969, 50, 147, 996, 996, 968, 144, 996, 143, 141, - 156, 169, 223, 966, 996, 169, 966, 52, 996, 0, - 996, 996, 152, 117, 138, 118, 157, 148, 167, 932, - 147, 173, 159, 126, 188, 926, 200, 939, 205, 199, - 212, 226, 147, 996, 158, 996, 996, 996, 996, 973, - 996, 996, 0, 996, 996, 996, 996, 996, 996, 996, - 996, 996, 996, 262, 996, 0, 996, 272, 256, 310, - 297, 996, 0, 0, 996, 996, 996, 961, 996, 996, - 996, 960, 0, 996, 996, 922, 927, 191, 924, 932, + 0, 0, 70, 71, 80, 0, 1046, 1047, 1047, 1047, + 1020, 50, 147, 1047, 1047, 1019, 144, 1047, 143, 141, + 156, 169, 223, 1017, 1047, 169, 1017, 52, 1047, 0, + 1047, 1047, 152, 117, 138, 118, 157, 148, 167, 983, + 147, 173, 159, 126, 188, 977, 200, 990, 205, 199, + 212, 226, 147, 1047, 158, 1047, 1047, 1047, 1047, 1024, + 1047, 1047, 0, 1047, 1047, 1047, 1047, 1047, 1047, 1047, + 1047, 1047, 1047, 262, 1047, 0, 1047, 272, 256, 310, + 297, 1047, 0, 0, 1047, 1047, 1047, 1012, 1047, 1047, + 1047, 1011, 0, 1047, 1047, 973, 978, 191, 975, 983, - 931, 918, 921, 932, 245, 926, 914, 911, 924, 911, - 908, 908, 914, 158, 240, 908, 918, 904, 910, 913, - 914, 0, 906, 916, 277, 915, 910, 891, 162, 895, - 908, 899, 246, 892, 286, 904, 906, 289, 895, 892, - 881, 890, 292, 294, 894, 890, 892, 881, 884, 287, - 203, 255, 893, 881, 893, 199, 886, 885, 996, 996, - 996, 0, 345, 0, 359, 377, 996, 384, 394, 306, - 996, 996, 884, 0, 880, 875, 879, 888, 885, 305, - 869, 869, 880, 872, 309, 882, 879, 879, 877, 874, - 866, 872, 859, 857, 869, 855, 871, 0, 868, 856, + 982, 969, 972, 983, 245, 977, 965, 962, 975, 962, + 959, 959, 965, 158, 240, 959, 969, 955, 961, 964, + 965, 0, 957, 967, 277, 966, 961, 942, 162, 946, + 959, 950, 246, 943, 286, 955, 957, 289, 946, 943, + 932, 941, 292, 294, 945, 941, 943, 932, 935, 287, + 203, 255, 944, 932, 944, 199, 937, 936, 1047, 1047, + 1047, 0, 345, 0, 359, 377, 1047, 384, 394, 306, + 1047, 1047, 935, 0, 931, 926, 930, 939, 936, 305, + 920, 920, 931, 923, 309, 933, 930, 930, 928, 925, + 917, 923, 910, 908, 920, 906, 922, 0, 919, 907, - 863, 860, 864, 865, 858, 855, 844, 843, 856, 859, - 847, 855, 843, 849, 840, 364, 845, 848, 839, 846, - 835, 839, 830, 844, 843, 834, 840, 248, 824, 827, - 825, 835, 825, 820, 818, 820, 830, 816, 818, 815, - 826, 825, 828, 810, 366, 818, 814, 812, 821, 800, - 367, 818, 820, 809, 801, 402, 410, 417, 424, 996, - 798, 808, 807, 0, 805, 429, 0, 0, 798, 796, - 796, 797, 792, 800, 789, 806, 795, 432, 0, 0, - 789, 799, 798, 798, 0, 783, 435, 0, 0, 785, - 438, 792, 793, 784, 778, 777, 778, 777, 777, 441, + 914, 911, 915, 916, 909, 906, 895, 894, 907, 910, + 898, 906, 894, 900, 891, 364, 896, 899, 890, 897, + 886, 890, 881, 895, 894, 885, 891, 248, 875, 878, + 876, 886, 876, 871, 869, 871, 881, 867, 869, 866, + 877, 876, 879, 861, 366, 869, 865, 863, 872, 851, + 367, 869, 871, 860, 852, 402, 410, 417, 424, 1047, + 849, 859, 858, 0, 856, 429, 0, 0, 849, 847, + 847, 848, 843, 851, 840, 857, 846, 432, 0, 0, + 840, 850, 849, 849, 0, 834, 435, 0, 0, 836, + 438, 843, 844, 835, 829, 828, 829, 828, 828, 441, - 772, 0, 0, 0, 0, 0, 771, 772, 777, 771, - 767, 780, 775, 775, 773, 772, 766, 760, 762, 761, - 765, 757, 760, 755, 763, 768, 756, 753, 765, 756, - 0, 0, 762, 758, 0, 750, 750, 755, 746, 753, - 444, 750, 0, 0, 0, 0, 740, 752, 751, 750, - 751, 751, 0, 0, 0, 0, 738, 0, 746, 737, - 0, 736, 737, 731, 741, 0, 0, 0, 732, 0, - 728, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 738, 448, 737, 0, 0, 735, 731, 728, 0, 0, - 0, 720, 725, 721, 726, 717, 715, 728, 713, 0, + 823, 0, 0, 819, 818, 817, 819, 820, 825, 819, + 815, 828, 823, 823, 821, 820, 814, 808, 810, 809, + 813, 805, 808, 803, 811, 816, 804, 801, 813, 804, + 0, 0, 810, 806, 0, 798, 798, 803, 794, 801, + 444, 798, 0, 0, 0, 0, 788, 800, 799, 798, + 799, 799, 0, 0, 0, 0, 786, 0, 794, 785, + 0, 784, 785, 779, 789, 0, 0, 0, 780, 0, + 776, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 786, 448, 785, 0, 0, 783, 779, 776, 0, 0, + 0, 768, 450, 453, 456, 773, 769, 774, 765, 763, - 713, 726, 715, 711, 717, 712, 719, 0, 717, 714, - 718, 702, 700, 703, 709, 715, 710, 709, 697, 0, - 699, 700, 0, 0, 0, 0, 697, 700, 0, 694, - 0, 707, 687, 696, 691, 0, 684, 684, 697, 0, - 699, 0, 451, 712, 711, 710, 677, 676, 0, 693, - 692, 687, 0, 676, 689, 676, 673, 0, 0, 678, - 677, 0, 674, 681, 680, 0, 666, 0, 0, 0, - 0, 663, 0, 0, 662, 673, 454, 666, 672, 671, - 668, 663, 660, 653, 653, 666, 651, 663, 0, 0, - 656, 679, 678, 677, 644, 643, 330, 447, 0, 655, + 776, 761, 0, 761, 774, 763, 759, 765, 760, 767, + 0, 765, 762, 766, 750, 748, 751, 757, 763, 758, + 757, 745, 0, 747, 748, 0, 0, 0, 0, 745, + 748, 0, 742, 0, 755, 735, 744, 739, 0, 732, + 732, 745, 0, 747, 0, 463, 760, 759, 758, 725, + 724, 0, 741, 740, 735, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 724, 737, 724, 721, 0, + 0, 726, 725, 0, 722, 729, 728, 0, 714, 0, + 0, 0, 0, 711, 0, 0, 710, 721, 466, 714, + 720, 719, 716, 711, 708, 701, 701, 714, 699, 711, - 658, 656, 645, 641, 0, 653, 650, 649, 639, 638, - 628, 645, 631, 470, 639, 642, 0, 659, 658, 657, - 624, 623, 0, 637, 624, 0, 634, 627, 628, 631, - 0, 0, 0, 0, 651, 650, 0, 627, 630, 615, - 622, 613, 620, 621, 621, 620, 606, 474, 618, 0, - 619, 608, 607, 0, 0, 0, 632, 631, 630, 597, - 596, 592, 600, 0, 628, 627, 0, 604, 607, 0, - 476, 0, 585, 594, 0, 590, 589, 598, 598, 586, - 600, 584, 598, 593, 0, 0, 0, 610, 609, 576, - 0, 576, 0, 0, 451, 459, 600, 586, 589, 572, + 0, 0, 704, 727, 726, 725, 692, 691, 330, 448, + 0, 703, 706, 704, 693, 689, 0, 701, 698, 697, + 687, 686, 676, 693, 679, 471, 687, 690, 0, 707, + 706, 705, 672, 671, 0, 685, 672, 0, 682, 675, + 676, 679, 0, 0, 0, 0, 699, 698, 0, 675, + 678, 663, 670, 661, 668, 669, 669, 668, 654, 481, + 666, 0, 667, 656, 655, 0, 0, 0, 680, 679, + 678, 645, 644, 640, 648, 0, 676, 675, 0, 652, + 655, 0, 488, 0, 633, 642, 0, 638, 637, 646, + 646, 634, 648, 632, 646, 641, 0, 0, 0, 658, - 584, 572, 571, 580, 580, 597, 596, 563, 0, 563, - 564, 563, 573, 0, 576, 572, 574, 570, 557, 588, - 353, 565, 561, 553, 560, 573, 561, 557, 559, 557, - 557, 556, 0, 544, 543, 553, 0, 573, 439, 550, - 0, 554, 553, 537, 529, 537, 527, 535, 0, 532, - 553, 541, 539, 524, 527, 541, 557, 537, 538, 535, - 532, 0, 520, 534, 533, 517, 516, 537, 525, 523, - 505, 504, 0, 532, 504, 530, 502, 506, 537, 517, - 514, 513, 516, 512, 499, 496, 509, 494, 495, 497, - 486, 485, 0, 491, 522, 502, 499, 0, 0, 495, + 657, 656, 623, 622, 0, 622, 0, 0, 474, 485, + 646, 632, 635, 618, 630, 618, 617, 626, 626, 643, + 642, 641, 608, 607, 0, 607, 608, 607, 617, 0, + 620, 616, 618, 614, 601, 632, 479, 0, 609, 612, + 604, 596, 603, 594, 615, 603, 599, 601, 599, 599, + 598, 0, 586, 585, 595, 0, 615, 491, 0, 592, + 595, 0, 595, 594, 578, 570, 578, 568, 576, 0, + 573, 572, 593, 581, 579, 579, 563, 566, 580, 564, + 595, 575, 576, 573, 570, 580, 557, 571, 570, 554, + 553, 552, 573, 561, 559, 559, 540, 539, 0, 567, - 0, 494, 0, 500, 484, 481, 482, 0, 474, 482, - 479, 500, 479, 0, 0, 491, 0, 0, 490, 474, - 471, 472, 486, 485, 462, 468, 0, 0, 489, 461, - 480, 472, 458, 467, 454, 460, 0, 0, 471, 470, - 0, 470, 452, 0, 434, 453, 0, 459, 0, 437, - 415, 349, 339, 327, 0, 308, 315, 271, 259, 255, - 0, 255, 216, 209, 0, 0, 0, 158, 132, 0, - 115, 0, 0, 996, 505, 507, 509, 513, 163 + 539, 565, 537, 541, 540, 571, 551, 548, 0, 547, + 550, 546, 548, 532, 529, 542, 527, 528, 535, 529, + 518, 517, 0, 523, 522, 553, 533, 530, 0, 0, + 0, 526, 0, 525, 0, 531, 530, 514, 511, 512, + 0, 504, 512, 502, 508, 529, 508, 0, 0, 520, + 519, 0, 0, 518, 517, 501, 498, 499, 513, 512, + 489, 488, 494, 0, 0, 515, 487, 513, 505, 497, + 483, 118, 125, 130, 149, 187, 0, 0, 226, 255, + 0, 0, 275, 272, 0, 286, 280, 311, 0, 314, + 352, 0, 0, 345, 348, 349, 418, 445, 446, 0, + + 446, 443, 477, 448, 456, 459, 0, 477, 479, 471, + 0, 492, 0, 0, 0, 473, 474, 468, 0, 469, + 470, 0, 0, 0, 1047, 535, 537, 539, 543, 542 } ; -static yyconst flex_int16_t yy_def[780] = +static yyconst flex_int16_t yy_def[831] = { 0, - 774, 1, 775, 775, 774, 5, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 776, - 774, 774, 774, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 777, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 778, 774, 774, 22, 774, - 774, 774, 779, 23, 774, 774, 774, 774, 774, 774, - 774, 774, 776, 774, 774, 776, 776, 776, 776, 776, + 825, 1, 826, 826, 825, 5, 825, 825, 825, 825, + 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, + 825, 825, 825, 825, 825, 825, 825, 825, 825, 827, + 825, 825, 825, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 825, 825, 825, 825, 825, 825, 825, + 825, 825, 828, 825, 825, 825, 825, 825, 825, 825, + 825, 825, 825, 825, 825, 829, 825, 825, 22, 825, + 825, 825, 830, 23, 825, 825, 825, 825, 825, 825, + 825, 825, 827, 825, 825, 827, 827, 827, 827, 827, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 774, 774, - 774, 777, 774, 778, 774, 774, 774, 774, 774, 779, - 774, 774, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 825, 825, + 825, 828, 825, 829, 825, 825, 825, 825, 825, 830, + 825, 825, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 774, 774, 774, 774, 774, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 825, 825, 825, 825, 825, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 0, 774, 774, 774, 774, 774 + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 0, 825, 825, 825, 825, 825 } ; -static yyconst flex_int16_t yy_nxt[1069] = +static yyconst flex_int16_t yy_nxt[1120] = { 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 23, 23, 23, 23, @@ -731,109 +749,115 @@ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 8, 8, 8, 8, 67, 70, 72, 74, 74, 74, 74, 74, - 74, 74, 102, 96, 75, 170, 103, 73, 71, 76, - 130, 68, 104, 86, 131, 105, 94, 97, 98, 773, + 74, 74, 102, 96, 75, 790, 103, 73, 71, 76, + 130, 68, 104, 86, 131, 105, 94, 97, 98, 791, 77, 78, 159, 79, 79, 79, 79, 79, 79, 80, - 87, 119, 88, 89, 95, 99, 772, 100, 157, 120, + 87, 119, 88, 89, 95, 99, 792, 100, 157, 120, 81, 101, 110, 128, 111, 106, 158, 82, 83, 107, - 121, 113, 194, 112, 108, 771, 129, 81, 214, 114, + 121, 113, 194, 112, 108, 793, 129, 81, 214, 114, 109, 115, 122, 195, 116, 123, 215, 160, 124, 125, 117, 82, 132, 126, 83, 78, 127, 84, 84, 84, - 84, 84, 84, 84, 135, 133, 770, 146, 175, 139, + 84, 84, 84, 84, 135, 133, 794, 146, 175, 139, 147, 252, 176, 253, 81, 245, 140, 141, 148, 136, 142, 82, 137, 246, 150, 149, 143, 144, 151, 145, - 154, 81, 152, 769, 155, 153, 74, 74, 74, 74, + 154, 81, 152, 795, 155, 153, 74, 74, 74, 74, 74, 74, 74, 156, 196, 82, 165, 165, 165, 165, - 165, 165, 165, 163, 167, 774, 183, 197, 219, 247, + 165, 165, 165, 163, 167, 825, 183, 197, 219, 247, - 184, 185, 768, 166, 220, 318, 168, 248, 168, 319, - 163, 169, 169, 169, 169, 169, 169, 169, 167, 767, - 166, 774, 78, 766, 80, 80, 80, 80, 80, 80, - 80, 206, 222, 227, 207, 208, 234, 765, 209, 236, - 210, 81, 243, 244, 260, 223, 764, 224, 82, 228, - 229, 235, 237, 267, 256, 763, 256, 540, 81, 257, - 257, 257, 257, 257, 257, 257, 268, 541, 260, 273, - 274, 762, 82, 165, 165, 165, 165, 165, 165, 165, - 304, 305, 306, 343, 344, 345, 258, 651, 258, 652, + 184, 185, 796, 166, 220, 318, 168, 248, 168, 319, + 163, 169, 169, 169, 169, 169, 169, 169, 167, 797, + 166, 825, 78, 798, 80, 80, 80, 80, 80, 80, + 80, 206, 222, 227, 207, 208, 234, 799, 209, 236, + 210, 81, 243, 244, 260, 223, 800, 224, 82, 228, + 229, 235, 237, 267, 256, 801, 256, 552, 81, 257, + 257, 257, 257, 257, 257, 257, 268, 553, 260, 273, + 274, 802, 82, 165, 165, 165, 165, 165, 165, 165, + 304, 305, 306, 343, 344, 345, 258, 803, 258, 804, 166, 259, 259, 259, 259, 259, 259, 259, 169, 169, - 169, 169, 169, 169, 169, 761, 760, 166, 169, 169, + 169, 169, 169, 169, 169, 805, 806, 166, 169, 169, 169, 169, 169, 169, 169, 336, 257, 257, 257, 257, 257, 257, 257, 337, 257, 257, 257, 257, 257, 257, 257, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 354, 355, 356, 366, 367, 368, 374, 375, 376, 378, 379, 380, 389, 390, 391, - 424, 425, 426, 444, 445, 446, 492, 493, 494, 518, - 519, 520, 759, 668, 542, 669, 447, 448, 624, 495, - 496, 758, 521, 522, 543, 557, 558, 559, 625, 588, - 589, 606, 607, 626, 757, 627, 628, 756, 560, 561, + 427, 428, 429, 447, 448, 449, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 554, 450, 451, 504, 505, + 506, 530, 531, 532, 807, 555, 569, 570, 571, 808, + 809, 507, 508, 810, 533, 534, 600, 601, 602, 572, - 755, 562, 590, 754, 608, 58, 58, 58, 58, 93, - 93, 162, 162, 164, 753, 164, 164, 752, 751, 750, - 749, 748, 747, 746, 745, 744, 743, 742, 741, 740, - 739, 738, 737, 736, 735, 734, 733, 732, 731, 730, - 729, 728, 727, 726, 725, 724, 723, 722, 721, 720, - 719, 718, 717, 716, 715, 714, 713, 712, 711, 710, - 709, 708, 707, 706, 705, 704, 703, 702, 701, 700, - 699, 698, 697, 696, 695, 694, 693, 692, 691, 690, - 689, 688, 687, 686, 685, 684, 683, 682, 681, 680, - 679, 678, 677, 676, 675, 674, 673, 672, 671, 670, + 573, 642, 574, 620, 621, 622, 672, 811, 812, 603, + 604, 643, 644, 673, 813, 674, 623, 624, 692, 645, + 814, 646, 647, 815, 816, 693, 817, 694, 818, 819, + 820, 821, 822, 823, 824, 58, 58, 58, 58, 93, + 93, 162, 162, 164, 170, 164, 164, 789, 788, 787, + 786, 785, 784, 783, 782, 781, 780, 779, 778, 777, + 776, 775, 774, 773, 772, 771, 770, 769, 768, 767, + 766, 765, 764, 763, 762, 761, 760, 759, 758, 757, + 756, 755, 754, 753, 752, 751, 750, 749, 748, 747, + 746, 745, 744, 743, 742, 741, 740, 739, 738, 737, - 667, 666, 665, 664, 663, 662, 661, 660, 659, 658, - 657, 656, 655, 654, 653, 650, 649, 648, 647, 646, - 645, 644, 643, 642, 641, 640, 639, 638, 637, 636, - 635, 634, 633, 632, 631, 630, 629, 623, 622, 621, - 620, 619, 618, 617, 616, 615, 614, 613, 612, 611, - 610, 609, 605, 604, 603, 602, 601, 600, 599, 598, - 597, 596, 595, 594, 593, 592, 591, 587, 586, 585, + 736, 735, 734, 733, 732, 731, 730, 729, 728, 727, + 726, 725, 724, 723, 722, 721, 720, 719, 718, 717, + 716, 715, 714, 713, 712, 711, 710, 709, 708, 707, + 706, 705, 704, 703, 702, 701, 700, 699, 698, 697, + 696, 695, 691, 690, 689, 688, 687, 686, 685, 684, + 683, 682, 681, 680, 679, 678, 677, 676, 675, 671, + 670, 669, 668, 667, 666, 665, 664, 663, 662, 661, + 660, 659, 658, 657, 656, 655, 654, 653, 652, 651, + 650, 649, 648, 641, 640, 639, 638, 637, 636, 635, + 634, 633, 632, 631, 630, 629, 628, 627, 626, 625, + + 619, 618, 617, 616, 615, 614, 613, 612, 611, 610, + 609, 608, 607, 606, 605, 599, 598, 597, 596, 595, + 594, 593, 592, 591, 590, 589, 588, 587, 586, 585, 584, 583, 582, 581, 580, 579, 578, 577, 576, 575, - 574, 573, 572, 571, 570, 569, 568, 567, 566, 565, - 564, 563, 556, 555, 554, 553, 552, 551, 550, 549, + 568, 567, 566, 565, 564, 563, 562, 561, 560, 559, + 558, 557, 556, 551, 550, 549, 548, 547, 546, 545, + 544, 543, 542, 541, 540, 539, 538, 537, 536, 535, + 529, 528, 527, 526, 525, 524, 523, 522, 521, 520, + 519, 518, 517, 516, 515, 514, 513, 512, 511, 510, + 509, 503, 502, 501, 500, 499, 498, 497, 496, 495, - 548, 547, 546, 545, 544, 539, 538, 537, 536, 535, - 534, 533, 532, 531, 530, 529, 528, 527, 526, 525, - 524, 523, 517, 516, 515, 514, 513, 512, 511, 510, - 509, 508, 507, 506, 505, 504, 503, 502, 501, 500, - 499, 498, 497, 491, 490, 489, 488, 487, 486, 485, + 494, 493, 492, 491, 490, 489, 488, 487, 486, 485, 484, 483, 482, 481, 480, 479, 478, 477, 476, 475, - 474, 473, 472, 471, 470, 469, 468, 467, 466, 465, - 464, 463, 462, 461, 460, 459, 458, 457, 456, 455, - 454, 453, 452, 451, 450, 449, 443, 442, 441, 440, - 439, 438, 437, 436, 435, 434, 433, 432, 431, 430, + 474, 473, 472, 471, 470, 469, 468, 467, 466, 456, + 455, 454, 453, 452, 446, 445, 444, 443, 442, 441, + 440, 439, 438, 437, 436, 435, 434, 433, 432, 431, + 430, 426, 425, 424, 423, 422, 421, 420, 419, 418, + 417, 416, 415, 414, 413, 412, 411, 410, 409, 408, + 407, 406, 405, 404, 403, 402, 401, 400, 399, 398, + 397, 396, 395, 394, 393, 392, 388, 387, 386, 385, + 384, 383, 382, 381, 377, 373, 372, 371, 370, 369, - 429, 428, 427, 423, 422, 421, 420, 419, 418, 417, - 416, 415, 414, 413, 412, 411, 410, 409, 408, 407, - 406, 405, 404, 403, 402, 401, 400, 399, 398, 397, - 396, 395, 394, 393, 392, 388, 387, 386, 385, 384, - 383, 382, 381, 377, 373, 372, 371, 370, 369, 365, - 364, 363, 362, 361, 360, 359, 358, 357, 353, 352, - 351, 350, 349, 348, 347, 346, 342, 341, 340, 339, - 338, 335, 334, 333, 332, 331, 330, 329, 328, 327, - 326, 325, 324, 323, 322, 321, 320, 317, 316, 315, - 314, 313, 312, 311, 310, 309, 308, 307, 303, 302, + 365, 364, 363, 362, 361, 360, 359, 358, 357, 353, + 352, 351, 350, 349, 348, 347, 346, 342, 341, 340, + 339, 338, 335, 334, 333, 332, 331, 330, 329, 328, + 327, 326, 325, 324, 323, 322, 321, 320, 317, 316, + 315, 314, 313, 312, 311, 310, 309, 308, 307, 303, + 302, 301, 300, 299, 298, 297, 296, 295, 294, 293, + 292, 291, 290, 289, 288, 287, 286, 285, 284, 283, + 282, 281, 280, 279, 278, 277, 276, 275, 272, 271, + 270, 269, 266, 265, 264, 263, 262, 261, 255, 254, + 251, 250, 249, 242, 241, 240, 239, 238, 233, 232, - 301, 300, 299, 298, 297, 296, 295, 294, 293, 292, - 291, 290, 289, 288, 287, 286, 285, 284, 283, 282, - 281, 280, 279, 278, 277, 276, 275, 272, 271, 270, - 269, 266, 265, 264, 263, 262, 261, 255, 254, 251, - 250, 249, 242, 241, 240, 239, 238, 233, 232, 231, - 230, 226, 225, 221, 218, 217, 216, 213, 212, 211, - 205, 204, 203, 202, 201, 200, 199, 198, 193, 192, - 191, 190, 189, 188, 187, 186, 182, 181, 180, 179, - 178, 177, 174, 173, 172, 171, 161, 138, 134, 118, - 90, 85, 69, 64, 774, 7, 774, 774, 774, 774, + 231, 230, 226, 225, 221, 218, 217, 216, 213, 212, + 211, 205, 204, 203, 202, 201, 200, 199, 198, 193, + 192, 191, 190, 189, 188, 187, 186, 182, 181, 180, + 179, 178, 177, 174, 173, 172, 171, 161, 138, 134, + 118, 90, 85, 69, 64, 825, 7, 825, 825, 825, + 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, + 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, + 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, + 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, + 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774 + 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, + 825, 825, 825, 825, 825, 825, 825, 825, 825 } ; -static yyconst flex_int16_t yy_chk[1069] = +static yyconst flex_int16_t yy_chk[1120] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -852,110 +876,116 @@ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 13, 17, 19, 20, 20, 20, 20, 20, - 20, 20, 36, 34, 21, 779, 36, 19, 17, 21, - 44, 13, 36, 26, 44, 36, 33, 34, 34, 771, + 20, 20, 36, 34, 21, 772, 36, 19, 17, 21, + 44, 13, 36, 26, 44, 36, 33, 34, 34, 773, 21, 22, 55, 22, 22, 22, 22, 22, 22, 22, - 26, 41, 26, 26, 33, 35, 769, 35, 53, 41, + 26, 41, 26, 26, 33, 35, 774, 35, 53, 41, 22, 35, 38, 43, 38, 37, 53, 22, 22, 37, - 41, 39, 114, 38, 37, 768, 43, 22, 129, 39, + 41, 39, 114, 38, 37, 775, 43, 22, 129, 39, 37, 39, 42, 114, 39, 42, 129, 55, 42, 42, 39, 22, 45, 42, 22, 23, 42, 23, 23, 23, - 23, 23, 23, 23, 47, 45, 764, 50, 98, 49, + 23, 23, 23, 23, 47, 45, 776, 50, 98, 49, 50, 156, 98, 156, 23, 151, 49, 49, 50, 47, 49, 23, 47, 151, 51, 50, 49, 49, 51, 49, - 52, 23, 51, 763, 52, 51, 74, 74, 74, 74, + 52, 23, 51, 779, 52, 51, 74, 74, 74, 74, 74, 74, 74, 52, 115, 23, 78, 78, 78, 78, 78, 78, 78, 74, 79, 79, 105, 115, 133, 152, - 105, 105, 762, 78, 133, 228, 81, 152, 81, 228, - 74, 81, 81, 81, 81, 81, 81, 81, 79, 760, - 78, 79, 80, 759, 80, 80, 80, 80, 80, 80, - 80, 125, 135, 138, 125, 125, 143, 758, 125, 144, - 125, 80, 150, 150, 170, 135, 757, 135, 80, 138, - 138, 143, 144, 180, 163, 756, 163, 497, 80, 163, - 163, 163, 163, 163, 163, 163, 180, 497, 170, 185, - 185, 754, 80, 165, 165, 165, 165, 165, 165, 165, - 216, 216, 216, 251, 251, 251, 166, 621, 166, 621, + 105, 105, 780, 78, 133, 228, 81, 152, 81, 228, + 74, 81, 81, 81, 81, 81, 81, 81, 79, 783, + 78, 79, 80, 784, 80, 80, 80, 80, 80, 80, + 80, 125, 135, 138, 125, 125, 143, 786, 125, 144, + 125, 80, 150, 150, 170, 135, 787, 135, 80, 138, + 138, 143, 144, 180, 163, 788, 163, 509, 80, 163, + 163, 163, 163, 163, 163, 163, 180, 509, 170, 185, + 185, 790, 80, 165, 165, 165, 165, 165, 165, 165, + 216, 216, 216, 251, 251, 251, 166, 791, 166, 794, 165, 166, 166, 166, 166, 166, 166, 166, 168, 168, - 168, 168, 168, 168, 168, 753, 752, 165, 169, 169, + 168, 168, 168, 168, 168, 795, 796, 165, 169, 169, 169, 169, 169, 169, 169, 245, 256, 256, 256, 256, 256, 256, 256, 245, 257, 257, 257, 257, 257, 257, 257, 258, 258, 258, 258, 258, 258, 258, 259, 259, 259, 259, 259, 259, 259, 266, 266, 266, 278, 278, 278, 287, 287, 287, 291, 291, 291, 300, 300, 300, - 341, 341, 341, 382, 382, 382, 443, 443, 443, 477, - 477, 477, 751, 639, 498, 639, 382, 382, 595, 443, - 443, 750, 477, 477, 498, 514, 514, 514, 595, 548, - 548, 571, 571, 596, 748, 596, 596, 746, 514, 514, + 341, 341, 341, 382, 382, 382, 393, 393, 393, 394, + 394, 394, 395, 395, 395, 510, 382, 382, 446, 446, + 446, 489, 489, 489, 797, 510, 526, 526, 526, 798, + 799, 446, 446, 801, 489, 489, 560, 560, 560, 526, - 745, 514, 548, 743, 571, 775, 775, 775, 775, 776, - 776, 777, 777, 778, 742, 778, 778, 740, 739, 736, - 735, 734, 733, 732, 731, 730, 729, 726, 725, 724, - 723, 722, 721, 720, 719, 716, 713, 712, 711, 710, - 709, 707, 706, 705, 704, 702, 700, 697, 696, 695, - 694, 692, 691, 690, 689, 688, 687, 686, 685, 684, + 526, 609, 526, 583, 583, 583, 637, 802, 803, 560, + 560, 609, 610, 637, 804, 637, 583, 583, 658, 610, + 805, 610, 610, 806, 808, 658, 809, 658, 810, 812, + 816, 817, 818, 820, 821, 826, 826, 826, 826, 827, + 827, 828, 828, 829, 830, 829, 829, 771, 770, 769, + 768, 767, 766, 763, 762, 761, 760, 759, 758, 757, + 756, 755, 754, 751, 750, 747, 746, 745, 744, 743, + 742, 740, 739, 738, 737, 736, 734, 732, 728, 727, + 726, 725, 724, 722, 721, 720, 719, 718, 717, 716, + 715, 714, 713, 712, 711, 710, 708, 707, 706, 705, + + 704, 703, 702, 701, 700, 698, 697, 696, 695, 694, + 693, 692, 691, 690, 689, 688, 687, 686, 685, 684, 683, 682, 681, 680, 679, 678, 677, 676, 675, 674, - 672, 671, 670, 669, 668, 667, 666, 665, 664, 663, - 661, 660, 659, 658, 657, 656, 655, 654, 653, 652, - 651, 650, 648, 647, 646, 645, 644, 643, 642, 640, + 673, 672, 671, 669, 668, 667, 666, 665, 664, 663, + 661, 660, 657, 655, 654, 653, 651, 650, 649, 648, + 647, 646, 645, 644, 643, 642, 641, 640, 639, 636, + 635, 634, 633, 632, 631, 629, 628, 627, 626, 624, + 623, 622, 621, 620, 619, 618, 617, 616, 615, 614, + 613, 612, 611, 606, 604, 603, 602, 601, 600, 596, + 595, 594, 593, 592, 591, 590, 589, 588, 586, 585, - 638, 636, 635, 634, 632, 631, 630, 629, 628, 627, - 626, 625, 624, 623, 622, 620, 619, 618, 617, 616, - 615, 613, 612, 611, 610, 608, 607, 606, 605, 604, - 603, 602, 601, 600, 599, 598, 597, 592, 590, 589, - 588, 584, 583, 582, 581, 580, 579, 578, 577, 576, - 574, 573, 569, 568, 566, 565, 563, 562, 561, 560, - 559, 558, 557, 553, 552, 551, 549, 547, 546, 545, - 544, 543, 542, 541, 540, 539, 538, 536, 535, 530, - 529, 528, 527, 525, 524, 522, 521, 520, 519, 518, - 516, 515, 513, 512, 511, 510, 509, 508, 507, 506, + 581, 580, 578, 577, 575, 574, 573, 572, 571, 570, + 569, 565, 564, 563, 561, 559, 558, 557, 556, 555, + 554, 553, 552, 551, 550, 548, 547, 542, 541, 540, + 539, 537, 536, 534, 533, 532, 531, 530, 528, 527, + 525, 524, 523, 522, 521, 520, 519, 518, 516, 515, + 514, 513, 512, 508, 507, 506, 505, 504, 503, 500, + 499, 498, 497, 496, 495, 494, 493, 492, 491, 490, + 488, 487, 484, 479, 477, 476, 475, 473, 472, 469, + 468, 467, 466, 455, 454, 453, 451, 450, 449, 448, + 447, 444, 442, 441, 440, 438, 437, 436, 435, 433, - 504, 503, 502, 501, 500, 496, 495, 494, 493, 492, - 491, 488, 487, 486, 485, 484, 483, 482, 481, 480, - 479, 478, 476, 475, 472, 467, 465, 464, 463, 461, - 460, 457, 456, 455, 454, 452, 451, 450, 448, 447, - 446, 445, 444, 441, 439, 438, 437, 435, 434, 433, - 432, 430, 428, 427, 422, 421, 419, 418, 417, 416, - 415, 414, 413, 412, 411, 410, 409, 407, 406, 405, - 404, 403, 402, 401, 399, 398, 397, 396, 395, 394, - 393, 392, 388, 387, 386, 383, 381, 371, 369, 365, - 364, 363, 362, 360, 359, 357, 352, 351, 350, 349, + 431, 430, 425, 424, 422, 421, 420, 419, 418, 417, + 416, 415, 414, 413, 412, 410, 409, 408, 407, 406, + 405, 404, 402, 401, 400, 399, 398, 397, 396, 392, + 388, 387, 386, 383, 381, 371, 369, 365, 364, 363, + 362, 360, 359, 357, 352, 351, 350, 349, 348, 347, + 342, 340, 339, 338, 337, 336, 334, 333, 330, 329, + 328, 327, 326, 325, 324, 323, 322, 321, 320, 319, + 318, 317, 316, 315, 314, 313, 312, 311, 310, 309, + 308, 307, 306, 305, 304, 301, 299, 298, 297, 296, + 295, 294, 293, 292, 290, 286, 284, 283, 282, 281, - 348, 347, 342, 340, 339, 338, 337, 336, 334, 333, - 330, 329, 328, 327, 326, 325, 324, 323, 322, 321, - 320, 319, 318, 317, 316, 315, 314, 313, 312, 311, - 310, 309, 308, 307, 301, 299, 298, 297, 296, 295, - 294, 293, 292, 290, 286, 284, 283, 282, 281, 277, - 276, 275, 274, 273, 272, 271, 270, 269, 265, 263, - 262, 261, 255, 254, 253, 252, 250, 249, 248, 247, - 246, 244, 243, 242, 241, 240, 239, 238, 237, 236, - 235, 234, 233, 232, 231, 230, 229, 227, 226, 225, - 224, 223, 222, 221, 220, 219, 218, 217, 215, 214, + 277, 276, 275, 274, 273, 272, 271, 270, 269, 265, + 263, 262, 261, 255, 254, 253, 252, 250, 249, 248, + 247, 246, 244, 243, 242, 241, 240, 239, 238, 237, + 236, 235, 234, 233, 232, 231, 230, 229, 227, 226, + 225, 224, 223, 222, 221, 220, 219, 218, 217, 215, + 214, 213, 212, 211, 210, 209, 208, 207, 206, 205, + 204, 203, 202, 201, 200, 199, 197, 196, 195, 194, + 193, 192, 191, 190, 189, 188, 187, 186, 184, 183, + 182, 181, 179, 178, 177, 176, 175, 173, 158, 157, + 155, 154, 153, 149, 148, 147, 146, 145, 142, 141, - 213, 212, 211, 210, 209, 208, 207, 206, 205, 204, - 203, 202, 201, 200, 199, 197, 196, 195, 194, 193, - 192, 191, 190, 189, 188, 187, 186, 184, 183, 182, - 181, 179, 178, 177, 176, 175, 173, 158, 157, 155, - 154, 153, 149, 148, 147, 146, 145, 142, 141, 140, - 139, 137, 136, 134, 132, 131, 130, 128, 127, 126, - 124, 123, 121, 120, 119, 118, 117, 116, 113, 112, - 111, 110, 109, 108, 107, 106, 104, 103, 102, 101, - 100, 99, 97, 96, 92, 88, 60, 48, 46, 40, - 27, 24, 16, 11, 7, 774, 774, 774, 774, 774, + 140, 139, 137, 136, 134, 132, 131, 130, 128, 127, + 126, 124, 123, 121, 120, 119, 118, 117, 116, 113, + 112, 111, 110, 109, 108, 107, 106, 104, 103, 102, + 101, 100, 99, 97, 96, 92, 88, 60, 48, 46, + 40, 27, 24, 16, 11, 7, 825, 825, 825, 825, + 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, + 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, + 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, + 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, + 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774 + 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, + 825, 825, 825, 825, 825, 825, 825, 825, 825 } ; /* Table of booleans, true if rule could match eol. */ -static yyconst flex_int32_t yy_rule_can_match_eol[223] = +static yyconst flex_int32_t yy_rule_can_match_eol[243] = { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -968,6 +998,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, }; /* The intent behind this definition is that it'll catch @@ -979,7 +1010,7 @@ #define YY_RESTORE_YY_MORE_OFFSET /* // -// Copyright (c) 2002-2012 The ANGLE Project Authors. All rights reserved. +// Copyright (c) 2002-2015 The ANGLE Project Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -1304,13 +1335,13 @@ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 775 ) + if ( yy_current_state >= 826 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_current_state != 774 ); + while ( yy_current_state != 825 ); yy_cp = yyg->yy_last_accepting_cpos; yy_current_state = yyg->yy_last_accepting_state; @@ -1511,105 +1542,165 @@ YY_BREAK case 43: YY_RULE_SETUP -{ context->lexAfterType = true; return (VEC2); } +{ return ES2_identifier_ES3_keyword(context, MATRIX2); } YY_BREAK case 44: YY_RULE_SETUP -{ context->lexAfterType = true; return (VEC3); } +{ return ES2_identifier_ES3_keyword(context, MATRIX3); } YY_BREAK case 45: YY_RULE_SETUP -{ context->lexAfterType = true; return (VEC4); } +{ return ES2_identifier_ES3_keyword(context, MATRIX4); } YY_BREAK case 46: YY_RULE_SETUP -{ context->lexAfterType = true; return (IVEC2); } +{ return ES2_identifier_ES3_keyword(context, MATRIX2x3); } YY_BREAK case 47: YY_RULE_SETUP -{ context->lexAfterType = true; return (IVEC3); } +{ return ES2_identifier_ES3_keyword(context, MATRIX3x2); } YY_BREAK case 48: YY_RULE_SETUP -{ context->lexAfterType = true; return (IVEC4); } +{ return ES2_identifier_ES3_keyword(context, MATRIX2x4); } YY_BREAK case 49: YY_RULE_SETUP -{ return ES2_identifier_ES3_keyword(context, UVEC2); } +{ return ES2_identifier_ES3_keyword(context, MATRIX4x2); } YY_BREAK case 50: YY_RULE_SETUP -{ return ES2_identifier_ES3_keyword(context, UVEC3); } +{ return ES2_identifier_ES3_keyword(context, MATRIX3x4); } YY_BREAK case 51: YY_RULE_SETUP -{ return ES2_identifier_ES3_keyword(context, UVEC4); } +{ return ES2_identifier_ES3_keyword(context, MATRIX4x3); } YY_BREAK case 52: YY_RULE_SETUP -{ context->lexAfterType = true; return (BVEC2); } +{ context->lexAfterType = true; return (VEC2); } YY_BREAK case 53: YY_RULE_SETUP -{ context->lexAfterType = true; return (BVEC3); } +{ context->lexAfterType = true; return (VEC3); } YY_BREAK case 54: YY_RULE_SETUP -{ context->lexAfterType = true; return (BVEC4); } +{ context->lexAfterType = true; return (VEC4); } YY_BREAK case 55: YY_RULE_SETUP -{ context->lexAfterType = true; return SAMPLER2D; } +{ context->lexAfterType = true; return (IVEC2); } YY_BREAK case 56: YY_RULE_SETUP -{ context->lexAfterType = true; return SAMPLERCUBE; } +{ context->lexAfterType = true; return (IVEC3); } YY_BREAK case 57: YY_RULE_SETUP -{ context->lexAfterType = true; return SAMPLER_EXTERNAL_OES; } +{ context->lexAfterType = true; return (IVEC4); } YY_BREAK case 58: YY_RULE_SETUP -{ context->lexAfterType = true; return SAMPLER3D; } +{ return ES2_identifier_ES3_keyword(context, UVEC2); } YY_BREAK case 59: YY_RULE_SETUP -{ return ES2_reserved_ES3_keyword(context, SAMPLER3DRECT); } +{ return ES2_identifier_ES3_keyword(context, UVEC3); } YY_BREAK case 60: YY_RULE_SETUP -{ return ES2_reserved_ES3_keyword(context, SAMPLER2DSHADOW); } +{ return ES2_identifier_ES3_keyword(context, UVEC4); } YY_BREAK case 61: YY_RULE_SETUP -{ context->lexAfterType = true; return(STRUCT); } +{ context->lexAfterType = true; return (BVEC2); } YY_BREAK case 62: YY_RULE_SETUP +{ context->lexAfterType = true; return (BVEC3); } + YY_BREAK +case 63: +YY_RULE_SETUP +{ context->lexAfterType = true; return (BVEC4); } + YY_BREAK +case 64: +YY_RULE_SETUP +{ context->lexAfterType = true; return SAMPLER2D; } + YY_BREAK +case 65: +YY_RULE_SETUP +{ context->lexAfterType = true; return SAMPLERCUBE; } + YY_BREAK +case 66: +YY_RULE_SETUP +{ context->lexAfterType = true; return SAMPLER_EXTERNAL_OES; } + YY_BREAK +case 67: +YY_RULE_SETUP +{ context->lexAfterType = true; return SAMPLER3D; } + YY_BREAK +case 68: +YY_RULE_SETUP +{ return ES2_reserved_ES3_keyword(context, SAMPLER3DRECT); } + YY_BREAK +case 69: +YY_RULE_SETUP +{ return ES2_identifier_ES3_keyword(context, SAMPLER2DARRAY); } + YY_BREAK +case 70: +YY_RULE_SETUP +{ return ES2_identifier_ES3_keyword(context, ISAMPLER2D); } + YY_BREAK +case 71: +YY_RULE_SETUP +{ return ES2_identifier_ES3_keyword(context, ISAMPLER3D); } + YY_BREAK +case 72: +YY_RULE_SETUP +{ return ES2_identifier_ES3_keyword(context, ISAMPLERCUBE); } + YY_BREAK +case 73: +YY_RULE_SETUP +{ return ES2_identifier_ES3_keyword(context, ISAMPLER2DARRAY); } + YY_BREAK +case 74: +YY_RULE_SETUP +{ return ES2_identifier_ES3_keyword(context, USAMPLER2D); } + YY_BREAK +case 75: +YY_RULE_SETUP +{ return ES2_identifier_ES3_keyword(context, USAMPLER3D); } + YY_BREAK +case 76: +YY_RULE_SETUP +{ return ES2_identifier_ES3_keyword(context, USAMPLERCUBE); } + YY_BREAK +case 77: +YY_RULE_SETUP +{ return ES2_identifier_ES3_keyword(context, USAMPLER2DARRAY); } + YY_BREAK +case 78: +YY_RULE_SETUP +{ return ES2_reserved_ES3_keyword(context, SAMPLER2DSHADOW); } + YY_BREAK +case 79: +YY_RULE_SETUP +{ return ES2_identifier_ES3_keyword(context, SAMPLERCUBESHADOW); } + YY_BREAK +case 80: +YY_RULE_SETUP +{ return ES2_identifier_ES3_keyword(context, SAMPLER2DARRAYSHADOW); } + YY_BREAK +case 81: +YY_RULE_SETUP +{ context->lexAfterType = true; return(STRUCT); } + YY_BREAK +case 82: +YY_RULE_SETUP { return ES2_identifier_ES3_keyword(context, LAYOUT); } YY_BREAK /* Reserved keywords for GLSL ES 3.00 that are not reserved for GLSL ES 1.00 */ -case 63: -case 64: -case 65: -case 66: -case 67: -case 68: -case 69: -case 70: -case 71: -case 72: -case 73: -case 74: -case 75: -case 76: -case 77: -case 78: -case 79: -case 80: -case 81: -case 82: case 83: case 84: case 85: @@ -1646,29 +1737,7 @@ case 116: case 117: case 118: -YY_RULE_SETUP -{ - if (context->shaderVersion < 300) { - yylval->lex.string = NewPoolTString(yytext); - return check_type(yyscanner); - } - return reserved_word(yyscanner); -} - YY_BREAK -/* Reserved keywords in GLSL ES 1.00 that are not reserved in GLSL ES 3.00 */ case 119: -YY_RULE_SETUP -{ - if (context->shaderVersion >= 300) - { - yylval->lex.string = NewPoolTString(yytext); - return check_type(yyscanner); - } - - return reserved_word(yyscanner); -} - YY_BREAK -/* Reserved keywords */ case 120: case 121: case 122: @@ -1688,7 +1757,29 @@ case 136: case 137: case 138: +YY_RULE_SETUP +{ + if (context->shaderVersion < 300) { + yylval->lex.string = NewPoolTString(yytext); + return check_type(yyscanner); + } + return reserved_word(yyscanner); +} + YY_BREAK +/* Reserved keywords in GLSL ES 1.00 that are not reserved in GLSL ES 3.00 */ case 139: +YY_RULE_SETUP +{ + if (context->shaderVersion >= 300) + { + yylval->lex.string = NewPoolTString(yytext); + return check_type(yyscanner); + } + + return reserved_word(yyscanner); +} + YY_BREAK +/* Reserved keywords */ case 140: case 141: case 142: @@ -1711,250 +1802,270 @@ case 159: case 160: case 161: +case 162: +case 163: +case 164: +case 165: +case 166: +case 167: +case 168: +case 169: +case 170: +case 171: +case 172: +case 173: +case 174: +case 175: +case 176: +case 177: +case 178: +case 179: +case 180: +case 181: YY_RULE_SETUP { return reserved_word(yyscanner); } YY_BREAK -case 162: +case 182: YY_RULE_SETUP { yylval->lex.string = NewPoolTString(yytext); return check_type(yyscanner); } YY_BREAK -case 163: -YY_RULE_SETUP -{ yylval->lex.i = strtol(yytext, 0, 0); return(INTCONSTANT); } - YY_BREAK -case 164: -YY_RULE_SETUP -{ yylval->lex.i = strtol(yytext, 0, 0); return(INTCONSTANT); } - YY_BREAK -case 165: -YY_RULE_SETUP -{ context->error(yylineno, "Invalid Octal number.", yytext); context->recover(); return 0;} - YY_BREAK -case 166: -YY_RULE_SETUP -{ yylval->lex.i = strtol(yytext, 0, 0); return(INTCONSTANT); } - YY_BREAK -case 167: -YY_RULE_SETUP -{ return uint_constant(context); } - YY_BREAK -case 168: -YY_RULE_SETUP -{ return uint_constant(context); } - YY_BREAK -case 169: -YY_RULE_SETUP -{ return uint_constant(context); } - YY_BREAK -case 170: -YY_RULE_SETUP -{ yylval->lex.f = static_cast<float>(atof_dot(yytext)); return(FLOATCONSTANT); } - YY_BREAK -case 171: -YY_RULE_SETUP -{ yylval->lex.f = static_cast<float>(atof_dot(yytext)); return(FLOATCONSTANT); } - YY_BREAK -case 172: -YY_RULE_SETUP -{ yylval->lex.f = static_cast<float>(atof_dot(yytext)); return(FLOATCONSTANT); } - YY_BREAK -case 173: -YY_RULE_SETUP -{ return(ADD_ASSIGN); } - YY_BREAK -case 174: -YY_RULE_SETUP -{ return(SUB_ASSIGN); } - YY_BREAK -case 175: -YY_RULE_SETUP -{ return(MUL_ASSIGN); } - YY_BREAK -case 176: -YY_RULE_SETUP -{ return(DIV_ASSIGN); } - YY_BREAK -case 177: -YY_RULE_SETUP -{ return(MOD_ASSIGN); } - YY_BREAK -case 178: -YY_RULE_SETUP -{ return(LEFT_ASSIGN); } - YY_BREAK -case 179: -YY_RULE_SETUP -{ return(RIGHT_ASSIGN); } - YY_BREAK -case 180: -YY_RULE_SETUP -{ return(AND_ASSIGN); } - YY_BREAK -case 181: -YY_RULE_SETUP -{ return(XOR_ASSIGN); } - YY_BREAK -case 182: -YY_RULE_SETUP -{ return(OR_ASSIGN); } - YY_BREAK case 183: YY_RULE_SETUP -{ return(INC_OP); } +{ yylval->lex.i = strtol(yytext, 0, 0); return(INTCONSTANT); } YY_BREAK case 184: YY_RULE_SETUP -{ return(DEC_OP); } +{ yylval->lex.i = strtol(yytext, 0, 0); return(INTCONSTANT); } YY_BREAK case 185: YY_RULE_SETUP -{ return(AND_OP); } +{ context->error(yylineno, "Invalid Octal number.", yytext); context->recover(); return 0;} YY_BREAK case 186: YY_RULE_SETUP -{ return(OR_OP); } +{ yylval->lex.i = strtol(yytext, 0, 0); return(INTCONSTANT); } YY_BREAK case 187: YY_RULE_SETUP -{ return(XOR_OP); } +{ return uint_constant(context); } YY_BREAK case 188: YY_RULE_SETUP -{ return(LE_OP); } +{ return uint_constant(context); } YY_BREAK case 189: YY_RULE_SETUP -{ return(GE_OP); } +{ return uint_constant(context); } YY_BREAK case 190: YY_RULE_SETUP -{ return(EQ_OP); } +{ yylval->lex.f = static_cast<float>(atof_dot(yytext)); return(FLOATCONSTANT); } YY_BREAK case 191: YY_RULE_SETUP -{ return(NE_OP); } +{ yylval->lex.f = static_cast<float>(atof_dot(yytext)); return(FLOATCONSTANT); } YY_BREAK case 192: YY_RULE_SETUP -{ return(LEFT_OP); } +{ yylval->lex.f = static_cast<float>(atof_dot(yytext)); return(FLOATCONSTANT); } YY_BREAK case 193: YY_RULE_SETUP -{ return(RIGHT_OP); } +{ return(ADD_ASSIGN); } YY_BREAK case 194: YY_RULE_SETUP -{ context->lexAfterType = false; return(SEMICOLON); } +{ return(SUB_ASSIGN); } YY_BREAK case 195: YY_RULE_SETUP -{ context->lexAfterType = false; return(LEFT_BRACE); } +{ return(MUL_ASSIGN); } YY_BREAK case 196: YY_RULE_SETUP -{ return(RIGHT_BRACE); } +{ return(DIV_ASSIGN); } YY_BREAK case 197: YY_RULE_SETUP -{ if (context->inTypeParen) context->lexAfterType = false; return(COMMA); } +{ return(MOD_ASSIGN); } YY_BREAK case 198: YY_RULE_SETUP -{ return(COLON); } +{ return(LEFT_ASSIGN); } YY_BREAK case 199: YY_RULE_SETUP -{ context->lexAfterType = false; return(EQUAL); } +{ return(RIGHT_ASSIGN); } YY_BREAK case 200: YY_RULE_SETUP -{ context->lexAfterType = false; context->inTypeParen = true; return(LEFT_PAREN); } +{ return(AND_ASSIGN); } YY_BREAK case 201: YY_RULE_SETUP -{ context->inTypeParen = false; return(RIGHT_PAREN); } +{ return(XOR_ASSIGN); } YY_BREAK case 202: YY_RULE_SETUP -{ return(LEFT_BRACKET); } +{ return(OR_ASSIGN); } YY_BREAK case 203: YY_RULE_SETUP -{ return(RIGHT_BRACKET); } +{ return(INC_OP); } YY_BREAK case 204: YY_RULE_SETUP -{ BEGIN(FIELDS); return(DOT); } +{ return(DEC_OP); } YY_BREAK case 205: YY_RULE_SETUP -{ return(BANG); } +{ return(AND_OP); } YY_BREAK case 206: YY_RULE_SETUP -{ return(DASH); } +{ return(OR_OP); } YY_BREAK case 207: YY_RULE_SETUP -{ return(TILDE); } +{ return(XOR_OP); } YY_BREAK case 208: YY_RULE_SETUP -{ return(PLUS); } +{ return(LE_OP); } YY_BREAK case 209: YY_RULE_SETUP -{ return(STAR); } +{ return(GE_OP); } YY_BREAK case 210: YY_RULE_SETUP -{ return(SLASH); } +{ return(EQ_OP); } YY_BREAK case 211: YY_RULE_SETUP -{ return(PERCENT); } +{ return(NE_OP); } YY_BREAK case 212: YY_RULE_SETUP -{ return(LEFT_ANGLE); } +{ return(LEFT_OP); } YY_BREAK case 213: YY_RULE_SETUP -{ return(RIGHT_ANGLE); } +{ return(RIGHT_OP); } YY_BREAK case 214: YY_RULE_SETUP -{ return(VERTICAL_BAR); } +{ context->lexAfterType = false; return(SEMICOLON); } YY_BREAK case 215: YY_RULE_SETUP -{ return(CARET); } +{ context->lexAfterType = false; return(LEFT_BRACE); } YY_BREAK case 216: YY_RULE_SETUP -{ return(AMPERSAND); } +{ return(RIGHT_BRACE); } YY_BREAK case 217: YY_RULE_SETUP -{ return(QUESTION); } +{ if (context->inTypeParen) context->lexAfterType = false; return(COMMA); } YY_BREAK case 218: YY_RULE_SETUP +{ return(COLON); } + YY_BREAK +case 219: +YY_RULE_SETUP +{ context->lexAfterType = false; return(EQUAL); } + YY_BREAK +case 220: +YY_RULE_SETUP +{ context->lexAfterType = false; context->inTypeParen = true; return(LEFT_PAREN); } + YY_BREAK +case 221: +YY_RULE_SETUP +{ context->inTypeParen = false; return(RIGHT_PAREN); } + YY_BREAK +case 222: +YY_RULE_SETUP +{ return(LEFT_BRACKET); } + YY_BREAK +case 223: +YY_RULE_SETUP +{ return(RIGHT_BRACKET); } + YY_BREAK +case 224: +YY_RULE_SETUP +{ BEGIN(FIELDS); return(DOT); } + YY_BREAK +case 225: +YY_RULE_SETUP +{ return(BANG); } + YY_BREAK +case 226: +YY_RULE_SETUP +{ return(DASH); } + YY_BREAK +case 227: +YY_RULE_SETUP +{ return(TILDE); } + YY_BREAK +case 228: +YY_RULE_SETUP +{ return(PLUS); } + YY_BREAK +case 229: +YY_RULE_SETUP +{ return(STAR); } + YY_BREAK +case 230: +YY_RULE_SETUP +{ return(SLASH); } + YY_BREAK +case 231: +YY_RULE_SETUP +{ return(PERCENT); } + YY_BREAK +case 232: +YY_RULE_SETUP +{ return(LEFT_ANGLE); } + YY_BREAK +case 233: +YY_RULE_SETUP +{ return(RIGHT_ANGLE); } + YY_BREAK +case 234: +YY_RULE_SETUP +{ return(VERTICAL_BAR); } + YY_BREAK +case 235: +YY_RULE_SETUP +{ return(CARET); } + YY_BREAK +case 236: +YY_RULE_SETUP +{ return(AMPERSAND); } + YY_BREAK +case 237: +YY_RULE_SETUP +{ return(QUESTION); } + YY_BREAK +case 238: +YY_RULE_SETUP { BEGIN(INITIAL); yylval->lex.string = NewPoolTString(yytext); return FIELD_SELECTION; } YY_BREAK -case 219: +case 239: YY_RULE_SETUP {} YY_BREAK -case 220: -/* rule 220 can match eol */ +case 240: +/* rule 240 can match eol */ YY_RULE_SETUP { } YY_BREAK @@ -1963,11 +2074,11 @@ case YY_STATE_EOF(FIELDS): { context->AfterEOF = true; yyterminate(); } YY_BREAK -case 221: +case 241: YY_RULE_SETUP { context->warning(yylineno, "Unknown char", yytext, ""); return 0; } YY_BREAK -case 222: +case 242: YY_RULE_SETUP ECHO; YY_BREAK @@ -2263,7 +2374,7 @@ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 775 ) + if ( yy_current_state >= 826 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2292,11 +2403,11 @@ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 775 ) + if ( yy_current_state >= 826 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 774); + yy_is_jam = (yy_current_state == 825); return yy_is_jam ? 0 : yy_current_state; }
diff --git a/src/OpenGL/compiler/glslang_tab.cpp b/src/OpenGL/compiler/glslang_tab.cpp index c79bf87..54ac7fe 100644 --- a/src/OpenGL/compiler/glslang_tab.cpp +++ b/src/OpenGL/compiler/glslang_tab.cpp
@@ -69,7 +69,7 @@ // -// Copyright (c) 2002-2013 The ANGLE Project Authors. All rights reserved. +// Copyright (c) 2002-2015 The ANGLE Project Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -165,72 +165,89 @@ INOUT_QUAL = 297, UNIFORM = 298, VARYING = 299, - CENTROID = 300, - FLAT = 301, - SMOOTH = 302, - STRUCT = 303, - VOID_TYPE = 304, - WHILE = 305, - SAMPLER2D = 306, - SAMPLERCUBE = 307, - SAMPLER_EXTERNAL_OES = 308, - SAMPLER2DRECT = 309, - SAMPLER3D = 310, - SAMPLER3DRECT = 311, - SAMPLER2DSHADOW = 312, - LAYOUT = 313, - IDENTIFIER = 314, - TYPE_NAME = 315, - FLOATCONSTANT = 316, - INTCONSTANT = 317, - UINTCONSTANT = 318, - BOOLCONSTANT = 319, - FIELD_SELECTION = 320, - LEFT_OP = 321, - RIGHT_OP = 322, - INC_OP = 323, - DEC_OP = 324, - LE_OP = 325, - GE_OP = 326, - EQ_OP = 327, - NE_OP = 328, - AND_OP = 329, - OR_OP = 330, - XOR_OP = 331, - MUL_ASSIGN = 332, - DIV_ASSIGN = 333, - ADD_ASSIGN = 334, - MOD_ASSIGN = 335, - LEFT_ASSIGN = 336, - RIGHT_ASSIGN = 337, - AND_ASSIGN = 338, - XOR_ASSIGN = 339, - OR_ASSIGN = 340, - SUB_ASSIGN = 341, - LEFT_PAREN = 342, - RIGHT_PAREN = 343, - LEFT_BRACKET = 344, - RIGHT_BRACKET = 345, - LEFT_BRACE = 346, - RIGHT_BRACE = 347, - DOT = 348, - COMMA = 349, - COLON = 350, - EQUAL = 351, - SEMICOLON = 352, - BANG = 353, - DASH = 354, - TILDE = 355, - PLUS = 356, - STAR = 357, - SLASH = 358, - PERCENT = 359, - LEFT_ANGLE = 360, - RIGHT_ANGLE = 361, - VERTICAL_BAR = 362, - CARET = 363, - AMPERSAND = 364, - QUESTION = 365 + MATRIX2x3 = 300, + MATRIX3x2 = 301, + MATRIX2x4 = 302, + MATRIX4x2 = 303, + MATRIX3x4 = 304, + MATRIX4x3 = 305, + CENTROID = 306, + FLAT = 307, + SMOOTH = 308, + STRUCT = 309, + VOID_TYPE = 310, + WHILE = 311, + SAMPLER2D = 312, + SAMPLERCUBE = 313, + SAMPLER_EXTERNAL_OES = 314, + SAMPLER2DRECT = 315, + SAMPLER2DARRAY = 316, + ISAMPLER2D = 317, + ISAMPLER3D = 318, + ISAMPLERCUBE = 319, + ISAMPLER2DARRAY = 320, + USAMPLER2D = 321, + USAMPLER3D = 322, + USAMPLERCUBE = 323, + USAMPLER2DARRAY = 324, + SAMPLER3D = 325, + SAMPLER3DRECT = 326, + SAMPLER2DSHADOW = 327, + SAMPLERCUBESHADOW = 328, + SAMPLER2DARRAYSHADOW = 329, + LAYOUT = 330, + IDENTIFIER = 331, + TYPE_NAME = 332, + FLOATCONSTANT = 333, + INTCONSTANT = 334, + UINTCONSTANT = 335, + BOOLCONSTANT = 336, + FIELD_SELECTION = 337, + LEFT_OP = 338, + RIGHT_OP = 339, + INC_OP = 340, + DEC_OP = 341, + LE_OP = 342, + GE_OP = 343, + EQ_OP = 344, + NE_OP = 345, + AND_OP = 346, + OR_OP = 347, + XOR_OP = 348, + MUL_ASSIGN = 349, + DIV_ASSIGN = 350, + ADD_ASSIGN = 351, + MOD_ASSIGN = 352, + LEFT_ASSIGN = 353, + RIGHT_ASSIGN = 354, + AND_ASSIGN = 355, + XOR_ASSIGN = 356, + OR_ASSIGN = 357, + SUB_ASSIGN = 358, + LEFT_PAREN = 359, + RIGHT_PAREN = 360, + LEFT_BRACKET = 361, + RIGHT_BRACKET = 362, + LEFT_BRACE = 363, + RIGHT_BRACE = 364, + DOT = 365, + COMMA = 366, + COLON = 367, + EQUAL = 368, + SEMICOLON = 369, + BANG = 370, + DASH = 371, + TILDE = 372, + PLUS = 373, + STAR = 374, + SLASH = 375, + PERCENT = 376, + LEFT_ANGLE = 377, + RIGHT_ANGLE = 378, + VERTICAL_BAR = 379, + CARET = 380, + AMPERSAND = 381, + QUESTION = 382 }; #endif @@ -537,22 +554,22 @@ #endif /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 85 +#define YYFINAL 103 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1675 +#define YYLAST 2020 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 111 +#define YYNTOKENS 128 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 88 /* YYNRULES -- Number of rules. */ -#define YYNRULES 220 +#define YYNRULES 238 /* YYNRULES -- Number of states. */ -#define YYNSTATES 329 +#define YYNSTATES 347 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 365 +#define YYMAXUTOK 382 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -596,7 +613,9 @@ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110 + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127 }; #if YYDEBUG @@ -619,109 +638,115 @@ 348, 350, 352, 354, 359, 361, 365, 367, 371, 375, 377, 382, 384, 386, 388, 390, 392, 394, 396, 398, 400, 402, 404, 406, 408, 410, 412, 414, 416, 418, - 420, 422, 424, 426, 428, 430, 432, 434, 435, 442, - 443, 449, 451, 454, 458, 460, 464, 466, 471, 473, - 475, 477, 479, 481, 483, 485, 487, 489, 492, 493, - 494, 500, 502, 504, 505, 508, 509, 512, 515, 519, - 521, 524, 526, 529, 535, 539, 541, 543, 548, 549, - 556, 557, 566, 567, 575, 577, 579, 581, 582, 585, - 589, 592, 595, 598, 602, 605, 607, 610, 612, 614, - 615 + 420, 422, 424, 426, 428, 430, 432, 434, 436, 438, + 440, 442, 444, 446, 448, 450, 452, 454, 456, 458, + 460, 462, 464, 466, 468, 470, 471, 478, 479, 485, + 487, 490, 494, 496, 500, 502, 507, 509, 511, 513, + 515, 517, 519, 521, 523, 525, 528, 529, 530, 536, + 538, 540, 541, 544, 545, 548, 551, 555, 557, 560, + 562, 565, 571, 575, 577, 579, 584, 585, 592, 593, + 602, 603, 611, 613, 615, 617, 618, 621, 625, 628, + 631, 634, 638, 641, 643, 646, 648, 650, 651 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 195, 0, -1, 59, -1, 112, -1, 62, -1, 63, - -1, 61, -1, 64, -1, 87, 139, 88, -1, 113, - -1, 114, 89, 115, 90, -1, 116, -1, 114, 93, - 65, -1, 114, 68, -1, 114, 69, -1, 139, -1, - 117, -1, 118, -1, 114, 93, 118, -1, 120, 88, - -1, 119, 88, -1, 121, 49, -1, 121, -1, 121, - 137, -1, 120, 94, 137, -1, 122, 87, -1, 162, - -1, 59, -1, 65, -1, 114, -1, 68, 123, -1, - 69, 123, -1, 124, 123, -1, 101, -1, 99, -1, - 98, -1, 123, -1, 125, 102, 123, -1, 125, 103, - 123, -1, 125, -1, 126, 101, 125, -1, 126, 99, - 125, -1, 126, -1, 127, -1, 128, 105, 127, -1, - 128, 106, 127, -1, 128, 70, 127, -1, 128, 71, - 127, -1, 128, -1, 129, 72, 128, -1, 129, 73, - 128, -1, 129, -1, 130, -1, 131, -1, 132, -1, - 133, 74, 132, -1, 133, -1, 134, 76, 133, -1, - 134, -1, 135, 75, 134, -1, 135, -1, 135, 110, - 139, 95, 137, -1, 136, -1, 123, 138, 137, -1, - 96, -1, 77, -1, 78, -1, 79, -1, 86, -1, - 137, -1, 139, 94, 137, -1, 136, -1, 142, 97, - -1, 150, 97, -1, 7, 157, 161, 97, -1, 143, - 88, -1, 145, -1, 144, -1, 145, 147, -1, 144, - 94, 147, -1, 152, 59, 87, -1, 156, 59, -1, - 156, 59, 89, 140, 90, -1, 153, 148, 146, -1, - 148, 146, -1, 153, 148, 149, -1, 148, 149, -1, - -1, 40, -1, 41, -1, 42, -1, 156, -1, 151, - -1, 150, 94, 59, -1, 150, 94, 59, 89, 90, - -1, 150, 94, 59, 89, 140, 90, -1, 150, 94, - 59, 96, 170, -1, 152, -1, 152, 59, -1, 152, - 59, 89, 90, -1, 152, 59, 89, 140, 90, -1, - 152, 59, 96, 170, -1, 3, 59, -1, 156, -1, - 154, 156, -1, 9, -1, 8, -1, 44, -1, 3, - 44, -1, 155, -1, 158, -1, 158, 155, -1, 9, - -1, 40, -1, 41, -1, 45, 40, -1, 45, 41, - -1, 43, -1, 161, -1, 157, 161, -1, 4, -1, - 5, -1, 6, -1, 58, 87, 159, 88, -1, 160, - -1, 159, 94, 160, -1, 59, -1, 59, 96, 62, - -1, 59, 96, 63, -1, 162, -1, 162, 89, 140, - 90, -1, 49, -1, 11, -1, 12, -1, 13, -1, + 212, 0, -1, 76, -1, 129, -1, 79, -1, 80, + -1, 78, -1, 81, -1, 104, 156, 105, -1, 130, + -1, 131, 106, 132, 107, -1, 133, -1, 131, 110, + 82, -1, 131, 85, -1, 131, 86, -1, 156, -1, + 134, -1, 135, -1, 131, 110, 135, -1, 137, 105, + -1, 136, 105, -1, 138, 55, -1, 138, -1, 138, + 154, -1, 137, 111, 154, -1, 139, 104, -1, 179, + -1, 76, -1, 82, -1, 131, -1, 85, 140, -1, + 86, 140, -1, 141, 140, -1, 118, -1, 116, -1, + 115, -1, 140, -1, 142, 119, 140, -1, 142, 120, + 140, -1, 142, -1, 143, 118, 142, -1, 143, 116, + 142, -1, 143, -1, 144, -1, 145, 122, 144, -1, + 145, 123, 144, -1, 145, 87, 144, -1, 145, 88, + 144, -1, 145, -1, 146, 89, 145, -1, 146, 90, + 145, -1, 146, -1, 147, -1, 148, -1, 149, -1, + 150, 91, 149, -1, 150, -1, 151, 93, 150, -1, + 151, -1, 152, 92, 151, -1, 152, -1, 152, 127, + 156, 112, 154, -1, 153, -1, 140, 155, 154, -1, + 113, -1, 94, -1, 95, -1, 96, -1, 103, -1, + 154, -1, 156, 111, 154, -1, 153, -1, 159, 114, + -1, 167, 114, -1, 7, 174, 178, 114, -1, 160, + 105, -1, 162, -1, 161, -1, 162, 164, -1, 161, + 111, 164, -1, 169, 76, 104, -1, 173, 76, -1, + 173, 76, 106, 157, 107, -1, 170, 165, 163, -1, + 165, 163, -1, 170, 165, 166, -1, 165, 166, -1, + -1, 40, -1, 41, -1, 42, -1, 173, -1, 168, + -1, 167, 111, 76, -1, 167, 111, 76, 106, 107, + -1, 167, 111, 76, 106, 157, 107, -1, 167, 111, + 76, 113, 187, -1, 169, -1, 169, 76, -1, 169, + 76, 106, 107, -1, 169, 76, 106, 157, 107, -1, + 169, 76, 113, 187, -1, 3, 76, -1, 173, -1, + 171, 173, -1, 9, -1, 8, -1, 44, -1, 3, + 44, -1, 172, -1, 175, -1, 175, 172, -1, 9, + -1, 40, -1, 41, -1, 51, 40, -1, 51, 41, + -1, 43, -1, 178, -1, 174, 178, -1, 4, -1, + 5, -1, 6, -1, 75, 104, 176, 105, -1, 177, + -1, 176, 111, 177, -1, 76, -1, 76, 113, 79, + -1, 76, 113, 80, -1, 179, -1, 179, 106, 157, + 107, -1, 55, -1, 11, -1, 12, -1, 13, -1, 10, -1, 31, -1, 32, -1, 33, -1, 25, -1, 26, -1, 27, -1, 28, -1, 29, -1, 30, -1, 34, -1, 35, -1, 36, -1, 37, -1, 38, -1, - 39, -1, 51, -1, 52, -1, 53, -1, 55, -1, - 163, -1, 60, -1, -1, 48, 59, 91, 164, 166, - 92, -1, -1, 48, 91, 165, 166, 92, -1, 167, - -1, 166, 167, -1, 156, 168, 97, -1, 169, -1, - 168, 94, 169, -1, 59, -1, 59, 89, 140, 90, - -1, 137, -1, 141, -1, 174, -1, 173, -1, 171, - -1, 183, -1, 184, -1, 187, -1, 194, -1, 91, - 92, -1, -1, -1, 91, 175, 182, 176, 92, -1, - 181, -1, 173, -1, -1, 179, 181, -1, -1, 180, - 173, -1, 91, 92, -1, 91, 182, 92, -1, 172, - -1, 182, 172, -1, 97, -1, 139, 97, -1, 19, - 87, 139, 88, 185, -1, 178, 17, 178, -1, 178, - -1, 139, -1, 152, 59, 96, 170, -1, -1, 50, - 87, 188, 186, 88, 177, -1, -1, 16, 189, 178, - 50, 87, 139, 88, 97, -1, -1, 18, 87, 190, - 191, 193, 88, 177, -1, 183, -1, 171, -1, 186, - -1, -1, 192, 97, -1, 192, 97, 139, -1, 15, - 97, -1, 14, 97, -1, 21, 97, -1, 21, 139, - 97, -1, 20, 97, -1, 196, -1, 195, 196, -1, - 197, -1, 141, -1, -1, 142, 198, 181, -1 + 39, -1, 45, -1, 46, -1, 47, -1, 48, -1, + 49, -1, 50, -1, 57, -1, 58, -1, 59, -1, + 70, -1, 61, -1, 62, -1, 63, -1, 64, -1, + 65, -1, 66, -1, 67, -1, 68, -1, 69, -1, + 72, -1, 73, -1, 74, -1, 180, -1, 77, -1, + -1, 54, 76, 108, 181, 183, 109, -1, -1, 54, + 108, 182, 183, 109, -1, 184, -1, 183, 184, -1, + 173, 185, 114, -1, 186, -1, 185, 111, 186, -1, + 76, -1, 76, 106, 157, 107, -1, 154, -1, 158, + -1, 191, -1, 190, -1, 188, -1, 200, -1, 201, + -1, 204, -1, 211, -1, 108, 109, -1, -1, -1, + 108, 192, 199, 193, 109, -1, 198, -1, 190, -1, + -1, 196, 198, -1, -1, 197, 190, -1, 108, 109, + -1, 108, 199, 109, -1, 189, -1, 199, 189, -1, + 114, -1, 156, 114, -1, 19, 104, 156, 105, 202, + -1, 195, 17, 195, -1, 195, -1, 156, -1, 169, + 76, 113, 187, -1, -1, 56, 104, 205, 203, 105, + 194, -1, -1, 16, 206, 195, 56, 104, 156, 105, + 114, -1, -1, 18, 104, 207, 208, 210, 105, 194, + -1, 200, -1, 188, -1, 203, -1, -1, 209, 114, + -1, 209, 114, 156, -1, 15, 114, -1, 14, 114, + -1, 21, 114, -1, 21, 156, 114, -1, 20, 114, + -1, 213, -1, 212, 213, -1, 214, -1, 158, -1, + -1, 159, 215, 198, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 187, 187, 222, 225, 230, 235, 240, 245, 251, - 254, 333, 336, 437, 447, 460, 468, 568, 571, 579, - 583, 590, 594, 601, 607, 616, 624, 679, 686, 696, - 699, 709, 719, 740, 741, 742, 747, 748, 757, 769, - 770, 778, 789, 793, 794, 804, 814, 824, 837, 838, - 848, 861, 865, 869, 873, 874, 887, 888, 901, 902, - 915, 916, 933, 934, 947, 948, 949, 950, 951, 955, - 958, 969, 977, 1004, 1009, 1019, 1057, 1060, 1067, 1075, - 1096, 1117, 1128, 1157, 1162, 1172, 1177, 1187, 1190, 1193, - 1196, 1202, 1209, 1212, 1234, 1252, 1276, 1299, 1303, 1321, - 1329, 1361, 1381, 1469, 1478, 1501, 1507, 1514, 1523, 1532, - 1535, 1539, 1546, 1550, 1555, 1560, 1566, 1572, 1581, 1591, - 1598, 1601, 1604, 1610, 1617, 1620, 1626, 1629, 1632, 1638, - 1641, 1656, 1660, 1664, 1668, 1672, 1676, 1681, 1686, 1691, - 1696, 1701, 1706, 1711, 1716, 1721, 1726, 1731, 1736, 1742, - 1748, 1754, 1759, 1764, 1773, 1778, 1783, 1796, 1796, 1810, - 1810, 1819, 1822, 1837, 1869, 1873, 1879, 1887, 1903, 1907, - 1911, 1912, 1918, 1919, 1920, 1921, 1922, 1926, 1927, 1927, - 1927, 1937, 1938, 1942, 1942, 1943, 1943, 1948, 1951, 1961, - 1964, 1970, 1971, 1975, 1983, 1987, 1997, 2002, 2019, 2019, - 2024, 2024, 2031, 2031, 2039, 2042, 2048, 2051, 2057, 2061, - 2068, 2075, 2082, 2089, 2100, 2109, 2113, 2120, 2123, 2129, - 2129 + 0, 190, 190, 225, 228, 233, 238, 243, 248, 254, + 257, 336, 339, 440, 450, 463, 471, 571, 574, 582, + 586, 593, 597, 604, 610, 619, 627, 696, 703, 713, + 716, 726, 736, 757, 758, 759, 764, 765, 774, 786, + 787, 795, 806, 810, 811, 821, 831, 841, 854, 855, + 865, 878, 882, 886, 890, 891, 904, 905, 918, 919, + 932, 933, 950, 951, 964, 965, 966, 967, 968, 972, + 975, 986, 994, 1021, 1026, 1036, 1074, 1077, 1084, 1092, + 1113, 1134, 1145, 1174, 1179, 1189, 1194, 1204, 1207, 1210, + 1213, 1219, 1226, 1229, 1251, 1269, 1293, 1316, 1320, 1338, + 1346, 1378, 1398, 1486, 1495, 1518, 1524, 1531, 1540, 1549, + 1552, 1556, 1563, 1567, 1572, 1577, 1583, 1589, 1598, 1608, + 1615, 1618, 1621, 1627, 1634, 1637, 1643, 1646, 1649, 1655, + 1658, 1673, 1677, 1681, 1685, 1689, 1693, 1698, 1703, 1708, + 1713, 1718, 1723, 1728, 1733, 1738, 1743, 1748, 1753, 1759, + 1765, 1771, 1777, 1783, 1789, 1795, 1801, 1807, 1812, 1817, + 1826, 1831, 1836, 1841, 1846, 1851, 1856, 1861, 1866, 1871, + 1876, 1881, 1886, 1891, 1896, 1909, 1909, 1923, 1923, 1932, + 1935, 1950, 1982, 1986, 1992, 2000, 2016, 2020, 2024, 2025, + 2031, 2032, 2033, 2034, 2035, 2039, 2040, 2040, 2040, 2050, + 2051, 2055, 2055, 2056, 2056, 2061, 2064, 2074, 2077, 2083, + 2084, 2088, 2096, 2100, 2110, 2115, 2132, 2132, 2137, 2137, + 2144, 2144, 2152, 2155, 2161, 2164, 2170, 2174, 2181, 2188, + 2195, 2202, 2213, 2222, 2226, 2233, 2236, 2242, 2242 }; #endif @@ -737,15 +762,19 @@ "SWITCH", "CASE", "DEFAULT", "BVEC2", "BVEC3", "BVEC4", "IVEC2", "IVEC3", "IVEC4", "VEC2", "VEC3", "VEC4", "UVEC2", "UVEC3", "UVEC4", "MATRIX2", "MATRIX3", "MATRIX4", "IN_QUAL", "OUT_QUAL", "INOUT_QUAL", "UNIFORM", - "VARYING", "CENTROID", "FLAT", "SMOOTH", "STRUCT", "VOID_TYPE", "WHILE", - "SAMPLER2D", "SAMPLERCUBE", "SAMPLER_EXTERNAL_OES", "SAMPLER2DRECT", - "SAMPLER3D", "SAMPLER3DRECT", "SAMPLER2DSHADOW", "LAYOUT", "IDENTIFIER", - "TYPE_NAME", "FLOATCONSTANT", "INTCONSTANT", "UINTCONSTANT", - "BOOLCONSTANT", "FIELD_SELECTION", "LEFT_OP", "RIGHT_OP", "INC_OP", - "DEC_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", - "XOR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", - "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", - "SUB_ASSIGN", "LEFT_PAREN", "RIGHT_PAREN", "LEFT_BRACKET", + "VARYING", "MATRIX2x3", "MATRIX3x2", "MATRIX2x4", "MATRIX4x2", + "MATRIX3x4", "MATRIX4x3", "CENTROID", "FLAT", "SMOOTH", "STRUCT", + "VOID_TYPE", "WHILE", "SAMPLER2D", "SAMPLERCUBE", "SAMPLER_EXTERNAL_OES", + "SAMPLER2DRECT", "SAMPLER2DARRAY", "ISAMPLER2D", "ISAMPLER3D", + "ISAMPLERCUBE", "ISAMPLER2DARRAY", "USAMPLER2D", "USAMPLER3D", + "USAMPLERCUBE", "USAMPLER2DARRAY", "SAMPLER3D", "SAMPLER3DRECT", + "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW", "SAMPLER2DARRAYSHADOW", "LAYOUT", + "IDENTIFIER", "TYPE_NAME", "FLOATCONSTANT", "INTCONSTANT", + "UINTCONSTANT", "BOOLCONSTANT", "FIELD_SELECTION", "LEFT_OP", "RIGHT_OP", + "INC_OP", "DEC_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", "AND_OP", + "OR_OP", "XOR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "ADD_ASSIGN", + "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN", + "OR_ASSIGN", "SUB_ASSIGN", "LEFT_PAREN", "RIGHT_PAREN", "LEFT_BRACKET", "RIGHT_BRACKET", "LEFT_BRACE", "RIGHT_BRACE", "DOT", "COMMA", "COLON", "EQUAL", "SEMICOLON", "BANG", "DASH", "TILDE", "PLUS", "STAR", "SLASH", "PERCENT", "LEFT_ANGLE", "RIGHT_ANGLE", "VERTICAL_BAR", "CARET", @@ -799,36 +828,38 @@ 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365 + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 111, 112, 113, 113, 113, 113, 113, 113, 114, - 114, 114, 114, 114, 114, 115, 116, 117, 117, 118, - 118, 119, 119, 120, 120, 121, 122, 122, 122, 123, - 123, 123, 123, 124, 124, 124, 125, 125, 125, 126, - 126, 126, 127, 128, 128, 128, 128, 128, 129, 129, - 129, 130, 131, 132, 133, 133, 134, 134, 135, 135, - 136, 136, 137, 137, 138, 138, 138, 138, 138, 139, - 139, 140, 141, 141, 141, 142, 143, 143, 144, 144, - 145, 146, 146, 147, 147, 147, 147, 148, 148, 148, - 148, 149, 150, 150, 150, 150, 150, 151, 151, 151, - 151, 151, 151, 152, 152, 153, 154, 154, 154, 154, - 154, 154, 155, 155, 155, 155, 155, 155, 156, 156, - 157, 157, 157, 158, 159, 159, 160, 160, 160, 161, - 161, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 164, 163, 165, - 163, 166, 166, 167, 168, 168, 169, 169, 170, 171, - 172, 172, 173, 173, 173, 173, 173, 174, 175, 176, - 174, 177, 177, 179, 178, 180, 178, 181, 181, 182, - 182, 183, 183, 184, 185, 185, 186, 186, 188, 187, - 189, 187, 190, 187, 191, 191, 192, 192, 193, 193, - 194, 194, 194, 194, 194, 195, 195, 196, 196, 198, - 197 + 0, 128, 129, 130, 130, 130, 130, 130, 130, 131, + 131, 131, 131, 131, 131, 132, 133, 134, 134, 135, + 135, 136, 136, 137, 137, 138, 139, 139, 139, 140, + 140, 140, 140, 141, 141, 141, 142, 142, 142, 143, + 143, 143, 144, 145, 145, 145, 145, 145, 146, 146, + 146, 147, 148, 149, 150, 150, 151, 151, 152, 152, + 153, 153, 154, 154, 155, 155, 155, 155, 155, 156, + 156, 157, 158, 158, 158, 159, 160, 160, 161, 161, + 162, 163, 163, 164, 164, 164, 164, 165, 165, 165, + 165, 166, 167, 167, 167, 167, 167, 168, 168, 168, + 168, 168, 168, 169, 169, 170, 171, 171, 171, 171, + 171, 171, 172, 172, 172, 172, 172, 172, 173, 173, + 174, 174, 174, 175, 176, 176, 177, 177, 177, 178, + 178, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 181, 180, 182, 180, 183, + 183, 184, 185, 185, 186, 186, 187, 188, 189, 189, + 190, 190, 190, 190, 190, 191, 192, 193, 191, 194, + 194, 196, 195, 197, 195, 198, 198, 199, 199, 200, + 200, 201, 202, 202, 203, 203, 205, 204, 206, 204, + 207, 204, 208, 208, 209, 209, 210, 210, 211, 211, + 211, 211, 211, 212, 212, 213, 213, 215, 214 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -849,14 +880,15 @@ 1, 1, 1, 4, 1, 3, 1, 3, 3, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 6, 0, - 5, 1, 2, 3, 1, 3, 1, 4, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 2, 0, 0, - 5, 1, 1, 0, 2, 0, 2, 2, 3, 1, - 2, 1, 2, 5, 3, 1, 1, 4, 0, 6, - 0, 8, 0, 7, 1, 1, 1, 0, 2, 3, - 2, 2, 2, 3, 2, 1, 2, 1, 1, 0, - 3 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 0, 6, 0, 5, 1, + 2, 3, 1, 3, 1, 4, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 0, 0, 5, 1, + 1, 0, 2, 0, 2, 2, 3, 1, 2, 1, + 2, 5, 3, 1, 1, 4, 0, 6, 0, 8, + 0, 7, 1, 1, 1, 0, 2, 3, 2, 2, + 2, 3, 2, 1, 2, 1, 1, 0, 3 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -867,453 +899,527 @@ 0, 0, 120, 121, 122, 0, 106, 112, 135, 132, 133, 134, 139, 140, 141, 142, 143, 144, 136, 137, 138, 145, 146, 147, 148, 149, 150, 113, 114, 117, - 107, 0, 0, 131, 151, 152, 153, 154, 0, 156, - 218, 219, 0, 77, 87, 0, 92, 97, 0, 109, - 103, 0, 110, 118, 129, 155, 0, 215, 217, 108, - 102, 0, 115, 116, 0, 159, 0, 72, 0, 75, - 87, 105, 88, 89, 90, 78, 0, 87, 0, 73, - 98, 104, 119, 111, 0, 1, 216, 0, 157, 0, - 126, 0, 124, 0, 220, 79, 84, 86, 91, 0, - 93, 80, 0, 0, 2, 6, 4, 5, 7, 28, - 0, 0, 0, 35, 34, 33, 3, 9, 29, 11, - 16, 17, 0, 0, 22, 0, 36, 0, 39, 42, - 43, 48, 51, 52, 53, 54, 56, 58, 60, 71, - 0, 26, 74, 0, 0, 0, 161, 0, 123, 0, - 0, 0, 200, 0, 0, 0, 0, 0, 178, 187, - 191, 36, 62, 69, 0, 169, 0, 129, 172, 189, - 171, 170, 0, 173, 174, 175, 176, 81, 83, 85, - 0, 0, 99, 0, 168, 101, 30, 31, 0, 13, - 14, 0, 0, 20, 19, 0, 21, 23, 25, 32, + 107, 151, 152, 153, 154, 155, 156, 0, 0, 131, + 157, 158, 159, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 160, 170, 171, 172, 0, 174, 236, 237, + 0, 77, 87, 0, 92, 97, 0, 109, 103, 0, + 110, 118, 129, 173, 0, 233, 235, 108, 102, 0, + 115, 116, 0, 177, 0, 72, 0, 75, 87, 105, + 88, 89, 90, 78, 0, 87, 0, 73, 98, 104, + 119, 111, 0, 1, 234, 0, 175, 0, 126, 0, + 124, 0, 238, 79, 84, 86, 91, 0, 93, 80, + 0, 0, 2, 6, 4, 5, 7, 28, 0, 0, + 0, 35, 34, 33, 3, 9, 29, 11, 16, 17, + 0, 0, 22, 0, 36, 0, 39, 42, 43, 48, + 51, 52, 53, 54, 56, 58, 60, 71, 0, 26, + 74, 0, 0, 0, 179, 0, 123, 0, 0, 0, + 218, 0, 0, 0, 0, 0, 196, 205, 209, 36, + 62, 69, 0, 187, 0, 129, 190, 207, 189, 188, + 0, 191, 192, 193, 194, 81, 83, 85, 0, 0, + 99, 0, 186, 101, 30, 31, 0, 13, 14, 0, + 0, 20, 19, 0, 21, 23, 25, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 130, 0, 166, 0, 164, 160, - 162, 127, 128, 125, 211, 210, 185, 202, 0, 214, - 212, 0, 198, 177, 0, 65, 66, 67, 68, 64, - 0, 0, 192, 188, 190, 0, 94, 0, 96, 100, - 8, 0, 15, 27, 12, 18, 24, 37, 38, 41, - 40, 46, 47, 44, 45, 49, 50, 55, 57, 59, - 0, 158, 0, 0, 163, 0, 0, 0, 0, 0, - 213, 0, 179, 63, 70, 0, 95, 10, 0, 0, - 165, 0, 184, 186, 205, 204, 207, 185, 0, 196, - 0, 0, 0, 82, 61, 167, 0, 206, 0, 0, - 195, 193, 0, 0, 180, 0, 208, 0, 185, 0, - 182, 199, 181, 0, 209, 203, 194, 197, 201 + 0, 0, 130, 0, 184, 0, 182, 178, 180, 127, + 128, 125, 229, 228, 203, 220, 0, 232, 230, 0, + 216, 195, 0, 65, 66, 67, 68, 64, 0, 0, + 210, 206, 208, 0, 94, 0, 96, 100, 8, 0, + 15, 27, 12, 18, 24, 37, 38, 41, 40, 46, + 47, 44, 45, 49, 50, 55, 57, 59, 0, 176, + 0, 0, 181, 0, 0, 0, 0, 0, 231, 0, + 197, 63, 70, 0, 95, 10, 0, 0, 183, 0, + 202, 204, 223, 222, 225, 203, 0, 214, 0, 0, + 0, 82, 61, 185, 0, 224, 0, 0, 213, 211, + 0, 0, 198, 0, 226, 0, 203, 0, 200, 217, + 199, 0, 227, 221, 212, 215, 219 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 116, 117, 118, 251, 119, 120, 121, 122, 123, - 124, 125, 161, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 162, 163, 240, 164, 140, - 165, 166, 42, 43, 44, 96, 75, 76, 97, 45, - 46, 47, 77, 48, 49, 50, 51, 52, 91, 92, - 53, 141, 55, 143, 89, 145, 146, 217, 218, 185, - 168, 169, 170, 171, 234, 302, 321, 275, 276, 277, - 322, 172, 173, 174, 311, 301, 175, 281, 226, 278, - 296, 308, 309, 176, 56, 57, 58, 68 + -1, 134, 135, 136, 269, 137, 138, 139, 140, 141, + 142, 143, 179, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 180, 181, 258, 182, 158, + 183, 184, 60, 61, 62, 114, 93, 94, 115, 63, + 64, 65, 95, 66, 67, 68, 69, 70, 109, 110, + 71, 159, 73, 161, 107, 163, 164, 235, 236, 203, + 186, 187, 188, 189, 252, 320, 339, 293, 294, 295, + 340, 190, 191, 192, 329, 319, 193, 299, 244, 296, + 314, 326, 327, 194, 74, 75, 76, 86 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -282 +#define YYPACT_NINF -298 static const yytype_int16 yypact[] = { - 1461, -26, -282, -282, -282, 67, -282, -282, -282, -282, - -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, - -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, - -282, 76, -44, -282, -282, -282, -282, -282, 1, -282, - -282, -5, 7, -32, -2, -39, -282, 50, 1518, -282, - -282, 1615, 34, -282, 14, -282, 1403, -282, -282, -282, - -282, 1615, -282, -282, 51, -282, 85, -282, 73, -282, - 56, -282, -282, -282, -282, -282, 1518, 113, 88, -282, - 15, -282, -282, -282, 1127, -282, -282, 71, -282, 1518, - 75, -62, -282, 315, -282, -282, -282, -282, 110, 1518, - -68, -282, 211, 1127, 87, -282, -282, -282, -282, -282, - 1127, 1127, 1127, -282, -282, -282, -282, -282, -23, -282, - -282, -282, 89, -25, 1205, 91, -282, 1127, 21, -70, - -282, -46, 84, -282, -282, -282, 102, 103, -61, -282, - 92, -282, -282, 1518, 122, 1283, -282, 96, -282, 85, - 86, 94, -282, 97, 98, 99, 968, 101, 106, -282, - -282, 5, -282, -282, -7, -282, -5, -45, -282, -282, - -282, -282, 414, -282, -282, -282, -282, 100, -282, -282, - 1046, 1127, -282, 104, -282, -282, -282, -282, 18, -282, - -282, 1127, 1564, -282, -282, 1127, 108, -282, -282, -282, - 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, - 1127, 1127, 1127, 1127, -282, 1335, 112, 24, -282, -282, - -282, -282, -282, -282, -282, -282, 95, -282, 1127, -282, - -282, 44, -282, -282, 513, -282, -282, -282, -282, -282, - 1127, 1127, -282, -282, -282, 1127, -282, 109, -282, -282, - -282, 114, 111, -282, 115, -282, -282, -282, -282, 21, - 21, -282, -282, -282, -282, -46, -46, -282, 102, 103, - 66, -282, 1127, 122, -282, 143, 73, 711, 810, 25, - -282, 890, 513, -282, -282, 116, -282, -282, 1127, 117, - -282, 121, -282, -282, -282, -282, 890, 95, 159, 111, - 152, 124, 125, -282, -282, -282, 1127, -282, 119, 126, - 196, -282, 123, 612, -282, 26, 1127, 612, 95, 1127, - -282, -282, -282, 128, 111, -282, -282, -282, -282 + 1733, -11, -298, -298, -298, 115, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, 109, -38, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -84, -298, -298, -86, + -63, -55, 4, -74, -298, 17, 1807, -298, -298, 1943, + 7, -298, -30, -298, 1658, -298, -298, -298, -298, 1943, + -298, -298, 30, -298, 67, -298, 54, -298, 22, -298, + -298, -298, -298, -298, 1807, 105, 88, -298, -15, -298, + -298, -298, 1298, -298, -298, 57, -298, 1807, 55, -90, + -298, 333, -298, -298, -298, -298, 96, 1807, -72, -298, + 212, 1298, 69, -298, -298, -298, -298, -298, 1298, 1298, + 1298, -298, -298, -298, -298, -298, -18, -298, -298, -298, + 72, -82, 1393, 70, -298, 1298, 32, 6, -298, -62, + 64, -298, -298, -298, 87, 86, -78, -298, 73, -298, + -298, 1807, 106, 1488, -298, 76, -298, 67, 71, 75, + -298, 77, 79, 80, 1105, 82, 78, -298, -298, -23, + -298, -298, -57, -298, -86, -3, -298, -298, -298, -298, + 449, -298, -298, -298, -298, 89, -298, -298, 1200, 1298, + -298, 91, -298, -298, -298, -298, -9, -298, -298, 1298, + 1875, -298, -298, 1298, 92, -298, -298, -298, 1298, 1298, + 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, + 1298, 1298, -298, 1573, 93, -36, -298, -298, -298, -298, + -298, -298, -298, -298, 85, -298, 1298, -298, -298, 28, + -298, -298, 565, -298, -298, -298, -298, -298, 1298, 1298, + -298, -298, -298, 1298, -298, 95, -298, -298, -298, 97, + 94, -298, 99, -298, -298, -298, -298, 32, 32, -298, + -298, -298, -298, -62, -62, -298, 87, 86, 46, -298, + 1298, 106, -298, 128, 54, 797, 913, -1, -298, 1010, + 565, -298, -298, 100, -298, -298, 1298, 101, -298, 102, + -298, -298, -298, -298, 1010, 85, 156, 94, 134, 107, + 104, -298, -298, -298, 1298, -298, 103, 110, 197, -298, + 108, 681, -298, 1, 1298, 681, 85, 1298, -298, -298, + -298, 112, 94, -298, -298, -298, -298 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -282, -282, -282, -282, -282, -282, -282, 28, -282, -282, - -282, -282, -75, -282, -40, -282, -55, -42, -282, -282, - -282, 16, 17, 19, -282, -80, -101, -282, -106, -99, - 11, 12, -282, -282, -282, 130, 157, 153, 133, -282, - -282, -262, -282, -282, 181, -35, 230, -282, -282, 105, - -31, 0, -282, -282, -282, 118, -137, -282, -22, -171, - -21, -167, -260, -282, -282, -282, -65, -281, -282, -282, - -67, 22, -20, -282, -282, -43, -282, -282, -282, -282, - -282, -282, -282, -282, -282, 199, -282, -282 + -298, -298, -298, -298, -298, -298, -298, 18, -298, -298, + -298, -298, -93, -298, -61, -298, -109, -60, -298, -298, + -298, -12, -2, -10, -298, -98, -118, -298, -123, -115, + 10, 11, -298, -298, -298, 113, 130, 136, 117, -298, + -298, -282, -298, -298, 159, -64, 227, -298, -298, 68, + 8, 0, -298, -298, -298, 111, -151, -298, -37, -193, + -43, -182, -276, -298, -298, -298, -99, -297, -298, -298, + -85, 3, -40, -298, -298, -51, -298, -298, -298, -298, + -298, -298, -298, -298, -298, 190, -298, -298 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -184 +#define YYTABLE_NINF -202 static const yytype_int16 yytable[] = { - 54, 94, 184, 183, 139, 244, 188, 71, 220, 126, - 248, 40, 41, 81, 212, 64, 310, 293, 59, 300, - 82, 180, 139, 197, 204, 205, 148, 126, 181, 202, - 87, 203, 149, 60, 300, 186, 187, 326, 72, 73, - 74, 98, -26, 7, 84, 189, 190, 65, 54, 213, - 231, 54, 199, 320, 144, 78, 54, 320, 79, 206, - 207, 54, 70, 194, 98, 71, 191, 40, 41, 195, - 192, 2, 3, 4, 27, 28, 54, 29, 220, 31, - 184, 247, 235, 236, 237, 252, -76, 241, 66, 54, - 242, 238, 67, 167, 256, 69, 72, 73, 74, 54, - 139, 239, 101, 84, 102, 126, 250, 270, 144, 80, - 144, 103, 241, 297, 323, 244, 62, 63, 273, 241, - 241, 274, 279, 200, 201, 257, 258, 126, 126, 126, - 126, 126, 126, 126, 126, 126, 126, 126, 241, 283, - 284, 280, 88, 54, 90, 54, 285, 100, 327, 261, - 262, 263, 264, 72, 73, 74, 208, 209, 221, 222, - 241, 288, 259, 260, 93, 139, 265, 266, 142, 177, - 126, 147, 167, 289, -27, 299, 210, 193, 198, 211, - 144, 216, 214, 224, 227, 228, -183, 304, 232, 245, - 299, 225, 139, 291, 249, -131, 229, 126, 233, 286, - 315, 272, -28, 59, 287, 241, 303, 305, 306, 292, - 324, 312, 313, 318, 317, 54, 316, 314, 184, 319, - 255, 8, 9, 10, 11, 328, 267, 95, 268, 178, - 99, 269, 179, 83, 167, 61, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 290, 325, 307, 223, 86, 282, 294, 295, 32, - 33, 215, 34, 35, 36, 0, 37, 0, 0, 0, - 104, 39, 105, 106, 107, 108, 109, 167, 167, 110, - 111, 167, 167, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 167, 0, 112, 0, - 0, 182, 0, 0, 0, 0, 0, 0, 0, 113, - 114, 0, 115, 167, 0, 0, 0, 167, 1, 2, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 150, - 151, 152, 0, 153, 154, 155, 156, 0, 0, 0, + 72, 112, 99, 202, 157, 201, 266, 206, 262, 144, + 58, 59, 238, 89, 230, 166, 7, 318, 328, 311, + 84, 167, 157, 212, 215, 222, 223, 144, 85, 213, + 116, 89, 318, 77, 198, 204, 205, 96, 82, 344, + 97, 199, 87, 162, 90, 91, 92, 27, 28, 231, + 29, 249, 217, 116, 259, 338, 88, 260, 37, 338, + 224, 225, 90, 91, 92, 78, 72, 207, 208, 72, + 83, 253, 254, 255, 72, 291, 102, 100, 292, 72, + 256, 202, 238, 265, 58, 59, 270, 105, 209, 119, + 257, 120, 210, 98, 72, 274, 268, 162, 121, 162, + 157, -26, 259, 102, 315, 144, 341, 72, 288, -76, + 259, 185, 259, 279, 280, 281, 282, 72, 262, 2, + 3, 4, 220, 297, 221, 275, 276, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, 106, 259, + 301, 302, 298, 108, 345, 90, 91, 92, 303, 80, + 81, 218, 219, 226, 227, 239, 240, 259, 306, 277, + 278, 72, 111, 72, 118, 157, 283, 284, 165, 162, + 144, 160, 195, -27, 216, 307, 317, 211, 228, 229, + 232, 245, 234, 246, 309, 242, 250, 251, 322, 243, + 185, 317, 157, -201, 247, 263, -131, 144, 267, 290, + 77, 333, 304, -28, 305, 259, 324, 321, 323, 310, + 330, 342, 331, 332, 336, 335, 285, 334, 113, 202, + 287, 337, 8, 9, 10, 11, 346, 286, 273, 101, + 196, 117, 79, 72, 197, 241, 343, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 185, 312, 308, 300, 313, 31, 32, 33, + 34, 35, 36, 325, 104, 0, 38, 39, 0, 40, + 41, 42, 233, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 0, 53, 54, 55, 0, 122, 57, + 123, 124, 125, 126, 127, 185, 185, 128, 129, 185, + 185, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 185, 0, 130, 0, 0, 200, + 0, 0, 0, 0, 0, 0, 0, 131, 132, 0, + 133, 185, 0, 0, 0, 185, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 168, 169, 170, + 0, 171, 172, 173, 174, 0, 0, 0, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 0, 0, 38, 39, 175, + 40, 41, 42, 0, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 0, 53, 54, 55, 56, 122, + 57, 123, 124, 125, 126, 127, 0, 0, 128, 129, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 130, 0, 0, + 0, 176, 177, 0, 0, 0, 0, 178, 131, 132, + 0, 133, 1, 2, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 168, 169, 170, 0, 171, 172, 173, + 174, 0, 0, 0, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 0, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 0, 0, 38, 39, 175, 40, 41, 42, 0, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 0, 53, 54, 55, 56, 122, 57, 123, 124, 125, + 126, 127, 0, 0, 128, 129, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 130, 0, 0, 0, 176, 261, 0, + 0, 0, 0, 178, 131, 132, 0, 133, 1, 2, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 168, + 169, 170, 0, 171, 172, 173, 174, 0, 0, 0, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 0, 29, 30, - 31, 0, 0, 32, 33, 157, 34, 35, 36, 0, - 37, 0, 0, 38, 104, 39, 105, 106, 107, 108, - 109, 0, 0, 110, 111, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 112, 0, 0, 0, 158, 159, 0, 0, - 0, 0, 160, 113, 114, 0, 115, 1, 2, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 150, 151, - 152, 0, 153, 154, 155, 156, 0, 0, 0, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 0, 29, 30, 31, - 0, 0, 32, 33, 157, 34, 35, 36, 0, 37, - 0, 0, 38, 104, 39, 105, 106, 107, 108, 109, - 0, 0, 110, 111, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 112, 0, 0, 0, 158, 243, 0, 0, 0, - 0, 160, 113, 114, 0, 115, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 150, 151, 152, - 0, 153, 154, 155, 156, 0, 0, 0, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 0, 29, 30, 31, 0, - 0, 32, 33, 157, 34, 35, 36, 0, 37, 0, - 0, 38, 104, 39, 105, 106, 107, 108, 109, 0, - 0, 110, 111, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 112, 0, 0, 0, 158, 0, 0, 0, 0, 0, - 160, 113, 114, 0, 115, 1, 2, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 150, 151, 152, 0, - 153, 154, 155, 156, 0, 0, 0, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 0, 29, 30, 31, 0, 0, - 32, 33, 157, 34, 35, 36, 0, 37, 0, 0, - 38, 104, 39, 105, 106, 107, 108, 109, 0, 0, - 110, 111, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, - 0, 0, 0, 93, 0, 0, 0, 0, 0, 160, - 113, 114, 0, 115, 1, 2, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 150, 151, 152, 0, 153, - 154, 155, 156, 0, 0, 0, 12, 13, 14, 15, + 31, 32, 33, 34, 35, 36, 37, 0, 0, 38, + 39, 175, 40, 41, 42, 0, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 0, 53, 54, 55, + 56, 122, 57, 123, 124, 125, 126, 127, 0, 0, + 128, 129, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, + 0, 0, 0, 176, 0, 0, 0, 0, 0, 178, + 131, 132, 0, 133, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 168, 169, 170, 0, 171, + 172, 173, 174, 0, 0, 0, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 0, 29, 30, 31, 0, 0, 32, - 33, 157, 34, 35, 36, 0, 37, 0, 0, 38, - 104, 39, 105, 106, 107, 108, 109, 0, 0, 110, - 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 112, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 160, 113, - 114, 0, 115, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 0, 29, 30, 31, 0, 0, 32, 33, - 0, 34, 35, 36, 0, 37, 0, 0, 38, 104, - 39, 105, 106, 107, 108, 109, 0, 0, 110, 111, + 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 0, 0, 38, 39, 175, 40, 41, + 42, 0, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 0, 53, 54, 55, 56, 122, 57, 123, + 124, 125, 126, 127, 0, 0, 128, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 298, 2, 3, 4, 112, 6, 7, - 8, 9, 10, 11, 0, 0, 0, 160, 113, 114, - 0, 115, 0, 0, 0, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 0, 29, 30, 31, 0, 0, 32, 33, - 0, 34, 35, 36, 0, 37, 0, 0, 38, 104, - 39, 105, 106, 107, 108, 109, 0, 0, 110, 111, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 112, 8, 9, - 10, 11, 0, 0, 0, 0, 0, 0, 113, 114, - 0, 115, 0, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 33, 0, 34, - 35, 36, 0, 37, 0, 0, 0, 104, 39, 105, - 106, 107, 108, 109, 0, 0, 110, 111, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 112, 8, 9, 10, 11, - 0, 0, 0, 0, 0, 230, 113, 114, 0, 115, - 0, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 0, 0, 0, 0, - 0, 0, 0, 0, 32, 33, 0, 34, 35, 36, - 0, 37, 0, 0, 0, 104, 39, 105, 106, 107, - 108, 109, 0, 0, 110, 111, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 112, 0, 0, 246, 8, 9, 10, - 11, 0, 0, 0, 113, 114, 0, 115, 0, 0, + 0, 0, 0, 0, 0, 130, 0, 0, 0, 111, + 0, 0, 0, 0, 0, 178, 131, 132, 0, 133, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 168, 169, 170, 0, 171, 172, 173, 174, 0, 0, 0, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 32, 33, 0, 34, 35, - 36, 0, 37, 0, 0, 0, 104, 39, 105, 106, - 107, 108, 109, 0, 0, 110, 111, 0, 0, 0, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 0, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 0, + 0, 38, 39, 175, 40, 41, 42, 0, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 0, 53, + 54, 55, 56, 122, 57, 123, 124, 125, 126, 127, + 0, 0, 128, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 112, 8, 9, 10, 11, 0, - 0, 0, 0, 0, 0, 113, 114, 0, 115, 0, + 0, 130, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 178, 131, 132, 0, 133, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 0, 0, 38, 39, 0, + 40, 41, 42, 0, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 0, 53, 54, 55, 56, 122, + 57, 123, 124, 125, 126, 127, 0, 0, 128, 129, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 316, 2, 3, 4, 130, 6, 7, + 8, 9, 10, 11, 0, 0, 0, 178, 131, 132, + 0, 133, 0, 0, 0, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 0, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 0, 0, 38, 39, 0, 40, 41, 42, + 0, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 0, 53, 54, 55, 56, 122, 57, 123, 124, + 125, 126, 127, 0, 0, 128, 129, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 130, 8, 9, 10, 11, 0, + 0, 0, 0, 0, 0, 131, 132, 0, 133, 0, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 0, 0, 0, 0, - 0, 0, 0, 32, 196, 0, 34, 35, 36, 0, - 37, 0, 0, 0, 104, 39, 105, 106, 107, 108, - 109, 0, 0, 110, 111, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, - 0, 0, 112, 8, 9, 10, 11, 0, 0, 0, - 0, 0, 0, 113, 114, 0, 115, 0, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 32, 33, 0, 34, 35, 36, 0, 37, 2, - 3, 4, 0, 39, 0, 8, 9, 10, 11, 0, + 31, 32, 33, 34, 35, 36, 0, 0, 0, 38, + 39, 0, 40, 41, 42, 0, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 0, 53, 54, 55, + 0, 122, 57, 123, 124, 125, 126, 127, 0, 0, + 128, 129, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, + 8, 9, 10, 11, 0, 0, 0, 0, 0, 248, + 131, 132, 0, 133, 0, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 0, 0, 0, 0, 0, 31, 32, 33, 34, 35, + 36, 0, 0, 0, 38, 39, 0, 40, 41, 42, + 0, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 0, 53, 54, 55, 0, 122, 57, 123, 124, + 125, 126, 127, 0, 0, 128, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 219, 0, 0, 0, 0, - 0, 0, 0, 32, 33, 0, 34, 35, 36, 0, - 37, 0, 0, 0, 0, 39, 0, 0, 0, 0, - 0, 0, 0, 85, 0, 0, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 271, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 0, 29, 30, 31, 0, - 0, 32, 33, 0, 34, 35, 36, 0, 37, 0, - 0, 38, 0, 39, 1, 2, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 0, 29, 30, 31, 0, 0, 32, - 33, 0, 34, 35, 36, 0, 37, 0, 0, 38, - 0, 39, 2, 3, 4, 0, 0, 0, 8, 9, - 10, 11, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 130, 0, 0, 264, 8, 9, + 10, 11, 0, 0, 0, 131, 132, 0, 133, 0, 0, 0, 0, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 33, 0, 34, - 35, 36, 0, 37, 8, 9, 10, 11, 39, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 0, 0, 0, 0, 0, 0, - 0, 0, 32, 33, 0, 34, 35, 36, 0, 37, - 0, 0, 0, 253, 39, 8, 9, 10, 11, 254, + 0, 0, 0, 31, 32, 33, 34, 35, 36, 0, + 0, 0, 38, 39, 0, 40, 41, 42, 0, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, + 53, 54, 55, 0, 122, 57, 123, 124, 125, 126, + 127, 0, 0, 128, 129, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 130, 8, 9, 10, 11, 0, 0, 0, + 0, 0, 0, 131, 132, 0, 133, 0, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 0, 0, 0, 0, 0, 31, 32, + 33, 34, 35, 36, 0, 0, 0, 38, 214, 0, + 40, 41, 42, 0, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 0, 53, 54, 55, 0, 122, + 57, 123, 124, 125, 126, 127, 0, 0, 128, 129, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2, 3, 4, 0, 0, 130, 8, 9, + 10, 11, 0, 0, 0, 0, 0, 0, 131, 132, + 0, 133, 0, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 0, 0, + 0, 0, 0, 31, 32, 33, 34, 35, 36, 0, + 0, 0, 38, 39, 0, 40, 41, 42, 0, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, + 53, 54, 55, 0, 0, 57, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, + 0, 0, 0, 8, 9, 10, 11, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 237, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 0, 0, 0, 0, 0, 31, 32, + 33, 34, 35, 36, 0, 0, 0, 38, 39, 0, + 40, 41, 42, 0, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 0, 53, 54, 55, 0, 0, + 57, 0, 0, 0, 0, 0, 0, 0, 103, 0, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 289, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 0, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 0, 0, 38, 39, 0, 40, 41, 42, 0, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, + 53, 54, 55, 56, 0, 57, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 0, 0, 38, 39, 0, + 40, 41, 42, 0, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 0, 53, 54, 55, 56, 0, + 57, 2, 3, 4, 0, 0, 0, 8, 9, 10, + 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 0, 0, 0, + 0, 0, 31, 32, 33, 34, 35, 36, 0, 0, + 0, 38, 39, 0, 40, 41, 42, 0, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 0, 53, + 54, 55, 0, 0, 57, 8, 9, 10, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 0, 0, 0, 0, - 0, 0, 0, 32, 33, 0, 34, 35, 36, 0, - 37, 0, 0, 0, 0, 39 + 31, 32, 33, 34, 35, 36, 0, 0, 0, 38, + 39, 0, 40, 41, 42, 0, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 0, 53, 54, 55, + 0, 271, 57, 8, 9, 10, 11, 272, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 0, 0, 0, 0, 0, 31, 32, + 33, 34, 35, 36, 0, 0, 0, 38, 39, 0, + 40, 41, 42, 0, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 0, 53, 54, 55, 0, 0, + 57 }; static const yytype_int16 yycheck[] = { - 0, 68, 103, 102, 84, 172, 112, 9, 145, 84, - 181, 0, 0, 48, 75, 59, 297, 277, 44, 281, - 51, 89, 102, 124, 70, 71, 88, 102, 96, 99, - 61, 101, 94, 59, 296, 110, 111, 318, 40, 41, - 42, 76, 87, 9, 89, 68, 69, 91, 48, 110, - 156, 51, 127, 313, 89, 94, 56, 317, 97, 105, - 106, 61, 94, 88, 99, 9, 89, 56, 56, 94, - 93, 4, 5, 6, 40, 41, 76, 43, 215, 45, - 181, 180, 77, 78, 79, 191, 88, 94, 87, 89, - 97, 86, 97, 93, 195, 88, 40, 41, 42, 99, - 180, 96, 87, 89, 89, 180, 88, 213, 143, 59, - 145, 96, 94, 88, 88, 282, 40, 41, 94, 94, - 94, 97, 228, 102, 103, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 94, 240, - 241, 97, 91, 143, 59, 145, 245, 59, 319, 204, - 205, 206, 207, 40, 41, 42, 72, 73, 62, 63, - 94, 95, 202, 203, 91, 245, 208, 209, 97, 59, - 245, 96, 172, 272, 87, 281, 74, 88, 87, 76, - 215, 59, 90, 97, 87, 87, 91, 288, 87, 89, - 296, 97, 272, 50, 90, 87, 97, 272, 92, 90, - 306, 89, 87, 44, 90, 94, 90, 90, 87, 276, - 316, 59, 88, 17, 88, 215, 97, 92, 319, 96, - 192, 10, 11, 12, 13, 97, 210, 70, 211, 99, - 77, 212, 99, 52, 234, 5, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 273, 317, 296, 149, 56, 234, 278, 278, 48, - 49, 143, 51, 52, 53, -1, 55, -1, -1, -1, - 59, 60, 61, 62, 63, 64, 65, 277, 278, 68, - 69, 281, 282, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 296, -1, 87, -1, - -1, 90, -1, -1, -1, -1, -1, -1, -1, 98, - 99, -1, 101, 313, -1, -1, -1, 317, 3, 4, + 0, 86, 66, 121, 102, 120, 199, 130, 190, 102, + 0, 0, 163, 9, 92, 105, 9, 299, 315, 295, + 104, 111, 120, 105, 142, 87, 88, 120, 114, 111, + 94, 9, 314, 44, 106, 128, 129, 111, 76, 336, + 114, 113, 105, 107, 40, 41, 42, 40, 41, 127, + 43, 174, 145, 117, 111, 331, 111, 114, 51, 335, + 122, 123, 40, 41, 42, 76, 66, 85, 86, 69, + 108, 94, 95, 96, 74, 111, 106, 69, 114, 79, + 103, 199, 233, 198, 74, 74, 209, 79, 106, 104, + 113, 106, 110, 76, 94, 213, 105, 161, 113, 163, + 198, 104, 111, 106, 105, 198, 105, 107, 231, 105, + 111, 111, 111, 222, 223, 224, 225, 117, 300, 4, + 5, 6, 116, 246, 118, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 108, 111, + 258, 259, 114, 76, 337, 40, 41, 42, 263, 40, + 41, 119, 120, 89, 90, 79, 80, 111, 112, 220, + 221, 161, 108, 163, 76, 263, 226, 227, 113, 233, + 263, 114, 76, 104, 104, 290, 299, 105, 91, 93, + 107, 104, 76, 104, 56, 114, 104, 109, 306, 114, + 190, 314, 290, 108, 114, 106, 104, 290, 107, 106, + 44, 324, 107, 104, 107, 111, 104, 107, 107, 294, + 76, 334, 105, 109, 17, 105, 228, 114, 88, 337, + 230, 113, 10, 11, 12, 13, 114, 229, 210, 70, + 117, 95, 5, 233, 117, 167, 335, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 252, 296, 291, 252, 296, 45, 46, 47, + 48, 49, 50, 314, 74, -1, 54, 55, -1, 57, + 58, 59, 161, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, -1, 72, 73, 74, -1, 76, 77, + 78, 79, 80, 81, 82, 295, 296, 85, 86, 299, + 300, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 314, -1, 104, -1, -1, 107, + -1, -1, -1, -1, -1, -1, -1, 115, 116, -1, + 118, 331, -1, -1, -1, 335, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + -1, 18, 19, 20, 21, -1, -1, -1, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, -1, 43, 44, 45, 46, + 47, 48, 49, 50, 51, -1, -1, 54, 55, 56, + 57, 58, 59, -1, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, -1, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, + -1, 108, 109, -1, -1, -1, -1, 114, 115, 116, + -1, 118, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, + 21, -1, -1, -1, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, -1, 43, 44, 45, 46, 47, 48, 49, 50, + 51, -1, -1, 54, 55, 56, 57, 58, 59, -1, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + -1, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 104, -1, -1, -1, 108, 109, -1, + -1, -1, -1, 114, 115, 116, -1, 118, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, -1, -1, -1, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, -1, 43, 44, - 45, -1, -1, 48, 49, 50, 51, 52, 53, -1, - 55, -1, -1, 58, 59, 60, 61, 62, 63, 64, - 65, -1, -1, 68, 69, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 87, -1, -1, -1, 91, 92, -1, -1, - -1, -1, 97, 98, 99, -1, 101, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, -1, 18, 19, 20, 21, -1, -1, -1, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, -1, 43, 44, 45, - -1, -1, 48, 49, 50, 51, 52, 53, -1, 55, - -1, -1, 58, 59, 60, 61, 62, 63, 64, 65, - -1, -1, 68, 69, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 87, -1, -1, -1, 91, 92, -1, -1, -1, - -1, 97, 98, 99, -1, 101, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - -1, 18, 19, 20, 21, -1, -1, -1, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, -1, 43, 44, 45, -1, - -1, 48, 49, 50, 51, 52, 53, -1, 55, -1, - -1, 58, 59, 60, 61, 62, 63, 64, 65, -1, - -1, 68, 69, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 87, -1, -1, -1, 91, -1, -1, -1, -1, -1, - 97, 98, 99, -1, 101, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, - 18, 19, 20, 21, -1, -1, -1, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, -1, 43, 44, 45, -1, -1, - 48, 49, 50, 51, 52, 53, -1, 55, -1, -1, - 58, 59, 60, 61, 62, 63, 64, 65, -1, -1, - 68, 69, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 87, - -1, -1, -1, 91, -1, -1, -1, -1, -1, 97, - 98, 99, -1, 101, 3, 4, 5, 6, 7, 8, + 45, 46, 47, 48, 49, 50, 51, -1, -1, 54, + 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, -1, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, -1, -1, + 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 104, + -1, -1, -1, 108, -1, -1, -1, -1, -1, 114, + 115, 116, -1, 118, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, -1, -1, -1, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, -1, 43, 44, 45, -1, -1, 48, - 49, 50, 51, 52, 53, -1, 55, -1, -1, 58, - 59, 60, 61, 62, 63, 64, 65, -1, -1, 68, - 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 87, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 97, 98, - 99, -1, 101, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, -1, 43, 44, 45, -1, -1, 48, 49, - -1, 51, 52, 53, -1, 55, -1, -1, 58, 59, - 60, 61, 62, 63, 64, 65, -1, -1, 68, 69, + 39, 40, 41, -1, 43, 44, 45, 46, 47, 48, + 49, 50, 51, -1, -1, 54, 55, 56, 57, 58, + 59, -1, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, -1, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 3, 4, 5, 6, 87, 8, 9, - 10, 11, 12, 13, -1, -1, -1, 97, 98, 99, - -1, 101, -1, -1, -1, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, -1, 43, 44, 45, -1, -1, 48, 49, - -1, 51, 52, 53, -1, 55, -1, -1, 58, 59, - 60, 61, 62, 63, 64, 65, -1, -1, 68, 69, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 87, 10, 11, - 12, 13, -1, -1, -1, -1, -1, -1, 98, 99, - -1, 101, -1, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, - -1, -1, -1, -1, -1, -1, 48, 49, -1, 51, - 52, 53, -1, 55, -1, -1, -1, 59, 60, 61, - 62, 63, 64, 65, -1, -1, 68, 69, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 87, 10, 11, 12, 13, - -1, -1, -1, -1, -1, 97, 98, 99, -1, 101, - -1, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, -1, -1, -1, -1, - -1, -1, -1, -1, 48, 49, -1, 51, 52, 53, - -1, 55, -1, -1, -1, 59, 60, 61, 62, 63, - 64, 65, -1, -1, 68, 69, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 87, -1, -1, 90, 10, 11, 12, - 13, -1, -1, -1, 98, 99, -1, 101, -1, -1, + -1, -1, -1, -1, -1, 104, -1, -1, -1, 108, + -1, -1, -1, -1, -1, 114, 115, 116, -1, 118, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, -1, 18, 19, 20, 21, -1, -1, -1, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, -1, -1, -1, - -1, -1, -1, -1, -1, 48, 49, -1, 51, 52, - 53, -1, 55, -1, -1, -1, 59, 60, 61, 62, - 63, 64, 65, -1, -1, 68, 69, -1, -1, -1, + 33, 34, 35, 36, 37, 38, 39, 40, 41, -1, + 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, + -1, 54, 55, 56, 57, 58, 59, -1, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, -1, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 87, 10, 11, 12, 13, -1, - -1, -1, -1, -1, -1, 98, 99, -1, 101, -1, + -1, 104, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 114, 115, 116, -1, 118, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, -1, 43, 44, 45, 46, + 47, 48, 49, 50, 51, -1, -1, 54, 55, -1, + 57, 58, 59, -1, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, -1, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 3, 4, 5, 6, 104, 8, 9, + 10, 11, 12, 13, -1, -1, -1, 114, 115, 116, + -1, 118, -1, -1, -1, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, + 50, 51, -1, -1, 54, 55, -1, 57, 58, 59, + -1, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, -1, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 104, 10, 11, 12, 13, -1, + -1, -1, -1, -1, -1, 115, 116, -1, 118, -1, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, -1, -1, -1, - -1, -1, -1, 48, 49, -1, 51, 52, 53, -1, - 55, -1, -1, -1, 59, 60, 61, 62, 63, 64, - 65, -1, -1, 68, 69, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, - -1, -1, 87, 10, 11, 12, 13, -1, -1, -1, - -1, -1, -1, 98, 99, -1, 101, -1, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, -1, -1, -1, -1, -1, -1, -1, - -1, 48, 49, -1, 51, 52, 53, -1, 55, 4, - 5, 6, -1, 60, -1, 10, 11, 12, 13, -1, + 45, 46, 47, 48, 49, 50, -1, -1, -1, 54, + 55, -1, 57, 58, 59, -1, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, -1, 72, 73, 74, + -1, 76, 77, 78, 79, 80, 81, 82, -1, -1, + 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 104, + 10, 11, 12, 13, -1, -1, -1, -1, -1, 114, + 115, 116, -1, 118, -1, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + -1, -1, -1, -1, -1, 45, 46, 47, 48, 49, + 50, -1, -1, -1, 54, 55, -1, 57, 58, 59, + -1, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, -1, 72, 73, 74, -1, 76, 77, 78, 79, + 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 92, -1, -1, -1, -1, - -1, -1, -1, 48, 49, -1, 51, 52, 53, -1, - 55, -1, -1, -1, -1, 60, -1, -1, -1, -1, - -1, -1, -1, 0, -1, -1, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 92, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, -1, 43, 44, 45, -1, - -1, 48, 49, -1, 51, 52, 53, -1, 55, -1, - -1, 58, -1, 60, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, -1, 43, 44, 45, -1, -1, 48, - 49, -1, 51, 52, 53, -1, 55, -1, -1, 58, - -1, 60, 4, 5, 6, -1, -1, -1, 10, 11, - 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 104, -1, -1, 107, 10, 11, + 12, 13, -1, -1, -1, 115, 116, -1, 118, -1, -1, -1, -1, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, - -1, -1, -1, -1, -1, -1, 48, 49, -1, 51, - 52, 53, -1, 55, 10, 11, 12, 13, 60, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, -1, -1, -1, -1, -1, -1, - -1, -1, 48, 49, -1, 51, 52, 53, -1, 55, - -1, -1, -1, 59, 60, 10, 11, 12, 13, 65, + -1, -1, -1, 45, 46, 47, 48, 49, 50, -1, + -1, -1, 54, 55, -1, 57, 58, 59, -1, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, -1, + 72, 73, 74, -1, 76, 77, 78, 79, 80, 81, + 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 104, 10, 11, 12, 13, -1, -1, -1, + -1, -1, -1, 115, 116, -1, 118, -1, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, -1, -1, -1, -1, -1, 45, 46, + 47, 48, 49, 50, -1, -1, -1, 54, 55, -1, + 57, 58, 59, -1, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, -1, 72, 73, 74, -1, 76, + 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 4, 5, 6, -1, -1, 104, 10, 11, + 12, 13, -1, -1, -1, -1, -1, -1, 115, 116, + -1, 118, -1, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, + -1, -1, -1, 45, 46, 47, 48, 49, 50, -1, + -1, -1, 54, 55, -1, 57, 58, 59, -1, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, -1, + 72, 73, 74, -1, -1, 77, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, + -1, -1, -1, 10, 11, 12, 13, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 109, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, -1, -1, -1, -1, -1, 45, 46, + 47, 48, 49, 50, -1, -1, -1, 54, 55, -1, + 57, 58, 59, -1, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, -1, 72, 73, 74, -1, -1, + 77, -1, -1, -1, -1, -1, -1, -1, 0, -1, + -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 109, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, + -1, -1, 54, 55, -1, 57, 58, 59, -1, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, -1, + 72, 73, 74, 75, -1, 77, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, -1, 43, 44, 45, 46, + 47, 48, 49, 50, 51, -1, -1, 54, 55, -1, + 57, 58, 59, -1, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, -1, 72, 73, 74, 75, -1, + 77, 4, 5, 6, -1, -1, -1, 10, 11, 12, + 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, -1, -1, -1, + -1, -1, 45, 46, 47, 48, 49, 50, -1, -1, + -1, 54, 55, -1, 57, 58, 59, -1, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, -1, 72, + 73, 74, -1, -1, 77, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, -1, -1, -1, - -1, -1, -1, 48, 49, -1, 51, 52, 53, -1, - 55, -1, -1, -1, -1, 60 + 45, 46, 47, 48, 49, 50, -1, -1, -1, 54, + 55, -1, 57, 58, 59, -1, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, -1, 72, 73, 74, + -1, 76, 77, 10, 11, 12, 13, 82, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, -1, -1, -1, -1, -1, 45, 46, + 47, 48, 49, 50, -1, -1, -1, 54, 55, -1, + 57, 58, 59, -1, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, -1, 72, 73, 74, -1, -1, + 77 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1323,36 +1429,38 @@ 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, - 44, 45, 48, 49, 51, 52, 53, 55, 58, 60, - 141, 142, 143, 144, 145, 150, 151, 152, 154, 155, - 156, 157, 158, 161, 162, 163, 195, 196, 197, 44, - 59, 157, 40, 41, 59, 91, 87, 97, 198, 88, - 94, 9, 40, 41, 42, 147, 148, 153, 94, 97, - 59, 156, 161, 155, 89, 0, 196, 161, 91, 165, - 59, 159, 160, 91, 181, 147, 146, 149, 156, 148, - 59, 87, 89, 96, 59, 61, 62, 63, 64, 65, - 68, 69, 87, 98, 99, 101, 112, 113, 114, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 140, 162, 97, 164, 156, 166, 167, 96, 88, 94, - 14, 15, 16, 18, 19, 20, 21, 50, 91, 92, - 97, 123, 136, 137, 139, 141, 142, 162, 171, 172, - 173, 174, 182, 183, 184, 187, 194, 59, 146, 149, - 89, 96, 90, 140, 137, 170, 123, 123, 139, 68, - 69, 89, 93, 88, 88, 94, 49, 137, 87, 123, - 102, 103, 99, 101, 70, 71, 105, 106, 72, 73, - 74, 76, 75, 110, 90, 166, 59, 168, 169, 92, - 167, 62, 63, 160, 97, 97, 189, 87, 87, 97, - 97, 139, 87, 92, 175, 77, 78, 79, 86, 96, - 138, 94, 97, 92, 172, 89, 90, 140, 170, 90, - 88, 115, 139, 59, 65, 118, 137, 123, 123, 125, - 125, 127, 127, 127, 127, 128, 128, 132, 133, 134, - 139, 92, 89, 94, 97, 178, 179, 180, 190, 139, - 97, 188, 182, 137, 137, 140, 90, 90, 95, 140, - 169, 50, 181, 173, 171, 183, 191, 88, 3, 139, - 152, 186, 176, 90, 137, 90, 87, 186, 192, 193, - 178, 185, 59, 88, 92, 139, 97, 88, 17, 96, - 173, 177, 181, 88, 139, 177, 178, 170, 97 + 44, 45, 46, 47, 48, 49, 50, 51, 54, 55, + 57, 58, 59, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 72, 73, 74, 75, 77, 158, 159, + 160, 161, 162, 167, 168, 169, 171, 172, 173, 174, + 175, 178, 179, 180, 212, 213, 214, 44, 76, 174, + 40, 41, 76, 108, 104, 114, 215, 105, 111, 9, + 40, 41, 42, 164, 165, 170, 111, 114, 76, 173, + 178, 172, 106, 0, 213, 178, 108, 182, 76, 176, + 177, 108, 198, 164, 163, 166, 173, 165, 76, 104, + 106, 113, 76, 78, 79, 80, 81, 82, 85, 86, + 104, 115, 116, 118, 129, 130, 131, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 157, 179, + 114, 181, 173, 183, 184, 113, 105, 111, 14, 15, + 16, 18, 19, 20, 21, 56, 108, 109, 114, 140, + 153, 154, 156, 158, 159, 179, 188, 189, 190, 191, + 199, 200, 201, 204, 211, 76, 163, 166, 106, 113, + 107, 157, 154, 187, 140, 140, 156, 85, 86, 106, + 110, 105, 105, 111, 55, 154, 104, 140, 119, 120, + 116, 118, 87, 88, 122, 123, 89, 90, 91, 93, + 92, 127, 107, 183, 76, 185, 186, 109, 184, 79, + 80, 177, 114, 114, 206, 104, 104, 114, 114, 156, + 104, 109, 192, 94, 95, 96, 103, 113, 155, 111, + 114, 109, 189, 106, 107, 157, 187, 107, 105, 132, + 156, 76, 82, 135, 154, 140, 140, 142, 142, 144, + 144, 144, 144, 145, 145, 149, 150, 151, 156, 109, + 106, 111, 114, 195, 196, 197, 207, 156, 114, 205, + 199, 154, 154, 157, 107, 107, 112, 157, 186, 56, + 198, 190, 188, 200, 208, 105, 3, 156, 169, 203, + 193, 107, 154, 107, 104, 203, 209, 210, 195, 202, + 76, 105, 109, 156, 114, 105, 17, 113, 190, 194, + 198, 105, 156, 194, 195, 187, 114 }; #define yyerrok (yyerrstatus = 0) @@ -2327,7 +2435,7 @@ if ((yyvsp[(1) - (4)].interm.intermTypedNode)->getType().getStruct()) (yyval.interm.intermTypedNode)->setType(TType((yyvsp[(1) - (4)].interm.intermTypedNode)->getType().getStruct(), (yyvsp[(1) - (4)].interm.intermTypedNode)->getType().getTypeName())); else - (yyval.interm.intermTypedNode)->setType(TType((yyvsp[(1) - (4)].interm.intermTypedNode)->getBasicType(), (yyvsp[(1) - (4)].interm.intermTypedNode)->getPrecision(), EvqTemporary, (yyvsp[(1) - (4)].interm.intermTypedNode)->getNominalSize(), (yyvsp[(1) - (4)].interm.intermTypedNode)->isMatrix())); + (yyval.interm.intermTypedNode)->setType(TType((yyvsp[(1) - (4)].interm.intermTypedNode)->getBasicType(), (yyvsp[(1) - (4)].interm.intermTypedNode)->getPrecision(), EvqTemporary, (yyvsp[(1) - (4)].interm.intermTypedNode)->getNominalSize(), (yyvsp[(1) - (4)].interm.intermTypedNode)->getSecondarySize())); if ((yyvsp[(1) - (4)].interm.intermTypedNode)->getType().getQualifier() == EvqConstExpr) (yyval.interm.intermTypedNode)->getTypePointer()->setQualifier(EvqConstExpr); @@ -2681,23 +2789,37 @@ } else { switch ((yyvsp[(1) - (1)].interm.type).type) { case EbtFloat: - if ((yyvsp[(1) - (1)].interm.type).matrix) { - switch((yyvsp[(1) - (1)].interm.type).size) { - case 2: op = EOpConstructMat2; break; - case 3: op = EOpConstructMat3; break; - case 4: op = EOpConstructMat4; break; + switch((yyvsp[(1) - (1)].interm.type).primarySize) { + case 1: + op = EOpConstructFloat; break; + case 2: + switch((yyvsp[(1) - (1)].interm.type).secondarySize) { + case 1: op = EOpConstructVec2; break; + case 2: op = EOpConstructMat2; break; + case 3: op = EOpConstructMat2x3; break; + case 4: op = EOpConstructMat2x4; break; } - } else { - switch((yyvsp[(1) - (1)].interm.type).size) { - case 1: op = EOpConstructFloat; break; - case 2: op = EOpConstructVec2; break; - case 3: op = EOpConstructVec3; break; - case 4: op = EOpConstructVec4; break; + break; + case 3: + switch((yyvsp[(1) - (1)].interm.type).secondarySize) { + case 1: op = EOpConstructVec3; break; + case 2: op = EOpConstructMat3x2; break; + case 3: op = EOpConstructMat3; break; + case 4: op = EOpConstructMat3x4; break; } + break; + case 4: + switch((yyvsp[(1) - (1)].interm.type).secondarySize) { + case 1: op = EOpConstructVec4; break; + case 2: op = EOpConstructMat4x2; break; + case 3: op = EOpConstructMat4x3; break; + case 4: op = EOpConstructMat4; break; + } + break; } break; case EbtInt: - switch((yyvsp[(1) - (1)].interm.type).size) { + switch((yyvsp[(1) - (1)].interm.type).primarySize) { case 1: op = EOpConstructInt; break; case 2: FRAG_VERT_ONLY("ivec2", (yyvsp[(1) - (1)].interm.type).line); op = EOpConstructIVec2; break; case 3: FRAG_VERT_ONLY("ivec3", (yyvsp[(1) - (1)].interm.type).line); op = EOpConstructIVec3; break; @@ -2705,7 +2827,7 @@ } break; case EbtBool: - switch((yyvsp[(1) - (1)].interm.type).size) { + switch((yyvsp[(1) - (1)].interm.type).primarySize) { case 1: op = EOpConstructBool; break; case 2: FRAG_VERT_ONLY("bvec2", (yyvsp[(1) - (1)].interm.type).line); op = EOpConstructBVec2; break; case 3: FRAG_VERT_ONLY("bvec3", (yyvsp[(1) - (1)].interm.type).line); op = EOpConstructBVec3; break; @@ -4072,7 +4194,7 @@ FRAG_VERT_ONLY("mat2", (yyvsp[(1) - (1)].lex).line); TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; (yyval.interm.type).setBasic(EbtFloat, qual, (yyvsp[(1) - (1)].lex).line); - (yyval.interm.type).setAggregate(2, true); + (yyval.interm.type).setMatrix(2, 2); } break; @@ -4082,7 +4204,7 @@ FRAG_VERT_ONLY("mat3", (yyvsp[(1) - (1)].lex).line); TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; (yyval.interm.type).setBasic(EbtFloat, qual, (yyvsp[(1) - (1)].lex).line); - (yyval.interm.type).setAggregate(3, true); + (yyval.interm.type).setMatrix(3, 3); } break; @@ -4092,20 +4214,80 @@ FRAG_VERT_ONLY("mat4", (yyvsp[(1) - (1)].lex).line); TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; (yyval.interm.type).setBasic(EbtFloat, qual, (yyvsp[(1) - (1)].lex).line); - (yyval.interm.type).setAggregate(4, true); + (yyval.interm.type).setMatrix(4, 4); } break; case 151: { + FRAG_VERT_ONLY("mat2x3", (yyvsp[(1) - (1)].lex).line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + (yyval.interm.type).setBasic(EbtFloat, qual, (yyvsp[(1) - (1)].lex).line); + (yyval.interm.type).setMatrix(2, 3); + } + break; + + case 152: + + { + FRAG_VERT_ONLY("mat3x2", (yyvsp[(1) - (1)].lex).line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + (yyval.interm.type).setBasic(EbtFloat, qual, (yyvsp[(1) - (1)].lex).line); + (yyval.interm.type).setMatrix(3, 2); + } + break; + + case 153: + + { + FRAG_VERT_ONLY("mat2x4", (yyvsp[(1) - (1)].lex).line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + (yyval.interm.type).setBasic(EbtFloat, qual, (yyvsp[(1) - (1)].lex).line); + (yyval.interm.type).setMatrix(2, 4); + } + break; + + case 154: + + { + FRAG_VERT_ONLY("mat4x2", (yyvsp[(1) - (1)].lex).line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + (yyval.interm.type).setBasic(EbtFloat, qual, (yyvsp[(1) - (1)].lex).line); + (yyval.interm.type).setMatrix(4, 2); + } + break; + + case 155: + + { + FRAG_VERT_ONLY("mat3x4", (yyvsp[(1) - (1)].lex).line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + (yyval.interm.type).setBasic(EbtFloat, qual, (yyvsp[(1) - (1)].lex).line); + (yyval.interm.type).setMatrix(3, 4); + } + break; + + case 156: + + { + FRAG_VERT_ONLY("mat4x3", (yyvsp[(1) - (1)].lex).line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + (yyval.interm.type).setBasic(EbtFloat, qual, (yyvsp[(1) - (1)].lex).line); + (yyval.interm.type).setMatrix(4, 3); + } + break; + + case 157: + + { FRAG_VERT_ONLY("sampler2D", (yyvsp[(1) - (1)].lex).line); TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; (yyval.interm.type).setBasic(EbtSampler2D, qual, (yyvsp[(1) - (1)].lex).line); } break; - case 152: + case 158: { FRAG_VERT_ONLY("samplerCube", (yyvsp[(1) - (1)].lex).line); @@ -4114,7 +4296,7 @@ } break; - case 153: + case 159: { if (!context->supportsExtension("GL_OES_EGL_image_external")) { @@ -4127,7 +4309,7 @@ } break; - case 154: + case 160: { FRAG_VERT_ONLY("sampler3D", (yyvsp[(1) - (1)].lex).line); @@ -4136,7 +4318,115 @@ } break; - case 155: + case 161: + + { + FRAG_VERT_ONLY("sampler2DArray", (yyvsp[(1) - (1)].lex).line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + (yyval.interm.type).setBasic(EbtSampler2DArray, qual, (yyvsp[(1) - (1)].lex).line); + } + break; + + case 162: + + { + FRAG_VERT_ONLY("isampler2D", (yyvsp[(1) - (1)].lex).line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + (yyval.interm.type).setBasic(EbtISampler2D, qual, (yyvsp[(1) - (1)].lex).line); + } + break; + + case 163: + + { + FRAG_VERT_ONLY("isampler3D", (yyvsp[(1) - (1)].lex).line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + (yyval.interm.type).setBasic(EbtISampler3D, qual, (yyvsp[(1) - (1)].lex).line); + } + break; + + case 164: + + { + FRAG_VERT_ONLY("isamplerCube", (yyvsp[(1) - (1)].lex).line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + (yyval.interm.type).setBasic(EbtISamplerCube, qual, (yyvsp[(1) - (1)].lex).line); + } + break; + + case 165: + + { + FRAG_VERT_ONLY("isampler2DArray", (yyvsp[(1) - (1)].lex).line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + (yyval.interm.type).setBasic(EbtISampler2DArray, qual, (yyvsp[(1) - (1)].lex).line); + } + break; + + case 166: + + { + FRAG_VERT_ONLY("usampler2D", (yyvsp[(1) - (1)].lex).line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + (yyval.interm.type).setBasic(EbtUSampler2D, qual, (yyvsp[(1) - (1)].lex).line); + } + break; + + case 167: + + { + FRAG_VERT_ONLY("usampler3D", (yyvsp[(1) - (1)].lex).line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + (yyval.interm.type).setBasic(EbtUSampler3D, qual, (yyvsp[(1) - (1)].lex).line); + } + break; + + case 168: + + { + FRAG_VERT_ONLY("usamplerCube", (yyvsp[(1) - (1)].lex).line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + (yyval.interm.type).setBasic(EbtUSamplerCube, qual, (yyvsp[(1) - (1)].lex).line); + } + break; + + case 169: + + { + FRAG_VERT_ONLY("usampler2DArray", (yyvsp[(1) - (1)].lex).line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + (yyval.interm.type).setBasic(EbtUSampler2DArray, qual, (yyvsp[(1) - (1)].lex).line); + } + break; + + case 170: + + { + FRAG_VERT_ONLY("sampler2DShadow", (yyvsp[(1) - (1)].lex).line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + (yyval.interm.type).setBasic(EbtSampler2DShadow, qual, (yyvsp[(1) - (1)].lex).line); + } + break; + + case 171: + + { + FRAG_VERT_ONLY("samplerCubeShadow", (yyvsp[(1) - (1)].lex).line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + (yyval.interm.type).setBasic(EbtSamplerCubeShadow, qual, (yyvsp[(1) - (1)].lex).line); + } + break; + + case 172: + + { + FRAG_VERT_ONLY("sampler2DArrayShadow", (yyvsp[(1) - (1)].lex).line); + TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + (yyval.interm.type).setBasic(EbtSampler2DArrayShadow, qual, (yyvsp[(1) - (1)].lex).line); + } + break; + + case 173: { FRAG_VERT_ONLY("struct", (yyvsp[(1) - (1)].interm.type).line); @@ -4145,7 +4435,7 @@ } break; - case 156: + case 174: { // @@ -4159,12 +4449,12 @@ } break; - case 157: + case 175: { if (context->enterStructDeclaration((yyvsp[(2) - (3)].lex).line, *(yyvsp[(2) - (3)].lex).string)) context->recover(); } break; - case 158: + case 176: { if (context->reservedErrorCheck((yyvsp[(2) - (6)].lex).line, *(yyvsp[(2) - (6)].lex).string)) @@ -4182,12 +4472,12 @@ } break; - case 159: + case 177: { if (context->enterStructDeclaration((yyvsp[(2) - (2)].lex).line, *(yyvsp[(2) - (2)].lex).string)) context->recover(); } break; - case 160: + case 178: { TType* structure = new TType((yyvsp[(4) - (5)].interm.typeList), TString("")); @@ -4197,14 +4487,14 @@ } break; - case 161: + case 179: { (yyval.interm.typeList) = (yyvsp[(1) - (1)].interm.typeList); } break; - case 162: + case 180: { (yyval.interm.typeList) = (yyvsp[(1) - (2)].interm.typeList); @@ -4220,7 +4510,7 @@ } break; - case 163: + case 181: { (yyval.interm.typeList) = (yyvsp[(2) - (3)].interm.typeList); @@ -4234,8 +4524,8 @@ // TType* type = (*(yyval.interm.typeList))[i].type; type->setBasicType((yyvsp[(1) - (3)].interm.type).type); - type->setNominalSize((yyvsp[(1) - (3)].interm.type).size); - type->setMatrix((yyvsp[(1) - (3)].interm.type).matrix); + type->setNominalSize((yyvsp[(1) - (3)].interm.type).primarySize); + type->setSecondarySize((yyvsp[(1) - (3)].interm.type).secondarySize); type->setPrecision((yyvsp[(1) - (3)].interm.type).precision); // don't allow arrays of arrays @@ -4253,7 +4543,7 @@ } break; - case 164: + case 182: { (yyval.interm.typeList) = NewPoolTTypeList(); @@ -4261,14 +4551,14 @@ } break; - case 165: + case 183: { (yyval.interm.typeList)->push_back((yyvsp[(3) - (3)].interm.typeLine)); } break; - case 166: + case 184: { if (context->reservedErrorCheck((yyvsp[(1) - (1)].lex).line, *(yyvsp[(1) - (1)].lex).string)) @@ -4280,7 +4570,7 @@ } break; - case 167: + case 185: { if (context->reservedErrorCheck((yyvsp[(1) - (4)].lex).line, *(yyvsp[(1) - (4)].lex).string)) @@ -4297,67 +4587,67 @@ } break; - case 168: + case 186: { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; - case 169: + case 187: { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 170: + case 188: { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermAggregate); } break; - case 171: + case 189: { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 172: + case 190: { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 173: + case 191: { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 174: + case 192: { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 175: + case 193: { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 176: + case 194: { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 177: + case 195: { (yyval.interm.intermAggregate) = 0; } break; - case 178: + case 196: { context->symbolTable.push(); } break; - case 179: + case 197: { context->symbolTable.pop(); } break; - case 180: + case 198: { if ((yyvsp[(3) - (5)].interm.intermAggregate) != 0) { @@ -4368,44 +4658,44 @@ } break; - case 181: + case 199: { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 182: + case 200: { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 183: + case 201: { context->symbolTable.push(); } break; - case 184: + case 202: { context->symbolTable.pop(); (yyval.interm.intermNode) = (yyvsp[(2) - (2)].interm.intermNode); } break; - case 185: + case 203: { context->symbolTable.push(); } break; - case 186: + case 204: { context->symbolTable.pop(); (yyval.interm.intermNode) = (yyvsp[(2) - (2)].interm.intermNode); } break; - case 187: + case 205: { (yyval.interm.intermNode) = 0; } break; - case 188: + case 206: { if ((yyvsp[(2) - (3)].interm.intermAggregate)) { @@ -4416,31 +4706,31 @@ } break; - case 189: + case 207: { (yyval.interm.intermAggregate) = context->intermediate.makeAggregate((yyvsp[(1) - (1)].interm.intermNode), 0); } break; - case 190: + case 208: { (yyval.interm.intermAggregate) = context->intermediate.growAggregate((yyvsp[(1) - (2)].interm.intermAggregate), (yyvsp[(2) - (2)].interm.intermNode), 0); } break; - case 191: + case 209: { (yyval.interm.intermNode) = 0; } break; - case 192: + case 210: { (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[(1) - (2)].interm.intermTypedNode)); } break; - case 193: + case 211: { if (context->boolErrorCheck((yyvsp[(1) - (5)].lex).line, (yyvsp[(3) - (5)].interm.intermTypedNode))) @@ -4449,7 +4739,7 @@ } break; - case 194: + case 212: { (yyval.interm.nodePair).node1 = (yyvsp[(1) - (3)].interm.intermNode); @@ -4457,7 +4747,7 @@ } break; - case 195: + case 213: { (yyval.interm.nodePair).node1 = (yyvsp[(1) - (1)].interm.intermNode); @@ -4465,7 +4755,7 @@ } break; - case 196: + case 214: { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); @@ -4474,7 +4764,7 @@ } break; - case 197: + case 215: { TIntermNode* intermNode; @@ -4492,12 +4782,12 @@ } break; - case 198: + case 216: { context->symbolTable.push(); ++context->loopNestingLevel; } break; - case 199: + case 217: { context->symbolTable.pop(); @@ -4506,12 +4796,12 @@ } break; - case 200: + case 218: { ++context->loopNestingLevel; } break; - case 201: + case 219: { if (context->boolErrorCheck((yyvsp[(8) - (8)].lex).line, (yyvsp[(6) - (8)].interm.intermTypedNode))) @@ -4522,12 +4812,12 @@ } break; - case 202: + case 220: { context->symbolTable.push(); ++context->loopNestingLevel; } break; - case 203: + case 221: { context->symbolTable.pop(); @@ -4536,35 +4826,35 @@ } break; - case 204: + case 222: { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 205: + case 223: { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 206: + case 224: { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; - case 207: + case 225: { (yyval.interm.intermTypedNode) = 0; } break; - case 208: + case 226: { (yyval.interm.nodePair).node1 = (yyvsp[(1) - (2)].interm.intermTypedNode); @@ -4572,7 +4862,7 @@ } break; - case 209: + case 227: { (yyval.interm.nodePair).node1 = (yyvsp[(1) - (3)].interm.intermTypedNode); @@ -4580,7 +4870,7 @@ } break; - case 210: + case 228: { if (context->loopNestingLevel <= 0) { @@ -4591,7 +4881,7 @@ } break; - case 211: + case 229: { if (context->loopNestingLevel <= 0) { @@ -4602,7 +4892,7 @@ } break; - case 212: + case 230: { (yyval.interm.intermNode) = context->intermediate.addBranch(EOpReturn, (yyvsp[(1) - (2)].lex).line); @@ -4613,7 +4903,7 @@ } break; - case 213: + case 231: { (yyval.interm.intermNode) = context->intermediate.addBranch(EOpReturn, (yyvsp[(2) - (3)].interm.intermTypedNode), (yyvsp[(1) - (3)].lex).line); @@ -4628,7 +4918,7 @@ } break; - case 214: + case 232: { FRAG_ONLY("discard", (yyvsp[(1) - (2)].lex).line); @@ -4636,7 +4926,7 @@ } break; - case 215: + case 233: { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); @@ -4644,7 +4934,7 @@ } break; - case 216: + case 234: { (yyval.interm.intermNode) = context->intermediate.growAggregate((yyvsp[(1) - (2)].interm.intermNode), (yyvsp[(2) - (2)].interm.intermNode), 0); @@ -4652,21 +4942,21 @@ } break; - case 217: + case 235: { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 218: + case 236: { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 219: + case 237: { TFunction* function = (yyvsp[(1) - (1)].interm).function; @@ -4755,7 +5045,7 @@ } break; - case 220: + case 238: { //?? Check that all paths return a value if return type != void ?
diff --git a/src/OpenGL/compiler/glslang_tab.h b/src/OpenGL/compiler/glslang_tab.h index 77bb70c..6ec3a32 100644 --- a/src/OpenGL/compiler/glslang_tab.h +++ b/src/OpenGL/compiler/glslang_tab.h
@@ -81,72 +81,89 @@ INOUT_QUAL = 297, UNIFORM = 298, VARYING = 299, - CENTROID = 300, - FLAT = 301, - SMOOTH = 302, - STRUCT = 303, - VOID_TYPE = 304, - WHILE = 305, - SAMPLER2D = 306, - SAMPLERCUBE = 307, - SAMPLER_EXTERNAL_OES = 308, - SAMPLER2DRECT = 309, - SAMPLER3D = 310, - SAMPLER3DRECT = 311, - SAMPLER2DSHADOW = 312, - LAYOUT = 313, - IDENTIFIER = 314, - TYPE_NAME = 315, - FLOATCONSTANT = 316, - INTCONSTANT = 317, - UINTCONSTANT = 318, - BOOLCONSTANT = 319, - FIELD_SELECTION = 320, - LEFT_OP = 321, - RIGHT_OP = 322, - INC_OP = 323, - DEC_OP = 324, - LE_OP = 325, - GE_OP = 326, - EQ_OP = 327, - NE_OP = 328, - AND_OP = 329, - OR_OP = 330, - XOR_OP = 331, - MUL_ASSIGN = 332, - DIV_ASSIGN = 333, - ADD_ASSIGN = 334, - MOD_ASSIGN = 335, - LEFT_ASSIGN = 336, - RIGHT_ASSIGN = 337, - AND_ASSIGN = 338, - XOR_ASSIGN = 339, - OR_ASSIGN = 340, - SUB_ASSIGN = 341, - LEFT_PAREN = 342, - RIGHT_PAREN = 343, - LEFT_BRACKET = 344, - RIGHT_BRACKET = 345, - LEFT_BRACE = 346, - RIGHT_BRACE = 347, - DOT = 348, - COMMA = 349, - COLON = 350, - EQUAL = 351, - SEMICOLON = 352, - BANG = 353, - DASH = 354, - TILDE = 355, - PLUS = 356, - STAR = 357, - SLASH = 358, - PERCENT = 359, - LEFT_ANGLE = 360, - RIGHT_ANGLE = 361, - VERTICAL_BAR = 362, - CARET = 363, - AMPERSAND = 364, - QUESTION = 365 + MATRIX2x3 = 300, + MATRIX3x2 = 301, + MATRIX2x4 = 302, + MATRIX4x2 = 303, + MATRIX3x4 = 304, + MATRIX4x3 = 305, + CENTROID = 306, + FLAT = 307, + SMOOTH = 308, + STRUCT = 309, + VOID_TYPE = 310, + WHILE = 311, + SAMPLER2D = 312, + SAMPLERCUBE = 313, + SAMPLER_EXTERNAL_OES = 314, + SAMPLER2DRECT = 315, + SAMPLER2DARRAY = 316, + ISAMPLER2D = 317, + ISAMPLER3D = 318, + ISAMPLERCUBE = 319, + ISAMPLER2DARRAY = 320, + USAMPLER2D = 321, + USAMPLER3D = 322, + USAMPLERCUBE = 323, + USAMPLER2DARRAY = 324, + SAMPLER3D = 325, + SAMPLER3DRECT = 326, + SAMPLER2DSHADOW = 327, + SAMPLERCUBESHADOW = 328, + SAMPLER2DARRAYSHADOW = 329, + LAYOUT = 330, + IDENTIFIER = 331, + TYPE_NAME = 332, + FLOATCONSTANT = 333, + INTCONSTANT = 334, + UINTCONSTANT = 335, + BOOLCONSTANT = 336, + FIELD_SELECTION = 337, + LEFT_OP = 338, + RIGHT_OP = 339, + INC_OP = 340, + DEC_OP = 341, + LE_OP = 342, + GE_OP = 343, + EQ_OP = 344, + NE_OP = 345, + AND_OP = 346, + OR_OP = 347, + XOR_OP = 348, + MUL_ASSIGN = 349, + DIV_ASSIGN = 350, + ADD_ASSIGN = 351, + MOD_ASSIGN = 352, + LEFT_ASSIGN = 353, + RIGHT_ASSIGN = 354, + AND_ASSIGN = 355, + XOR_ASSIGN = 356, + OR_ASSIGN = 357, + SUB_ASSIGN = 358, + LEFT_PAREN = 359, + RIGHT_PAREN = 360, + LEFT_BRACKET = 361, + RIGHT_BRACKET = 362, + LEFT_BRACE = 363, + RIGHT_BRACE = 364, + DOT = 365, + COMMA = 366, + COLON = 367, + EQUAL = 368, + SEMICOLON = 369, + BANG = 370, + DASH = 371, + TILDE = 372, + PLUS = 373, + STAR = 374, + SLASH = 375, + PERCENT = 376, + LEFT_ANGLE = 377, + RIGHT_ANGLE = 378, + VERTICAL_BAR = 379, + CARET = 380, + AMPERSAND = 381, + QUESTION = 382 }; #endif
diff --git a/src/OpenGL/compiler/intermOut.cpp b/src/OpenGL/compiler/intermOut.cpp index c9da525..f71eea4 100644 --- a/src/OpenGL/compiler/intermOut.cpp +++ b/src/OpenGL/compiler/intermOut.cpp
@@ -44,10 +44,10 @@ stream << getQualifierString() << " " << getPrecisionString() << " "; if (array) stream << "array of "; - if (matrix) - stream << size << "X" << size << " matrix of "; - else if (size > 1) - stream << size << "-component vector of "; + if (isMatrix()) + stream << primarySize << "X" << secondarySize << " matrix of "; + else if(primarySize > 1) + stream << primarySize << "-component vector of "; stream << getBasicString(); return stream.str();
diff --git a/src/OpenGL/compiler/intermediate.h b/src/OpenGL/compiler/intermediate.h index 03fd15c..243a93d 100644 --- a/src/OpenGL/compiler/intermediate.h +++ b/src/OpenGL/compiler/intermediate.h
@@ -161,7 +161,13 @@ EOpConstructUVec3, EOpConstructUVec4, EOpConstructMat2, + EOpConstructMat2x3, + EOpConstructMat2x4, + EOpConstructMat3x2, EOpConstructMat3, + EOpConstructMat3x4, + EOpConstructMat4x2, + EOpConstructMat4x3, EOpConstructMat4, EOpConstructStruct, @@ -247,6 +253,7 @@ TQualifier getQualifier() const { return type.getQualifier(); } TPrecision getPrecision() const { return type.getPrecision(); } int getNominalSize() const { return type.getNominalSize(); } + int getSecondarySize() const { return type.getSecondarySize(); } bool isMatrix() const { return type.isMatrix(); } bool isArray() const { return type.isArray(); }