From 51ed01c8774735a81f884cdf9f12258b96d9b138 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Thu, 10 Oct 2019 11:40:11 -0600 Subject: [PATCH] Web: Add compute stage. --- SPIRV/GlslangToSpv.cpp | 8 +- Test/baseResults/web.comp.out | 75 + Test/web.comp | 28 + Test/web.testlist | 1 + glslang/MachineIndependent/Initialize.cpp | 127 +- glslang/MachineIndependent/ParseHelper.cpp | 18 +- glslang/MachineIndependent/Scan.cpp | 3 +- glslang/MachineIndependent/ShaderLang.cpp | 2 + glslang/MachineIndependent/Versions.cpp | 2 +- glslang/MachineIndependent/glslang.m4 | 2 +- glslang/MachineIndependent/glslang.y | 8 + glslang/MachineIndependent/glslang_tab.cpp | 2589 +++++++++-------- .../MachineIndependent/localintermediate.h | 43 +- 13 files changed, 1526 insertions(+), 1380 deletions(-) create mode 100644 Test/baseResults/web.comp.out create mode 100644 Test/web.comp diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index ae5f24d3..762a292e 100644 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -292,8 +292,8 @@ spv::ExecutionModel TranslateExecutionModel(EShLanguage stage) switch (stage) { case EShLangVertex: return spv::ExecutionModelVertex; case EShLangFragment: return spv::ExecutionModelFragment; -#ifndef GLSLANG_WEB case EShLangCompute: return spv::ExecutionModelGLCompute; +#ifndef GLSLANG_WEB case EShLangTessControl: return spv::ExecutionModelTessellationControl; case EShLangTessEvaluation: return spv::ExecutionModelTessellationEvaluation; case EShLangGeometry: return spv::ExecutionModelGeometry; @@ -1489,12 +1489,12 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(unsigned int spvVersion, const gl #endif break; -#ifndef GLSLANG_WEB case EShLangCompute: builder.addCapability(spv::CapabilityShader); builder.addExecutionMode(shaderEntry, spv::ExecutionModeLocalSize, glslangIntermediate->getLocalSize(0), glslangIntermediate->getLocalSize(1), glslangIntermediate->getLocalSize(2)); +#ifndef GLSLANG_WEB if (glslangIntermediate->getLayoutDerivativeModeNone() == glslang::LayoutDerivativeGroupQuads) { builder.addCapability(spv::CapabilityComputeDerivativeGroupQuadsNV); builder.addExecutionMode(shaderEntry, spv::ExecutionModeDerivativeGroupQuadsNV); @@ -1504,7 +1504,9 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(unsigned int spvVersion, const gl builder.addExecutionMode(shaderEntry, spv::ExecutionModeDerivativeGroupLinearNV); builder.addExtension(spv::E_SPV_NV_compute_shader_derivatives); } +#endif break; +#ifndef GLSLANG_WEB case EShLangTessEvaluation: case EShLangTessControl: builder.addCapability(spv::CapabilityTessellation); @@ -7826,7 +7828,6 @@ spv::Id TGlslangToSpvTraverser::createSpvConstant(const glslang::TIntermTyped& n // We now know we have a specialization constant to build -#ifndef GLSLANG_WEB // gl_WorkGroupSize is a special case until the front-end handles hierarchical specialization constants, // even then, it's specialization ids are handled by special case syntax in GLSL: layout(local_size_x = ... if (node.getType().getQualifier().builtIn == glslang::EbvWorkGroupSize) { @@ -7841,7 +7842,6 @@ spv::Id TGlslangToSpvTraverser::createSpvConstant(const glslang::TIntermTyped& n } return builder.makeCompositeConstant(builder.makeVectorType(builder.makeUintType(32), 3), dimConstId, true); } -#endif // An AST node labelled as specialization constant should be a symbol node. // Its initializer should either be a sub tree with constant nodes, or a constant union array. diff --git a/Test/baseResults/web.comp.out b/Test/baseResults/web.comp.out new file mode 100644 index 00000000..e69de88c --- /dev/null +++ b/Test/baseResults/web.comp.out @@ -0,0 +1,75 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos Glslang Reference Front End; 7 +; Bound: 55 +; Schema: 0 + OpCapability Shader + %1 = OpExtInstImport "GLSL.std.450" + OpMemoryModel Logical GLSL450 + OpEntryPoint GLCompute %main "main" + OpExecutionMode %main LocalSize 2 5 7 + OpSource ESSL 310 + OpName %main "main" + OpName %s "s" + OpName %arrX "arrX" + OpName %arrY "arrY" + OpName %arrZ "arrZ" + OpDecorate %19 SpecId 18 + OpDecorate %21 SpecId 19 + %void = OpTypeVoid + %3 = OpTypeFunction %void + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 + %uint = OpTypeInt 32 0 +%uint_197645 = OpConstant %uint 197645 +%_arr_v4float_uint_197645 = OpTypeArray %v4float %uint_197645 +%_ptr_Function__arr_v4float_uint_197645 = OpTypePointer Function %_arr_v4float_uint_197645 + %int = OpTypeInt 32 1 + %int_3 = OpConstant %int 3 + %float_1 = OpConstant %float 1 + %16 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 +%_ptr_Function_v4float = OpTypePointer Function %v4float + %19 = OpSpecConstant %uint 2 + %uint_5 = OpConstant %uint 5 + %21 = OpSpecConstant %uint 7 + %v3uint = OpTypeVector %uint 3 + %23 = OpSpecConstantComposite %v3uint %19 %uint_5 %21 + %uint_0 = OpConstant %uint 0 +%_arr_int_25 = OpTypeArray %int %25 +%_ptr_Private__arr_int_25 = OpTypePointer Private %_arr_int_25 + %arrX = OpVariable %_ptr_Private__arr_int_25 Private + %int_0 = OpConstant %int 0 +%_ptr_Private_int = OpTypePointer Private %int + %uint_1 = OpConstant %uint 1 +%_arr_int_34 = OpTypeArray %int %34 +%_ptr_Private__arr_int_34 = OpTypePointer Private %_arr_int_34 + %arrY = OpVariable %_ptr_Private__arr_int_34 Private + %uint_2 = OpConstant %uint 2 +%_arr_int_42 = OpTypeArray %int %42 +%_ptr_Private__arr_int_42 = OpTypePointer Private %_arr_int_42 + %arrZ = OpVariable %_ptr_Private__arr_int_42 Private + %int_197645 = OpConstant %int 197645 + %main = OpFunction %void None %3 + %5 = OpLabel + %s = OpVariable %_ptr_Function__arr_v4float_uint_197645 Function + %18 = OpAccessChain %_ptr_Function_v4float %s %int_3 + OpStore %18 %16 + %25 = OpCompositeExtract %uint %23 0 + %31 = OpAccessChain %_ptr_Private_int %arrX %int_0 + %32 = OpLoad %int %31 + %34 = OpCompositeExtract %uint %23 1 + %38 = OpAccessChain %_ptr_Private_int %arrY %int_0 + %39 = OpLoad %int %38 + %40 = OpIMul %int %32 %39 + %42 = OpCompositeExtract %uint %23 2 + %46 = OpAccessChain %_ptr_Private_int %arrZ %int_0 + %47 = OpLoad %int %46 + %48 = OpIMul %int %40 %47 + %49 = OpConvertSToF %float %48 + %50 = OpAccessChain %_ptr_Function_v4float %s %int_3 + %51 = OpLoad %v4float %50 + %52 = OpVectorTimesScalar %v4float %51 %49 + %53 = OpAccessChain %_ptr_Function_v4float %s %int_3 + OpStore %53 %52 + OpReturn + OpFunctionEnd diff --git a/Test/web.comp b/Test/web.comp new file mode 100644 index 00000000..9cc23bff --- /dev/null +++ b/Test/web.comp @@ -0,0 +1,28 @@ +#version 310 es + +layout(local_size_x_id = 18, local_size_z_id = 19) in; + +layout(local_size_x = 2) in; +layout(local_size_y = 5) in; +layout(local_size_z = 7) in; +const int total = gl_MaxComputeWorkGroupCount.x + + gl_MaxComputeWorkGroupCount.y + + gl_MaxComputeWorkGroupCount.z + + gl_MaxComputeUniformComponents + + gl_MaxComputeTextureImageUnits; + +shared vec4 s[total]; + +int arrX[gl_WorkGroupSize.x]; +int arrY[gl_WorkGroupSize.y]; +int arrZ[gl_WorkGroupSize.z]; + +void main() +{ + barrier(); + memoryBarrier(); + memoryBarrierShared(); + groupMemoryBarrier(); + s[3] = vec4(1.0); + s[3] *= arrX[0] * arrY[0] * arrZ[0]; +} diff --git a/Test/web.testlist b/Test/web.testlist index 0d9de221..764c0c0f 100644 --- a/Test/web.testlist +++ b/Test/web.testlist @@ -6,3 +6,4 @@ web.operations.frag web.texture.frag web.array.frag web.separate.frag +web.comp diff --git a/glslang/MachineIndependent/Initialize.cpp b/glslang/MachineIndependent/Initialize.cpp index 3348309a..cb3baf18 100644 --- a/glslang/MachineIndependent/Initialize.cpp +++ b/glslang/MachineIndependent/Initialize.cpp @@ -3795,21 +3795,44 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "void EndPrimitive();" "\n"); } +#endif //============================================================================ // // Prototypes for all control functions. // //============================================================================ +#ifdef GLSLANG_WEB + bool esBarrier = true; +#else bool esBarrier = (profile == EEsProfile && version >= 310); - if ((profile != EEsProfile && version >= 150) || esBarrier) - stageBuiltins[EShLangTessControl].append( - "void barrier();" - ); +#endif if ((profile != EEsProfile && version >= 420) || esBarrier) stageBuiltins[EShLangCompute].append( "void barrier();" ); + if ((profile != EEsProfile && version >= 130) || esBarrier) + commonBuiltins.append( + "void memoryBarrier();" + ); + if ((profile != EEsProfile && version >= 420) || esBarrier) { + stageBuiltins[EShLangCompute].append( + "void memoryBarrierShared();" + "void groupMemoryBarrier();" + ); + } +#ifndef GLSLANG_WEB + if ((profile != EEsProfile && version >= 420) || esBarrier) { + commonBuiltins.append( + "void memoryBarrierAtomicCounter();" + "void memoryBarrierBuffer();" + "void memoryBarrierImage();" + ); + } + if ((profile != EEsProfile && version >= 150) || esBarrier) + stageBuiltins[EShLangTessControl].append( + "void barrier();" + ); if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 320)) { stageBuiltins[EShLangMeshNV].append( "void barrier();" @@ -3818,21 +3841,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "void barrier();" ); } - if ((profile != EEsProfile && version >= 130) || esBarrier) - commonBuiltins.append( - "void memoryBarrier();" - ); - if ((profile != EEsProfile && version >= 420) || esBarrier) { - commonBuiltins.append( - "void memoryBarrierAtomicCounter();" - "void memoryBarrierBuffer();" - "void memoryBarrierImage();" - ); - stageBuiltins[EShLangCompute].append( - "void memoryBarrierShared();" - "void groupMemoryBarrier();" - ); - } if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 320)) { stageBuiltins[EShLangMeshNV].append( "void memoryBarrierShared();" @@ -4279,6 +4287,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "\n"); } +#endif //============================================================================ // @@ -4308,6 +4317,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "\n"); } +#ifndef GLSLANG_WEB //============================================================================ // // Define the interface to the mesh/task shader. @@ -6300,9 +6310,7 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf s.append(builtInConstant); } -#ifdef GLSLANG_WEB - } -#else +#ifndef GLSLANG_WEB if (version >= 310) { // geometry @@ -6584,8 +6592,29 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf snprintf(builtInConstant, maxSize, "const int gl_MaxTransformFeedbackInterleavedComponents = %d;", resources.maxTransformFeedbackInterleavedComponents); s.append(builtInConstant); } +#endif } + // compute + if ((profile == EEsProfile && version >= 310) || (profile != EEsProfile && version >= 420)) { + snprintf(builtInConstant, maxSize, "const ivec3 gl_MaxComputeWorkGroupCount = ivec3(%d,%d,%d);", resources.maxComputeWorkGroupCountX, + resources.maxComputeWorkGroupCountY, + resources.maxComputeWorkGroupCountZ); + s.append(builtInConstant); + snprintf(builtInConstant, maxSize, "const ivec3 gl_MaxComputeWorkGroupSize = ivec3(%d,%d,%d);", resources.maxComputeWorkGroupSizeX, + resources.maxComputeWorkGroupSizeY, + resources.maxComputeWorkGroupSizeZ); + s.append(builtInConstant); + + snprintf(builtInConstant, maxSize, "const int gl_MaxComputeUniformComponents = %d;", resources.maxComputeUniformComponents); + s.append(builtInConstant); + snprintf(builtInConstant, maxSize, "const int gl_MaxComputeTextureImageUnits = %d;", resources.maxComputeTextureImageUnits); + s.append(builtInConstant); + + s.append("\n"); + } + +#ifndef GLSLANG_WEB // images (some in compute below) if ((profile == EEsProfile && version >= 310) || (profile != EEsProfile && version >= 130)) { @@ -6601,6 +6630,18 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf s.append(builtInConstant); } + // compute + if ((profile == EEsProfile && version >= 310) || (profile != EEsProfile && version >= 420)) { + snprintf(builtInConstant, maxSize, "const int gl_MaxComputeImageUniforms = %d;", resources.maxComputeImageUniforms); + s.append(builtInConstant); + snprintf(builtInConstant, maxSize, "const int gl_MaxComputeAtomicCounters = %d;", resources.maxComputeAtomicCounters); + s.append(builtInConstant); + snprintf(builtInConstant, maxSize, "const int gl_MaxComputeAtomicCounterBuffers = %d;", resources.maxComputeAtomicCounterBuffers); + s.append(builtInConstant); + + s.append("\n"); + } + // atomic counters (some in compute below) if ((profile == EEsProfile && version >= 310) || (profile != EEsProfile && version >= 420)) { @@ -6638,31 +6679,6 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf s.append("\n"); } - // compute - if ((profile == EEsProfile && version >= 310) || (profile != EEsProfile && version >= 420)) { - snprintf(builtInConstant, maxSize, "const ivec3 gl_MaxComputeWorkGroupCount = ivec3(%d,%d,%d);", resources.maxComputeWorkGroupCountX, - resources.maxComputeWorkGroupCountY, - resources.maxComputeWorkGroupCountZ); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const ivec3 gl_MaxComputeWorkGroupSize = ivec3(%d,%d,%d);", resources.maxComputeWorkGroupSizeX, - resources.maxComputeWorkGroupSizeY, - resources.maxComputeWorkGroupSizeZ); - s.append(builtInConstant); - - snprintf(builtInConstant, maxSize, "const int gl_MaxComputeUniformComponents = %d;", resources.maxComputeUniformComponents); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxComputeTextureImageUnits = %d;", resources.maxComputeTextureImageUnits); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxComputeImageUniforms = %d;", resources.maxComputeImageUniforms); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxComputeAtomicCounters = %d;", resources.maxComputeAtomicCounters); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxComputeAtomicCounterBuffers = %d;", resources.maxComputeAtomicCounterBuffers); - s.append(builtInConstant); - - s.append("\n"); - } - // GL_ARB_cull_distance if (profile != EEsProfile && version >= 450) { snprintf(builtInConstant, maxSize, "const int gl_MaxCullDistances = %d;", resources.maxCullDistances); @@ -7547,7 +7563,6 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion #endif break; -#ifndef GLSLANG_WEB case EShLangCompute: BuiltInVariable("gl_NumWorkGroups", EbvNumWorkGroups, symbolTable); BuiltInVariable("gl_WorkGroupSize", EbvWorkGroupSize, symbolTable); @@ -7556,6 +7571,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion BuiltInVariable("gl_GlobalInvocationID", EbvGlobalInvocationId, symbolTable); BuiltInVariable("gl_LocalInvocationIndex", EbvLocalInvocationIndex, symbolTable); +#ifndef GLSLANG_WEB if (profile != EEsProfile && version < 430) { symbolTable.setVariableExtensions("gl_NumWorkGroups", 1, &E_GL_ARB_compute_shader); symbolTable.setVariableExtensions("gl_WorkGroupSize", 1, &E_GL_ARB_compute_shader); @@ -7635,6 +7651,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion BuiltInVariable("gl_WarpIDNV", EbvWarpID, symbolTable); BuiltInVariable("gl_SMIDNV", EbvSMID, symbolTable); } +#endif if ((profile != EEsProfile && version >= 140) || (profile == EEsProfile && version >= 310)) { @@ -7644,6 +7661,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion BuiltInVariable("gl_ViewIndex", EbvViewIndex, symbolTable); } +#ifndef GLSLANG_WEB // GL_KHR_shader_subgroup if ((profile == EEsProfile && version >= 310) || (profile != EEsProfile && version >= 140)) { @@ -8088,6 +8106,9 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.relateToOperator("packUint2x32", EOpPackUint2x32); symbolTable.relateToOperator("unpackUint2x32", EOpUnpackUint2x32); + symbolTable.relateToOperator("barrier", EOpBarrier); + symbolTable.relateToOperator("memoryBarrier", EOpMemoryBarrier); + #ifndef GLSLANG_WEB symbolTable.relateToOperator("packInt2x16", EOpPackInt2x16); symbolTable.relateToOperator("unpackInt2x16", EOpUnpackInt2x16); @@ -8109,9 +8130,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.relateToOperator("unpack16", EOpUnpack16); symbolTable.relateToOperator("unpack8", EOpUnpack8); - symbolTable.relateToOperator("barrier", EOpBarrier); symbolTable.relateToOperator("controlBarrier", EOpBarrier); - symbolTable.relateToOperator("memoryBarrier", EOpMemoryBarrier); symbolTable.relateToOperator("memoryBarrierAtomicCounter", EOpMemoryBarrierAtomicCounter); symbolTable.relateToOperator("memoryBarrierBuffer", EOpMemoryBarrierBuffer); symbolTable.relateToOperator("memoryBarrierImage", EOpMemoryBarrierImage); @@ -8443,8 +8462,8 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion #endif } -#ifndef GLSLANG_WEB switch(language) { +#ifndef GLSLANG_WEB case EShLangVertex: break; @@ -8479,10 +8498,12 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.relateToOperator("endInvocationInterlockARB", EOpEndInvocationInterlock); break; +#endif case EShLangCompute: symbolTable.relateToOperator("memoryBarrierShared", EOpMemoryBarrierShared); symbolTable.relateToOperator("groupMemoryBarrier", EOpGroupMemoryBarrier); +#ifndef GLSLANG_WEB symbolTable.relateToOperator("subgroupMemoryBarrierShared", EOpSubgroupMemoryBarrierShared); if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 320)) { @@ -8499,8 +8520,10 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.relateToOperator("coopMatLoadNV", EOpCooperativeMatrixLoad); symbolTable.relateToOperator("coopMatStoreNV", EOpCooperativeMatrixStore); symbolTable.relateToOperator("coopMatMulAddNV", EOpCooperativeMatrixMulAdd); +#endif break; +#ifndef GLSLANG_WEB case EShLangRayGenNV: case EShLangClosestHitNV: case EShLangMissNV: @@ -8539,8 +8562,8 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion default: assert(false && "Language not supported"); - } #endif + } } // diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index e9ff3208..786da187 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -3387,11 +3387,11 @@ void TParseContext::globalQualifierTypeCheck(const TSourceLoc& loc, const TQuali requireProfile(loc, ~EEsProfile, "fragment-shader struct input containing an array"); } break; -#ifndef GLSLANG_WEB case EShLangCompute: if (! symbolTable.atBuiltInLevel()) error(loc, "global storage input qualifier cannot be used in a compute shader", "in", ""); break; +#ifndef GLSLANG_WEB case EShLangTessControl: if (qualifier.patch) error(loc, "can only use on output in tessellation-control shader", "patch", ""); @@ -3432,10 +3432,10 @@ void TParseContext::globalQualifierTypeCheck(const TSourceLoc& loc, const TQuali error(loc, "cannot contain a double, int64, or uint64", GetStorageQualifierString(qualifier.storage), ""); break; -#ifndef GLSLANG_WEB case EShLangCompute: error(loc, "global storage output qualifier cannot be used in a compute shader", "out", ""); break; +#ifndef GLSLANG_WEB case EShLangTessEvaluation: if (qualifier.patch) error(loc, "can only use on input in tessellation-evaluation shader", "patch", ""); @@ -5293,11 +5293,10 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi error(loc, "needs a literal integer", "buffer_reference_align", ""); return; } +#endif switch (language) { - case EShLangVertex: - break; - +#ifndef GLSLANG_WEB case EShLangTessControl: if (id == "vertices") { if (value == 0) @@ -5310,9 +5309,6 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi } break; - case EShLangTessEvaluation: - break; - case EShLangGeometry: if (id == "invocations") { profileRequires(loc, ECompatibilityProfile | ECoreProfile, 400, nullptr, "invocations"); @@ -5385,6 +5381,7 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi case EShLangTaskNV: // Fall through +#endif case EShLangCompute: if (id.compare(0, 11, "local_size_") == 0) { if (language == EShLangMeshNV || language == EShLangTaskNV) { @@ -5432,12 +5429,11 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi } } break; + default: break; } -#endif // GLSLANG_WEB - error(loc, "there is no such layout identifier for this stage taking an assigned value", id.c_str(), ""); } @@ -8004,6 +8000,7 @@ void TParseContext::updateStandaloneQualifierDefaults(const TSourceLoc& loc, con else error(loc, "can only apply to 'in'", "point_mode", ""); } +#endif for (int i = 0; i < 3; ++i) { if (publicType.shaderQualifiers.localSizeNotDefault[i]) { if (publicType.qualifier.storage == EvqVaryingIn) { @@ -8063,6 +8060,7 @@ void TParseContext::updateStandaloneQualifierDefaults(const TSourceLoc& loc, con } } +#ifndef GLSLANG_WEB if (publicType.shaderQualifiers.earlyFragmentTests) { if (publicType.qualifier.storage == EvqVaryingIn) intermediate.setEarlyFragmentTests(); diff --git a/glslang/MachineIndependent/Scan.cpp b/glslang/MachineIndependent/Scan.cpp index 8e54de88..459e49a3 100644 --- a/glslang/MachineIndependent/Scan.cpp +++ b/glslang/MachineIndependent/Scan.cpp @@ -1058,13 +1058,12 @@ int TScanContext::tokenizeIdentifier() case SUBROUTINE: return es30ReservedFromGLSL(400); +#endif case SHARED: if ((parseContext.isEsProfile() && parseContext.version < 300) || (!parseContext.isEsProfile() && parseContext.version < 140)) return identifierOrType(); return keyword; -#endif - case LAYOUT: { const int numLayoutExts = 2; diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp index 9b3cdc6d..f14d442a 100644 --- a/glslang/MachineIndependent/ShaderLang.cpp +++ b/glslang/MachineIndependent/ShaderLang.cpp @@ -341,6 +341,7 @@ bool InitializeSymbolTables(TInfoSink& infoSink, TSymbolTable** commonTable, TS (profile == EEsProfile && version >= 310)) InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangGeometry, source, infoSink, commonTable, symbolTables); +#endif // check for compute if ((profile != EEsProfile && version >= 420) || @@ -348,6 +349,7 @@ bool InitializeSymbolTables(TInfoSink& infoSink, TSymbolTable** commonTable, TS InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangCompute, source, infoSink, commonTable, symbolTables); +#ifndef GLSLANG_WEB // check for ray tracing stages if (profile != EEsProfile && version >= 450) { InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangRayGenNV, source, diff --git a/glslang/MachineIndependent/Versions.cpp b/glslang/MachineIndependent/Versions.cpp index bccf6a55..518ba6cd 100644 --- a/glslang/MachineIndependent/Versions.cpp +++ b/glslang/MachineIndependent/Versions.cpp @@ -527,11 +527,11 @@ const char* StageName(EShLanguage stage) switch(stage) { case EShLangVertex: return "vertex"; case EShLangFragment: return "fragment"; + case EShLangCompute: return "compute"; #ifndef GLSLANG_WEB case EShLangTessControl: return "tessellation control"; case EShLangTessEvaluation: return "tessellation evaluation"; case EShLangGeometry: return "geometry"; - case EShLangCompute: return "compute"; case EShLangRayGenNV: return "ray-generation"; case EShLangIntersectNV: return "intersection"; case EShLangAnyHitNV: return "any-hit"; diff --git a/glslang/MachineIndependent/glslang.m4 b/glslang/MachineIndependent/glslang.m4 index 1b463ecc..e9780e2a 100644 --- a/glslang/MachineIndependent/glslang.m4 +++ b/glslang/MachineIndependent/glslang.m4 @@ -1360,7 +1360,6 @@ storage_qualifier $$.init($1.loc); $$.qualifier.storage = EvqUniform; } -GLSLANG_WEB_EXCLUDE_ON | SHARED { parseContext.globalCheck($1.loc, "shared"); parseContext.profileRequires($1.loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared"); @@ -1369,6 +1368,7 @@ GLSLANG_WEB_EXCLUDE_ON $$.init($1.loc); $$.qualifier.storage = EvqShared; } +GLSLANG_WEB_EXCLUDE_ON | BUFFER { parseContext.globalCheck($1.loc, "buffer"); $$.init($1.loc); diff --git a/glslang/MachineIndependent/glslang.y b/glslang/MachineIndependent/glslang.y index e308825a..5001f60f 100644 --- a/glslang/MachineIndependent/glslang.y +++ b/glslang/MachineIndependent/glslang.y @@ -1156,6 +1156,14 @@ storage_qualifier $$.init($1.loc); $$.qualifier.storage = EvqUniform; } + | SHARED { + parseContext.globalCheck($1.loc, "shared"); + parseContext.profileRequires($1.loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared"); + parseContext.profileRequires($1.loc, EEsProfile, 310, 0, "shared"); + parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangComputeMask | EShLangMeshNVMask | EShLangTaskNVMask), "shared"); + $$.init($1.loc); + $$.qualifier.storage = EvqShared; + } ; diff --git a/glslang/MachineIndependent/glslang_tab.cpp b/glslang/MachineIndependent/glslang_tab.cpp index 8b9ec345..4488b699 100644 --- a/glslang/MachineIndependent/glslang_tab.cpp +++ b/glslang/MachineIndependent/glslang_tab.cpp @@ -578,18 +578,18 @@ union yyalloc #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 122 +#define YYFINAL 123 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 3110 +#define YYLAST 3111 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 143 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 103 /* YYNRULES -- Number of rules. */ -#define YYNRULES 293 +#define YYNRULES 294 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 422 +#define YYNSTATES 423 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ @@ -663,22 +663,22 @@ static const yytype_uint16 yyrline[] = 939, 942, 946, 950, 955, 963, 968, 973, 978, 983, 992, 1002, 1029, 1038, 1045, 1056, 1062, 1065, 1072, 1076, 1080, 1090, 1093, 1104, 1107, 1110, 1114, 1118, 1126, 1130, - 1135, 1141, 1147, 1154, 1165, 1170, 1180, 1185, 1193, 1197, - 1207, 1210, 1216, 1222, 1229, 1239, 1243, 1247, 1251, 1256, - 1260, 1265, 1270, 1275, 1280, 1285, 1290, 1295, 1300, 1305, - 1311, 1317, 1323, 1328, 1333, 1338, 1343, 1348, 1353, 1358, - 1363, 1368, 1373, 1378, 1384, 1389, 1394, 1399, 1404, 1409, - 1414, 1420, 1425, 1430, 1435, 1440, 1445, 1450, 1456, 1461, - 1466, 1471, 1476, 1481, 1486, 1491, 1496, 1501, 1506, 1511, - 1516, 1521, 1526, 1532, 1537, 1553, 1558, 1563, 1571, 1571, - 1582, 1582, 1592, 1595, 1608, 1630, 1657, 1661, 1667, 1672, - 1683, 1692, 1696, 1697, 1703, 1704, 1705, 1706, 1707, 1708, - 1709, 1716, 1717, 1721, 1717, 1733, 1734, 1738, 1738, 1745, - 1745, 1759, 1762, 1770, 1778, 1789, 1790, 1794, 1800, 1807, - 1811, 1819, 1823, 1836, 1842, 1842, 1862, 1865, 1871, 1883, - 1895, 1901, 1901, 1916, 1916, 1932, 1932, 1953, 1956, 1962, - 1965, 1971, 1975, 1982, 1987, 1992, 1999, 2002, 2011, 2015, - 2024, 2027, 2034, 2034 + 1135, 1141, 1147, 1154, 1159, 1173, 1178, 1188, 1193, 1201, + 1205, 1215, 1218, 1224, 1230, 1237, 1247, 1251, 1255, 1259, + 1264, 1268, 1273, 1278, 1283, 1288, 1293, 1298, 1303, 1308, + 1313, 1319, 1325, 1331, 1336, 1341, 1346, 1351, 1356, 1361, + 1366, 1371, 1376, 1381, 1386, 1392, 1397, 1402, 1407, 1412, + 1417, 1422, 1428, 1433, 1438, 1443, 1448, 1453, 1458, 1464, + 1469, 1474, 1479, 1484, 1489, 1494, 1499, 1504, 1509, 1514, + 1519, 1524, 1529, 1534, 1540, 1545, 1561, 1566, 1571, 1579, + 1579, 1590, 1590, 1600, 1603, 1616, 1638, 1665, 1669, 1675, + 1680, 1691, 1700, 1704, 1705, 1711, 1712, 1713, 1714, 1715, + 1716, 1717, 1724, 1725, 1729, 1725, 1741, 1742, 1746, 1746, + 1753, 1753, 1767, 1770, 1778, 1786, 1797, 1798, 1802, 1808, + 1815, 1819, 1827, 1831, 1844, 1850, 1850, 1870, 1873, 1879, + 1891, 1903, 1909, 1909, 1924, 1924, 1940, 1940, 1961, 1964, + 1970, 1973, 1979, 1983, 1990, 1995, 2000, 2007, 2010, 2019, + 2023, 2032, 2035, 2042, 2042 }; #endif @@ -774,12 +774,12 @@ static const yytype_uint16 yytoknum[] = }; # endif -#define YYPACT_NINF -357 +#define YYPACT_NINF -362 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-357))) + (!!((Yystate) == (-362))) -#define YYTABLE_NINF -248 +#define YYTABLE_NINF -249 #define yytable_value_is_error(Yytable_value) \ 0 @@ -788,49 +788,49 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - 1676, -357, -357, -357, -357, -357, -357, -357, -357, -357, - -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, - -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, - -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, - -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, - -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, - -357, -357, -357, 42, -357, -357, -357, -357, -357, -70, - -357, -357, -357, -357, -57, -357, -69, -48, -21, -15, - 2236, -6, -357, -37, -357, -357, -357, 1536, -357, -357, - -357, -40, -357, -357, 416, -357, -357, 2985, -357, 3, - -96, -357, -29, -357, 14, -357, 2236, -357, -357, -357, - 2236, -14, 5, -357, -53, -357, -52, -357, -357, 2741, - 9, -357, -357, -357, 37, 2236, -357, 66, -357, -12, - -357, 2375, -357, -28, 556, -357, -357, -357, -357, 9, - -34, -357, 2741, -25, -357, 41, -357, 28, 2741, 2741, - 2741, -357, -357, -357, -357, -357, -357, -357, -357, -357, - -357, -357, -43, -357, -357, -357, 50, -10, 2863, 72, - -357, 2741, -357, -65, 77, -357, 2236, 55, 1816, -357, - 2236, 2741, -357, -96, -357, -357, 38, 36, 8, -47, - 40, 70, 76, 73, 114, 113, -58, 100, 2497, -357, - 99, -357, -357, 108, 101, 102, -357, 109, 110, 104, - 2619, 115, 2741, 111, 67, -357, -357, 29, -357, -48, - 116, -357, -357, -357, -357, 696, -357, -357, -357, -357, - -357, -357, -357, -357, -357, 77, 2741, -23, -357, -357, - 2741, 2236, -357, 81, -357, -357, -357, -5, -357, -357, - 2741, 82, -357, -357, 2741, 119, -357, -357, -357, 2741, - -357, 55, 9, 30, -357, -357, -357, 1956, -357, -357, - -357, 2741, 2741, 2741, 2741, 2741, 2741, 2741, 2741, 2741, - 2741, 2741, 2741, 2741, 2741, 2741, 2741, 2741, 2741, 2741, - -357, -357, -357, 118, -357, 836, -357, -357, -357, 836, - -357, 2741, -357, -357, 35, 2741, 63, -357, -357, -357, - -357, -357, -357, -357, -357, -357, -357, -357, -357, 2741, - 2741, -357, -357, -357, -357, 2741, -357, 2096, -357, -357, - 120, 121, -357, -357, -357, 39, 77, 55, -357, -357, - -357, -357, -357, 38, 38, 36, 36, 8, 8, 8, - 8, -47, -47, 40, 70, 76, 73, 114, 113, 2741, - -357, 836, 1396, 78, 1256, -1, -357, 2, -357, -357, - -357, -357, -357, -357, -357, -357, 75, 122, 121, 90, - 2236, 128, 130, -357, -357, 1396, 127, -357, 2741, -357, - 124, 976, 2741, -357, 126, 133, 89, 134, 1116, -357, - 135, -357, 2741, -357, -357, -357, 7, 2741, 976, 127, - -357, -357, 836, -357, 131, 121, -357, -357, 836, 137, - -357, -357 + 1677, -362, -362, -362, -362, -362, -362, -362, -362, -362, + -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, + -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, + -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, + -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, + -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, + -362, -362, -362, 20, -362, -362, -362, -362, -362, -66, + -362, -362, -362, -362, -362, -43, -362, -73, -33, -11, + 3, 2237, -19, -362, -29, -362, -362, -362, 1537, -362, + -362, -362, 2, -362, -362, 417, -362, -362, 2986, -362, + 11, -90, -362, -28, -362, 24, -362, 2237, -362, -362, + -362, 2237, 5, 18, -362, -58, -362, -18, -362, -362, + 2742, 55, -362, -362, -362, 61, 2237, -362, 21, -362, + -54, -362, 2376, -362, -26, 557, -362, -362, -362, -362, + 55, -30, -362, 2742, -24, -362, 43, -362, -7, 2742, + 2742, 2742, -362, -362, -362, -362, -362, -362, -362, -362, + -362, -362, -362, -41, -362, -362, -362, 87, -49, 2864, + 73, -362, 2742, -362, -59, 90, -362, 2237, 57, 1817, + -362, 2237, 2742, -362, -90, -362, -362, 33, -39, 72, + -50, 70, 76, 75, 80, 107, 114, -52, 105, 2498, + -362, 104, -362, -362, 110, 101, 102, -362, 113, 116, + 108, 2620, 117, 2742, 106, 69, -362, -362, 17, -362, + -33, 119, -362, -362, -362, -362, 697, -362, -362, -362, + -362, -362, -362, -362, -362, -362, 90, 2742, -15, -362, + -362, 2742, 2237, -362, 84, -362, -362, -362, -6, -362, + -362, 2742, 85, -362, -362, 2742, 121, -362, -362, -362, + 2742, -362, 57, 55, 28, -362, -362, -362, 1957, -362, + -362, -362, 2742, 2742, 2742, 2742, 2742, 2742, 2742, 2742, + 2742, 2742, 2742, 2742, 2742, 2742, 2742, 2742, 2742, 2742, + 2742, -362, -362, -362, 120, -362, 837, -362, -362, -362, + 837, -362, 2742, -362, -362, 30, 2742, 62, -362, -362, + -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, + 2742, 2742, -362, -362, -362, -362, 2742, -362, 2097, -362, + -362, 122, 124, -362, -362, -362, 32, 90, 57, -362, + -362, -362, -362, -362, 33, 33, -39, -39, 72, 72, + 72, 72, -50, -50, 70, 76, 75, 80, 107, 114, + 2742, -362, 837, 1397, 82, 1257, -3, -362, 1, -362, + -362, -362, -362, -362, -362, -362, -362, 74, 123, 124, + 88, 2237, 128, 132, -362, -362, 1397, 130, -362, 2742, + -362, 126, 977, 2742, -362, 129, 135, 92, 134, 1117, + -362, 137, -362, 2742, -362, -362, -362, 4, 2742, 977, + 130, -362, -362, 837, -362, 133, 124, -362, -362, 837, + 140, -362, -362 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -838,81 +838,81 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 0, 138, 159, 157, 158, 156, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 160, 161, 162, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 211, 212, 199, 200, 202, - 201, 203, 204, 205, 206, 207, 208, 209, 210, 122, - 215, 216, 217, 0, 214, 142, 140, 141, 139, 0, - 155, 143, 124, 123, 0, 291, 0, 292, 0, 99, - 98, 0, 110, 115, 137, 136, 134, 0, 131, 133, - 120, 151, 135, 213, 0, 288, 290, 0, 220, 0, - 0, 87, 0, 84, 0, 97, 0, 106, 100, 108, - 0, 109, 0, 85, 116, 90, 0, 132, 121, 0, - 144, 150, 1, 289, 0, 0, 218, 128, 130, 0, - 126, 0, 88, 0, 0, 293, 101, 105, 107, 103, - 111, 102, 0, 117, 93, 0, 91, 0, 0, 0, - 0, 33, 32, 34, 31, 5, 6, 7, 8, 2, - 3, 9, 27, 11, 16, 17, 0, 0, 21, 0, - 153, 0, 25, 0, 145, 86, 0, 0, 0, 222, - 0, 0, 125, 0, 146, 35, 39, 42, 45, 50, - 53, 55, 57, 59, 61, 63, 65, 0, 0, 89, - 242, 251, 255, 0, 0, 0, 273, 0, 0, 0, - 0, 0, 0, 0, 35, 68, 81, 0, 231, 0, - 120, 234, 253, 233, 232, 0, 235, 236, 257, 237, - 263, 238, 239, 270, 240, 104, 0, 112, 230, 119, - 0, 0, 95, 0, 92, 28, 29, 0, 13, 14, - 0, 0, 19, 18, 0, 155, 22, 24, 30, 0, - 152, 0, 228, 0, 226, 221, 223, 0, 83, 129, - 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 138, 160, 158, 159, 157, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 161, 162, 163, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 212, 213, 200, 201, 203, + 202, 204, 205, 206, 207, 208, 209, 210, 211, 122, + 216, 217, 218, 0, 215, 142, 140, 141, 139, 0, + 156, 143, 144, 124, 123, 0, 292, 0, 293, 0, + 99, 98, 0, 110, 115, 137, 136, 134, 0, 131, + 133, 120, 152, 135, 214, 0, 289, 291, 0, 221, + 0, 0, 87, 0, 84, 0, 97, 0, 106, 100, + 108, 0, 109, 0, 85, 116, 90, 0, 132, 121, + 0, 145, 151, 1, 290, 0, 0, 219, 128, 130, + 0, 126, 0, 88, 0, 0, 294, 101, 105, 107, + 103, 111, 102, 0, 117, 93, 0, 91, 0, 0, + 0, 0, 33, 32, 34, 31, 5, 6, 7, 8, + 2, 3, 9, 27, 11, 16, 17, 0, 0, 21, + 0, 154, 0, 25, 0, 146, 86, 0, 0, 0, + 223, 0, 0, 125, 0, 147, 35, 39, 42, 45, + 50, 53, 55, 57, 59, 61, 63, 65, 0, 0, + 89, 243, 252, 256, 0, 0, 0, 274, 0, 0, + 0, 0, 0, 0, 0, 35, 68, 81, 0, 232, + 0, 120, 235, 254, 234, 233, 0, 236, 237, 258, + 238, 264, 239, 240, 271, 241, 104, 0, 112, 231, + 119, 0, 0, 95, 0, 92, 28, 29, 0, 13, + 14, 0, 0, 19, 18, 0, 156, 22, 24, 30, + 0, 153, 0, 229, 0, 227, 222, 224, 0, 83, + 129, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 66, 147, 148, 0, 241, 0, 271, 284, 283, 0, - 275, 0, 287, 285, 0, 0, 0, 269, 71, 72, - 74, 73, 76, 77, 78, 79, 80, 75, 70, 0, - 0, 256, 252, 254, 114, 0, 118, 0, 96, 4, - 0, 15, 12, 23, 154, 0, 229, 0, 224, 219, - 36, 37, 38, 41, 40, 43, 44, 48, 49, 46, - 47, 51, 52, 54, 56, 58, 60, 62, 64, 0, - 149, 243, 0, 0, 0, 0, 286, 0, 268, 69, - 82, 113, 94, 10, 225, 227, 0, 0, 261, 0, - 0, 0, 0, 278, 277, 280, 249, 264, 0, 244, - 0, 0, 0, 279, 0, 0, 260, 0, 0, 258, - 0, 67, 0, 246, 272, 245, 0, 281, 0, 249, - 248, 250, 266, 262, 0, 282, 276, 259, 267, 0, - 274, 265 + 0, 66, 148, 149, 0, 242, 0, 272, 285, 284, + 0, 276, 0, 288, 286, 0, 0, 0, 270, 71, + 72, 74, 73, 76, 77, 78, 79, 80, 75, 70, + 0, 0, 257, 253, 255, 114, 0, 118, 0, 96, + 4, 0, 15, 12, 23, 155, 0, 230, 0, 225, + 220, 36, 37, 38, 41, 40, 43, 44, 48, 49, + 46, 47, 51, 52, 54, 56, 58, 60, 62, 64, + 0, 150, 244, 0, 0, 0, 0, 287, 0, 269, + 69, 82, 113, 94, 10, 226, 228, 0, 0, 262, + 0, 0, 0, 0, 279, 278, 281, 250, 265, 0, + 245, 0, 0, 0, 280, 0, 0, 261, 0, 0, + 259, 0, 67, 0, 247, 273, 246, 0, 282, 0, + 250, 249, 251, 267, 263, 0, 283, 277, 260, 268, + 0, 275, 266 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, - -357, -357, 58, -357, -108, -106, -166, -114, -62, -59, - -56, -60, -55, -61, -357, -123, -357, -138, -357, -145, - -357, 15, -357, -357, -357, 17, -357, -357, -357, 125, - 132, 136, -357, -357, -334, -357, -357, -357, -357, 48, - -79, -84, -357, 0, -107, -357, -357, -357, -357, 169, - -357, -357, -357, -169, -164, -27, -101, -230, -127, -223, - -356, -155, -357, -357, -165, -160, -357, -357, 140, -286, - -119, -357, -357, -357, -134, -357, -357, -357, -357, -357, - -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, - 158, -357, -357 + -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, + -362, -362, 37, -362, -110, -105, -166, -116, -61, -57, + -56, -60, -55, -53, -362, -120, -362, -137, -362, -148, + -362, 10, -362, -362, -362, 13, -362, -362, -362, 136, + 125, 138, -362, -362, -342, -362, -362, -362, -362, 46, + -80, -86, -362, 0, -104, -362, -362, -362, -362, 170, + -362, -362, -362, -167, -172, -27, -99, -232, -125, -222, + -361, -157, -362, -362, -165, -164, -362, -362, 145, -288, + -122, -362, -362, -362, -135, -362, -362, -362, -362, -362, + -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, + 158, -362, -362 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 160, 161, 162, 330, 163, 164, 165, 166, 167, - 168, 169, 214, 171, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 215, 359, 216, 319, 217, - 269, 218, 76, 241, 147, 219, 78, 79, 80, 107, - 108, 109, 81, 82, 83, 84, 85, 86, 129, 130, - 87, 88, 89, 172, 133, 120, 121, 173, 91, 92, - 93, 180, 125, 178, 179, 263, 264, 239, 221, 222, - 223, 224, 295, 377, 404, 396, 397, 398, 405, 225, - 226, 227, 228, 399, 381, 229, 230, 400, 419, 231, - 232, 233, 362, 299, 364, 385, 394, 395, 234, 94, - 95, 96, 104 + -1, 161, 162, 163, 331, 164, 165, 166, 167, 168, + 169, 170, 215, 172, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 216, 360, 217, 320, 218, + 270, 219, 77, 242, 148, 220, 79, 80, 81, 108, + 109, 110, 82, 83, 84, 85, 86, 87, 130, 131, + 88, 89, 90, 173, 134, 121, 122, 174, 92, 93, + 94, 181, 126, 179, 180, 264, 265, 240, 222, 223, + 224, 225, 296, 378, 405, 397, 398, 399, 406, 226, + 227, 228, 229, 400, 382, 230, 231, 401, 420, 232, + 233, 234, 363, 300, 365, 386, 395, 396, 235, 95, + 96, 97, 105 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -920,573 +920,379 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 90, 110, 323, 117, 238, 247, 324, 143, 197, 361, - 326, 267, 289, 174, 266, 75, 98, 77, 278, 279, - 248, 249, 127, 101, 259, 100, 117, 110, 379, 141, - 256, 131, 235, 237, 144, 403, 260, 145, 142, -26, - 146, 250, 411, 128, 103, 251, 176, 290, 99, 102, - 131, 379, 403, 280, 281, 131, 198, 236, 268, 198, - 119, 198, 105, 132, 199, 304, 240, 306, 325, 276, - 277, 182, 327, 253, 106, 293, 363, 183, 329, 254, - 111, 114, 386, 112, 320, 387, 113, 118, 320, 126, - 414, 320, 117, 131, 90, 371, 320, 124, 238, 176, - 134, 176, 238, 266, 139, 331, 111, 282, 283, 75, - 111, 77, 347, 348, 349, 350, 333, 243, 320, 337, - 244, 321, 338, 140, 320, 177, 418, 366, 337, 175, - 274, 374, 275, 252, 220, 271, 272, 273, 323, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 60, - 61, 62, 320, 368, 257, 336, 365, 181, 318, 242, - 367, 198, 176, 266, 320, 388, 343, 344, 351, 352, - 345, 346, 413, 262, 284, 286, 261, 170, 177, 285, - 177, 369, 370, 287, 288, 291, 294, 238, 176, 185, - 296, 300, 301, 297, 298, 323, 302, 305, -25, 328, - 332, 307, -20, 360, 382, 373, 245, 246, 390, 389, - 320, 391, 392, -247, 376, 402, 408, 378, 407, 409, - 200, 412, 353, 420, 421, 220, 354, 356, 358, 258, - 355, 270, 97, 357, 335, 137, 375, 383, 136, 185, - 378, 177, 410, 416, 135, 384, 138, 406, 176, 417, - 401, 393, 123, 0, 0, 0, 185, 0, 0, 0, - 0, 0, 415, 0, 238, 0, 0, 177, 0, 0, + 91, 111, 118, 248, 324, 325, 239, 267, 362, 327, + 76, 144, 198, 78, 268, 279, 280, 175, 290, 102, + 99, 380, 249, 250, 142, 118, 132, 111, 128, 183, + 260, 404, 257, 143, 254, 184, 236, 238, 412, 101, + 255, -26, 261, 251, 380, 103, 177, 252, 404, 129, + 281, 282, 100, 291, 132, 275, 132, 276, 199, 104, + 199, 237, 269, 305, 133, 307, 200, 241, 145, 199, + 113, 146, 106, 114, 147, 328, 326, 330, 364, 294, + 387, 112, 244, 321, 388, 245, 321, 415, 119, 115, + 321, 118, 107, 321, 372, 91, 267, 127, 125, 177, + 239, 177, 120, 332, 239, 76, 321, 112, 78, 322, + 135, 112, 182, 348, 349, 350, 351, 338, 334, 321, + 339, 338, 367, 140, 375, 419, 178, 60, 61, 62, + 272, 273, 274, 277, 278, 221, 141, 283, 284, 132, + 324, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 321, 369, 176, 366, 258, 267, 171, 368, 337, + 319, 243, 177, 321, 389, 344, 345, 352, 353, 186, + 253, 414, 346, 347, 199, 263, 288, 262, 286, 178, + 285, 178, 287, 370, 371, 289, 246, 247, 177, 239, + 292, 295, 297, 298, 299, 301, 308, 324, 302, 306, + 303, -25, 329, 333, -20, 361, 391, 374, 383, 259, + 390, 392, 377, 321, 393, 379, -248, 403, 409, 186, + 201, 408, 410, 413, 354, 421, 221, 422, 357, 355, + 271, 356, 137, 98, 358, 336, 186, 359, 379, 376, + 384, 411, 178, 385, 417, 407, 418, 138, 177, 139, + 136, 394, 402, 124, 0, 0, 0, 0, 0, 0, + 416, 0, 0, 0, 0, 0, 239, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 380, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 220, 117, 0, 0, 220, - 0, 0, 0, 0, 0, 0, 380, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 334, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 177, 0, 340, - 341, 342, 185, 185, 185, 185, 185, 185, 185, 185, - 185, 185, 185, 185, 185, 185, 185, 185, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 220, 220, 0, 220, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 118, 0, 0, 0, 0, 220, 0, 0, 0, 0, - 0, 220, 0, 0, 0, 0, 0, 0, 220, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, - 0, 0, 220, 0, 0, 0, 122, 0, 220, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 0, 0, 0, + 0, 0, 0, 381, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 118, 221, 335, 0, 0, + 221, 0, 0, 0, 0, 0, 381, 0, 0, 341, + 342, 343, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 178, 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, 221, 221, 0, 221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 59, 60, 61, 62, 63, 0, 0, 0, - 0, 0, 0, 0, 0, 64, 65, 66, 67, 68, - 69, 70, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 71, 0, 72, 73, 74, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 0, 0, 148, - 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 150, 0, - 0, 0, 200, 201, 0, 0, 0, 0, 202, 151, - 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 59, 60, 61, 62, 63, 0, 0, 0, - 155, 156, 157, 158, 159, 64, 65, 66, 67, 68, - 69, 70, 203, 204, 205, 206, 0, 207, 208, 209, - 210, 211, 212, 213, 71, 0, 72, 73, 74, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 0, 0, 148, - 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 150, 0, - 0, 0, 200, 322, 0, 0, 0, 0, 202, 151, - 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 59, 60, 61, 62, 63, 0, 0, 0, - 155, 156, 157, 158, 159, 64, 65, 66, 67, 68, - 69, 70, 203, 204, 205, 206, 0, 207, 208, 209, - 210, 211, 212, 213, 71, 0, 72, 73, 74, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 0, 0, 148, - 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 150, 0, - 0, 0, 200, 0, 0, 0, 0, 0, 202, 151, - 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 59, 60, 61, 62, 63, 0, 0, 0, - 155, 156, 157, 158, 159, 64, 65, 66, 67, 68, - 69, 70, 203, 204, 205, 206, 0, 207, 208, 209, - 210, 211, 212, 213, 71, 0, 72, 73, 74, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 0, 0, 148, - 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 150, 0, - 0, 0, 134, 0, 0, 0, 0, 0, 202, 151, - 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 59, 60, 61, 62, 63, 0, 0, 0, - 155, 156, 157, 158, 159, 64, 65, 66, 67, 68, - 69, 70, 203, 204, 205, 206, 0, 207, 208, 209, - 210, 211, 212, 213, 71, 0, 72, 73, 74, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 0, 0, 148, - 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 150, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 202, 151, - 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 59, 60, 61, 62, 63, 0, 0, 0, - 155, 156, 157, 158, 159, 64, 65, 66, 67, 68, - 69, 70, 203, 204, 205, 206, 0, 207, 208, 209, - 210, 211, 212, 213, 71, 0, 72, 73, 74, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 0, 0, 148, - 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 150, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 202, 151, - 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 59, 60, 61, 62, 63, 0, 0, 0, - 155, 156, 157, 158, 159, 64, 65, 66, 67, 68, - 69, 70, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 71, 0, 72, 73, 74, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 0, 0, 148, - 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 150, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 151, - 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 59, 60, 61, 62, 0, 0, 0, 0, - 155, 156, 157, 158, 159, 64, 65, 66, 67, 68, - 69, 70, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 71, 0, 72, 73, 74, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 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, 115, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 59, 60, 61, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 116, 64, 65, 66, 67, 68, - 69, 70, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 71, 0, 72, 73, 74, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 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, 59, 60, 61, 62, 63, 0, 0, 0, - 0, 0, 0, 0, 0, 64, 65, 66, 67, 68, - 69, 70, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 71, 0, 72, 73, 74, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 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, 265, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 59, 60, 61, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 64, 65, 66, 67, 68, - 69, 70, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 71, 0, 72, 73, 74, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 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, 339, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 59, 60, 61, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 64, 65, 66, 67, 68, - 69, 70, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 71, 0, 72, 73, 74, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 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, 372, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 59, 60, 61, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 64, 65, 66, 67, 68, - 69, 70, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 71, 0, 72, 73, 74, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 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, 59, 60, 61, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 64, 65, 66, 67, 68, - 69, 70, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 71, 0, 72, 73, 74, 2, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 0, 0, 148, 149, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 150, 0, 0, - 184, 0, 0, 0, 0, 0, 0, 0, 151, 152, - 153, 154, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, - 156, 157, 158, 159, 64, 0, 0, 0, 0, 69, - 70, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 0, 119, 0, 0, 0, 0, 221, 0, 0, 0, + 0, 0, 221, 0, 0, 0, 0, 0, 0, 221, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 221, + 0, 0, 0, 221, 0, 0, 0, 123, 0, 221, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, - 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, - 0, 0, 292, 0, 0, 0, 0, 0, 0, 0, - 151, 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 155, 156, 157, 158, 159, 64, 0, 0, 0, - 0, 69, 70, 2, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 0, 0, 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 150, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 303, 151, 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 155, 156, 157, 158, 159, 64, 0, - 0, 0, 0, 69, 70, 2, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 0, 0, 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 150, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 151, 152, 153, 154, 0, 0, + 0, 0, 0, 59, 60, 61, 62, 63, 0, 0, + 0, 0, 0, 0, 0, 0, 64, 65, 66, 67, + 68, 69, 70, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 71, 72, 73, 74, 75, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, + 149, 150, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 151, + 0, 0, 0, 201, 202, 0, 0, 0, 0, 203, + 152, 153, 154, 155, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 59, 60, 61, 62, 63, 0, 0, + 0, 156, 157, 158, 159, 160, 64, 65, 66, 67, + 68, 69, 70, 204, 205, 206, 207, 0, 208, 209, + 210, 211, 212, 213, 214, 71, 72, 73, 74, 75, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, + 149, 150, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 151, + 0, 0, 0, 201, 323, 0, 0, 0, 0, 203, + 152, 153, 154, 155, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 59, 60, 61, 62, 63, 0, 0, + 0, 156, 157, 158, 159, 160, 64, 65, 66, 67, + 68, 69, 70, 204, 205, 206, 207, 0, 208, 209, + 210, 211, 212, 213, 214, 71, 72, 73, 74, 75, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, + 149, 150, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 151, + 0, 0, 0, 201, 0, 0, 0, 0, 0, 203, + 152, 153, 154, 155, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 59, 60, 61, 62, 63, 0, 0, + 0, 156, 157, 158, 159, 160, 64, 65, 66, 67, + 68, 69, 70, 204, 205, 206, 207, 0, 208, 209, + 210, 211, 212, 213, 214, 71, 72, 73, 74, 75, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, + 149, 150, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 151, + 0, 0, 0, 135, 0, 0, 0, 0, 0, 203, + 152, 153, 154, 155, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 59, 60, 61, 62, 63, 0, 0, + 0, 156, 157, 158, 159, 160, 64, 65, 66, 67, + 68, 69, 70, 204, 205, 206, 207, 0, 208, 209, + 210, 211, 212, 213, 214, 71, 72, 73, 74, 75, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, + 149, 150, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 151, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 203, + 152, 153, 154, 155, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 59, 60, 61, 62, 63, 0, 0, + 0, 156, 157, 158, 159, 160, 64, 65, 66, 67, + 68, 69, 70, 204, 205, 206, 207, 0, 208, 209, + 210, 211, 212, 213, 214, 71, 72, 73, 74, 75, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, + 149, 150, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 151, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 203, + 152, 153, 154, 155, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 59, 60, 61, 62, 63, 0, 0, + 0, 156, 157, 158, 159, 160, 64, 65, 66, 67, + 68, 69, 70, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 71, 72, 73, 74, 75, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, + 149, 150, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 155, 156, 157, 158, 159, - 64, 0, 0, 0, 0, 69, 70, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 0, 0, 148, 149, 0, 0, + 152, 153, 154, 155, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 59, 60, 61, 62, 0, 0, 0, + 0, 156, 157, 158, 159, 160, 64, 65, 66, 67, + 68, 69, 70, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 71, 72, 73, 74, 75, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 150, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 151, 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 155, 156, 157, - 158, 159, 64, 0, 0, 0, 0, 69, 255, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 59, 60, 61, 62, 0, 0, 0, + 0, 0, 0, 0, 0, 117, 64, 65, 66, 67, + 68, 69, 70, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 71, 72, 73, 74, 75, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 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, 59, 60, 61, 62, 63, 0, 0, + 0, 0, 0, 0, 0, 0, 64, 65, 66, 67, + 68, 69, 70, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 71, 72, 73, 74, 75, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 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, 266, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 59, 60, 61, 62, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 64, 65, 66, 67, + 68, 69, 70, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 71, 72, 73, 74, 75, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 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, 340, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 59, 60, 61, 62, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 64, 65, 66, 67, + 68, 69, 70, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 71, 72, 73, 74, 75, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 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, 373, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 59, 60, 61, 62, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 64, 65, 66, 67, + 68, 69, 70, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 71, 72, 73, 74, 75, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 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, 59, 60, 61, 62, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 64, 65, 66, 67, + 68, 69, 70, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 71, 72, 73, 74, 75, + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 0, 0, 149, + 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 151, 0, + 0, 185, 0, 0, 0, 0, 0, 0, 0, 152, + 153, 154, 155, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 156, 157, 158, 159, 160, 64, 0, 0, 0, 0, + 69, 70, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 0, + 0, 149, 150, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 151, 0, 0, 293, 0, 0, 0, 0, 0, 0, + 0, 152, 153, 154, 155, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 156, 157, 158, 159, 160, 64, 0, 0, + 0, 0, 69, 70, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 0, 0, 149, 150, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 151, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 304, 152, 153, 154, 155, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 156, 157, 158, 159, 160, 64, + 0, 0, 0, 0, 69, 70, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 0, 0, 149, 150, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 151, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 152, 153, 154, 155, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 156, 157, 158, 159, + 160, 64, 0, 0, 0, 0, 69, 70, 2, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 0, 0, 149, 150, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 151, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 152, 153, 154, + 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 156, 157, + 158, 159, 160, 64, 0, 0, 0, 0, 69, 256, + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 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, 64, 0, 0, 0, 0, + 69, 70 +}; + +static const yytype_int16 yycheck[] = +{ + 0, 81, 88, 151, 226, 237, 143, 179, 296, 241, + 0, 115, 132, 0, 181, 65, 66, 121, 70, 92, + 86, 363, 63, 64, 82, 111, 84, 107, 118, 83, + 89, 392, 169, 91, 83, 89, 140, 141, 399, 82, + 89, 82, 101, 84, 386, 118, 126, 88, 409, 139, + 100, 101, 118, 105, 84, 94, 84, 96, 84, 92, + 84, 91, 182, 211, 92, 213, 92, 91, 86, 84, + 89, 89, 83, 92, 92, 242, 91, 83, 300, 199, + 83, 81, 89, 89, 83, 92, 89, 83, 88, 118, + 89, 177, 89, 89, 326, 95, 268, 86, 98, 179, + 237, 181, 100, 251, 241, 95, 89, 107, 95, 92, + 86, 111, 91, 279, 280, 281, 282, 89, 255, 89, + 92, 89, 92, 118, 92, 413, 126, 107, 108, 109, + 97, 98, 99, 61, 62, 135, 118, 67, 68, 84, + 362, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 89, 90, 92, 302, 82, 328, 120, 306, 263, + 91, 118, 242, 89, 90, 275, 276, 283, 284, 132, + 83, 403, 277, 278, 84, 118, 69, 177, 103, 179, + 104, 181, 102, 320, 321, 71, 149, 150, 268, 326, + 85, 87, 82, 92, 92, 82, 90, 419, 82, 82, + 92, 82, 118, 118, 83, 85, 118, 85, 126, 172, + 87, 83, 360, 89, 82, 363, 86, 91, 83, 182, + 86, 92, 130, 86, 285, 92, 226, 87, 288, 286, + 184, 287, 107, 63, 289, 262, 199, 290, 386, 338, + 365, 398, 242, 365, 409, 393, 410, 111, 328, 111, + 105, 386, 389, 95, -1, -1, -1, -1, -1, -1, + 408, -1, -1, -1, -1, -1, 403, -1, 268, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 363, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 381, 296, 260, -1, -1, + 300, -1, -1, -1, -1, -1, 386, -1, -1, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 328, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 362, 363, -1, 365, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 381, -1, -1, -1, -1, 386, -1, -1, -1, + -1, -1, 392, -1, -1, -1, -1, -1, -1, 399, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 409, + -1, -1, -1, 413, -1, -1, -1, 0, -1, 419, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 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, 64, 0, 0, 0, 0, 69, - 70 -}; - -static const yytype_int16 yycheck[] = -{ - 0, 80, 225, 87, 142, 150, 236, 114, 131, 295, - 240, 180, 70, 120, 178, 0, 86, 0, 65, 66, - 63, 64, 118, 92, 89, 82, 110, 106, 362, 82, - 168, 84, 139, 140, 86, 391, 101, 89, 91, 82, - 92, 84, 398, 139, 92, 88, 125, 105, 118, 118, - 84, 385, 408, 100, 101, 84, 84, 91, 181, 84, - 100, 84, 83, 92, 92, 210, 91, 212, 91, 61, - 62, 83, 241, 83, 89, 198, 299, 89, 83, 89, - 80, 118, 83, 89, 89, 83, 92, 87, 89, 86, - 83, 89, 176, 84, 94, 325, 89, 97, 236, 178, - 86, 180, 240, 267, 118, 250, 106, 67, 68, 94, - 110, 94, 278, 279, 280, 281, 254, 89, 89, 89, - 92, 92, 92, 118, 89, 125, 412, 92, 89, 92, - 94, 92, 96, 83, 134, 97, 98, 99, 361, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 107, - 108, 109, 89, 90, 82, 262, 301, 91, 91, 118, - 305, 84, 241, 327, 89, 90, 274, 275, 282, 283, - 276, 277, 402, 118, 104, 102, 176, 119, 178, 103, - 180, 319, 320, 69, 71, 85, 87, 325, 267, 131, - 82, 82, 82, 92, 92, 418, 92, 82, 82, 118, - 118, 90, 83, 85, 126, 85, 148, 149, 118, 87, - 89, 83, 82, 86, 359, 91, 83, 362, 92, 130, - 86, 86, 284, 92, 87, 225, 285, 287, 289, 171, - 286, 183, 63, 288, 261, 110, 337, 364, 106, 181, - 385, 241, 397, 408, 104, 364, 110, 392, 327, 409, - 388, 385, 94, -1, -1, -1, 198, -1, -1, -1, - -1, -1, 407, -1, 402, -1, -1, 267, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 362, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 295, 380, -1, -1, 299, - -1, -1, -1, -1, -1, -1, 385, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 259, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 327, -1, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 285, 286, 287, 288, 289, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 361, 362, -1, 364, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 380, -1, -1, -1, -1, 385, -1, -1, -1, -1, - -1, 391, -1, -1, -1, -1, -1, -1, 398, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 408, -1, - -1, -1, 412, -1, -1, -1, 0, -1, 418, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, -1, -1, -1, + 53, 54, 55, 56, 57, 58, 59, 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 106, 107, 108, 109, 110, -1, -1, -1, - -1, -1, -1, -1, -1, 119, 120, 121, 122, 123, - 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 138, -1, 140, 141, 142, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, -1, -1, 63, - 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, - -1, -1, 86, 87, -1, -1, -1, -1, 92, 93, - 94, 95, 96, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 106, 107, 108, 109, 110, -1, -1, -1, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, -1, 131, 132, 133, - 134, 135, 136, 137, 138, -1, 140, 141, 142, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, -1, -1, 63, - 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, - -1, -1, 86, 87, -1, -1, -1, -1, 92, 93, - 94, 95, 96, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 106, 107, 108, 109, 110, -1, -1, -1, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, -1, 131, 132, 133, - 134, 135, 136, 137, 138, -1, 140, 141, 142, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, -1, -1, 63, - 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, - -1, -1, 86, -1, -1, -1, -1, -1, 92, 93, - 94, 95, 96, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 106, 107, 108, 109, 110, -1, -1, -1, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, -1, 131, 132, 133, - 134, 135, 136, 137, 138, -1, 140, 141, 142, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, -1, -1, 63, - 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, - -1, -1, 86, -1, -1, -1, -1, -1, 92, 93, - 94, 95, 96, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 106, 107, 108, 109, 110, -1, -1, -1, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, -1, 131, 132, 133, - 134, 135, 136, 137, 138, -1, 140, 141, 142, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, -1, -1, 63, - 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 92, 93, - 94, 95, 96, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 106, 107, 108, 109, 110, -1, -1, -1, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, -1, 131, 132, 133, - 134, 135, 136, 137, 138, -1, 140, 141, 142, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, -1, -1, 63, - 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 92, 93, - 94, 95, 96, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 106, 107, 108, 109, 110, -1, -1, -1, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 138, -1, 140, 141, 142, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, -1, -1, 63, - 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, - 94, 95, 96, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 106, 107, 108, 109, -1, -1, -1, -1, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 138, -1, 140, 141, 142, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 92, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 106, 107, 108, 109, -1, -1, -1, -1, - -1, -1, -1, -1, 118, 119, 120, 121, 122, 123, - 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 138, -1, 140, 141, 142, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 106, 107, 108, 109, 110, -1, -1, -1, - -1, -1, -1, -1, -1, 119, 120, 121, 122, 123, - 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 138, -1, 140, 141, 142, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, -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, 87, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 106, 107, 108, 109, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 119, 120, 121, 122, 123, - 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 138, -1, 140, 141, 142, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, -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, 87, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 106, 107, 108, 109, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 119, 120, 121, 122, 123, - 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 138, -1, 140, 141, 142, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, -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, 87, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 106, 107, 108, 109, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 119, 120, 121, 122, 123, - 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 138, -1, 140, 141, 142, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 106, 107, 108, 109, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 119, 120, 121, 122, 123, - 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 138, -1, 140, 141, 142, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, -1, -1, 63, 64, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 82, -1, -1, - 85, -1, -1, -1, -1, -1, -1, -1, 93, 94, - 95, 96, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 114, - 115, 116, 117, 118, 119, -1, -1, -1, -1, 124, - 125, 4, 5, 6, 7, 8, 9, 10, 11, 12, + -1, -1, -1, 106, 107, 108, 109, 110, -1, -1, + -1, -1, -1, -1, -1, -1, 119, 120, 121, 122, + 123, 124, 125, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 138, 139, 140, 141, 142, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, @@ -1494,60 +1300,254 @@ static const yytype_int16 yycheck[] = 53, 54, 55, 56, 57, 58, 59, 60, -1, -1, 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, - -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 86, 87, -1, -1, -1, -1, 92, 93, 94, 95, 96, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 106, 107, 108, 109, 110, -1, -1, + -1, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, -1, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, -1, -1, + 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, + -1, -1, -1, 86, 87, -1, -1, -1, -1, 92, + 93, 94, 95, 96, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 106, 107, 108, 109, 110, -1, -1, + -1, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, -1, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, -1, -1, + 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, + -1, -1, -1, 86, -1, -1, -1, -1, -1, 92, + 93, 94, 95, 96, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 106, 107, 108, 109, 110, -1, -1, + -1, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, -1, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, -1, -1, + 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, + -1, -1, -1, 86, -1, -1, -1, -1, -1, 92, + 93, 94, 95, 96, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 106, 107, 108, 109, 110, -1, -1, + -1, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, -1, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, -1, -1, + 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 92, + 93, 94, 95, 96, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 106, 107, 108, 109, 110, -1, -1, + -1, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, -1, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, -1, -1, + 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 92, + 93, 94, 95, 96, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 106, 107, 108, 109, 110, -1, -1, + -1, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 138, 139, 140, 141, 142, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, -1, -1, + 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 114, 115, 116, 117, 118, 119, -1, -1, -1, - -1, 124, 125, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - -1, -1, 63, 64, -1, -1, -1, -1, -1, -1, + 93, 94, 95, 96, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 106, 107, 108, 109, -1, -1, -1, + -1, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 138, 139, 140, 141, 142, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 82, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 92, 93, 94, 95, 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 114, 115, 116, 117, 118, 119, -1, - -1, -1, -1, 124, 125, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, -1, -1, 63, 64, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 92, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 82, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 93, 94, 95, 96, -1, -1, + -1, -1, -1, 106, 107, 108, 109, -1, -1, -1, + -1, -1, -1, -1, -1, 118, 119, 120, 121, 122, + 123, 124, 125, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 138, 139, 140, 141, 142, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 114, 115, 116, 117, 118, - 119, -1, -1, -1, -1, 124, 125, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, -1, -1, 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 82, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 93, 94, 95, 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 114, 115, 116, - 117, 118, 119, -1, -1, -1, -1, 124, 125, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 106, 107, 108, 109, 110, -1, -1, + -1, -1, -1, -1, -1, -1, 119, 120, 121, 122, + 123, 124, 125, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 138, 139, 140, 141, 142, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, -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, 87, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 106, 107, 108, 109, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 119, 120, 121, 122, + 123, 124, 125, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 138, 139, 140, 141, 142, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, -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, 87, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 106, 107, 108, 109, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 119, 120, 121, 122, + 123, 124, 125, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 138, 139, 140, 141, 142, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, -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, 87, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 106, 107, 108, 109, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 119, 120, 121, 122, + 123, 124, 125, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 138, 139, 140, 141, 142, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 106, 107, 108, 109, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 119, 120, 121, 122, + 123, 124, 125, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 138, 139, 140, 141, 142, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, -1, -1, 63, + 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, + -1, 85, -1, -1, -1, -1, -1, -1, -1, 93, + 94, 95, 96, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 114, 115, 116, 117, 118, 119, -1, -1, -1, -1, + 124, 125, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, + -1, 63, 64, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 82, -1, -1, 85, -1, -1, -1, -1, -1, -1, + -1, 93, 94, 95, 96, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 114, 115, 116, 117, 118, 119, -1, -1, + -1, -1, 124, 125, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, -1, -1, 63, 64, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 82, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 92, 93, 94, 95, 96, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 114, 115, 116, 117, 118, 119, + -1, -1, -1, -1, 124, 125, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, -1, -1, 63, 64, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 82, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 93, 94, 95, 96, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 114, 115, 116, 117, + 118, 119, -1, -1, -1, -1, 124, 125, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, -1, -1, 63, 64, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 82, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 93, 94, 95, + 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 114, 115, + 116, 117, 118, 119, -1, -1, -1, -1, 124, 125, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 119, -1, -1, -1, -1, 124, - 125 + -1, -1, -1, -1, -1, 119, -1, -1, -1, -1, + 124, 125 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1561,42 +1561,42 @@ static const yytype_uint8 yystos[] = 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 106, 107, 108, 109, 110, 119, 120, 121, 122, 123, 124, - 125, 138, 140, 141, 142, 174, 175, 178, 179, 180, - 181, 185, 186, 187, 188, 189, 190, 193, 194, 195, - 196, 201, 202, 203, 242, 243, 244, 202, 86, 118, - 82, 92, 118, 92, 245, 83, 89, 182, 183, 184, - 193, 196, 89, 92, 118, 92, 118, 194, 196, 100, - 198, 199, 0, 243, 196, 205, 86, 118, 139, 191, - 192, 84, 92, 197, 86, 221, 183, 182, 184, 118, - 118, 82, 91, 197, 86, 89, 92, 177, 63, 64, - 82, 93, 94, 95, 96, 114, 115, 116, 117, 118, - 144, 145, 146, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 196, 200, 197, 92, 193, 196, 206, 207, - 204, 91, 83, 89, 85, 155, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 84, 92, - 86, 87, 92, 126, 127, 128, 129, 131, 132, 133, - 134, 135, 136, 137, 155, 168, 170, 172, 174, 178, - 196, 211, 212, 213, 214, 222, 223, 224, 225, 228, - 229, 232, 233, 234, 241, 197, 91, 197, 170, 210, - 91, 176, 118, 89, 92, 155, 155, 172, 63, 64, - 84, 88, 83, 83, 89, 125, 170, 82, 155, 89, - 101, 196, 118, 208, 209, 87, 207, 206, 168, 173, - 192, 97, 98, 99, 94, 96, 61, 62, 65, 66, - 100, 101, 67, 68, 104, 103, 102, 69, 71, 70, - 105, 85, 85, 168, 87, 215, 82, 92, 92, 236, - 82, 82, 92, 92, 172, 82, 172, 90, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 91, 171, - 89, 92, 87, 212, 210, 91, 210, 206, 118, 83, - 147, 172, 118, 170, 155, 208, 197, 89, 92, 87, - 155, 155, 155, 157, 157, 158, 158, 159, 159, 159, - 159, 160, 160, 161, 162, 163, 164, 165, 166, 169, - 85, 222, 235, 212, 237, 172, 92, 172, 90, 170, - 170, 210, 87, 85, 92, 209, 172, 216, 172, 187, - 193, 227, 126, 211, 223, 238, 83, 83, 90, 87, - 118, 83, 82, 227, 239, 240, 218, 219, 220, 226, - 230, 170, 91, 213, 217, 221, 172, 92, 83, 130, - 214, 213, 86, 210, 83, 172, 217, 218, 222, 231, - 92, 87 + 125, 138, 139, 140, 141, 142, 174, 175, 178, 179, + 180, 181, 185, 186, 187, 188, 189, 190, 193, 194, + 195, 196, 201, 202, 203, 242, 243, 244, 202, 86, + 118, 82, 92, 118, 92, 245, 83, 89, 182, 183, + 184, 193, 196, 89, 92, 118, 92, 118, 194, 196, + 100, 198, 199, 0, 243, 196, 205, 86, 118, 139, + 191, 192, 84, 92, 197, 86, 221, 183, 182, 184, + 118, 118, 82, 91, 197, 86, 89, 92, 177, 63, + 64, 82, 93, 94, 95, 96, 114, 115, 116, 117, + 118, 144, 145, 146, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 196, 200, 197, 92, 193, 196, 206, + 207, 204, 91, 83, 89, 85, 155, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 84, + 92, 86, 87, 92, 126, 127, 128, 129, 131, 132, + 133, 134, 135, 136, 137, 155, 168, 170, 172, 174, + 178, 196, 211, 212, 213, 214, 222, 223, 224, 225, + 228, 229, 232, 233, 234, 241, 197, 91, 197, 170, + 210, 91, 176, 118, 89, 92, 155, 155, 172, 63, + 64, 84, 88, 83, 83, 89, 125, 170, 82, 155, + 89, 101, 196, 118, 208, 209, 87, 207, 206, 168, + 173, 192, 97, 98, 99, 94, 96, 61, 62, 65, + 66, 100, 101, 67, 68, 104, 103, 102, 69, 71, + 70, 105, 85, 85, 168, 87, 215, 82, 92, 92, + 236, 82, 82, 92, 92, 172, 82, 172, 90, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 91, + 171, 89, 92, 87, 212, 210, 91, 210, 206, 118, + 83, 147, 172, 118, 170, 155, 208, 197, 89, 92, + 87, 155, 155, 155, 157, 157, 158, 158, 159, 159, + 159, 159, 160, 160, 161, 162, 163, 164, 165, 166, + 169, 85, 222, 235, 212, 237, 172, 92, 172, 90, + 170, 170, 210, 87, 85, 92, 209, 172, 216, 172, + 187, 193, 227, 126, 211, 223, 238, 83, 83, 90, + 87, 118, 83, 82, 227, 239, 240, 218, 219, 220, + 226, 230, 170, 91, 213, 217, 221, 172, 92, 83, + 130, 214, 213, 86, 210, 83, 172, 217, 218, 222, + 231, 92, 87 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ @@ -1616,22 +1616,22 @@ static const yytype_uint8 yyr1[] = 185, 185, 185, 185, 185, 186, 186, 186, 186, 186, 187, 187, 188, 189, 189, 190, 191, 191, 192, 192, 192, 193, 193, 194, 194, 194, 194, 194, 195, 195, - 195, 195, 195, 195, 196, 196, 197, 197, 197, 197, - 198, 198, 199, 200, 200, 201, 201, 201, 201, 201, + 195, 195, 195, 195, 195, 196, 196, 197, 197, 197, + 197, 198, 198, 199, 200, 200, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, - 201, 201, 201, 201, 201, 202, 202, 202, 204, 203, - 205, 203, 206, 206, 207, 207, 208, 208, 209, 209, - 210, 211, 212, 212, 213, 213, 213, 213, 213, 213, - 213, 214, 215, 216, 214, 217, 217, 219, 218, 220, - 218, 221, 221, 222, 222, 223, 223, 224, 225, 226, - 226, 227, 227, 228, 230, 229, 231, 231, 232, 232, - 233, 235, 234, 236, 234, 237, 234, 238, 238, 239, - 239, 240, 240, 241, 241, 241, 241, 241, 242, 242, - 243, 243, 245, 244 + 201, 201, 201, 201, 201, 201, 202, 202, 202, 204, + 203, 205, 203, 206, 206, 207, 207, 208, 208, 209, + 209, 210, 211, 212, 212, 213, 213, 213, 213, 213, + 213, 213, 214, 215, 216, 214, 217, 217, 219, 218, + 220, 218, 221, 221, 222, 222, 223, 223, 224, 225, + 226, 226, 227, 227, 228, 230, 229, 231, 231, 232, + 232, 233, 235, 234, 236, 234, 237, 234, 238, 238, + 239, 239, 240, 240, 241, 241, 241, 241, 241, 242, + 242, 243, 243, 245, 244 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -1651,22 +1651,22 @@ static const yytype_uint8 yyr2[] = 1, 3, 4, 6, 5, 1, 2, 3, 5, 4, 1, 2, 1, 1, 1, 4, 1, 3, 1, 3, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 3, 2, 3, 3, 4, - 1, 0, 3, 1, 3, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 3, 2, 3, 3, + 4, 1, 0, 3, 1, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 0, 6, - 0, 5, 1, 2, 3, 4, 1, 3, 1, 2, - 1, 1, 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, 1, 5, 3, - 1, 1, 4, 1, 0, 8, 0, 1, 3, 2, - 1, 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, 0, + 6, 0, 5, 1, 2, 3, 4, 1, 3, 1, + 2, 1, 1, 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, 1, 5, + 3, 1, 1, 4, 1, 0, 8, 0, 1, 3, + 2, 1, 0, 6, 0, 8, 0, 7, 1, 1, + 1, 0, 2, 3, 2, 2, 2, 3, 2, 1, + 2, 1, 1, 0, 3 }; @@ -3802,17 +3802,30 @@ yyreduce: break; case 144: -#line 1165 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1159 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + parseContext.globalCheck((yyvsp[0].lex).loc, "shared"); + parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared"); + parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 310, 0, "shared"); + parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangComputeMask | EShLangMeshNVMask | EShLangTaskNVMask), "shared"); + (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).qualifier.storage = EvqShared; + } +#line 3815 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 145: +#line 1173 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[-1].interm.type); (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type)); (yyval.interm.type).typeParameters = (yyvsp[0].interm.typeParameters); } -#line 3812 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3825 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 145: -#line 1170 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 146: +#line 1178 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.arrayOfArrayVersionCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes); (yyval.interm.type) = (yyvsp[-2].interm.type); @@ -3820,21 +3833,21 @@ yyreduce: (yyval.interm.type).typeParameters = (yyvsp[-1].interm.typeParameters); (yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes; } -#line 3824 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3837 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 146: -#line 1180 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 147: +#line 1188 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[-1].lex).loc; (yyval.interm).arraySizes = new TArraySizes; (yyval.interm).arraySizes->addInnerSize(); } -#line 3834 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3847 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 147: -#line 1185 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 148: +#line 1193 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[-2].lex).loc; (yyval.interm).arraySizes = new TArraySizes; @@ -3843,20 +3856,20 @@ yyreduce: parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size"); (yyval.interm).arraySizes->addInnerSize(size); } -#line 3847 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3860 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 148: -#line 1193 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 149: +#line 1201 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[-2].interm); (yyval.interm).arraySizes->addInnerSize(); } -#line 3856 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3869 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 149: -#line 1197 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 150: +#line 1205 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[-3].interm); @@ -3864,35 +3877,35 @@ yyreduce: parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size"); (yyval.interm).arraySizes->addInnerSize(size); } -#line 3868 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 150: -#line 1207 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.typeParameters) = (yyvsp[0].interm.typeParameters); - } -#line 3876 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3881 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 151: -#line 1210 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1215 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.typeParameters) = 0; + (yyval.interm.typeParameters) = (yyvsp[0].interm.typeParameters); } -#line 3884 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3889 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 152: -#line 1216 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1218 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.typeParameters) = (yyvsp[-1].interm.typeParameters); + (yyval.interm.typeParameters) = 0; } -#line 3892 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3897 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 153: -#line 1222 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1224 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.typeParameters) = (yyvsp[-1].interm.typeParameters); + } +#line 3905 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 154: +#line 1230 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeParameters) = new TArraySizes; @@ -3900,11 +3913,11 @@ yyreduce: parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter"); (yyval.interm.typeParameters)->addInnerSize(size); } -#line 3904 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3917 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 154: -#line 1229 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 155: +#line 1237 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeParameters) = (yyvsp[-2].interm.typeParameters); @@ -3912,600 +3925,600 @@ yyreduce: parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter"); (yyval.interm.typeParameters)->addInnerSize(size); } -#line 3916 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3929 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 155: -#line 1239 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 156: +#line 1247 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtVoid; } -#line 3925 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3938 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 156: -#line 1243 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 157: +#line 1251 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; } -#line 3934 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3947 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 157: -#line 1247 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 158: +#line 1255 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; } -#line 3943 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3956 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 158: -#line 1251 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 159: +#line 1259 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; } -#line 3953 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 159: -#line 1256 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtBool; - } -#line 3962 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3966 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 160: -#line 1260 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1264 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setVector(2); + (yyval.interm.type).basicType = EbtBool; } -#line 3972 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3975 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 161: -#line 1265 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1268 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setVector(3); + (yyval.interm.type).setVector(2); } -#line 3982 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3985 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 162: -#line 1270 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1273 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setVector(3); + } +#line 3995 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 163: +#line 1278 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(4); } -#line 3992 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 163: -#line 1275 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtBool; - (yyval.interm.type).setVector(2); - } -#line 4002 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4005 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 164: -#line 1280 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1283 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBool; - (yyval.interm.type).setVector(3); + (yyval.interm.type).setVector(2); } -#line 4012 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4015 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 165: -#line 1285 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1288 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtBool; + (yyval.interm.type).setVector(3); + } +#line 4025 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 166: +#line 1293 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBool; (yyval.interm.type).setVector(4); } -#line 4022 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 166: -#line 1290 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt; - (yyval.interm.type).setVector(2); - } -#line 4032 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4035 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 167: -#line 1295 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1298 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt; + (yyval.interm.type).setVector(2); + } +#line 4045 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 168: +#line 1303 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(3); } -#line 4042 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4055 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 168: -#line 1300 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 169: +#line 1308 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(4); } -#line 4052 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4065 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 169: -#line 1305 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 170: +#line 1313 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(2); } -#line 4063 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4076 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 170: -#line 1311 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 171: +#line 1319 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(3); } -#line 4074 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4087 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 171: -#line 1317 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 172: +#line 1325 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(4); } -#line 4085 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4098 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 172: -#line 1323 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 173: +#line 1331 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 2); } -#line 4095 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4108 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 173: -#line 1328 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 174: +#line 1336 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 3); } -#line 4105 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4118 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 174: -#line 1333 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 175: +#line 1341 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 4); } -#line 4115 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4128 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 175: -#line 1338 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 176: +#line 1346 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 2); } -#line 4125 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4138 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 176: -#line 1343 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 177: +#line 1351 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 3); } -#line 4135 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4148 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 177: -#line 1348 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 178: +#line 1356 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 4); } -#line 4145 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4158 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 178: -#line 1353 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 179: +#line 1361 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 2); } -#line 4155 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4168 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 179: -#line 1358 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 180: +#line 1366 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 3); } -#line 4165 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4178 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 180: -#line 1363 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 181: +#line 1371 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 4); } -#line 4175 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4188 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 181: -#line 1368 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 182: +#line 1376 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 2); } -#line 4185 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4198 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 182: -#line 1373 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 183: +#line 1381 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 3); } -#line 4195 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4208 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 183: -#line 1378 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 184: +#line 1386 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 4); } -#line 4205 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4218 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 184: -#line 1384 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 185: +#line 1392 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D); } -#line 4215 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4228 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 185: -#line 1389 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 186: +#line 1397 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd3D); } -#line 4225 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4238 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 186: -#line 1394 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 187: +#line 1402 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdCube); } -#line 4235 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4248 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 187: -#line 1399 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 188: +#line 1407 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true); } -#line 4245 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4258 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 188: -#line 1404 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 189: +#line 1412 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true); } -#line 4255 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4268 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 189: -#line 1409 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 190: +#line 1417 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true); } -#line 4265 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4278 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 190: -#line 1414 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 191: +#line 1422 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true); } -#line 4275 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4288 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 191: -#line 1420 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 192: +#line 1428 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd2D); } -#line 4285 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4298 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 192: -#line 1425 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 193: +#line 1433 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd3D); } -#line 4295 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4308 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 193: -#line 1430 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 194: +#line 1438 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, EsdCube); } -#line 4305 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4318 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 194: -#line 1435 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 195: +#line 1443 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd2D, true); } -#line 4315 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4328 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 195: -#line 1440 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 196: +#line 1448 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd2D); } -#line 4325 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4338 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 196: -#line 1445 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 197: +#line 1453 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd3D); } -#line 4335 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4348 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 197: -#line 1450 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 198: +#line 1458 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, EsdCube); } -#line 4345 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4358 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 198: -#line 1456 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 199: +#line 1464 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd2D, true); } -#line 4355 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4368 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 199: -#line 1461 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 200: +#line 1469 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D); } -#line 4365 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4378 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 200: -#line 1466 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 201: +#line 1474 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D); } -#line 4375 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4388 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 201: -#line 1471 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 202: +#line 1479 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true); } -#line 4385 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4398 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 202: -#line 1476 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 203: +#line 1484 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube); } -#line 4395 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4408 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 203: -#line 1481 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 204: +#line 1489 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D); } -#line 4405 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4418 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 204: -#line 1486 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 205: +#line 1494 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D); } -#line 4415 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4428 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 205: -#line 1491 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 206: +#line 1499 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube); } -#line 4425 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4438 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 206: -#line 1496 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 207: +#line 1504 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true); } -#line 4435 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4448 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 207: -#line 1501 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 208: +#line 1509 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D); } -#line 4445 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4458 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 208: -#line 1506 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 209: +#line 1514 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D); } -#line 4455 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4468 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 209: -#line 1511 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 210: +#line 1519 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube); } -#line 4465 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4478 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 210: -#line 1516 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 211: +#line 1524 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true); } -#line 4475 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4488 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 211: -#line 1521 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 212: +#line 1529 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setPureSampler(false); } -#line 4485 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4498 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 212: -#line 1526 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 213: +#line 1534 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setPureSampler(true); } -#line 4495 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4508 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 213: -#line 1532 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 214: +#line 1540 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[0].interm.type); (yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type)); } -#line 4505 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4518 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 214: -#line 1537 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 215: +#line 1545 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // // This is for user defined type names. The lexical phase looked up the @@ -4519,47 +4532,47 @@ yyreduce: } else parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), ""); } -#line 4523 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4536 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 215: -#line 1553 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 216: +#line 1561 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqHigh); } -#line 4533 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4546 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 216: -#line 1558 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 217: +#line 1566 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqMedium); } -#line 4543 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4556 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 217: -#line 1563 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 218: +#line 1571 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqLow); } -#line 4553 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 218: -#line 1571 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); } -#line 4559 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4566 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 219: -#line 1571 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1579 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); } +#line 4572 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 220: +#line 1579 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string); parseContext.structArrayCheck((yyvsp[-4].lex).loc, *structure); @@ -4571,17 +4584,17 @@ yyreduce: (yyval.interm.type).userDef = structure; --parseContext.structNestingLevel; } -#line 4575 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 220: -#line 1582 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); } -#line 4581 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4588 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 221: -#line 1582 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1590 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); } +#line 4594 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 222: +#line 1590 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { TType* structure = new TType((yyvsp[-1].interm.typeList), TString("")); (yyval.interm.type).init((yyvsp[-4].lex).loc); @@ -4589,19 +4602,19 @@ yyreduce: (yyval.interm.type).userDef = structure; --parseContext.structNestingLevel; } -#line 4593 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 222: -#line 1592 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.typeList) = (yyvsp[0].interm.typeList); - } -#line 4601 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4606 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 223: -#line 1595 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1600 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.typeList) = (yyvsp[0].interm.typeList); + } +#line 4614 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 224: +#line 1603 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeList) = (yyvsp[-1].interm.typeList); for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) { @@ -4612,11 +4625,11 @@ yyreduce: (yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]); } } -#line 4616 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4629 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 224: -#line 1608 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 225: +#line 1616 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if ((yyvsp[-2].interm.type).arraySizes) { parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); @@ -4639,11 +4652,11 @@ yyreduce: (*(yyval.interm.typeList))[i].type->shallowCopy(type); } } -#line 4643 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4656 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 225: -#line 1630 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 226: +#line 1638 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if ((yyvsp[-2].interm.type).arraySizes) { parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); @@ -4668,38 +4681,38 @@ yyreduce: (*(yyval.interm.typeList))[i].type->shallowCopy(type); } } -#line 4672 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4685 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 226: -#line 1657 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 227: +#line 1665 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeList) = new TTypeList; (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); } -#line 4681 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 227: -#line 1661 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); - } -#line 4689 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4694 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 228: -#line 1667 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1669 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); + } +#line 4702 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 229: +#line 1675 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeLine).type = new TType(EbtVoid); (yyval.interm.typeLine).loc = (yyvsp[0].lex).loc; (yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string); } -#line 4699 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4712 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 229: -#line 1672 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 230: +#line 1680 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes); @@ -4708,181 +4721,181 @@ yyreduce: (yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string); (yyval.interm.typeLine).type->transferArraySizes((yyvsp[0].interm).arraySizes); } -#line 4712 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 230: -#line 1683 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - } -#line 4720 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4725 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 231: -#line 1692 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 4726 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 1691 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + } +#line 4733 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 232: -#line 1696 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1700 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 4732 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4739 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 233: -#line 1697 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1704 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 4738 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4745 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 234: -#line 1703 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1705 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 4744 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4751 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 235: -#line 1704 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1711 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 4750 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4757 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 236: -#line 1705 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1712 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 4756 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4763 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 237: -#line 1706 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1713 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 4762 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4769 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 238: -#line 1707 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1714 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 4768 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4775 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 239: -#line 1708 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1715 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 4774 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4781 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 240: -#line 1709 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1716 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 4780 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4787 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 241: -#line 1716 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = 0; } -#line 4786 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 1717 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 4793 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 242: -#line 1717 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1724 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = 0; } +#line 4799 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 243: +#line 1725 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.push(); ++parseContext.statementNestingLevel; } -#line 4795 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4808 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 243: -#line 1721 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 244: +#line 1729 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); --parseContext.statementNestingLevel; } -#line 4804 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4817 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 244: -#line 1725 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 245: +#line 1733 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if ((yyvsp[-2].interm.intermNode) && (yyvsp[-2].interm.intermNode)->getAsAggregate()) (yyvsp[-2].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); (yyval.interm.intermNode) = (yyvsp[-2].interm.intermNode); } -#line 4814 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 245: -#line 1733 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 4820 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4827 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 246: -#line 1734 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1741 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 4826 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4833 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 247: -#line 1738 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - ++parseContext.controlFlowNestingLevel; - } -#line 4834 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 1742 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 4839 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 248: -#line 1741 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1746 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + ++parseContext.controlFlowNestingLevel; + } +#line 4847 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 249: +#line 1749 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { --parseContext.controlFlowNestingLevel; (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 4843 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4856 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 249: -#line 1745 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 250: +#line 1753 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.push(); ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 4853 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4866 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 250: -#line 1750 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 251: +#line 1758 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 4864 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 251: -#line 1759 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = 0; - } -#line 4872 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4877 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 252: -#line 1762 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1767 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.intermNode) = 0; + } +#line 4885 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 253: +#line 1770 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if ((yyvsp[-1].interm.intermNode) && (yyvsp[-1].interm.intermNode)->getAsAggregate()) (yyvsp[-1].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); (yyval.interm.intermNode) = (yyvsp[-1].interm.intermNode); } -#line 4882 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4895 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 253: -#line 1770 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 254: +#line 1778 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode)); if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || @@ -4891,11 +4904,11 @@ yyreduce: (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case } } -#line 4895 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4908 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 254: -#line 1778 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 255: +#line 1786 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) { @@ -4904,67 +4917,67 @@ yyreduce: } else (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode)); } -#line 4908 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 255: -#line 1789 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = 0; } -#line 4914 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4921 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 256: -#line 1790 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = static_cast((yyvsp[-1].interm.intermTypedNode)); } -#line 4920 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 1797 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = 0; } +#line 4927 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 257: -#line 1794 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 4928 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 1798 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = static_cast((yyvsp[-1].interm.intermTypedNode)); } +#line 4933 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 258: -#line 1800 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1802 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + } +#line 4941 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 259: +#line 1808 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode)); (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc); } -#line 4937 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4950 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 259: -#line 1807 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 260: +#line 1815 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode); (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode); } -#line 4946 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 260: -#line 1811 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode); - (yyval.interm.nodePair).node2 = 0; - } -#line 4955 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4959 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 261: #line 1819 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode); + (yyval.interm.nodePair).node2 = 0; } -#line 4964 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4968 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 262: -#line 1823 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1827 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode)); + } +#line 4977 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 263: +#line 1831 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type)); @@ -4975,19 +4988,19 @@ yyreduce: else (yyval.interm.intermTypedNode) = 0; } -#line 4979 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 263: -#line 1836 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 4987 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4992 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 264: -#line 1842 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1844 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + } +#line 5000 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 265: +#line 1850 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // start new switch sequence on the switch stack ++parseContext.controlFlowNestingLevel; @@ -4996,11 +5009,11 @@ yyreduce: parseContext.switchLevel.push_back(parseContext.statementNestingLevel); parseContext.symbolTable.push(); } -#line 5000 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5013 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 265: -#line 1850 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 266: +#line 1858 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[-7].lex).loc, (yyvsp[-5].interm.intermTypedNode), (yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0); delete parseContext.switchSequenceStack.back(); @@ -5010,27 +5023,27 @@ yyreduce: --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 5014 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 266: -#line 1862 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = 0; - } -#line 5022 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5027 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 267: -#line 1865 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1870 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + (yyval.interm.intermNode) = 0; } -#line 5030 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5035 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 268: -#line 1871 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1873 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + } +#line 5043 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 269: +#line 1879 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; if (parseContext.switchLevel.size() == 0) @@ -5043,11 +5056,11 @@ yyreduce: (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc); } } -#line 5047 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5060 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 269: -#line 1883 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 270: +#line 1891 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; if (parseContext.switchLevel.size() == 0) @@ -5057,19 +5070,19 @@ yyreduce: else (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc); } -#line 5061 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 270: -#line 1895 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 5069 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5074 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 271: -#line 1901 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1903 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + } +#line 5082 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 272: +#line 1909 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if (! parseContext.limits.whileLoops) parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", ""); @@ -5078,11 +5091,11 @@ yyreduce: ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 5082 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5095 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 272: -#line 1909 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 273: +#line 1917 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, true, (yyvsp[-5].lex).loc); @@ -5090,21 +5103,21 @@ yyreduce: --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 5094 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5107 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 273: -#line 1916 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 274: +#line 1924 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { ++parseContext.loopNestingLevel; ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 5104 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5117 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 274: -#line 1921 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 275: +#line 1929 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if (! parseContext.limits.whileLoops) parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", ""); @@ -5116,22 +5129,22 @@ yyreduce: --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 5120 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5133 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 275: -#line 1932 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 276: +#line 1940 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.push(); ++parseContext.loopNestingLevel; ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 5131 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5144 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 276: -#line 1938 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 277: +#line 1946 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc); @@ -5144,81 +5157,81 @@ yyreduce: --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 5148 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 277: -#line 1953 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 5156 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5161 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 278: -#line 1956 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1961 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 5164 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5169 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 279: -#line 1962 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1964 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 5172 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5177 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 280: -#line 1965 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1970 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = 0; + (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 5180 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5185 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 281: -#line 1971 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1973 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.intermTypedNode) = 0; + } +#line 5193 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 282: +#line 1979 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode); (yyval.interm.nodePair).node2 = 0; } -#line 5189 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5202 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 282: -#line 1975 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 283: +#line 1983 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode); (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode); } -#line 5198 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5211 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 283: -#line 1982 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 284: +#line 1990 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if (parseContext.loopNestingLevel <= 0) parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", ""); (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc); } -#line 5208 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5221 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 284: -#line 1987 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 285: +#line 1995 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0) parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", ""); (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc); } -#line 5218 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5231 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 285: -#line 1992 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 286: +#line 2000 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc); if (parseContext.currentFunctionType->getBasicType() != EbtVoid) @@ -5226,73 +5239,73 @@ yyreduce: if (parseContext.inMain) parseContext.postEntryPointReturn = true; } -#line 5230 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 286: -#line 1999 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode)); - } -#line 5238 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5243 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 287: -#line 2002 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2007 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode)); + } +#line 5251 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 288: +#line 2010 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard"); (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc); } -#line 5247 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5260 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 288: -#line 2011 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 289: +#line 2019 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); } -#line 5256 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5269 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 289: -#line 2015 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 290: +#line 2023 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if ((yyvsp[0].interm.intermNode) != nullptr) { (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode)); parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); } } -#line 5267 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 290: -#line 2024 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 5275 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5280 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 291: -#line 2027 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2032 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 5283 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5288 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 292: -#line 2034 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2035 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + } +#line 5296 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 293: +#line 2042 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */); (yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function); } -#line 5292 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5305 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 293: -#line 2038 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 294: +#line 2046 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // May be best done as post process phase on intermediate code if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue) @@ -5308,11 +5321,11 @@ yyreduce: (yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug); (yyval.interm.intermNode)->getAsAggregate()->setPragmaTable(parseContext.contextPragma.pragmaTable); } -#line 5312 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5325 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; -#line 5316 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5329 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -5540,5 +5553,5 @@ yyreturn: #endif return yyresult; } -#line 2057 "MachineIndependent/glslang.y" /* yacc.c:1906 */ +#line 2065 "MachineIndependent/glslang.y" /* yacc.c:1906 */ diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h index 13b0f6c2..4d00d396 100644 --- a/glslang/MachineIndependent/localintermediate.h +++ b/glslang/MachineIndependent/localintermediate.h @@ -267,7 +267,6 @@ public: uniformLocationBase(0) #endif { -#ifndef GLSLANG_WEB localSize[0] = 1; localSize[1] = 1; localSize[2] = 1; @@ -277,6 +276,7 @@ public: localSizeSpecId[0] = TQualifier::layoutNotSet; localSizeSpecId[1] = TQualifier::layoutNotSet; localSizeSpecId[2] = TQualifier::layoutNotSet; +#ifndef GLSLANG_WEB xfbBuffers.resize(TQualifier::layoutXfbBufferEnd); shiftBinding.fill(0); #endif @@ -492,6 +492,23 @@ public: bool usingVariablePointers() const { return false; } unsigned getXfbStride(int buffer) const { return 0; } bool hasLayoutDerivativeModeNone() const { return false; } + bool setLocalSize(int dim, int size) + { + if (localSizeNotDefault[dim]) + return size == localSize[dim]; + localSizeNotDefault[dim] = true; + localSize[dim] = size; + return true; + } + unsigned int getLocalSize(int dim) const { return localSize[dim]; } + bool setLocalSizeSpecId(int dim, int id) + { + if (localSizeSpecId[dim] != TQualifier::layoutNotSet) + return id == localSizeSpecId[dim]; + localSizeSpecId[dim] = id; + return true; + } + int getLocalSizeSpecId(int dim) const { return localSizeSpecId[dim]; } #else void output(TInfoSink&, bool tree); @@ -655,24 +672,6 @@ public: } TInterlockOrdering getInterlockOrdering() const { return interlockOrdering; } - bool setLocalSize(int dim, int size) - { - if (localSizeNotDefault[dim]) - return size == localSize[dim]; - localSizeNotDefault[dim] = true; - localSize[dim] = size; - return true; - } - unsigned int getLocalSize(int dim) const { return localSize[dim]; } - - bool setLocalSizeSpecId(int dim, int id) - { - if (localSizeSpecId[dim] != TQualifier::layoutNotSet) - return id == localSizeSpecId[dim]; - localSizeSpecId[dim] = id; - return true; - } - int getLocalSizeSpecId(int dim) const { return localSizeSpecId[dim]; } void setXfbMode() { xfbMode = true; } bool getXfbMode() const { return xfbMode; } void setMultiStream() { multiStream = true; } @@ -920,6 +919,9 @@ protected: bool useStorageBuffer; bool nanMinMaxClamp; // true if desiring min/max/clamp to favor non-NaN over NaN bool depthReplacing; + int localSize[3]; + bool localSizeNotDefault[3]; + int localSizeSpecId[3]; #ifndef GLSLANG_WEB bool useVulkanMemoryModel; int invocations; @@ -932,9 +934,6 @@ protected: TVertexOrder vertexOrder; TInterlockOrdering interlockOrdering; bool pointMode; - int localSize[3]; - bool localSizeNotDefault[3]; - int localSizeSpecId[3]; bool earlyFragmentTests; bool postDepthCoverage; TLayoutDepth depthLayout;