From b50c02ef53973e3e09565ed7066d2b39edc36b17 Mon Sep 17 00:00:00 2001 From: Chao Chen Date: Wed, 19 Sep 2018 11:42:24 -0700 Subject: [PATCH] Add-support-for-SPV_NVX_raytracing --- SPIRV/GLSL.ext.NV.h | 7 +- SPIRV/GlslangToSpv.cpp | 97 +- SPIRV/SpvBuilder.cpp | 17 +- SPIRV/SpvBuilder.h | 5 + SPIRV/doc.cpp | 72 +- StandAlone/StandAlone.cpp | 31 +- Test/baseResults/spv.AnyHitShader.rahit.out | 163 + Test/baseResults/spv.AnyHitShader_Errors.rahit.out | 8 + Test/baseResults/spv.ClosestHitShader.rchit.out | 169 + .../spv.ClosestHitShader_Errors.rchit.out | 9 + Test/baseResults/spv.IntersectShader.rint.out | 138 + .../spv.IntersectShader_Errors.rint.out | 10 + Test/baseResults/spv.MissShader.rmiss.out | 113 + Test/baseResults/spv.MissShader_Errors.rmiss.out | 21 + Test/baseResults/spv.RayConstants.rgen.out | 46 + Test/baseResults/spv.RayGenShader.rgen.out | 101 + Test/baseResults/spv.RayGenShader_Errors.rgen.out | 39 + Test/spv.AnyHitShader.rahit | 26 + Test/spv.AnyHitShader_Errors.rahit | 11 + Test/spv.ClosestHitShader.rchit | 24 + Test/spv.ClosestHitShader_Errors.rchit | 12 + Test/spv.IntersectShader.rint | 21 + Test/spv.IntersectShader_Errors.rint | 11 + Test/spv.MissShader.rmiss | 17 + Test/spv.MissShader_Errors.rmiss | 16 + Test/spv.RayConstants.rgen | 15 + Test/spv.RayGenShader.rgen | 19 + Test/spv.RayGenShader_Errors.rgen | 40 + glslang/Include/BaseTypes.h | 42 + glslang/Include/Types.h | 16 +- glslang/Include/intermediate.h | 4 + glslang/MachineIndependent/Initialize.cpp | 175 +- glslang/MachineIndependent/Intermediate.cpp | 3 + glslang/MachineIndependent/ParseContextBase.cpp | 11 + glslang/MachineIndependent/ParseHelper.cpp | 86 +- glslang/MachineIndependent/ParseHelper.h | 3 + glslang/MachineIndependent/Scan.cpp | 16 + glslang/MachineIndependent/ShaderLang.cpp | 24 + glslang/MachineIndependent/SymbolTable.cpp | 3 + glslang/MachineIndependent/Versions.cpp | 8 + glslang/MachineIndependent/Versions.h | 1 + glslang/MachineIndependent/glslang.y | 39 +- glslang/MachineIndependent/glslang_tab.cpp | 6745 ++++++++++---------- glslang/MachineIndependent/glslang_tab.cpp.h | 640 +- glslang/MachineIndependent/intermOut.cpp | 4 + glslang/MachineIndependent/linkValidate.cpp | 12 + glslang/MachineIndependent/localintermediate.h | 3 + glslang/Public/ShaderLang.h | 12 + gtests/Spv.FromFile.cpp | 11 + gtests/TestFixture.cpp | 12 + 50 files changed, 5457 insertions(+), 3671 deletions(-) create mode 100644 Test/baseResults/spv.AnyHitShader.rahit.out create mode 100644 Test/baseResults/spv.AnyHitShader_Errors.rahit.out create mode 100644 Test/baseResults/spv.ClosestHitShader.rchit.out create mode 100644 Test/baseResults/spv.ClosestHitShader_Errors.rchit.out create mode 100644 Test/baseResults/spv.IntersectShader.rint.out create mode 100644 Test/baseResults/spv.IntersectShader_Errors.rint.out create mode 100644 Test/baseResults/spv.MissShader.rmiss.out create mode 100644 Test/baseResults/spv.MissShader_Errors.rmiss.out create mode 100644 Test/baseResults/spv.RayConstants.rgen.out create mode 100644 Test/baseResults/spv.RayGenShader.rgen.out create mode 100644 Test/baseResults/spv.RayGenShader_Errors.rgen.out create mode 100644 Test/spv.AnyHitShader.rahit create mode 100644 Test/spv.AnyHitShader_Errors.rahit create mode 100644 Test/spv.ClosestHitShader.rchit create mode 100644 Test/spv.ClosestHitShader_Errors.rchit create mode 100644 Test/spv.IntersectShader.rint create mode 100644 Test/spv.IntersectShader_Errors.rint create mode 100644 Test/spv.MissShader.rmiss create mode 100644 Test/spv.MissShader_Errors.rmiss create mode 100644 Test/spv.RayConstants.rgen create mode 100644 Test/spv.RayGenShader.rgen create mode 100644 Test/spv.RayGenShader_Errors.rgen diff --git a/SPIRV/GLSL.ext.NV.h b/SPIRV/GLSL.ext.NV.h index 9c551d1..1904bac 100644 --- a/SPIRV/GLSL.ext.NV.h +++ b/SPIRV/GLSL.ext.NV.h @@ -33,7 +33,7 @@ enum Op; enum Capability; static const int GLSLextNVVersion = 100; -static const int GLSLextNVRevision = 9; +static const int GLSLextNVRevision = 10; //SPV_NV_sample_mask_override_coverage const char* const E_SPV_NV_sample_mask_override_coverage = "SPV_NV_sample_mask_override_coverage"; @@ -66,4 +66,7 @@ const char* const E_SPV_NV_shader_image_footprint = "SPV_NV_shader_image_footpri //SPV_NV_mesh_shader const char* const E_SPV_NV_mesh_shader = "SPV_NV_mesh_shader"; -#endif // #ifndef GLSLextNV_H \ No newline at end of file +//SPV_NVX_raytracing +const char* const E_SPV_NVX_raytracing = "SPV_NVX_raytracing"; + +#endif // #ifndef GLSLextNV_H diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index 11d8e31..d1b23d8 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -276,6 +276,12 @@ spv::ExecutionModel TranslateExecutionModel(EShLanguage stage) case EShLangFragment: return spv::ExecutionModelFragment; case EShLangCompute: return spv::ExecutionModelGLCompute; #ifdef NV_EXTENSIONS + case EShLangRayGenNV: return spv::ExecutionModelRayGenerationNVX; + case EShLangIntersectNV: return spv::ExecutionModelIntersectionNVX; + case EShLangAnyHitNV: return spv::ExecutionModelAnyHitNVX; + case EShLangClosestHitNV: return spv::ExecutionModelClosestHitNVX; + case EShLangMissNV: return spv::ExecutionModelMissNVX; + case EShLangCallableNV: return spv::ExecutionModelCallableNVX; case EShLangTaskNV: return spv::ExecutionModelTaskNV; case EShLangMeshNV: return spv::ExecutionModelMeshNV; #endif @@ -328,6 +334,11 @@ spv::Decoration TranslateBlockDecoration(const glslang::TType& type, bool useSto case glslang::EvqBuffer: return useStorageBuffer ? spv::DecorationBlock : spv::DecorationBufferBlock; case glslang::EvqVaryingIn: return spv::DecorationBlock; case glslang::EvqVaryingOut: return spv::DecorationBlock; +#ifdef NV_EXTENSIONS + case glslang::EvqPayloadNV: return spv::DecorationBlock; + case glslang::EvqPayloadInNV: return spv::DecorationBlock; + case glslang::EvqHitAttrNV: return spv::DecorationBlock; +#endif default: assert(0); break; @@ -396,6 +407,12 @@ spv::Decoration TranslateLayoutDecoration(const glslang::TType& type, glslang::T assert(type.getQualifier().layoutPacking == glslang::ElpNone); } return spv::DecorationMax; +#ifdef NV_EXTENSIONS + case glslang::EvqPayloadNV: + case glslang::EvqPayloadInNV: + case glslang::EvqHitAttrNV: + return spv::DecorationMax; +#endif default: assert(0); return spv::DecorationMax; @@ -847,6 +864,34 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI builder.addExtension(spv::E_SPV_EXT_fragment_fully_covered); builder.addCapability(spv::CapabilityFragmentFullyCoveredEXT); return spv::BuiltInFullyCoveredEXT; + + // raytracing + case glslang::EbvLaunchIdNV: + return spv::BuiltInLaunchIdNVX; + case glslang::EbvLaunchSizeNV: + return spv::BuiltInLaunchSizeNVX; + case glslang::EbvWorldRayOriginNV: + return spv::BuiltInWorldRayOriginNVX; + case glslang::EbvWorldRayDirectionNV: + return spv::BuiltInWorldRayDirectionNVX; + case glslang::EbvObjectRayOriginNV: + return spv::BuiltInObjectRayOriginNVX; + case glslang::EbvObjectRayDirectionNV: + return spv::BuiltInObjectRayDirectionNVX; + case glslang::EbvRayTminNV: + return spv::BuiltInRayTminNVX; + case glslang::EbvRayTmaxNV: + return spv::BuiltInRayTmaxNVX; + case glslang::EbvInstanceCustomIndexNV: + return spv::BuiltInInstanceCustomIndexNVX; + case glslang::EbvHitTNV: + return spv::BuiltInHitTNVX; + case glslang::EbvHitKindNV: + return spv::BuiltInHitKindNVX; + case glslang::EbvObjectToWorldNV: + return spv::BuiltInObjectToWorldNVX; + case glslang::EbvWorldToObjectNV: + return spv::BuiltInWorldToObjectNVX; case glslang::EbvBaryCoordNV: builder.addExtension(spv::E_SPV_NV_fragment_shader_barycentric); builder.addCapability(spv::CapabilityFragmentBarycentricNV); @@ -1027,6 +1072,10 @@ spv::StorageClass TGlslangToSpvTraverser::TranslateStorageClass(const glslang::T if (type.getQualifier().isUniformOrBuffer()) { if (type.getQualifier().layoutPushConstant) return spv::StorageClassPushConstant; +#ifdef NV_EXTENSIONS + if (type.getQualifier().layoutShaderRecordNV) + return spv::StorageClassShaderRecordBufferNVX; +#endif if (type.getBasicType() == glslang::EbtBlock) return spv::StorageClassUniform; return spv::StorageClassUniformConstant; @@ -1037,6 +1086,11 @@ spv::StorageClass TGlslangToSpvTraverser::TranslateStorageClass(const glslang::T case glslang::EvqGlobal: return spv::StorageClassPrivate; case glslang::EvqConstReadOnly: return spv::StorageClassFunction; case glslang::EvqTemporary: return spv::StorageClassFunction; +#ifdef NV_EXTENSIONS + case glslang::EvqPayloadNV: return spv::StorageClassRayPayloadNVX; + case glslang::EvqPayloadInNV: return spv::StorageClassIncomingRayPayloadNVX; + case glslang::EvqHitAttrNV: return spv::StorageClassHitAttributeNVX; +#endif default: assert(0); break; @@ -1092,7 +1146,11 @@ bool IsDescriptorResource(const glslang::TType& type) { // uniform and buffer blocks are included, unless it is a push_constant if (type.getBasicType() == glslang::EbtBlock) - return type.getQualifier().isUniformOrBuffer() && ! type.getQualifier().layoutPushConstant; + return type.getQualifier().isUniformOrBuffer() && +#ifdef NV_EXTENSIONS + ! type.getQualifier().layoutShaderRecordNV && +#endif + ! type.getQualifier().layoutPushConstant; // non block... // basically samplerXXX/subpass/sampler/texture are all included @@ -1358,6 +1416,15 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(unsigned int spvVersion, const gl break; #ifdef NV_EXTENSIONS + case EShLangRayGenNV: + case EShLangIntersectNV: + case EShLangAnyHitNV: + case EShLangClosestHitNV: + case EShLangMissNV: + case EShLangCallableNV: + builder.addCapability(spv::CapabilityRaytracingNVX); + builder.addExtension("SPV_NVX_raytracing"); + break; case EShLangTaskNV: case EShLangMeshNV: builder.addCapability(spv::CapabilityMeshShadingNV); @@ -2189,6 +2256,9 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt break; #ifdef NV_EXTENSIONS + case glslang::EOpIgnoreIntersectionNV: + case glslang::EOpTerminateRayNV: + case glslang::EOpTraceNV: case glslang::EOpWritePackedPrimitiveIndices4x8NV: noReturnValue = true; break; @@ -2860,6 +2930,11 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty builder.addCapability(spv::CapabilityAtomicStorage); spvType = builder.makeUintType(32); break; +#ifdef NV_EXTENSIONS + case glslang::EbtAccStructNV: + spvType = builder.makeAccelerationStructureNVType(); + break; +#endif case glslang::EbtSampler: { const glslang::TSampler& sampler = type.getSampler(); @@ -6784,6 +6859,18 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv:: break; #ifdef NV_EXTENSIONS + case glslang::EOpReportIntersectionNV: + { + typeId = builder.makeBoolType(); + opCode = spv::OpReportIntersectionNVX; + } + break; + case glslang::EOpTraceNV: + { + builder.createNoResultOp(spv::OpTraceNVX, operands); + return 0; + } + break; case glslang::EOpWritePackedPrimitiveIndices4x8NV: builder.createNoResultOp(spv::OpWritePackedPrimitiveIndices4x8NV, operands); return 0; @@ -6962,6 +7049,14 @@ spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op, spv: return builder.setPrecision(id, precision); } #endif +#ifdef NV_EXTENSIONS + case glslang::EOpIgnoreIntersectionNV: + builder.createNoResultOp(spv::OpIgnoreIntersectionNVX); + return 0; + case glslang::EOpTerminateRayNV: + builder.createNoResultOp(spv::OpTerminateRayNVX); + return 0; +#endif default: logger->missingFunctionality("unknown operation with no arguments"); return 0; diff --git a/SPIRV/SpvBuilder.cpp b/SPIRV/SpvBuilder.cpp index c13f77f..e74c7b9 100644 --- a/SPIRV/SpvBuilder.cpp +++ b/SPIRV/SpvBuilder.cpp @@ -503,6 +503,21 @@ Id Builder::makeSampledImageType(Id imageType) return type->getResultId(); } +#ifdef NV_EXTENSIONS +Id Builder::makeAccelerationStructureNVType() +{ + Instruction *type; + if (groupedTypes[OpTypeAccelerationStructureNVX].size() == 0) { + type = new Instruction(getUniqueId(), NoType, OpTypeAccelerationStructureNVX); + constantsTypesGlobals.push_back(std::unique_ptr(type)); + module.mapInstruction(type); + } else { + type = groupedTypes[OpTypeAccelerationStructureNVX].back(); + } + + return type->getResultId(); +} +#endif Id Builder::getDerefTypeId(Id resultId) const { Id typeId = getTypeId(resultId); @@ -1377,7 +1392,7 @@ void Builder::createNoResultOp(Op opCode, Id operand) buildPoint->addInstruction(std::unique_ptr(op)); } -// An opcode that has multiple operands, no result id, and no type +// An opcode that has one or more operands, no result id, and no type void Builder::createNoResultOp(Op opCode, const std::vector& operands) { Instruction* op = new Instruction(opCode); diff --git a/SPIRV/SpvBuilder.h b/SPIRV/SpvBuilder.h index 94533e4..bfa6b61 100644 --- a/SPIRV/SpvBuilder.h +++ b/SPIRV/SpvBuilder.h @@ -131,6 +131,11 @@ public: Id makeSamplerType(); Id makeSampledImageType(Id imageType); +#ifdef NV_EXTENSIONS + // accelerationStructureNV type + Id makeAccelerationStructureNVType(); +#endif + // For querying about types. Id getTypeId(Id resultId) const { return module.getTypeId(resultId); } Id getDerefTypeId(Id resultId) const; diff --git a/SPIRV/doc.cpp b/SPIRV/doc.cpp index dc46c95..57d23d6 100644 --- a/SPIRV/doc.cpp +++ b/SPIRV/doc.cpp @@ -104,6 +104,16 @@ const char* ExecutionModelString(int model) #endif default: return "Bad"; + +#ifdef NV_EXTENSIONS + case ExecutionModelRayGenerationNVX: return "RayGenerationNVX"; + case ExecutionModelIntersectionNVX: return "IntersectionNVX"; + case ExecutionModelAnyHitNVX: return "AnyHitNVX"; + case ExecutionModelClosestHitNVX: return "ClosestHitNVX"; + case ExecutionModelMissNVX: return "MissNVX"; + case ExecutionModelCallableNVX: return "CallableNVX"; +#endif + } } @@ -201,6 +211,13 @@ const char* StorageClassString(int StorageClass) case 11: return "Image"; case 12: return "StorageBuffer"; +#ifdef NV_EXTENSIONS + case StorageClassRayPayloadNVX: return "RayPayloadNVX"; + case StorageClassHitAttributeNVX: return "HitAttributeNVX"; + case StorageClassIncomingRayPayloadNVX: return "IncomingRayPayloadNVX"; + case StorageClassShaderRecordBufferNVX: return "ShaderRecordBufferNVX"; +#endif + default: return "Bad"; } } @@ -350,13 +367,26 @@ const char* BuiltInString(int builtIn) #endif #ifdef NV_EXTENSIONS - case 5253: return "ViewportMaskNV"; - case 5257: return "SecondaryPositionNV"; - case 5258: return "SecondaryViewportMaskNV"; - case 5261: return "PositionPerViewNV"; - case 5262: return "ViewportMaskPerViewNV"; - case BuiltInBaryCoordNV: return "BaryCoordNV"; - case BuiltInBaryCoordNoPerspNV: return "BaryCoordNoPerspNV"; + case BuiltInLaunchIdNVX: return "LaunchIdNVX"; + case BuiltInLaunchSizeNVX: return "LaunchSizeNVX"; + case BuiltInWorldRayOriginNVX: return "WorldRayOriginNVX"; + case BuiltInWorldRayDirectionNVX: return "WorldRayDirectionNVX"; + case BuiltInObjectRayOriginNVX: return "ObjectRayOriginNVX"; + case BuiltInObjectRayDirectionNVX: return "ObjectRayDirectionNVX"; + case BuiltInRayTminNVX: return "RayTminNVX"; + case BuiltInRayTmaxNVX: return "RayTmaxNVX"; + case BuiltInInstanceCustomIndexNVX: return "InstanceCustomIndexNVX"; + case BuiltInObjectToWorldNVX: return "ObjectToWorldNVX"; + case BuiltInWorldToObjectNVX: return "WorldToObjectNVX"; + case BuiltInHitTNVX: return "HitTNVX"; + case BuiltInHitKindNVX: return "HitKindNVX"; + case BuiltInViewportMaskNV: return "ViewportMaskNV"; + case BuiltInSecondaryPositionNV: return "SecondaryPositionNV"; + case BuiltInSecondaryViewportMaskNV: return "SecondaryViewportMaskNV"; + case BuiltInPositionPerViewNV: return "PositionPerViewNV"; + case BuiltInViewportMaskPerViewNV: return "ViewportMaskPerViewNV"; + case BuiltInBaryCoordNV: return "BaryCoordNV"; + case BuiltInBaryCoordNoPerspNV: return "BaryCoordNoPerspNV"; #endif case 5264: return "FullyCoveredEXT"; @@ -857,6 +887,7 @@ const char* CapabilityString(int info) case CapabilityShaderStereoViewNV: return "ShaderStereoViewNV"; case CapabilityPerViewAttributesNV: return "PerViewAttributesNV"; case CapabilityGroupNonUniformPartitionedNV: return "GroupNonUniformPartitionedNV"; + case CapabilityRaytracingNVX: return "RaytracingNVX"; case CapabilityComputeDerivativeGroupQuadsNV: return "ComputeDerivativeGroupQuadsNV"; case CapabilityComputeDerivativeGroupLinearNV: return "ComputeDerivativeGroupLinearNV"; case CapabilityFragmentBarycentricNV: return "FragmentBarycentricNV"; @@ -1274,6 +1305,11 @@ const char* OpcodeString(int op) #ifdef NV_EXTENSIONS case OpGroupNonUniformPartitionNV: return "OpGroupNonUniformPartitionNV"; + case OpReportIntersectionNVX: return "OpReportIntersectionNVX"; + case OpIgnoreIntersectionNVX: return "OpIgnoreIntersectionNVX"; + case OpTerminateRayNVX: return "OpTerminateRayNVX"; + case OpTraceNVX: return "OpTraceNVX"; + case OpTypeAccelerationStructureNVX: return "OpTypeAccelerationStructureNVX"; case OpImageSampleFootprintNV: return "OpImageSampleFootprintNV"; case OpWritePackedPrimitiveIndices4x8NV: return "OpWritePackedPrimitiveIndices4x8NV"; #endif @@ -2622,6 +2658,28 @@ void Parameterize() #ifdef NV_EXTENSIONS InstructionDesc[OpGroupNonUniformPartitionNV].operands.push(OperandId, "X"); + + InstructionDesc[OpTypeAccelerationStructureNVX].setResultAndType(true, false); + + InstructionDesc[OpTraceNVX].operands.push(OperandId, "'NV Acceleration Structure'"); + InstructionDesc[OpTraceNVX].operands.push(OperandId, "'Ray Flags'"); + InstructionDesc[OpTraceNVX].operands.push(OperandId, "'Cull Mask'"); + InstructionDesc[OpTraceNVX].operands.push(OperandId, "'SBT Record Offset'"); + InstructionDesc[OpTraceNVX].operands.push(OperandId, "'SBT Record Stride'"); + InstructionDesc[OpTraceNVX].operands.push(OperandId, "'Miss Index'"); + InstructionDesc[OpTraceNVX].operands.push(OperandId, "'Ray Origin'"); + InstructionDesc[OpTraceNVX].operands.push(OperandId, "'TMin'"); + InstructionDesc[OpTraceNVX].operands.push(OperandId, "'Ray Direction'"); + InstructionDesc[OpTraceNVX].operands.push(OperandId, "'TMax'"); + InstructionDesc[OpTraceNVX].operands.push(OperandId, "'Payload'"); + InstructionDesc[OpTraceNVX].setResultAndType(false, false); + + InstructionDesc[OpReportIntersectionNVX].operands.push(OperandId, "'Hit Parameter'"); + InstructionDesc[OpReportIntersectionNVX].operands.push(OperandId, "'Hit Kind'"); + + InstructionDesc[OpIgnoreIntersectionNVX].setResultAndType(false, false); + + InstructionDesc[OpTerminateRayNVX].setResultAndType(false, false); InstructionDesc[OpImageSampleFootprintNV].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageSampleFootprintNV].operands.push(OperandId, "'Coordinate'"); diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp index fc0a4b5..fd14476 100644 --- a/StandAlone/StandAlone.cpp +++ b/StandAlone/StandAlone.cpp @@ -245,6 +245,12 @@ const char* GetBinaryName(EShLanguage stage) case EShLangFragment: name = "frag.spv"; break; case EShLangCompute: name = "comp.spv"; break; #ifdef NV_EXTENSIONS + case EShLangRayGenNV: name = "rgen.spv"; break; + case EShLangIntersectNV: name = "rint.spv"; break; + case EShLangAnyHitNV: name = "rahit.spv"; break; + case EShLangClosestHitNV: name = "rchit.spv"; break; + case EShLangMissNV: name = "rmiss.spv"; break; + case EShLangCallableNV: name = "rcall.spv"; break; case EShLangMeshNV: name = "mesh.spv"; break; case EShLangTaskNV: name = "task.spv"; break; #endif @@ -1210,7 +1216,12 @@ int C_DECL main(int argc, char* argv[]) // .geom = geometry // .frag = fragment // .comp = compute -// +// .rgen = ray generation +// .rint = ray intersection +// .rahit = ray any hit +// .rchit = ray closest hit +// .rmiss = ray miss +// .rcall = ray callable // Additionally, the file names may end in ..glsl and ..hlsl // where is one of the stages listed above. // @@ -1255,6 +1266,18 @@ EShLanguage FindLanguage(const std::string& name, bool parseStageName) else if (stageName == "comp") return EShLangCompute; #ifdef NV_EXTENSIONS + else if (stageName == "rgen") + return EShLangRayGenNV; + else if (stageName == "rint") + return EShLangIntersectNV; + else if (stageName == "rahit") + return EShLangAnyHitNV; + else if (stageName == "rchit") + return EShLangClosestHitNV; + else if (stageName == "rmiss") + return EShLangMissNV; + else if (stageName == "rcall") + return EShLangCallableNV; else if (stageName == "mesh") return EShLangMeshNV; else if (stageName == "task") @@ -1332,6 +1355,12 @@ void usage() #ifdef NV_EXTENSIONS " .mesh for a mesh shader\n" " .task for a task shader\n" + " .rgen for a ray generation shader\n" + " .rint for a ray intersection shader\n" + " .rahit for a ray any hit shader\n" + " .rchit for a ray closest hit shader\n" + " .rmiss for a ray miss shader\n" + " .rcall for a ray callable shader" #endif " .glsl for .vert.glsl, .tesc.glsl, ..., .comp.glsl compound suffixes\n" " .hlsl for .vert.hlsl, .tesc.hlsl, ..., .comp.hlsl compound suffixes\n" diff --git a/Test/baseResults/spv.AnyHitShader.rahit.out b/Test/baseResults/spv.AnyHitShader.rahit.out new file mode 100644 index 0000000..1dd88b3 --- /dev/null +++ b/Test/baseResults/spv.AnyHitShader.rahit.out @@ -0,0 +1,163 @@ +spv.AnyHitShader.rahit +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 81 + + Capability RaytracingNVX + Extension "SPV_NVX_raytracing" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint AnyHitNVX 4 "main" 11 14 20 23 26 33 36 39 42 47 50 53 58 64 67 + Source GLSL 460 + SourceExtension "GL_NVX_raytracing" + Name 4 "main" + Name 9 "v0" + Name 11 "gl_LaunchIDNVX" + Name 13 "v1" + Name 14 "gl_LaunchSizeNVX" + Name 18 "v2" + Name 20 "gl_PrimitiveID" + Name 22 "v3" + Name 23 "gl_InstanceID" + Name 25 "v4" + Name 26 "gl_InstanceCustomIndexNVX" + Name 31 "v5" + Name 33 "gl_WorldRayOriginNVX" + Name 35 "v6" + Name 36 "gl_WorldRayDirectionNVX" + Name 38 "v7" + Name 39 "gl_ObjectRayOriginNVX" + Name 41 "v8" + Name 42 "gl_ObjectRayDirectionNVX" + Name 45 "v9" + Name 47 "gl_RayTminNVX" + Name 49 "v10" + Name 50 "gl_RayTmaxNVX" + Name 52 "v11" + Name 53 "gl_HitTNVX" + Name 56 "v12" + Name 58 "gl_HitKindNVX" + Name 62 "v13" + Name 64 "gl_ObjectToWorldNVX" + Name 66 "v14" + Name 67 "gl_WorldToObjectNVX" + Name 71 "incomingPayload" + Decorate 11(gl_LaunchIDNVX) BuiltIn LaunchIdNVX + Decorate 14(gl_LaunchSizeNVX) BuiltIn LaunchSizeNVX + Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId + Decorate 23(gl_InstanceID) BuiltIn InstanceId + Decorate 26(gl_InstanceCustomIndexNVX) BuiltIn InstanceCustomIndexNVX + Decorate 33(gl_WorldRayOriginNVX) BuiltIn WorldRayOriginNVX + Decorate 36(gl_WorldRayDirectionNVX) BuiltIn WorldRayDirectionNVX + Decorate 39(gl_ObjectRayOriginNVX) BuiltIn ObjectRayOriginNVX + Decorate 42(gl_ObjectRayDirectionNVX) BuiltIn ObjectRayDirectionNVX + Decorate 47(gl_RayTminNVX) BuiltIn RayTminNVX + Decorate 50(gl_RayTmaxNVX) BuiltIn RayTmaxNVX + Decorate 53(gl_HitTNVX) BuiltIn HitTNVX + Decorate 58(gl_HitKindNVX) BuiltIn HitKindNVX + Decorate 64(gl_ObjectToWorldNVX) BuiltIn ObjectToWorldNVX + Decorate 67(gl_WorldToObjectNVX) BuiltIn WorldToObjectNVX + Decorate 71(incomingPayload) Location 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypeVector 6(int) 2 + 8: TypePointer Function 7(ivec2) + 10: TypePointer Input 7(ivec2) +11(gl_LaunchIDNVX): 10(ptr) Variable Input +14(gl_LaunchSizeNVX): 10(ptr) Variable Input + 16: TypeInt 32 1 + 17: TypePointer Function 16(int) + 19: TypePointer Input 16(int) +20(gl_PrimitiveID): 19(ptr) Variable Input +23(gl_InstanceID): 19(ptr) Variable Input +26(gl_InstanceCustomIndexNVX): 19(ptr) Variable Input + 28: TypeFloat 32 + 29: TypeVector 28(float) 3 + 30: TypePointer Function 29(fvec3) + 32: TypePointer Input 29(fvec3) +33(gl_WorldRayOriginNVX): 32(ptr) Variable Input +36(gl_WorldRayDirectionNVX): 32(ptr) Variable Input +39(gl_ObjectRayOriginNVX): 32(ptr) Variable Input +42(gl_ObjectRayDirectionNVX): 32(ptr) Variable Input + 44: TypePointer Function 28(float) + 46: TypePointer Input 28(float) +47(gl_RayTminNVX): 46(ptr) Variable Input +50(gl_RayTmaxNVX): 46(ptr) Variable Input + 53(gl_HitTNVX): 46(ptr) Variable Input + 55: TypePointer Function 6(int) + 57: TypePointer Input 6(int) +58(gl_HitKindNVX): 57(ptr) Variable Input + 60: TypeMatrix 29(fvec3) 4 + 61: TypePointer Function 60 + 63: TypePointer Input 60 +64(gl_ObjectToWorldNVX): 63(ptr) Variable Input +67(gl_WorldToObjectNVX): 63(ptr) Variable Input + 69: TypeVector 28(float) 4 + 70: TypePointer IncomingRayPayloadNVX 69(fvec4) +71(incomingPayload): 70(ptr) Variable IncomingRayPayloadNVX + 72: 28(float) Constant 1056964608 + 73: 69(fvec4) ConstantComposite 72 72 72 72 + 75: 16(int) Constant 1 + 76: TypeBool + 4(main): 2 Function None 3 + 5: Label + 9(v0): 8(ptr) Variable Function + 13(v1): 8(ptr) Variable Function + 18(v2): 17(ptr) Variable Function + 22(v3): 17(ptr) Variable Function + 25(v4): 17(ptr) Variable Function + 31(v5): 30(ptr) Variable Function + 35(v6): 30(ptr) Variable Function + 38(v7): 30(ptr) Variable Function + 41(v8): 30(ptr) Variable Function + 45(v9): 44(ptr) Variable Function + 49(v10): 44(ptr) Variable Function + 52(v11): 44(ptr) Variable Function + 56(v12): 55(ptr) Variable Function + 62(v13): 61(ptr) Variable Function + 66(v14): 61(ptr) Variable Function + 12: 7(ivec2) Load 11(gl_LaunchIDNVX) + Store 9(v0) 12 + 15: 7(ivec2) Load 14(gl_LaunchSizeNVX) + Store 13(v1) 15 + 21: 16(int) Load 20(gl_PrimitiveID) + Store 18(v2) 21 + 24: 16(int) Load 23(gl_InstanceID) + Store 22(v3) 24 + 27: 16(int) Load 26(gl_InstanceCustomIndexNVX) + Store 25(v4) 27 + 34: 29(fvec3) Load 33(gl_WorldRayOriginNVX) + Store 31(v5) 34 + 37: 29(fvec3) Load 36(gl_WorldRayDirectionNVX) + Store 35(v6) 37 + 40: 29(fvec3) Load 39(gl_ObjectRayOriginNVX) + Store 38(v7) 40 + 43: 29(fvec3) Load 42(gl_ObjectRayDirectionNVX) + Store 41(v8) 43 + 48: 28(float) Load 47(gl_RayTminNVX) + Store 45(v9) 48 + 51: 28(float) Load 50(gl_RayTmaxNVX) + Store 49(v10) 51 + 54: 28(float) Load 53(gl_HitTNVX) + Store 52(v11) 54 + 59: 6(int) Load 58(gl_HitKindNVX) + Store 56(v12) 59 + 65: 60 Load 64(gl_ObjectToWorldNVX) + Store 62(v13) 65 + 68: 60 Load 67(gl_WorldToObjectNVX) + Store 66(v14) 68 + Store 71(incomingPayload) 73 + 74: 16(int) Load 18(v2) + 77: 76(bool) IEqual 74 75 + SelectionMerge 79 None + BranchConditional 77 78 80 + 78: Label + IgnoreIntersectionNVX + Branch 79 + 80: Label + TerminateRayNVX + Branch 79 + 79: Label + Return + FunctionEnd diff --git a/Test/baseResults/spv.AnyHitShader_Errors.rahit.out b/Test/baseResults/spv.AnyHitShader_Errors.rahit.out new file mode 100644 index 0000000..5a863be --- /dev/null +++ b/Test/baseResults/spv.AnyHitShader_Errors.rahit.out @@ -0,0 +1,8 @@ +spv.AnyHitShader_Errors.rahit +ERROR: 0:8: 'assign' : l-value required "payload" (cannot modify hitAttributeNVX in this stage) +ERROR: 0:9: 'reportIntersectionNVX' : no matching overloaded function found +ERROR: 0:10: 'traceNVX' : no matching overloaded function found +ERROR: 3 compilation errors. No code generated. + + +SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/spv.ClosestHitShader.rchit.out b/Test/baseResults/spv.ClosestHitShader.rchit.out new file mode 100644 index 0000000..5a1d7fc --- /dev/null +++ b/Test/baseResults/spv.ClosestHitShader.rchit.out @@ -0,0 +1,169 @@ +spv.ClosestHitShader.rchit +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 88 + + Capability RaytracingNVX + Extension "SPV_NVX_raytracing" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint ClosestHitNVX 4 "main" 11 14 20 23 26 33 36 39 42 47 50 53 58 64 67 + Source GLSL 460 + SourceExtension "GL_NVX_raytracing" + Name 4 "main" + Name 9 "v0" + Name 11 "gl_LaunchIDNVX" + Name 13 "v1" + Name 14 "gl_LaunchSizeNVX" + Name 18 "v2" + Name 20 "gl_PrimitiveID" + Name 22 "v3" + Name 23 "gl_InstanceID" + Name 25 "v4" + Name 26 "gl_InstanceCustomIndexNVX" + Name 31 "v5" + Name 33 "gl_WorldRayOriginNVX" + Name 35 "v6" + Name 36 "gl_WorldRayDirectionNVX" + Name 38 "v7" + Name 39 "gl_ObjectRayOriginNVX" + Name 41 "v8" + Name 42 "gl_ObjectRayDirectionNVX" + Name 45 "v9" + Name 47 "gl_RayTminNVX" + Name 49 "v10" + Name 50 "gl_RayTmaxNVX" + Name 52 "v11" + Name 53 "gl_HitTNVX" + Name 56 "v12" + Name 58 "gl_HitKindNVX" + Name 62 "v13" + Name 64 "gl_ObjectToWorldNVX" + Name 66 "v14" + Name 67 "gl_WorldToObjectNVX" + Name 71 "accNV" + Name 85 "localPayload" + Name 87 "incomingPayload" + Decorate 11(gl_LaunchIDNVX) BuiltIn LaunchIdNVX + Decorate 14(gl_LaunchSizeNVX) BuiltIn LaunchSizeNVX + Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId + Decorate 23(gl_InstanceID) BuiltIn InstanceId + Decorate 26(gl_InstanceCustomIndexNVX) BuiltIn InstanceCustomIndexNVX + Decorate 33(gl_WorldRayOriginNVX) BuiltIn WorldRayOriginNVX + Decorate 36(gl_WorldRayDirectionNVX) BuiltIn WorldRayDirectionNVX + Decorate 39(gl_ObjectRayOriginNVX) BuiltIn ObjectRayOriginNVX + Decorate 42(gl_ObjectRayDirectionNVX) BuiltIn ObjectRayDirectionNVX + Decorate 47(gl_RayTminNVX) BuiltIn RayTminNVX + Decorate 50(gl_RayTmaxNVX) BuiltIn RayTmaxNVX + Decorate 53(gl_HitTNVX) BuiltIn HitTNVX + Decorate 58(gl_HitKindNVX) BuiltIn HitKindNVX + Decorate 64(gl_ObjectToWorldNVX) BuiltIn ObjectToWorldNVX + Decorate 67(gl_WorldToObjectNVX) BuiltIn WorldToObjectNVX + Decorate 71(accNV) DescriptorSet 0 + Decorate 71(accNV) Binding 0 + Decorate 85(localPayload) Location 0 + Decorate 87(incomingPayload) Location 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypeVector 6(int) 2 + 8: TypePointer Function 7(ivec2) + 10: TypePointer Input 7(ivec2) +11(gl_LaunchIDNVX): 10(ptr) Variable Input +14(gl_LaunchSizeNVX): 10(ptr) Variable Input + 16: TypeInt 32 1 + 17: TypePointer Function 16(int) + 19: TypePointer Input 16(int) +20(gl_PrimitiveID): 19(ptr) Variable Input +23(gl_InstanceID): 19(ptr) Variable Input +26(gl_InstanceCustomIndexNVX): 19(ptr) Variable Input + 28: TypeFloat 32 + 29: TypeVector 28(float) 3 + 30: TypePointer Function 29(fvec3) + 32: TypePointer Input 29(fvec3) +33(gl_WorldRayOriginNVX): 32(ptr) Variable Input +36(gl_WorldRayDirectionNVX): 32(ptr) Variable Input +39(gl_ObjectRayOriginNVX): 32(ptr) Variable Input +42(gl_ObjectRayDirectionNVX): 32(ptr) Variable Input + 44: TypePointer Function 28(float) + 46: TypePointer Input 28(float) +47(gl_RayTminNVX): 46(ptr) Variable Input +50(gl_RayTmaxNVX): 46(ptr) Variable Input + 53(gl_HitTNVX): 46(ptr) Variable Input + 55: TypePointer Function 6(int) + 57: TypePointer Input 6(int) +58(gl_HitKindNVX): 57(ptr) Variable Input + 60: TypeMatrix 29(fvec3) 4 + 61: TypePointer Function 60 + 63: TypePointer Input 60 +64(gl_ObjectToWorldNVX): 63(ptr) Variable Input +67(gl_WorldToObjectNVX): 63(ptr) Variable Input + 69: TypeAccelerationStructureNVX + 70: TypePointer UniformConstant 69 + 71(accNV): 70(ptr) Variable UniformConstant + 73: 6(int) Constant 0 + 74: 6(int) Constant 1 + 75: 6(int) Constant 2 + 76: 6(int) Constant 3 + 77: 28(float) Constant 1056964608 + 78: 29(fvec3) ConstantComposite 77 77 77 + 79: 28(float) Constant 1065353216 + 80: 29(fvec3) ConstantComposite 79 79 79 + 81: 28(float) Constant 1061158912 + 82: 16(int) Constant 1 + 83: TypeVector 28(float) 4 + 84: TypePointer RayPayloadNVX 83(fvec4) +85(localPayload): 84(ptr) Variable RayPayloadNVX + 86: TypePointer IncomingRayPayloadNVX 83(fvec4) +87(incomingPayload): 86(ptr) Variable IncomingRayPayloadNVX + 4(main): 2 Function None 3 + 5: Label + 9(v0): 8(ptr) Variable Function + 13(v1): 8(ptr) Variable Function + 18(v2): 17(ptr) Variable Function + 22(v3): 17(ptr) Variable Function + 25(v4): 17(ptr) Variable Function + 31(v5): 30(ptr) Variable Function + 35(v6): 30(ptr) Variable Function + 38(v7): 30(ptr) Variable Function + 41(v8): 30(ptr) Variable Function + 45(v9): 44(ptr) Variable Function + 49(v10): 44(ptr) Variable Function + 52(v11): 44(ptr) Variable Function + 56(v12): 55(ptr) Variable Function + 62(v13): 61(ptr) Variable Function + 66(v14): 61(ptr) Variable Function + 12: 7(ivec2) Load 11(gl_LaunchIDNVX) + Store 9(v0) 12 + 15: 7(ivec2) Load 14(gl_LaunchSizeNVX) + Store 13(v1) 15 + 21: 16(int) Load 20(gl_PrimitiveID) + Store 18(v2) 21 + 24: 16(int) Load 23(gl_InstanceID) + Store 22(v3) 24 + 27: 16(int) Load 26(gl_InstanceCustomIndexNVX) + Store 25(v4) 27 + 34: 29(fvec3) Load 33(gl_WorldRayOriginNVX) + Store 31(v5) 34 + 37: 29(fvec3) Load 36(gl_WorldRayDirectionNVX) + Store 35(v6) 37 + 40: 29(fvec3) Load 39(gl_ObjectRayOriginNVX) + Store 38(v7) 40 + 43: 29(fvec3) Load 42(gl_ObjectRayDirectionNVX) + Store 41(v8) 43 + 48: 28(float) Load 47(gl_RayTminNVX) + Store 45(v9) 48 + 51: 28(float) Load 50(gl_RayTmaxNVX) + Store 49(v10) 51 + 54: 28(float) Load 53(gl_HitTNVX) + Store 52(v11) 54 + 59: 6(int) Load 58(gl_HitKindNVX) + Store 56(v12) 59 + 65: 60 Load 64(gl_ObjectToWorldNVX) + Store 62(v13) 65 + 68: 60 Load 67(gl_WorldToObjectNVX) + Store 66(v14) 68 + 72: 69 Load 71(accNV) + TraceNVX 72 73 74 75 76 73 78 77 80 81 82 + Return + FunctionEnd diff --git a/Test/baseResults/spv.ClosestHitShader_Errors.rchit.out b/Test/baseResults/spv.ClosestHitShader_Errors.rchit.out new file mode 100644 index 0000000..36352ae --- /dev/null +++ b/Test/baseResults/spv.ClosestHitShader_Errors.rchit.out @@ -0,0 +1,9 @@ +spv.ClosestHitShader_Errors.rchit +ERROR: 0:8: 'assign' : l-value required "payload" (cannot modify hitAttributeNVX in this stage) +ERROR: 0:9: 'reportIntersectionNVX' : no matching overloaded function found +ERROR: 0:10: 'terminateRayNVX' : no matching overloaded function found +ERROR: 0:11: 'ignoreIntersectionNVX' : no matching overloaded function found +ERROR: 4 compilation errors. No code generated. + + +SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/spv.IntersectShader.rint.out b/Test/baseResults/spv.IntersectShader.rint.out new file mode 100644 index 0000000..bc84c6e --- /dev/null +++ b/Test/baseResults/spv.IntersectShader.rint.out @@ -0,0 +1,138 @@ +spv.IntersectShader.rint +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 71 + + Capability RaytracingNVX + Extension "SPV_NVX_raytracing" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint IntersectionNVX 4 "main" 11 14 20 23 26 33 36 39 42 47 50 56 59 + Source GLSL 460 + SourceExtension "GL_NVX_raytracing" + Name 4 "main" + Name 9 "v0" + Name 11 "gl_LaunchIDNVX" + Name 13 "v1" + Name 14 "gl_LaunchSizeNVX" + Name 18 "v2" + Name 20 "gl_PrimitiveID" + Name 22 "v3" + Name 23 "gl_InstanceID" + Name 25 "v4" + Name 26 "gl_InstanceCustomIndexNVX" + Name 31 "v5" + Name 33 "gl_WorldRayOriginNVX" + Name 35 "v6" + Name 36 "gl_WorldRayDirectionNVX" + Name 38 "v7" + Name 39 "gl_ObjectRayOriginNVX" + Name 41 "v8" + Name 42 "gl_ObjectRayDirectionNVX" + Name 45 "v9" + Name 47 "gl_RayTminNVX" + Name 49 "v10" + Name 50 "gl_RayTmaxNVX" + Name 54 "v11" + Name 56 "gl_ObjectToWorldNVX" + Name 58 "v12" + Name 59 "gl_WorldToObjectNVX" + Name 63 "iAttr" + Decorate 11(gl_LaunchIDNVX) BuiltIn LaunchIdNVX + Decorate 14(gl_LaunchSizeNVX) BuiltIn LaunchSizeNVX + Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId + Decorate 23(gl_InstanceID) BuiltIn InstanceId + Decorate 26(gl_InstanceCustomIndexNVX) BuiltIn InstanceCustomIndexNVX + Decorate 33(gl_WorldRayOriginNVX) BuiltIn WorldRayOriginNVX + Decorate 36(gl_WorldRayDirectionNVX) BuiltIn WorldRayDirectionNVX + Decorate 39(gl_ObjectRayOriginNVX) BuiltIn ObjectRayOriginNVX + Decorate 42(gl_ObjectRayDirectionNVX) BuiltIn ObjectRayDirectionNVX + Decorate 47(gl_RayTminNVX) BuiltIn RayTminNVX + Decorate 50(gl_RayTmaxNVX) BuiltIn RayTmaxNVX + Decorate 56(gl_ObjectToWorldNVX) BuiltIn ObjectToWorldNVX + Decorate 59(gl_WorldToObjectNVX) BuiltIn WorldToObjectNVX + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypeVector 6(int) 2 + 8: TypePointer Function 7(ivec2) + 10: TypePointer Input 7(ivec2) +11(gl_LaunchIDNVX): 10(ptr) Variable Input +14(gl_LaunchSizeNVX): 10(ptr) Variable Input + 16: TypeInt 32 1 + 17: TypePointer Function 16(int) + 19: TypePointer Input 16(int) +20(gl_PrimitiveID): 19(ptr) Variable Input +23(gl_InstanceID): 19(ptr) Variable Input +26(gl_InstanceCustomIndexNVX): 19(ptr) Variable Input + 28: TypeFloat 32 + 29: TypeVector 28(float) 3 + 30: TypePointer Function 29(fvec3) + 32: TypePointer Input 29(fvec3) +33(gl_WorldRayOriginNVX): 32(ptr) Variable Input +36(gl_WorldRayDirectionNVX): 32(ptr) Variable Input +39(gl_ObjectRayOriginNVX): 32(ptr) Variable Input +42(gl_ObjectRayDirectionNVX): 32(ptr) Variable Input + 44: TypePointer Function 28(float) + 46: TypePointer Input 28(float) +47(gl_RayTminNVX): 46(ptr) Variable Input +50(gl_RayTmaxNVX): 46(ptr) Variable Input + 52: TypeMatrix 29(fvec3) 4 + 53: TypePointer Function 52 + 55: TypePointer Input 52 +56(gl_ObjectToWorldNVX): 55(ptr) Variable Input +59(gl_WorldToObjectNVX): 55(ptr) Variable Input + 61: TypeVector 28(float) 4 + 62: TypePointer HitAttributeNVX 61(fvec4) + 63(iAttr): 62(ptr) Variable HitAttributeNVX + 64: 28(float) Constant 1056964608 + 65: 28(float) Constant 0 + 66: 28(float) Constant 1065353216 + 67: 61(fvec4) ConstantComposite 64 64 65 66 + 68: 6(int) Constant 1 + 69: TypeBool + 4(main): 2 Function None 3 + 5: Label + 9(v0): 8(ptr) Variable Function + 13(v1): 8(ptr) Variable Function + 18(v2): 17(ptr) Variable Function + 22(v3): 17(ptr) Variable Function + 25(v4): 17(ptr) Variable Function + 31(v5): 30(ptr) Variable Function + 35(v6): 30(ptr) Variable Function + 38(v7): 30(ptr) Variable Function + 41(v8): 30(ptr) Variable Function + 45(v9): 44(ptr) Variable Function + 49(v10): 44(ptr) Variable Function + 54(v11): 53(ptr) Variable Function + 58(v12): 53(ptr) Variable Function + 12: 7(ivec2) Load 11(gl_LaunchIDNVX) + Store 9(v0) 12 + 15: 7(ivec2) Load 14(gl_LaunchSizeNVX) + Store 13(v1) 15 + 21: 16(int) Load 20(gl_PrimitiveID) + Store 18(v2) 21 + 24: 16(int) Load 23(gl_InstanceID) + Store 22(v3) 24 + 27: 16(int) Load 26(gl_InstanceCustomIndexNVX) + Store 25(v4) 27 + 34: 29(fvec3) Load 33(gl_WorldRayOriginNVX) + Store 31(v5) 34 + 37: 29(fvec3) Load 36(gl_WorldRayDirectionNVX) + Store 35(v6) 37 + 40: 29(fvec3) Load 39(gl_ObjectRayOriginNVX) + Store 38(v7) 40 + 43: 29(fvec3) Load 42(gl_ObjectRayDirectionNVX) + Store 41(v8) 43 + 48: 28(float) Load 47(gl_RayTminNVX) + Store 45(v9) 48 + 51: 28(float) Load 50(gl_RayTmaxNVX) + Store 49(v10) 51 + 57: 52 Load 56(gl_ObjectToWorldNVX) + Store 54(v11) 57 + 60: 52 Load 59(gl_WorldToObjectNVX) + Store 58(v12) 60 + Store 63(iAttr) 67 + 70: 69(bool) ReportIntersectionNVX 64 68 + Return + FunctionEnd diff --git a/Test/baseResults/spv.IntersectShader_Errors.rint.out b/Test/baseResults/spv.IntersectShader_Errors.rint.out new file mode 100644 index 0000000..804ddb4 --- /dev/null +++ b/Test/baseResults/spv.IntersectShader_Errors.rint.out @@ -0,0 +1,10 @@ +spv.IntersectShader_Errors.rint +ERROR: 0:3: 'rayPayloadInNVX' : not supported in this stage: intersection +ERROR: 0:4: 'rayPayloadNVX' : not supported in this stage: intersection +ERROR: 0:8: 'gl_HitTNVX' : undeclared identifier +ERROR: 0:9: 'gl_HitKindNVX' : undeclared identifier +ERROR: 0:10: 'traceNVX' : no matching overloaded function found +ERROR: 5 compilation errors. No code generated. + + +SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/spv.MissShader.rmiss.out b/Test/baseResults/spv.MissShader.rmiss.out new file mode 100644 index 0000000..5384084 --- /dev/null +++ b/Test/baseResults/spv.MissShader.rmiss.out @@ -0,0 +1,113 @@ +spv.MissShader.rmiss +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 60 + + Capability RaytracingNVX + Extension "SPV_NVX_raytracing" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint MissNVX 4 "main" 11 14 21 24 27 30 35 38 + Source GLSL 460 + SourceExtension "GL_NVX_raytracing" + Name 4 "main" + Name 9 "v0" + Name 11 "gl_LaunchIDNVX" + Name 13 "v1" + Name 14 "gl_LaunchSizeNVX" + Name 19 "v2" + Name 21 "gl_WorldRayOriginNVX" + Name 23 "v3" + Name 24 "gl_WorldRayDirectionNVX" + Name 26 "v4" + Name 27 "gl_ObjectRayOriginNVX" + Name 29 "v5" + Name 30 "gl_ObjectRayDirectionNVX" + Name 33 "v6" + Name 35 "gl_RayTminNVX" + Name 37 "v7" + Name 38 "gl_RayTmaxNVX" + Name 42 "accNV" + Name 57 "localPayload" + Name 59 "incomingPayload" + Decorate 11(gl_LaunchIDNVX) BuiltIn LaunchIdNVX + Decorate 14(gl_LaunchSizeNVX) BuiltIn LaunchSizeNVX + Decorate 21(gl_WorldRayOriginNVX) BuiltIn WorldRayOriginNVX + Decorate 24(gl_WorldRayDirectionNVX) BuiltIn WorldRayDirectionNVX + Decorate 27(gl_ObjectRayOriginNVX) BuiltIn ObjectRayOriginNVX + Decorate 30(gl_ObjectRayDirectionNVX) BuiltIn ObjectRayDirectionNVX + Decorate 35(gl_RayTminNVX) BuiltIn RayTminNVX + Decorate 38(gl_RayTmaxNVX) BuiltIn RayTmaxNVX + Decorate 42(accNV) DescriptorSet 0 + Decorate 42(accNV) Binding 0 + Decorate 57(localPayload) Location 0 + Decorate 59(incomingPayload) Location 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypeVector 6(int) 2 + 8: TypePointer Function 7(ivec2) + 10: TypePointer Input 7(ivec2) +11(gl_LaunchIDNVX): 10(ptr) Variable Input +14(gl_LaunchSizeNVX): 10(ptr) Variable Input + 16: TypeFloat 32 + 17: TypeVector 16(float) 3 + 18: TypePointer Function 17(fvec3) + 20: TypePointer Input 17(fvec3) +21(gl_WorldRayOriginNVX): 20(ptr) Variable Input +24(gl_WorldRayDirectionNVX): 20(ptr) Variable Input +27(gl_ObjectRayOriginNVX): 20(ptr) Variable Input +30(gl_ObjectRayDirectionNVX): 20(ptr) Variable Input + 32: TypePointer Function 16(float) + 34: TypePointer Input 16(float) +35(gl_RayTminNVX): 34(ptr) Variable Input +38(gl_RayTmaxNVX): 34(ptr) Variable Input + 40: TypeAccelerationStructureNVX + 41: TypePointer UniformConstant 40 + 42(accNV): 41(ptr) Variable UniformConstant + 44: 6(int) Constant 0 + 45: 6(int) Constant 1 + 46: 6(int) Constant 2 + 47: 6(int) Constant 3 + 48: 16(float) Constant 1056964608 + 49: 17(fvec3) ConstantComposite 48 48 48 + 50: 16(float) Constant 1065353216 + 51: 17(fvec3) ConstantComposite 50 50 50 + 52: 16(float) Constant 1061158912 + 53: TypeInt 32 1 + 54: 53(int) Constant 1 + 55: TypeVector 16(float) 4 + 56: TypePointer RayPayloadNVX 55(fvec4) +57(localPayload): 56(ptr) Variable RayPayloadNVX + 58: TypePointer IncomingRayPayloadNVX 55(fvec4) +59(incomingPayload): 58(ptr) Variable IncomingRayPayloadNVX + 4(main): 2 Function None 3 + 5: Label + 9(v0): 8(ptr) Variable Function + 13(v1): 8(ptr) Variable Function + 19(v2): 18(ptr) Variable Function + 23(v3): 18(ptr) Variable Function + 26(v4): 18(ptr) Variable Function + 29(v5): 18(ptr) Variable Function + 33(v6): 32(ptr) Variable Function + 37(v7): 32(ptr) Variable Function + 12: 7(ivec2) Load 11(gl_LaunchIDNVX) + Store 9(v0) 12 + 15: 7(ivec2) Load 14(gl_LaunchSizeNVX) + Store 13(v1) 15 + 22: 17(fvec3) Load 21(gl_WorldRayOriginNVX) + Store 19(v2) 22 + 25: 17(fvec3) Load 24(gl_WorldRayDirectionNVX) + Store 23(v3) 25 + 28: 17(fvec3) Load 27(gl_ObjectRayOriginNVX) + Store 26(v4) 28 + 31: 17(fvec3) Load 30(gl_ObjectRayDirectionNVX) + Store 29(v5) 31 + 36: 16(float) Load 35(gl_RayTminNVX) + Store 33(v6) 36 + 39: 16(float) Load 38(gl_RayTmaxNVX) + Store 37(v7) 39 + 43: 40 Load 42(accNV) + TraceNVX 43 44 45 46 47 44 49 48 51 52 54 + Return + FunctionEnd diff --git a/Test/baseResults/spv.MissShader_Errors.rmiss.out b/Test/baseResults/spv.MissShader_Errors.rmiss.out new file mode 100644 index 0000000..bfc2f6c --- /dev/null +++ b/Test/baseResults/spv.MissShader_Errors.rmiss.out @@ -0,0 +1,21 @@ +spv.MissShader_Errors.rmiss +ERROR: 0:3: 'hitAttributeNVX' : not supported in this stage: miss +ERROR: 0:6: 'gl_PrimitiveID' : undeclared identifier +ERROR: 0:6: '=' : cannot convert from ' temp float' to ' temp highp int' +ERROR: 0:7: 'gl_InstanceID' : undeclared identifier (Did you mean gl_InstanceIndex?) +ERROR: 0:7: '=' : cannot convert from ' temp float' to ' temp highp int' +ERROR: 0:8: 'gl_InstanceCustomIndexNVX' : undeclared identifier +ERROR: 0:8: '=' : cannot convert from ' temp float' to ' temp highp int' +ERROR: 0:9: 'gl_ObjectToWorldNVX' : undeclared identifier +ERROR: 0:9: '=' : cannot convert from ' temp float' to ' temp highp 4X3 matrix of float' +ERROR: 0:10: 'gl_WorldToObjectNVX' : undeclared identifier +ERROR: 0:10: '=' : cannot convert from ' temp float' to ' temp highp 4X3 matrix of float' +ERROR: 0:11: 'gl_HitTNVX' : undeclared identifier +ERROR: 0:12: 'gl_HitKindNVX' : undeclared identifier +ERROR: 0:13: 'reportIntersectionNVX' : no matching overloaded function found +ERROR: 0:14: 'ignoreIntersectionNVX' : no matching overloaded function found +ERROR: 0:15: 'terminateRayNVX' : no matching overloaded function found +ERROR: 16 compilation errors. No code generated. + + +SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/spv.RayConstants.rgen.out b/Test/baseResults/spv.RayConstants.rgen.out new file mode 100644 index 0000000..ecbee8a --- /dev/null +++ b/Test/baseResults/spv.RayConstants.rgen.out @@ -0,0 +1,46 @@ +spv.RayConstants.rgen +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 27 + + Capability RaytracingNVX + Extension "SPV_NVX_raytracing" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint RayGenerationNVX 4 "main" + Source GLSL 460 + SourceExtension "GL_NVX_raytracing" + Name 4 "main" + Name 8 "accNV" + Name 26 "payload" + Decorate 8(accNV) DescriptorSet 0 + Decorate 8(accNV) Binding 0 + Decorate 26(payload) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeAccelerationStructureNVX + 7: TypePointer UniformConstant 6 + 8(accNV): 7(ptr) Variable UniformConstant + 10: TypeInt 32 0 + 11: 10(int) Constant 255 + 12: 10(int) Constant 0 + 13: 10(int) Constant 1 + 14: TypeFloat 32 + 15: TypeVector 14(float) 3 + 16: 14(float) Constant 0 + 17: 15(fvec3) ConstantComposite 16 16 16 + 18: 14(float) Constant 1056964608 + 19: 14(float) Constant 1065353216 + 20: 15(fvec3) ConstantComposite 19 19 19 + 21: 14(float) Constant 1061158912 + 22: TypeInt 32 1 + 23: 22(int) Constant 1 + 24: TypeVector 14(float) 4 + 25: TypePointer RayPayloadNVX 24(fvec4) + 26(payload): 25(ptr) Variable RayPayloadNVX + 4(main): 2 Function None 3 + 5: Label + 9: 6 Load 8(accNV) + TraceNVX 9 11 12 13 13 12 17 18 20 21 23 + Return + FunctionEnd diff --git a/Test/baseResults/spv.RayGenShader.rgen.out b/Test/baseResults/spv.RayGenShader.rgen.out new file mode 100644 index 0000000..ad1ba7c --- /dev/null +++ b/Test/baseResults/spv.RayGenShader.rgen.out @@ -0,0 +1,101 @@ +spv.RayGenShader.rgen +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 60 + + Capability RaytracingNVX + Extension "SPV_NVX_raytracing" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint RayGenerationNVX 4 "main" 11 21 + Source GLSL 460 + SourceExtension "GL_NVX_raytracing" + Name 4 "main" + Name 8 "lx" + Name 11 "gl_LaunchIDNVX" + Name 16 "ly" + Name 20 "sx" + Name 21 "gl_LaunchSizeNVX" + Name 24 "sy" + Name 29 "accNV" + Name 48 "block" + MemberName 48(block) 0 "arr" + MemberName 48(block) 1 "pad" + Name 50 "" + Name 56 "payload" + Decorate 11(gl_LaunchIDNVX) BuiltIn LaunchIdNVX + Decorate 21(gl_LaunchSizeNVX) BuiltIn LaunchSizeNVX + Decorate 29(accNV) DescriptorSet 0 + Decorate 29(accNV) Binding 0 + Decorate 46 ArrayStride 4 + MemberDecorate 48(block) 0 Offset 0 + MemberDecorate 48(block) 1 Offset 16 + Decorate 48(block) BufferBlock + Decorate 56(payload) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 9: TypeVector 6(int) 2 + 10: TypePointer Input 9(ivec2) +11(gl_LaunchIDNVX): 10(ptr) Variable Input + 12: 6(int) Constant 0 + 13: TypePointer Input 6(int) + 17: 6(int) Constant 1 +21(gl_LaunchSizeNVX): 10(ptr) Variable Input + 27: TypeAccelerationStructureNVX + 28: TypePointer UniformConstant 27 + 29(accNV): 28(ptr) Variable UniformConstant + 35: TypeFloat 32 + 36: TypeVector 35(float) 3 + 37: 35(float) Constant 0 + 38: 36(fvec3) ConstantComposite 37 37 37 + 39: 35(float) Constant 1056964608 + 40: 35(float) Constant 1065353216 + 41: 36(fvec3) ConstantComposite 40 40 40 + 42: 35(float) Constant 1061158912 + 43: TypeInt 32 1 + 44: 43(int) Constant 1 + 45: 6(int) Constant 4 + 46: TypeArray 35(float) 45 + 47: TypeVector 35(float) 4 + 48(block): TypeStruct 46 47(fvec4) + 49: TypePointer ShaderRecordBufferNVX 48(block) + 50: 49(ptr) Variable ShaderRecordBufferNVX + 51: 43(int) Constant 0 + 52: 43(int) Constant 3 + 53: TypePointer ShaderRecordBufferNVX 35(float) + 55: TypePointer RayPayloadNVX 47(fvec4) + 56(payload): 55(ptr) Variable RayPayloadNVX + 58: TypePointer ShaderRecordBufferNVX 47(fvec4) + 4(main): 2 Function None 3 + 5: Label + 8(lx): 7(ptr) Variable Function + 16(ly): 7(ptr) Variable Function + 20(sx): 7(ptr) Variable Function + 24(sy): 7(ptr) Variable Function + 14: 13(ptr) AccessChain 11(gl_LaunchIDNVX) 12 + 15: 6(int) Load 14 + Store 8(lx) 15 + 18: 13(ptr) AccessChain 11(gl_LaunchIDNVX) 17 + 19: 6(int) Load 18 + Store 16(ly) 19 + 22: 13(ptr) AccessChain 21(gl_LaunchSizeNVX) 12 + 23: 6(int) Load 22 + Store 20(sx) 23 + 25: 13(ptr) AccessChain 21(gl_LaunchSizeNVX) 17 + 26: 6(int) Load 25 + Store 24(sy) 26 + 30: 27 Load 29(accNV) + 31: 6(int) Load 8(lx) + 32: 6(int) Load 16(ly) + 33: 6(int) Load 20(sx) + 34: 6(int) Load 24(sy) + TraceNVX 30 31 32 33 34 12 38 39 41 42 44 + 54: 53(ptr) AccessChain 50 51 52 + Store 54 40 + 57: 47(fvec4) Load 56(payload) + 59: 58(ptr) AccessChain 50 44 + Store 59 57 + Return + FunctionEnd diff --git a/Test/baseResults/spv.RayGenShader_Errors.rgen.out b/Test/baseResults/spv.RayGenShader_Errors.rgen.out new file mode 100644 index 0000000..7d9e2c2 --- /dev/null +++ b/Test/baseResults/spv.RayGenShader_Errors.rgen.out @@ -0,0 +1,39 @@ +spv.RayGenShader_Errors.rgen +ERROR: 0:3: 'hitAttributeNVX' : not supported in this stage: ray-generation +ERROR: 0:4: 'rayPayloadInNVX' : not supported in this stage: ray-generation +ERROR: 0:5: 'shaderRecordNVX' : can only be used with a buffer +ERROR: 0:9: 'binding' : cannot be used with shaderRecordNVX +ERROR: 0:12: 'set' : cannot be used with shaderRecordNVX +ERROR: 0:23: 'accelerationStructureNVX' : accelerationStructureNVX can only be used in uniform variables or function parameters: a +ERROR: 0:23: '=' : cannot convert from ' const int' to ' temp accelerationStructureNVX' +ERROR: 0:24: 'gl_PrimitiveID' : undeclared identifier +ERROR: 0:24: '=' : cannot convert from ' temp float' to ' temp highp int' +ERROR: 0:25: 'gl_InstanceID' : undeclared identifier (Did you mean gl_InstanceIndex?) +ERROR: 0:25: '=' : cannot convert from ' temp float' to ' temp highp int' +ERROR: 0:26: 'gl_InstanceCustomIndexNVX' : undeclared identifier +ERROR: 0:26: '=' : cannot convert from ' temp float' to ' temp highp int' +ERROR: 0:27: 'gl_WorldRayOriginNVX' : undeclared identifier +ERROR: 0:27: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float' +ERROR: 0:28: 'gl_WorldRayDirectionNVX' : undeclared identifier +ERROR: 0:28: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float' +ERROR: 0:29: 'gl_ObjectRayOriginNVX' : undeclared identifier +ERROR: 0:29: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float' +ERROR: 0:30: 'gl_ObjectRayDirectionNVX' : undeclared identifier +ERROR: 0:30: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float' +ERROR: 0:31: 'gl_RayTminNVX' : undeclared identifier +ERROR: 0:32: 'gl_RayTmaxNVX' : undeclared identifier +ERROR: 0:33: 'gl_ObjectToWorldNVX' : undeclared identifier +ERROR: 0:33: '=' : cannot convert from ' temp float' to ' temp highp 4X3 matrix of float' +ERROR: 0:34: 'gl_WorldToObjectNVX' : undeclared identifier +ERROR: 0:34: '=' : cannot convert from ' temp float' to ' temp highp 4X3 matrix of float' +ERROR: 0:35: 'gl_HitTNVX' : undeclared identifier +ERROR: 0:36: 'gl_HitKindNVX' : undeclared identifier +ERROR: 0:37: 'reportIntersectionNVX' : no matching overloaded function found +ERROR: 0:38: 'ignoreIntersectionNVX' : no matching overloaded function found +ERROR: 0:39: 'terminateRayNVX' : no matching overloaded function found +ERROR: 32 compilation errors. No code generated. + + +ERROR: Linking ray-generation stage: Only one shaderRecordNVX buffer block is allowed per stage + +SPIR-V is not generated for failed compile or link diff --git a/Test/spv.AnyHitShader.rahit b/Test/spv.AnyHitShader.rahit new file mode 100644 index 0000000..88e5601 --- /dev/null +++ b/Test/spv.AnyHitShader.rahit @@ -0,0 +1,26 @@ +#version 460 +#extension GL_NVX_raytracing : enable +layout(location = 1) rayPayloadInNVX vec4 incomingPayload; +void main() +{ + uvec2 v0 = gl_LaunchIDNVX; + uvec2 v1 = gl_LaunchSizeNVX; + int v2 = gl_PrimitiveID; + int v3 = gl_InstanceID; + int v4 = gl_InstanceCustomIndexNVX; + vec3 v5 = gl_WorldRayOriginNVX; + vec3 v6 = gl_WorldRayDirectionNVX; + vec3 v7 = gl_ObjectRayOriginNVX; + vec3 v8 = gl_ObjectRayDirectionNVX; + float v9 = gl_RayTminNVX; + float v10 = gl_RayTmaxNVX; + float v11 = gl_HitTNVX; + uint v12 = gl_HitKindNVX; + mat4x3 v13 = gl_ObjectToWorldNVX; + mat4x3 v14 = gl_WorldToObjectNVX; + incomingPayload = vec4(0.5f); + if (v2 == 1) + ignoreIntersectionNVX(); + else + terminateRayNVX(); +} diff --git a/Test/spv.AnyHitShader_Errors.rahit b/Test/spv.AnyHitShader_Errors.rahit new file mode 100644 index 0000000..a0f72e6 --- /dev/null +++ b/Test/spv.AnyHitShader_Errors.rahit @@ -0,0 +1,11 @@ +#version 460 +#extension GL_NVX_raytracing : enable +hitAttributeNVX vec4 payload; +layout(binding = 0, set = 0) uniform accelerationStructureNVX accNV; + +void main() +{ + payload.x = 1.0f; // ERROR, cannot write to hitattributeNVX in stage + reportIntersectionNVX(1.0, 1U); // ERROR, unsupported builtin in stage + traceNVX(accNV, 0, 0, 1, 1, 0, vec3(0.0f), 0.5f, vec3(1.0f), 0.75f, 0); // ERROR, unsupported builtin in stage +} diff --git a/Test/spv.ClosestHitShader.rchit b/Test/spv.ClosestHitShader.rchit new file mode 100644 index 0000000..498d0d8 --- /dev/null +++ b/Test/spv.ClosestHitShader.rchit @@ -0,0 +1,24 @@ +#version 460 +#extension GL_NVX_raytracing : enable +layout(binding = 0, set = 0) uniform accelerationStructureNVX accNV; +layout(location = 0) rayPayloadNVX vec4 localPayload; +layout(location = 1) rayPayloadInNVX vec4 incomingPayload; +void main() +{ + uvec2 v0 = gl_LaunchIDNVX; + uvec2 v1 = gl_LaunchSizeNVX; + int v2 = gl_PrimitiveID; + int v3 = gl_InstanceID; + int v4 = gl_InstanceCustomIndexNVX; + vec3 v5 = gl_WorldRayOriginNVX; + vec3 v6 = gl_WorldRayDirectionNVX; + vec3 v7 = gl_ObjectRayOriginNVX; + vec3 v8 = gl_ObjectRayDirectionNVX; + float v9 = gl_RayTminNVX; + float v10 = gl_RayTmaxNVX; + float v11 = gl_HitTNVX; + uint v12 = gl_HitKindNVX; + mat4x3 v13 = gl_ObjectToWorldNVX; + mat4x3 v14 = gl_WorldToObjectNVX; + traceNVX(accNV, 0u, 1u, 2u, 3u, 0u, vec3(0.5f), 0.5f, vec3(1.0f), 0.75f, 1); +} diff --git a/Test/spv.ClosestHitShader_Errors.rchit b/Test/spv.ClosestHitShader_Errors.rchit new file mode 100644 index 0000000..6c1f6e4 --- /dev/null +++ b/Test/spv.ClosestHitShader_Errors.rchit @@ -0,0 +1,12 @@ +#version 460 +#extension GL_NVX_raytracing : enable +hitAttributeNVX vec4 payload; +layout(binding = 0, set = 0) uniform accelerationStructureNVX accNV; + +void main() +{ + payload.x = 1.0f; // ERROR, cannot write to hitattributeNVX in stage + reportIntersectionNVX(1.0, 1U); // ERROR, unsupported builtin in stage + terminateRayNVX(); + ignoreIntersectionNVX(); +} diff --git a/Test/spv.IntersectShader.rint b/Test/spv.IntersectShader.rint new file mode 100644 index 0000000..226ff06 --- /dev/null +++ b/Test/spv.IntersectShader.rint @@ -0,0 +1,21 @@ +#version 460 +#extension GL_NVX_raytracing : enable +hitAttributeNVX vec4 iAttr; +void main() +{ + uvec2 v0 = gl_LaunchIDNVX; + uvec2 v1 = gl_LaunchSizeNVX; + int v2 = gl_PrimitiveID; + int v3 = gl_InstanceID; + int v4 = gl_InstanceCustomIndexNVX; + vec3 v5 = gl_WorldRayOriginNVX; + vec3 v6 = gl_WorldRayDirectionNVX; + vec3 v7 = gl_ObjectRayOriginNVX; + vec3 v8 = gl_ObjectRayDirectionNVX; + float v9 = gl_RayTminNVX; + float v10 = gl_RayTmaxNVX; + mat4x3 v11 = gl_ObjectToWorldNVX; + mat4x3 v12 = gl_WorldToObjectNVX; + iAttr = vec4(0.5f,0.5f,0.0f,1.0f); + reportIntersectionNVX(0.5, 1U); +} diff --git a/Test/spv.IntersectShader_Errors.rint b/Test/spv.IntersectShader_Errors.rint new file mode 100644 index 0000000..90278d8 --- /dev/null +++ b/Test/spv.IntersectShader_Errors.rint @@ -0,0 +1,11 @@ +#version 460 +#extension GL_NVX_raytracing : enable +rayPayloadInNVX vec4 payloadIn; // ERROR, rayPayloadIn unsupported in this stage +rayPayloadNVX vec4 payload; // ERROR, rayPayload unsuppoted in this stage +uniform accelerationStructureNVX accNV; +void main() +{ + float e12 = gl_HitTNVX; // ERROR, unsupported builtin in stage + float e13 = gl_HitKindNVX; // ERROR, unsupported builtin in stage + traceNVX(accNV, 0, 0, 1, 1, 0, vec3(0.0f), 0.5f, vec3(1.0f), 0.75f, 0); // ERROR, unsupported +} diff --git a/Test/spv.MissShader.rmiss b/Test/spv.MissShader.rmiss new file mode 100644 index 0000000..6daaa01 --- /dev/null +++ b/Test/spv.MissShader.rmiss @@ -0,0 +1,17 @@ +#version 460 +#extension GL_NVX_raytracing : enable +layout(binding = 0, set = 0) uniform accelerationStructureNVX accNV; +layout(location = 0) rayPayloadNVX vec4 localPayload; +layout(location = 1) rayPayloadInNVX vec4 incomingPayload; +void main() +{ + uvec2 v0 = gl_LaunchIDNVX; + uvec2 v1 = gl_LaunchSizeNVX; + vec3 v2 = gl_WorldRayOriginNVX; + vec3 v3 = gl_WorldRayDirectionNVX; + vec3 v4 = gl_ObjectRayOriginNVX; + vec3 v5 = gl_ObjectRayDirectionNVX; + float v6 = gl_RayTminNVX; + float v7 = gl_RayTmaxNVX; + traceNVX(accNV, 0u, 1u, 2u, 3u, 0u, vec3(0.5f), 0.5f, vec3(1.0f), 0.75f, 1); +} diff --git a/Test/spv.MissShader_Errors.rmiss b/Test/spv.MissShader_Errors.rmiss new file mode 100644 index 0000000..a45cb8d --- /dev/null +++ b/Test/spv.MissShader_Errors.rmiss @@ -0,0 +1,16 @@ +#version 460 +#extension GL_NVX_raytracing : enable +hitAttributeNVX vec4 payload; // ERROR, hitattributeNVX unsupported in this stage +void main() +{ + int e0 = gl_PrimitiveID; // ERROR, unsupported builtin in stage + int e1 = gl_InstanceID; // ERROR, unsupported builtin in stage + int e3 = gl_InstanceCustomIndexNVX; // ERROR, unsupported builtin in stage + mat4x3 e10 = gl_ObjectToWorldNVX; // ERROR, unsupported builtin in stage + mat4x3 e11 = gl_WorldToObjectNVX; // ERROR, unsupported builtin in stage + float e12 = gl_HitTNVX; // ERROR, unsupported builtin in stage + float e13 = gl_HitKindNVX; // ERROR, unsupported builtin in stage + reportIntersectionNVX(1.0, 1U); // ERROR, unsupported builtin in stage + ignoreIntersectionNVX(); // ERROR, unsupported builtin in stage + terminateRayNVX(); // ERROR, unsupported builtin in stage +} diff --git a/Test/spv.RayConstants.rgen b/Test/spv.RayConstants.rgen new file mode 100644 index 0000000..61ff39e --- /dev/null +++ b/Test/spv.RayConstants.rgen @@ -0,0 +1,15 @@ +#version 460 +#extension GL_NVX_raytracing : enable +layout(binding = 0, set = 0) uniform accelerationStructureNVX accNV; +layout(location = 0) rayPayloadNVX vec4 payload; +void main() +{ + const uint rayFlags = gl_RayFlagsNoneNVX | gl_RayFlagsOpaqueNVX | + gl_RayFlagsNoOpaqueNVX | gl_RayFlagsTerminateOnFirstHitNVX | + gl_RayFlagsSkipClosestHitShaderNVX | gl_RayFlagsCullBackFacingTrianglesNVX | + gl_RayFlagsCullFrontFacingTrianglesNVX | gl_RayFlagsCullOpaqueNVX | + gl_RayFlagsCullNoOpaqueNVX; + + const int payloadId = 1; + traceNVX(accNV, rayFlags, 0, 1, 1, 0, vec3(0.0f), 0.5f, vec3(1.0f), 0.75f, payloadId); +} diff --git a/Test/spv.RayGenShader.rgen b/Test/spv.RayGenShader.rgen new file mode 100644 index 0000000..19f16ce --- /dev/null +++ b/Test/spv.RayGenShader.rgen @@ -0,0 +1,19 @@ +#version 460 +#extension GL_NVX_raytracing : enable +layout(binding = 0, set = 0) uniform accelerationStructureNVX accNV; +layout(location = 0) rayPayloadNVX vec4 payload; +layout(shaderRecordNVX) buffer block +{ + float arr[4]; + vec4 pad; +}; +void main() +{ + uint lx = gl_LaunchIDNVX.x; + uint ly = gl_LaunchIDNVX.y; + uint sx = gl_LaunchSizeNVX.x; + uint sy = gl_LaunchSizeNVX.y; + traceNVX(accNV, lx, ly, sx, sy, 0u, vec3(0.0f), 0.5f, vec3(1.0f), 0.75f, 1); + arr[3] = 1.0f; + pad = payload; +} diff --git a/Test/spv.RayGenShader_Errors.rgen b/Test/spv.RayGenShader_Errors.rgen new file mode 100644 index 0000000..73175b8 --- /dev/null +++ b/Test/spv.RayGenShader_Errors.rgen @@ -0,0 +1,40 @@ +#version 460 +#extension GL_NVX_raytracing : enable +hitAttributeNVX vec4 payload; // ERROR, hitattributeNVX unsupported in this stage +rayPayloadInNVX vec4 payloadIn; // ERROR, rayPayloadIn unsupported in this stage +layout(shaderRecordNVX) uniform ublock // ERROR, shaderRecordNVX unsupported on uniform blocks +{ + float a; +}; +layout(binding = 0, shaderRecordNVX) buffer bblock { // ERROR, binding unsupported on shaderRecordNVX blocks + float b; +}; +layout(set = 0, shaderRecordNVX) buffer bblock2 { // ERROR, set unsupported on shaderRecordNVX blocks + float c; +}; +layout(shaderRecordNVX) buffer bblock3 { + float d; +}; +layout(shaderRecordNVX) buffer bblock4 { // ERROR, cannot have more than one shaderRecordNVX block + float e; +}; +void main() +{ + accelerationStructureNVX a = 0; + int e0 = gl_PrimitiveID; // ERROR, unsupported builtin in stage + int e1 = gl_InstanceID; // ERROR, unsupported builtin in stage + int e3 = gl_InstanceCustomIndexNVX; // ERROR, unsupported builtin in stage + vec3 e4 = gl_WorldRayOriginNVX; // ERROR, unsupported builtin in stage + vec3 e5 = gl_WorldRayDirectionNVX; // ERROR, unsupported builtin in stage + vec3 e6 = gl_ObjectRayOriginNVX; // ERROR, unsupported builtin in stage + vec3 e7 = gl_ObjectRayDirectionNVX; // ERROR, unsupported builtin in stage + float e8 = gl_RayTminNVX; // ERROR, unsupported builtin in stage + float e9 = gl_RayTmaxNVX; // ERROR, unsupported builtin in stage + mat4x3 e10 = gl_ObjectToWorldNVX; // ERROR, unsupported builtin in stage + mat4x3 e11 = gl_WorldToObjectNVX; // ERROR, unsupported builtin in stage + float e12 = gl_HitTNVX; // ERROR, unsupported builtin in stage + float e13 = gl_HitKindNVX; // ERROR, unsupported builtin in stage + reportIntersectionNVX(1.0, 1U); // ERROR, unsupported builtin in stage + ignoreIntersectionNVX(); // ERROR, unsupported builtin in stage + terminateRayNVX(); // ERROR, unsupported builtin in stage +} diff --git a/glslang/Include/BaseTypes.h b/glslang/Include/BaseTypes.h index 5a191aa..d1a8908 100644 --- a/glslang/Include/BaseTypes.h +++ b/glslang/Include/BaseTypes.h @@ -62,6 +62,10 @@ enum TBasicType { EbtStruct, EbtBlock, +#ifdef NV_EXTENSIONS + EbtAccStructNV, +#endif + // HLSL types that live only temporarily. EbtString, @@ -88,6 +92,12 @@ enum TStorageQualifier { EvqBuffer, // read/write, shared with app EvqShared, // compute shader's read/write 'shared' qualifier +#ifdef NV_EXTENSIONS + EvqPayloadNV, + EvqPayloadInNV, + EvqHitAttrNV, +#endif + // parameters EvqIn, // also, for 'in' in the grammar before we know if it's a pipeline input or an 'in' parameter EvqOut, // also, for 'out' in the grammar before we know if it's a pipeline output or an 'out' parameter @@ -227,6 +237,20 @@ enum TBuiltInVariable { EbvPositionPerViewNV, EbvViewportMaskPerViewNV, EbvFragFullyCoveredNV, + // raytracing + EbvLaunchIdNV, + EbvLaunchSizeNV, + EbvInstanceCustomIndexNV, + EbvWorldRayOriginNV, + EbvWorldRayDirectionNV, + EbvObjectRayOriginNV, + EbvObjectRayDirectionNV, + EbvRayTminNV, + EbvRayTmaxNV, + EbvHitTNV, + EbvHitKindNV, + EbvObjectToWorldNV, + EbvWorldToObjectNV, EbvBaryCoordNV, EbvBaryCoordNoPerspNV, EbvTaskCountNV, @@ -283,6 +307,11 @@ __inline const char* GetStorageQualifierString(TStorageQualifier q) case EvqPointCoord: return "gl_PointCoord"; break; case EvqFragColor: return "fragColor"; break; case EvqFragDepth: return "gl_FragDepth"; break; +#ifdef NV_EXTENSIONS + case EvqPayloadNV: return "rayPayloadNVX"; break; + case EvqPayloadInNV: return "rayPayloadInNVX"; break; + case EvqHitAttrNV: return "hitAttributeNVX"; break; +#endif default: return "unknown qualifier"; } } @@ -375,6 +404,19 @@ __inline const char* GetBuiltInVariableString(TBuiltInVariable v) case EbvPositionPerViewNV: return "PositionPerViewNV"; case EbvViewportMaskPerViewNV: return "ViewportMaskPerViewNV"; case EbvFragFullyCoveredNV: return "FragFullyCoveredNV"; + case EbvLaunchIdNV: return "LaunchIdNVX"; + case EbvLaunchSizeNV: return "LaunchSizeNVX"; + case EbvInstanceCustomIndexNV: return "InstanceCustomIndexNVX"; + case EbvWorldRayOriginNV: return "WorldRayOriginNVX"; + case EbvWorldRayDirectionNV: return "WorldRayDirectionNVX"; + case EbvObjectRayOriginNV: return "ObjectRayOriginNVX"; + case EbvObjectRayDirectionNV: return "ObjectRayDirectionNVX"; + case EbvRayTminNV: return "ObjectRayTminNVX"; + case EbvRayTmaxNV: return "ObjectRayTmaxNVX"; + case EbvHitTNV: return "HitTNVX"; + case EbvHitKindNV: return "HitKindNVX"; + case EbvObjectToWorldNV: return "ObjectToWorldNVX"; + case EbvWorldToObjectNV: return "WorldToObjectNVX"; case EbvBaryCoordNV: return "BaryCoordNV"; case EbvBaryCoordNoPerspNV: return "BaryCoordNoPerspNV"; case EbvTaskCountNV: return "TaskCountNV"; diff --git a/glslang/Include/Types.h b/glslang/Include/Types.h index 43fc7c6..7793c2c 100644 --- a/glslang/Include/Types.h +++ b/glslang/Include/Types.h @@ -725,6 +725,7 @@ public: layoutViewportRelative = false; // -2048 as the default value indicating layoutSecondaryViewportRelative is not set layoutSecondaryViewportRelativeOffset = -2048; + layoutShaderRecordNV = false; #endif clearInterstageLayout(); @@ -758,6 +759,9 @@ public: hasAnyLocation() || hasStream() || hasFormat() || +#ifdef NV_EXTENSIONS + layoutShaderRecordNV || +#endif layoutPushConstant; } bool hasLayout() const @@ -811,6 +815,7 @@ public: bool layoutPassthrough; bool layoutViewportRelative; int layoutSecondaryViewportRelativeOffset; + bool layoutShaderRecordNV; #endif bool hasUniformLayout() const @@ -1481,7 +1486,11 @@ public: } return false; } - virtual bool isOpaque() const { return basicType == EbtSampler || basicType == EbtAtomicUint; } + virtual bool isOpaque() const { return basicType == EbtSampler || basicType == EbtAtomicUint +#ifdef NV_EXTENSIONS + || basicType == EbtAccStructNV +#endif + ; } virtual bool isBuiltIn() const { return getQualifier().builtIn != EbvNone; } // "Image" is a superset of "Subpass" @@ -1669,6 +1678,9 @@ public: case EbtSampler: return "sampler/image"; case EbtStruct: return "structure"; case EbtBlock: return "block"; +#ifdef NV_EXTENSIONS + case EbtAccStructNV: return "accelerationStructureNVX"; +#endif default: return "unknown type"; } } @@ -1764,6 +1776,8 @@ public: appendStr(" layoutSecondaryViewportRelativeOffset="); appendInt(qualifier.layoutSecondaryViewportRelativeOffset); } + if (qualifier.layoutShaderRecordNV) + appendStr(" shaderRecordNVX"); #endif appendStr(")"); diff --git a/glslang/Include/intermediate.h b/glslang/Include/intermediate.h index 9f51f7d..b770cee 100644 --- a/glslang/Include/intermediate.h +++ b/glslang/Include/intermediate.h @@ -894,6 +894,10 @@ enum TOperator { EOpFindMSB, #ifdef NV_EXTENSIONS + EOpTraceNV, + EOpReportIntersectionNV, + EOpIgnoreIntersectionNV, + EOpTerminateRayNV, EOpWritePackedPrimitiveIndices4x8NV, #endif // diff --git a/glslang/MachineIndependent/Initialize.cpp b/glslang/MachineIndependent/Initialize.cpp index 782b325..24697d3 100644 --- a/glslang/MachineIndependent/Initialize.cpp +++ b/glslang/MachineIndependent/Initialize.cpp @@ -5058,6 +5058,27 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV #endif #ifdef NV_EXTENSIONS + + // Builtins for GL_NV_raytracing + if (profile != EEsProfile && version >= 460) { + stageBuiltins[EShLangRayGenNV].append( + "void traceNVX(accelerationStructureNVX,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);" + "\n"); + stageBuiltins[EShLangIntersectNV].append( + "bool reportIntersectionNVX(float, uint);" + "\n"); + stageBuiltins[EShLangAnyHitNV].append( + "void ignoreIntersectionNVX();" + "void terminateRayNVX();" + "\n"); + stageBuiltins[EShLangClosestHitNV].append( + "void traceNVX(accelerationStructureNVX,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);" + "\n"); + stageBuiltins[EShLangMissNV].append( + "void traceNVX(accelerationStructureNVX,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);" + "\n"); + } + //E_SPV_NV_compute_shader_derivatives stageBuiltins[EShLangCompute].append(derivatives); @@ -5930,7 +5951,8 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV stageBuiltins[EShLangFragment].append( "in vec3 gl_BaryCoordNV;" "in vec3 gl_BaryCoordNoPerspNV;" - ); + ); + #endif } else { // ES profile @@ -5973,12 +5995,13 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "highp float gl_FragDepthEXT;" // GL_EXT_frag_depth ); #ifdef NV_EXTENSIONS - if (version >= 320) + if (version >= 320) stageBuiltins[EShLangFragment].append( "in vec3 gl_BaryCoordNV;" "in vec3 gl_BaryCoordNoPerspNV;" - ); + ); #endif + } stageBuiltins[EShLangFragment].append("\n"); @@ -6072,6 +6095,94 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV #endif } +#ifdef NV_EXTENSIONS + // GL_NV_raytracing + if (profile != EEsProfile && version >= 460) { + + const char *constRayFlags = + "const uint gl_RayFlagsNoneNVX = 0U;" + "const uint gl_RayFlagsOpaqueNVX = 1U;" + "const uint gl_RayFlagsNoOpaqueNVX = 2U;" + "const uint gl_RayFlagsTerminateOnFirstHitNVX = 4U;" + "const uint gl_RayFlagsSkipClosestHitShaderNVX = 8U;" + "const uint gl_RayFlagsCullBackFacingTrianglesNVX = 16U;" + "const uint gl_RayFlagsCullFrontFacingTrianglesNVX = 32U;" + "const uint gl_RayFlagsCullOpaqueNVX = 64U;" + "const uint gl_RayFlagsCullNoOpaqueNVX = 128U;" + "\n"; + const char *rayGenDecls = + "in uvec2 gl_LaunchIDNVX;" + "in uvec2 gl_LaunchSizeNVX;" + "\n"; + const char *intersectDecls = + "in uvec2 gl_LaunchIDNVX;" + "in uvec2 gl_LaunchSizeNVX;" + "in int gl_PrimitiveID;" + "in int gl_InstanceID;" + "in int gl_InstanceCustomIndexNVX;" + "in vec3 gl_WorldRayOriginNVX;" + "in vec3 gl_WorldRayDirectionNVX;" + "in vec3 gl_ObjectRayOriginNVX;" + "in vec3 gl_ObjectRayDirectionNVX;" + "in float gl_RayTminNVX;" + "in float gl_RayTmaxNVX;" + "in mat4x3 gl_ObjectToWorldNVX;" + "in mat4x3 gl_WorldToObjectNVX;" + "\n"; + const char *hitDecls = + "in uvec2 gl_LaunchIDNVX;" + "in uvec2 gl_LaunchSizeNVX;" + "in int gl_PrimitiveID;" + "in int gl_InstanceID;" + "in int gl_InstanceCustomIndexNVX;" + "in vec3 gl_WorldRayOriginNVX;" + "in vec3 gl_WorldRayDirectionNVX;" + "in vec3 gl_ObjectRayOriginNVX;" + "in vec3 gl_ObjectRayDirectionNVX;" + "in float gl_RayTminNVX;" + "in float gl_RayTmaxNVX;" + "in float gl_HitTNVX;" + "in uint gl_HitKindNVX;" + "in mat4x3 gl_ObjectToWorldNVX;" + "in mat4x3 gl_WorldToObjectNVX;" + "\n"; + const char *missDecls = + "in uvec2 gl_LaunchIDNVX;" + "in uvec2 gl_LaunchSizeNVX;" + "in vec3 gl_WorldRayOriginNVX;" + "in vec3 gl_WorldRayDirectionNVX;" + "in vec3 gl_ObjectRayOriginNVX;" + "in vec3 gl_ObjectRayDirectionNVX;" + "in float gl_RayTminNVX;" + "in float gl_RayTmaxNVX;" + "\n"; + + stageBuiltins[EShLangRayGenNV].append(rayGenDecls); + stageBuiltins[EShLangRayGenNV].append(constRayFlags); + + stageBuiltins[EShLangIntersectNV].append(intersectDecls); + + stageBuiltins[EShLangAnyHitNV].append(hitDecls); + + stageBuiltins[EShLangClosestHitNV].append(hitDecls); + stageBuiltins[EShLangClosestHitNV].append(constRayFlags); + + stageBuiltins[EShLangMissNV].append(missDecls); + stageBuiltins[EShLangMissNV].append(constRayFlags); + } + if ((profile != EEsProfile && version >= 140)) { + const char *deviceIndex = + "in highp int gl_DeviceIndex;" // GL_EXT_device_group + "\n"; + + stageBuiltins[EShLangRayGenNV].append(deviceIndex); + stageBuiltins[EShLangIntersectNV].append(deviceIndex); + stageBuiltins[EShLangAnyHitNV].append(deviceIndex); + stageBuiltins[EShLangClosestHitNV].append(deviceIndex); + stageBuiltins[EShLangMissNV].append(deviceIndex); + } +#endif + if (version >= 300 /* both ES and non-ES */) { stageBuiltins[EShLangFragment].append( "flat in highp uint gl_ViewID_OVR;" // GL_OVR_multiview, GL_OVR_multiview2 @@ -8468,8 +8579,48 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.setFunctionExtensions("subgroupMemoryBarrierShared", 1, &E_GL_KHR_shader_subgroup_basic); } break; - #ifdef NV_EXTENSIONS + case EShLangRayGenNV: + case EShLangIntersectNV: + case EShLangAnyHitNV: + case EShLangClosestHitNV: + case EShLangMissNV: + if (profile != EEsProfile && version >= 460) { + symbolTable.setVariableExtensions("gl_LaunchIDNVX", 1, &E_GL_NVX_raytracing); + symbolTable.setVariableExtensions("gl_LaunchSizeNVX", 1, &E_GL_NVX_raytracing); + symbolTable.setVariableExtensions("gl_PrimitiveID", 1, &E_GL_NVX_raytracing); + symbolTable.setVariableExtensions("gl_InstanceID", 1, &E_GL_NVX_raytracing); + symbolTable.setVariableExtensions("gl_InstanceCustomIndexNVX", 1, &E_GL_NVX_raytracing); + symbolTable.setVariableExtensions("gl_WorldRayOriginNVX", 1, &E_GL_NVX_raytracing); + symbolTable.setVariableExtensions("gl_WorldRayDirectionNVX", 1, &E_GL_NVX_raytracing); + symbolTable.setVariableExtensions("gl_ObjectRayOriginNVX", 1, &E_GL_NVX_raytracing); + symbolTable.setVariableExtensions("gl_ObjectRayDirectionNVX", 1, &E_GL_NVX_raytracing); + symbolTable.setVariableExtensions("gl_RayTminNVX", 1, &E_GL_NVX_raytracing); + symbolTable.setVariableExtensions("gl_RayTmaxNVX", 1, &E_GL_NVX_raytracing); + symbolTable.setVariableExtensions("gl_HitTNVX", 1, &E_GL_NVX_raytracing); + symbolTable.setVariableExtensions("gl_HitKindNVX", 1, &E_GL_NVX_raytracing); + symbolTable.setVariableExtensions("gl_ObjectToWorldNVX", 1, &E_GL_NVX_raytracing); + symbolTable.setVariableExtensions("gl_WorldToObjectNVX", 1, &E_GL_NVX_raytracing); + symbolTable.setVariableExtensions("gl_DeviceIndex", 1, &E_GL_EXT_device_group); + + BuiltInVariable("gl_LaunchIDNVX", EbvLaunchIdNV, symbolTable); + BuiltInVariable("gl_LaunchSizeNVX", EbvLaunchSizeNV, symbolTable); + BuiltInVariable("gl_PrimitiveID", EbvPrimitiveId, symbolTable); + BuiltInVariable("gl_InstanceID", EbvInstanceId, symbolTable); + BuiltInVariable("gl_InstanceCustomIndexNVX",EbvInstanceCustomIndexNV,symbolTable); + BuiltInVariable("gl_WorldRayOriginNVX", EbvWorldRayOriginNV, symbolTable); + BuiltInVariable("gl_WorldRayDirectionNVX", EbvWorldRayDirectionNV, symbolTable); + BuiltInVariable("gl_ObjectRayOriginNVX", EbvObjectRayOriginNV, symbolTable); + BuiltInVariable("gl_ObjectRayDirectionNVX", EbvObjectRayDirectionNV, symbolTable); + BuiltInVariable("gl_RayTminNVX", EbvRayTminNV, symbolTable); + BuiltInVariable("gl_RayTmaxNVX", EbvRayTmaxNV, symbolTable); + BuiltInVariable("gl_HitTNVX", EbvHitTNV, symbolTable); + BuiltInVariable("gl_HitKindNVX", EbvHitKindNV, symbolTable); + BuiltInVariable("gl_ObjectToWorldNVX", EbvObjectToWorldNV, symbolTable); + BuiltInVariable("gl_WorldToObjectNVX", EbvWorldToObjectNV, symbolTable); + BuiltInVariable("gl_DeviceIndex", EbvDeviceIndex, symbolTable); + } + break; case EShLangMeshNV: if (profile != EEsProfile && version >= 450) { // Per-vertex builtins @@ -9200,6 +9351,22 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion break; #ifdef NV_EXTENSIONS + case EShLangRayGenNV: + case EShLangClosestHitNV: + case EShLangMissNV: + if (profile != EEsProfile && version >= 460) + symbolTable.relateToOperator("traceNVX", EOpTraceNV); + break; + case EShLangIntersectNV: + if (profile != EEsProfile && version >= 460) + symbolTable.relateToOperator("reportIntersectionNVX", EOpReportIntersectionNV); + break; + case EShLangAnyHitNV: + if (profile != EEsProfile && version >= 460) { + symbolTable.relateToOperator("ignoreIntersectionNVX", EOpIgnoreIntersectionNV); + symbolTable.relateToOperator("terminateRayNVX", EOpTerminateRayNV); + } + break; case EShLangMeshNV: if (profile != EEsProfile && version >= 450) { symbolTable.relateToOperator("writePackedPrimitiveIndices4x8NV", EOpWritePackedPrimitiveIndices4x8NV); diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp index 8eb5ff5..67bc42d 100644 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -460,6 +460,9 @@ bool TIntermediate::isConversionAllowed(TOperator op, TIntermTyped* node) const return false; case EbtAtomicUint: case EbtSampler: +#ifdef NV_EXTENSIONS + case EbtAccStructNV: +#endif // opaque types can be passed to functions if (op == EOpFunction) break; diff --git a/glslang/MachineIndependent/ParseContextBase.cpp b/glslang/MachineIndependent/ParseContextBase.cpp index bfa9de4..ca5d7e4 100644 --- a/glslang/MachineIndependent/ParseContextBase.cpp +++ b/glslang/MachineIndependent/ParseContextBase.cpp @@ -153,6 +153,12 @@ bool TParseContextBase::lValueErrorCheck(const TSourceLoc& loc, const char* op, if (node->getQualifier().readonly) message = "can't modify a readonly buffer"; break; +#ifdef NV_EXTENSIONS + case EvqHitAttrNV: + if (language != EShLangIntersectNV) + message = "cannot modify hitAttributeNVX in this stage"; + break; +#endif default: // @@ -168,6 +174,11 @@ bool TParseContextBase::lValueErrorCheck(const TSourceLoc& loc, const char* op, case EbtVoid: message = "can't modify void"; break; +#ifdef NV_EXTENSIONS + case EbtAccStructNV: + message = "can't modify accelerationStructureNVX"; + break; +#endif default: break; } diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 297956c..628aa99 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -2962,6 +2962,20 @@ void TParseContext::atomicUintCheck(const TSourceLoc& loc, const TType& type, co else if (type.getBasicType() == EbtAtomicUint && type.getQualifier().storage != EvqUniform) error(loc, "atomic_uints can only be used in uniform variables or function parameters:", type.getBasicTypeString().c_str(), identifier.c_str()); } +#ifdef NV_EXTENSIONS +void TParseContext::accStructNVCheck(const TSourceLoc& loc, const TType& type, const TString& identifier) +{ + if (type.getQualifier().storage == EvqUniform) + return; + + if (type.getBasicType() == EbtStruct && containsFieldWithBasicType(type, EbtAccStructNV)) + error(loc, "non-uniform struct contains an accelerationStructureNVX:", type.getBasicTypeString().c_str(), identifier.c_str()); + else if (type.getBasicType() == EbtAccStructNV && type.getQualifier().storage != EvqUniform) + error(loc, "accelerationStructureNVX can only be used in uniform variables or function parameters:", + type.getBasicTypeString().c_str(), identifier.c_str()); + +} +#endif void TParseContext::transparentOpaqueCheck(const TSourceLoc& loc, const TType& type, const TString& identifier) { @@ -4696,6 +4710,15 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi publicType.qualifier.layoutViewportRelative = true; return; } + } else { + if (language == EShLangRayGenNV || language == EShLangIntersectNV || + language == EShLangAnyHitNV || language == EShLangClosestHitNV || + language == EShLangMissNV || language == EShLangCallableNV) { + if (id == "shaderrecordnvx") { + publicType.qualifier.layoutShaderRecordNV = true; + return; + } + } } if (language == EShLangCompute) { if (id.compare(0, 17, "derivative_group_") == 0) { @@ -5076,6 +5099,8 @@ void TParseContext::mergeObjectLayoutQualifiers(TQualifier& dst, const TQualifie dst.layoutViewportRelative = true; if (src.layoutSecondaryViewportRelativeOffset != -2048) dst.layoutSecondaryViewportRelativeOffset = src.layoutSecondaryViewportRelativeOffset; + if (src.layoutShaderRecordNV) + dst.layoutShaderRecordNV = true; if (src.pervertexNV) dst.pervertexNV = true; #endif @@ -5143,6 +5168,10 @@ void TParseContext::layoutObjectCheck(const TSourceLoc& loc, const TSymbol& symb error(loc, "cannot specify on a variable declaration", "align", ""); if (qualifier.layoutPushConstant) error(loc, "can only specify on a uniform block", "push_constant", ""); +#ifdef NV_EXTENSIONS + if (qualifier.layoutShaderRecordNV) + error(loc, "can only specify on a buffer block", "shaderRecordNVX", ""); +#endif } break; default: @@ -5216,6 +5245,12 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type) if (type.getBasicType() == EbtBlock) error(loc, "cannot apply to uniform or buffer block", "location", ""); break; +#ifdef NV_EXTENSIONS + case EvqPayloadNV: + case EvqPayloadInNV: + case EvqHitAttrNV: + break; +#endif default: error(loc, "can only apply to uniform, buffer, in, or out storage qualifiers", "location", ""); break; @@ -5299,7 +5334,10 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type) if (spvVersion.spv > 0) { if (qualifier.isUniformOrBuffer()) { if (type.getBasicType() == EbtBlock && !qualifier.layoutPushConstant && - !qualifier.layoutAttachment) +#ifdef NV_EXTENSIONS + !qualifier.layoutShaderRecordNV && +#endif + !qualifier.layoutAttachment) error(loc, "uniform/buffer blocks require layout(binding=X)", "binding", ""); else if (spvVersion.vulkan > 0 && type.getBasicType() == EbtSampler) error(loc, "sampler/texture/image requires layout(binding=X)", "binding", ""); @@ -5351,6 +5389,11 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type) if (qualifier.layoutPushConstant && type.getBasicType() != EbtBlock) error(loc, "can only be used with a block", "push_constant", ""); +#ifdef NV_EXTENSIONS + if (qualifier.layoutShaderRecordNV && type.getBasicType() != EbtBlock) + error(loc, "can only be used with a block", "shaderRecordNVX", ""); +#endif + // input attachment if (type.isSubpass()) { if (! qualifier.hasAttachment()) @@ -5486,6 +5529,16 @@ void TParseContext::layoutQualifierCheck(const TSourceLoc& loc, const TQualifier if (qualifier.hasSet()) error(loc, "cannot be used with push_constant", "set", ""); } +#ifdef NV_EXTENSIONS + if (qualifier.layoutShaderRecordNV) { + if (qualifier.storage != EvqBuffer) + error(loc, "can only be used with a buffer", "shaderRecordNVX", ""); + if (qualifier.hasBinding()) + error(loc, "cannot be used with shaderRecordNVX", "binding", ""); + if (qualifier.hasSet()) + error(loc, "cannot be used with shaderRecordNVX", "set", ""); + } +#endif } // For places that can't have shader-level layout qualifiers @@ -5915,6 +5968,9 @@ TIntermNode* TParseContext::declareVariable(const TSourceLoc& loc, TString& iden samplerCheck(loc, type, identifier, initializer); atomicUintCheck(loc, type, identifier); transparentOpaqueCheck(loc, type, identifier); +#ifdef NV_EXTENSIONS + accStructNVCheck(loc, type, identifier); +#endif if (type.getQualifier().storage != EvqUniform && type.getQualifier().storage != EvqBuffer) { if (type.containsBasicType(EbtFloat16)) @@ -6613,7 +6669,11 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con // Special case for "push_constant uniform", which has a default of std430, // contrary to normal uniform defaults, and can't have a default tracked for it. - if (currentBlockQualifier.layoutPushConstant && !currentBlockQualifier.hasPacking()) + if ((currentBlockQualifier.layoutPushConstant && !currentBlockQualifier.hasPacking()) +#ifdef NV_EXTENSIONS + || (currentBlockQualifier.layoutShaderRecordNV && !currentBlockQualifier.hasPacking()) +#endif + ) currentBlockQualifier.layoutPacking = ElpStd430; #ifdef NV_EXTENSIONS @@ -6835,6 +6895,22 @@ void TParseContext::blockStageIoCheck(const TSourceLoc& loc, const TQualifier& q } #endif break; +#ifdef NV_EXTENSIONS + case EvqPayloadNV: + profileRequires(loc, ~EEsProfile, 450, E_GL_NVX_raytracing, "rayPayloadNVX block"); + requireStage(loc, (EShLanguageMask)(EShLangRayGenNVMask | EShLangAnyHitNVMask | EShLangClosestHitNVMask | EShLangMissNVMask), + "rayPayloadNVX block"); + break; + case EvqPayloadInNV: + profileRequires(loc, ~EEsProfile, 450, E_GL_NVX_raytracing, "rayPayloadInNVX block"); + requireStage(loc, (EShLanguageMask)(EShLangAnyHitNVMask | EShLangClosestHitNVMask | EShLangMissNVMask), + "rayPayloadInNVX block"); + break; + case EvqHitAttrNV: + profileRequires(loc, ~EEsProfile, 450, E_GL_NVX_raytracing, "hitAttributeNVX block"); + requireStage(loc, (EShLanguageMask)(EShLangIntersectNVMask | EShLangAnyHitNVMask | EShLangClosestHitNVMask), "hitAttributeNVX block"); + break; +#endif default: error(loc, "only uniform, buffer, in, or out blocks are supported", blockName->c_str(), ""); break; @@ -6872,6 +6948,8 @@ void TParseContext::blockQualifierCheck(const TSourceLoc& loc, const TQualifier& if (qualifier.layoutPushConstant) intermediate.addPushConstantCount(); #ifdef NV_EXTENSIONS + if (qualifier.layoutShaderRecordNV) + intermediate.addShaderRecordNVCount(); if (qualifier.perTaskNV) intermediate.addTaskNVCount(); #endif @@ -7357,6 +7435,10 @@ void TParseContext::updateStandaloneQualifierDefaults(const TSourceLoc& loc, con error(loc, "cannot declare a default, can only be used on a block", "push_constant", ""); if (qualifier.hasSpecConstantId()) error(loc, "cannot declare a default, can only be used on a scalar", "constant_id", ""); +#ifdef NV_EXTENSIONS + if (qualifier.layoutShaderRecordNV) + error(loc, "cannot declare a default, can only be used on a block", "shaderRecordNVX", ""); +#endif } // diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h index 0ca9503..0c6b284 100644 --- a/glslang/MachineIndependent/ParseHelper.h +++ b/glslang/MachineIndependent/ParseHelper.h @@ -348,6 +348,9 @@ public: void boolCheck(const TSourceLoc&, const TPublicType&); void samplerCheck(const TSourceLoc&, const TType&, const TString& identifier, TIntermTyped* initializer); void atomicUintCheck(const TSourceLoc&, const TType&, const TString& identifier); +#ifdef NV_EXTENSIONS + void accStructNVCheck(const TSourceLoc & loc, const TType & type, const TString & identifier); +#endif void transparentOpaqueCheck(const TSourceLoc&, const TType&, const TString& identifier); void memberQualifierCheck(glslang::TPublicType&); void globalQualifierFixCheck(const TSourceLoc&, TQualifier&); diff --git a/glslang/MachineIndependent/Scan.cpp b/glslang/MachineIndependent/Scan.cpp index 0f6ebea..7bdd430 100644 --- a/glslang/MachineIndependent/Scan.cpp +++ b/glslang/MachineIndependent/Scan.cpp @@ -701,6 +701,10 @@ void TScanContext::fillInKeywordMap() (*KeywordMap)["superp"] = SUPERP; #ifdef NV_EXTENSIONS + (*KeywordMap)["rayPayloadNVX"] = PAYLOADNV; + (*KeywordMap)["rayPayloadInNVX"] = PAYLOADINNV; + (*KeywordMap)["hitAttributeNVX"] = HITATTRNV; + (*KeywordMap)["accelerationStructureNVX"] = ACCSTRUCTNV; (*KeywordMap)["perprimitiveNV"] = PERPRIMITIVENV; (*KeywordMap)["perviewNV"] = PERVIEWNV; (*KeywordMap)["taskNV"] = PERTASKNV; @@ -944,6 +948,18 @@ int TScanContext::tokenizeIdentifier() return identifierOrType(); return keyword; +#ifdef NV_EXTENSIONS + case PAYLOADNV: + case PAYLOADINNV: + case HITATTRNV: + case ACCSTRUCTNV: + if (parseContext.symbolTable.atBuiltInLevel() || + (parseContext.profile != EEsProfile && parseContext.version >= 460 + && parseContext.extensionTurnedOn(E_GL_NVX_raytracing))) + return keyword; + return identifierOrType(); +#endif + case ATOMIC_UINT: if ((parseContext.profile == EEsProfile && parseContext.version >= 310) || parseContext.extensionTurnedOn(E_GL_ARB_shader_atomic_counters)) diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp index f9d9faf..7039ac2 100755 --- a/glslang/MachineIndependent/ShaderLang.cpp +++ b/glslang/MachineIndependent/ShaderLang.cpp @@ -348,6 +348,19 @@ bool InitializeSymbolTables(TInfoSink& infoSink, TSymbolTable** commonTable, TS infoSink, commonTable, symbolTables); #ifdef NV_EXTENSIONS + // check for ray tracing stages + if (profile != EEsProfile && version >= 450) { + InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangRayGenNV, source, + infoSink, commonTable, symbolTables); + InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangIntersectNV, source, + infoSink, commonTable, symbolTables); + InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangAnyHitNV, source, + infoSink, commonTable, symbolTables); + InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangClosestHitNV, source, + infoSink, commonTable, symbolTables); + InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangMissNV, source, + infoSink, commonTable, symbolTables); + } // check for mesh if (profile != EEsProfile && version >= 450) InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangMeshNV, source, @@ -583,6 +596,17 @@ bool DeduceVersionProfile(TInfoSink& infoSink, EShLanguage stage, bool versionNo } break; #ifdef NV_EXTENSIONS + case EShLangRayGenNV: + case EShLangIntersectNV: + case EShLangAnyHitNV: + case EShLangClosestHitNV: + case EShLangCallableNV: + if (profile == EEsProfile || version < 460) { + correct = false; + infoSink.info.message(EPrefixError, "#version: raytracing shaders require non-es profile with version 460 or above"); + version = 460; + } + break; case EShLangMeshNV: case EShLangTaskNV: if ((profile == EEsProfile) || diff --git a/glslang/MachineIndependent/SymbolTable.cpp b/glslang/MachineIndependent/SymbolTable.cpp index db46e10..bd7d5aa 100644 --- a/glslang/MachineIndependent/SymbolTable.cpp +++ b/glslang/MachineIndependent/SymbolTable.cpp @@ -72,6 +72,9 @@ void TType::buildMangledName(TString& mangledName) const case EbtUint64: mangledName += "u64"; break; case EbtBool: mangledName += 'b'; break; case EbtAtomicUint: mangledName += "au"; break; +#ifdef NV_EXTENSIONS + case EbtAccStructNV: mangledName += "asnv"; break; +#endif case EbtSampler: switch (sampler.type) { #ifdef AMD_EXTENSIONS diff --git a/glslang/MachineIndependent/Versions.cpp b/glslang/MachineIndependent/Versions.cpp index 3916520..b73880d 100644 --- a/glslang/MachineIndependent/Versions.cpp +++ b/glslang/MachineIndependent/Versions.cpp @@ -235,6 +235,7 @@ void TParseVersions::initializeExtensionBehavior() extensionBehavior[E_GL_NV_conservative_raster_underestimation] = EBhDisable; extensionBehavior[E_GL_NV_shader_noperspective_interpolation] = EBhDisable; extensionBehavior[E_GL_NV_shader_subgroup_partitioned] = EBhDisable; + extensionBehavior[E_GL_NVX_raytracing] = EBhDisable; extensionBehavior[E_GL_NV_fragment_shader_barycentric] = EBhDisable; extensionBehavior[E_GL_NV_compute_shader_derivatives] = EBhDisable; extensionBehavior[E_GL_NV_shader_texture_footprint] = EBhDisable; @@ -409,6 +410,7 @@ void TParseVersions::getPreamble(std::string& preamble) "#define GL_NV_shader_atomic_int64 1\n" "#define GL_NV_conservative_raster_underestimation 1\n" "#define GL_NV_shader_subgroup_partitioned 1\n" + "#define GL_NVX_raytracing 1\n" "#define GL_NV_fragment_shader_barycentric 1\n" "#define GL_NV_compute_shader_derivatives 1\n" "#define GL_NV_shader_texture_footprint 1\n" @@ -501,6 +503,12 @@ const char* StageName(EShLanguage stage) case EShLangFragment: return "fragment"; case EShLangCompute: return "compute"; #ifdef NV_EXTENSIONS + case EShLangRayGenNV: return "ray-generation"; + case EShLangIntersectNV: return "intersection"; + case EShLangAnyHitNV: return "any-hit"; + case EShLangClosestHitNV: return "closest-hit"; + case EShLangMissNV: return "miss"; + case EShLangCallableNV: return "callable"; case EShLangMeshNV: return "mesh"; case EShLangTaskNV: return "task"; #endif diff --git a/glslang/MachineIndependent/Versions.h b/glslang/MachineIndependent/Versions.h index 27760cf..5e577dc 100644 --- a/glslang/MachineIndependent/Versions.h +++ b/glslang/MachineIndependent/Versions.h @@ -207,6 +207,7 @@ const char* const E_GL_NV_shader_atomic_int64 = "GL_NV_shader_ const char* const E_GL_NV_conservative_raster_underestimation = "GL_NV_conservative_raster_underestimation"; const char* const E_GL_NV_shader_noperspective_interpolation = "GL_NV_shader_noperspective_interpolation"; const char* const E_GL_NV_shader_subgroup_partitioned = "GL_NV_shader_subgroup_partitioned"; +const char* const E_GL_NVX_raytracing = "GL_NVX_raytracing"; const char* const E_GL_NV_fragment_shader_barycentric = "GL_NV_fragment_shader_barycentric"; const char* const E_GL_NV_compute_shader_derivatives = "GL_NV_compute_shader_derivatives"; const char* const E_GL_NV_shader_texture_footprint = "GL_NV_shader_texture_footprint"; diff --git a/glslang/MachineIndependent/glslang.y b/glslang/MachineIndependent/glslang.y index 35d6435..9d89d46 100644 --- a/glslang/MachineIndependent/glslang.y +++ b/glslang/MachineIndependent/glslang.y @@ -140,7 +140,7 @@ extern int yylex(YYSTYPE*, TParseContext&); %token U8VEC2 U8VEC3 U8VEC4 %token VEC2 VEC3 VEC4 %token MAT2 MAT3 MAT4 CENTROID IN OUT INOUT -%token UNIFORM PATCH SAMPLE BUFFER SHARED NONUNIFORM +%token UNIFORM PATCH SAMPLE BUFFER SHARED NONUNIFORM PAYLOADNV PAYLOADINNV HITATTRNV %token COHERENT VOLATILE RESTRICT READONLY WRITEONLY DEVICECOHERENT QUEUEFAMILYCOHERENT WORKGROUPCOHERENT SUBGROUPCOHERENT NONPRIVATE %token DVEC2 DVEC3 DVEC4 DMAT2 DMAT3 DMAT4 %token F16VEC2 F16VEC3 F16VEC4 F16MAT2 F16MAT3 F16MAT4 @@ -164,6 +164,7 @@ extern int yylex(YYSTYPE*, TParseContext&); %token F64MAT3X2 F64MAT3X3 F64MAT3X4 %token F64MAT4X2 F64MAT4X3 F64MAT4X4 %token ATOMIC_UINT +%token ACCSTRUCTNV // combined image/sampler %token SAMPLER1D SAMPLER2D SAMPLER3D SAMPLERCUBE SAMPLER1DSHADOW SAMPLER2DSHADOW @@ -1339,6 +1340,36 @@ storage_qualifier $$.init($1.loc); $$.qualifier.storage = EvqBuffer; } + | HITATTRNV { +#ifdef NV_EXTENSIONS + parseContext.globalCheck($1.loc, "hitAttributeNVX"); + parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangIntersectNVMask | EShLangClosestHitNVMask + | EShLangAnyHitNVMask), "hitAttributeNVX"); + parseContext.profileRequires($1.loc, ECoreProfile, 450, E_GL_NVX_raytracing, "hitAttributeNVX"); + $$.init($1.loc); + $$.qualifier.storage = EvqHitAttrNV; +#endif + } + | PAYLOADNV { +#ifdef NV_EXTENSIONS + parseContext.globalCheck($1.loc, "rayPayloadNVX"); + parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangRayGenNVMask | EShLangClosestHitNVMask | + EShLangAnyHitNVMask | EShLangMissNVMask), "rayPayloadNVX"); + parseContext.profileRequires($1.loc, ECoreProfile, 450, E_GL_NVX_raytracing, "rayPayloadNVX"); + $$.init($1.loc); + $$.qualifier.storage = EvqPayloadNV; +#endif + } + | PAYLOADINNV { +#ifdef NV_EXTENSIONS + parseContext.globalCheck($1.loc, "rayPayloadInNVX"); + parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangClosestHitNVMask | + EShLangAnyHitNVMask | EShLangMissNVMask), "rayPayloadInNVX"); + parseContext.profileRequires($1.loc, ECoreProfile, 450, E_GL_NVX_raytracing, "rayPayloadInNVX"); + $$.init($1.loc); + $$.qualifier.storage = EvqPayloadInNV; +#endif + } | SHARED { parseContext.globalCheck($1.loc, "shared"); parseContext.profileRequires($1.loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared"); @@ -2177,6 +2208,12 @@ type_specifier_nonarray $$.basicType = EbtDouble; $$.setMatrix(4, 4); } + | ACCSTRUCTNV { +#ifdef NV_EXTENSIONS + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtAccStructNV; +#endif + } | ATOMIC_UINT { parseContext.vulkanRemoved($1.loc, "atomic counter types"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); diff --git a/glslang/MachineIndependent/glslang_tab.cpp b/glslang/MachineIndependent/glslang_tab.cpp index b062642..32ec5ba 100644 --- a/glslang/MachineIndependent/glslang_tab.cpp +++ b/glslang/MachineIndependent/glslang_tab.cpp @@ -203,323 +203,327 @@ extern int yydebug; BUFFER = 335, SHARED = 336, NONUNIFORM = 337, - COHERENT = 338, - VOLATILE = 339, - RESTRICT = 340, - READONLY = 341, - WRITEONLY = 342, - DEVICECOHERENT = 343, - QUEUEFAMILYCOHERENT = 344, - WORKGROUPCOHERENT = 345, - SUBGROUPCOHERENT = 346, - NONPRIVATE = 347, - DVEC2 = 348, - DVEC3 = 349, - DVEC4 = 350, - DMAT2 = 351, - DMAT3 = 352, - DMAT4 = 353, - F16VEC2 = 354, - F16VEC3 = 355, - F16VEC4 = 356, - F16MAT2 = 357, - F16MAT3 = 358, - F16MAT4 = 359, - F32VEC2 = 360, - F32VEC3 = 361, - F32VEC4 = 362, - F32MAT2 = 363, - F32MAT3 = 364, - F32MAT4 = 365, - F64VEC2 = 366, - F64VEC3 = 367, - F64VEC4 = 368, - F64MAT2 = 369, - F64MAT3 = 370, - F64MAT4 = 371, - NOPERSPECTIVE = 372, - FLAT = 373, - SMOOTH = 374, - LAYOUT = 375, - EXPLICITINTERPAMD = 376, - PERVERTEXNV = 377, - PERPRIMITIVENV = 378, - PERVIEWNV = 379, - PERTASKNV = 380, - MAT2X2 = 381, - MAT2X3 = 382, - MAT2X4 = 383, - MAT3X2 = 384, - MAT3X3 = 385, - MAT3X4 = 386, - MAT4X2 = 387, - MAT4X3 = 388, - MAT4X4 = 389, - DMAT2X2 = 390, - DMAT2X3 = 391, - DMAT2X4 = 392, - DMAT3X2 = 393, - DMAT3X3 = 394, - DMAT3X4 = 395, - DMAT4X2 = 396, - DMAT4X3 = 397, - DMAT4X4 = 398, - F16MAT2X2 = 399, - F16MAT2X3 = 400, - F16MAT2X4 = 401, - F16MAT3X2 = 402, - F16MAT3X3 = 403, - F16MAT3X4 = 404, - F16MAT4X2 = 405, - F16MAT4X3 = 406, - F16MAT4X4 = 407, - F32MAT2X2 = 408, - F32MAT2X3 = 409, - F32MAT2X4 = 410, - F32MAT3X2 = 411, - F32MAT3X3 = 412, - F32MAT3X4 = 413, - F32MAT4X2 = 414, - F32MAT4X3 = 415, - F32MAT4X4 = 416, - F64MAT2X2 = 417, - F64MAT2X3 = 418, - F64MAT2X4 = 419, - F64MAT3X2 = 420, - F64MAT3X3 = 421, - F64MAT3X4 = 422, - F64MAT4X2 = 423, - F64MAT4X3 = 424, - F64MAT4X4 = 425, - ATOMIC_UINT = 426, - SAMPLER1D = 427, - SAMPLER2D = 428, - SAMPLER3D = 429, - SAMPLERCUBE = 430, - SAMPLER1DSHADOW = 431, - SAMPLER2DSHADOW = 432, - SAMPLERCUBESHADOW = 433, - SAMPLER1DARRAY = 434, - SAMPLER2DARRAY = 435, - SAMPLER1DARRAYSHADOW = 436, - SAMPLER2DARRAYSHADOW = 437, - ISAMPLER1D = 438, - ISAMPLER2D = 439, - ISAMPLER3D = 440, - ISAMPLERCUBE = 441, - ISAMPLER1DARRAY = 442, - ISAMPLER2DARRAY = 443, - USAMPLER1D = 444, - USAMPLER2D = 445, - USAMPLER3D = 446, - USAMPLERCUBE = 447, - USAMPLER1DARRAY = 448, - USAMPLER2DARRAY = 449, - SAMPLER2DRECT = 450, - SAMPLER2DRECTSHADOW = 451, - ISAMPLER2DRECT = 452, - USAMPLER2DRECT = 453, - SAMPLERBUFFER = 454, - ISAMPLERBUFFER = 455, - USAMPLERBUFFER = 456, - SAMPLERCUBEARRAY = 457, - SAMPLERCUBEARRAYSHADOW = 458, - ISAMPLERCUBEARRAY = 459, - USAMPLERCUBEARRAY = 460, - SAMPLER2DMS = 461, - ISAMPLER2DMS = 462, - USAMPLER2DMS = 463, - SAMPLER2DMSARRAY = 464, - ISAMPLER2DMSARRAY = 465, - USAMPLER2DMSARRAY = 466, - SAMPLEREXTERNALOES = 467, - F16SAMPLER1D = 468, - F16SAMPLER2D = 469, - F16SAMPLER3D = 470, - F16SAMPLER2DRECT = 471, - F16SAMPLERCUBE = 472, - F16SAMPLER1DARRAY = 473, - F16SAMPLER2DARRAY = 474, - F16SAMPLERCUBEARRAY = 475, - F16SAMPLERBUFFER = 476, - F16SAMPLER2DMS = 477, - F16SAMPLER2DMSARRAY = 478, - F16SAMPLER1DSHADOW = 479, - F16SAMPLER2DSHADOW = 480, - F16SAMPLER1DARRAYSHADOW = 481, - F16SAMPLER2DARRAYSHADOW = 482, - F16SAMPLER2DRECTSHADOW = 483, - F16SAMPLERCUBESHADOW = 484, - F16SAMPLERCUBEARRAYSHADOW = 485, - SAMPLER = 486, - SAMPLERSHADOW = 487, - TEXTURE1D = 488, - TEXTURE2D = 489, - TEXTURE3D = 490, - TEXTURECUBE = 491, - TEXTURE1DARRAY = 492, - TEXTURE2DARRAY = 493, - ITEXTURE1D = 494, - ITEXTURE2D = 495, - ITEXTURE3D = 496, - ITEXTURECUBE = 497, - ITEXTURE1DARRAY = 498, - ITEXTURE2DARRAY = 499, - UTEXTURE1D = 500, - UTEXTURE2D = 501, - UTEXTURE3D = 502, - UTEXTURECUBE = 503, - UTEXTURE1DARRAY = 504, - UTEXTURE2DARRAY = 505, - TEXTURE2DRECT = 506, - ITEXTURE2DRECT = 507, - UTEXTURE2DRECT = 508, - TEXTUREBUFFER = 509, - ITEXTUREBUFFER = 510, - UTEXTUREBUFFER = 511, - TEXTURECUBEARRAY = 512, - ITEXTURECUBEARRAY = 513, - UTEXTURECUBEARRAY = 514, - TEXTURE2DMS = 515, - ITEXTURE2DMS = 516, - UTEXTURE2DMS = 517, - TEXTURE2DMSARRAY = 518, - ITEXTURE2DMSARRAY = 519, - UTEXTURE2DMSARRAY = 520, - F16TEXTURE1D = 521, - F16TEXTURE2D = 522, - F16TEXTURE3D = 523, - F16TEXTURE2DRECT = 524, - F16TEXTURECUBE = 525, - F16TEXTURE1DARRAY = 526, - F16TEXTURE2DARRAY = 527, - F16TEXTURECUBEARRAY = 528, - F16TEXTUREBUFFER = 529, - F16TEXTURE2DMS = 530, - F16TEXTURE2DMSARRAY = 531, - SUBPASSINPUT = 532, - SUBPASSINPUTMS = 533, - ISUBPASSINPUT = 534, - ISUBPASSINPUTMS = 535, - USUBPASSINPUT = 536, - USUBPASSINPUTMS = 537, - F16SUBPASSINPUT = 538, - F16SUBPASSINPUTMS = 539, - IMAGE1D = 540, - IIMAGE1D = 541, - UIMAGE1D = 542, - IMAGE2D = 543, - IIMAGE2D = 544, - UIMAGE2D = 545, - IMAGE3D = 546, - IIMAGE3D = 547, - UIMAGE3D = 548, - IMAGE2DRECT = 549, - IIMAGE2DRECT = 550, - UIMAGE2DRECT = 551, - IMAGECUBE = 552, - IIMAGECUBE = 553, - UIMAGECUBE = 554, - IMAGEBUFFER = 555, - IIMAGEBUFFER = 556, - UIMAGEBUFFER = 557, - IMAGE1DARRAY = 558, - IIMAGE1DARRAY = 559, - UIMAGE1DARRAY = 560, - IMAGE2DARRAY = 561, - IIMAGE2DARRAY = 562, - UIMAGE2DARRAY = 563, - IMAGECUBEARRAY = 564, - IIMAGECUBEARRAY = 565, - UIMAGECUBEARRAY = 566, - IMAGE2DMS = 567, - IIMAGE2DMS = 568, - UIMAGE2DMS = 569, - IMAGE2DMSARRAY = 570, - IIMAGE2DMSARRAY = 571, - UIMAGE2DMSARRAY = 572, - F16IMAGE1D = 573, - F16IMAGE2D = 574, - F16IMAGE3D = 575, - F16IMAGE2DRECT = 576, - F16IMAGECUBE = 577, - F16IMAGE1DARRAY = 578, - F16IMAGE2DARRAY = 579, - F16IMAGECUBEARRAY = 580, - F16IMAGEBUFFER = 581, - F16IMAGE2DMS = 582, - F16IMAGE2DMSARRAY = 583, - STRUCT = 584, - VOID = 585, - WHILE = 586, - IDENTIFIER = 587, - TYPE_NAME = 588, - FLOATCONSTANT = 589, - DOUBLECONSTANT = 590, - INT16CONSTANT = 591, - UINT16CONSTANT = 592, - INT32CONSTANT = 593, - UINT32CONSTANT = 594, - INTCONSTANT = 595, - UINTCONSTANT = 596, - INT64CONSTANT = 597, - UINT64CONSTANT = 598, - BOOLCONSTANT = 599, - FLOAT16CONSTANT = 600, - LEFT_OP = 601, - RIGHT_OP = 602, - INC_OP = 603, - DEC_OP = 604, - LE_OP = 605, - GE_OP = 606, - EQ_OP = 607, - NE_OP = 608, - AND_OP = 609, - OR_OP = 610, - XOR_OP = 611, - MUL_ASSIGN = 612, - DIV_ASSIGN = 613, - ADD_ASSIGN = 614, - MOD_ASSIGN = 615, - LEFT_ASSIGN = 616, - RIGHT_ASSIGN = 617, - AND_ASSIGN = 618, - XOR_ASSIGN = 619, - OR_ASSIGN = 620, - SUB_ASSIGN = 621, - LEFT_PAREN = 622, - RIGHT_PAREN = 623, - LEFT_BRACKET = 624, - RIGHT_BRACKET = 625, - LEFT_BRACE = 626, - RIGHT_BRACE = 627, - DOT = 628, - COMMA = 629, - COLON = 630, - EQUAL = 631, - SEMICOLON = 632, - BANG = 633, - DASH = 634, - TILDE = 635, - PLUS = 636, - STAR = 637, - SLASH = 638, - PERCENT = 639, - LEFT_ANGLE = 640, - RIGHT_ANGLE = 641, - VERTICAL_BAR = 642, - CARET = 643, - AMPERSAND = 644, - QUESTION = 645, - INVARIANT = 646, - PRECISE = 647, - HIGH_PRECISION = 648, - MEDIUM_PRECISION = 649, - LOW_PRECISION = 650, - PRECISION = 651, - PACKED = 652, - RESOURCE = 653, - SUPERP = 654 + PAYLOADNV = 338, + PAYLOADINNV = 339, + HITATTRNV = 340, + COHERENT = 341, + VOLATILE = 342, + RESTRICT = 343, + READONLY = 344, + WRITEONLY = 345, + DEVICECOHERENT = 346, + QUEUEFAMILYCOHERENT = 347, + WORKGROUPCOHERENT = 348, + SUBGROUPCOHERENT = 349, + NONPRIVATE = 350, + DVEC2 = 351, + DVEC3 = 352, + DVEC4 = 353, + DMAT2 = 354, + DMAT3 = 355, + DMAT4 = 356, + F16VEC2 = 357, + F16VEC3 = 358, + F16VEC4 = 359, + F16MAT2 = 360, + F16MAT3 = 361, + F16MAT4 = 362, + F32VEC2 = 363, + F32VEC3 = 364, + F32VEC4 = 365, + F32MAT2 = 366, + F32MAT3 = 367, + F32MAT4 = 368, + F64VEC2 = 369, + F64VEC3 = 370, + F64VEC4 = 371, + F64MAT2 = 372, + F64MAT3 = 373, + F64MAT4 = 374, + NOPERSPECTIVE = 375, + FLAT = 376, + SMOOTH = 377, + LAYOUT = 378, + EXPLICITINTERPAMD = 379, + PERVERTEXNV = 380, + PERPRIMITIVENV = 381, + PERVIEWNV = 382, + PERTASKNV = 383, + MAT2X2 = 384, + MAT2X3 = 385, + MAT2X4 = 386, + MAT3X2 = 387, + MAT3X3 = 388, + MAT3X4 = 389, + MAT4X2 = 390, + MAT4X3 = 391, + MAT4X4 = 392, + DMAT2X2 = 393, + DMAT2X3 = 394, + DMAT2X4 = 395, + DMAT3X2 = 396, + DMAT3X3 = 397, + DMAT3X4 = 398, + DMAT4X2 = 399, + DMAT4X3 = 400, + DMAT4X4 = 401, + F16MAT2X2 = 402, + F16MAT2X3 = 403, + F16MAT2X4 = 404, + F16MAT3X2 = 405, + F16MAT3X3 = 406, + F16MAT3X4 = 407, + F16MAT4X2 = 408, + F16MAT4X3 = 409, + F16MAT4X4 = 410, + F32MAT2X2 = 411, + F32MAT2X3 = 412, + F32MAT2X4 = 413, + F32MAT3X2 = 414, + F32MAT3X3 = 415, + F32MAT3X4 = 416, + F32MAT4X2 = 417, + F32MAT4X3 = 418, + F32MAT4X4 = 419, + F64MAT2X2 = 420, + F64MAT2X3 = 421, + F64MAT2X4 = 422, + F64MAT3X2 = 423, + F64MAT3X3 = 424, + F64MAT3X4 = 425, + F64MAT4X2 = 426, + F64MAT4X3 = 427, + F64MAT4X4 = 428, + ATOMIC_UINT = 429, + ACCSTRUCTNV = 430, + SAMPLER1D = 431, + SAMPLER2D = 432, + SAMPLER3D = 433, + SAMPLERCUBE = 434, + SAMPLER1DSHADOW = 435, + SAMPLER2DSHADOW = 436, + SAMPLERCUBESHADOW = 437, + SAMPLER1DARRAY = 438, + SAMPLER2DARRAY = 439, + SAMPLER1DARRAYSHADOW = 440, + SAMPLER2DARRAYSHADOW = 441, + ISAMPLER1D = 442, + ISAMPLER2D = 443, + ISAMPLER3D = 444, + ISAMPLERCUBE = 445, + ISAMPLER1DARRAY = 446, + ISAMPLER2DARRAY = 447, + USAMPLER1D = 448, + USAMPLER2D = 449, + USAMPLER3D = 450, + USAMPLERCUBE = 451, + USAMPLER1DARRAY = 452, + USAMPLER2DARRAY = 453, + SAMPLER2DRECT = 454, + SAMPLER2DRECTSHADOW = 455, + ISAMPLER2DRECT = 456, + USAMPLER2DRECT = 457, + SAMPLERBUFFER = 458, + ISAMPLERBUFFER = 459, + USAMPLERBUFFER = 460, + SAMPLERCUBEARRAY = 461, + SAMPLERCUBEARRAYSHADOW = 462, + ISAMPLERCUBEARRAY = 463, + USAMPLERCUBEARRAY = 464, + SAMPLER2DMS = 465, + ISAMPLER2DMS = 466, + USAMPLER2DMS = 467, + SAMPLER2DMSARRAY = 468, + ISAMPLER2DMSARRAY = 469, + USAMPLER2DMSARRAY = 470, + SAMPLEREXTERNALOES = 471, + F16SAMPLER1D = 472, + F16SAMPLER2D = 473, + F16SAMPLER3D = 474, + F16SAMPLER2DRECT = 475, + F16SAMPLERCUBE = 476, + F16SAMPLER1DARRAY = 477, + F16SAMPLER2DARRAY = 478, + F16SAMPLERCUBEARRAY = 479, + F16SAMPLERBUFFER = 480, + F16SAMPLER2DMS = 481, + F16SAMPLER2DMSARRAY = 482, + F16SAMPLER1DSHADOW = 483, + F16SAMPLER2DSHADOW = 484, + F16SAMPLER1DARRAYSHADOW = 485, + F16SAMPLER2DARRAYSHADOW = 486, + F16SAMPLER2DRECTSHADOW = 487, + F16SAMPLERCUBESHADOW = 488, + F16SAMPLERCUBEARRAYSHADOW = 489, + SAMPLER = 490, + SAMPLERSHADOW = 491, + TEXTURE1D = 492, + TEXTURE2D = 493, + TEXTURE3D = 494, + TEXTURECUBE = 495, + TEXTURE1DARRAY = 496, + TEXTURE2DARRAY = 497, + ITEXTURE1D = 498, + ITEXTURE2D = 499, + ITEXTURE3D = 500, + ITEXTURECUBE = 501, + ITEXTURE1DARRAY = 502, + ITEXTURE2DARRAY = 503, + UTEXTURE1D = 504, + UTEXTURE2D = 505, + UTEXTURE3D = 506, + UTEXTURECUBE = 507, + UTEXTURE1DARRAY = 508, + UTEXTURE2DARRAY = 509, + TEXTURE2DRECT = 510, + ITEXTURE2DRECT = 511, + UTEXTURE2DRECT = 512, + TEXTUREBUFFER = 513, + ITEXTUREBUFFER = 514, + UTEXTUREBUFFER = 515, + TEXTURECUBEARRAY = 516, + ITEXTURECUBEARRAY = 517, + UTEXTURECUBEARRAY = 518, + TEXTURE2DMS = 519, + ITEXTURE2DMS = 520, + UTEXTURE2DMS = 521, + TEXTURE2DMSARRAY = 522, + ITEXTURE2DMSARRAY = 523, + UTEXTURE2DMSARRAY = 524, + F16TEXTURE1D = 525, + F16TEXTURE2D = 526, + F16TEXTURE3D = 527, + F16TEXTURE2DRECT = 528, + F16TEXTURECUBE = 529, + F16TEXTURE1DARRAY = 530, + F16TEXTURE2DARRAY = 531, + F16TEXTURECUBEARRAY = 532, + F16TEXTUREBUFFER = 533, + F16TEXTURE2DMS = 534, + F16TEXTURE2DMSARRAY = 535, + SUBPASSINPUT = 536, + SUBPASSINPUTMS = 537, + ISUBPASSINPUT = 538, + ISUBPASSINPUTMS = 539, + USUBPASSINPUT = 540, + USUBPASSINPUTMS = 541, + F16SUBPASSINPUT = 542, + F16SUBPASSINPUTMS = 543, + IMAGE1D = 544, + IIMAGE1D = 545, + UIMAGE1D = 546, + IMAGE2D = 547, + IIMAGE2D = 548, + UIMAGE2D = 549, + IMAGE3D = 550, + IIMAGE3D = 551, + UIMAGE3D = 552, + IMAGE2DRECT = 553, + IIMAGE2DRECT = 554, + UIMAGE2DRECT = 555, + IMAGECUBE = 556, + IIMAGECUBE = 557, + UIMAGECUBE = 558, + IMAGEBUFFER = 559, + IIMAGEBUFFER = 560, + UIMAGEBUFFER = 561, + IMAGE1DARRAY = 562, + IIMAGE1DARRAY = 563, + UIMAGE1DARRAY = 564, + IMAGE2DARRAY = 565, + IIMAGE2DARRAY = 566, + UIMAGE2DARRAY = 567, + IMAGECUBEARRAY = 568, + IIMAGECUBEARRAY = 569, + UIMAGECUBEARRAY = 570, + IMAGE2DMS = 571, + IIMAGE2DMS = 572, + UIMAGE2DMS = 573, + IMAGE2DMSARRAY = 574, + IIMAGE2DMSARRAY = 575, + UIMAGE2DMSARRAY = 576, + F16IMAGE1D = 577, + F16IMAGE2D = 578, + F16IMAGE3D = 579, + F16IMAGE2DRECT = 580, + F16IMAGECUBE = 581, + F16IMAGE1DARRAY = 582, + F16IMAGE2DARRAY = 583, + F16IMAGECUBEARRAY = 584, + F16IMAGEBUFFER = 585, + F16IMAGE2DMS = 586, + F16IMAGE2DMSARRAY = 587, + STRUCT = 588, + VOID = 589, + WHILE = 590, + IDENTIFIER = 591, + TYPE_NAME = 592, + FLOATCONSTANT = 593, + DOUBLECONSTANT = 594, + INT16CONSTANT = 595, + UINT16CONSTANT = 596, + INT32CONSTANT = 597, + UINT32CONSTANT = 598, + INTCONSTANT = 599, + UINTCONSTANT = 600, + INT64CONSTANT = 601, + UINT64CONSTANT = 602, + BOOLCONSTANT = 603, + FLOAT16CONSTANT = 604, + LEFT_OP = 605, + RIGHT_OP = 606, + INC_OP = 607, + DEC_OP = 608, + LE_OP = 609, + GE_OP = 610, + EQ_OP = 611, + NE_OP = 612, + AND_OP = 613, + OR_OP = 614, + XOR_OP = 615, + MUL_ASSIGN = 616, + DIV_ASSIGN = 617, + ADD_ASSIGN = 618, + MOD_ASSIGN = 619, + LEFT_ASSIGN = 620, + RIGHT_ASSIGN = 621, + AND_ASSIGN = 622, + XOR_ASSIGN = 623, + OR_ASSIGN = 624, + SUB_ASSIGN = 625, + LEFT_PAREN = 626, + RIGHT_PAREN = 627, + LEFT_BRACKET = 628, + RIGHT_BRACKET = 629, + LEFT_BRACE = 630, + RIGHT_BRACE = 631, + DOT = 632, + COMMA = 633, + COLON = 634, + EQUAL = 635, + SEMICOLON = 636, + BANG = 637, + DASH = 638, + TILDE = 639, + PLUS = 640, + STAR = 641, + SLASH = 642, + PERCENT = 643, + LEFT_ANGLE = 644, + RIGHT_ANGLE = 645, + VERTICAL_BAR = 646, + CARET = 647, + AMPERSAND = 648, + QUESTION = 649, + INVARIANT = 650, + PRECISE = 651, + HIGH_PRECISION = 652, + MEDIUM_PRECISION = 653, + LOW_PRECISION = 654, + PRECISION = 655, + PACKED = 656, + RESOURCE = 657, + SUPERP = 658 }; #endif @@ -563,7 +567,7 @@ union YYSTYPE }; } interm; -#line 567 "MachineIndependent/glslang_tab.cpp" /* yacc.c:355 */ +#line 571 "MachineIndependent/glslang_tab.cpp" /* yacc.c:355 */ }; typedef union YYSTYPE YYSTYPE; @@ -594,7 +598,7 @@ int yyparse (glslang::TParseContext* pParseContext); extern int yylex(YYSTYPE*, TParseContext&); -#line 598 "MachineIndependent/glslang_tab.cpp" /* yacc.c:358 */ +#line 602 "MachineIndependent/glslang_tab.cpp" /* yacc.c:358 */ #ifdef short # undef short @@ -834,23 +838,23 @@ union yyalloc #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 375 +#define YYFINAL 379 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 9156 +#define YYLAST 9248 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 400 +#define YYNTOKENS 404 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 107 /* YYNRULES -- Number of rules. */ -#define YYNRULES 565 +#define YYNRULES 569 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 706 +#define YYNSTATES 710 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 654 +#define YYMAXUTOK 658 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -924,70 +928,70 @@ static const yytype_uint16 yytranslate[] = 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399 + 395, 396, 397, 398, 399, 400, 401, 402, 403 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 293, 293, 299, 302, 306, 310, 313, 317, 321, - 325, 329, 333, 336, 340, 344, 347, 355, 358, 361, - 364, 367, 372, 380, 387, 394, 400, 404, 411, 414, - 420, 427, 437, 445, 450, 477, 485, 491, 495, 499, - 519, 520, 521, 522, 528, 529, 534, 539, 548, 549, - 554, 562, 563, 569, 578, 579, 584, 589, 594, 602, - 603, 611, 622, 623, 632, 633, 642, 643, 652, 653, - 661, 662, 670, 671, 679, 680, 680, 698, 699, 715, - 719, 723, 727, 732, 736, 740, 744, 748, 752, 756, - 763, 766, 777, 784, 789, 794, 802, 806, 810, 814, - 819, 824, 833, 833, 844, 848, 855, 862, 865, 872, - 880, 900, 923, 938, 963, 974, 984, 994, 1004, 1013, - 1016, 1020, 1024, 1029, 1037, 1042, 1047, 1052, 1057, 1066, - 1077, 1104, 1113, 1120, 1127, 1138, 1147, 1157, 1165, 1173, - 1184, 1190, 1193, 1200, 1204, 1208, 1216, 1225, 1228, 1239, - 1242, 1245, 1249, 1253, 1257, 1261, 1267, 1271, 1283, 1297, - 1302, 1308, 1314, 1321, 1327, 1332, 1337, 1342, 1354, 1358, - 1363, 1368, 1373, 1378, 1383, 1387, 1391, 1395, 1399, 1405, - 1414, 1421, 1424, 1432, 1436, 1445, 1450, 1458, 1462, 1472, - 1476, 1480, 1485, 1490, 1495, 1500, 1504, 1509, 1514, 1519, - 1524, 1529, 1534, 1539, 1544, 1549, 1553, 1558, 1563, 1568, - 1574, 1580, 1586, 1592, 1598, 1604, 1610, 1616, 1622, 1628, - 1634, 1640, 1645, 1650, 1655, 1660, 1665, 1670, 1676, 1682, - 1688, 1694, 1700, 1706, 1712, 1718, 1724, 1730, 1736, 1742, - 1748, 1754, 1760, 1766, 1772, 1778, 1784, 1790, 1796, 1802, - 1808, 1814, 1820, 1826, 1832, 1837, 1842, 1847, 1852, 1857, - 1862, 1867, 1872, 1877, 1882, 1887, 1892, 1898, 1904, 1910, - 1916, 1922, 1928, 1934, 1940, 1946, 1952, 1958, 1964, 1970, - 1976, 1982, 1988, 1994, 2000, 2006, 2012, 2018, 2024, 2030, - 2036, 2042, 2048, 2054, 2060, 2066, 2072, 2078, 2084, 2090, - 2096, 2102, 2108, 2114, 2120, 2126, 2132, 2138, 2144, 2150, - 2156, 2162, 2168, 2174, 2180, 2185, 2190, 2195, 2200, 2205, - 2210, 2215, 2220, 2225, 2230, 2235, 2240, 2245, 2250, 2258, - 2266, 2274, 2282, 2290, 2298, 2306, 2314, 2322, 2330, 2338, - 2346, 2354, 2359, 2364, 2369, 2374, 2379, 2384, 2389, 2394, - 2399, 2404, 2409, 2414, 2419, 2424, 2429, 2434, 2442, 2450, - 2455, 2460, 2465, 2473, 2478, 2483, 2488, 2496, 2501, 2506, - 2511, 2519, 2524, 2529, 2534, 2539, 2544, 2552, 2557, 2565, - 2570, 2578, 2583, 2591, 2596, 2604, 2609, 2617, 2622, 2630, - 2635, 2640, 2645, 2650, 2655, 2660, 2665, 2670, 2675, 2680, - 2685, 2690, 2695, 2700, 2705, 2713, 2718, 2723, 2728, 2736, - 2741, 2746, 2751, 2759, 2764, 2769, 2774, 2782, 2787, 2792, - 2797, 2805, 2810, 2815, 2820, 2828, 2833, 2838, 2843, 2851, - 2856, 2861, 2866, 2874, 2879, 2884, 2889, 2897, 2902, 2907, - 2912, 2920, 2925, 2930, 2935, 2943, 2948, 2953, 2958, 2966, - 2971, 2976, 2981, 2989, 2994, 2999, 3004, 3012, 3017, 3022, - 3027, 3035, 3040, 3045, 3051, 3057, 3063, 3072, 3081, 3087, - 3093, 3099, 3105, 3110, 3126, 3131, 3136, 3144, 3144, 3155, - 3155, 3165, 3168, 3181, 3203, 3230, 3234, 3240, 3245, 3256, - 3259, 3265, 3274, 3277, 3283, 3287, 3288, 3294, 3295, 3296, - 3297, 3298, 3299, 3300, 3304, 3305, 3309, 3305, 3321, 3322, - 3326, 3326, 3333, 3333, 3347, 3350, 3358, 3366, 3377, 3378, - 3382, 3385, 3391, 3398, 3402, 3410, 3414, 3427, 3430, 3436, - 3436, 3456, 3459, 3465, 3477, 3489, 3492, 3498, 3498, 3513, - 3513, 3529, 3529, 3550, 3553, 3559, 3562, 3568, 3572, 3579, - 3584, 3589, 3596, 3599, 3608, 3612, 3621, 3624, 3627, 3635, - 3635, 3657, 3663, 3666, 3671, 3674 + 0, 294, 294, 300, 303, 307, 311, 314, 318, 322, + 326, 330, 334, 337, 341, 345, 348, 356, 359, 362, + 365, 368, 373, 381, 388, 395, 401, 405, 412, 415, + 421, 428, 438, 446, 451, 478, 486, 492, 496, 500, + 520, 521, 522, 523, 529, 530, 535, 540, 549, 550, + 555, 563, 564, 570, 579, 580, 585, 590, 595, 603, + 604, 612, 623, 624, 633, 634, 643, 644, 653, 654, + 662, 663, 671, 672, 680, 681, 681, 699, 700, 716, + 720, 724, 728, 733, 737, 741, 745, 749, 753, 757, + 764, 767, 778, 785, 790, 795, 803, 807, 811, 815, + 820, 825, 834, 834, 845, 849, 856, 863, 866, 873, + 881, 901, 924, 939, 964, 975, 985, 995, 1005, 1014, + 1017, 1021, 1025, 1030, 1038, 1043, 1048, 1053, 1058, 1067, + 1078, 1105, 1114, 1121, 1128, 1139, 1148, 1158, 1166, 1174, + 1185, 1191, 1194, 1201, 1205, 1209, 1217, 1226, 1229, 1240, + 1243, 1246, 1250, 1254, 1258, 1262, 1268, 1272, 1284, 1298, + 1303, 1309, 1315, 1322, 1328, 1333, 1338, 1343, 1353, 1363, + 1373, 1385, 1389, 1394, 1399, 1404, 1409, 1414, 1418, 1422, + 1426, 1430, 1436, 1445, 1452, 1455, 1463, 1467, 1476, 1481, + 1489, 1493, 1503, 1507, 1511, 1516, 1521, 1526, 1531, 1535, + 1540, 1545, 1550, 1555, 1560, 1565, 1570, 1575, 1580, 1584, + 1589, 1594, 1599, 1605, 1611, 1617, 1623, 1629, 1635, 1641, + 1647, 1653, 1659, 1665, 1671, 1676, 1681, 1686, 1691, 1696, + 1701, 1707, 1713, 1719, 1725, 1731, 1737, 1743, 1749, 1755, + 1761, 1767, 1773, 1779, 1785, 1791, 1797, 1803, 1809, 1815, + 1821, 1827, 1833, 1839, 1845, 1851, 1857, 1863, 1868, 1873, + 1878, 1883, 1888, 1893, 1898, 1903, 1908, 1913, 1918, 1923, + 1929, 1935, 1941, 1947, 1953, 1959, 1965, 1971, 1977, 1983, + 1989, 1995, 2001, 2007, 2013, 2019, 2025, 2031, 2037, 2043, + 2049, 2055, 2061, 2067, 2073, 2079, 2085, 2091, 2097, 2103, + 2109, 2115, 2121, 2127, 2133, 2139, 2145, 2151, 2157, 2163, + 2169, 2175, 2181, 2187, 2193, 2199, 2205, 2211, 2217, 2222, + 2227, 2232, 2237, 2242, 2247, 2252, 2257, 2262, 2267, 2272, + 2277, 2282, 2287, 2295, 2303, 2311, 2319, 2327, 2335, 2343, + 2351, 2359, 2367, 2375, 2383, 2391, 2396, 2401, 2406, 2411, + 2416, 2421, 2426, 2431, 2436, 2441, 2446, 2451, 2456, 2461, + 2466, 2471, 2479, 2487, 2492, 2497, 2502, 2510, 2515, 2520, + 2525, 2533, 2538, 2543, 2548, 2556, 2561, 2566, 2571, 2576, + 2581, 2589, 2594, 2602, 2607, 2615, 2620, 2628, 2633, 2641, + 2646, 2654, 2659, 2667, 2672, 2677, 2682, 2687, 2692, 2697, + 2702, 2707, 2712, 2717, 2722, 2727, 2732, 2737, 2742, 2750, + 2755, 2760, 2765, 2773, 2778, 2783, 2788, 2796, 2801, 2806, + 2811, 2819, 2824, 2829, 2834, 2842, 2847, 2852, 2857, 2865, + 2870, 2875, 2880, 2888, 2893, 2898, 2903, 2911, 2916, 2921, + 2926, 2934, 2939, 2944, 2949, 2957, 2962, 2967, 2972, 2980, + 2985, 2990, 2995, 3003, 3008, 3013, 3018, 3026, 3031, 3036, + 3041, 3049, 3054, 3059, 3064, 3072, 3077, 3082, 3088, 3094, + 3100, 3109, 3118, 3124, 3130, 3136, 3142, 3147, 3163, 3168, + 3173, 3181, 3181, 3192, 3192, 3202, 3205, 3218, 3240, 3267, + 3271, 3277, 3282, 3293, 3296, 3302, 3311, 3314, 3320, 3324, + 3325, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3341, 3342, + 3346, 3342, 3358, 3359, 3363, 3363, 3370, 3370, 3384, 3387, + 3395, 3403, 3414, 3415, 3419, 3422, 3428, 3435, 3439, 3447, + 3451, 3464, 3467, 3473, 3473, 3493, 3496, 3502, 3514, 3526, + 3529, 3535, 3535, 3550, 3550, 3566, 3566, 3587, 3590, 3596, + 3599, 3605, 3609, 3616, 3621, 3626, 3633, 3636, 3645, 3649, + 3658, 3661, 3664, 3672, 3672, 3694, 3700, 3703, 3708, 3711 }; #endif @@ -1008,39 +1012,39 @@ static const char *const yytname[] = "U16VEC3", "U16VEC4", "I8VEC2", "I8VEC3", "I8VEC4", "U8VEC2", "U8VEC3", "U8VEC4", "VEC2", "VEC3", "VEC4", "MAT2", "MAT3", "MAT4", "CENTROID", "IN", "OUT", "INOUT", "UNIFORM", "PATCH", "SAMPLE", "BUFFER", "SHARED", - "NONUNIFORM", "COHERENT", "VOLATILE", "RESTRICT", "READONLY", - "WRITEONLY", "DEVICECOHERENT", "QUEUEFAMILYCOHERENT", - "WORKGROUPCOHERENT", "SUBGROUPCOHERENT", "NONPRIVATE", "DVEC2", "DVEC3", - "DVEC4", "DMAT2", "DMAT3", "DMAT4", "F16VEC2", "F16VEC3", "F16VEC4", - "F16MAT2", "F16MAT3", "F16MAT4", "F32VEC2", "F32VEC3", "F32VEC4", - "F32MAT2", "F32MAT3", "F32MAT4", "F64VEC2", "F64VEC3", "F64VEC4", - "F64MAT2", "F64MAT3", "F64MAT4", "NOPERSPECTIVE", "FLAT", "SMOOTH", - "LAYOUT", "EXPLICITINTERPAMD", "PERVERTEXNV", "PERPRIMITIVENV", - "PERVIEWNV", "PERTASKNV", "MAT2X2", "MAT2X3", "MAT2X4", "MAT3X2", - "MAT3X3", "MAT3X4", "MAT4X2", "MAT4X3", "MAT4X4", "DMAT2X2", "DMAT2X3", - "DMAT2X4", "DMAT3X2", "DMAT3X3", "DMAT3X4", "DMAT4X2", "DMAT4X3", - "DMAT4X4", "F16MAT2X2", "F16MAT2X3", "F16MAT2X4", "F16MAT3X2", - "F16MAT3X3", "F16MAT3X4", "F16MAT4X2", "F16MAT4X3", "F16MAT4X4", - "F32MAT2X2", "F32MAT2X3", "F32MAT2X4", "F32MAT3X2", "F32MAT3X3", - "F32MAT3X4", "F32MAT4X2", "F32MAT4X3", "F32MAT4X4", "F64MAT2X2", - "F64MAT2X3", "F64MAT2X4", "F64MAT3X2", "F64MAT3X3", "F64MAT3X4", - "F64MAT4X2", "F64MAT4X3", "F64MAT4X4", "ATOMIC_UINT", "SAMPLER1D", - "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE", "SAMPLER1DSHADOW", - "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW", "SAMPLER1DARRAY", - "SAMPLER2DARRAY", "SAMPLER1DARRAYSHADOW", "SAMPLER2DARRAYSHADOW", - "ISAMPLER1D", "ISAMPLER2D", "ISAMPLER3D", "ISAMPLERCUBE", - "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "USAMPLER1D", "USAMPLER2D", - "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY", "USAMPLER2DARRAY", - "SAMPLER2DRECT", "SAMPLER2DRECTSHADOW", "ISAMPLER2DRECT", - "USAMPLER2DRECT", "SAMPLERBUFFER", "ISAMPLERBUFFER", "USAMPLERBUFFER", - "SAMPLERCUBEARRAY", "SAMPLERCUBEARRAYSHADOW", "ISAMPLERCUBEARRAY", - "USAMPLERCUBEARRAY", "SAMPLER2DMS", "ISAMPLER2DMS", "USAMPLER2DMS", - "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY", "USAMPLER2DMSARRAY", - "SAMPLEREXTERNALOES", "F16SAMPLER1D", "F16SAMPLER2D", "F16SAMPLER3D", - "F16SAMPLER2DRECT", "F16SAMPLERCUBE", "F16SAMPLER1DARRAY", - "F16SAMPLER2DARRAY", "F16SAMPLERCUBEARRAY", "F16SAMPLERBUFFER", - "F16SAMPLER2DMS", "F16SAMPLER2DMSARRAY", "F16SAMPLER1DSHADOW", - "F16SAMPLER2DSHADOW", "F16SAMPLER1DARRAYSHADOW", + "NONUNIFORM", "PAYLOADNV", "PAYLOADINNV", "HITATTRNV", "COHERENT", + "VOLATILE", "RESTRICT", "READONLY", "WRITEONLY", "DEVICECOHERENT", + "QUEUEFAMILYCOHERENT", "WORKGROUPCOHERENT", "SUBGROUPCOHERENT", + "NONPRIVATE", "DVEC2", "DVEC3", "DVEC4", "DMAT2", "DMAT3", "DMAT4", + "F16VEC2", "F16VEC3", "F16VEC4", "F16MAT2", "F16MAT3", "F16MAT4", + "F32VEC2", "F32VEC3", "F32VEC4", "F32MAT2", "F32MAT3", "F32MAT4", + "F64VEC2", "F64VEC3", "F64VEC4", "F64MAT2", "F64MAT3", "F64MAT4", + "NOPERSPECTIVE", "FLAT", "SMOOTH", "LAYOUT", "EXPLICITINTERPAMD", + "PERVERTEXNV", "PERPRIMITIVENV", "PERVIEWNV", "PERTASKNV", "MAT2X2", + "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", "MAT3X4", "MAT4X2", "MAT4X3", + "MAT4X4", "DMAT2X2", "DMAT2X3", "DMAT2X4", "DMAT3X2", "DMAT3X3", + "DMAT3X4", "DMAT4X2", "DMAT4X3", "DMAT4X4", "F16MAT2X2", "F16MAT2X3", + "F16MAT2X4", "F16MAT3X2", "F16MAT3X3", "F16MAT3X4", "F16MAT4X2", + "F16MAT4X3", "F16MAT4X4", "F32MAT2X2", "F32MAT2X3", "F32MAT2X4", + "F32MAT3X2", "F32MAT3X3", "F32MAT3X4", "F32MAT4X2", "F32MAT4X3", + "F32MAT4X4", "F64MAT2X2", "F64MAT2X3", "F64MAT2X4", "F64MAT3X2", + "F64MAT3X3", "F64MAT3X4", "F64MAT4X2", "F64MAT4X3", "F64MAT4X4", + "ATOMIC_UINT", "ACCSTRUCTNV", "SAMPLER1D", "SAMPLER2D", "SAMPLER3D", + "SAMPLERCUBE", "SAMPLER1DSHADOW", "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW", + "SAMPLER1DARRAY", "SAMPLER2DARRAY", "SAMPLER1DARRAYSHADOW", + "SAMPLER2DARRAYSHADOW", "ISAMPLER1D", "ISAMPLER2D", "ISAMPLER3D", + "ISAMPLERCUBE", "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "USAMPLER1D", + "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY", + "USAMPLER2DARRAY", "SAMPLER2DRECT", "SAMPLER2DRECTSHADOW", + "ISAMPLER2DRECT", "USAMPLER2DRECT", "SAMPLERBUFFER", "ISAMPLERBUFFER", + "USAMPLERBUFFER", "SAMPLERCUBEARRAY", "SAMPLERCUBEARRAYSHADOW", + "ISAMPLERCUBEARRAY", "USAMPLERCUBEARRAY", "SAMPLER2DMS", "ISAMPLER2DMS", + "USAMPLER2DMS", "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY", + "USAMPLER2DMSARRAY", "SAMPLEREXTERNALOES", "F16SAMPLER1D", + "F16SAMPLER2D", "F16SAMPLER3D", "F16SAMPLER2DRECT", "F16SAMPLERCUBE", + "F16SAMPLER1DARRAY", "F16SAMPLER2DARRAY", "F16SAMPLERCUBEARRAY", + "F16SAMPLERBUFFER", "F16SAMPLER2DMS", "F16SAMPLER2DMSARRAY", + "F16SAMPLER1DSHADOW", "F16SAMPLER2DSHADOW", "F16SAMPLER1DARRAYSHADOW", "F16SAMPLER2DARRAYSHADOW", "F16SAMPLER2DRECTSHADOW", "F16SAMPLERCUBESHADOW", "F16SAMPLERCUBEARRAYSHADOW", "SAMPLER", "SAMPLERSHADOW", "TEXTURE1D", "TEXTURE2D", "TEXTURE3D", "TEXTURECUBE", @@ -1165,16 +1169,17 @@ static const yytype_uint16 yytoknum[] = 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654 + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658 }; # endif -#define YYPACT_NINF -641 +#define YYPACT_NINF -645 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-641))) + (!!((Yystate) == (-645))) -#define YYTABLE_NINF -511 +#define YYTABLE_NINF -515 #define yytable_value_is_error(Yytable_value) \ 0 @@ -1183,77 +1188,77 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - 3463, -641, -641, -641, -641, -641, -641, -641, -641, -641, - -641, -641, -641, -641, -641, -641, -641, -641, -641, -641, - -313, -641, -641, -641, -641, -641, -641, -641, -641, -641, - -641, -641, -641, -641, -641, -641, -641, -641, -641, -641, - -641, -641, -641, -641, -641, -641, -641, -641, -641, -641, - -641, -641, -641, -641, -641, -641, -641, -641, -641, -641, - -641, -641, -641, -641, -641, -641, -641, -641, -641, -641, - -641, -641, -641, -641, -641, -641, -641, -641, -641, -641, - -641, -641, -641, -641, -641, -641, -641, -641, -641, -641, - -641, -641, -641, -641, -641, -641, -641, -641, -641, -641, - -641, -641, -641, -641, -641, -641, -641, -262, -641, -641, - -641, -641, -641, -641, -641, -641, -641, -641, -641, -641, - -641, -641, -641, -641, -641, -641, -641, -641, -641, -641, - -641, -641, -641, -641, -641, -641, -641, -641, -641, -641, - -641, -641, -641, -641, -641, -641, -641, -641, -641, -641, - -641, -641, -641, -641, -641, -641, -641, -641, -641, -641, - -641, -641, -641, -641, -641, -641, -641, -641, -641, -641, - -641, -641, -641, -641, -641, -641, -641, -641, -641, -641, - -641, -641, -641, -641, -641, -641, -641, -641, -641, -641, - -641, -641, -641, -641, -641, -641, -641, -641, -641, -641, - -641, -641, -641, -641, -641, -641, -641, -641, -641, -641, - -641, -641, -641, -641, -641, -641, -641, -641, -641, -641, - -641, -641, -641, -641, -641, -641, -641, -641, -641, -641, - -641, -641, -641, -641, -641, -641, -641, -641, -641, -641, - -641, -641, -641, -641, -641, -641, -641, -641, -641, -641, - -641, -641, -641, -641, -641, -641, -641, -641, -641, -641, - -641, -641, -641, -641, -641, -641, -641, -641, -641, -641, - -641, -641, -641, -641, -641, -641, -641, -641, -641, -641, - -641, -641, -641, -641, -641, -641, -641, -641, -641, -641, - -641, -641, -641, -641, -641, -641, -641, -641, -641, -641, - -641, -641, -641, -641, -641, -641, -641, -641, -641, -641, - -641, -641, -641, -641, -641, -641, -310, -641, -641, -641, - -641, -641, -641, -641, -641, -269, -641, -311, -351, -331, - -295, 5822, -282, -641, -235, -641, -641, -641, -641, 4250, - -641, -641, -641, -641, -229, -641, -641, 705, -641, -641, - -177, -69, -214, -641, 8823, -336, -641, -641, -208, -641, - 5822, -641, -641, -641, 5822, -164, -163, -641, -333, -299, - -641, -641, -641, 6561, -199, -641, -641, -641, -301, -641, - -205, -300, -641, -641, 5822, -204, -641, -329, 1099, -641, - -641, -641, -641, -229, -319, -641, 6938, -307, -641, -160, - -641, -271, -641, -641, -641, -641, -641, -641, -641, -641, - -641, -641, -641, -641, -641, 8069, 8069, 8069, -641, -641, - -641, -641, -641, -641, -641, -318, -641, -641, -641, -194, - -292, 8446, -192, -641, 8069, -247, -288, -218, -327, -221, - -213, -211, -209, -174, -175, -330, -188, -641, -641, 7315, - -641, -149, 8069, -641, -69, 5822, 5822, -148, 4643, -641, - -641, -641, -191, -190, -641, -182, -179, -187, 7692, -178, - 8069, -183, -173, -176, -172, -641, -641, -212, -641, -641, - -270, -641, -351, -171, -170, -641, -641, -641, -641, 1493, - -641, -641, -641, -641, -641, -641, -641, -641, -641, -19, - -199, 6938, -306, 6938, -641, -641, 6938, 5822, -641, -131, - -641, -641, -641, -291, -641, -641, 8069, -130, -641, -641, - 8069, -165, -641, -641, -641, 8069, 8069, 8069, 8069, 8069, - 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, - 8069, 8069, 8069, 8069, -641, -641, -641, -166, -641, -641, - -641, -641, 5036, -148, -229, -264, -641, -641, -641, -641, - -641, 1887, -641, 8069, -641, -641, -259, 8069, -236, -641, - -641, -127, -641, 1887, -641, -641, -641, -641, -641, -641, - -641, -641, -641, -641, -641, 8069, 8069, -641, -641, -641, - -641, -641, -641, -641, 6938, -641, -263, -641, 5429, -641, - -641, -162, -159, -641, -641, -641, -641, -641, -247, -247, - -288, -288, -218, -218, -218, -218, -327, -327, -221, -213, - -211, -209, -174, -175, 8069, -641, -641, -257, -199, -148, - -641, -122, 3069, -287, -641, -284, -641, 3857, -157, -332, - -641, 1887, -641, -641, -641, -641, 6184, -641, -641, -232, - -641, -641, -156, -641, -641, 3857, -155, -641, -159, -120, - 5822, -154, 8069, -153, -127, -152, -641, -641, 8069, 8069, - -641, -158, -150, 196, -145, 2675, -641, -144, -147, 2281, - -146, -641, -641, -641, -641, -280, 8069, 2281, -155, -641, - -641, 1887, 6938, -641, -641, -641, -641, -126, -159, -641, - -641, 1887, -142, -641, -641, -641 + 3495, -645, -645, -645, -645, -645, -645, -645, -645, -645, + -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, + -317, -645, -645, -645, -645, -645, -645, -645, -645, -645, + -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, + -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, + -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, + -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, + -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, + -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, + -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, + -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, + -266, -645, -645, -645, -645, -645, -645, -645, -645, -645, + -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, + -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, + -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, + -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, + -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, + -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, + -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, + -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, + -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, + -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, + -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, + -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, + -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, + -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, + -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, + -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, + -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, + -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, + -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, + -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, + -314, -645, -645, -645, -645, -645, -645, -645, -645, -273, + -645, -315, -355, -335, -299, 5878, -286, -645, -239, -645, + -645, -645, -645, 4290, -645, -645, -645, -645, -233, -645, + -645, 709, -645, -645, -181, -69, -218, -645, 8911, -340, + -645, -645, -212, -645, 5878, -645, -645, -645, 5878, -168, + -167, -645, -337, -303, -645, -645, -645, 6625, -203, -645, + -645, -645, -305, -645, -209, -304, -645, -645, 5878, -208, + -645, -333, 1107, -645, -645, -645, -645, -233, -323, -645, + 7006, -311, -645, -164, -645, -275, -645, -645, -645, -645, + -645, -645, -645, -645, -645, -645, -645, -645, -645, 8149, + 8149, 8149, -645, -645, -645, -645, -645, -645, -645, -322, + -645, -645, -645, -198, -296, 8530, -196, -645, 8149, -251, + -292, -222, -331, -225, -217, -215, -213, -178, -179, -334, + -192, -645, -645, 7387, -645, -153, 8149, -645, -69, 5878, + 5878, -152, 4687, -645, -645, -645, -195, -194, -645, -186, + -183, -191, 7768, -182, 8149, -187, -177, -180, -176, -645, + -645, -216, -645, -645, -274, -645, -355, -175, -174, -645, + -645, -645, -645, 1505, -645, -645, -645, -645, -645, -645, + -645, -645, -645, -19, -203, 7006, -310, 7006, -645, -645, + 7006, 5878, -645, -135, -645, -645, -645, -295, -645, -645, + 8149, -134, -645, -645, 8149, -169, -645, -645, -645, 8149, + 8149, 8149, 8149, 8149, 8149, 8149, 8149, 8149, 8149, 8149, + 8149, 8149, 8149, 8149, 8149, 8149, 8149, 8149, -645, -645, + -645, -170, -645, -645, -645, -645, 5084, -152, -233, -268, + -645, -645, -645, -645, -645, 1903, -645, 8149, -645, -645, + -263, 8149, -240, -645, -645, -131, -645, 1903, -645, -645, + -645, -645, -645, -645, -645, -645, -645, -645, -645, 8149, + 8149, -645, -645, -645, -645, -645, -645, -645, 7006, -645, + -267, -645, 5481, -645, -645, -166, -163, -645, -645, -645, + -645, -645, -251, -251, -292, -292, -222, -222, -222, -222, + -331, -331, -225, -217, -215, -213, -178, -179, 8149, -645, + -645, -261, -203, -152, -645, -126, 3097, -291, -645, -288, + -645, 3893, -161, -336, -645, 1903, -645, -645, -645, -645, + 6244, -645, -645, -236, -645, -645, -160, -645, -645, 3893, + -159, -645, -163, -124, 5878, -158, 8149, -157, -131, -156, + -645, -645, 8149, 8149, -645, -162, -154, 196, -149, 2699, + -645, -148, -151, 2301, -150, -645, -645, -645, -645, -284, + 8149, 2301, -159, -645, -645, 1903, 7006, -645, -645, -645, + -645, -130, -163, -645, -645, 1903, -146, -645, -645, -645 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1261,109 +1266,109 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 0, 157, 158, 192, 190, 193, 191, 194, 156, 205, - 195, 196, 203, 204, 201, 202, 199, 200, 197, 198, - 178, 221, 222, 223, 224, 225, 226, 239, 240, 241, - 236, 237, 238, 251, 252, 253, 233, 234, 235, 248, - 249, 250, 230, 231, 232, 245, 246, 247, 227, 228, - 229, 242, 243, 244, 206, 207, 208, 254, 255, 256, - 162, 160, 161, 159, 165, 163, 164, 166, 167, 180, - 168, 174, 175, 176, 177, 169, 170, 171, 172, 173, - 209, 210, 211, 266, 267, 268, 212, 213, 214, 278, - 279, 280, 215, 216, 217, 290, 291, 292, 218, 219, - 220, 302, 303, 304, 134, 133, 132, 0, 135, 136, - 137, 138, 139, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, - 352, 353, 355, 356, 359, 360, 361, 363, 364, 326, - 327, 347, 354, 365, 367, 368, 369, 371, 372, 463, - 328, 329, 330, 357, 331, 335, 336, 339, 362, 366, - 370, 332, 333, 337, 338, 358, 334, 340, 373, 374, - 375, 377, 379, 381, 383, 385, 389, 390, 391, 392, - 393, 394, 396, 397, 398, 399, 400, 401, 403, 405, - 406, 407, 409, 410, 387, 395, 402, 411, 413, 414, - 415, 417, 418, 376, 378, 380, 404, 382, 384, 386, - 388, 408, 412, 416, 464, 465, 468, 469, 470, 471, - 466, 467, 419, 421, 422, 423, 425, 426, 427, 429, - 430, 431, 433, 434, 435, 437, 438, 439, 441, 442, - 443, 445, 446, 447, 449, 450, 451, 453, 454, 455, - 457, 458, 459, 461, 462, 420, 424, 428, 432, 436, - 444, 448, 452, 440, 456, 460, 0, 189, 473, 558, - 131, 146, 474, 475, 476, 0, 557, 0, 559, 0, - 108, 107, 0, 119, 124, 153, 152, 150, 154, 0, - 147, 149, 155, 129, 183, 151, 472, 0, 554, 556, - 0, 0, 0, 479, 0, 0, 96, 93, 0, 106, - 0, 115, 109, 117, 0, 118, 0, 94, 125, 0, - 99, 148, 130, 0, 184, 1, 555, 181, 0, 145, - 143, 0, 141, 477, 0, 0, 97, 0, 0, 560, - 110, 114, 116, 112, 120, 111, 0, 126, 102, 0, - 100, 0, 2, 12, 13, 10, 11, 4, 5, 6, - 7, 8, 9, 15, 14, 0, 0, 0, 185, 42, - 41, 43, 40, 3, 17, 36, 19, 24, 25, 0, - 0, 29, 0, 44, 0, 48, 51, 54, 59, 62, - 64, 66, 68, 70, 72, 74, 0, 35, 33, 0, - 179, 0, 0, 140, 0, 0, 0, 0, 0, 481, - 95, 98, 0, 0, 539, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 505, 514, 518, 44, 77, 90, - 0, 494, 0, 155, 129, 497, 516, 496, 495, 0, - 498, 499, 520, 500, 527, 501, 502, 535, 503, 0, - 113, 0, 121, 0, 489, 128, 0, 0, 104, 0, - 101, 37, 38, 0, 21, 22, 0, 0, 27, 26, - 0, 189, 30, 32, 39, 0, 0, 0, 0, 0, + 0, 157, 158, 195, 193, 196, 194, 197, 156, 208, + 198, 199, 206, 207, 204, 205, 202, 203, 200, 201, + 181, 224, 225, 226, 227, 228, 229, 242, 243, 244, + 239, 240, 241, 254, 255, 256, 236, 237, 238, 251, + 252, 253, 233, 234, 235, 248, 249, 250, 230, 231, + 232, 245, 246, 247, 209, 210, 211, 257, 258, 259, + 162, 160, 161, 159, 165, 163, 164, 166, 170, 183, + 168, 169, 167, 171, 177, 178, 179, 180, 172, 173, + 174, 175, 176, 212, 213, 214, 269, 270, 271, 215, + 216, 217, 281, 282, 283, 218, 219, 220, 293, 294, + 295, 221, 222, 223, 305, 306, 307, 134, 133, 132, + 0, 135, 136, 137, 138, 139, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 318, 317, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 345, 346, 347, 348, 349, 350, + 352, 353, 354, 355, 356, 357, 359, 360, 363, 364, + 365, 367, 368, 330, 331, 351, 358, 369, 371, 372, + 373, 375, 376, 467, 332, 333, 334, 361, 335, 339, + 340, 343, 366, 370, 374, 336, 337, 341, 342, 362, + 338, 344, 377, 378, 379, 381, 383, 385, 387, 389, + 393, 394, 395, 396, 397, 398, 400, 401, 402, 403, + 404, 405, 407, 409, 410, 411, 413, 414, 391, 399, + 406, 415, 417, 418, 419, 421, 422, 380, 382, 384, + 408, 386, 388, 390, 392, 412, 416, 420, 468, 469, + 472, 473, 474, 475, 470, 471, 423, 425, 426, 427, + 429, 430, 431, 433, 434, 435, 437, 438, 439, 441, + 442, 443, 445, 446, 447, 449, 450, 451, 453, 454, + 455, 457, 458, 459, 461, 462, 463, 465, 466, 424, + 428, 432, 436, 440, 448, 452, 456, 444, 460, 464, + 0, 192, 477, 562, 131, 146, 478, 479, 480, 0, + 561, 0, 563, 0, 108, 107, 0, 119, 124, 153, + 152, 150, 154, 0, 147, 149, 155, 129, 186, 151, + 476, 0, 558, 560, 0, 0, 0, 483, 0, 0, + 96, 93, 0, 106, 0, 115, 109, 117, 0, 118, + 0, 94, 125, 0, 99, 148, 130, 0, 187, 1, + 559, 184, 0, 145, 143, 0, 141, 481, 0, 0, + 97, 0, 0, 564, 110, 114, 116, 112, 120, 111, + 0, 126, 102, 0, 100, 0, 2, 12, 13, 10, + 11, 4, 5, 6, 7, 8, 9, 15, 14, 0, + 0, 0, 188, 42, 41, 43, 40, 3, 17, 36, + 19, 24, 25, 0, 0, 29, 0, 44, 0, 48, + 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, + 0, 35, 33, 0, 182, 0, 0, 140, 0, 0, + 0, 0, 0, 485, 95, 98, 0, 0, 543, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 509, 518, + 522, 44, 77, 90, 0, 498, 0, 155, 129, 501, + 520, 500, 499, 0, 502, 503, 524, 504, 531, 505, + 506, 539, 507, 0, 113, 0, 121, 0, 493, 128, + 0, 0, 104, 0, 101, 37, 38, 0, 21, 22, + 0, 0, 27, 26, 0, 192, 30, 32, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 75, 186, 187, 0, 182, 92, - 144, 142, 0, 0, 487, 0, 485, 480, 482, 550, - 549, 0, 541, 0, 553, 551, 0, 0, 0, 534, - 537, 0, 504, 0, 80, 81, 83, 82, 85, 86, - 87, 88, 89, 84, 79, 0, 0, 519, 515, 517, - 521, 528, 536, 123, 0, 492, 0, 127, 0, 105, - 16, 0, 23, 20, 31, 45, 46, 47, 50, 49, - 52, 53, 57, 58, 55, 56, 60, 61, 63, 65, - 67, 69, 71, 73, 0, 188, 478, 0, 488, 0, - 483, 0, 0, 0, 552, 0, 533, 0, 564, 0, - 562, 506, 78, 91, 122, 490, 0, 103, 18, 0, - 484, 486, 0, 544, 543, 546, 512, 529, 525, 0, - 0, 0, 0, 0, 0, 0, 491, 493, 0, 0, - 545, 0, 0, 524, 0, 0, 522, 0, 0, 0, - 0, 561, 563, 507, 76, 0, 547, 0, 512, 511, - 513, 531, 0, 509, 538, 508, 565, 0, 548, 542, - 523, 532, 0, 526, 540, 530 + 0, 0, 0, 0, 0, 0, 0, 0, 75, 189, + 190, 0, 185, 92, 144, 142, 0, 0, 491, 0, + 489, 484, 486, 554, 553, 0, 545, 0, 557, 555, + 0, 0, 0, 538, 541, 0, 508, 0, 80, 81, + 83, 82, 85, 86, 87, 88, 89, 84, 79, 0, + 0, 523, 519, 521, 525, 532, 540, 123, 0, 496, + 0, 127, 0, 105, 16, 0, 23, 20, 31, 45, + 46, 47, 50, 49, 52, 53, 57, 58, 55, 56, + 60, 61, 63, 65, 67, 69, 71, 73, 0, 191, + 482, 0, 492, 0, 487, 0, 0, 0, 556, 0, + 537, 0, 568, 0, 566, 510, 78, 91, 122, 494, + 0, 103, 18, 0, 488, 490, 0, 548, 547, 550, + 516, 533, 529, 0, 0, 0, 0, 0, 0, 0, + 495, 497, 0, 0, 549, 0, 0, 528, 0, 0, + 526, 0, 0, 0, 0, 565, 567, 511, 76, 0, + 551, 0, 516, 515, 517, 535, 0, 513, 542, 512, + 569, 0, 552, 546, 527, 536, 0, 530, 544, 534 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -641, -641, -641, -641, -641, -641, -641, -641, -641, -641, - -641, -641, -293, -641, -464, -369, -433, -370, -315, -308, - -312, -286, -289, -285, -641, -363, -641, -387, -641, -372, - -408, 1, -641, -641, -641, 2, -641, -641, -641, -108, - -103, -104, -641, -641, -609, -641, -641, -641, -641, -193, - -641, -328, -335, -641, 6, -641, 0, -341, -641, -63, - -641, -641, -641, -436, -440, -281, -365, -486, -641, -366, - -476, -640, -407, -641, -641, -419, -417, -641, -641, -89, - -557, -359, -641, -225, -641, -380, -641, -223, -641, -641, - -641, -641, -222, -641, -641, -641, -641, -641, -641, -641, - -641, -68, -641, -641, -641, -641, -386 + -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, + -645, -645, -297, -645, -468, -373, -437, -374, -319, -312, + -316, -290, -293, -289, -645, -367, -645, -391, -645, -376, + -412, 1, -645, -645, -645, 2, -645, -645, -645, -112, + -107, -108, -645, -645, -613, -645, -645, -645, -645, -197, + -645, -332, -339, -645, 6, -645, 0, -345, -645, -67, + -645, -645, -645, -440, -444, -294, -369, -490, -645, -370, + -480, -644, -410, -645, -645, -422, -421, -645, -645, -90, + -561, -363, -645, -229, -645, -384, -645, -227, -645, -645, + -645, -645, -226, -645, -645, -645, -645, -645, -645, -645, + -645, -73, -645, -645, -645, -645, -389 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 423, 424, 425, 601, 426, 427, 428, 429, 430, - 431, 432, 477, 434, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 478, 624, 479, 585, 480, - 550, 481, 327, 507, 401, 482, 329, 330, 331, 361, - 362, 363, 332, 333, 334, 335, 336, 337, 381, 382, - 338, 339, 340, 341, 447, 378, 448, 374, 344, 345, - 346, 455, 384, 458, 459, 555, 556, 505, 596, 485, - 486, 487, 488, 573, 665, 694, 673, 674, 675, 695, - 489, 490, 491, 492, 676, 661, 493, 494, 677, 702, - 495, 496, 497, 637, 561, 632, 655, 671, 672, 498, - 347, 348, 349, 358, 499, 639, 640 + -1, 427, 428, 429, 605, 430, 431, 432, 433, 434, + 435, 436, 481, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 482, 628, 483, 589, 484, + 554, 485, 331, 511, 405, 486, 333, 334, 335, 365, + 366, 367, 336, 337, 338, 339, 340, 341, 385, 386, + 342, 343, 344, 345, 451, 382, 452, 378, 348, 349, + 350, 459, 388, 462, 463, 559, 560, 509, 600, 489, + 490, 491, 492, 577, 669, 698, 677, 678, 679, 699, + 493, 494, 495, 496, 680, 665, 497, 498, 681, 706, + 499, 500, 501, 641, 565, 636, 659, 675, 676, 502, + 351, 352, 353, 362, 503, 643, 644 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1371,120 +1376,81 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 343, 326, 328, 364, 371, 464, 342, 465, 466, 504, - 446, 469, 379, 589, 387, 593, 641, 595, 558, 552, - 597, 355, 352, 532, 533, 543, 357, 397, 659, 371, - 514, 515, 364, 373, 395, 690, 373, 359, 663, 693, - 449, 386, 664, 396, 522, 513, 659, 693, 461, -34, - 373, 516, 500, 502, 350, 517, 456, 501, 534, 535, - 544, 353, 449, 449, 608, 609, 356, 450, 453, 506, - 594, 598, 398, 451, 454, 399, 519, 600, 400, 360, - 433, 656, 520, 586, 657, 631, 547, 586, 697, 549, - 586, 528, 366, 529, 586, 367, 566, 368, 568, 612, - 613, 614, 615, 509, 586, 351, 510, 587, 644, 645, - 629, 646, 558, 630, 504, 586, 504, 629, 634, 504, - 650, 371, 511, 512, 322, 323, 324, 456, 530, 531, - 456, 536, 537, 604, 701, 525, 526, 527, 586, 636, - 373, 524, 586, 668, 602, 574, 575, 576, 577, 578, - 579, 580, 581, 582, 583, 377, 433, 383, 558, 433, - 667, 610, 611, 388, 584, 589, 616, 617, 393, 394, - 449, 452, 508, 460, 518, 523, 538, 539, 540, 456, - 541, 542, 545, 548, 554, 562, 559, 560, 563, 567, - 564, 633, 569, 571, 570, 635, -35, -33, 642, 643, - 572, 599, 603, -28, 625, 638, 703, 504, 648, 652, - 662, 669, 678, 628, 679, 586, -510, 681, 687, 686, - 683, 688, 696, 618, 456, 589, 474, 691, 620, 692, - 705, 619, 605, 606, 607, 433, 433, 433, 433, 433, - 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, - 433, 704, 649, 622, 680, 621, 391, 390, 623, 504, - 392, 551, 354, 380, 651, 658, 653, 689, 699, 389, - 456, 700, 627, 654, 590, 670, 591, 592, 682, 376, - 0, 684, 0, 658, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 685, 0, 549, - 0, 0, 0, 0, 0, 504, 0, 0, 0, 660, - 0, 0, 472, 0, 698, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 371, 0, 660, 0, 0, - 0, 365, 0, 0, 0, 0, 0, 342, 0, 372, - 0, 0, 0, 0, 0, 342, 0, 343, 326, 328, - 0, 0, 0, 342, 385, 0, 0, 0, 0, 0, - 365, 0, 0, 0, 365, 0, 342, 0, 0, 433, - 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 457, 0, 0, 0, 484, 0, - 342, 0, 0, 0, 483, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 347, 330, 332, 368, 375, 468, 346, 469, 470, 508, + 450, 473, 383, 593, 391, 597, 645, 599, 562, 556, + 601, 359, 356, 536, 537, 547, 361, 401, 663, 375, + 518, 519, 368, 377, 399, 694, 377, 363, 667, 697, + 453, 390, 668, 400, 526, 517, 663, 697, 465, -34, + 377, 520, 504, 506, 354, 521, 460, 505, 538, 539, + 548, 357, 453, 453, 612, 613, 360, 454, 457, 510, + 598, 602, 402, 455, 458, 403, 523, 604, 404, 364, + 437, 660, 524, 590, 661, 635, 551, 590, 701, 553, + 590, 532, 370, 533, 590, 371, 570, 372, 572, 616, + 617, 618, 619, 513, 590, 355, 514, 591, 648, 649, + 633, 650, 562, 634, 508, 590, 508, 633, 638, 508, + 654, 375, 515, 516, 326, 327, 328, 460, 534, 535, + 460, 540, 541, 608, 705, 529, 530, 531, 590, 640, + 377, 528, 590, 672, 606, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 381, 437, 387, 562, 437, + 671, 614, 615, 392, 588, 593, 620, 621, 397, 398, + 453, 456, 512, 464, 522, 527, 542, 543, 544, 460, + 545, 546, 549, 552, 558, 566, 563, 564, 567, 571, + 568, 637, 573, 575, 574, 639, -35, -33, 646, 647, + 576, 603, 607, -28, 629, 642, 707, 508, 652, 656, + 666, 673, 682, 632, 683, 590, -514, 685, 691, 690, + 687, 692, 700, 622, 460, 593, 478, 695, 624, 696, + 709, 623, 609, 610, 611, 437, 437, 437, 437, 437, + 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, + 437, 708, 653, 626, 684, 625, 395, 394, 627, 508, + 396, 555, 358, 631, 655, 662, 657, 384, 693, 703, + 460, 704, 393, 658, 594, 674, 595, 596, 380, 686, + 0, 688, 0, 662, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 689, 0, 553, + 0, 0, 0, 0, 0, 508, 0, 0, 0, 664, + 0, 0, 0, 0, 702, 0, 476, 0, 0, 0, + 0, 0, 0, 0, 0, 375, 0, 664, 0, 0, + 0, 0, 0, 0, 0, 369, 0, 0, 0, 0, + 0, 346, 0, 376, 0, 0, 0, 0, 0, 346, + 0, 347, 330, 332, 0, 0, 0, 346, 389, 0, + 0, 0, 0, 0, 369, 0, 0, 0, 369, 437, + 346, 0, 0, 0, 346, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 461, 0, + 0, 0, 488, 0, 346, 0, 0, 0, 487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 457, 553, 0, 457, 0, - 0, 342, 342, 0, 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 484, - 0, 0, 0, 0, 0, 483, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 457, 0, 0, - 0, 0, 0, 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 461, + 557, 0, 461, 0, 0, 346, 346, 0, 346, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 457, 0, 0, 0, 0, 0, 342, 0, - 0, 484, 0, 0, 0, 0, 0, 483, 0, 0, - 0, 0, 0, 484, 0, 0, 0, 0, 0, 483, + 0, 0, 0, 488, 0, 0, 0, 0, 0, 487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 457, 0, - 0, 0, 0, 0, 342, 0, 0, 0, 0, 0, + 0, 461, 0, 0, 0, 0, 0, 346, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 484, 0, 0, 0, 0, 484, 483, 0, - 0, 484, 0, 483, 0, 0, 0, 483, 0, 0, - 0, 0, 0, 0, 0, 484, 0, 0, 0, 0, - 372, 483, 0, 0, 0, 0, 342, 0, 0, 0, - 0, 0, 0, 0, 0, 484, 0, 0, 0, 484, - 0, 483, 0, 0, 0, 483, 0, 484, 0, 0, - 0, 484, 0, 483, 0, 0, 0, 483, 0, 0, - 0, 484, 0, 0, 0, 375, 0, 483, 1, 2, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, - 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 461, 0, 0, 0, + 0, 0, 346, 0, 0, 488, 0, 0, 0, 0, + 0, 487, 0, 0, 0, 0, 0, 488, 0, 0, + 0, 0, 0, 487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 461, 0, 0, 0, 0, 0, 346, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 319, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 320, 321, 322, 323, - 324, 325, 1, 2, 3, 4, 5, 6, 7, 8, + 0, 0, 0, 0, 0, 0, 488, 0, 0, 0, + 0, 488, 487, 0, 0, 488, 0, 487, 0, 0, + 0, 487, 0, 0, 0, 0, 0, 0, 0, 488, + 0, 0, 0, 0, 376, 487, 0, 0, 0, 0, + 346, 0, 0, 0, 0, 0, 0, 0, 0, 488, + 0, 0, 0, 488, 0, 487, 0, 0, 0, 487, + 0, 488, 0, 0, 0, 488, 0, 487, 0, 0, + 0, 487, 0, 0, 0, 488, 0, 0, 0, 379, + 0, 487, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 462, 463, 464, 0, 465, 466, 467, 468, 469, - 470, 471, 20, 21, 22, 23, 24, 25, 26, 27, + 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 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, @@ -1514,55 +1480,16 @@ static const yytype_int16 yytable[] = 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 472, 402, 318, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 0, 0, 415, 416, 0, + 318, 319, 320, 321, 0, 0, 322, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 417, 0, 473, 0, - 474, 475, 0, 0, 0, 0, 476, 419, 420, 421, - 422, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 320, 321, 322, 323, 324, 325, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 462, 463, 464, 0, 465, - 466, 467, 468, 469, 470, 471, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 472, 402, 318, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, - 0, 415, 416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 417, 0, 473, 0, 474, 588, 0, 0, 0, 0, - 476, 419, 420, 421, 422, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 320, 321, 322, 323, 324, 325, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 323, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 324, 325, 326, 327, 328, 329, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 462, - 463, 464, 0, 465, 466, 467, 468, 469, 470, 471, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 466, + 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 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, @@ -1592,56 +1519,17 @@ static const yytype_int16 yytable[] = 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 472, 402, - 318, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 0, 0, 415, 416, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 417, 0, 473, 0, 474, 0, - 0, 0, 0, 0, 476, 419, 420, 421, 422, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 320, 321, - 322, 323, 324, 325, 1, 2, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 462, 463, 464, 0, 465, 466, 467, - 468, 469, 470, 471, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 472, 402, 318, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 0, 0, 415, - 416, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 417, 0, - 473, 0, 388, 0, 0, 0, 0, 0, 476, 419, - 420, 421, 422, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 320, 321, 322, 323, 324, 325, 1, 2, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 476, 406, 322, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 0, 0, 419, + 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 421, 0, + 477, 0, 478, 479, 0, 0, 0, 0, 480, 423, + 424, 425, 426, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 324, 325, 326, 327, 328, 329, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 462, 463, 464, - 0, 465, 466, 467, 468, 469, 470, 471, 20, 21, + 13, 14, 15, 16, 17, 18, 19, 466, 467, 468, + 0, 469, 470, 471, 472, 473, 474, 475, 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, @@ -1671,56 +1559,17 @@ static const yytype_int16 yytable[] = 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 472, 402, 318, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 0, 0, 415, 416, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 417, 0, 473, 0, 0, 0, 0, 0, - 0, 0, 476, 419, 420, 421, 422, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 320, 321, 322, 323, - 324, 325, 1, 2, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 0, 402, 318, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 0, 0, 415, 416, 0, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 476, 406, 322, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 0, 0, 419, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 417, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 476, 419, 420, 421, - 422, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 320, 321, 322, 323, 324, 325, 1, 2, 3, 4, + 0, 0, 0, 0, 0, 0, 421, 0, 477, 0, + 478, 592, 0, 0, 0, 0, 480, 423, 424, 425, + 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 324, 325, 326, 327, 328, 329, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 20, 21, 22, 23, + 15, 16, 17, 18, 19, 466, 467, 468, 0, 469, + 470, 471, 472, 473, 474, 475, 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, @@ -1750,13 +1599,93 @@ static const yytype_int16 yytable[] = 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 0, 0, 318, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 314, 315, 316, 317, 318, 319, 320, 321, 476, 406, + 322, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 0, 0, 419, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 421, 0, 477, 0, 478, 0, + 0, 0, 0, 0, 480, 423, 424, 425, 426, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 324, 325, + 326, 327, 328, 329, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 466, 467, 468, 0, 469, 470, 471, + 472, 473, 474, 475, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 476, 406, 322, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 0, 0, 419, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 421, 0, 477, 0, 392, 0, 0, 0, + 0, 0, 480, 423, 424, 425, 426, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 324, 325, 326, 327, + 328, 329, 1, 2, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 466, 467, 468, 0, 469, 470, 471, 472, 473, + 474, 475, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 476, 406, 322, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 0, + 0, 419, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 319, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 320, 321, 322, 323, 324, 325, + 421, 0, 477, 0, 0, 0, 0, 0, 0, 0, + 480, 423, 424, 425, 426, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 324, 325, 326, 327, 328, 329, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1789,53 +1718,54 @@ static const yytype_int16 yytable[] = 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 0, 402, - 318, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 0, 0, 415, 416, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 417, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 419, 420, 421, 422, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 320, 321, - 322, 323, 324, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, - 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, - 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, - 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, - 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 0, 369, 318, 0, 0, 0, 0, 0, 0, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 0, 406, 322, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 0, 0, 419, + 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 421, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 480, 423, + 424, 425, 426, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 324, 325, 326, 327, 328, 329, 1, 2, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 0, 0, 322, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 370, 0, 0, + 0, 0, 0, 0, 0, 0, 323, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 320, 321, 322, 323, 324, 1, 2, 3, 4, + 324, 325, 326, 327, 328, 329, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 21, 22, 23, @@ -1868,140 +1798,105 @@ static const yytype_int16 yytable[] = 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 0, 0, 318, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 557, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 320, 321, 322, 323, 324, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 0, 0, 318, + 314, 315, 316, 317, 318, 319, 320, 321, 0, 406, + 322, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 0, 0, 419, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 421, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 423, 424, 425, 426, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 324, 325, + 326, 327, 328, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 0, 373, 322, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 320, 321, 322, - 323, 324, 1, 2, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 374, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 324, 325, 326, 327, 328, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 0, 0, 322, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 320, 321, 322, 323, 324, 1, 2, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 4, 5, 6, 7, 0, 9, 10, 11, 12, 13, + 0, 0, 324, 325, 326, 327, 328, 1, 2, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, 0, 0, - 0, 0, 0, 320, 321, 322, 323, 324, 21, 22, + 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 80, 81, 82, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, @@ -2022,24 +1917,26 @@ static const yytype_int16 yytable[] = 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 0, 402, 318, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 0, 0, 415, 416, 0, 0, 0, 0, 0, 0, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 0, + 0, 322, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 417, 0, 0, 0, 503, 666, 0, 0, 0, - 0, 0, 419, 420, 421, 422, 3, 4, 5, 6, - 7, 0, 9, 10, 11, 12, 13, 14, 15, 16, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 630, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 324, + 325, 326, 327, 328, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 21, 22, 23, 24, 25, + 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80, 81, 82, 83, 84, 85, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 113, 114, 115, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, @@ -2060,24 +1957,26 @@ static const yytype_int16 yytable[] = 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 0, 402, 318, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 0, 0, 415, - 416, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 417, 0, - 0, 418, 0, 0, 0, 0, 0, 0, 0, 419, - 420, 421, 422, 3, 4, 5, 6, 7, 0, 9, + 316, 317, 318, 319, 320, 321, 0, 0, 322, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 651, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 324, 325, 326, 327, + 328, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 21, 22, 23, 24, 25, 26, 27, 28, + 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 113, 114, 115, 116, 117, 118, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, @@ -2097,12 +1996,49 @@ static const yytype_int16 yytable[] = 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, - 402, 318, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 0, 0, 415, 416, 0, 0, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 0, 0, 322, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 4, 5, 6, 7, 0, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 0, 0, 0, 0, + 0, 0, 0, 324, 325, 326, 327, 328, 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, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 0, + 406, 322, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 0, 0, 419, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 417, 0, 0, 0, 503, - 0, 0, 0, 0, 0, 0, 419, 420, 421, 422, + 0, 0, 0, 0, 0, 421, 0, 0, 0, 507, + 670, 0, 0, 0, 0, 0, 423, 424, 425, 426, 3, 4, 5, 6, 7, 0, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, @@ -2111,11 +2047,11 @@ static const yytype_int16 yytable[] = 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 102, 103, 104, 105, 106, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, @@ -2135,50 +2071,127 @@ static const yytype_int16 yytable[] = 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 0, 402, 318, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 0, 0, 415, 416, 0, 0, 0, 0, 0, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 0, 406, 322, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 0, 0, 419, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 417, 0, 0, 546, 0, 0, 0, 0, - 0, 0, 0, 419, 420, 421, 422, 3, 4, 5, - 6, 7, 0, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 69, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 0, 402, 318, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 0, 0, - 415, 416, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 417, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 565, - 419, 420, 421, 422, 3, 4, 5, 6, 7, 0, + 0, 0, 0, 0, 0, 0, 421, 0, 0, 422, + 0, 0, 0, 0, 0, 0, 0, 423, 424, 425, + 426, 3, 4, 5, 6, 7, 0, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 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, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 69, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 0, 406, 322, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 0, 0, 419, 420, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 421, 0, 0, + 0, 507, 0, 0, 0, 0, 0, 0, 423, 424, + 425, 426, 3, 4, 5, 6, 7, 0, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 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, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 0, 406, 322, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 0, 0, 419, + 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 421, 0, + 0, 550, 0, 0, 0, 0, 0, 0, 0, 423, + 424, 425, 426, 3, 4, 5, 6, 7, 0, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 0, 406, 322, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 0, 0, + 419, 420, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 421, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 569, + 423, 424, 425, 426, 3, 4, 5, 6, 7, 0, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 22, 23, 24, 25, 26, 27, @@ -2187,10 +2200,10 @@ static const yytype_int16 yytable[] = 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 80, 81, 82, 83, 84, 85, 86, 87, + 0, 0, 0, 0, 0, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 113, 114, 115, 116, 117, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, @@ -2211,24 +2224,170 @@ static const yytype_int16 yytable[] = 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 0, 402, 318, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 0, 0, 415, 416, 0, + 318, 319, 320, 321, 0, 406, 322, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 0, + 0, 419, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 417, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 419, 420, 421, - 422, 3, 4, 5, 6, 7, 0, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, + 421, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 423, 424, 425, 426, 3, 4, 5, 6, 7, + 0, 9, 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 525, 0, 406, 322, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 0, 0, 419, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 0, 421, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 423, 424, 425, 426, 3, 4, 5, 6, + 7, 0, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 0, 0, 322 +}; + +static const yytype_int16 yycheck[] = +{ + 0, 0, 0, 335, 343, 24, 0, 26, 27, 400, + 377, 30, 81, 493, 359, 505, 577, 507, 462, 459, + 510, 336, 336, 354, 355, 359, 381, 372, 641, 368, + 352, 353, 364, 373, 371, 679, 373, 372, 374, 683, + 373, 381, 378, 380, 435, 421, 659, 691, 381, 371, + 373, 373, 397, 398, 371, 377, 388, 380, 389, 390, + 394, 375, 373, 373, 532, 533, 381, 372, 372, 380, + 380, 511, 375, 378, 378, 378, 372, 372, 381, 378, + 377, 372, 378, 378, 372, 565, 453, 378, 372, 456, + 378, 383, 378, 385, 378, 381, 472, 336, 474, 536, + 537, 538, 539, 378, 378, 371, 381, 381, 598, 376, + 378, 378, 556, 381, 505, 378, 507, 378, 381, 510, + 381, 460, 419, 420, 397, 398, 399, 459, 350, 351, + 462, 356, 357, 524, 695, 386, 387, 388, 378, 379, + 373, 438, 378, 379, 520, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 336, 453, 375, 602, 456, + 650, 534, 535, 375, 380, 645, 540, 541, 336, 336, + 373, 380, 336, 381, 372, 371, 393, 392, 391, 511, + 358, 360, 374, 336, 336, 371, 381, 381, 371, 371, + 381, 567, 379, 373, 371, 571, 371, 371, 589, 590, + 376, 336, 336, 372, 374, 336, 696, 598, 374, 335, + 371, 371, 336, 558, 372, 378, 375, 374, 372, 381, + 376, 25, 372, 542, 556, 705, 375, 375, 544, 380, + 376, 543, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 381, 628, 546, 666, 545, 368, 364, 547, 650, + 368, 458, 329, 557, 633, 641, 636, 336, 678, 691, + 602, 692, 362, 636, 503, 659, 503, 503, 351, 668, + -1, 672, -1, 659, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 673, -1, 666, + -1, -1, -1, -1, -1, 696, -1, -1, -1, 641, + -1, -1, -1, -1, 690, -1, 335, -1, -1, -1, + -1, -1, -1, -1, -1, 664, -1, 659, -1, -1, + -1, -1, -1, -1, -1, 335, -1, -1, -1, -1, + -1, 335, -1, 343, -1, -1, -1, -1, -1, 343, + -1, 351, 351, 351, -1, -1, -1, 351, 358, -1, + -1, -1, -1, -1, 364, -1, -1, -1, 368, 666, + 364, -1, -1, -1, 368, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 388, -1, + -1, -1, 392, -1, 388, -1, -1, -1, 392, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 459, + 460, -1, 462, -1, -1, 459, 460, -1, 462, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 493, -1, -1, -1, -1, -1, 493, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 511, -1, -1, -1, -1, -1, 511, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 556, -1, -1, -1, + -1, -1, 556, -1, -1, 565, -1, -1, -1, -1, + -1, 565, -1, -1, -1, -1, -1, 577, -1, -1, + -1, -1, -1, 577, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 602, -1, -1, -1, -1, -1, 602, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 636, -1, -1, -1, + -1, 641, 636, -1, -1, 645, -1, 641, -1, -1, + -1, 645, -1, -1, -1, -1, -1, -1, -1, 659, + -1, -1, -1, -1, 664, 659, -1, -1, -1, -1, + 664, -1, -1, -1, -1, -1, -1, -1, -1, 679, + -1, -1, -1, 683, -1, 679, -1, -1, -1, 683, + -1, 691, -1, -1, -1, 695, -1, 691, -1, -1, + -1, 695, -1, -1, -1, 705, -1, -1, -1, 0, + -1, 705, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 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, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 69, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 113, 114, 115, 116, 117, 118, 119, 120, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, @@ -2248,123 +2407,58 @@ static const yytype_int16 yytable[] = 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 521, 0, 402, 318, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 0, 0, 415, 416, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 417, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 419, 420, 421, 422, 3, 4, - 5, 6, 7, 0, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 0, 0, 318 -}; - -static const yytype_int16 yycheck[] = -{ - 0, 0, 0, 331, 339, 24, 0, 26, 27, 396, - 373, 30, 81, 489, 355, 501, 573, 503, 458, 455, - 506, 332, 332, 350, 351, 355, 377, 368, 637, 364, - 348, 349, 360, 369, 367, 675, 369, 368, 370, 679, - 369, 377, 374, 376, 431, 417, 655, 687, 377, 367, - 369, 369, 393, 394, 367, 373, 384, 376, 385, 386, - 390, 371, 369, 369, 528, 529, 377, 368, 368, 376, - 376, 507, 371, 374, 374, 374, 368, 368, 377, 374, - 373, 368, 374, 374, 368, 561, 449, 374, 368, 452, - 374, 379, 374, 381, 374, 377, 468, 332, 470, 532, - 533, 534, 535, 374, 374, 367, 377, 377, 594, 372, - 374, 374, 552, 377, 501, 374, 503, 374, 377, 506, - 377, 456, 415, 416, 393, 394, 395, 455, 346, 347, - 458, 352, 353, 520, 691, 382, 383, 384, 374, 375, - 369, 434, 374, 375, 516, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 332, 449, 371, 598, 452, - 646, 530, 531, 371, 376, 641, 536, 537, 332, 332, - 369, 376, 332, 377, 368, 367, 389, 388, 387, 507, - 354, 356, 370, 332, 332, 367, 377, 377, 367, 367, - 377, 563, 375, 369, 367, 567, 367, 367, 585, 586, - 372, 332, 332, 368, 370, 332, 692, 594, 370, 331, - 367, 367, 332, 554, 368, 374, 371, 370, 368, 377, - 372, 25, 368, 538, 552, 701, 371, 371, 540, 376, - 372, 539, 525, 526, 527, 528, 529, 530, 531, 532, - 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, - 543, 377, 624, 542, 662, 541, 364, 360, 543, 646, - 364, 454, 325, 332, 629, 637, 632, 674, 687, 358, - 598, 688, 553, 632, 499, 655, 499, 499, 664, 347, - -1, 668, -1, 655, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 669, -1, 662, - -1, -1, -1, -1, -1, 692, -1, -1, -1, 637, - -1, -1, 331, -1, 686, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 660, -1, 655, -1, -1, - -1, 331, -1, -1, -1, -1, -1, 331, -1, 339, - -1, -1, -1, -1, -1, 339, -1, 347, 347, 347, - -1, -1, -1, 347, 354, -1, -1, -1, -1, -1, - 360, -1, -1, -1, 364, -1, 360, -1, -1, 662, - 364, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 384, -1, -1, -1, 388, -1, - 384, -1, -1, -1, 388, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 455, 456, -1, 458, -1, - -1, 455, 456, -1, 458, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 489, - -1, -1, -1, -1, -1, 489, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 507, -1, -1, - -1, -1, -1, 507, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, -1, -1, 337, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 552, -1, -1, -1, -1, -1, 552, -1, - -1, 561, -1, -1, -1, -1, -1, 561, -1, -1, - -1, -1, -1, 573, -1, -1, -1, -1, -1, 573, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 598, -1, - -1, -1, -1, -1, 598, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 632, -1, -1, -1, -1, 637, 632, -1, - -1, 641, -1, 637, -1, -1, -1, 641, -1, -1, - -1, -1, -1, -1, -1, 655, -1, -1, -1, -1, - 660, 655, -1, -1, -1, -1, 660, -1, -1, -1, - -1, -1, -1, -1, -1, 675, -1, -1, -1, 679, - -1, 675, -1, -1, -1, 679, -1, 687, -1, -1, - -1, 691, -1, 687, -1, -1, -1, 691, -1, -1, - -1, 701, -1, -1, -1, 0, -1, 701, 3, 4, + 381, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 395, 396, 397, 398, 399, 400, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, -1, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, -1, -1, 352, + 353, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 371, -1, + 373, -1, 375, 376, -1, -1, -1, -1, 381, 382, + 383, 384, 385, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 395, 396, 397, 398, 399, 400, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 33, 34, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, @@ -2394,53 +2488,14 @@ static const yytype_int16 yycheck[] = 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, -1, -1, 333, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 377, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 391, 392, 393, 394, - 395, 396, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, -1, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, -1, -1, 348, 349, -1, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, -1, -1, 352, 353, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 367, -1, 369, -1, - 371, 372, -1, -1, -1, -1, 377, 378, 379, 380, - 381, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 391, 392, 393, 394, 395, 396, 3, 4, 5, 6, + -1, -1, -1, -1, -1, -1, 371, -1, 373, -1, + 375, 376, -1, -1, -1, -1, 381, 382, 383, 384, + 385, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 395, 396, 397, 398, 399, 400, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, @@ -2474,52 +2529,13 @@ static const yytype_int16 yycheck[] = 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, - -1, 348, 349, -1, -1, -1, -1, -1, -1, -1, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, -1, -1, 352, 353, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 367, -1, 369, -1, 371, 372, -1, -1, -1, -1, - 377, 378, 379, 380, 381, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 391, 392, 393, 394, 395, 396, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, -1, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, - 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, -1, -1, 348, 349, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 367, -1, 369, -1, 371, -1, - -1, -1, -1, -1, 377, 378, 379, 380, 381, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 391, 392, - 393, 394, 395, 396, 3, 4, 5, 6, 7, 8, + -1, -1, -1, -1, 371, -1, 373, -1, 375, -1, + -1, -1, -1, -1, 381, 382, 383, 384, 385, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 395, 396, + 397, 398, 399, 400, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, @@ -2553,15 +2569,95 @@ static const yytype_int16 yycheck[] = 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, -1, -1, 348, - 349, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 367, -1, - 369, -1, 371, -1, -1, -1, -1, -1, 377, 378, - 379, 380, 381, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 391, 392, 393, 394, 395, 396, 3, 4, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, -1, -1, 352, 353, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 371, -1, 373, -1, 375, -1, -1, -1, + -1, -1, 381, 382, 383, 384, 385, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 395, 396, 397, 398, + 399, 400, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, -1, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, -1, + -1, 352, 353, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 371, -1, 373, -1, -1, -1, -1, -1, -1, -1, + 381, 382, 383, 384, 385, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 395, 396, 397, 398, 399, 400, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, -1, -1, 352, + 353, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 371, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 381, 382, + 383, 384, 385, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 395, 396, 397, 398, 399, 400, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 15, 16, 17, 18, 19, 20, 21, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, @@ -2592,52 +2688,13 @@ static const yytype_int16 yycheck[] = 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, -1, -1, 348, 349, -1, -1, -1, -1, -1, + -1, -1, 337, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 367, -1, 369, -1, -1, -1, -1, -1, - -1, -1, 377, 378, 379, 380, 381, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 391, 392, 393, 394, - 395, 396, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - -1, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, -1, -1, 348, 349, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 367, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 377, 378, 379, 380, - 381, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 391, 392, 393, 394, 395, 396, 3, 4, 5, 6, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 381, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 395, 396, 397, 398, 399, 400, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, 34, 35, 36, @@ -2670,53 +2727,14 @@ static const yytype_int16 yycheck[] = 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, -1, -1, 333, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 377, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 391, 392, 393, 394, 395, 396, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, -1, 332, - 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, -1, -1, 348, 349, -1, -1, -1, + 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, -1, -1, 352, 353, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 367, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 378, 379, 380, 381, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 391, 392, - 393, 394, 395, 3, 4, 5, 6, 7, 8, 9, + -1, -1, -1, -1, 371, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 382, 383, 384, 385, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 395, 396, + 397, 398, 399, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, 34, 35, 36, 37, 38, 39, @@ -2749,179 +2767,65 @@ static const yytype_int16 yycheck[] = 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, -1, 332, 333, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 377, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 391, 392, 393, 394, 395, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, - 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, - 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, - 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, - 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, -1, -1, 333, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 372, -1, -1, -1, -1, + 330, 331, 332, 333, 334, -1, 336, 337, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 391, 392, 393, 394, 395, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, -1, -1, 333, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 372, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 391, 392, 393, - 394, 395, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - -1, -1, 333, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 372, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 381, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 395, 396, 397, 398, 399, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 391, 392, 393, 394, 395, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, -1, -1, 333, -1, -1, -1, -1, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, -1, -1, 337, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, - 6, 7, 8, 9, -1, 11, 12, 13, 14, 15, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 376, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 395, 396, 397, 398, 399, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, -1, -1, -1, - -1, -1, -1, 391, 392, 393, 394, 395, 34, 35, + -1, -1, -1, -1, -1, -1, -1, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 82, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 93, 94, 95, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, @@ -2942,24 +2846,26 @@ static const yytype_int16 yycheck[] = 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, -1, 332, 333, 334, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - -1, -1, 348, 349, -1, -1, -1, -1, -1, -1, + 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, + -1, 337, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 367, -1, -1, -1, 371, 372, -1, -1, -1, - -1, -1, 378, 379, 380, 381, 5, 6, 7, 8, - 9, -1, 11, 12, 13, 14, 15, 16, 17, 18, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 376, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 395, + 396, 397, 398, 399, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 34, 35, 36, 37, 38, + -1, -1, -1, -1, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 82, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 93, 94, 95, 96, 97, 98, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 126, 127, 128, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, @@ -2980,24 +2886,26 @@ static const yytype_int16 yycheck[] = 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, -1, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, -1, -1, 348, - 349, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 367, -1, - -1, 370, -1, -1, -1, -1, -1, -1, -1, 378, - 379, 380, 381, 5, 6, 7, 8, 9, -1, 11, + 329, 330, 331, 332, 333, 334, -1, -1, 337, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 376, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 395, 396, 397, 398, + 399, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 34, 35, 36, 37, 38, 39, 40, 41, + -1, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 82, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 126, 127, 128, 129, 130, 131, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, @@ -3017,12 +2925,49 @@ static const yytype_int16 yycheck[] = 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, -1, - 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, 345, -1, -1, 348, 349, -1, -1, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, -1, -1, 337, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, + 6, 7, 8, 9, -1, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, -1, -1, -1, -1, + -1, -1, -1, 395, 396, 397, 398, 399, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 82, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, -1, -1, 352, 353, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 367, -1, -1, -1, 371, - -1, -1, -1, -1, -1, -1, 378, 379, 380, 381, + -1, -1, -1, -1, -1, 371, -1, -1, -1, 375, + 376, -1, -1, -1, -1, -1, 382, 383, 384, 385, 5, 6, 7, 8, 9, -1, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 34, @@ -3031,11 +2976,11 @@ static const yytype_int16 yycheck[] = 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 115, 116, 117, 118, 119, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, @@ -3055,50 +3000,127 @@ static const yytype_int16 yycheck[] = 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, -1, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, -1, -1, 348, 349, -1, -1, -1, -1, -1, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, -1, -1, 352, 353, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 367, -1, -1, 370, -1, -1, -1, -1, - -1, -1, -1, 378, 379, 380, 381, 5, 6, 7, - 8, 9, -1, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 82, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, -1, 332, 333, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, 345, -1, -1, - 348, 349, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 367, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 377, - 378, 379, 380, 381, 5, 6, 7, 8, 9, -1, + -1, -1, -1, -1, -1, -1, 371, -1, -1, 374, + -1, -1, -1, -1, -1, -1, -1, 382, 383, 384, + 385, 5, 6, 7, 8, 9, -1, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, -1, 352, 353, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 371, -1, -1, + -1, 375, -1, -1, -1, -1, -1, -1, 382, 383, + 384, 385, 5, 6, 7, 8, 9, -1, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, -1, -1, 352, + 353, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 371, -1, + -1, 374, -1, -1, -1, -1, -1, -1, -1, 382, + 383, 384, 385, 5, 6, 7, 8, 9, -1, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 82, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, -1, -1, + 352, 353, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 371, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 381, + 382, 383, 384, 385, 5, 6, 7, 8, 9, -1, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 34, 35, 36, 37, 38, 39, 40, @@ -3107,10 +3129,10 @@ static const yytype_int16 yycheck[] = 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 93, 94, 95, 96, 97, 98, 99, 100, + -1, -1, -1, -1, -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 126, 127, 128, 129, 130, + 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, @@ -3131,82 +3153,83 @@ static const yytype_int16 yycheck[] = 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - -1, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, -1, -1, 348, 349, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 367, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 378, 379, 380, - 381, 5, 6, 7, 8, 9, -1, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, -1, 332, 333, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, -1, -1, 348, 349, -1, -1, -1, -1, + 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, -1, + -1, 352, 353, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 367, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 378, 379, 380, 381, 5, 6, - 7, 8, 9, -1, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, - 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, - 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, - 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, - 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, -1, -1, 333 + 371, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 382, 383, 384, 385, 5, 6, 7, 8, 9, + -1, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 82, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + -1, -1, 352, 353, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 371, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 382, 383, 384, 385, 5, 6, 7, 8, + 9, -1, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, -1, -1, 337 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -3244,108 +3267,108 @@ static const yytype_uint16 yystos[] = 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 333, 377, - 391, 392, 393, 394, 395, 396, 431, 432, 435, 436, - 437, 438, 442, 443, 444, 445, 446, 447, 450, 451, - 452, 453, 454, 456, 458, 459, 460, 500, 501, 502, - 367, 367, 332, 371, 459, 332, 377, 377, 503, 368, - 374, 439, 440, 441, 451, 456, 374, 377, 332, 332, - 377, 452, 456, 369, 457, 0, 501, 332, 455, 81, - 332, 448, 449, 371, 462, 456, 377, 457, 371, 479, - 440, 439, 441, 332, 332, 367, 376, 457, 371, 374, - 377, 434, 332, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 348, 349, 367, 370, 378, - 379, 380, 381, 401, 402, 403, 405, 406, 407, 408, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 337, 381, 395, 396, 397, 398, 399, 400, + 435, 436, 439, 440, 441, 442, 446, 447, 448, 449, + 450, 451, 454, 455, 456, 457, 458, 460, 462, 463, + 464, 504, 505, 506, 371, 371, 336, 375, 463, 336, + 381, 381, 507, 372, 378, 443, 444, 445, 455, 460, + 378, 381, 336, 336, 381, 456, 460, 373, 461, 0, + 505, 336, 459, 81, 336, 452, 453, 375, 466, 460, + 381, 461, 375, 483, 444, 443, 445, 336, 336, 371, + 380, 461, 375, 378, 381, 438, 336, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 352, + 353, 371, 374, 382, 383, 384, 385, 405, 406, 407, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 454, 456, 369, - 368, 374, 376, 368, 374, 461, 451, 456, 463, 464, - 377, 377, 22, 23, 24, 26, 27, 28, 29, 30, - 31, 32, 331, 369, 371, 372, 377, 412, 425, 427, - 429, 431, 435, 454, 456, 469, 470, 471, 472, 480, - 481, 482, 483, 486, 487, 490, 491, 492, 499, 504, - 457, 376, 457, 371, 427, 467, 376, 433, 332, 374, - 377, 412, 412, 429, 348, 349, 369, 373, 368, 368, - 374, 330, 427, 367, 412, 382, 383, 384, 379, 381, - 346, 347, 350, 351, 385, 386, 352, 353, 389, 388, - 387, 354, 356, 355, 390, 370, 370, 425, 332, 425, - 430, 449, 463, 456, 332, 465, 466, 372, 464, 377, - 377, 494, 367, 367, 377, 377, 429, 367, 429, 375, - 367, 369, 372, 473, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 376, 428, 374, 377, 372, 470, - 483, 487, 492, 467, 376, 467, 468, 467, 463, 332, - 368, 404, 429, 332, 427, 412, 412, 412, 414, 414, - 415, 415, 416, 416, 416, 416, 417, 417, 418, 419, - 420, 421, 422, 423, 426, 370, 372, 465, 457, 374, - 377, 470, 495, 429, 377, 429, 375, 493, 332, 505, - 506, 480, 427, 427, 467, 372, 374, 372, 370, 429, - 377, 466, 331, 469, 481, 496, 368, 368, 429, 444, - 451, 485, 367, 370, 374, 474, 372, 467, 375, 367, - 485, 497, 498, 476, 477, 478, 484, 488, 332, 368, - 430, 370, 506, 372, 427, 429, 377, 368, 25, 472, - 471, 371, 376, 471, 475, 479, 368, 368, 429, 475, - 476, 480, 489, 467, 377, 372 + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 458, 460, 373, 372, 378, 380, 372, 378, 465, + 455, 460, 467, 468, 381, 381, 22, 23, 24, 26, + 27, 28, 29, 30, 31, 32, 335, 373, 375, 376, + 381, 416, 429, 431, 433, 435, 439, 458, 460, 473, + 474, 475, 476, 484, 485, 486, 487, 490, 491, 494, + 495, 496, 503, 508, 461, 380, 461, 375, 431, 471, + 380, 437, 336, 378, 381, 416, 416, 433, 352, 353, + 373, 377, 372, 372, 378, 334, 431, 371, 416, 386, + 387, 388, 383, 385, 350, 351, 354, 355, 389, 390, + 356, 357, 393, 392, 391, 358, 360, 359, 394, 374, + 374, 429, 336, 429, 434, 453, 467, 460, 336, 469, + 470, 376, 468, 381, 381, 498, 371, 371, 381, 381, + 433, 371, 433, 379, 371, 373, 376, 477, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 380, 432, + 378, 381, 376, 474, 487, 491, 496, 471, 380, 471, + 472, 471, 467, 336, 372, 408, 433, 336, 431, 416, + 416, 416, 418, 418, 419, 419, 420, 420, 420, 420, + 421, 421, 422, 423, 424, 425, 426, 427, 430, 374, + 376, 469, 461, 378, 381, 474, 499, 433, 381, 433, + 379, 497, 336, 509, 510, 484, 431, 431, 471, 376, + 378, 376, 374, 433, 381, 470, 335, 473, 485, 500, + 372, 372, 433, 448, 455, 489, 371, 374, 378, 478, + 376, 471, 379, 371, 489, 501, 502, 480, 481, 482, + 488, 492, 336, 372, 434, 374, 510, 376, 431, 433, + 381, 372, 25, 476, 475, 375, 380, 475, 479, 483, + 372, 372, 433, 479, 480, 484, 493, 471, 381, 376 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { - 0, 400, 401, 402, 402, 402, 402, 402, 402, 402, - 402, 402, 402, 402, 402, 402, 402, 403, 403, 403, - 403, 403, 403, 404, 405, 406, 407, 407, 408, 408, - 409, 409, 410, 411, 411, 411, 412, 412, 412, 412, - 413, 413, 413, 413, 414, 414, 414, 414, 415, 415, - 415, 416, 416, 416, 417, 417, 417, 417, 417, 418, - 418, 418, 419, 419, 420, 420, 421, 421, 422, 422, - 423, 423, 424, 424, 425, 426, 425, 427, 427, 428, - 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, - 429, 429, 430, 431, 431, 431, 431, 431, 431, 431, - 431, 431, 433, 432, 434, 434, 435, 436, 436, 437, - 437, 438, 439, 439, 440, 440, 440, 440, 441, 442, - 442, 442, 442, 442, 443, 443, 443, 443, 443, 444, - 444, 445, 446, 446, 446, 446, 446, 446, 446, 446, - 447, 448, 448, 449, 449, 449, 450, 451, 451, 452, - 452, 452, 452, 452, 452, 452, 453, 453, 453, 453, - 453, 453, 453, 453, 453, 453, 453, 453, 453, 453, - 453, 453, 453, 453, 453, 453, 453, 453, 453, 453, - 454, 455, 455, 456, 456, 457, 457, 457, 457, 458, - 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, - 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, - 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, - 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, - 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, - 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, - 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, - 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, - 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, - 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, - 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, - 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, - 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, - 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, - 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, - 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, - 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, - 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, - 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, - 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, - 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, - 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, - 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, - 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, - 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, - 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, - 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, - 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, - 458, 458, 458, 458, 459, 459, 459, 461, 460, 462, - 460, 463, 463, 464, 464, 465, 465, 466, 466, 467, - 467, 467, 468, 468, 469, 470, 470, 471, 471, 471, - 471, 471, 471, 471, 472, 473, 474, 472, 475, 475, - 477, 476, 478, 476, 479, 479, 480, 480, 481, 481, - 482, 482, 483, 484, 484, 485, 485, 486, 486, 488, - 487, 489, 489, 490, 490, 491, 491, 493, 492, 494, - 492, 495, 492, 496, 496, 497, 497, 498, 498, 499, - 499, 499, 499, 499, 500, 500, 501, 501, 501, 503, - 502, 504, 505, 505, 506, 506 + 0, 404, 405, 406, 406, 406, 406, 406, 406, 406, + 406, 406, 406, 406, 406, 406, 406, 407, 407, 407, + 407, 407, 407, 408, 409, 410, 411, 411, 412, 412, + 413, 413, 414, 415, 415, 415, 416, 416, 416, 416, + 417, 417, 417, 417, 418, 418, 418, 418, 419, 419, + 419, 420, 420, 420, 421, 421, 421, 421, 421, 422, + 422, 422, 423, 423, 424, 424, 425, 425, 426, 426, + 427, 427, 428, 428, 429, 430, 429, 431, 431, 432, + 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, + 433, 433, 434, 435, 435, 435, 435, 435, 435, 435, + 435, 435, 437, 436, 438, 438, 439, 440, 440, 441, + 441, 442, 443, 443, 444, 444, 444, 444, 445, 446, + 446, 446, 446, 446, 447, 447, 447, 447, 447, 448, + 448, 449, 450, 450, 450, 450, 450, 450, 450, 450, + 451, 452, 452, 453, 453, 453, 454, 455, 455, 456, + 456, 456, 456, 456, 456, 456, 457, 457, 457, 457, + 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, + 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, + 457, 457, 457, 458, 459, 459, 460, 460, 461, 461, + 461, 461, 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, 463, 463, + 463, 465, 464, 466, 464, 467, 467, 468, 468, 469, + 469, 470, 470, 471, 471, 471, 472, 472, 473, 474, + 474, 475, 475, 475, 475, 475, 475, 475, 476, 477, + 478, 476, 479, 479, 481, 480, 482, 480, 483, 483, + 484, 484, 485, 485, 486, 486, 487, 488, 488, 489, + 489, 490, 490, 492, 491, 493, 493, 494, 494, 495, + 495, 497, 496, 498, 496, 499, 496, 500, 500, 501, + 501, 502, 502, 503, 503, 503, 503, 503, 504, 504, + 505, 505, 505, 507, 506, 508, 509, 509, 510, 510 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -3368,8 +3391,9 @@ static const yytype_uint8 yyr2[] = 4, 1, 3, 1, 3, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, - 1, 1, 3, 1, 2, 2, 3, 3, 4, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 4, 1, 1, 3, 1, 2, 2, 3, + 3, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -3398,16 +3422,15 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, - 3, 4, 1, 3, 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, 2, 5, 3, 1, 1, 4, 1, 2, 0, - 8, 0, 1, 3, 2, 1, 2, 0, 6, 0, - 8, 0, 7, 1, 1, 1, 0, 2, 3, 2, - 2, 2, 3, 2, 1, 2, 1, 1, 1, 0, - 3, 5, 1, 3, 1, 4 + 1, 0, 6, 0, 5, 1, 2, 3, 4, 1, + 3, 1, 2, 1, 3, 4, 1, 3, 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, 2, 5, 3, 1, 1, + 4, 1, 2, 0, 8, 0, 1, 3, 2, 1, + 2, 0, 6, 0, 8, 0, 7, 1, 1, 1, + 0, 2, 3, 2, 2, 2, 3, 2, 1, 2, + 1, 1, 1, 0, 3, 5, 1, 3, 1, 4 }; @@ -4090,250 +4113,250 @@ yyreduce: switch (yyn) { case 2: -#line 293 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 294 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string); } -#line 4098 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4121 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 3: -#line 299 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 300 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4106 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4129 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 4: -#line 302 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 303 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal"); (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true); } -#line 4115 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4138 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 5: -#line 306 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 307 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal"); (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true); } -#line 4124 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4147 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 6: -#line 310 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 311 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true); } -#line 4132 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4155 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 7: -#line 313 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 314 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned literal"); (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true); } -#line 4141 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4164 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 8: -#line 317 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 318 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer literal"); (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i64, (yyvsp[0].lex).loc, true); } -#line 4150 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4173 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 9: -#line 321 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 322 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer literal"); (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u64, (yyvsp[0].lex).loc, true); } -#line 4159 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4182 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 10: -#line 325 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 326 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit integer literal"); (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((short)(yyvsp[0].lex).i, (yyvsp[0].lex).loc, true); } -#line 4168 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4191 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 11: -#line 329 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 330 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer literal"); (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((unsigned short)(yyvsp[0].lex).u, (yyvsp[0].lex).loc, true); } -#line 4177 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4200 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 12: -#line 333 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 334 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true); } -#line 4185 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4208 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 13: -#line 336 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 337 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double literal"); (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtDouble, (yyvsp[0].lex).loc, true); } -#line 4194 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4217 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 14: -#line 340 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 341 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float literal"); (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat16, (yyvsp[0].lex).loc, true); } -#line 4203 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4226 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 15: -#line 344 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 345 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true); } -#line 4211 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4234 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 16: -#line 347 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 348 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode); if ((yyval.interm.intermTypedNode)->getAsConstantUnion()) (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression(); } -#line 4221 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4244 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 17: -#line 355 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 356 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4229 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4252 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 18: -#line 358 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 359 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode)); } -#line 4237 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4260 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 19: -#line 361 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 362 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4245 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4268 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 20: -#line 364 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 365 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string); } -#line 4253 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4276 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 21: -#line 367 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 368 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode)); parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "++", (yyvsp[-1].interm.intermTypedNode)); (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "++", EOpPostIncrement, (yyvsp[-1].interm.intermTypedNode)); } -#line 4263 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4286 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 22: -#line 372 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 373 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode)); parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "--", (yyvsp[-1].interm.intermTypedNode)); (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "--", EOpPostDecrement, (yyvsp[-1].interm.intermTypedNode)); } -#line 4273 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4296 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 23: -#line 380 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 381 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.integerCheck((yyvsp[0].interm.intermTypedNode), "[]"); (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4282 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4305 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 24: -#line 387 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 388 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[0].interm).loc, (yyvsp[0].interm).function, (yyvsp[0].interm).intermNode); delete (yyvsp[0].interm).function; } -#line 4291 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4314 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 25: -#line 394 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 395 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[0].interm); } -#line 4299 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4322 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 26: -#line 400 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 401 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[-1].interm); (yyval.interm).loc = (yyvsp[0].lex).loc; } -#line 4308 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4331 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 27: -#line 404 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 405 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[-1].interm); (yyval.interm).loc = (yyvsp[0].lex).loc; } -#line 4317 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4340 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 28: -#line 411 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 412 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[-1].interm); } -#line 4325 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4348 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 29: -#line 414 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 415 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[0].interm); } -#line 4333 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4356 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 30: -#line 420 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 421 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { TParameter param = { 0, new TType }; param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType()); @@ -4341,11 +4364,11 @@ yyreduce: (yyval.interm).function = (yyvsp[-1].interm).function; (yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode); } -#line 4345 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4368 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 31: -#line 427 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 428 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { TParameter param = { 0, new TType }; param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType()); @@ -4353,29 +4376,29 @@ yyreduce: (yyval.interm).function = (yyvsp[-2].interm).function; (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc); } -#line 4357 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4380 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 32: -#line 437 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 438 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[-1].interm); } -#line 4365 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4388 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 33: -#line 445 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 446 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // Constructor (yyval.interm).intermNode = 0; (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type)); } -#line 4375 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4398 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 34: -#line 450 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 451 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // // Should be a method or subroutine call, but we haven't recognized the arguments yet. @@ -4403,50 +4426,50 @@ yyreduce: (yyval.interm).function = new TFunction(&empty, TType(EbtVoid), EOpNull); } } -#line 4407 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4430 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 35: -#line 477 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 478 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // Constructor (yyval.interm).intermNode = 0; (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type)); } -#line 4417 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4440 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 36: -#line 485 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 486 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.variableCheck((yyvsp[0].interm.intermTypedNode)); (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); if (TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode()) parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), ""); } -#line 4428 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4451 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 37: -#line 491 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 492 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "++", (yyvsp[0].interm.intermTypedNode)); (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "++", EOpPreIncrement, (yyvsp[0].interm.intermTypedNode)); } -#line 4437 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4460 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 38: -#line 495 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 496 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "--", (yyvsp[0].interm.intermTypedNode)); (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "--", EOpPreDecrement, (yyvsp[0].interm.intermTypedNode)); } -#line 4446 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4469 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 39: -#line 499 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 500 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if ((yyvsp[-1].interm).op != EOpNull) { char errorOp[2] = {0, 0}; @@ -4463,179 +4486,179 @@ yyreduce: (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression(); } } -#line 4467 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4490 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 40: -#line 519 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 520 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; } -#line 4473 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4496 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 41: -#line 520 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 521 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; } -#line 4479 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4502 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 42: -#line 521 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 522 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; } -#line 4485 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4508 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 43: -#line 522 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 523 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot; parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise not"); } -#line 4492 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4515 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 44: -#line 528 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 529 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4498 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4521 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 45: -#line 529 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 530 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "*", EOpMul, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 4508 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4531 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 46: -#line 534 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 535 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "/", EOpDiv, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 4518 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4541 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 47: -#line 539 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 540 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "%"); (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "%", EOpMod, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 4529 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4552 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 48: -#line 548 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 549 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4535 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4558 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 49: -#line 549 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 550 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "+", EOpAdd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 4545 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4568 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 50: -#line 554 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 555 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "-", EOpSub, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 4555 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4578 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 51: -#line 562 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 563 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4561 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4584 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 52: -#line 563 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 564 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift left"); (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<<", EOpLeftShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 4572 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4595 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 53: -#line 569 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 570 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift right"); (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">>", EOpRightShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 4583 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4606 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 54: -#line 578 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 579 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4589 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4612 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 55: -#line 579 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 580 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<", EOpLessThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 4599 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4622 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 56: -#line 584 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 585 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">", EOpGreaterThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 4609 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4632 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 57: -#line 589 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 590 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<=", EOpLessThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 4619 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4642 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 58: -#line 594 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 595 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 4629 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4652 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 59: -#line 602 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 603 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4635 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4658 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 60: -#line 603 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 604 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison"); parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=="); @@ -4644,11 +4667,11 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 4648 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4671 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 61: -#line 611 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 612 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison"); parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!="); @@ -4657,124 +4680,124 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 4661 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4684 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 62: -#line 622 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 623 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4667 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4690 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 63: -#line 623 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 624 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise and"); (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&", EOpAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 4678 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4701 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 64: -#line 632 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 633 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4684 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4707 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 65: -#line 633 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 634 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise exclusive or"); (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^", EOpExclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 4695 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4718 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 66: -#line 642 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 643 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4701 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4724 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 67: -#line 643 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 644 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise inclusive or"); (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "|", EOpInclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 4712 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4735 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 68: -#line 652 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 653 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4718 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4741 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 69: -#line 653 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 654 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&&", EOpLogicalAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 4728 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4751 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 70: -#line 661 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 662 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4734 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4757 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 71: -#line 662 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 663 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^^", EOpLogicalXor, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 4744 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4767 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 72: -#line 670 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 671 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4750 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4773 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 73: -#line 671 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 672 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "||", EOpLogicalOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 4760 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4783 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 74: -#line 679 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 680 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4766 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4789 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 75: -#line 680 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 681 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { ++parseContext.controlFlowNestingLevel; } -#line 4774 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4797 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 76: -#line 683 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 684 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { --parseContext.controlFlowNestingLevel; parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-5].interm.intermTypedNode)); @@ -4787,17 +4810,17 @@ yyreduce: (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } } -#line 4791 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4814 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 77: -#line 698 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 699 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4797 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4820 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 78: -#line 699 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 700 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.arrayObjectCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array assignment"); parseContext.opaqueCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "="); @@ -4811,119 +4834,119 @@ yyreduce: (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } } -#line 4815 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4838 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 79: -#line 715 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 716 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAssign; } -#line 4824 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4847 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 80: -#line 719 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 720 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpMulAssign; } -#line 4833 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4856 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 81: -#line 723 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 724 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpDivAssign; } -#line 4842 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4865 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 82: -#line 727 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 728 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "%="); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpModAssign; } -#line 4852 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4875 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 83: -#line 732 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 733 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAddAssign; } -#line 4861 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4884 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 84: -#line 736 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 737 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpSubAssign; } -#line 4870 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4893 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 85: -#line 740 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 741 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign"); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign; } -#line 4879 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4902 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 86: -#line 744 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 745 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign"); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign; } -#line 4888 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4911 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 87: -#line 748 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 749 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign"); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign; } -#line 4897 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4920 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 88: -#line 752 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 753 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign"); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign; } -#line 4906 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4929 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 89: -#line 756 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 757 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign"); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign; } -#line 4915 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4938 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 90: -#line 763 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 764 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4923 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4946 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 91: -#line 766 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 767 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.samplerConstructorLocationCheck((yyvsp[-1].lex).loc, ",", (yyvsp[0].interm.intermTypedNode)); (yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc); @@ -4932,40 +4955,40 @@ yyreduce: (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } } -#line 4936 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4959 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 92: -#line 777 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 778 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), ""); (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4945 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4968 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 93: -#line 784 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 785 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */); (yyval.interm.intermNode) = 0; // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature } -#line 4955 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4978 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 94: -#line 789 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 790 "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 4965 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4988 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 95: -#line 794 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 795 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.profileRequires((yyvsp[-3].lex).loc, ENoProfile, 130, 0, "precision statement"); @@ -4974,75 +4997,75 @@ yyreduce: parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision); (yyval.interm.intermNode) = 0; } -#line 4978 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5001 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 96: -#line 802 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 803 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList); (yyval.interm.intermNode) = 0; } -#line 4987 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5010 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 97: -#line 806 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 807 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string); (yyval.interm.intermNode) = 0; } -#line 4996 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5019 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 98: -#line 810 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 811 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes); (yyval.interm.intermNode) = 0; } -#line 5005 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5028 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 99: -#line 814 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 815 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier); parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type)); (yyval.interm.intermNode) = 0; } -#line 5015 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5038 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 100: -#line 819 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 820 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.checkNoShaderLayouts((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).shaderQualifiers); parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].lex).string); (yyval.interm.intermNode) = 0; } -#line 5025 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5048 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 101: -#line 824 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 825 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers); (yyvsp[-1].interm.identifierList)->push_back((yyvsp[-2].lex).string); parseContext.addQualifierToExisting((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier, *(yyvsp[-1].interm.identifierList)); (yyval.interm.intermNode) = 0; } -#line 5036 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5059 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 102: -#line 833 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 834 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); } -#line 5042 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5065 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 103: -#line 833 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 834 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { --parseContext.structNestingLevel; parseContext.blockName = (yyvsp[-4].lex).string; @@ -5052,54 +5075,54 @@ yyreduce: (yyval.interm).loc = (yyvsp[-5].interm.type).loc; (yyval.interm).typeList = (yyvsp[-1].interm.typeList); } -#line 5056 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5079 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 104: -#line 844 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 845 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.identifierList) = new TIdentifierList; (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string); } -#line 5065 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5088 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 105: -#line 848 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 849 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList); (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string); } -#line 5074 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5097 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 106: -#line 855 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 856 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).function = (yyvsp[-1].interm.function); (yyval.interm).loc = (yyvsp[0].lex).loc; } -#line 5083 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5106 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 107: -#line 862 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 863 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.function) = (yyvsp[0].interm.function); } -#line 5091 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5114 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 108: -#line 865 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 866 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.function) = (yyvsp[0].interm.function); } -#line 5099 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5122 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 109: -#line 872 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 873 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // Add the parameter (yyval.interm.function) = (yyvsp[-1].interm.function); @@ -5108,11 +5131,11 @@ yyreduce: else delete (yyvsp[0].interm).param.type; } -#line 5112 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5135 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 110: -#line 880 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 881 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // // Only first parameter of one-parameter functions can be void @@ -5130,11 +5153,11 @@ yyreduce: (yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param); } } -#line 5134 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5157 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 111: -#line 900 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 901 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if ((yyvsp[-2].interm.type).qualifier.storage != EvqGlobal && (yyvsp[-2].interm.type).qualifier.storage != EvqTemporary) { parseContext.error((yyvsp[-1].lex).loc, "no qualifiers allowed for function return", @@ -5154,11 +5177,11 @@ yyreduce: function = new TFunction((yyvsp[-1].lex).string, type); (yyval.interm.function) = function; } -#line 5158 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5181 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 112: -#line 923 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 924 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if ((yyvsp[-1].interm.type).arraySizes) { parseContext.profileRequires((yyvsp[-1].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); @@ -5174,11 +5197,11 @@ yyreduce: (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).param = param; } -#line 5178 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5201 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 113: -#line 938 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 939 "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"); @@ -5198,11 +5221,11 @@ yyreduce: (yyval.interm).loc = (yyvsp[-1].lex).loc; (yyval.interm).param = param; } -#line 5202 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5225 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 114: -#line 963 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 964 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[0].interm); if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone) @@ -5214,11 +5237,11 @@ yyreduce: parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type); } -#line 5218 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5241 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 115: -#line 974 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 975 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[0].interm); @@ -5226,11 +5249,11 @@ yyreduce: parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type); parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); } -#line 5230 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5253 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 116: -#line 984 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 985 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[0].interm); if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone) @@ -5241,11 +5264,11 @@ yyreduce: parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type); parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type); } -#line 5245 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5268 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 117: -#line 994 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 995 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[0].interm); @@ -5253,118 +5276,118 @@ yyreduce: parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type); parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); } -#line 5257 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5280 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 118: -#line 1004 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1005 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { TParameter param = { 0, new TType((yyvsp[0].interm.type)) }; (yyval.interm).param = param; if ((yyvsp[0].interm.type).arraySizes) parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes); } -#line 5268 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5291 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 119: -#line 1013 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1014 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[0].interm); } -#line 5276 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5299 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 120: -#line 1016 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1017 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[-2].interm); parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type); } -#line 5285 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5308 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 121: -#line 1020 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1021 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[-3].interm); parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes); } -#line 5294 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5317 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 122: -#line 1024 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1025 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).type = (yyvsp[-5].interm).type; TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-5].interm).type, (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode)); (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-5].interm).intermNode, initNode, (yyvsp[-1].lex).loc); } -#line 5304 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5327 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 123: -#line 1029 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1030 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).type = (yyvsp[-4].interm).type; TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-4].interm).type, 0, (yyvsp[0].interm.intermTypedNode)); (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-4].interm).intermNode, initNode, (yyvsp[-1].lex).loc); } -#line 5314 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5337 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 124: -#line 1037 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1038 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).type = (yyvsp[0].interm.type); (yyval.interm).intermNode = 0; parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type); } -#line 5324 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5347 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 125: -#line 1042 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1043 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).type = (yyvsp[-1].interm.type); (yyval.interm).intermNode = 0; parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type)); } -#line 5334 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5357 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 126: -#line 1047 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1048 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).type = (yyvsp[-2].interm.type); (yyval.interm).intermNode = 0; parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-2].interm.type), (yyvsp[0].interm).arraySizes); } -#line 5344 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5367 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 127: -#line 1052 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1053 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).type = (yyvsp[-4].interm.type); TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-4].interm.type), (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode)); (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc); } -#line 5354 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5377 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 128: -#line 1057 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1058 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).type = (yyvsp[-3].interm.type); TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode)); (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc); } -#line 5364 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5387 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 129: -#line 1066 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1067 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[0].interm.type); @@ -5376,11 +5399,11 @@ yyreduce: parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier); } -#line 5380 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5403 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 130: -#line 1077 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1078 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier); parseContext.globalQualifierTypeCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, (yyvsp[0].interm.type)); @@ -5405,22 +5428,22 @@ yyreduce: (parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn))) (yyval.interm.type).qualifier.smooth = true; } -#line 5409 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5432 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 131: -#line 1104 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1105 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "invariant"); parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.invariant = true; } -#line 5420 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5443 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 132: -#line 1113 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1114 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "smooth"); parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "smooth"); @@ -5428,11 +5451,11 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.smooth = true; } -#line 5432 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5455 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 133: -#line 1120 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1121 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "flat"); parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "flat"); @@ -5440,11 +5463,11 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.flat = true; } -#line 5444 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5467 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 134: -#line 1127 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1128 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "noperspective"); #ifdef NV_EXTENSIONS @@ -5456,11 +5479,11 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.nopersp = true; } -#line 5460 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5483 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 135: -#line 1138 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1139 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.globalCheck((yyvsp[0].lex).loc, "__explicitInterpAMD"); @@ -5470,11 +5493,11 @@ yyreduce: (yyval.interm.type).qualifier.explicitInterp = true; #endif } -#line 5474 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5497 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 136: -#line 1147 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1148 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef NV_EXTENSIONS parseContext.globalCheck((yyvsp[0].lex).loc, "pervertexNV"); @@ -5485,11 +5508,11 @@ yyreduce: (yyval.interm.type).qualifier.pervertexNV = true; #endif } -#line 5489 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5512 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 137: -#line 1157 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1158 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef NV_EXTENSIONS parseContext.globalCheck((yyvsp[0].lex).loc, "perprimitiveNV"); @@ -5498,11 +5521,11 @@ yyreduce: (yyval.interm.type).qualifier.perPrimitiveNV = true; #endif } -#line 5502 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5525 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 138: -#line 1165 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1166 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef NV_EXTENSIONS parseContext.globalCheck((yyvsp[0].lex).loc, "perviewNV"); @@ -5511,11 +5534,11 @@ yyreduce: (yyval.interm.type).qualifier.perViewNV = true; #endif } -#line 5515 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5538 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 139: -#line 1173 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1174 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef NV_EXTENSIONS parseContext.globalCheck((yyvsp[0].lex).loc, "taskNV"); @@ -5524,84 +5547,84 @@ yyreduce: (yyval.interm.type).qualifier.perTaskNV = true; #endif } -#line 5528 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5551 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 140: -#line 1184 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1185 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[-1].interm.type); } -#line 5536 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5559 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 141: -#line 1190 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1191 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 5544 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5567 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 142: -#line 1193 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1194 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[-2].interm.type); (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers); parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false); } -#line 5554 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5577 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 143: -#line 1200 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1201 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string); } -#line 5563 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5586 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 144: -#line 1204 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1205 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[-2].lex).loc); parseContext.setLayoutQualifier((yyvsp[-2].lex).loc, (yyval.interm.type), *(yyvsp[-2].lex).string, (yyvsp[0].interm.intermTypedNode)); } -#line 5572 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5595 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 145: -#line 1208 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1209 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // because "shared" is both an identifier and a keyword (yyval.interm.type).init((yyvsp[0].lex).loc); TString strShared("shared"); parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), strShared); } -#line 5582 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5605 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 146: -#line 1216 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1217 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise"); parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.noContraction = true; } -#line 5593 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5616 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 147: -#line 1225 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1226 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 5601 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5624 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 148: -#line 1228 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1229 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[-1].interm.type); if ((yyval.interm.type).basicType == EbtVoid) @@ -5610,80 +5633,80 @@ yyreduce: (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers); parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false); } -#line 5614 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5637 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 149: -#line 1239 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1240 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 5622 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5645 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 150: -#line 1242 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1243 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 5630 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5653 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 151: -#line 1245 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1246 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.checkPrecisionQualifier((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier.precision); (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 5639 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5662 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 152: -#line 1249 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1250 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // allow inheritance of storage qualifier from block declaration (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 5648 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5671 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 153: -#line 1253 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1254 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // allow inheritance of storage qualifier from block declaration (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 5657 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5680 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 154: -#line 1257 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1258 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // allow inheritance of storage qualifier from block declaration (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 5666 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5689 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 155: -#line 1261 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1262 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 5674 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5697 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 156: -#line 1267 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1268 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqConst; // will later turn into EvqConstReadOnly, if the initializer is not constant } -#line 5683 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5706 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 157: -#line 1271 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1272 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute"); parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute"); @@ -5696,11 +5719,11 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqVaryingIn; } -#line 5700 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5723 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 158: -#line 1283 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1284 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying"); parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying"); @@ -5715,43 +5738,43 @@ yyreduce: else (yyval.interm.type).qualifier.storage = EvqVaryingIn; } -#line 5719 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5742 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 159: -#line 1297 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1298 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "inout"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqInOut; } -#line 5729 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5752 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 160: -#line 1302 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1303 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "in"); (yyval.interm.type).init((yyvsp[0].lex).loc); // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later (yyval.interm.type).qualifier.storage = EvqIn; } -#line 5740 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5763 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 161: -#line 1308 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1309 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "out"); (yyval.interm.type).init((yyvsp[0].lex).loc); // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later (yyval.interm.type).qualifier.storage = EvqOut; } -#line 5751 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5774 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 162: -#line 1314 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1315 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 120, 0, "centroid"); parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "centroid"); @@ -5759,52 +5782,97 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.centroid = true; } -#line 5763 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5786 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 163: -#line 1321 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1322 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "patch"); parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.patch = true; } -#line 5774 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5797 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 164: -#line 1327 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1328 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "sample"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.sample = true; } -#line 5784 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5807 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 165: -#line 1332 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1333 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "uniform"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqUniform; } -#line 5794 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5817 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 166: -#line 1337 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1338 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "buffer"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqBuffer; } -#line 5804 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5827 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 167: -#line 1342 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1343 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { +#ifdef NV_EXTENSIONS + parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeNVX"); + parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectNVMask | EShLangClosestHitNVMask + | EShLangAnyHitNVMask), "hitAttributeNVX"); + parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_NVX_raytracing, "hitAttributeNVX"); + (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).qualifier.storage = EvqHitAttrNV; +#endif + } +#line 5842 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 168: +#line 1353 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { +#ifdef NV_EXTENSIONS + parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadNVX"); + parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenNVMask | EShLangClosestHitNVMask | + EShLangAnyHitNVMask | EShLangMissNVMask), "rayPayloadNVX"); + parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_NVX_raytracing, "rayPayloadNVX"); + (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).qualifier.storage = EvqPayloadNV; +#endif + } +#line 5857 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 169: +#line 1363 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { +#ifdef NV_EXTENSIONS + parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInNVX"); + parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitNVMask | + EShLangAnyHitNVMask | EShLangMissNVMask), "rayPayloadInNVX"); + parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_NVX_raytracing, "rayPayloadInNVX"); + (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).qualifier.storage = EvqPayloadInNV; +#endif + } +#line 5872 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 170: +#line 1373 "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"); @@ -5817,185 +5885,185 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqShared; } -#line 5821 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5889 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 168: -#line 1354 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 171: +#line 1385 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.coherent = true; } -#line 5830 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5898 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 169: -#line 1358 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 172: +#line 1389 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent"); (yyval.interm.type).qualifier.devicecoherent = true; } -#line 5840 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5908 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 170: -#line 1363 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 173: +#line 1394 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "queuefamilycoherent"); (yyval.interm.type).qualifier.queuefamilycoherent = true; } -#line 5850 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5918 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 171: -#line 1368 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 174: +#line 1399 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "workgroupcoherent"); (yyval.interm.type).qualifier.workgroupcoherent = true; } -#line 5860 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5928 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 172: -#line 1373 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 175: +#line 1404 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "subgroupcoherent"); (yyval.interm.type).qualifier.subgroupcoherent = true; } -#line 5870 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5938 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 173: -#line 1378 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 176: +#line 1409 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "nonprivate"); (yyval.interm.type).qualifier.nonprivate = true; } -#line 5880 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5948 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 174: -#line 1383 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 177: +#line 1414 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.volatil = true; } -#line 5889 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5957 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 175: -#line 1387 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 178: +#line 1418 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.restrict = true; } -#line 5898 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5966 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 176: -#line 1391 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 179: +#line 1422 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.readonly = true; } -#line 5907 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5975 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 177: -#line 1395 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 180: +#line 1426 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.writeonly = true; } -#line 5916 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5984 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 178: -#line 1399 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 181: +#line 1430 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.spvRemoved((yyvsp[0].lex).loc, "subroutine"); parseContext.globalCheck((yyvsp[0].lex).loc, "subroutine"); parseContext.unimplemented((yyvsp[0].lex).loc, "subroutine"); (yyval.interm.type).init((yyvsp[0].lex).loc); } -#line 5927 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5995 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 179: -#line 1405 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 182: +#line 1436 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.spvRemoved((yyvsp[-3].lex).loc, "subroutine"); parseContext.globalCheck((yyvsp[-3].lex).loc, "subroutine"); parseContext.unimplemented((yyvsp[-3].lex).loc, "subroutine"); (yyval.interm.type).init((yyvsp[-3].lex).loc); } -#line 5938 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6006 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 180: -#line 1414 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 183: +#line 1445 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.nonUniform = true; } -#line 5947 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6015 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 181: -#line 1421 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 184: +#line 1452 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // TODO } -#line 5955 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6023 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 182: -#line 1424 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 185: +#line 1455 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // TODO: 4.0 semantics: subroutines // 1) make sure each identifier is a type declared earlier with SUBROUTINE // 2) save all of the identifiers for future comparison with the declared function } -#line 5965 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6033 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 183: -#line 1432 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 186: +#line 1463 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[0].interm.type); (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type)); } -#line 5974 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6042 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 184: -#line 1436 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 187: +#line 1467 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.arrayOfArrayVersionCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes); (yyval.interm.type) = (yyvsp[-1].interm.type); (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type)); (yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes; } -#line 5985 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6053 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 185: -#line 1445 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 188: +#line 1476 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[-1].lex).loc; (yyval.interm).arraySizes = new TArraySizes; (yyval.interm).arraySizes->addInnerSize(); } -#line 5995 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6063 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 186: -#line 1450 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 189: +#line 1481 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[-2].lex).loc; (yyval.interm).arraySizes = new TArraySizes; @@ -6004,20 +6072,20 @@ yyreduce: parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size); (yyval.interm).arraySizes->addInnerSize(size); } -#line 6008 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6076 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 187: -#line 1458 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 190: +#line 1489 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[-2].interm); (yyval.interm).arraySizes->addInnerSize(); } -#line 6017 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6085 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 188: -#line 1462 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 191: +#line 1493 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[-3].interm); @@ -6025,1484 +6093,1495 @@ yyreduce: parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size); (yyval.interm).arraySizes->addInnerSize(size); } -#line 6029 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6097 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 189: -#line 1472 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 192: +#line 1503 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtVoid; } -#line 6038 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6106 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 190: -#line 1476 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 193: +#line 1507 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; } -#line 6047 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6115 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 191: -#line 1480 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 194: +#line 1511 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; } -#line 6057 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6125 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 192: -#line 1485 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 195: +#line 1516 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "float16_t", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; } -#line 6067 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6135 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 193: -#line 1490 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 196: +#line 1521 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; } -#line 6077 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6145 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 194: -#line 1495 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 197: +#line 1526 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; } -#line 6087 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6155 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 195: -#line 1500 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 198: +#line 1531 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; } -#line 6096 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6164 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 196: -#line 1504 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 199: +#line 1535 "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 6106 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6174 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 197: -#line 1509 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 200: +#line 1540 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt8; } -#line 6116 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6184 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 198: -#line 1514 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 201: +#line 1545 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint8; } -#line 6126 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6194 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 199: -#line 1519 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 202: +#line 1550 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt16; } -#line 6136 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6204 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 200: -#line 1524 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 203: +#line 1555 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint16; } -#line 6146 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6214 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 201: -#line 1529 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 204: +#line 1560 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; } -#line 6156 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6224 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 202: -#line 1534 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 205: +#line 1565 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; } -#line 6166 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6234 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 203: -#line 1539 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 206: +#line 1570 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt64; } -#line 6176 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6244 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 204: -#line 1544 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 207: +#line 1575 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint64; } -#line 6186 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6254 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 205: -#line 1549 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 208: +#line 1580 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBool; } -#line 6195 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6263 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 206: -#line 1553 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 209: +#line 1584 "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); } -#line 6205 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6273 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 207: -#line 1558 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 210: +#line 1589 "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 6215 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6283 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 208: -#line 1563 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 211: +#line 1594 "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 6225 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6293 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 209: -#line 1568 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 212: +#line 1599 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(2); } -#line 6236 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6304 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 210: -#line 1574 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 213: +#line 1605 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(3); } -#line 6247 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6315 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 211: -#line 1580 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 214: +#line 1611 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(4); } -#line 6258 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6326 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 212: -#line 1586 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 215: +#line 1617 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setVector(2); } -#line 6269 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6337 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 213: -#line 1592 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 216: +#line 1623 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setVector(3); } -#line 6280 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6348 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 214: -#line 1598 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 217: +#line 1629 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setVector(4); } -#line 6291 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6359 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 215: -#line 1604 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 218: +#line 1635 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(2); } -#line 6302 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6370 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 216: -#line 1610 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 219: +#line 1641 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(3); } -#line 6313 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6381 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 217: -#line 1616 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 220: +#line 1647 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(4); } -#line 6324 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6392 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 218: -#line 1622 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 221: +#line 1653 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(2); } -#line 6335 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6403 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 219: -#line 1628 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 222: +#line 1659 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(3); } -#line 6346 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6414 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 220: -#line 1634 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 223: +#line 1665 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(4); } -#line 6357 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6425 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 221: -#line 1640 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 224: +#line 1671 "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 6367 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6435 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 222: -#line 1645 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 225: +#line 1676 "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 6377 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6445 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 223: -#line 1650 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 226: +#line 1681 "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 6387 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6455 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 224: -#line 1655 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 227: +#line 1686 "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 6397 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6465 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 225: -#line 1660 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 228: +#line 1691 "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 6407 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6475 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 226: -#line 1665 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 229: +#line 1696 "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 6417 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6485 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 227: -#line 1670 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 230: +#line 1701 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt8; (yyval.interm.type).setVector(2); } -#line 6428 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6496 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 228: -#line 1676 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 231: +#line 1707 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt8; (yyval.interm.type).setVector(3); } -#line 6439 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6507 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 229: -#line 1682 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 232: +#line 1713 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt8; (yyval.interm.type).setVector(4); } -#line 6450 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6518 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 230: -#line 1688 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 233: +#line 1719 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt16; (yyval.interm.type).setVector(2); } -#line 6461 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6529 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 231: -#line 1694 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 234: +#line 1725 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt16; (yyval.interm.type).setVector(3); } -#line 6472 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6540 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 232: -#line 1700 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 235: +#line 1731 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt16; (yyval.interm.type).setVector(4); } -#line 6483 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6551 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 233: -#line 1706 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 236: +#line 1737 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(2); } -#line 6494 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6562 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 234: -#line 1712 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 237: +#line 1743 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(3); } -#line 6505 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6573 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 235: -#line 1718 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 238: +#line 1749 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(4); } -#line 6516 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6584 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 236: -#line 1724 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 239: +#line 1755 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt64; (yyval.interm.type).setVector(2); } -#line 6527 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6595 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 237: -#line 1730 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 240: +#line 1761 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt64; (yyval.interm.type).setVector(3); } -#line 6538 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6606 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 238: -#line 1736 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 241: +#line 1767 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt64; (yyval.interm.type).setVector(4); } -#line 6549 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6617 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 239: -#line 1742 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 242: +#line 1773 "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 6560 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6628 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 240: -#line 1748 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 243: +#line 1779 "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 6571 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6639 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 241: -#line 1754 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 244: +#line 1785 "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 6582 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6650 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 242: -#line 1760 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 245: +#line 1791 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint8; (yyval.interm.type).setVector(2); } -#line 6593 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6661 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 243: -#line 1766 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 246: +#line 1797 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint8; (yyval.interm.type).setVector(3); } -#line 6604 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6672 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 244: -#line 1772 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 247: +#line 1803 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint8; (yyval.interm.type).setVector(4); } -#line 6615 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6683 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 245: -#line 1778 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 248: +#line 1809 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint16; (yyval.interm.type).setVector(2); } -#line 6626 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6694 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 246: -#line 1784 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 249: +#line 1815 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint16; (yyval.interm.type).setVector(3); } -#line 6637 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6705 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 247: -#line 1790 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 250: +#line 1821 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint16; (yyval.interm.type).setVector(4); } -#line 6648 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6716 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 248: -#line 1796 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 251: +#line 1827 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(2); } -#line 6659 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6727 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 249: -#line 1802 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 252: +#line 1833 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(3); } -#line 6670 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6738 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 250: -#line 1808 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 253: +#line 1839 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(4); } -#line 6681 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6749 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 251: -#line 1814 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 254: +#line 1845 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint64; (yyval.interm.type).setVector(2); } -#line 6692 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6760 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 252: -#line 1820 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 255: +#line 1851 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint64; (yyval.interm.type).setVector(3); } -#line 6703 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6771 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 253: -#line 1826 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 256: +#line 1857 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint64; (yyval.interm.type).setVector(4); } -#line 6714 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6782 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 254: -#line 1832 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 257: +#line 1863 "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 6724 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6792 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 255: -#line 1837 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 258: +#line 1868 "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 6734 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6802 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 256: -#line 1842 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 259: +#line 1873 "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 6744 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6812 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 257: -#line 1847 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 260: +#line 1878 "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 6754 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6822 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 258: -#line 1852 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 261: +#line 1883 "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 6764 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6832 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 259: -#line 1857 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 262: +#line 1888 "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 6774 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6842 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 260: -#line 1862 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 263: +#line 1893 "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 6784 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6852 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 261: -#line 1867 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 264: +#line 1898 "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 6794 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6862 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 262: -#line 1872 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 265: +#line 1903 "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 6804 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6872 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 263: -#line 1877 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 266: +#line 1908 "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 6814 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6882 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 264: -#line 1882 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 267: +#line 1913 "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 6824 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6892 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 265: -#line 1887 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 268: +#line 1918 "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 6834 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6902 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 266: -#line 1892 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 269: +#line 1923 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 2); } -#line 6845 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6913 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 267: -#line 1898 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 270: +#line 1929 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 3); } -#line 6856 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6924 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 268: -#line 1904 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 271: +#line 1935 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 4); } -#line 6867 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6935 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 269: -#line 1910 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 272: +#line 1941 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 2); } -#line 6878 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6946 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 270: -#line 1916 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 273: +#line 1947 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 3); } -#line 6889 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6957 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 271: -#line 1922 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 274: +#line 1953 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 4); } -#line 6900 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6968 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 272: -#line 1928 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 275: +#line 1959 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 2); } -#line 6911 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6979 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 273: -#line 1934 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 276: +#line 1965 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 3); } -#line 6922 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6990 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 274: -#line 1940 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 277: +#line 1971 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 4); } -#line 6933 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7001 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 275: -#line 1946 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 278: +#line 1977 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 2); } -#line 6944 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7012 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 276: -#line 1952 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 279: +#line 1983 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 3); } -#line 6955 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7023 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 277: -#line 1958 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 280: +#line 1989 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 4); } -#line 6966 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7034 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 278: -#line 1964 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 281: +#line 1995 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(2, 2); } -#line 6977 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7045 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 279: -#line 1970 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 282: +#line 2001 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(3, 3); } -#line 6988 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7056 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 280: -#line 1976 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 283: +#line 2007 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(4, 4); } -#line 6999 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7067 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 281: -#line 1982 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 284: +#line 2013 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(2, 2); } -#line 7010 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7078 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 282: -#line 1988 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 285: +#line 2019 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(2, 3); } -#line 7021 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7089 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 283: -#line 1994 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 286: +#line 2025 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(2, 4); } -#line 7032 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7100 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 284: -#line 2000 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 287: +#line 2031 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(3, 2); } -#line 7043 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7111 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 285: -#line 2006 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 288: +#line 2037 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(3, 3); } -#line 7054 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7122 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 286: -#line 2012 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 289: +#line 2043 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(3, 4); } -#line 7065 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7133 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 287: -#line 2018 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 290: +#line 2049 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(4, 2); } -#line 7076 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7144 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 288: -#line 2024 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 291: +#line 2055 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(4, 3); } -#line 7087 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7155 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 289: -#line 2030 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 292: +#line 2061 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(4, 4); } -#line 7098 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7166 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 290: -#line 2036 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 293: +#line 2067 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 2); } -#line 7109 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7177 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 291: -#line 2042 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 294: +#line 2073 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 3); } -#line 7120 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7188 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 292: -#line 2048 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 295: +#line 2079 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 4); } -#line 7131 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7199 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 293: -#line 2054 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 296: +#line 2085 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 2); } -#line 7142 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7210 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 294: -#line 2060 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 297: +#line 2091 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 3); } -#line 7153 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7221 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 295: -#line 2066 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 298: +#line 2097 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 4); } -#line 7164 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7232 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 296: -#line 2072 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 299: +#line 2103 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 2); } -#line 7175 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7243 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 297: -#line 2078 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 300: +#line 2109 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 3); } -#line 7186 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7254 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 298: -#line 2084 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 301: +#line 2115 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 4); } -#line 7197 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7265 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 299: -#line 2090 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 302: +#line 2121 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 2); } -#line 7208 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7276 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 300: -#line 2096 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 303: +#line 2127 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 3); } -#line 7219 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7287 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 301: -#line 2102 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 304: +#line 2133 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 4); } -#line 7230 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7298 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 302: -#line 2108 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 305: +#line 2139 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 2); } -#line 7241 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7309 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 303: -#line 2114 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 306: +#line 2145 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 3); } -#line 7252 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7320 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 304: -#line 2120 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 307: +#line 2151 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 4); } -#line 7263 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7331 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 305: -#line 2126 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 308: +#line 2157 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 2); } -#line 7274 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7342 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 306: -#line 2132 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 309: +#line 2163 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 3); } -#line 7285 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7353 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 307: -#line 2138 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 310: +#line 2169 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 4); } -#line 7296 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7364 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 308: -#line 2144 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 311: +#line 2175 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 2); } -#line 7307 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7375 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 309: -#line 2150 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 312: +#line 2181 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 3); } -#line 7318 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7386 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 310: -#line 2156 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 313: +#line 2187 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 4); } -#line 7329 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7397 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 311: -#line 2162 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 314: +#line 2193 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 2); } -#line 7340 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7408 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 312: -#line 2168 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 315: +#line 2199 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 3); } -#line 7351 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7419 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 313: -#line 2174 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 316: +#line 2205 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 4); } -#line 7362 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7430 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 314: -#line 2180 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 317: +#line 2211 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { +#ifdef NV_EXTENSIONS + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtAccStructNV; +#endif + } +#line 7441 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 318: +#line 2217 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.vulkanRemoved((yyvsp[0].lex).loc, "atomic counter types"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtAtomicUint; } -#line 7372 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7451 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 315: -#line 2185 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 319: +#line 2222 "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, Esd1D); } -#line 7382 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7461 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 316: -#line 2190 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 320: +#line 2227 "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 7392 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7471 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 317: -#line 2195 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 321: +#line 2232 "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 7402 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7481 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 318: -#line 2200 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 322: +#line 2237 "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 7412 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7491 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 319: -#line 2205 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 323: +#line 2242 "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, Esd1D, false, true); } -#line 7422 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7501 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 320: -#line 2210 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 324: +#line 2247 "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 7432 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7511 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 321: -#line 2215 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 325: +#line 2252 "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 7442 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7521 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 322: -#line 2220 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 326: +#line 2257 "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, Esd1D, true); } -#line 7452 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7531 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 323: -#line 2225 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 327: +#line 2262 "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 7462 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7541 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 324: -#line 2230 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 328: +#line 2267 "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, Esd1D, true, true); } -#line 7472 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7551 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 325: -#line 2235 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 329: +#line 2272 "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 7482 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7561 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 326: -#line 2240 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 330: +#line 2277 "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, true); } -#line 7492 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7571 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 327: -#line 2245 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 331: +#line 2282 "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, true, true); } -#line 7502 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7581 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 328: -#line 2250 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 332: +#line 2287 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7511,11 +7590,11 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, Esd1D); #endif } -#line 7515 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7594 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 329: -#line 2258 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 333: +#line 2295 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7524,11 +7603,11 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, Esd2D); #endif } -#line 7528 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7607 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 330: -#line 2266 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 334: +#line 2303 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7537,11 +7616,11 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, Esd3D); #endif } -#line 7541 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7620 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 331: -#line 2274 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 335: +#line 2311 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7550,11 +7629,11 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, EsdCube); #endif } -#line 7554 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7633 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 332: -#line 2282 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 336: +#line 2319 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7563,11 +7642,11 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, false, true); #endif } -#line 7567 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7646 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 333: -#line 2290 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 337: +#line 2327 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7576,11 +7655,11 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, true); #endif } -#line 7580 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7659 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 334: -#line 2298 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 338: +#line 2335 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7589,11 +7668,11 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, false, true); #endif } -#line 7593 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7672 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 335: -#line 2306 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 339: +#line 2343 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7602,11 +7681,11 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true); #endif } -#line 7606 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7685 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 336: -#line 2314 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 340: +#line 2351 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7615,11 +7694,11 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true); #endif } -#line 7619 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7698 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 337: -#line 2322 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 341: +#line 2359 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7628,11 +7707,11 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true, true); #endif } -#line 7632 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7711 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 338: -#line 2330 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 342: +#line 2367 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7641,11 +7720,11 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, true); #endif } -#line 7645 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7724 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 339: -#line 2338 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 343: +#line 2375 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7654,11 +7733,11 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true); #endif } -#line 7658 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7737 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 340: -#line 2346 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 344: +#line 2383 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7667,171 +7746,171 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true, true); #endif } -#line 7671 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7750 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 341: -#line 2354 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 345: +#line 2391 "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, Esd1D); } -#line 7681 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7760 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 342: -#line 2359 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 346: +#line 2396 "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 7691 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7770 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 343: -#line 2364 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 347: +#line 2401 "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 7701 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7780 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 344: -#line 2369 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 348: +#line 2406 "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 7711 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7790 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 345: -#line 2374 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 349: +#line 2411 "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, Esd1D, true); } -#line 7721 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7800 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 346: -#line 2379 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 350: +#line 2416 "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 7731 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7810 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 347: -#line 2384 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 351: +#line 2421 "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, true); } -#line 7741 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7820 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 348: -#line 2389 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 352: +#line 2426 "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, Esd1D); } -#line 7751 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7830 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 349: -#line 2394 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 353: +#line 2431 "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 7761 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7840 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 350: -#line 2399 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 354: +#line 2436 "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 7771 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7850 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 351: -#line 2404 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 355: +#line 2441 "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 7781 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7860 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 352: -#line 2409 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 356: +#line 2446 "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, Esd1D, true); } -#line 7791 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7870 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 353: -#line 2414 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 357: +#line 2451 "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 7801 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7880 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 354: -#line 2419 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 358: +#line 2456 "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, true); } -#line 7811 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7890 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 355: -#line 2424 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 359: +#line 2461 "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, EsdRect); } -#line 7821 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7900 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 356: -#line 2429 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 360: +#line 2466 "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, EsdRect, false, true); } -#line 7831 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7910 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 357: -#line 2434 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 361: +#line 2471 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7840,11 +7919,11 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, EsdRect); #endif } -#line 7844 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7923 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 358: -#line 2442 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 362: +#line 2479 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7853,41 +7932,41 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, EsdRect, false, true); #endif } -#line 7857 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7936 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 359: -#line 2450 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 363: +#line 2487 "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, EsdRect); } -#line 7867 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7946 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 360: -#line 2455 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 364: +#line 2492 "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, EsdRect); } -#line 7877 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7956 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 361: -#line 2460 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 365: +#line 2497 "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, EsdBuffer); } -#line 7887 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7966 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 362: -#line 2465 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 366: +#line 2502 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7896,41 +7975,41 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, EsdBuffer); #endif } -#line 7900 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7979 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 363: -#line 2473 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 367: +#line 2510 "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, EsdBuffer); } -#line 7910 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7989 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 364: -#line 2478 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 368: +#line 2515 "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, EsdBuffer); } -#line 7920 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7999 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 365: -#line 2483 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 369: +#line 2520 "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, false, true); } -#line 7930 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8009 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 366: -#line 2488 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 370: +#line 2525 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7939,41 +8018,41 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, false, true); #endif } -#line 7943 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8022 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 367: -#line 2496 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 371: +#line 2533 "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, false, false, true); } -#line 7953 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8032 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 368: -#line 2501 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 372: +#line 2538 "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, false, false, true); } -#line 7963 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8042 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 369: -#line 2506 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 373: +#line 2543 "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, false, true); } -#line 7973 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8052 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 370: -#line 2511 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 374: +#line 2548 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7982,61 +8061,61 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, false, true); #endif } -#line 7986 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8065 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 371: -#line 2519 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 375: +#line 2556 "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, false, true); } -#line 7996 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8075 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 372: -#line 2524 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 376: +#line 2561 "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, false, true); } -#line 8006 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8085 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 373: -#line 2529 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 377: +#line 2566 "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 8016 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8095 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 374: -#line 2534 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 378: +#line 2571 "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 8026 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8105 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 375: -#line 2539 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 379: +#line 2576 "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, Esd1D); } -#line 8036 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8115 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 376: -#line 2544 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 380: +#line 2581 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); @@ -8045,21 +8124,21 @@ yyreduce: (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D); #endif } -#line 8049 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8128 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 377: -#line 2552 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 381: +#line 2589 "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 8059 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8138 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 378: -#line 2557 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 382: +#line 2594 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); @@ -8068,21 +8147,21 @@ yyreduce: (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D); #endif } -#line 8072 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8151 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 379: -#line 2565 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 383: +#line 2602 "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 8082 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8161 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 380: -#line 2570 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 384: +#line 2607 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); @@ -8091,21 +8170,21 @@ yyreduce: (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd3D); #endif } -#line 8095 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8174 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 381: -#line 2578 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 385: +#line 2615 "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 8105 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8184 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 382: -#line 2583 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 386: +#line 2620 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); @@ -8114,21 +8193,21 @@ yyreduce: (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube); #endif } -#line 8118 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8197 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 383: -#line 2591 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 387: +#line 2628 "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, Esd1D, true); } -#line 8128 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8207 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 384: -#line 2596 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 388: +#line 2633 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); @@ -8137,21 +8216,21 @@ yyreduce: (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D, true); #endif } -#line 8141 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8220 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 385: -#line 2604 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 389: +#line 2641 "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 8151 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8230 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 386: -#line 2609 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 390: +#line 2646 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); @@ -8160,21 +8239,21 @@ yyreduce: (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true); #endif } -#line 8164 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8243 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 387: -#line 2617 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 391: +#line 2654 "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, true); } -#line 8174 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8253 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 388: -#line 2622 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 392: +#line 2659 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); @@ -8183,161 +8262,161 @@ yyreduce: (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube, true); #endif } -#line 8187 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8266 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 389: -#line 2630 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 393: +#line 2667 "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, Esd1D); } -#line 8197 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8276 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 390: -#line 2635 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 394: +#line 2672 "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 8207 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8286 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 391: -#line 2640 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 395: +#line 2677 "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 8217 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8296 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 392: -#line 2645 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 396: +#line 2682 "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 8227 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8306 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 393: -#line 2650 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 397: +#line 2687 "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, Esd1D, true); } -#line 8237 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8316 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 394: -#line 2655 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 398: +#line 2692 "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 8247 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8326 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 395: -#line 2660 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 399: +#line 2697 "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, true); } -#line 8257 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8336 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 396: -#line 2665 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 400: +#line 2702 "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, Esd1D); } -#line 8267 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8346 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 397: -#line 2670 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 401: +#line 2707 "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 8277 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8356 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 398: -#line 2675 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 402: +#line 2712 "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 8287 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8366 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 399: -#line 2680 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 403: +#line 2717 "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 8297 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8376 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 400: -#line 2685 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 404: +#line 2722 "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, Esd1D, true); } -#line 8307 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8386 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 401: -#line 2690 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 405: +#line 2727 "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 8317 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8396 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 402: -#line 2695 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 406: +#line 2732 "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, true); } -#line 8327 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8406 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 403: -#line 2700 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 407: +#line 2737 "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, EsdRect); } -#line 8337 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8416 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 404: -#line 2705 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 408: +#line 2742 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); @@ -8346,41 +8425,41 @@ yyreduce: (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdRect); #endif } -#line 8350 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8429 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 405: -#line 2713 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 409: +#line 2750 "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, EsdRect); } -#line 8360 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8439 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 406: -#line 2718 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 410: +#line 2755 "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, EsdRect); } -#line 8370 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8449 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 407: -#line 2723 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 411: +#line 2760 "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, EsdBuffer); } -#line 8380 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8459 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 408: -#line 2728 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 412: +#line 2765 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); @@ -8389,41 +8468,41 @@ yyreduce: (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdBuffer); #endif } -#line 8393 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8472 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 409: -#line 2736 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 413: +#line 2773 "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, EsdBuffer); } -#line 8403 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8482 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 410: -#line 2741 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 414: +#line 2778 "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, EsdBuffer); } -#line 8413 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8492 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 411: -#line 2746 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 415: +#line 2783 "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, false, false, true); } -#line 8423 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8502 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 412: -#line 2751 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 416: +#line 2788 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); @@ -8432,41 +8511,41 @@ yyreduce: (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, false, false, true); #endif } -#line 8436 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8515 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 413: -#line 2759 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 417: +#line 2796 "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, false, false, true); } -#line 8446 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8525 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 414: -#line 2764 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 418: +#line 2801 "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, false, false, true); } -#line 8456 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8535 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 415: -#line 2769 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 419: +#line 2806 "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, false, true); } -#line 8466 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8545 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 416: -#line 2774 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 420: +#line 2811 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); @@ -8475,41 +8554,41 @@ yyreduce: (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true, false, true); #endif } -#line 8479 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8558 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 417: -#line 2782 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 421: +#line 2819 "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, false, true); } -#line 8489 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8568 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 418: -#line 2787 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 422: +#line 2824 "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, false, true); } -#line 8499 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8578 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 419: -#line 2792 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 423: +#line 2829 "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.setImage(EbtFloat, Esd1D); } -#line 8509 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8588 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 420: -#line 2797 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 424: +#line 2834 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); @@ -8518,41 +8597,41 @@ yyreduce: (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D); #endif } -#line 8522 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8601 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 421: -#line 2805 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 425: +#line 2842 "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.setImage(EbtInt, Esd1D); } -#line 8532 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8611 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 422: -#line 2810 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 426: +#line 2847 "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.setImage(EbtUint, Esd1D); } -#line 8542 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8621 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 423: -#line 2815 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 427: +#line 2852 "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.setImage(EbtFloat, Esd2D); } -#line 8552 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8631 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 424: -#line 2820 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 428: +#line 2857 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); @@ -8561,41 +8640,41 @@ yyreduce: (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D); #endif } -#line 8565 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8644 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 425: -#line 2828 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 429: +#line 2865 "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.setImage(EbtInt, Esd2D); } -#line 8575 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8654 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 426: -#line 2833 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 430: +#line 2870 "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.setImage(EbtUint, Esd2D); } -#line 8585 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8664 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 427: -#line 2838 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 431: +#line 2875 "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.setImage(EbtFloat, Esd3D); } -#line 8595 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8674 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 428: -#line 2843 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 432: +#line 2880 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); @@ -8604,41 +8683,41 @@ yyreduce: (yyval.interm.type).sampler.setImage(EbtFloat16, Esd3D); #endif } -#line 8608 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8687 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 429: -#line 2851 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 433: +#line 2888 "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.setImage(EbtInt, Esd3D); } -#line 8618 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8697 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 430: -#line 2856 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 434: +#line 2893 "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.setImage(EbtUint, Esd3D); } -#line 8628 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8707 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 431: -#line 2861 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 435: +#line 2898 "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.setImage(EbtFloat, EsdRect); } -#line 8638 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8717 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 432: -#line 2866 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 436: +#line 2903 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); @@ -8647,41 +8726,41 @@ yyreduce: (yyval.interm.type).sampler.setImage(EbtFloat16, EsdRect); #endif } -#line 8651 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8730 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 433: -#line 2874 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 437: +#line 2911 "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.setImage(EbtInt, EsdRect); } -#line 8661 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8740 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 434: -#line 2879 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 438: +#line 2916 "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.setImage(EbtUint, EsdRect); } -#line 8671 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8750 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 435: -#line 2884 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 439: +#line 2921 "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.setImage(EbtFloat, EsdCube); } -#line 8681 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8760 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 436: -#line 2889 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 440: +#line 2926 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); @@ -8690,41 +8769,41 @@ yyreduce: (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube); #endif } -#line 8694 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8773 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 437: -#line 2897 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 441: +#line 2934 "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.setImage(EbtInt, EsdCube); } -#line 8704 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8783 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 438: -#line 2902 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 442: +#line 2939 "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.setImage(EbtUint, EsdCube); } -#line 8714 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8793 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 439: -#line 2907 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 443: +#line 2944 "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.setImage(EbtFloat, EsdBuffer); } -#line 8724 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8803 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 440: -#line 2912 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 444: +#line 2949 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); @@ -8733,41 +8812,41 @@ yyreduce: (yyval.interm.type).sampler.setImage(EbtFloat16, EsdBuffer); #endif } -#line 8737 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8816 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 441: -#line 2920 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 445: +#line 2957 "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.setImage(EbtInt, EsdBuffer); } -#line 8747 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8826 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 442: -#line 2925 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 446: +#line 2962 "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.setImage(EbtUint, EsdBuffer); } -#line 8757 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8836 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 443: -#line 2930 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 447: +#line 2967 "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.setImage(EbtFloat, Esd1D, true); } -#line 8767 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8846 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 444: -#line 2935 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 448: +#line 2972 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); @@ -8776,41 +8855,41 @@ yyreduce: (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D, true); #endif } -#line 8780 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8859 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 445: -#line 2943 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 449: +#line 2980 "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.setImage(EbtInt, Esd1D, true); } -#line 8790 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8869 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 446: -#line 2948 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 450: +#line 2985 "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.setImage(EbtUint, Esd1D, true); } -#line 8800 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8879 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 447: -#line 2953 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 451: +#line 2990 "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.setImage(EbtFloat, Esd2D, true); } -#line 8810 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8889 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 448: -#line 2958 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 452: +#line 2995 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); @@ -8819,41 +8898,41 @@ yyreduce: (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true); #endif } -#line 8823 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8902 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 449: -#line 2966 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 453: +#line 3003 "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.setImage(EbtInt, Esd2D, true); } -#line 8833 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8912 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 450: -#line 2971 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 454: +#line 3008 "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.setImage(EbtUint, Esd2D, true); } -#line 8843 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8922 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 451: -#line 2976 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 455: +#line 3013 "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.setImage(EbtFloat, EsdCube, true); } -#line 8853 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8932 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 452: -#line 2981 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 456: +#line 3018 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); @@ -8862,41 +8941,41 @@ yyreduce: (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube, true); #endif } -#line 8866 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8945 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 453: -#line 2989 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 457: +#line 3026 "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.setImage(EbtInt, EsdCube, true); } -#line 8876 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8955 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 454: -#line 2994 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 458: +#line 3031 "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.setImage(EbtUint, EsdCube, true); } -#line 8886 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8965 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 455: -#line 2999 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 459: +#line 3036 "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.setImage(EbtFloat, Esd2D, false, false, true); } -#line 8896 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8975 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 456: -#line 3004 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 460: +#line 3041 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); @@ -8905,41 +8984,41 @@ yyreduce: (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, false, false, true); #endif } -#line 8909 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8988 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 457: -#line 3012 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 461: +#line 3049 "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.setImage(EbtInt, Esd2D, false, false, true); } -#line 8919 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8998 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 458: -#line 3017 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 462: +#line 3054 "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.setImage(EbtUint, Esd2D, false, false, true); } -#line 8929 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9008 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 459: -#line 3022 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 463: +#line 3059 "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.setImage(EbtFloat, Esd2D, true, false, true); } -#line 8939 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9018 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 460: -#line 3027 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 464: +#line 3064 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); @@ -8948,64 +9027,64 @@ yyreduce: (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true, false, true); #endif } -#line 8952 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9031 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 461: -#line 3035 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 465: +#line 3072 "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.setImage(EbtInt, Esd2D, true, false, true); } -#line 8962 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9041 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 462: -#line 3040 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 466: +#line 3077 "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.setImage(EbtUint, Esd2D, true, false, true); } -#line 8972 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9051 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 463: -#line 3045 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 467: +#line 3082 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // GL_OES_EGL_image_external (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D); (yyval.interm.type).sampler.external = true; } -#line 8983 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9062 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 464: -#line 3051 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 468: +#line 3088 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtFloat); } -#line 8994 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9073 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 465: -#line 3057 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 469: +#line 3094 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtFloat, true); } -#line 9005 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9084 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 466: -#line 3063 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 470: +#line 3100 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel()); @@ -9015,11 +9094,11 @@ yyreduce: (yyval.interm.type).sampler.setSubpass(EbtFloat16); #endif } -#line 9019 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9098 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 467: -#line 3072 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 471: +#line 3109 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel()); @@ -9029,65 +9108,65 @@ yyreduce: (yyval.interm.type).sampler.setSubpass(EbtFloat16, true); #endif } -#line 9033 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9112 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 468: -#line 3081 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 472: +#line 3118 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtInt); } -#line 9044 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9123 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 469: -#line 3087 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 473: +#line 3124 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtInt, true); } -#line 9055 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9134 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 470: -#line 3093 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 474: +#line 3130 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtUint); } -#line 9066 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9145 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 471: -#line 3099 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 475: +#line 3136 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtUint, true); } -#line 9077 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9156 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 472: -#line 3105 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 476: +#line 3142 "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 9087 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9166 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 473: -#line 3110 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 477: +#line 3147 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // // This is for user defined type names. The lexical phase looked up the @@ -9101,47 +9180,47 @@ yyreduce: } else parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), ""); } -#line 9105 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9184 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 474: -#line 3126 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 478: +#line 3163 "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 9115 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9194 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 475: -#line 3131 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 479: +#line 3168 "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 9125 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9204 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 476: -#line 3136 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 480: +#line 3173 "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 9135 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9214 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 477: -#line 3144 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 481: +#line 3181 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); } -#line 9141 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9220 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 478: -#line 3144 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 482: +#line 3181 "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); @@ -9153,17 +9232,17 @@ yyreduce: (yyval.interm.type).userDef = structure; --parseContext.structNestingLevel; } -#line 9157 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9236 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 479: -#line 3155 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 483: +#line 3192 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); } -#line 9163 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9242 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 480: -#line 3155 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 484: +#line 3192 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { TType* structure = new TType((yyvsp[-1].interm.typeList), TString("")); (yyval.interm.type).init((yyvsp[-4].lex).loc); @@ -9171,19 +9250,19 @@ yyreduce: (yyval.interm.type).userDef = structure; --parseContext.structNestingLevel; } -#line 9175 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9254 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 481: -#line 3165 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 485: +#line 3202 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeList) = (yyvsp[0].interm.typeList); } -#line 9183 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9262 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 482: -#line 3168 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 486: +#line 3205 "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) { @@ -9194,11 +9273,11 @@ yyreduce: (yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]); } } -#line 9198 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9277 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 483: -#line 3181 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 487: +#line 3218 "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"); @@ -9221,11 +9300,11 @@ yyreduce: (*(yyval.interm.typeList))[i].type->shallowCopy(type); } } -#line 9225 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9304 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 484: -#line 3203 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 488: +#line 3240 "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"); @@ -9250,38 +9329,38 @@ yyreduce: (*(yyval.interm.typeList))[i].type->shallowCopy(type); } } -#line 9254 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9333 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 485: -#line 3230 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 489: +#line 3267 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeList) = new TTypeList; (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); } -#line 9263 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9342 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 486: -#line 3234 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 490: +#line 3271 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); } -#line 9271 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9350 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 487: -#line 3240 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 491: +#line 3277 "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 9281 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9360 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 488: -#line 3245 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 492: +#line 3282 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes); @@ -9290,219 +9369,219 @@ yyreduce: (yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string); (yyval.interm.typeLine).type->transferArraySizes((yyvsp[0].interm).arraySizes); } -#line 9294 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9373 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 489: -#line 3256 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 493: +#line 3293 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 9302 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9381 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 490: -#line 3259 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 494: +#line 3296 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { const char* initFeature = "{ } style initializers"; parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature); parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode); } -#line 9313 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9392 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 491: -#line 3265 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 495: +#line 3302 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { const char* initFeature = "{ } style initializers"; parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature); parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 9324 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9403 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 492: -#line 3274 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 496: +#line 3311 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc()); } -#line 9332 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9411 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 493: -#line 3277 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 497: +#line 3314 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); } -#line 9340 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9419 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 494: -#line 3283 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 498: +#line 3320 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9346 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9425 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 495: -#line 3287 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 499: +#line 3324 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9352 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9431 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 496: -#line 3288 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 500: +#line 3325 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9358 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9437 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 497: -#line 3294 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 501: +#line 3331 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9364 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9443 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 498: -#line 3295 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 502: +#line 3332 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9370 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9449 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 499: -#line 3296 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 503: +#line 3333 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9376 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9455 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 500: -#line 3297 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 504: +#line 3334 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9382 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9461 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 501: -#line 3298 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 505: +#line 3335 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9388 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9467 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 502: -#line 3299 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 506: +#line 3336 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9394 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9473 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 503: -#line 3300 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 507: +#line 3337 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9400 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9479 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 504: -#line 3304 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 508: +#line 3341 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; } -#line 9406 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9485 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 505: -#line 3305 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 509: +#line 3342 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.push(); ++parseContext.statementNestingLevel; } -#line 9415 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9494 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 506: -#line 3309 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 510: +#line 3346 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); --parseContext.statementNestingLevel; } -#line 9424 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9503 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 507: -#line 3313 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 511: +#line 3350 "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 9434 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9513 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 508: -#line 3321 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 512: +#line 3358 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9440 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9519 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 509: -#line 3322 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 513: +#line 3359 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9446 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9525 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 510: -#line 3326 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 514: +#line 3363 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { ++parseContext.controlFlowNestingLevel; } -#line 9454 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9533 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 511: -#line 3329 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 515: +#line 3366 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { --parseContext.controlFlowNestingLevel; (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9463 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9542 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 512: -#line 3333 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 516: +#line 3370 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.push(); ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 9473 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9552 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 513: -#line 3338 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 517: +#line 3375 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9484 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9563 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 514: -#line 3347 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 518: +#line 3384 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; } -#line 9492 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9571 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 515: -#line 3350 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 519: +#line 3387 "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 9502 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9581 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 516: -#line 3358 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 520: +#line 3395 "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 || @@ -9511,11 +9590,11 @@ yyreduce: (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case } } -#line 9515 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9594 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 517: -#line 3366 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 521: +#line 3403 "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)) { @@ -9524,76 +9603,76 @@ yyreduce: } else (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode)); } -#line 9528 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9607 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 518: -#line 3377 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 522: +#line 3414 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; } -#line 9534 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9613 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 519: -#line 3378 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 523: +#line 3415 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = static_cast((yyvsp[-1].interm.intermTypedNode)); } -#line 9540 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9619 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 520: -#line 3382 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 524: +#line 3419 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9548 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9627 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 521: -#line 3385 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 525: +#line 3422 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.handleSelectionAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode)); (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9557 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9636 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 522: -#line 3391 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 526: +#line 3428 "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 9566 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9645 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 523: -#line 3398 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 527: +#line 3435 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode); (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode); } -#line 9575 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9654 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 524: -#line 3402 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 528: +#line 3439 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode); (yyval.interm.nodePair).node2 = 0; } -#line 9584 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9663 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 525: -#line 3410 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 529: +#line 3447 "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 9593 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9672 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 526: -#line 3414 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 530: +#line 3451 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type)); @@ -9604,28 +9683,28 @@ yyreduce: else (yyval.interm.intermTypedNode) = 0; } -#line 9608 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9687 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 527: -#line 3427 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 531: +#line 3464 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9616 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9695 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 528: -#line 3430 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 532: +#line 3467 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.handleSwitchAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode)); (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9625 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9704 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 529: -#line 3436 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 533: +#line 3473 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // start new switch sequence on the switch stack ++parseContext.controlFlowNestingLevel; @@ -9634,11 +9713,11 @@ yyreduce: parseContext.switchLevel.push_back(parseContext.statementNestingLevel); parseContext.symbolTable.push(); } -#line 9638 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9717 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 530: -#line 3444 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 534: +#line 3481 "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(); @@ -9648,27 +9727,27 @@ yyreduce: --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 9652 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9731 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 531: -#line 3456 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 535: +#line 3493 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; } -#line 9660 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9739 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 532: -#line 3459 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 536: +#line 3496 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9668 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9747 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 533: -#line 3465 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 537: +#line 3502 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; if (parseContext.switchLevel.size() == 0) @@ -9681,11 +9760,11 @@ yyreduce: (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc); } } -#line 9685 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9764 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 534: -#line 3477 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 538: +#line 3514 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; if (parseContext.switchLevel.size() == 0) @@ -9695,28 +9774,28 @@ yyreduce: else (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc); } -#line 9699 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9778 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 535: -#line 3489 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 539: +#line 3526 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9707 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9786 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 536: -#line 3492 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 540: +#line 3529 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.handleLoopAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode)); (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9716 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9795 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 537: -#line 3498 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 541: +#line 3535 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if (! parseContext.limits.whileLoops) parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", ""); @@ -9725,11 +9804,11 @@ yyreduce: ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 9729 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9808 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 538: -#line 3506 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 542: +#line 3543 "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); @@ -9737,21 +9816,21 @@ yyreduce: --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 9741 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9820 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 539: -#line 3513 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 543: +#line 3550 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { ++parseContext.loopNestingLevel; ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 9751 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9830 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 540: -#line 3518 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 544: +#line 3555 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if (! parseContext.limits.whileLoops) parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", ""); @@ -9763,22 +9842,22 @@ yyreduce: --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 9767 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9846 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 541: -#line 3529 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 545: +#line 3566 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.push(); ++parseContext.loopNestingLevel; ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 9778 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9857 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 542: -#line 3535 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 546: +#line 3572 "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); @@ -9791,81 +9870,81 @@ yyreduce: --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 9795 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9874 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 543: -#line 3550 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 547: +#line 3587 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9803 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9882 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 544: -#line 3553 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 548: +#line 3590 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9811 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9890 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 545: -#line 3559 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 549: +#line 3596 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 9819 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9898 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 546: -#line 3562 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 550: +#line 3599 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = 0; } -#line 9827 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9906 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 547: -#line 3568 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 551: +#line 3605 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode); (yyval.interm.nodePair).node2 = 0; } -#line 9836 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9915 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 548: -#line 3572 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 552: +#line 3609 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode); (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode); } -#line 9845 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9924 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 549: -#line 3579 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 553: +#line 3616 "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 9855 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9934 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 550: -#line 3584 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 554: +#line 3621 "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 9865 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9944 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 551: -#line 3589 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 555: +#line 3626 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc); if (parseContext.currentFunctionType->getBasicType() != EbtVoid) @@ -9873,83 +9952,83 @@ yyreduce: if (parseContext.inMain) parseContext.postEntryPointReturn = true; } -#line 9877 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9956 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 552: -#line 3596 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 556: +#line 3633 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode)); } -#line 9885 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9964 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 553: -#line 3599 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 557: +#line 3636 "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 9894 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9973 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 554: -#line 3608 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 558: +#line 3645 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); } -#line 9903 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9982 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 555: -#line 3612 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 559: +#line 3649 "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 9914 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9993 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 556: -#line 3621 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 560: +#line 3658 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9922 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 10001 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 557: -#line 3624 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 561: +#line 3661 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9930 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 10009 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 558: -#line 3627 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 562: +#line 3664 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "extraneous semicolon"); parseContext.profileRequires((yyvsp[0].lex).loc, ~EEsProfile, 460, nullptr, "extraneous semicolon"); (yyval.interm.intermNode) = nullptr; } -#line 9940 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 10019 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 559: -#line 3635 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 563: +#line 3672 "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 9949 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 10028 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 560: -#line 3639 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 564: +#line 3676 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // May be best done as post process phase on intermediate code if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue) @@ -9965,52 +10044,52 @@ yyreduce: (yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug); (yyval.interm.intermNode)->getAsAggregate()->setPragmaTable(parseContext.contextPragma.pragmaTable); } -#line 9969 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 10048 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 561: -#line 3657 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 565: +#line 3694 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.attributes) = (yyvsp[-2].interm.attributes); parseContext.requireExtensions((yyvsp[-4].lex).loc, 1, &E_GL_EXT_control_flow_attributes, "attribute"); } -#line 9978 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 10057 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 562: -#line 3663 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 566: +#line 3700 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.attributes) = (yyvsp[0].interm.attributes); } -#line 9986 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 10065 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 563: -#line 3666 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 567: +#line 3703 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.attributes) = parseContext.mergeAttributes((yyvsp[-2].interm.attributes), (yyvsp[0].interm.attributes)); } -#line 9994 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 10073 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 564: -#line 3671 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 568: +#line 3708 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[0].lex).string); } -#line 10002 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 10081 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 565: -#line 3674 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 569: +#line 3711 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[-3].lex).string, (yyvsp[-1].interm.intermTypedNode)); } -#line 10010 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 10089 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; -#line 10014 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 10093 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -10238,5 +10317,5 @@ yyreturn: #endif return yyresult; } -#line 3678 "MachineIndependent/glslang.y" /* yacc.c:1906 */ +#line 3715 "MachineIndependent/glslang.y" /* yacc.c:1906 */ diff --git a/glslang/MachineIndependent/glslang_tab.cpp.h b/glslang/MachineIndependent/glslang_tab.cpp.h index d8111f8..d1f2e71 100644 --- a/glslang/MachineIndependent/glslang_tab.cpp.h +++ b/glslang/MachineIndependent/glslang_tab.cpp.h @@ -125,323 +125,327 @@ extern int yydebug; BUFFER = 335, SHARED = 336, NONUNIFORM = 337, - COHERENT = 338, - VOLATILE = 339, - RESTRICT = 340, - READONLY = 341, - WRITEONLY = 342, - DEVICECOHERENT = 343, - QUEUEFAMILYCOHERENT = 344, - WORKGROUPCOHERENT = 345, - SUBGROUPCOHERENT = 346, - NONPRIVATE = 347, - DVEC2 = 348, - DVEC3 = 349, - DVEC4 = 350, - DMAT2 = 351, - DMAT3 = 352, - DMAT4 = 353, - F16VEC2 = 354, - F16VEC3 = 355, - F16VEC4 = 356, - F16MAT2 = 357, - F16MAT3 = 358, - F16MAT4 = 359, - F32VEC2 = 360, - F32VEC3 = 361, - F32VEC4 = 362, - F32MAT2 = 363, - F32MAT3 = 364, - F32MAT4 = 365, - F64VEC2 = 366, - F64VEC3 = 367, - F64VEC4 = 368, - F64MAT2 = 369, - F64MAT3 = 370, - F64MAT4 = 371, - NOPERSPECTIVE = 372, - FLAT = 373, - SMOOTH = 374, - LAYOUT = 375, - EXPLICITINTERPAMD = 376, - PERVERTEXNV = 377, - PERPRIMITIVENV = 378, - PERVIEWNV = 379, - PERTASKNV = 380, - MAT2X2 = 381, - MAT2X3 = 382, - MAT2X4 = 383, - MAT3X2 = 384, - MAT3X3 = 385, - MAT3X4 = 386, - MAT4X2 = 387, - MAT4X3 = 388, - MAT4X4 = 389, - DMAT2X2 = 390, - DMAT2X3 = 391, - DMAT2X4 = 392, - DMAT3X2 = 393, - DMAT3X3 = 394, - DMAT3X4 = 395, - DMAT4X2 = 396, - DMAT4X3 = 397, - DMAT4X4 = 398, - F16MAT2X2 = 399, - F16MAT2X3 = 400, - F16MAT2X4 = 401, - F16MAT3X2 = 402, - F16MAT3X3 = 403, - F16MAT3X4 = 404, - F16MAT4X2 = 405, - F16MAT4X3 = 406, - F16MAT4X4 = 407, - F32MAT2X2 = 408, - F32MAT2X3 = 409, - F32MAT2X4 = 410, - F32MAT3X2 = 411, - F32MAT3X3 = 412, - F32MAT3X4 = 413, - F32MAT4X2 = 414, - F32MAT4X3 = 415, - F32MAT4X4 = 416, - F64MAT2X2 = 417, - F64MAT2X3 = 418, - F64MAT2X4 = 419, - F64MAT3X2 = 420, - F64MAT3X3 = 421, - F64MAT3X4 = 422, - F64MAT4X2 = 423, - F64MAT4X3 = 424, - F64MAT4X4 = 425, - ATOMIC_UINT = 426, - SAMPLER1D = 427, - SAMPLER2D = 428, - SAMPLER3D = 429, - SAMPLERCUBE = 430, - SAMPLER1DSHADOW = 431, - SAMPLER2DSHADOW = 432, - SAMPLERCUBESHADOW = 433, - SAMPLER1DARRAY = 434, - SAMPLER2DARRAY = 435, - SAMPLER1DARRAYSHADOW = 436, - SAMPLER2DARRAYSHADOW = 437, - ISAMPLER1D = 438, - ISAMPLER2D = 439, - ISAMPLER3D = 440, - ISAMPLERCUBE = 441, - ISAMPLER1DARRAY = 442, - ISAMPLER2DARRAY = 443, - USAMPLER1D = 444, - USAMPLER2D = 445, - USAMPLER3D = 446, - USAMPLERCUBE = 447, - USAMPLER1DARRAY = 448, - USAMPLER2DARRAY = 449, - SAMPLER2DRECT = 450, - SAMPLER2DRECTSHADOW = 451, - ISAMPLER2DRECT = 452, - USAMPLER2DRECT = 453, - SAMPLERBUFFER = 454, - ISAMPLERBUFFER = 455, - USAMPLERBUFFER = 456, - SAMPLERCUBEARRAY = 457, - SAMPLERCUBEARRAYSHADOW = 458, - ISAMPLERCUBEARRAY = 459, - USAMPLERCUBEARRAY = 460, - SAMPLER2DMS = 461, - ISAMPLER2DMS = 462, - USAMPLER2DMS = 463, - SAMPLER2DMSARRAY = 464, - ISAMPLER2DMSARRAY = 465, - USAMPLER2DMSARRAY = 466, - SAMPLEREXTERNALOES = 467, - F16SAMPLER1D = 468, - F16SAMPLER2D = 469, - F16SAMPLER3D = 470, - F16SAMPLER2DRECT = 471, - F16SAMPLERCUBE = 472, - F16SAMPLER1DARRAY = 473, - F16SAMPLER2DARRAY = 474, - F16SAMPLERCUBEARRAY = 475, - F16SAMPLERBUFFER = 476, - F16SAMPLER2DMS = 477, - F16SAMPLER2DMSARRAY = 478, - F16SAMPLER1DSHADOW = 479, - F16SAMPLER2DSHADOW = 480, - F16SAMPLER1DARRAYSHADOW = 481, - F16SAMPLER2DARRAYSHADOW = 482, - F16SAMPLER2DRECTSHADOW = 483, - F16SAMPLERCUBESHADOW = 484, - F16SAMPLERCUBEARRAYSHADOW = 485, - SAMPLER = 486, - SAMPLERSHADOW = 487, - TEXTURE1D = 488, - TEXTURE2D = 489, - TEXTURE3D = 490, - TEXTURECUBE = 491, - TEXTURE1DARRAY = 492, - TEXTURE2DARRAY = 493, - ITEXTURE1D = 494, - ITEXTURE2D = 495, - ITEXTURE3D = 496, - ITEXTURECUBE = 497, - ITEXTURE1DARRAY = 498, - ITEXTURE2DARRAY = 499, - UTEXTURE1D = 500, - UTEXTURE2D = 501, - UTEXTURE3D = 502, - UTEXTURECUBE = 503, - UTEXTURE1DARRAY = 504, - UTEXTURE2DARRAY = 505, - TEXTURE2DRECT = 506, - ITEXTURE2DRECT = 507, - UTEXTURE2DRECT = 508, - TEXTUREBUFFER = 509, - ITEXTUREBUFFER = 510, - UTEXTUREBUFFER = 511, - TEXTURECUBEARRAY = 512, - ITEXTURECUBEARRAY = 513, - UTEXTURECUBEARRAY = 514, - TEXTURE2DMS = 515, - ITEXTURE2DMS = 516, - UTEXTURE2DMS = 517, - TEXTURE2DMSARRAY = 518, - ITEXTURE2DMSARRAY = 519, - UTEXTURE2DMSARRAY = 520, - F16TEXTURE1D = 521, - F16TEXTURE2D = 522, - F16TEXTURE3D = 523, - F16TEXTURE2DRECT = 524, - F16TEXTURECUBE = 525, - F16TEXTURE1DARRAY = 526, - F16TEXTURE2DARRAY = 527, - F16TEXTURECUBEARRAY = 528, - F16TEXTUREBUFFER = 529, - F16TEXTURE2DMS = 530, - F16TEXTURE2DMSARRAY = 531, - SUBPASSINPUT = 532, - SUBPASSINPUTMS = 533, - ISUBPASSINPUT = 534, - ISUBPASSINPUTMS = 535, - USUBPASSINPUT = 536, - USUBPASSINPUTMS = 537, - F16SUBPASSINPUT = 538, - F16SUBPASSINPUTMS = 539, - IMAGE1D = 540, - IIMAGE1D = 541, - UIMAGE1D = 542, - IMAGE2D = 543, - IIMAGE2D = 544, - UIMAGE2D = 545, - IMAGE3D = 546, - IIMAGE3D = 547, - UIMAGE3D = 548, - IMAGE2DRECT = 549, - IIMAGE2DRECT = 550, - UIMAGE2DRECT = 551, - IMAGECUBE = 552, - IIMAGECUBE = 553, - UIMAGECUBE = 554, - IMAGEBUFFER = 555, - IIMAGEBUFFER = 556, - UIMAGEBUFFER = 557, - IMAGE1DARRAY = 558, - IIMAGE1DARRAY = 559, - UIMAGE1DARRAY = 560, - IMAGE2DARRAY = 561, - IIMAGE2DARRAY = 562, - UIMAGE2DARRAY = 563, - IMAGECUBEARRAY = 564, - IIMAGECUBEARRAY = 565, - UIMAGECUBEARRAY = 566, - IMAGE2DMS = 567, - IIMAGE2DMS = 568, - UIMAGE2DMS = 569, - IMAGE2DMSARRAY = 570, - IIMAGE2DMSARRAY = 571, - UIMAGE2DMSARRAY = 572, - F16IMAGE1D = 573, - F16IMAGE2D = 574, - F16IMAGE3D = 575, - F16IMAGE2DRECT = 576, - F16IMAGECUBE = 577, - F16IMAGE1DARRAY = 578, - F16IMAGE2DARRAY = 579, - F16IMAGECUBEARRAY = 580, - F16IMAGEBUFFER = 581, - F16IMAGE2DMS = 582, - F16IMAGE2DMSARRAY = 583, - STRUCT = 584, - VOID = 585, - WHILE = 586, - IDENTIFIER = 587, - TYPE_NAME = 588, - FLOATCONSTANT = 589, - DOUBLECONSTANT = 590, - INT16CONSTANT = 591, - UINT16CONSTANT = 592, - INT32CONSTANT = 593, - UINT32CONSTANT = 594, - INTCONSTANT = 595, - UINTCONSTANT = 596, - INT64CONSTANT = 597, - UINT64CONSTANT = 598, - BOOLCONSTANT = 599, - FLOAT16CONSTANT = 600, - LEFT_OP = 601, - RIGHT_OP = 602, - INC_OP = 603, - DEC_OP = 604, - LE_OP = 605, - GE_OP = 606, - EQ_OP = 607, - NE_OP = 608, - AND_OP = 609, - OR_OP = 610, - XOR_OP = 611, - MUL_ASSIGN = 612, - DIV_ASSIGN = 613, - ADD_ASSIGN = 614, - MOD_ASSIGN = 615, - LEFT_ASSIGN = 616, - RIGHT_ASSIGN = 617, - AND_ASSIGN = 618, - XOR_ASSIGN = 619, - OR_ASSIGN = 620, - SUB_ASSIGN = 621, - LEFT_PAREN = 622, - RIGHT_PAREN = 623, - LEFT_BRACKET = 624, - RIGHT_BRACKET = 625, - LEFT_BRACE = 626, - RIGHT_BRACE = 627, - DOT = 628, - COMMA = 629, - COLON = 630, - EQUAL = 631, - SEMICOLON = 632, - BANG = 633, - DASH = 634, - TILDE = 635, - PLUS = 636, - STAR = 637, - SLASH = 638, - PERCENT = 639, - LEFT_ANGLE = 640, - RIGHT_ANGLE = 641, - VERTICAL_BAR = 642, - CARET = 643, - AMPERSAND = 644, - QUESTION = 645, - INVARIANT = 646, - PRECISE = 647, - HIGH_PRECISION = 648, - MEDIUM_PRECISION = 649, - LOW_PRECISION = 650, - PRECISION = 651, - PACKED = 652, - RESOURCE = 653, - SUPERP = 654 + PAYLOADNV = 338, + PAYLOADINNV = 339, + HITATTRNV = 340, + COHERENT = 341, + VOLATILE = 342, + RESTRICT = 343, + READONLY = 344, + WRITEONLY = 345, + DEVICECOHERENT = 346, + QUEUEFAMILYCOHERENT = 347, + WORKGROUPCOHERENT = 348, + SUBGROUPCOHERENT = 349, + NONPRIVATE = 350, + DVEC2 = 351, + DVEC3 = 352, + DVEC4 = 353, + DMAT2 = 354, + DMAT3 = 355, + DMAT4 = 356, + F16VEC2 = 357, + F16VEC3 = 358, + F16VEC4 = 359, + F16MAT2 = 360, + F16MAT3 = 361, + F16MAT4 = 362, + F32VEC2 = 363, + F32VEC3 = 364, + F32VEC4 = 365, + F32MAT2 = 366, + F32MAT3 = 367, + F32MAT4 = 368, + F64VEC2 = 369, + F64VEC3 = 370, + F64VEC4 = 371, + F64MAT2 = 372, + F64MAT3 = 373, + F64MAT4 = 374, + NOPERSPECTIVE = 375, + FLAT = 376, + SMOOTH = 377, + LAYOUT = 378, + EXPLICITINTERPAMD = 379, + PERVERTEXNV = 380, + PERPRIMITIVENV = 381, + PERVIEWNV = 382, + PERTASKNV = 383, + MAT2X2 = 384, + MAT2X3 = 385, + MAT2X4 = 386, + MAT3X2 = 387, + MAT3X3 = 388, + MAT3X4 = 389, + MAT4X2 = 390, + MAT4X3 = 391, + MAT4X4 = 392, + DMAT2X2 = 393, + DMAT2X3 = 394, + DMAT2X4 = 395, + DMAT3X2 = 396, + DMAT3X3 = 397, + DMAT3X4 = 398, + DMAT4X2 = 399, + DMAT4X3 = 400, + DMAT4X4 = 401, + F16MAT2X2 = 402, + F16MAT2X3 = 403, + F16MAT2X4 = 404, + F16MAT3X2 = 405, + F16MAT3X3 = 406, + F16MAT3X4 = 407, + F16MAT4X2 = 408, + F16MAT4X3 = 409, + F16MAT4X4 = 410, + F32MAT2X2 = 411, + F32MAT2X3 = 412, + F32MAT2X4 = 413, + F32MAT3X2 = 414, + F32MAT3X3 = 415, + F32MAT3X4 = 416, + F32MAT4X2 = 417, + F32MAT4X3 = 418, + F32MAT4X4 = 419, + F64MAT2X2 = 420, + F64MAT2X3 = 421, + F64MAT2X4 = 422, + F64MAT3X2 = 423, + F64MAT3X3 = 424, + F64MAT3X4 = 425, + F64MAT4X2 = 426, + F64MAT4X3 = 427, + F64MAT4X4 = 428, + ATOMIC_UINT = 429, + ACCSTRUCTNV = 430, + SAMPLER1D = 431, + SAMPLER2D = 432, + SAMPLER3D = 433, + SAMPLERCUBE = 434, + SAMPLER1DSHADOW = 435, + SAMPLER2DSHADOW = 436, + SAMPLERCUBESHADOW = 437, + SAMPLER1DARRAY = 438, + SAMPLER2DARRAY = 439, + SAMPLER1DARRAYSHADOW = 440, + SAMPLER2DARRAYSHADOW = 441, + ISAMPLER1D = 442, + ISAMPLER2D = 443, + ISAMPLER3D = 444, + ISAMPLERCUBE = 445, + ISAMPLER1DARRAY = 446, + ISAMPLER2DARRAY = 447, + USAMPLER1D = 448, + USAMPLER2D = 449, + USAMPLER3D = 450, + USAMPLERCUBE = 451, + USAMPLER1DARRAY = 452, + USAMPLER2DARRAY = 453, + SAMPLER2DRECT = 454, + SAMPLER2DRECTSHADOW = 455, + ISAMPLER2DRECT = 456, + USAMPLER2DRECT = 457, + SAMPLERBUFFER = 458, + ISAMPLERBUFFER = 459, + USAMPLERBUFFER = 460, + SAMPLERCUBEARRAY = 461, + SAMPLERCUBEARRAYSHADOW = 462, + ISAMPLERCUBEARRAY = 463, + USAMPLERCUBEARRAY = 464, + SAMPLER2DMS = 465, + ISAMPLER2DMS = 466, + USAMPLER2DMS = 467, + SAMPLER2DMSARRAY = 468, + ISAMPLER2DMSARRAY = 469, + USAMPLER2DMSARRAY = 470, + SAMPLEREXTERNALOES = 471, + F16SAMPLER1D = 472, + F16SAMPLER2D = 473, + F16SAMPLER3D = 474, + F16SAMPLER2DRECT = 475, + F16SAMPLERCUBE = 476, + F16SAMPLER1DARRAY = 477, + F16SAMPLER2DARRAY = 478, + F16SAMPLERCUBEARRAY = 479, + F16SAMPLERBUFFER = 480, + F16SAMPLER2DMS = 481, + F16SAMPLER2DMSARRAY = 482, + F16SAMPLER1DSHADOW = 483, + F16SAMPLER2DSHADOW = 484, + F16SAMPLER1DARRAYSHADOW = 485, + F16SAMPLER2DARRAYSHADOW = 486, + F16SAMPLER2DRECTSHADOW = 487, + F16SAMPLERCUBESHADOW = 488, + F16SAMPLERCUBEARRAYSHADOW = 489, + SAMPLER = 490, + SAMPLERSHADOW = 491, + TEXTURE1D = 492, + TEXTURE2D = 493, + TEXTURE3D = 494, + TEXTURECUBE = 495, + TEXTURE1DARRAY = 496, + TEXTURE2DARRAY = 497, + ITEXTURE1D = 498, + ITEXTURE2D = 499, + ITEXTURE3D = 500, + ITEXTURECUBE = 501, + ITEXTURE1DARRAY = 502, + ITEXTURE2DARRAY = 503, + UTEXTURE1D = 504, + UTEXTURE2D = 505, + UTEXTURE3D = 506, + UTEXTURECUBE = 507, + UTEXTURE1DARRAY = 508, + UTEXTURE2DARRAY = 509, + TEXTURE2DRECT = 510, + ITEXTURE2DRECT = 511, + UTEXTURE2DRECT = 512, + TEXTUREBUFFER = 513, + ITEXTUREBUFFER = 514, + UTEXTUREBUFFER = 515, + TEXTURECUBEARRAY = 516, + ITEXTURECUBEARRAY = 517, + UTEXTURECUBEARRAY = 518, + TEXTURE2DMS = 519, + ITEXTURE2DMS = 520, + UTEXTURE2DMS = 521, + TEXTURE2DMSARRAY = 522, + ITEXTURE2DMSARRAY = 523, + UTEXTURE2DMSARRAY = 524, + F16TEXTURE1D = 525, + F16TEXTURE2D = 526, + F16TEXTURE3D = 527, + F16TEXTURE2DRECT = 528, + F16TEXTURECUBE = 529, + F16TEXTURE1DARRAY = 530, + F16TEXTURE2DARRAY = 531, + F16TEXTURECUBEARRAY = 532, + F16TEXTUREBUFFER = 533, + F16TEXTURE2DMS = 534, + F16TEXTURE2DMSARRAY = 535, + SUBPASSINPUT = 536, + SUBPASSINPUTMS = 537, + ISUBPASSINPUT = 538, + ISUBPASSINPUTMS = 539, + USUBPASSINPUT = 540, + USUBPASSINPUTMS = 541, + F16SUBPASSINPUT = 542, + F16SUBPASSINPUTMS = 543, + IMAGE1D = 544, + IIMAGE1D = 545, + UIMAGE1D = 546, + IMAGE2D = 547, + IIMAGE2D = 548, + UIMAGE2D = 549, + IMAGE3D = 550, + IIMAGE3D = 551, + UIMAGE3D = 552, + IMAGE2DRECT = 553, + IIMAGE2DRECT = 554, + UIMAGE2DRECT = 555, + IMAGECUBE = 556, + IIMAGECUBE = 557, + UIMAGECUBE = 558, + IMAGEBUFFER = 559, + IIMAGEBUFFER = 560, + UIMAGEBUFFER = 561, + IMAGE1DARRAY = 562, + IIMAGE1DARRAY = 563, + UIMAGE1DARRAY = 564, + IMAGE2DARRAY = 565, + IIMAGE2DARRAY = 566, + UIMAGE2DARRAY = 567, + IMAGECUBEARRAY = 568, + IIMAGECUBEARRAY = 569, + UIMAGECUBEARRAY = 570, + IMAGE2DMS = 571, + IIMAGE2DMS = 572, + UIMAGE2DMS = 573, + IMAGE2DMSARRAY = 574, + IIMAGE2DMSARRAY = 575, + UIMAGE2DMSARRAY = 576, + F16IMAGE1D = 577, + F16IMAGE2D = 578, + F16IMAGE3D = 579, + F16IMAGE2DRECT = 580, + F16IMAGECUBE = 581, + F16IMAGE1DARRAY = 582, + F16IMAGE2DARRAY = 583, + F16IMAGECUBEARRAY = 584, + F16IMAGEBUFFER = 585, + F16IMAGE2DMS = 586, + F16IMAGE2DMSARRAY = 587, + STRUCT = 588, + VOID = 589, + WHILE = 590, + IDENTIFIER = 591, + TYPE_NAME = 592, + FLOATCONSTANT = 593, + DOUBLECONSTANT = 594, + INT16CONSTANT = 595, + UINT16CONSTANT = 596, + INT32CONSTANT = 597, + UINT32CONSTANT = 598, + INTCONSTANT = 599, + UINTCONSTANT = 600, + INT64CONSTANT = 601, + UINT64CONSTANT = 602, + BOOLCONSTANT = 603, + FLOAT16CONSTANT = 604, + LEFT_OP = 605, + RIGHT_OP = 606, + INC_OP = 607, + DEC_OP = 608, + LE_OP = 609, + GE_OP = 610, + EQ_OP = 611, + NE_OP = 612, + AND_OP = 613, + OR_OP = 614, + XOR_OP = 615, + MUL_ASSIGN = 616, + DIV_ASSIGN = 617, + ADD_ASSIGN = 618, + MOD_ASSIGN = 619, + LEFT_ASSIGN = 620, + RIGHT_ASSIGN = 621, + AND_ASSIGN = 622, + XOR_ASSIGN = 623, + OR_ASSIGN = 624, + SUB_ASSIGN = 625, + LEFT_PAREN = 626, + RIGHT_PAREN = 627, + LEFT_BRACKET = 628, + RIGHT_BRACKET = 629, + LEFT_BRACE = 630, + RIGHT_BRACE = 631, + DOT = 632, + COMMA = 633, + COLON = 634, + EQUAL = 635, + SEMICOLON = 636, + BANG = 637, + DASH = 638, + TILDE = 639, + PLUS = 640, + STAR = 641, + SLASH = 642, + PERCENT = 643, + LEFT_ANGLE = 644, + RIGHT_ANGLE = 645, + VERTICAL_BAR = 646, + CARET = 647, + AMPERSAND = 648, + QUESTION = 649, + INVARIANT = 650, + PRECISE = 651, + HIGH_PRECISION = 652, + MEDIUM_PRECISION = 653, + LOW_PRECISION = 654, + PRECISION = 655, + PACKED = 656, + RESOURCE = 657, + SUPERP = 658 }; #endif @@ -485,7 +489,7 @@ union YYSTYPE }; } interm; -#line 489 "MachineIndependent/glslang_tab.cpp.h" /* yacc.c:1909 */ +#line 493 "MachineIndependent/glslang_tab.cpp.h" /* yacc.c:1909 */ }; typedef union YYSTYPE YYSTYPE; diff --git a/glslang/MachineIndependent/intermOut.cpp b/glslang/MachineIndependent/intermOut.cpp index a37122f..5aa5776 100644 --- a/glslang/MachineIndependent/intermOut.cpp +++ b/glslang/MachineIndependent/intermOut.cpp @@ -1049,6 +1049,10 @@ bool TOutputTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node case EOpSubpassLoadMS: out.debug << "subpassLoadMS"; break; #ifdef NV_EXTENSIONS + case EOpTraceNV: out.debug << "traceNVX"; break; + case EOpReportIntersectionNV: out.debug << "reportIntersectionNVX"; break; + case EOpIgnoreIntersectionNV: out.debug << "ignoreIntersectionNVX"; break; + case EOpTerminateRayNV: out.debug << "terminateRayNVX"; break; case EOpWritePackedPrimitiveIndices4x8NV: out.debug << "writePackedPrimitiveIndices4x8NV"; break; #endif diff --git a/glslang/MachineIndependent/linkValidate.cpp b/glslang/MachineIndependent/linkValidate.cpp index 5ddda58..7ce7cdd 100644 --- a/glslang/MachineIndependent/linkValidate.cpp +++ b/glslang/MachineIndependent/linkValidate.cpp @@ -279,6 +279,9 @@ void TIntermediate::mergeTrees(TInfoSink& infoSink, TIntermediate& unit) } // Getting this far means we have two existing trees to merge... +#ifdef NV_EXTENSIONS + numShaderRecordNVBlocks += unit.numShaderRecordNVBlocks; +#endif #ifdef NV_EXTENSIONS numTaskNVBlocks += unit.numTaskNVBlocks; @@ -710,6 +713,15 @@ void TIntermediate::finalCheck(TInfoSink& infoSink, bool keepUncalled) break; #ifdef NV_EXTENSIONS + case EShLangRayGenNV: + case EShLangIntersectNV: + case EShLangAnyHitNV: + case EShLangClosestHitNV: + case EShLangMissNV: + case EShLangCallableNV: + if (numShaderRecordNVBlocks > 1) + error(infoSink, "Only one shaderRecordNVX buffer block is allowed per stage"); + break; case EShLangMeshNV: if (outputPrimitive == ElgNone) error(infoSink, "At least one shader must specify an output layout primitive"); diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h index 626a2ba..3fab9ce 100644 --- a/glslang/MachineIndependent/localintermediate.h +++ b/glslang/MachineIndependent/localintermediate.h @@ -236,6 +236,7 @@ public: #ifdef NV_EXTENSIONS layoutOverrideCoverage(false), geoPassthroughEXT(false), + numShaderRecordNVBlocks(0), computeDerivativeMode(LayoutDerivativeNone), primitives(TQualifier::layoutNotSet), numTaskNVBlocks(0), @@ -430,6 +431,7 @@ public: int getNumErrors() const { return numErrors; } void addPushConstantCount() { ++numPushConstants; } #ifdef NV_EXTENSIONS + void addShaderRecordNVCount() { ++numShaderRecordNVBlocks; } void addTaskNVCount() { ++numTaskNVBlocks; } #endif @@ -753,6 +755,7 @@ protected: #ifdef NV_EXTENSIONS bool layoutOverrideCoverage; bool geoPassthroughEXT; + int numShaderRecordNVBlocks; ComputeDerivativeMode computeDerivativeMode; int primitives; int numTaskNVBlocks; diff --git a/glslang/Public/ShaderLang.h b/glslang/Public/ShaderLang.h index 1f29ee2..5852024 100755 --- a/glslang/Public/ShaderLang.h +++ b/glslang/Public/ShaderLang.h @@ -95,6 +95,12 @@ typedef enum { EShLangFragment, EShLangCompute, #ifdef NV_EXTENSIONS + EShLangRayGenNV, + EShLangIntersectNV, + EShLangAnyHitNV, + EShLangClosestHitNV, + EShLangMissNV, + EShLangCallableNV, EShLangTaskNV, EShLangMeshNV, #endif @@ -109,6 +115,12 @@ typedef enum { EShLangFragmentMask = (1 << EShLangFragment), EShLangComputeMask = (1 << EShLangCompute), #ifdef NV_EXTENSIONS + EShLangRayGenNVMask = (1 << EShLangRayGenNV), + EShLangIntersectNVMask = (1 << EShLangIntersectNV), + EShLangAnyHitNVMask = (1 << EShLangAnyHitNV), + EShLangClosestHitNVMask = (1 << EShLangClosestHitNV), + EShLangMissNVMask = (1 << EShLangMissNV), + EShLangCallableNVMask = (1 << EShLangCallableNV), EShLangTaskNVMask = (1 << EShLangTaskNV), EShLangMeshNVMask = (1 << EShLangMeshNV), #endif diff --git a/gtests/Spv.FromFile.cpp b/gtests/Spv.FromFile.cpp index 151ad2b..cf56c4c 100644 --- a/gtests/Spv.FromFile.cpp +++ b/gtests/Spv.FromFile.cpp @@ -501,6 +501,17 @@ INSTANTIATE_TEST_CASE_P( "spv.multiviewPerViewAttributes.vert", "spv.multiviewPerViewAttributes.tesc", "spv.atomicInt64.comp", + "spv.RayGenShader.rgen", + "spv.RayGenShader_Errors.rgen", + "spv.RayConstants.rgen", + "spv.IntersectShader.rint", + "spv.IntersectShader_Errors.rint", + "spv.AnyHitShader.rahit", + "spv.AnyHitShader_Errors.rahit", + "spv.ClosestHitShader.rchit", + "spv.ClosestHitShader_Errors.rchit", + "spv.MissShader.rmiss", + "spv.MissShader_Errors.rmiss", "spv.fragmentShaderBarycentric.frag", "spv.fragmentShaderBarycentric2.frag", "spv.computeShaderDerivatives.comp", diff --git a/gtests/TestFixture.cpp b/gtests/TestFixture.cpp index c560e1f..d899c78 100644 --- a/gtests/TestFixture.cpp +++ b/gtests/TestFixture.cpp @@ -61,6 +61,18 @@ EShLanguage GetShaderStage(const std::string& stage) } else if (stage == "comp") { return EShLangCompute; #ifdef NV_EXTENSIONS + } else if (stage == "rgen") { + return EShLangRayGenNV; + } else if (stage == "rint") { + return EShLangIntersectNV; + } else if (stage == "rahit") { + return EShLangAnyHitNV; + } else if (stage == "rchit") { + return EShLangClosestHitNV; + } else if (stage == "rmiss") { + return EShLangMissNV; + } else if (stage == "rcall") { + return EShLangCallableNV; } else if (stage == "task") { return EShLangTaskNV; } else if (stage == "mesh") { -- 2.7.4