diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index 762a292e..c6dcef5e 100644 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -673,6 +673,13 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI case glslang::EbvFace: return spv::BuiltInFrontFacing; case glslang::EbvFragDepth: return spv::BuiltInFragDepth; + case glslang::EbvNumWorkGroups: return spv::BuiltInNumWorkgroups; + case glslang::EbvWorkGroupSize: return spv::BuiltInWorkgroupSize; + case glslang::EbvWorkGroupId: return spv::BuiltInWorkgroupId; + case glslang::EbvLocalInvocationId: return spv::BuiltInLocalInvocationId; + case glslang::EbvLocalInvocationIndex: return spv::BuiltInLocalInvocationIndex; + case glslang::EbvGlobalInvocationId: return spv::BuiltInGlobalInvocationId; + #ifndef GLSLANG_WEB // These *Distance capabilities logically belong here, but if the member is declared and // then never used, consumers of SPIR-V prefer the capability not be declared. @@ -757,12 +764,6 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI case glslang::EbvTessCoord: return spv::BuiltInTessCoord; case glslang::EbvPatchVertices: return spv::BuiltInPatchVertices; case glslang::EbvHelperInvocation: return spv::BuiltInHelperInvocation; - case glslang::EbvNumWorkGroups: return spv::BuiltInNumWorkgroups; - case glslang::EbvWorkGroupSize: return spv::BuiltInWorkgroupSize; - case glslang::EbvWorkGroupId: return spv::BuiltInWorkgroupId; - case glslang::EbvLocalInvocationId: return spv::BuiltInLocalInvocationId; - case glslang::EbvLocalInvocationIndex: return spv::BuiltInLocalInvocationIndex; - case glslang::EbvGlobalInvocationId: return spv::BuiltInGlobalInvocationId; case glslang::EbvSubGroupSize: builder.addExtension(spv::E_SPV_KHR_shader_ballot); @@ -1200,11 +1201,11 @@ spv::StorageClass TGlslangToSpvTraverser::TranslateStorageClass(const glslang::T } switch (type.getQualifier().storage) { - case glslang::EvqGlobal: return spv::StorageClassPrivate; - case glslang::EvqConstReadOnly: return spv::StorageClassFunction; - case glslang::EvqTemporary: return spv::StorageClassFunction; -#ifndef GLSLANG_WEB + case glslang::EvqGlobal: return spv::StorageClassPrivate; + case glslang::EvqConstReadOnly: return spv::StorageClassFunction; + case glslang::EvqTemporary: return spv::StorageClassFunction; case glslang::EvqShared: return spv::StorageClassWorkgroup; +#ifndef GLSLANG_WEB case glslang::EvqPayloadNV: return spv::StorageClassRayPayloadNV; case glslang::EvqPayloadInNV: return spv::StorageClassIncomingRayPayloadNV; case glslang::EvqHitAttrNV: return spv::StorageClassHitAttributeNV; @@ -2548,7 +2549,6 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt binOp = glslang::EOpMod; break; -#ifndef GLSLANG_WEB case glslang::EOpEmitVertex: case glslang::EOpEndPrimitive: case glslang::EOpBarrier: @@ -2572,6 +2572,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt // These all have 0 operands and will naturally finish up in the code below for 0 operands break; +#ifndef GLSLANG_WEB case glslang::EOpAtomicStore: noReturnValue = true; // fallthrough @@ -3537,8 +3538,8 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty builder.addIncorporatedExtension("SPV_EXT_descriptor_indexing", spv::Spv_1_5); builder.addCapability(spv::CapabilityRuntimeDescriptorArrayEXT); } - spvType = builder.makeRuntimeArray(spvType); #endif + spvType = builder.makeRuntimeArray(spvType); } if (stride > 0) builder.addDecoration(spvType, spv::DecorationArrayStride, stride); @@ -7172,6 +7173,48 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv:: case glslang::EOpRefract: libCall = spv::GLSLstd450Refract; break; + case glslang::EOpBarrier: + { + // This is for the extended controlBarrier function, with four operands. + // The unextended barrier() goes through createNoArgOperation. + assert(operands.size() == 4); + unsigned int executionScope = builder.getConstantScalar(operands[0]); + unsigned int memoryScope = builder.getConstantScalar(operands[1]); + unsigned int semantics = builder.getConstantScalar(operands[2]) | builder.getConstantScalar(operands[3]); + builder.createControlBarrier((spv::Scope)executionScope, (spv::Scope)memoryScope, (spv::MemorySemanticsMask)semantics); + if (semantics & (spv::MemorySemanticsMakeAvailableKHRMask | + spv::MemorySemanticsMakeVisibleKHRMask | + spv::MemorySemanticsOutputMemoryKHRMask | + spv::MemorySemanticsVolatileMask)) { + builder.addCapability(spv::CapabilityVulkanMemoryModelKHR); + } + if (glslangIntermediate->usingVulkanMemoryModel() && (executionScope == spv::ScopeDevice || memoryScope == spv::ScopeDevice)) { + builder.addCapability(spv::CapabilityVulkanMemoryModelDeviceScopeKHR); + } + return 0; + } + break; + case glslang::EOpMemoryBarrier: + { + // This is for the extended memoryBarrier function, with three operands. + // The unextended memoryBarrier() goes through createNoArgOperation. + assert(operands.size() == 3); + unsigned int memoryScope = builder.getConstantScalar(operands[0]); + unsigned int semantics = builder.getConstantScalar(operands[1]) | builder.getConstantScalar(operands[2]); + builder.createMemoryBarrier((spv::Scope)memoryScope, (spv::MemorySemanticsMask)semantics); + if (semantics & (spv::MemorySemanticsMakeAvailableKHRMask | + spv::MemorySemanticsMakeVisibleKHRMask | + spv::MemorySemanticsOutputMemoryKHRMask | + spv::MemorySemanticsVolatileMask)) { + builder.addCapability(spv::CapabilityVulkanMemoryModelKHR); + } + if (glslangIntermediate->usingVulkanMemoryModel() && memoryScope == spv::ScopeDevice) { + builder.addCapability(spv::CapabilityVulkanMemoryModelDeviceScopeKHR); + } + return 0; + } + break; + #ifndef GLSLANG_WEB case glslang::EOpInterpolateAtSample: if (typeProxy == glslang::EbtFloat16) @@ -7330,47 +7373,6 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv:: extBuiltins = getExtBuiltins(spv::E_SPV_AMD_shader_explicit_vertex_parameter); libCall = spv::InterpolateAtVertexAMD; break; - case glslang::EOpBarrier: - { - // This is for the extended controlBarrier function, with four operands. - // The unextended barrier() goes through createNoArgOperation. - assert(operands.size() == 4); - unsigned int executionScope = builder.getConstantScalar(operands[0]); - unsigned int memoryScope = builder.getConstantScalar(operands[1]); - unsigned int semantics = builder.getConstantScalar(operands[2]) | builder.getConstantScalar(operands[3]); - builder.createControlBarrier((spv::Scope)executionScope, (spv::Scope)memoryScope, (spv::MemorySemanticsMask)semantics); - if (semantics & (spv::MemorySemanticsMakeAvailableKHRMask | - spv::MemorySemanticsMakeVisibleKHRMask | - spv::MemorySemanticsOutputMemoryKHRMask | - spv::MemorySemanticsVolatileMask)) { - builder.addCapability(spv::CapabilityVulkanMemoryModelKHR); - } - if (glslangIntermediate->usingVulkanMemoryModel() && (executionScope == spv::ScopeDevice || memoryScope == spv::ScopeDevice)) { - builder.addCapability(spv::CapabilityVulkanMemoryModelDeviceScopeKHR); - } - return 0; - } - break; - case glslang::EOpMemoryBarrier: - { - // This is for the extended memoryBarrier function, with three operands. - // The unextended memoryBarrier() goes through createNoArgOperation. - assert(operands.size() == 3); - unsigned int memoryScope = builder.getConstantScalar(operands[0]); - unsigned int semantics = builder.getConstantScalar(operands[1]) | builder.getConstantScalar(operands[2]); - builder.createMemoryBarrier((spv::Scope)memoryScope, (spv::MemorySemanticsMask)semantics); - if (semantics & (spv::MemorySemanticsMakeAvailableKHRMask | - spv::MemorySemanticsMakeVisibleKHRMask | - spv::MemorySemanticsOutputMemoryKHRMask | - spv::MemorySemanticsVolatileMask)) { - builder.addCapability(spv::CapabilityVulkanMemoryModelKHR); - } - if (glslangIntermediate->usingVulkanMemoryModel() && memoryScope == spv::ScopeDevice) { - builder.addCapability(spv::CapabilityVulkanMemoryModelDeviceScopeKHR); - } - return 0; - } - break; case glslang::EOpReportIntersectionNV: { @@ -7478,17 +7480,18 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv:: // Intrinsics with no arguments (or no return value, and no precision). spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId) { -#ifndef GLSLANG_WEB // GLSL memory barriers use queuefamily scope in new model, device scope in old model spv::Scope memoryBarrierScope = glslangIntermediate->usingVulkanMemoryModel() ? spv::ScopeQueueFamilyKHR : spv::ScopeDevice; switch (op) { +#ifndef GLSLANG_WEB case glslang::EOpEmitVertex: builder.createNoResultOp(spv::OpEmitVertex); return 0; case glslang::EOpEndPrimitive: builder.createNoResultOp(spv::OpEndPrimitive); return 0; +#endif case glslang::EOpBarrier: if (glslangIntermediate->getStage() == EShLangTessControl) { if (glslangIntermediate->usingVulkanMemoryModel()) { @@ -7509,18 +7512,10 @@ spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op, spv: builder.createMemoryBarrier(memoryBarrierScope, spv::MemorySemanticsAllMemory | spv::MemorySemanticsAcquireReleaseMask); return 0; - case glslang::EOpMemoryBarrierAtomicCounter: - builder.createMemoryBarrier(memoryBarrierScope, spv::MemorySemanticsAtomicCounterMemoryMask | - spv::MemorySemanticsAcquireReleaseMask); - return 0; case glslang::EOpMemoryBarrierBuffer: builder.createMemoryBarrier(memoryBarrierScope, spv::MemorySemanticsUniformMemoryMask | spv::MemorySemanticsAcquireReleaseMask); return 0; - case glslang::EOpMemoryBarrierImage: - builder.createMemoryBarrier(memoryBarrierScope, spv::MemorySemanticsImageMemoryMask | - spv::MemorySemanticsAcquireReleaseMask); - return 0; case glslang::EOpMemoryBarrierShared: builder.createMemoryBarrier(memoryBarrierScope, spv::MemorySemanticsWorkgroupMemoryMask | spv::MemorySemanticsAcquireReleaseMask); @@ -7529,6 +7524,15 @@ spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op, spv: builder.createMemoryBarrier(spv::ScopeWorkgroup, spv::MemorySemanticsAllMemory | spv::MemorySemanticsAcquireReleaseMask); return 0; +#ifndef GLSLANG_WEB + case glslang::EOpMemoryBarrierAtomicCounter: + builder.createMemoryBarrier(memoryBarrierScope, spv::MemorySemanticsAtomicCounterMemoryMask | + spv::MemorySemanticsAcquireReleaseMask); + return 0; + case glslang::EOpMemoryBarrierImage: + builder.createMemoryBarrier(memoryBarrierScope, spv::MemorySemanticsImageMemoryMask | + spv::MemorySemanticsAcquireReleaseMask); + return 0; case glslang::EOpAllMemoryBarrierWithGroupSync: builder.createControlBarrier(spv::ScopeWorkgroup, spv::ScopeDevice, spv::MemorySemanticsAllMemory | @@ -7620,10 +7624,10 @@ spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op, spv: builder.addCapability(spv::CapabilityShaderClockKHR); return builder.createOp(spv::OpReadClockKHR, typeId, args); } +#endif default: break; } -#endif logger->missingFunctionality("unknown operation with no arguments"); diff --git a/Test/baseResults/size b/Test/baseResults/size index 48487765..a7b99b96 100644 --- a/Test/baseResults/size +++ b/Test/baseResults/size @@ -1 +1 @@ -388096 ../build/install/bin/glslangValidator.exe +399360 ../build/install/bin/glslangValidator.exe diff --git a/Test/baseResults/web.comp.out b/Test/baseResults/web.comp.out index e69de88c..711c7203 100644 --- a/Test/baseResults/web.comp.out +++ b/Test/baseResults/web.comp.out @@ -1,75 +1,140 @@ ; SPIR-V ; Version: 1.0 ; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 55 +; Bound: 91 ; Schema: 0 OpCapability Shader %1 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" + OpEntryPoint GLCompute %main "main" %gl_NumWorkGroups %gl_WorkGroupID %gl_LocalInvocationID %gl_GlobalInvocationID %gl_LocalInvocationIndex OpExecutionMode %main LocalSize 2 5 7 OpSource ESSL 310 OpName %main "main" + OpName %bName "bName" + OpMemberName %bName 0 "size" + OpMemberName %bName 1 "count" + OpMemberName %bName 2 "data" + OpName %bInst "bInst" OpName %s "s" OpName %arrX "arrX" OpName %arrY "arrY" OpName %arrZ "arrZ" - OpDecorate %19 SpecId 18 - OpDecorate %21 SpecId 19 + OpName %gl_NumWorkGroups "gl_NumWorkGroups" + OpName %gl_WorkGroupID "gl_WorkGroupID" + OpName %gl_LocalInvocationID "gl_LocalInvocationID" + OpName %gl_GlobalInvocationID "gl_GlobalInvocationID" + OpName %gl_LocalInvocationIndex "gl_LocalInvocationIndex" + OpDecorate %_runtimearr_v4float ArrayStride 16 + OpMemberDecorate %bName 0 Offset 0 + OpMemberDecorate %bName 1 Offset 16 + OpMemberDecorate %bName 2 Offset 32 + OpDecorate %bName BufferBlock + OpDecorate %bInst DescriptorSet 0 + OpDecorate %bInst Binding 0 + OpDecorate %39 SpecId 18 + OpDecorate %41 SpecId 19 + OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize + OpDecorate %gl_NumWorkGroups BuiltIn NumWorkgroups + OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId + OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_LocalInvocationIndex BuiltIn LocalInvocationIndex %void = OpTypeVoid %3 = OpTypeFunction %void + %uint = OpTypeInt 32 0 + %uint_2 = OpConstant %uint 2 + %uint_264 = OpConstant %uint 264 + %int = OpTypeInt 32 1 + %v3uint = OpTypeVector %uint 3 %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 - %uint = OpTypeInt 32 0 +%_runtimearr_v4float = OpTypeRuntimeArray %v4float + %bName = OpTypeStruct %int %v3uint %_runtimearr_v4float +%_ptr_Uniform_bName = OpTypePointer Uniform %bName + %bInst = OpVariable %_ptr_Uniform_bName Uniform + %int_2 = OpConstant %int 2 + %int_0 = OpConstant %int 0 +%_ptr_Uniform_int = OpTypePointer Uniform %int + %float_7 = OpConstant %float 7 + %24 = OpConstantComposite %v4float %float_7 %float_7 %float_7 %float_7 +%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float + %uint_1 = OpConstant %uint 1 + %uint_3400 = OpConstant %uint 3400 + %uint_72 = OpConstant %uint 72 %uint_197645 = OpConstant %uint 197645 %_arr_v4float_uint_197645 = OpTypeArray %v4float %uint_197645 -%_ptr_Function__arr_v4float_uint_197645 = OpTypePointer Function %_arr_v4float_uint_197645 - %int = OpTypeInt 32 1 +%_ptr_Workgroup__arr_v4float_uint_197645 = OpTypePointer Workgroup %_arr_v4float_uint_197645 + %s = OpVariable %_ptr_Workgroup__arr_v4float_uint_197645 Workgroup %int_3 = OpConstant %int 3 - %float_1 = OpConstant %float 1 - %16 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Function_v4float = OpTypePointer Function %v4float - %19 = OpSpecConstant %uint 2 + %float_0 = OpConstant %float 0 + %39 = OpSpecConstant %uint 2 %uint_5 = OpConstant %uint 5 - %21 = OpSpecConstant %uint 7 - %v3uint = OpTypeVector %uint 3 - %23 = OpSpecConstantComposite %v3uint %19 %uint_5 %21 + %41 = OpSpecConstant %uint 7 +%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %39 %uint_5 %41 %uint_0 = OpConstant %uint 0 -%_arr_int_25 = OpTypeArray %int %25 -%_ptr_Private__arr_int_25 = OpTypePointer Private %_arr_int_25 - %arrX = OpVariable %_ptr_Private__arr_int_25 Private - %int_0 = OpConstant %int 0 +%_arr_int_44 = OpTypeArray %int %44 +%_ptr_Private__arr_int_44 = OpTypePointer Private %_arr_int_44 + %arrX = OpVariable %_ptr_Private__arr_int_44 Private %_ptr_Private_int = OpTypePointer Private %int - %uint_1 = OpConstant %uint 1 -%_arr_int_34 = OpTypeArray %int %34 -%_ptr_Private__arr_int_34 = OpTypePointer Private %_arr_int_34 - %arrY = OpVariable %_ptr_Private__arr_int_34 Private - %uint_2 = OpConstant %uint 2 -%_arr_int_42 = OpTypeArray %int %42 -%_ptr_Private__arr_int_42 = OpTypePointer Private %_arr_int_42 - %arrZ = OpVariable %_ptr_Private__arr_int_42 Private +%_arr_int_52 = OpTypeArray %int %52 +%_ptr_Private__arr_int_52 = OpTypePointer Private %_arr_int_52 + %arrY = OpVariable %_ptr_Private__arr_int_52 Private +%_arr_int_59 = OpTypeArray %int %59 +%_ptr_Private__arr_int_59 = OpTypePointer Private %_arr_int_59 + %arrZ = OpVariable %_ptr_Private__arr_int_59 Private +%_ptr_Workgroup_v4float = OpTypePointer Workgroup %v4float + %int_1 = OpConstant %int 1 +%_ptr_Input_v3uint = OpTypePointer Input %v3uint +%gl_NumWorkGroups = OpVariable %_ptr_Input_v3uint Input +%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input +%gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input +%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input +%_ptr_Input_uint = OpTypePointer Input %uint +%gl_LocalInvocationIndex = OpVariable %_ptr_Input_uint Input +%_ptr_Uniform_v3uint = OpTypePointer Uniform %v3uint %int_197645 = OpConstant %int 197645 %main = OpFunction %void None %3 %5 = OpLabel - %s = OpVariable %_ptr_Function__arr_v4float_uint_197645 Function - %18 = OpAccessChain %_ptr_Function_v4float %s %int_3 - OpStore %18 %16 - %25 = OpCompositeExtract %uint %23 0 - %31 = OpAccessChain %_ptr_Private_int %arrX %int_0 - %32 = OpLoad %int %31 - %34 = OpCompositeExtract %uint %23 1 - %38 = OpAccessChain %_ptr_Private_int %arrY %int_0 - %39 = OpLoad %int %38 - %40 = OpIMul %int %32 %39 - %42 = OpCompositeExtract %uint %23 2 - %46 = OpAccessChain %_ptr_Private_int %arrZ %int_0 - %47 = OpLoad %int %46 - %48 = OpIMul %int %40 %47 - %49 = OpConvertSToF %float %48 - %50 = OpAccessChain %_ptr_Function_v4float %s %int_3 - %51 = OpLoad %v4float %50 - %52 = OpVectorTimesScalar %v4float %51 %49 - %53 = OpAccessChain %_ptr_Function_v4float %s %int_3 - OpStore %53 %52 + OpControlBarrier %uint_2 %uint_2 %uint_264 + %20 = OpAccessChain %_ptr_Uniform_int %bInst %int_0 + %21 = OpLoad %int %20 + %22 = OpSDiv %int %21 %int_2 + %26 = OpAccessChain %_ptr_Uniform_v4float %bInst %int_2 %22 + %27 = OpLoad %v4float %26 + %28 = OpFMul %v4float %27 %24 + %29 = OpAccessChain %_ptr_Uniform_v4float %bInst %int_2 %22 + OpStore %29 %28 + OpMemoryBarrier %uint_1 %uint_3400 + OpMemoryBarrier %uint_2 %uint_3400 + OpMemoryBarrier %uint_1 %uint_264 + OpMemoryBarrier %uint_1 %uint_72 + %44 = OpCompositeExtract %uint %gl_WorkGroupSize 0 + %49 = OpAccessChain %_ptr_Private_int %arrX %int_0 + %50 = OpLoad %int %49 + %51 = OpConvertSToF %float %50 + %52 = OpCompositeExtract %uint %gl_WorkGroupSize 1 + %56 = OpAccessChain %_ptr_Private_int %arrY %int_0 + %57 = OpLoad %int %56 + %58 = OpConvertSToF %float %57 + %59 = OpCompositeExtract %uint %gl_WorkGroupSize 2 + %63 = OpAccessChain %_ptr_Private_int %arrZ %int_0 + %64 = OpLoad %int %63 + %65 = OpConvertSToF %float %64 + %66 = OpCompositeConstruct %v4float %float_0 %51 %58 %65 + %68 = OpAccessChain %_ptr_Workgroup_v4float %s %int_3 + OpStore %68 %66 + %72 = OpLoad %v3uint %gl_NumWorkGroups + %73 = OpIAdd %v3uint %72 %gl_WorkGroupSize + %75 = OpLoad %v3uint %gl_WorkGroupID + %76 = OpIAdd %v3uint %73 %75 + %78 = OpLoad %v3uint %gl_LocalInvocationID + %79 = OpIAdd %v3uint %76 %78 + %81 = OpLoad %v3uint %gl_GlobalInvocationID + %84 = OpLoad %uint %gl_LocalInvocationIndex + %85 = OpCompositeConstruct %v3uint %84 %84 %84 + %86 = OpIMul %v3uint %81 %85 + %87 = OpIAdd %v3uint %79 %86 + %89 = OpAccessChain %_ptr_Uniform_v3uint %bInst %int_1 + OpStore %89 %87 OpReturn OpFunctionEnd diff --git a/Test/web.comp b/Test/web.comp index 9cc23bff..24ef43c8 100644 --- a/Test/web.comp +++ b/Test/web.comp @@ -5,6 +5,7 @@ layout(local_size_x_id = 18, local_size_z_id = 19) in; layout(local_size_x = 2) in; layout(local_size_y = 5) in; layout(local_size_z = 7) in; + const int total = gl_MaxComputeWorkGroupCount.x + gl_MaxComputeWorkGroupCount.y + gl_MaxComputeWorkGroupCount.z @@ -17,12 +18,24 @@ int arrX[gl_WorkGroupSize.x]; int arrY[gl_WorkGroupSize.y]; int arrZ[gl_WorkGroupSize.z]; +layout(binding = 0, set = 0) buffer bName { + int size; + uvec3 count; + vec4 data[]; +} bInst; + void main() { barrier(); + + bInst.data[bInst.size / 2] *= vec4(7.0); + memoryBarrier(); - memoryBarrierShared(); groupMemoryBarrier(); - s[3] = vec4(1.0); - s[3] *= arrX[0] * arrY[0] * arrZ[0]; + memoryBarrierShared(); + memoryBarrierBuffer(); + + s[3] = vec4(0, arrX[0], arrY[0], arrZ[0]); + bInst.count = gl_NumWorkGroups + gl_WorkGroupSize + gl_WorkGroupID + gl_LocalInvocationID + + gl_GlobalInvocationID * gl_LocalInvocationIndex; } diff --git a/glslang/MachineIndependent/Initialize.cpp b/glslang/MachineIndependent/Initialize.cpp index cb3baf18..18590af1 100644 --- a/glslang/MachineIndependent/Initialize.cpp +++ b/glslang/MachineIndependent/Initialize.cpp @@ -3819,13 +3819,13 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV stageBuiltins[EShLangCompute].append( "void memoryBarrierShared();" "void groupMemoryBarrier();" + "void memoryBarrierBuffer();" ); } #ifndef GLSLANG_WEB if ((profile != EEsProfile && version >= 420) || esBarrier) { commonBuiltins.append( "void memoryBarrierAtomicCounter();" - "void memoryBarrierBuffer();" "void memoryBarrierImage();" ); } @@ -7692,8 +7692,10 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.setFunctionExtensions("dFdyCoarse", 1, &E_GL_NV_compute_shader_derivatives); symbolTable.setFunctionExtensions("fwidthCoarse", 1, &E_GL_NV_compute_shader_derivatives); } - +#endif break; + +#ifndef GLSLANG_WEB case EShLangRayGenNV: case EShLangIntersectNV: case EShLangAnyHitNV: @@ -8108,6 +8110,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.relateToOperator("barrier", EOpBarrier); symbolTable.relateToOperator("memoryBarrier", EOpMemoryBarrier); + symbolTable.relateToOperator("memoryBarrierBuffer", EOpMemoryBarrierBuffer); #ifndef GLSLANG_WEB symbolTable.relateToOperator("packInt2x16", EOpPackInt2x16); @@ -8132,7 +8135,6 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.relateToOperator("controlBarrier", EOpBarrier); symbolTable.relateToOperator("memoryBarrierAtomicCounter", EOpMemoryBarrierAtomicCounter); - symbolTable.relateToOperator("memoryBarrierBuffer", EOpMemoryBarrierBuffer); symbolTable.relateToOperator("memoryBarrierImage", EOpMemoryBarrierImage); symbolTable.relateToOperator("atomicLoad", EOpAtomicLoad); diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 786da187..f4c8b160 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -3813,10 +3813,6 @@ void TParseContext::arraySizesCheck(const TSourceLoc& loc, const TQualifier& qua // for ES, if size isn't coming from an initializer, it has to be explicitly declared now, // with very few exceptions - // last member of ssbo block exception: - if (qualifier.storage == EvqBuffer && lastMember) - return; - // implicitly-sized io exceptions: switch (language) { case EShLangGeometry: @@ -3851,6 +3847,10 @@ void TParseContext::arraySizesCheck(const TSourceLoc& loc, const TQualifier& qua #endif + // last member of ssbo block exception: + if (qualifier.storage == EvqBuffer && lastMember) + return; + arraySizeRequiredCheck(loc, *arraySizes); } @@ -5384,6 +5384,7 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi #endif case EShLangCompute: if (id.compare(0, 11, "local_size_") == 0) { +#ifndef GLSLANG_WEB if (language == EShLangMeshNV || language == EShLangTaskNV) { requireExtensions(loc, 1, &E_GL_NV_mesh_shader, "gl_WorkGroupSize"); } @@ -5392,6 +5393,7 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi profileRequires(loc, EEsProfile, 310, 0, "gl_WorkGroupSize"); profileRequires(loc, ~EEsProfile, 430, E_GL_ARB_compute_shader, "gl_WorkGroupSize"); } +#endif if (nonLiteral) error(loc, "needs a literal integer", "local_size", ""); if (id.size() == 12 && value == 0) { @@ -8017,7 +8019,9 @@ void TParseContext::updateStandaloneQualifierDefaults(const TSourceLoc& loc, con } if (intermediate.getLocalSize(i) > (unsigned int)max) error(loc, "too large; see gl_MaxComputeWorkGroupSize", "local_size", ""); - } else if (language == EShLangMeshNV) { + } +#ifndef GLSLANG_WEB + else if (language == EShLangMeshNV) { switch (i) { case 0: max = resources.maxMeshWorkGroupSizeX_NV; break; case 1: max = resources.maxMeshWorkGroupSizeY_NV; break; @@ -8035,7 +8039,9 @@ void TParseContext::updateStandaloneQualifierDefaults(const TSourceLoc& loc, con } if (intermediate.getLocalSize(i) > (unsigned int)max) error(loc, "too large; see gl_MaxTaskWorkGroupSizeNV", "local_size", ""); - } else { + } +#endif + else { assert(0); } diff --git a/glslang/MachineIndependent/Scan.cpp b/glslang/MachineIndependent/Scan.cpp index 459e49a3..7b0093d7 100644 --- a/glslang/MachineIndependent/Scan.cpp +++ b/glslang/MachineIndependent/Scan.cpp @@ -343,6 +343,7 @@ void TScanContext::fillInKeywordMap() (*KeywordMap)["const"] = CONST; (*KeywordMap)["uniform"] = UNIFORM; + (*KeywordMap)["buffer"] = BUFFER; (*KeywordMap)["in"] = IN; (*KeywordMap)["out"] = OUT; (*KeywordMap)["smooth"] = SMOOTH; @@ -410,7 +411,6 @@ void TScanContext::fillInKeywordMap() (*KeywordMap)["attribute"] = ATTRIBUTE; (*KeywordMap)["varying"] = VARYING; (*KeywordMap)["noperspective"] = NOPERSPECTIVE; - (*KeywordMap)["buffer"] = BUFFER; (*KeywordMap)["coherent"] = COHERENT; (*KeywordMap)["devicecoherent"] = DEVICECOHERENT; (*KeywordMap)["queuefamilycoherent"] = QUEUEFAMILYCOHERENT; @@ -905,6 +905,13 @@ int TScanContext::tokenizeIdentifier() case CASE: return keyword; + case BUFFER: + afterBuffer = true; + if ((parseContext.isEsProfile() && parseContext.version < 310) || + (!parseContext.isEsProfile() && parseContext.version < 430)) + return identifierOrType(); + return keyword; + case STRUCT: afterStruct = true; return keyword; @@ -998,12 +1005,6 @@ int TScanContext::tokenizeIdentifier() if (parseContext.isEsProfile() && parseContext.version >= 300) reservedWord(); return keyword; - case BUFFER: - afterBuffer = true; - if ((parseContext.isEsProfile() && parseContext.version < 310) || - (!parseContext.isEsProfile() && parseContext.version < 430)) - return identifierOrType(); - return keyword; case PAYLOADNV: case PAYLOADINNV: case HITATTRNV: diff --git a/glslang/MachineIndependent/glslang.m4 b/glslang/MachineIndependent/glslang.m4 index e9780e2a..20f2ba40 100644 --- a/glslang/MachineIndependent/glslang.m4 +++ b/glslang/MachineIndependent/glslang.m4 @@ -38,7 +38,7 @@ // // Do not edit the .y file, only edit the .m4 file. -// The .y bison file is not a source file, it is a derivitive of the .m4 file. +// The .y bison file is not a source file, it is a derivative of the .m4 file. // The m4 file needs to be processed by m4 to generate the .y bison file. // // Code sandwiched between a pair: @@ -49,7 +49,7 @@ // ... // GLSLANG_WEB_EXCLUDE_OFF // -// Will be exluded from the grammar when m4 is executed as: +// Will be excluded from the grammar when m4 is executed as: // // m4 -P -DGLSLANG_WEB // @@ -277,7 +277,7 @@ GLSLANG_WEB_EXCLUDE_OFF %token CENTROID IN OUT INOUT %token STRUCT VOID WHILE %token BREAK CONTINUE DO ELSE FOR IF DISCARD RETURN SWITCH CASE DEFAULT -%token UNIFORM SHARED +%token UNIFORM SHARED BUFFER %token FLAT SMOOTH LAYOUT GLSLANG_WEB_EXCLUDE_ON @@ -285,7 +285,7 @@ GLSLANG_WEB_EXCLUDE_ON %token INT64CONSTANT UINT64CONSTANT %token SUBROUTINE DEMOTE %token PAYLOADNV PAYLOADINNV HITATTRNV CALLDATANV CALLDATAINNV -%token PATCH SAMPLE BUFFER NONUNIFORM +%token PATCH SAMPLE NONUNIFORM %token COHERENT VOLATILE RESTRICT READONLY WRITEONLY DEVICECOHERENT QUEUEFAMILYCOHERENT WORKGROUPCOHERENT %token SUBGROUPCOHERENT NONPRIVATE %token NOPERSPECTIVE EXPLICITINTERPAMD PERVERTEXNV PERPRIMITIVENV PERVIEWNV PERTASKNV @@ -1368,12 +1368,12 @@ storage_qualifier $$.init($1.loc); $$.qualifier.storage = EvqShared; } -GLSLANG_WEB_EXCLUDE_ON | BUFFER { parseContext.globalCheck($1.loc, "buffer"); $$.init($1.loc); $$.qualifier.storage = EvqBuffer; } +GLSLANG_WEB_EXCLUDE_ON | ATTRIBUTE { parseContext.requireStage($1.loc, EShLangVertex, "attribute"); parseContext.checkDeprecated($1.loc, ECoreProfile, 130, "attribute"); diff --git a/glslang/MachineIndependent/glslang.y b/glslang/MachineIndependent/glslang.y index 5001f60f..1b8e9519 100644 --- a/glslang/MachineIndependent/glslang.y +++ b/glslang/MachineIndependent/glslang.y @@ -38,7 +38,7 @@ // // Do not edit the .y file, only edit the .m4 file. -// The .y bison file is not a source file, it is a derivitive of the .m4 file. +// The .y bison file is not a source file, it is a derivative of the .m4 file. // The m4 file needs to be processed by m4 to generate the .y bison file. // // Code sandwiched between a pair: @@ -49,7 +49,7 @@ // ... // GLSLANG_WEB_EXCLUDE_OFF // -// Will be exluded from the grammar when m4 is executed as: +// Will be excluded from the grammar when m4 is executed as: // // m4 -P -DGLSLANG_WEB // @@ -194,7 +194,7 @@ extern int yylex(YYSTYPE*, TParseContext&); %token CENTROID IN OUT INOUT %token STRUCT VOID WHILE %token BREAK CONTINUE DO ELSE FOR IF DISCARD RETURN SWITCH CASE DEFAULT -%token UNIFORM SHARED +%token UNIFORM SHARED BUFFER %token FLAT SMOOTH LAYOUT @@ -1164,6 +1164,11 @@ storage_qualifier $$.init($1.loc); $$.qualifier.storage = EvqShared; } + | BUFFER { + parseContext.globalCheck($1.loc, "buffer"); + $$.init($1.loc); + $$.qualifier.storage = EvqBuffer; + } ; diff --git a/glslang/MachineIndependent/glslang_tab.cpp b/glslang/MachineIndependent/glslang_tab.cpp index 4488b699..6292a4cc 100644 --- a/glslang/MachineIndependent/glslang_tab.cpp +++ b/glslang/MachineIndependent/glslang_tab.cpp @@ -260,9 +260,10 @@ extern int yydebug; DEFAULT = 392, UNIFORM = 393, SHARED = 394, - FLAT = 395, - SMOOTH = 396, - LAYOUT = 397 + BUFFER = 395, + FLAT = 396, + SMOOTH = 397, + LAYOUT = 398 }; #endif @@ -307,7 +308,7 @@ union YYSTYPE glslang::TArraySizes* typeParameters; } interm; -#line 311 "MachineIndependent/glslang_tab.cpp" /* yacc.c:355 */ +#line 312 "MachineIndependent/glslang_tab.cpp" /* yacc.c:355 */ }; typedef union YYSTYPE YYSTYPE; @@ -338,7 +339,7 @@ int yyparse (glslang::TParseContext* pParseContext); extern int yylex(YYSTYPE*, TParseContext&); -#line 342 "MachineIndependent/glslang_tab.cpp" /* yacc.c:358 */ +#line 343 "MachineIndependent/glslang_tab.cpp" /* yacc.c:358 */ #ifdef short # undef short @@ -578,23 +579,23 @@ union yyalloc #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 123 +#define YYFINAL 124 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 3111 +#define YYLAST 3126 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 143 +#define YYNTOKENS 144 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 103 /* YYNRULES -- Number of rules. */ -#define YYNRULES 294 +#define YYNRULES 295 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 423 +#define YYNSTATES 424 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 397 +#define YYMAXUTOK 398 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -642,7 +643,7 @@ static const yytype_uint8 yytranslate[] = 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 + 135, 136, 137, 138, 139, 140, 141, 142, 143 }; #if YYDEBUG @@ -663,22 +664,22 @@ static const yytype_uint16 yyrline[] = 939, 942, 946, 950, 955, 963, 968, 973, 978, 983, 992, 1002, 1029, 1038, 1045, 1056, 1062, 1065, 1072, 1076, 1080, 1090, 1093, 1104, 1107, 1110, 1114, 1118, 1126, 1130, - 1135, 1141, 1147, 1154, 1159, 1173, 1178, 1188, 1193, 1201, - 1205, 1215, 1218, 1224, 1230, 1237, 1247, 1251, 1255, 1259, - 1264, 1268, 1273, 1278, 1283, 1288, 1293, 1298, 1303, 1308, - 1313, 1319, 1325, 1331, 1336, 1341, 1346, 1351, 1356, 1361, - 1366, 1371, 1376, 1381, 1386, 1392, 1397, 1402, 1407, 1412, - 1417, 1422, 1428, 1433, 1438, 1443, 1448, 1453, 1458, 1464, + 1135, 1141, 1147, 1154, 1159, 1167, 1178, 1183, 1193, 1198, + 1206, 1210, 1220, 1223, 1229, 1235, 1242, 1252, 1256, 1260, + 1264, 1269, 1273, 1278, 1283, 1288, 1293, 1298, 1303, 1308, + 1313, 1318, 1324, 1330, 1336, 1341, 1346, 1351, 1356, 1361, + 1366, 1371, 1376, 1381, 1386, 1391, 1397, 1402, 1407, 1412, + 1417, 1422, 1427, 1433, 1438, 1443, 1448, 1453, 1458, 1463, 1469, 1474, 1479, 1484, 1489, 1494, 1499, 1504, 1509, 1514, - 1519, 1524, 1529, 1534, 1540, 1545, 1561, 1566, 1571, 1579, - 1579, 1590, 1590, 1600, 1603, 1616, 1638, 1665, 1669, 1675, - 1680, 1691, 1700, 1704, 1705, 1711, 1712, 1713, 1714, 1715, - 1716, 1717, 1724, 1725, 1729, 1725, 1741, 1742, 1746, 1746, - 1753, 1753, 1767, 1770, 1778, 1786, 1797, 1798, 1802, 1808, - 1815, 1819, 1827, 1831, 1844, 1850, 1850, 1870, 1873, 1879, - 1891, 1903, 1909, 1909, 1924, 1924, 1940, 1940, 1961, 1964, - 1970, 1973, 1979, 1983, 1990, 1995, 2000, 2007, 2010, 2019, - 2023, 2032, 2035, 2042, 2042 + 1519, 1524, 1529, 1534, 1539, 1545, 1550, 1566, 1571, 1576, + 1584, 1584, 1595, 1595, 1605, 1608, 1621, 1643, 1670, 1674, + 1680, 1685, 1696, 1705, 1709, 1710, 1716, 1717, 1718, 1719, + 1720, 1721, 1722, 1729, 1730, 1734, 1730, 1746, 1747, 1751, + 1751, 1758, 1758, 1772, 1775, 1783, 1791, 1802, 1803, 1807, + 1813, 1820, 1824, 1832, 1836, 1849, 1855, 1855, 1875, 1878, + 1884, 1896, 1908, 1914, 1914, 1929, 1929, 1945, 1945, 1966, + 1969, 1975, 1978, 1984, 1988, 1995, 2000, 2005, 2012, 2015, + 2024, 2028, 2037, 2040, 2047, 2047 }; #endif @@ -711,8 +712,8 @@ static const char *const yytname[] = "INTCONSTANT", "UINTCONSTANT", "BOOLCONSTANT", "IDENTIFIER", "TYPE_NAME", "CENTROID", "IN", "OUT", "INOUT", "STRUCT", "VOID", "WHILE", "BREAK", "CONTINUE", "DO", "ELSE", "FOR", "IF", "DISCARD", "RETURN", "SWITCH", - "CASE", "DEFAULT", "UNIFORM", "SHARED", "FLAT", "SMOOTH", "LAYOUT", - "$accept", "variable_identifier", "primary_expression", + "CASE", "DEFAULT", "UNIFORM", "SHARED", "BUFFER", "FLAT", "SMOOTH", + "LAYOUT", "$accept", "variable_identifier", "primary_expression", "postfix_expression", "integer_expression", "function_call", "function_call_or_method", "function_call_generic", "function_call_header_no_parameters", @@ -770,7 +771,7 @@ static const yytype_uint16 yytoknum[] = 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 + 395, 396, 397, 398 }; # endif @@ -779,7 +780,7 @@ static const yytype_uint16 yytoknum[] = #define yypact_value_is_default(Yystate) \ (!!((Yystate) == (-362))) -#define YYTABLE_NINF -249 +#define YYTABLE_NINF -250 #define yytable_value_is_error(Yytable_value) \ 0 @@ -788,49 +789,49 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - 1677, -362, -362, -362, -362, -362, -362, -362, -362, -362, + 1687, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, - -362, -362, -362, 20, -362, -362, -362, -362, -362, -66, - -362, -362, -362, -362, -362, -43, -362, -73, -33, -11, - 3, 2237, -19, -362, -29, -362, -362, -362, 1537, -362, - -362, -362, 2, -362, -362, 417, -362, -362, 2986, -362, - 11, -90, -362, -28, -362, 24, -362, 2237, -362, -362, - -362, 2237, 5, 18, -362, -58, -362, -18, -362, -362, - 2742, 55, -362, -362, -362, 61, 2237, -362, 21, -362, - -54, -362, 2376, -362, -26, 557, -362, -362, -362, -362, - 55, -30, -362, 2742, -24, -362, 43, -362, -7, 2742, - 2742, 2742, -362, -362, -362, -362, -362, -362, -362, -362, - -362, -362, -362, -41, -362, -362, -362, 87, -49, 2864, - 73, -362, 2742, -362, -59, 90, -362, 2237, 57, 1817, - -362, 2237, 2742, -362, -90, -362, -362, 33, -39, 72, - -50, 70, 76, 75, 80, 107, 114, -52, 105, 2498, - -362, 104, -362, -362, 110, 101, 102, -362, 113, 116, - 108, 2620, 117, 2742, 106, 69, -362, -362, 17, -362, - -33, 119, -362, -362, -362, -362, 697, -362, -362, -362, - -362, -362, -362, -362, -362, -362, 90, 2742, -15, -362, - -362, 2742, 2237, -362, 84, -362, -362, -362, -6, -362, - -362, 2742, 85, -362, -362, 2742, 121, -362, -362, -362, - 2742, -362, 57, 55, 28, -362, -362, -362, 1957, -362, - -362, -362, 2742, 2742, 2742, 2742, 2742, 2742, 2742, 2742, - 2742, 2742, 2742, 2742, 2742, 2742, 2742, 2742, 2742, 2742, - 2742, -362, -362, -362, 120, -362, 837, -362, -362, -362, - 837, -362, 2742, -362, -362, 30, 2742, 62, -362, -362, + -362, -362, -362, 22, -362, -362, -362, -362, -362, -66, + -362, -362, -362, -362, -362, -362, -10, -362, -73, -8, + 5, 4, 2251, -58, -362, -21, -362, -362, -362, 1546, + -362, -362, -362, 7, -362, -362, 418, -362, -362, 3001, + -362, 25, -95, -362, -57, -362, 36, -362, 2251, -362, + -362, -362, 2251, 6, 17, -362, -27, -362, -18, -362, + -362, 2757, 44, -362, -362, -362, 47, 2251, -362, 77, + -362, -6, -362, 2391, -362, -26, 559, -362, -362, -362, + -362, 44, -30, -362, 2757, -24, -362, 51, -362, -33, + 2757, 2757, 2757, -362, -362, -362, -362, -362, -362, -362, + -362, -362, -362, -362, -42, -362, -362, -362, 87, -3, + 2879, 71, -362, 2757, -362, -63, 88, -362, 2251, 55, + 1828, -362, 2251, 2757, -362, -95, -362, -362, 35, -53, + -32, -50, 70, 72, 74, 73, 105, 110, -52, 98, + 2513, -362, 99, -362, -362, 106, 95, 100, -362, 111, + 112, 103, 2635, 114, 2757, 108, 69, -362, -362, -19, + -362, -8, 117, -362, -362, -362, -362, 700, -362, -362, + -362, -362, -362, -362, -362, -362, -362, 88, 2757, -15, + -362, -362, 2757, 2251, -362, 82, -362, -362, -362, -2, + -362, -362, 2757, 83, -362, -362, 2757, 119, -362, -362, + -362, 2757, -362, 55, 44, 28, -362, -362, -362, 1969, + -362, -362, -362, 2757, 2757, 2757, 2757, 2757, 2757, 2757, + 2757, 2757, 2757, 2757, 2757, 2757, 2757, 2757, 2757, 2757, + 2757, 2757, -362, -362, -362, 118, -362, 841, -362, -362, + -362, 841, -362, 2757, -362, -362, 29, 2757, 62, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, - 2742, 2742, -362, -362, -362, -362, 2742, -362, 2097, -362, - -362, 122, 124, -362, -362, -362, 32, 90, 57, -362, - -362, -362, -362, -362, 33, 33, -39, -39, 72, 72, - 72, 72, -50, -50, 70, 76, 75, 80, 107, 114, - 2742, -362, 837, 1397, 82, 1257, -3, -362, 1, -362, - -362, -362, -362, -362, -362, -362, -362, 74, 123, 124, - 88, 2237, 128, 132, -362, -362, 1397, 130, -362, 2742, - -362, 126, 977, 2742, -362, 129, 135, 92, 134, 1117, - -362, 137, -362, 2742, -362, -362, -362, 4, 2742, 977, - 130, -362, -362, 837, -362, 133, 124, -362, -362, 837, - 140, -362, -362 + -362, 2757, 2757, -362, -362, -362, -362, 2757, -362, 2110, + -362, -362, 120, 115, -362, -362, -362, 34, 88, 55, + -362, -362, -362, -362, -362, 35, 35, -53, -53, -32, + -32, -32, -32, -50, -50, 70, 72, 74, 73, 105, + 110, 2757, -362, 841, 1405, 80, 1264, 2, -362, 9, + -362, -362, -362, -362, -362, -362, -362, -362, 67, 123, + 115, 89, 2251, 128, 131, -362, -362, 1405, 130, -362, + 2757, -362, 126, 982, 2757, -362, 122, 135, 90, 133, + 1123, -362, 136, -362, 2757, -362, -362, -362, 21, 2757, + 982, 130, -362, -362, 841, -362, 129, 115, -362, -362, + 841, 137, -362, -362 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -838,81 +839,81 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 0, 138, 160, 158, 159, 157, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 161, 162, 163, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 212, 213, 200, 201, 203, - 202, 204, 205, 206, 207, 208, 209, 210, 211, 122, - 216, 217, 218, 0, 215, 142, 140, 141, 139, 0, - 156, 143, 144, 124, 123, 0, 292, 0, 293, 0, - 99, 98, 0, 110, 115, 137, 136, 134, 0, 131, - 133, 120, 152, 135, 214, 0, 289, 291, 0, 221, - 0, 0, 87, 0, 84, 0, 97, 0, 106, 100, - 108, 0, 109, 0, 85, 116, 90, 0, 132, 121, - 0, 145, 151, 1, 290, 0, 0, 219, 128, 130, - 0, 126, 0, 88, 0, 0, 294, 101, 105, 107, - 103, 111, 102, 0, 117, 93, 0, 91, 0, 0, - 0, 0, 33, 32, 34, 31, 5, 6, 7, 8, - 2, 3, 9, 27, 11, 16, 17, 0, 0, 21, - 0, 154, 0, 25, 0, 146, 86, 0, 0, 0, - 223, 0, 0, 125, 0, 147, 35, 39, 42, 45, - 50, 53, 55, 57, 59, 61, 63, 65, 0, 0, - 89, 243, 252, 256, 0, 0, 0, 274, 0, 0, - 0, 0, 0, 0, 0, 35, 68, 81, 0, 232, - 0, 120, 235, 254, 234, 233, 0, 236, 237, 258, - 238, 264, 239, 240, 271, 241, 104, 0, 112, 231, - 119, 0, 0, 95, 0, 92, 28, 29, 0, 13, - 14, 0, 0, 19, 18, 0, 156, 22, 24, 30, - 0, 153, 0, 229, 0, 227, 222, 224, 0, 83, - 129, 127, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 138, 161, 159, 160, 158, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 162, 163, 164, 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, 213, 214, 201, 202, 204, + 203, 205, 206, 207, 208, 209, 210, 211, 212, 122, + 217, 218, 219, 0, 216, 142, 140, 141, 139, 0, + 157, 143, 144, 145, 124, 123, 0, 293, 0, 294, + 0, 99, 98, 0, 110, 115, 137, 136, 134, 0, + 131, 133, 120, 153, 135, 215, 0, 290, 292, 0, + 222, 0, 0, 87, 0, 84, 0, 97, 0, 106, + 100, 108, 0, 109, 0, 85, 116, 90, 0, 132, + 121, 0, 146, 152, 1, 291, 0, 0, 220, 128, + 130, 0, 126, 0, 88, 0, 0, 295, 101, 105, + 107, 103, 111, 102, 0, 117, 93, 0, 91, 0, + 0, 0, 0, 33, 32, 34, 31, 5, 6, 7, + 8, 2, 3, 9, 27, 11, 16, 17, 0, 0, + 21, 0, 155, 0, 25, 0, 147, 86, 0, 0, + 0, 224, 0, 0, 125, 0, 148, 35, 39, 42, + 45, 50, 53, 55, 57, 59, 61, 63, 65, 0, + 0, 89, 244, 253, 257, 0, 0, 0, 275, 0, + 0, 0, 0, 0, 0, 0, 35, 68, 81, 0, + 233, 0, 120, 236, 255, 235, 234, 0, 237, 238, + 259, 239, 265, 240, 241, 272, 242, 104, 0, 112, + 232, 119, 0, 0, 95, 0, 92, 28, 29, 0, + 13, 14, 0, 0, 19, 18, 0, 157, 22, 24, + 30, 0, 154, 0, 230, 0, 228, 223, 225, 0, + 83, 129, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 66, 148, 149, 0, 242, 0, 272, 285, 284, - 0, 276, 0, 288, 286, 0, 0, 0, 270, 71, - 72, 74, 73, 76, 77, 78, 79, 80, 75, 70, - 0, 0, 257, 253, 255, 114, 0, 118, 0, 96, - 4, 0, 15, 12, 23, 155, 0, 230, 0, 225, - 220, 36, 37, 38, 41, 40, 43, 44, 48, 49, - 46, 47, 51, 52, 54, 56, 58, 60, 62, 64, - 0, 150, 244, 0, 0, 0, 0, 287, 0, 269, - 69, 82, 113, 94, 10, 226, 228, 0, 0, 262, - 0, 0, 0, 0, 279, 278, 281, 250, 265, 0, - 245, 0, 0, 0, 280, 0, 0, 261, 0, 0, - 259, 0, 67, 0, 247, 273, 246, 0, 282, 0, - 250, 249, 251, 267, 263, 0, 283, 277, 260, 268, - 0, 275, 266 + 0, 0, 66, 149, 150, 0, 243, 0, 273, 286, + 285, 0, 277, 0, 289, 287, 0, 0, 0, 271, + 71, 72, 74, 73, 76, 77, 78, 79, 80, 75, + 70, 0, 0, 258, 254, 256, 114, 0, 118, 0, + 96, 4, 0, 15, 12, 23, 156, 0, 231, 0, + 226, 221, 36, 37, 38, 41, 40, 43, 44, 48, + 49, 46, 47, 51, 52, 54, 56, 58, 60, 62, + 64, 0, 151, 245, 0, 0, 0, 0, 288, 0, + 270, 69, 82, 113, 94, 10, 227, 229, 0, 0, + 263, 0, 0, 0, 0, 280, 279, 282, 251, 266, + 0, 246, 0, 0, 0, 281, 0, 0, 262, 0, + 0, 260, 0, 67, 0, 248, 274, 247, 0, 283, + 0, 251, 250, 252, 268, 264, 0, 284, 278, 261, + 269, 0, 276, 267 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, - -362, -362, 37, -362, -110, -105, -166, -116, -61, -57, - -56, -60, -55, -53, -362, -120, -362, -137, -362, -148, - -362, 10, -362, -362, -362, 13, -362, -362, -362, 136, - 125, 138, -362, -362, -342, -362, -362, -362, -362, 46, - -80, -86, -362, 0, -104, -362, -362, -362, -362, 170, - -362, -362, -362, -167, -172, -27, -99, -232, -125, -222, - -361, -157, -362, -362, -165, -164, -362, -362, 145, -288, - -122, -362, -362, -362, -135, -362, -362, -362, -362, -362, + -362, -362, 58, -362, -115, -114, -167, -118, -61, -64, + -62, -60, -56, -59, -362, -121, -362, -137, -362, -149, + -362, 10, -362, -362, -362, 13, -362, -362, -362, 116, + 125, 124, -362, -362, -339, -362, -362, -362, -362, 45, + -80, -88, -362, 0, -105, -362, -362, -362, -362, 172, + -362, -362, -362, -168, -174, -23, -102, -233, -127, -223, + -361, -157, -362, -362, -166, -165, -362, -362, 141, -289, + -116, -362, -362, -362, -139, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, - 158, -362, -362 + 155, -362, -362 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 161, 162, 163, 331, 164, 165, 166, 167, 168, - 169, 170, 215, 172, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 216, 360, 217, 320, 218, - 270, 219, 77, 242, 148, 220, 79, 80, 81, 108, - 109, 110, 82, 83, 84, 85, 86, 87, 130, 131, - 88, 89, 90, 173, 134, 121, 122, 174, 92, 93, - 94, 181, 126, 179, 180, 264, 265, 240, 222, 223, - 224, 225, 296, 378, 405, 397, 398, 399, 406, 226, - 227, 228, 229, 400, 382, 230, 231, 401, 420, 232, - 233, 234, 363, 300, 365, 386, 395, 396, 235, 95, - 96, 97, 105 + -1, 162, 163, 164, 332, 165, 166, 167, 168, 169, + 170, 171, 216, 173, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 217, 361, 218, 321, 219, + 271, 220, 78, 243, 149, 221, 80, 81, 82, 109, + 110, 111, 83, 84, 85, 86, 87, 88, 131, 132, + 89, 90, 91, 174, 135, 122, 123, 175, 93, 94, + 95, 182, 127, 180, 181, 265, 266, 241, 223, 224, + 225, 226, 297, 379, 406, 398, 399, 400, 407, 227, + 228, 229, 230, 401, 383, 231, 232, 402, 421, 233, + 234, 235, 364, 301, 366, 387, 396, 397, 236, 96, + 97, 98, 106 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -920,305 +921,161 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 91, 111, 118, 248, 324, 325, 239, 267, 362, 327, - 76, 144, 198, 78, 268, 279, 280, 175, 290, 102, - 99, 380, 249, 250, 142, 118, 132, 111, 128, 183, - 260, 404, 257, 143, 254, 184, 236, 238, 412, 101, - 255, -26, 261, 251, 380, 103, 177, 252, 404, 129, - 281, 282, 100, 291, 132, 275, 132, 276, 199, 104, - 199, 237, 269, 305, 133, 307, 200, 241, 145, 199, - 113, 146, 106, 114, 147, 328, 326, 330, 364, 294, - 387, 112, 244, 321, 388, 245, 321, 415, 119, 115, - 321, 118, 107, 321, 372, 91, 267, 127, 125, 177, - 239, 177, 120, 332, 239, 76, 321, 112, 78, 322, - 135, 112, 182, 348, 349, 350, 351, 338, 334, 321, - 339, 338, 367, 140, 375, 419, 178, 60, 61, 62, - 272, 273, 274, 277, 278, 221, 141, 283, 284, 132, - 324, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 321, 369, 176, 366, 258, 267, 171, 368, 337, - 319, 243, 177, 321, 389, 344, 345, 352, 353, 186, - 253, 414, 346, 347, 199, 263, 288, 262, 286, 178, - 285, 178, 287, 370, 371, 289, 246, 247, 177, 239, - 292, 295, 297, 298, 299, 301, 308, 324, 302, 306, - 303, -25, 329, 333, -20, 361, 391, 374, 383, 259, - 390, 392, 377, 321, 393, 379, -248, 403, 409, 186, - 201, 408, 410, 413, 354, 421, 221, 422, 357, 355, - 271, 356, 137, 98, 358, 336, 186, 359, 379, 376, - 384, 411, 178, 385, 417, 407, 418, 138, 177, 139, - 136, 394, 402, 124, 0, 0, 0, 0, 0, 0, - 416, 0, 0, 0, 0, 0, 239, 0, 178, 0, + 92, 119, 112, 249, 325, 326, 268, 240, 363, 328, + 77, 145, 199, 79, 269, 280, 281, 176, 291, 103, + 100, 250, 251, 129, 119, 381, 261, 133, 112, 278, + 279, 114, 405, 258, 115, 134, 237, 239, 262, 413, + -26, 276, 252, 277, 130, 104, 253, 178, 381, 405, + 282, 283, 101, 292, 133, 143, 245, 133, 200, 246, + 200, 238, 270, 306, 144, 308, 201, 242, 146, 200, + 322, 147, 102, 323, 148, 329, 327, 184, 365, 295, + 255, 331, 113, 185, 105, 388, 256, 322, 107, 120, + 119, 322, 389, 108, 373, 268, 92, 116, 322, 126, + 178, 240, 178, 333, 416, 240, 77, 121, 113, 79, + 322, 128, 113, 349, 350, 351, 352, 339, 322, 335, + 340, 368, 136, 339, 141, 420, 376, 179, 133, 60, + 61, 62, 273, 274, 275, 142, 222, 284, 285, 177, + 325, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 322, 370, 259, 367, 268, 322, 390, 369, 338, + 320, 345, 346, 178, 347, 348, 353, 354, 183, 244, + 254, 415, 200, 264, 289, 288, 286, 287, 263, 172, + 179, 290, 179, 293, 371, 372, 296, 299, 298, 178, + 240, 187, 300, 302, 303, 304, 307, 325, 309, -25, + 330, 334, -20, 362, 322, 375, 384, 392, 247, 248, + 391, 393, 378, 394, 409, 380, -249, 404, 410, 202, + 411, 422, 414, 356, 423, 355, 357, 222, 139, 358, + 272, 260, 360, 138, 359, 99, 140, 377, 380, 385, + 337, 187, 412, 179, 418, 408, 419, 137, 395, 178, + 386, 125, 0, 403, 0, 0, 0, 0, 187, 0, + 417, 0, 0, 0, 0, 0, 0, 240, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 381, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 118, 221, 335, 0, 0, - 221, 0, 0, 0, 0, 0, 381, 0, 0, 341, - 342, 343, 186, 186, 186, 186, 186, 186, 186, 186, - 186, 186, 186, 186, 186, 186, 186, 186, 178, 0, + 0, 0, 0, 0, 382, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 119, 0, 0, 222, 0, 0, + 0, 222, 0, 0, 0, 0, 0, 382, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 179, + 0, 342, 343, 344, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 222, 222, 0, 222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 221, 221, 0, 221, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 119, 0, 0, 0, 0, 221, 0, 0, 0, - 0, 0, 221, 0, 0, 0, 0, 0, 0, 221, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 221, - 0, 0, 0, 221, 0, 0, 0, 123, 0, 221, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 59, 60, 61, 62, 63, 0, 0, - 0, 0, 0, 0, 0, 0, 64, 65, 66, 67, - 68, 69, 70, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 71, 72, 73, 74, 75, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, - 149, 150, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 151, - 0, 0, 0, 201, 202, 0, 0, 0, 0, 203, - 152, 153, 154, 155, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 59, 60, 61, 62, 63, 0, 0, - 0, 156, 157, 158, 159, 160, 64, 65, 66, 67, - 68, 69, 70, 204, 205, 206, 207, 0, 208, 209, - 210, 211, 212, 213, 214, 71, 72, 73, 74, 75, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, - 149, 150, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 151, - 0, 0, 0, 201, 323, 0, 0, 0, 0, 203, - 152, 153, 154, 155, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 59, 60, 61, 62, 63, 0, 0, - 0, 156, 157, 158, 159, 160, 64, 65, 66, 67, - 68, 69, 70, 204, 205, 206, 207, 0, 208, 209, - 210, 211, 212, 213, 214, 71, 72, 73, 74, 75, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, - 149, 150, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 151, - 0, 0, 0, 201, 0, 0, 0, 0, 0, 203, - 152, 153, 154, 155, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 59, 60, 61, 62, 63, 0, 0, - 0, 156, 157, 158, 159, 160, 64, 65, 66, 67, - 68, 69, 70, 204, 205, 206, 207, 0, 208, 209, - 210, 211, 212, 213, 214, 71, 72, 73, 74, 75, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, - 149, 150, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 151, - 0, 0, 0, 135, 0, 0, 0, 0, 0, 203, - 152, 153, 154, 155, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 59, 60, 61, 62, 63, 0, 0, - 0, 156, 157, 158, 159, 160, 64, 65, 66, 67, - 68, 69, 70, 204, 205, 206, 207, 0, 208, 209, - 210, 211, 212, 213, 214, 71, 72, 73, 74, 75, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, - 149, 150, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 151, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 203, - 152, 153, 154, 155, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 59, 60, 61, 62, 63, 0, 0, - 0, 156, 157, 158, 159, 160, 64, 65, 66, 67, - 68, 69, 70, 204, 205, 206, 207, 0, 208, 209, - 210, 211, 212, 213, 214, 71, 72, 73, 74, 75, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, - 149, 150, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 151, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 203, - 152, 153, 154, 155, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 59, 60, 61, 62, 63, 0, 0, - 0, 156, 157, 158, 159, 160, 64, 65, 66, 67, - 68, 69, 70, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 71, 72, 73, 74, 75, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, - 149, 150, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 151, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 152, 153, 154, 155, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 59, 60, 61, 62, 0, 0, 0, - 0, 156, 157, 158, 159, 160, 64, 65, 66, 67, - 68, 69, 70, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 71, 72, 73, 74, 75, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 59, 60, 61, 62, 0, 0, 0, - 0, 0, 0, 0, 0, 117, 64, 65, 66, 67, - 68, 69, 70, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 71, 72, 73, 74, 75, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 59, 60, 61, 62, 63, 0, 0, - 0, 0, 0, 0, 0, 0, 64, 65, 66, 67, - 68, 69, 70, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 71, 72, 73, 74, 75, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 266, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 59, 60, 61, 62, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 64, 65, 66, 67, - 68, 69, 70, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 71, 72, 73, 74, 75, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 340, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 59, 60, 61, 62, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 64, 65, 66, 67, - 68, 69, 70, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 71, 72, 73, 74, 75, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 373, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 59, 60, 61, 62, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 64, 65, 66, 67, - 68, 69, 70, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 71, 72, 73, 74, 75, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 59, 60, 61, 62, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 64, 65, 66, 67, - 68, 69, 70, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 71, 72, 73, 74, 75, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 0, 0, 149, - 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 151, 0, - 0, 185, 0, 0, 0, 0, 0, 0, 0, 152, - 153, 154, 155, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 156, 157, 158, 159, 160, 64, 0, 0, 0, 0, - 69, 70, 2, 3, 4, 5, 6, 7, 8, 9, + 0, 0, 120, 0, 0, 0, 0, 222, 0, 0, + 0, 0, 0, 222, 0, 0, 0, 0, 0, 0, + 222, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 222, 0, 0, 0, 222, 0, 0, 0, 124, 0, + 222, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 0, - 0, 149, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 151, 0, 0, 293, 0, 0, 0, 0, 0, 0, - 0, 152, 153, 154, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 156, 157, 158, 159, 160, 64, 0, 0, - 0, 0, 69, 70, 2, 3, 4, 5, 6, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 59, 60, 61, 62, 63, 0, + 0, 0, 0, 0, 0, 0, 0, 64, 65, 66, + 67, 68, 69, 70, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 71, 72, 73, 74, + 75, 76, 1, 2, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 0, 0, 150, 151, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 152, 0, 0, 0, 202, 203, 0, 0, 0, + 0, 204, 153, 154, 155, 156, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 59, 60, 61, 62, 63, + 0, 0, 0, 157, 158, 159, 160, 161, 64, 65, + 66, 67, 68, 69, 70, 205, 206, 207, 208, 0, + 209, 210, 211, 212, 213, 214, 215, 71, 72, 73, + 74, 75, 76, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 0, 0, 149, 150, 0, 0, 0, 0, 0, + 58, 0, 0, 150, 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 151, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 304, 152, 153, 154, 155, 0, 0, 0, + 0, 0, 152, 0, 0, 0, 202, 324, 0, 0, + 0, 0, 204, 153, 154, 155, 156, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 59, 60, 61, 62, + 63, 0, 0, 0, 157, 158, 159, 160, 161, 64, + 65, 66, 67, 68, 69, 70, 205, 206, 207, 208, + 0, 209, 210, 211, 212, 213, 214, 215, 71, 72, + 73, 74, 75, 76, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 0, 0, 150, 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 156, 157, 158, 159, 160, 64, - 0, 0, 0, 0, 69, 70, 2, 3, 4, 5, + 0, 0, 0, 152, 0, 0, 0, 202, 0, 0, + 0, 0, 0, 204, 153, 154, 155, 156, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 59, 60, 61, + 62, 63, 0, 0, 0, 157, 158, 159, 160, 161, + 64, 65, 66, 67, 68, 69, 70, 205, 206, 207, + 208, 0, 209, 210, 211, 212, 213, 214, 215, 71, + 72, 73, 74, 75, 76, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 0, 0, 149, 150, 0, 0, 0, + 56, 57, 58, 0, 0, 150, 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 151, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 152, 153, 154, 155, 0, + 0, 0, 0, 0, 152, 0, 0, 0, 136, 0, + 0, 0, 0, 0, 204, 153, 154, 155, 156, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 59, 60, + 61, 62, 63, 0, 0, 0, 157, 158, 159, 160, + 161, 64, 65, 66, 67, 68, 69, 70, 205, 206, + 207, 208, 0, 209, 210, 211, 212, 213, 214, 215, + 71, 72, 73, 74, 75, 76, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 0, 0, 150, 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 156, 157, 158, 159, - 160, 64, 0, 0, 0, 0, 69, 70, 2, 3, + 0, 0, 0, 0, 0, 152, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 204, 153, 154, 155, 156, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, + 60, 61, 62, 63, 0, 0, 0, 157, 158, 159, + 160, 161, 64, 65, 66, 67, 68, 69, 70, 205, + 206, 207, 208, 0, 209, 210, 211, 212, 213, 214, + 215, 71, 72, 73, 74, 75, 76, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 0, 0, 149, 150, 0, + 54, 55, 56, 57, 58, 0, 0, 150, 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 151, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 152, 153, 154, - 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 156, 157, - 158, 159, 160, 64, 0, 0, 0, 0, 69, 256, + 0, 0, 0, 0, 0, 0, 152, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 204, 153, 154, 155, + 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 59, 60, 61, 62, 63, 0, 0, 0, 157, 158, + 159, 160, 161, 64, 65, 66, 67, 68, 69, 70, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 71, 72, 73, 74, 75, 76, 1, 2, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 0, 0, 150, 151, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 152, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 153, 154, + 155, 156, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 59, 60, 61, 62, 0, 0, 0, 0, 157, + 158, 159, 160, 161, 64, 65, 66, 67, 68, 69, + 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 71, 72, 73, 74, 75, 76, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, @@ -1227,278 +1084,231 @@ static const yytype_int16 yytable[] = 52, 53, 54, 55, 56, 57, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 117, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 59, 60, 61, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 118, 64, 65, 66, 67, 68, + 69, 70, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 71, 72, 73, 74, 75, 76, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, - 69, 70 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 59, 60, 61, 62, 63, 0, 0, + 0, 0, 0, 0, 0, 0, 64, 65, 66, 67, + 68, 69, 70, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 71, 72, 73, 74, 75, + 76, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 267, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 59, 60, 61, 62, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 64, 65, 66, + 67, 68, 69, 70, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 71, 72, 73, 74, + 75, 76, 1, 2, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 341, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 59, 60, 61, 62, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 64, 65, + 66, 67, 68, 69, 70, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 71, 72, 73, + 74, 75, 76, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 374, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 59, 60, 61, 62, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, + 65, 66, 67, 68, 69, 70, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 71, 72, + 73, 74, 75, 76, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 59, 60, 61, + 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 64, 65, 66, 67, 68, 69, 70, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, + 72, 73, 74, 75, 76, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 0, 0, 150, 151, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 152, 0, 0, 186, 0, 0, 0, + 0, 0, 0, 0, 153, 154, 155, 156, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 157, 158, 159, 160, 161, + 64, 0, 0, 0, 0, 69, 70, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 0, 0, 150, 151, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 152, 0, 0, 294, 0, + 0, 0, 0, 0, 0, 0, 153, 154, 155, 156, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 157, 158, 159, + 160, 161, 64, 0, 0, 0, 0, 69, 70, 2, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 0, 0, 150, 151, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 152, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 305, 153, 154, + 155, 156, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 157, + 158, 159, 160, 161, 64, 0, 0, 0, 0, 69, + 70, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, + 150, 151, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 152, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 153, 154, 155, 156, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 157, 158, 159, 160, 161, 64, 0, 0, 0, + 0, 69, 70, 2, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 0, 0, 150, 151, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 152, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 153, 154, 155, 156, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 157, 158, 159, 160, 161, 64, 0, + 0, 0, 0, 69, 257, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 64, 0, 0, 0, 0, 69, 70 }; static const yytype_int16 yycheck[] = { - 0, 81, 88, 151, 226, 237, 143, 179, 296, 241, - 0, 115, 132, 0, 181, 65, 66, 121, 70, 92, - 86, 363, 63, 64, 82, 111, 84, 107, 118, 83, - 89, 392, 169, 91, 83, 89, 140, 141, 399, 82, - 89, 82, 101, 84, 386, 118, 126, 88, 409, 139, - 100, 101, 118, 105, 84, 94, 84, 96, 84, 92, - 84, 91, 182, 211, 92, 213, 92, 91, 86, 84, - 89, 89, 83, 92, 92, 242, 91, 83, 300, 199, - 83, 81, 89, 89, 83, 92, 89, 83, 88, 118, - 89, 177, 89, 89, 326, 95, 268, 86, 98, 179, - 237, 181, 100, 251, 241, 95, 89, 107, 95, 92, - 86, 111, 91, 279, 280, 281, 282, 89, 255, 89, - 92, 89, 92, 118, 92, 413, 126, 107, 108, 109, - 97, 98, 99, 61, 62, 135, 118, 67, 68, 84, - 362, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 89, 90, 92, 302, 82, 328, 120, 306, 263, - 91, 118, 242, 89, 90, 275, 276, 283, 284, 132, - 83, 403, 277, 278, 84, 118, 69, 177, 103, 179, - 104, 181, 102, 320, 321, 71, 149, 150, 268, 326, - 85, 87, 82, 92, 92, 82, 90, 419, 82, 82, - 92, 82, 118, 118, 83, 85, 118, 85, 126, 172, - 87, 83, 360, 89, 82, 363, 86, 91, 83, 182, - 86, 92, 130, 86, 285, 92, 226, 87, 288, 286, - 184, 287, 107, 63, 289, 262, 199, 290, 386, 338, - 365, 398, 242, 365, 409, 393, 410, 111, 328, 111, - 105, 386, 389, 95, -1, -1, -1, -1, -1, -1, - 408, -1, -1, -1, -1, -1, 403, -1, 268, -1, + 0, 89, 82, 152, 227, 238, 180, 144, 297, 242, + 0, 116, 133, 0, 182, 65, 66, 122, 70, 92, + 86, 63, 64, 118, 112, 364, 89, 84, 108, 61, + 62, 89, 393, 170, 92, 92, 141, 142, 101, 400, + 82, 94, 84, 96, 139, 118, 88, 127, 387, 410, + 100, 101, 118, 105, 84, 82, 89, 84, 84, 92, + 84, 91, 183, 212, 91, 214, 92, 91, 86, 84, + 89, 89, 82, 92, 92, 243, 91, 83, 301, 200, + 83, 83, 82, 89, 92, 83, 89, 89, 83, 89, + 178, 89, 83, 89, 327, 269, 96, 118, 89, 99, + 180, 238, 182, 252, 83, 242, 96, 100, 108, 96, + 89, 86, 112, 280, 281, 282, 283, 89, 89, 256, + 92, 92, 86, 89, 118, 414, 92, 127, 84, 107, + 108, 109, 97, 98, 99, 118, 136, 67, 68, 92, + 363, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 89, 90, 82, 303, 329, 89, 90, 307, 264, + 91, 276, 277, 243, 278, 279, 284, 285, 91, 118, + 83, 404, 84, 118, 69, 102, 104, 103, 178, 121, + 180, 71, 182, 85, 321, 322, 87, 92, 82, 269, + 327, 133, 92, 82, 82, 92, 82, 420, 90, 82, + 118, 118, 83, 85, 89, 85, 126, 118, 150, 151, + 87, 83, 361, 82, 92, 364, 86, 91, 83, 86, + 130, 92, 86, 287, 87, 286, 288, 227, 112, 289, + 185, 173, 291, 108, 290, 63, 112, 339, 387, 366, + 263, 183, 399, 243, 410, 394, 411, 106, 387, 329, + 366, 96, -1, 390, -1, -1, -1, -1, 200, -1, + 409, -1, -1, -1, -1, -1, -1, 404, -1, 269, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 363, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 381, 296, 260, -1, -1, - 300, -1, -1, -1, -1, -1, 386, -1, -1, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 328, -1, + -1, -1, -1, -1, 364, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 382, -1, -1, 297, -1, -1, + -1, 301, -1, -1, -1, -1, -1, 387, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 261, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 329, + -1, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 363, 364, -1, 366, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 362, 363, -1, 365, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 381, -1, -1, -1, -1, 386, -1, -1, -1, - -1, -1, 392, -1, -1, -1, -1, -1, -1, 399, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 409, - -1, -1, -1, 413, -1, -1, -1, 0, -1, 419, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 106, 107, 108, 109, 110, -1, -1, - -1, -1, -1, -1, -1, -1, 119, 120, 121, 122, - 123, 124, 125, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 138, 139, 140, 141, 142, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, -1, -1, - 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, - -1, -1, -1, 86, 87, -1, -1, -1, -1, 92, - 93, 94, 95, 96, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 106, 107, 108, 109, 110, -1, -1, - -1, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, -1, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, -1, -1, - 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, - -1, -1, -1, 86, 87, -1, -1, -1, -1, 92, - 93, 94, 95, 96, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 106, 107, 108, 109, 110, -1, -1, - -1, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, -1, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, -1, -1, - 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, - -1, -1, -1, 86, -1, -1, -1, -1, -1, 92, - 93, 94, 95, 96, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 106, 107, 108, 109, 110, -1, -1, - -1, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, -1, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, -1, -1, - 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, - -1, -1, -1, 86, -1, -1, -1, -1, -1, 92, - 93, 94, 95, 96, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 106, 107, 108, 109, 110, -1, -1, - -1, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, -1, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, -1, -1, - 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 92, - 93, 94, 95, 96, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 106, 107, 108, 109, 110, -1, -1, - -1, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, -1, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, -1, -1, - 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 92, - 93, 94, 95, 96, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 106, 107, 108, 109, 110, -1, -1, - -1, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 138, 139, 140, 141, 142, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, -1, -1, - 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 93, 94, 95, 96, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 106, 107, 108, 109, -1, -1, -1, - -1, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 138, 139, 140, 141, 142, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 92, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 106, 107, 108, 109, -1, -1, -1, - -1, -1, -1, -1, -1, 118, 119, 120, 121, 122, - 123, 124, 125, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 138, 139, 140, 141, 142, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 106, 107, 108, 109, 110, -1, -1, - -1, -1, -1, -1, -1, -1, 119, 120, 121, 122, - 123, 124, 125, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 138, 139, 140, 141, 142, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 87, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 106, 107, 108, 109, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 119, 120, 121, 122, - 123, 124, 125, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 138, 139, 140, 141, 142, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 87, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 106, 107, 108, 109, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 119, 120, 121, 122, - 123, 124, 125, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 138, 139, 140, 141, 142, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 87, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 106, 107, 108, 109, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 119, 120, 121, 122, - 123, 124, 125, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 138, 139, 140, 141, 142, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 106, 107, 108, 109, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 119, 120, 121, 122, - 123, 124, 125, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 138, 139, 140, 141, 142, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, -1, -1, 63, - 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, - -1, 85, -1, -1, -1, -1, -1, -1, -1, 93, - 94, 95, 96, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 114, 115, 116, 117, 118, 119, -1, -1, -1, -1, - 124, 125, 4, 5, 6, 7, 8, 9, 10, 11, + -1, -1, 382, -1, -1, -1, -1, 387, -1, -1, + -1, -1, -1, 393, -1, -1, -1, -1, -1, -1, + 400, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 410, -1, -1, -1, 414, -1, -1, -1, 0, -1, + 420, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, - -1, 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 82, -1, -1, 85, -1, -1, -1, -1, -1, -1, - -1, 93, 94, 95, 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 114, 115, 116, 117, 118, 119, -1, -1, - -1, -1, 124, 125, 4, 5, 6, 7, 8, 9, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 106, 107, 108, 109, 110, -1, + -1, -1, -1, -1, -1, -1, -1, 119, 120, 121, + 122, 123, 124, 125, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 138, 139, 140, 141, + 142, 143, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + -1, -1, 63, 64, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 82, -1, -1, -1, 86, 87, -1, -1, -1, + -1, 92, 93, 94, 95, 96, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 106, 107, 108, 109, 110, + -1, -1, -1, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, -1, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, @@ -1506,11 +1316,27 @@ static const yytype_int16 yycheck[] = 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, -1, 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 82, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 82, -1, -1, -1, 86, 87, -1, -1, -1, -1, 92, 93, 94, 95, 96, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 106, 107, 108, 109, + 110, -1, -1, -1, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + -1, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, -1, -1, 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 114, 115, 116, 117, 118, 119, - -1, -1, -1, -1, 124, 125, 4, 5, 6, 7, + -1, -1, -1, 82, -1, -1, -1, 86, -1, -1, + -1, -1, -1, 92, 93, 94, 95, 96, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 106, 107, 108, + 109, 110, -1, -1, -1, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, -1, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, @@ -1518,11 +1344,27 @@ static const yytype_int16 yycheck[] = 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, -1, 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 82, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 93, 94, 95, 96, -1, + -1, -1, -1, -1, 82, -1, -1, -1, 86, -1, + -1, -1, -1, -1, 92, 93, 94, 95, 96, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 106, 107, + 108, 109, 110, -1, -1, -1, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, -1, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, -1, -1, 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 114, 115, 116, 117, - 118, 119, -1, -1, -1, -1, 124, 125, 4, 5, + -1, -1, -1, -1, -1, 82, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 92, 93, 94, 95, 96, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 106, + 107, 108, 109, 110, -1, -1, -1, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, -1, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, @@ -1531,10 +1373,26 @@ static const yytype_int16 yycheck[] = 56, 57, 58, 59, 60, -1, -1, 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 93, 94, 95, + -1, -1, -1, -1, -1, -1, 92, 93, 94, 95, 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 114, 115, - 116, 117, 118, 119, -1, -1, -1, -1, 124, 125, + 106, 107, 108, 109, 110, -1, -1, -1, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 138, 139, 140, 141, 142, 143, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, -1, -1, 63, 64, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 82, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, + 95, 96, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 106, 107, 108, 109, -1, -1, -1, -1, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 138, 139, 140, 141, 142, 143, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, @@ -1543,11 +1401,156 @@ static const yytype_int16 yycheck[] = 54, 55, 56, 57, 58, 59, 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 92, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 106, 107, 108, 109, -1, -1, -1, -1, + -1, -1, -1, -1, 118, 119, 120, 121, 122, 123, + 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 138, 139, 140, 141, 142, 143, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 119, -1, -1, -1, -1, - 124, 125 + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 106, 107, 108, 109, 110, -1, -1, + -1, -1, -1, -1, -1, -1, 119, 120, 121, 122, + 123, 124, 125, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 138, 139, 140, 141, 142, + 143, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 87, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 106, 107, 108, 109, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 119, 120, 121, + 122, 123, 124, 125, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 138, 139, 140, 141, + 142, 143, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 87, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 106, 107, 108, 109, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 119, 120, + 121, 122, 123, 124, 125, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 138, 139, 140, + 141, 142, 143, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 87, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 106, 107, 108, 109, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 119, + 120, 121, 122, 123, 124, 125, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 138, 139, + 140, 141, 142, 143, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 106, 107, 108, + 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 138, + 139, 140, 141, 142, 143, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, -1, -1, 63, 64, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 82, -1, -1, 85, -1, -1, -1, + -1, -1, -1, -1, 93, 94, 95, 96, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 114, 115, 116, 117, 118, + 119, -1, -1, -1, -1, 124, 125, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, -1, -1, 63, 64, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 82, -1, -1, 85, -1, + -1, -1, -1, -1, -1, -1, 93, 94, 95, 96, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 114, 115, 116, + 117, 118, 119, -1, -1, -1, -1, 124, 125, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, -1, -1, 63, 64, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 82, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 92, 93, 94, + 95, 96, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 114, + 115, 116, 117, 118, 119, -1, -1, -1, -1, 124, + 125, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, -1, -1, + 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 93, 94, 95, 96, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 114, 115, 116, 117, 118, 119, -1, -1, -1, + -1, 124, 125, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + -1, -1, 63, 64, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 82, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 93, 94, 95, 96, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 114, 115, 116, 117, 118, 119, -1, + -1, -1, -1, 124, 125, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 119, -1, -1, -1, -1, 124, 125 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1561,77 +1564,77 @@ static const yytype_uint8 yystos[] = 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 106, 107, 108, 109, 110, 119, 120, 121, 122, 123, 124, - 125, 138, 139, 140, 141, 142, 174, 175, 178, 179, - 180, 181, 185, 186, 187, 188, 189, 190, 193, 194, - 195, 196, 201, 202, 203, 242, 243, 244, 202, 86, - 118, 82, 92, 118, 92, 245, 83, 89, 182, 183, - 184, 193, 196, 89, 92, 118, 92, 118, 194, 196, - 100, 198, 199, 0, 243, 196, 205, 86, 118, 139, - 191, 192, 84, 92, 197, 86, 221, 183, 182, 184, - 118, 118, 82, 91, 197, 86, 89, 92, 177, 63, - 64, 82, 93, 94, 95, 96, 114, 115, 116, 117, - 118, 144, 145, 146, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 196, 200, 197, 92, 193, 196, 206, - 207, 204, 91, 83, 89, 85, 155, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 84, - 92, 86, 87, 92, 126, 127, 128, 129, 131, 132, - 133, 134, 135, 136, 137, 155, 168, 170, 172, 174, - 178, 196, 211, 212, 213, 214, 222, 223, 224, 225, - 228, 229, 232, 233, 234, 241, 197, 91, 197, 170, - 210, 91, 176, 118, 89, 92, 155, 155, 172, 63, - 64, 84, 88, 83, 83, 89, 125, 170, 82, 155, - 89, 101, 196, 118, 208, 209, 87, 207, 206, 168, - 173, 192, 97, 98, 99, 94, 96, 61, 62, 65, - 66, 100, 101, 67, 68, 104, 103, 102, 69, 71, - 70, 105, 85, 85, 168, 87, 215, 82, 92, 92, - 236, 82, 82, 92, 92, 172, 82, 172, 90, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 91, - 171, 89, 92, 87, 212, 210, 91, 210, 206, 118, - 83, 147, 172, 118, 170, 155, 208, 197, 89, 92, - 87, 155, 155, 155, 157, 157, 158, 158, 159, 159, - 159, 159, 160, 160, 161, 162, 163, 164, 165, 166, - 169, 85, 222, 235, 212, 237, 172, 92, 172, 90, - 170, 170, 210, 87, 85, 92, 209, 172, 216, 172, - 187, 193, 227, 126, 211, 223, 238, 83, 83, 90, - 87, 118, 83, 82, 227, 239, 240, 218, 219, 220, - 226, 230, 170, 91, 213, 217, 221, 172, 92, 83, - 130, 214, 213, 86, 210, 83, 172, 217, 218, 222, - 231, 92, 87 + 125, 138, 139, 140, 141, 142, 143, 175, 176, 179, + 180, 181, 182, 186, 187, 188, 189, 190, 191, 194, + 195, 196, 197, 202, 203, 204, 243, 244, 245, 203, + 86, 118, 82, 92, 118, 92, 246, 83, 89, 183, + 184, 185, 194, 197, 89, 92, 118, 92, 118, 195, + 197, 100, 199, 200, 0, 244, 197, 206, 86, 118, + 139, 192, 193, 84, 92, 198, 86, 222, 184, 183, + 185, 118, 118, 82, 91, 198, 86, 89, 92, 178, + 63, 64, 82, 93, 94, 95, 96, 114, 115, 116, + 117, 118, 145, 146, 147, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 197, 201, 198, 92, 194, 197, + 207, 208, 205, 91, 83, 89, 85, 156, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 84, 92, 86, 87, 92, 126, 127, 128, 129, 131, + 132, 133, 134, 135, 136, 137, 156, 169, 171, 173, + 175, 179, 197, 212, 213, 214, 215, 223, 224, 225, + 226, 229, 230, 233, 234, 235, 242, 198, 91, 198, + 171, 211, 91, 177, 118, 89, 92, 156, 156, 173, + 63, 64, 84, 88, 83, 83, 89, 125, 171, 82, + 156, 89, 101, 197, 118, 209, 210, 87, 208, 207, + 169, 174, 193, 97, 98, 99, 94, 96, 61, 62, + 65, 66, 100, 101, 67, 68, 104, 103, 102, 69, + 71, 70, 105, 85, 85, 169, 87, 216, 82, 92, + 92, 237, 82, 82, 92, 92, 173, 82, 173, 90, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 91, 172, 89, 92, 87, 213, 211, 91, 211, 207, + 118, 83, 148, 173, 118, 171, 156, 209, 198, 89, + 92, 87, 156, 156, 156, 158, 158, 159, 159, 160, + 160, 160, 160, 161, 161, 162, 163, 164, 165, 166, + 167, 170, 85, 223, 236, 213, 238, 173, 92, 173, + 90, 171, 171, 211, 87, 85, 92, 210, 173, 217, + 173, 188, 194, 228, 126, 212, 224, 239, 83, 83, + 90, 87, 118, 83, 82, 228, 240, 241, 219, 220, + 221, 227, 231, 171, 91, 214, 218, 222, 173, 92, + 83, 130, 215, 214, 86, 211, 83, 173, 218, 219, + 223, 232, 92, 87 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 143, 144, 145, 145, 145, 145, 145, 145, 146, - 146, 146, 146, 146, 146, 147, 148, 149, 150, 150, - 151, 151, 152, 152, 153, 154, 154, 155, 155, 155, - 155, 156, 156, 156, 156, 157, 157, 157, 157, 158, - 158, 158, 159, 159, 159, 160, 160, 160, 160, 160, - 161, 161, 161, 162, 162, 163, 163, 164, 164, 165, - 165, 166, 166, 167, 167, 168, 169, 168, 170, 170, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 172, 172, 173, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 176, 175, 177, 177, 178, 179, 179, - 180, 180, 181, 182, 182, 183, 183, 183, 183, 184, - 185, 185, 185, 185, 185, 186, 186, 186, 186, 186, - 187, 187, 188, 189, 189, 190, 191, 191, 192, 192, - 192, 193, 193, 194, 194, 194, 194, 194, 195, 195, - 195, 195, 195, 195, 195, 196, 196, 197, 197, 197, - 197, 198, 198, 199, 200, 200, 201, 201, 201, 201, - 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, - 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, - 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, - 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, - 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, - 201, 201, 201, 201, 201, 201, 202, 202, 202, 204, - 203, 205, 203, 206, 206, 207, 207, 208, 208, 209, - 209, 210, 211, 212, 212, 213, 213, 213, 213, 213, - 213, 213, 214, 215, 216, 214, 217, 217, 219, 218, - 220, 218, 221, 221, 222, 222, 223, 223, 224, 225, - 226, 226, 227, 227, 228, 230, 229, 231, 231, 232, - 232, 233, 235, 234, 236, 234, 237, 234, 238, 238, - 239, 239, 240, 240, 241, 241, 241, 241, 241, 242, - 242, 243, 243, 245, 244 + 0, 144, 145, 146, 146, 146, 146, 146, 146, 147, + 147, 147, 147, 147, 147, 148, 149, 150, 151, 151, + 152, 152, 153, 153, 154, 155, 155, 156, 156, 156, + 156, 157, 157, 157, 157, 158, 158, 158, 158, 159, + 159, 159, 160, 160, 160, 161, 161, 161, 161, 161, + 162, 162, 162, 163, 163, 164, 164, 165, 165, 166, + 166, 167, 167, 168, 168, 169, 170, 169, 171, 171, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 173, 173, 174, 175, 175, 175, 175, 175, 175, + 175, 175, 175, 177, 176, 178, 178, 179, 180, 180, + 181, 181, 182, 183, 183, 184, 184, 184, 184, 185, + 186, 186, 186, 186, 186, 187, 187, 187, 187, 187, + 188, 188, 189, 190, 190, 191, 192, 192, 193, 193, + 193, 194, 194, 195, 195, 195, 195, 195, 196, 196, + 196, 196, 196, 196, 196, 196, 197, 197, 198, 198, + 198, 198, 199, 199, 200, 201, 201, 202, 202, 202, + 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, + 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, + 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, + 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, + 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, + 202, 202, 202, 202, 202, 202, 202, 203, 203, 203, + 205, 204, 206, 204, 207, 207, 208, 208, 209, 209, + 210, 210, 211, 212, 213, 213, 214, 214, 214, 214, + 214, 214, 214, 215, 216, 217, 215, 218, 218, 220, + 219, 221, 219, 222, 222, 223, 223, 224, 224, 225, + 226, 227, 227, 228, 228, 229, 231, 230, 232, 232, + 233, 233, 234, 236, 235, 237, 235, 238, 235, 239, + 239, 240, 240, 241, 241, 242, 242, 242, 242, 242, + 243, 243, 244, 244, 246, 245 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -1651,22 +1654,22 @@ static const yytype_uint8 yyr2[] = 1, 3, 4, 6, 5, 1, 2, 3, 5, 4, 1, 2, 1, 1, 1, 4, 1, 3, 1, 3, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 3, 2, 3, 3, - 4, 1, 0, 3, 1, 3, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 3, 2, 3, + 3, 4, 1, 0, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 6, 0, 5, 1, 2, 3, 4, 1, 3, 1, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 0, 0, 5, 1, 1, 0, 2, - 0, 2, 2, 3, 1, 2, 1, 2, 1, 5, - 3, 1, 1, 4, 1, 0, 8, 0, 1, 3, - 2, 1, 0, 6, 0, 8, 0, 7, 1, 1, - 1, 0, 2, 3, 2, 2, 2, 3, 2, 1, - 2, 1, 1, 0, 3 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 6, 0, 5, 1, 2, 3, 4, 1, 3, + 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 0, 0, 5, 1, 1, 0, + 2, 0, 2, 2, 3, 1, 2, 1, 2, 1, + 5, 3, 1, 1, 4, 1, 0, 8, 0, 1, + 3, 2, 1, 0, 6, 0, 8, 0, 7, 1, + 1, 1, 0, 2, 3, 2, 2, 2, 3, 2, + 1, 2, 1, 1, 0, 3 }; @@ -2353,7 +2356,7 @@ yyreduce: { (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string); } -#line 2357 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2360 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 3: @@ -2361,7 +2364,7 @@ yyreduce: { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 2365 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2368 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 4: @@ -2371,7 +2374,7 @@ yyreduce: if ((yyval.interm.intermTypedNode)->getAsConstantUnion()) (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression(); } -#line 2375 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2378 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 5: @@ -2379,7 +2382,7 @@ yyreduce: { (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true); } -#line 2383 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2386 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 6: @@ -2387,7 +2390,7 @@ yyreduce: { (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true); } -#line 2391 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2394 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 7: @@ -2396,7 +2399,7 @@ yyreduce: parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned literal"); (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true); } -#line 2400 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2403 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 8: @@ -2404,7 +2407,7 @@ yyreduce: { (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true); } -#line 2408 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2411 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 9: @@ -2412,7 +2415,7 @@ yyreduce: { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 2416 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2419 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 10: @@ -2420,7 +2423,7 @@ yyreduce: { (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode)); } -#line 2424 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2427 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 11: @@ -2428,7 +2431,7 @@ yyreduce: { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 2432 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2435 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 12: @@ -2436,7 +2439,7 @@ yyreduce: { (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string); } -#line 2440 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2443 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 13: @@ -2446,7 +2449,7 @@ yyreduce: 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 2450 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2453 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 14: @@ -2456,7 +2459,7 @@ yyreduce: 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 2460 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2463 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 15: @@ -2465,7 +2468,7 @@ yyreduce: parseContext.integerCheck((yyvsp[0].interm.intermTypedNode), "[]"); (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 2469 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2472 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 16: @@ -2474,7 +2477,7 @@ yyreduce: (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[0].interm).loc, (yyvsp[0].interm).function, (yyvsp[0].interm).intermNode); delete (yyvsp[0].interm).function; } -#line 2478 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2481 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 17: @@ -2482,7 +2485,7 @@ yyreduce: { (yyval.interm) = (yyvsp[0].interm); } -#line 2486 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2489 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 18: @@ -2491,7 +2494,7 @@ yyreduce: (yyval.interm) = (yyvsp[-1].interm); (yyval.interm).loc = (yyvsp[0].lex).loc; } -#line 2495 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2498 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 19: @@ -2500,7 +2503,7 @@ yyreduce: (yyval.interm) = (yyvsp[-1].interm); (yyval.interm).loc = (yyvsp[0].lex).loc; } -#line 2504 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2507 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 20: @@ -2508,7 +2511,7 @@ yyreduce: { (yyval.interm) = (yyvsp[-1].interm); } -#line 2512 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2515 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 21: @@ -2516,7 +2519,7 @@ yyreduce: { (yyval.interm) = (yyvsp[0].interm); } -#line 2520 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2523 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 22: @@ -2528,7 +2531,7 @@ yyreduce: (yyval.interm).function = (yyvsp[-1].interm).function; (yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode); } -#line 2532 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2535 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 23: @@ -2540,7 +2543,7 @@ 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 2544 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2547 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 24: @@ -2548,7 +2551,7 @@ yyreduce: { (yyval.interm) = (yyvsp[-1].interm); } -#line 2552 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2555 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 25: @@ -2558,7 +2561,7 @@ yyreduce: (yyval.interm).intermNode = 0; (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type)); } -#line 2562 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2565 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 26: @@ -2590,7 +2593,7 @@ yyreduce: (yyval.interm).function = new TFunction(empty, TType(EbtVoid), EOpNull); } } -#line 2594 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2597 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 27: @@ -2601,7 +2604,7 @@ yyreduce: if (TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode()) parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), ""); } -#line 2605 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2608 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 28: @@ -2610,7 +2613,7 @@ yyreduce: 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 2614 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2617 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 29: @@ -2619,7 +2622,7 @@ yyreduce: 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 2623 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2626 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 30: @@ -2640,38 +2643,38 @@ yyreduce: (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression(); } } -#line 2644 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2647 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 31: #line 444 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; } -#line 2650 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2653 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 32: #line 445 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; } -#line 2656 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2659 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 33: #line 446 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; } -#line 2662 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2665 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 34: #line 447 "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 2669 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2672 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 35: #line 453 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 2675 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2678 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 36: @@ -2681,7 +2684,7 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 2685 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2688 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 37: @@ -2691,7 +2694,7 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 2695 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2698 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 38: @@ -2702,13 +2705,13 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 2706 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2709 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 39: #line 473 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 2712 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2715 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 40: @@ -2718,7 +2721,7 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 2722 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2725 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 41: @@ -2728,13 +2731,13 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 2732 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2735 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 42: #line 487 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 2738 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2741 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 43: @@ -2745,7 +2748,7 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 2749 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2752 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 44: @@ -2756,13 +2759,13 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 2760 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2763 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 45: #line 503 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 2766 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2769 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 46: @@ -2772,7 +2775,7 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 2776 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2779 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 47: @@ -2782,7 +2785,7 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 2786 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2789 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 48: @@ -2792,7 +2795,7 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 2796 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2799 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 49: @@ -2802,13 +2805,13 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 2806 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2809 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 50: #line 527 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 2812 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2815 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 51: @@ -2822,7 +2825,7 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 2826 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2829 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 52: @@ -2836,13 +2839,13 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 2840 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2843 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 53: #line 549 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 2846 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2849 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 54: @@ -2853,13 +2856,13 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 2857 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2860 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 55: #line 559 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 2863 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2866 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 56: @@ -2870,13 +2873,13 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 2874 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2877 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 57: #line 569 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 2880 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2883 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 58: @@ -2887,13 +2890,13 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 2891 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2894 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 59: #line 579 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 2897 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2900 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 60: @@ -2903,13 +2906,13 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 2907 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2910 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 61: #line 588 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 2913 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2916 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 62: @@ -2919,13 +2922,13 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 2923 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2926 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 63: #line 597 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 2929 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2932 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 64: @@ -2935,13 +2938,13 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 2939 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2942 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 65: #line 606 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 2945 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2948 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 66: @@ -2949,7 +2952,7 @@ yyreduce: { ++parseContext.controlFlowNestingLevel; } -#line 2953 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2956 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 67: @@ -2966,13 +2969,13 @@ yyreduce: (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } } -#line 2970 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2973 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 68: #line 625 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 2976 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2979 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 69: @@ -2990,7 +2993,7 @@ yyreduce: (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } } -#line 2994 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 2997 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 70: @@ -2999,7 +3002,7 @@ yyreduce: (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAssign; } -#line 3003 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3006 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 71: @@ -3008,7 +3011,7 @@ yyreduce: (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpMulAssign; } -#line 3012 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3015 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 72: @@ -3017,7 +3020,7 @@ yyreduce: (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpDivAssign; } -#line 3021 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3024 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 73: @@ -3027,7 +3030,7 @@ yyreduce: (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpModAssign; } -#line 3031 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3034 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 74: @@ -3036,7 +3039,7 @@ yyreduce: (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAddAssign; } -#line 3040 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3043 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 75: @@ -3045,7 +3048,7 @@ yyreduce: (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpSubAssign; } -#line 3049 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3052 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 76: @@ -3054,7 +3057,7 @@ yyreduce: parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign"); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign; } -#line 3058 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3061 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 77: @@ -3063,7 +3066,7 @@ yyreduce: parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign"); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign; } -#line 3067 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3070 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 78: @@ -3072,7 +3075,7 @@ yyreduce: parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign"); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign; } -#line 3076 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3079 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 79: @@ -3081,7 +3084,7 @@ yyreduce: parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign"); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign; } -#line 3085 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3088 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 80: @@ -3090,7 +3093,7 @@ yyreduce: parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign"); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign; } -#line 3094 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3097 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 81: @@ -3098,7 +3101,7 @@ yyreduce: { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3102 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3105 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 82: @@ -3111,7 +3114,7 @@ yyreduce: (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } } -#line 3115 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3118 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 83: @@ -3120,7 +3123,7 @@ yyreduce: parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), ""); (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3124 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3127 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 84: @@ -3130,7 +3133,7 @@ yyreduce: (yyval.interm.intermNode) = 0; // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature } -#line 3134 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3137 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 85: @@ -3140,7 +3143,7 @@ yyreduce: (yyvsp[-1].interm).intermNode->getAsAggregate()->setOperator(EOpSequence); (yyval.interm.intermNode) = (yyvsp[-1].interm).intermNode; } -#line 3144 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3147 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 86: @@ -3152,7 +3155,7 @@ yyreduce: parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision); (yyval.interm.intermNode) = 0; } -#line 3156 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3159 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 87: @@ -3161,7 +3164,7 @@ yyreduce: parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList); (yyval.interm.intermNode) = 0; } -#line 3165 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3168 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 88: @@ -3170,7 +3173,7 @@ yyreduce: parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string); (yyval.interm.intermNode) = 0; } -#line 3174 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3177 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 89: @@ -3179,7 +3182,7 @@ yyreduce: parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes); (yyval.interm.intermNode) = 0; } -#line 3183 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3186 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 90: @@ -3189,7 +3192,7 @@ yyreduce: parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type)); (yyval.interm.intermNode) = 0; } -#line 3193 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3196 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 91: @@ -3199,7 +3202,7 @@ yyreduce: parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].lex).string); (yyval.interm.intermNode) = 0; } -#line 3203 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3206 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 92: @@ -3210,13 +3213,13 @@ yyreduce: parseContext.addQualifierToExisting((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier, *(yyvsp[-1].interm.identifierList)); (yyval.interm.intermNode) = 0; } -#line 3214 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3217 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 93: #line 759 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); } -#line 3220 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3223 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 94: @@ -3230,7 +3233,7 @@ yyreduce: (yyval.interm).loc = (yyvsp[-5].interm.type).loc; (yyval.interm).typeList = (yyvsp[-1].interm.typeList); } -#line 3234 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3237 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 95: @@ -3239,7 +3242,7 @@ yyreduce: (yyval.interm.identifierList) = new TIdentifierList; (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string); } -#line 3243 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3246 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 96: @@ -3248,7 +3251,7 @@ yyreduce: (yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList); (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string); } -#line 3252 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3255 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 97: @@ -3257,7 +3260,7 @@ yyreduce: (yyval.interm).function = (yyvsp[-1].interm.function); (yyval.interm).loc = (yyvsp[0].lex).loc; } -#line 3261 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3264 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 98: @@ -3265,7 +3268,7 @@ yyreduce: { (yyval.interm.function) = (yyvsp[0].interm.function); } -#line 3269 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3272 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 99: @@ -3273,7 +3276,7 @@ yyreduce: { (yyval.interm.function) = (yyvsp[0].interm.function); } -#line 3277 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3280 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 100: @@ -3286,7 +3289,7 @@ yyreduce: else delete (yyvsp[0].interm).param.type; } -#line 3290 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3293 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 101: @@ -3308,7 +3311,7 @@ yyreduce: (yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param); } } -#line 3312 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3315 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 102: @@ -3332,7 +3335,7 @@ yyreduce: function = new TFunction((yyvsp[-1].lex).string, type); (yyval.interm.function) = function; } -#line 3336 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3339 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 103: @@ -3352,7 +3355,7 @@ yyreduce: (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).param = param; } -#line 3356 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3359 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 104: @@ -3376,7 +3379,7 @@ yyreduce: (yyval.interm).loc = (yyvsp[-1].lex).loc; (yyval.interm).param = param; } -#line 3380 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3383 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 105: @@ -3392,7 +3395,7 @@ yyreduce: parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type); } -#line 3396 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3399 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 106: @@ -3404,7 +3407,7 @@ 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 3408 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3411 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 107: @@ -3419,7 +3422,7 @@ 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 3423 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3426 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 108: @@ -3431,7 +3434,7 @@ 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 3435 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3438 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 109: @@ -3442,7 +3445,7 @@ yyreduce: if ((yyvsp[0].interm.type).arraySizes) parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes); } -#line 3446 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3449 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 110: @@ -3450,7 +3453,7 @@ yyreduce: { (yyval.interm) = (yyvsp[0].interm); } -#line 3454 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3457 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 111: @@ -3459,7 +3462,7 @@ yyreduce: (yyval.interm) = (yyvsp[-2].interm); parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type); } -#line 3463 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3466 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 112: @@ -3468,7 +3471,7 @@ yyreduce: (yyval.interm) = (yyvsp[-3].interm); parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes); } -#line 3472 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3475 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 113: @@ -3478,7 +3481,7 @@ yyreduce: 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 3482 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3485 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 114: @@ -3488,7 +3491,7 @@ yyreduce: 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 3492 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3495 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 115: @@ -3498,7 +3501,7 @@ yyreduce: (yyval.interm).intermNode = 0; } -#line 3502 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3505 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 116: @@ -3508,7 +3511,7 @@ yyreduce: (yyval.interm).intermNode = 0; parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type)); } -#line 3512 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3515 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 117: @@ -3518,7 +3521,7 @@ yyreduce: (yyval.interm).intermNode = 0; parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-2].interm.type), (yyvsp[0].interm).arraySizes); } -#line 3522 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3525 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 118: @@ -3528,7 +3531,7 @@ yyreduce: 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 3532 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3535 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 119: @@ -3538,7 +3541,7 @@ yyreduce: 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 3542 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3545 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 120: @@ -3553,7 +3556,7 @@ yyreduce: } parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier); } -#line 3557 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3560 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 121: @@ -3582,7 +3585,7 @@ yyreduce: (parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn))) (yyval.interm.type).qualifier.smooth = true; } -#line 3586 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3589 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 122: @@ -3593,7 +3596,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.invariant = true; } -#line 3597 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3600 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 123: @@ -3605,7 +3608,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.smooth = true; } -#line 3609 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3612 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 124: @@ -3617,7 +3620,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.flat = true; } -#line 3621 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3624 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 125: @@ -3625,7 +3628,7 @@ yyreduce: { (yyval.interm.type) = (yyvsp[-1].interm.type); } -#line 3629 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3632 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 126: @@ -3633,7 +3636,7 @@ yyreduce: { (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 3637 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3640 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 127: @@ -3643,7 +3646,7 @@ yyreduce: (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers); parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false); } -#line 3647 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3650 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 128: @@ -3652,7 +3655,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string); } -#line 3656 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3659 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 129: @@ -3661,7 +3664,7 @@ yyreduce: (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 3665 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3668 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 130: @@ -3671,7 +3674,7 @@ yyreduce: TString strShared("shared"); parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), strShared); } -#line 3675 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3678 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 131: @@ -3679,7 +3682,7 @@ yyreduce: { (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 3683 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3686 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 132: @@ -3692,7 +3695,7 @@ 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 3696 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3699 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 133: @@ -3700,7 +3703,7 @@ yyreduce: { (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 3704 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3707 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 134: @@ -3708,7 +3711,7 @@ yyreduce: { (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 3712 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3715 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 135: @@ -3717,7 +3720,7 @@ yyreduce: parseContext.checkPrecisionQualifier((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier.precision); (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 3721 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3724 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 136: @@ -3726,7 +3729,7 @@ yyreduce: // allow inheritance of storage qualifier from block declaration (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 3730 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3733 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 137: @@ -3735,7 +3738,7 @@ yyreduce: // allow inheritance of storage qualifier from block declaration (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 3739 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3742 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 138: @@ -3744,7 +3747,7 @@ yyreduce: (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 3748 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3751 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 139: @@ -3754,7 +3757,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqInOut; } -#line 3758 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3761 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 140: @@ -3765,7 +3768,7 @@ yyreduce: // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later (yyval.interm.type).qualifier.storage = EvqIn; } -#line 3769 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3772 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 141: @@ -3776,7 +3779,7 @@ yyreduce: // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later (yyval.interm.type).qualifier.storage = EvqOut; } -#line 3780 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3783 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 142: @@ -3788,7 +3791,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.centroid = true; } -#line 3792 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3795 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 143: @@ -3798,7 +3801,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqUniform; } -#line 3802 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3805 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 144: @@ -3811,21 +3814,31 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqShared; } -#line 3815 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3818 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 145: -#line 1173 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1167 "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 3828 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 146: +#line 1178 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[-1].interm.type); (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type)); (yyval.interm.type).typeParameters = (yyvsp[0].interm.typeParameters); } -#line 3825 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3838 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 146: -#line 1178 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 147: +#line 1183 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.arrayOfArrayVersionCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes); (yyval.interm.type) = (yyvsp[-2].interm.type); @@ -3833,21 +3846,21 @@ yyreduce: (yyval.interm.type).typeParameters = (yyvsp[-1].interm.typeParameters); (yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes; } -#line 3837 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3850 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 147: -#line 1188 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 148: +#line 1193 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[-1].lex).loc; (yyval.interm).arraySizes = new TArraySizes; (yyval.interm).arraySizes->addInnerSize(); } -#line 3847 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3860 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 148: -#line 1193 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 149: +#line 1198 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[-2].lex).loc; (yyval.interm).arraySizes = new TArraySizes; @@ -3856,20 +3869,20 @@ yyreduce: parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size"); (yyval.interm).arraySizes->addInnerSize(size); } -#line 3860 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3873 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 149: -#line 1201 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 150: +#line 1206 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[-2].interm); (yyval.interm).arraySizes->addInnerSize(); } -#line 3869 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3882 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 150: -#line 1205 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 151: +#line 1210 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[-3].interm); @@ -3877,35 +3890,35 @@ yyreduce: parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size"); (yyval.interm).arraySizes->addInnerSize(size); } -#line 3881 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 151: -#line 1215 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.typeParameters) = (yyvsp[0].interm.typeParameters); - } -#line 3889 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3894 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 152: -#line 1218 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1220 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.typeParameters) = 0; + (yyval.interm.typeParameters) = (yyvsp[0].interm.typeParameters); } -#line 3897 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3902 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 153: -#line 1224 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1223 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.typeParameters) = (yyvsp[-1].interm.typeParameters); + (yyval.interm.typeParameters) = 0; } -#line 3905 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3910 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 154: -#line 1230 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1229 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.typeParameters) = (yyvsp[-1].interm.typeParameters); + } +#line 3918 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 155: +#line 1235 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeParameters) = new TArraySizes; @@ -3913,11 +3926,11 @@ yyreduce: parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter"); (yyval.interm.typeParameters)->addInnerSize(size); } -#line 3917 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3930 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 155: -#line 1237 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 156: +#line 1242 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeParameters) = (yyvsp[-2].interm.typeParameters); @@ -3925,63 +3938,53 @@ yyreduce: parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter"); (yyval.interm.typeParameters)->addInnerSize(size); } -#line 3929 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3942 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 156: -#line 1247 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 157: +#line 1252 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtVoid; } -#line 3938 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3951 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 157: -#line 1251 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 158: +#line 1256 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; } -#line 3947 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3960 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 158: -#line 1255 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 159: +#line 1260 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; } -#line 3956 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 159: -#line 1259 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint; - } -#line 3966 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3969 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 160: #line 1264 "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 = EbtBool; + (yyval.interm.type).basicType = EbtUint; } -#line 3975 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3979 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 161: -#line 1268 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1269 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setVector(2); + (yyval.interm.type).basicType = EbtBool; } -#line 3985 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3988 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 162: @@ -3989,9 +3992,9 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setVector(3); + (yyval.interm.type).setVector(2); } -#line 3995 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3998 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 163: @@ -3999,19 +4002,19 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setVector(4); + (yyval.interm.type).setVector(3); } -#line 4005 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4008 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 164: #line 1283 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtBool; - (yyval.interm.type).setVector(2); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setVector(4); } -#line 4015 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4018 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 165: @@ -4019,9 +4022,9 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBool; - (yyval.interm.type).setVector(3); + (yyval.interm.type).setVector(2); } -#line 4025 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4028 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 166: @@ -4029,19 +4032,19 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBool; - (yyval.interm.type).setVector(4); + (yyval.interm.type).setVector(3); } -#line 4035 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4038 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 167: #line 1298 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt; - (yyval.interm.type).setVector(2); + (yyval.interm.type).basicType = EbtBool; + (yyval.interm.type).setVector(4); } -#line 4045 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4048 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 168: @@ -4049,9 +4052,9 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; - (yyval.interm.type).setVector(3); + (yyval.interm.type).setVector(2); } -#line 4055 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4058 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 169: @@ -4059,52 +4062,52 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; - (yyval.interm.type).setVector(4); + (yyval.interm.type).setVector(3); } -#line 4065 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4068 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 170: #line 1313 "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 4078 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 171: +#line 1318 "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 4076 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4089 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 171: -#line 1319 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 172: +#line 1324 "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 4087 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4100 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 172: -#line 1325 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 173: +#line 1330 "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 4098 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 173: -#line 1331 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(2, 2); - } -#line 4108 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4111 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 174: @@ -4112,9 +4115,9 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(3, 3); + (yyval.interm.type).setMatrix(2, 2); } -#line 4118 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4121 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 175: @@ -4122,9 +4125,9 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(4, 4); + (yyval.interm.type).setMatrix(3, 3); } -#line 4128 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4131 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 176: @@ -4132,9 +4135,9 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(2, 2); + (yyval.interm.type).setMatrix(4, 4); } -#line 4138 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4141 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 177: @@ -4142,9 +4145,9 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(2, 3); + (yyval.interm.type).setMatrix(2, 2); } -#line 4148 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4151 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 178: @@ -4152,9 +4155,9 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(2, 4); + (yyval.interm.type).setMatrix(2, 3); } -#line 4158 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4161 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 179: @@ -4162,9 +4165,9 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(3, 2); + (yyval.interm.type).setMatrix(2, 4); } -#line 4168 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4171 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 180: @@ -4172,9 +4175,9 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(3, 3); + (yyval.interm.type).setMatrix(3, 2); } -#line 4178 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4181 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 181: @@ -4182,9 +4185,9 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(3, 4); + (yyval.interm.type).setMatrix(3, 3); } -#line 4188 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4191 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 182: @@ -4192,9 +4195,9 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(4, 2); + (yyval.interm.type).setMatrix(3, 4); } -#line 4198 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4201 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 183: @@ -4202,9 +4205,9 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(4, 3); + (yyval.interm.type).setMatrix(4, 2); } -#line 4208 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4211 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 184: @@ -4212,19 +4215,19 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(4, 4); + (yyval.interm.type).setMatrix(4, 3); } -#line 4218 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4221 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 185: -#line 1392 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1391 "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); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(4, 4); } -#line 4228 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4231 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 186: @@ -4232,9 +4235,9 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd3D); + (yyval.interm.type).sampler.set(EbtFloat, Esd2D); } -#line 4238 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4241 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 187: @@ -4242,9 +4245,9 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, EsdCube); + (yyval.interm.type).sampler.set(EbtFloat, Esd3D); } -#line 4248 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4251 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 188: @@ -4252,9 +4255,9 @@ yyreduce: { (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); + (yyval.interm.type).sampler.set(EbtFloat, EsdCube); } -#line 4258 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4261 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 189: @@ -4262,9 +4265,9 @@ yyreduce: { (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); + (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true); } -#line 4268 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4271 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 190: @@ -4272,9 +4275,9 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true); + (yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true); } -#line 4278 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4281 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 191: @@ -4282,19 +4285,19 @@ yyreduce: { (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); + (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true); } -#line 4288 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4291 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 192: -#line 1428 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1427 "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); + (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true); } -#line 4298 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4301 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 193: @@ -4302,9 +4305,9 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, Esd3D); + (yyval.interm.type).sampler.set(EbtInt, Esd2D); } -#line 4308 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4311 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 194: @@ -4312,9 +4315,9 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, EsdCube); + (yyval.interm.type).sampler.set(EbtInt, Esd3D); } -#line 4318 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4321 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 195: @@ -4322,9 +4325,9 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, Esd2D, true); + (yyval.interm.type).sampler.set(EbtInt, EsdCube); } -#line 4328 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4331 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 196: @@ -4332,9 +4335,9 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, Esd2D); + (yyval.interm.type).sampler.set(EbtInt, Esd2D, true); } -#line 4338 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4341 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 197: @@ -4342,9 +4345,9 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, Esd3D); + (yyval.interm.type).sampler.set(EbtUint, Esd2D); } -#line 4348 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4351 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 198: @@ -4352,19 +4355,19 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, EsdCube); + (yyval.interm.type).sampler.set(EbtUint, Esd3D); } -#line 4358 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4361 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 199: -#line 1464 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1463 "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); + (yyval.interm.type).sampler.set(EbtUint, EsdCube); } -#line 4368 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4371 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 200: @@ -4372,9 +4375,9 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D); + (yyval.interm.type).sampler.set(EbtUint, Esd2D, true); } -#line 4378 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4381 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 201: @@ -4382,9 +4385,9 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D); + (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D); } -#line 4388 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4391 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 202: @@ -4392,9 +4395,9 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true); + (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D); } -#line 4398 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4401 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 203: @@ -4402,9 +4405,9 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube); + (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true); } -#line 4408 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4411 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 204: @@ -4412,9 +4415,9 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D); + (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube); } -#line 4418 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4421 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 205: @@ -4422,9 +4425,9 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D); + (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D); } -#line 4428 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4431 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 206: @@ -4432,9 +4435,9 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube); + (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D); } -#line 4438 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4441 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 207: @@ -4442,9 +4445,9 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true); + (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube); } -#line 4448 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4451 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 208: @@ -4452,9 +4455,9 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D); + (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true); } -#line 4458 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4461 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 209: @@ -4462,9 +4465,9 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D); + (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D); } -#line 4468 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4471 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 210: @@ -4472,9 +4475,9 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube); + (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D); } -#line 4478 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4481 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 211: @@ -4482,9 +4485,9 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true); + (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube); } -#line 4488 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4491 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 212: @@ -4492,9 +4495,9 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setPureSampler(false); + (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true); } -#line 4498 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4501 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 213: @@ -4502,23 +4505,33 @@ yyreduce: { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setPureSampler(true); + (yyval.interm.type).sampler.setPureSampler(false); } -#line 4508 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4511 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 214: -#line 1540 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1539 "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 4521 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 215: +#line 1545 "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 4518 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4531 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 215: -#line 1545 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 216: +#line 1550 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // // This is for user defined type names. The lexical phase looked up the @@ -4532,47 +4545,47 @@ yyreduce: } else parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), ""); } -#line 4536 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 216: -#line 1561 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqHigh); - } -#line 4546 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4549 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 217: #line 1566 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier"); + 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, EpqMedium); + parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqHigh); } -#line 4556 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4559 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 218: #line 1571 "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 4569 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 219: +#line 1576 "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 4566 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 219: -#line 1579 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); } -#line 4572 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4579 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 220: -#line 1579 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1584 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); } +#line 4585 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 221: +#line 1584 "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); @@ -4584,17 +4597,17 @@ yyreduce: (yyval.interm.type).userDef = structure; --parseContext.structNestingLevel; } -#line 4588 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 221: -#line 1590 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); } -#line 4594 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4601 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 222: -#line 1590 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1595 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); } +#line 4607 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 223: +#line 1595 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { TType* structure = new TType((yyvsp[-1].interm.typeList), TString("")); (yyval.interm.type).init((yyvsp[-4].lex).loc); @@ -4602,19 +4615,19 @@ yyreduce: (yyval.interm.type).userDef = structure; --parseContext.structNestingLevel; } -#line 4606 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 223: -#line 1600 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.typeList) = (yyvsp[0].interm.typeList); - } -#line 4614 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4619 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 224: -#line 1603 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1605 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.typeList) = (yyvsp[0].interm.typeList); + } +#line 4627 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 225: +#line 1608 "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) { @@ -4625,11 +4638,11 @@ yyreduce: (yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]); } } -#line 4629 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4642 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 225: -#line 1616 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 226: +#line 1621 "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"); @@ -4652,11 +4665,11 @@ yyreduce: (*(yyval.interm.typeList))[i].type->shallowCopy(type); } } -#line 4656 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4669 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 226: -#line 1638 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 227: +#line 1643 "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"); @@ -4681,38 +4694,38 @@ yyreduce: (*(yyval.interm.typeList))[i].type->shallowCopy(type); } } -#line 4685 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4698 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 227: -#line 1665 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 228: +#line 1670 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeList) = new TTypeList; (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); } -#line 4694 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 228: -#line 1669 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); - } -#line 4702 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4707 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 229: -#line 1675 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1674 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); + } +#line 4715 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 230: +#line 1680 "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 4712 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4725 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 230: -#line 1680 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 231: +#line 1685 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes); @@ -4721,181 +4734,181 @@ yyreduce: (yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string); (yyval.interm.typeLine).type->transferArraySizes((yyvsp[0].interm).arraySizes); } -#line 4725 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 231: -#line 1691 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - } -#line 4733 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4738 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 232: -#line 1700 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 4739 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 1696 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + } +#line 4746 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 233: -#line 1704 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1705 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 4745 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4752 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 234: -#line 1705 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1709 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 4751 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4758 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 235: -#line 1711 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1710 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 4757 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4764 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 236: -#line 1712 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1716 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 4763 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4770 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 237: -#line 1713 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1717 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 4769 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4776 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 238: -#line 1714 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1718 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 4775 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4782 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 239: -#line 1715 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1719 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 4781 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4788 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 240: -#line 1716 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1720 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 4787 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4794 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 241: -#line 1717 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1721 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 4793 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4800 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 242: -#line 1724 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = 0; } -#line 4799 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 1722 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 4806 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 243: -#line 1725 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1729 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = 0; } +#line 4812 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 244: +#line 1730 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.push(); ++parseContext.statementNestingLevel; } -#line 4808 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4821 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 244: -#line 1729 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 245: +#line 1734 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); --parseContext.statementNestingLevel; } -#line 4817 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4830 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 245: -#line 1733 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 246: +#line 1738 "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 4827 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 246: -#line 1741 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 4833 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4840 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 247: -#line 1742 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1746 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 4839 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4846 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 248: -#line 1746 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - ++parseContext.controlFlowNestingLevel; - } -#line 4847 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 1747 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 4852 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 249: -#line 1749 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1751 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + ++parseContext.controlFlowNestingLevel; + } +#line 4860 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 250: +#line 1754 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { --parseContext.controlFlowNestingLevel; (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 4856 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4869 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 250: -#line 1753 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 251: +#line 1758 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.push(); ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 4866 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4879 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 251: -#line 1758 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 252: +#line 1763 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 4877 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 252: -#line 1767 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = 0; - } -#line 4885 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4890 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 253: -#line 1770 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1772 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.intermNode) = 0; + } +#line 4898 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 254: +#line 1775 "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 4895 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4908 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 254: -#line 1778 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 255: +#line 1783 "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 || @@ -4904,11 +4917,11 @@ yyreduce: (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case } } -#line 4908 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4921 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 255: -#line 1786 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 256: +#line 1791 "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)) { @@ -4917,67 +4930,67 @@ yyreduce: } else (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode)); } -#line 4921 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 256: -#line 1797 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = 0; } -#line 4927 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4934 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 257: -#line 1798 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = static_cast((yyvsp[-1].interm.intermTypedNode)); } -#line 4933 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 1802 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = 0; } +#line 4940 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 258: -#line 1802 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 4941 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 1803 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = static_cast((yyvsp[-1].interm.intermTypedNode)); } +#line 4946 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 259: -#line 1808 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1807 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + } +#line 4954 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 260: +#line 1813 "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 4950 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4963 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 260: -#line 1815 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 261: +#line 1820 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode); (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode); } -#line 4959 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4972 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 261: -#line 1819 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 262: +#line 1824 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode); (yyval.interm.nodePair).node2 = 0; } -#line 4968 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4981 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 262: -#line 1827 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 263: +#line 1832 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode)); } -#line 4977 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4990 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 263: -#line 1831 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 264: +#line 1836 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type)); @@ -4988,19 +5001,19 @@ yyreduce: else (yyval.interm.intermTypedNode) = 0; } -#line 4992 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 264: -#line 1844 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 5000 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5005 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 265: -#line 1850 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1849 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + } +#line 5013 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 266: +#line 1855 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // start new switch sequence on the switch stack ++parseContext.controlFlowNestingLevel; @@ -5009,11 +5022,11 @@ yyreduce: parseContext.switchLevel.push_back(parseContext.statementNestingLevel); parseContext.symbolTable.push(); } -#line 5013 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5026 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 266: -#line 1858 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 267: +#line 1863 "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(); @@ -5023,27 +5036,27 @@ yyreduce: --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 5027 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 267: -#line 1870 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = 0; - } -#line 5035 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5040 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 268: -#line 1873 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1875 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + (yyval.interm.intermNode) = 0; } -#line 5043 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5048 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 269: -#line 1879 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1878 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + } +#line 5056 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 270: +#line 1884 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; if (parseContext.switchLevel.size() == 0) @@ -5056,11 +5069,11 @@ yyreduce: (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc); } } -#line 5060 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5073 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 270: -#line 1891 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 271: +#line 1896 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; if (parseContext.switchLevel.size() == 0) @@ -5070,19 +5083,19 @@ yyreduce: else (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc); } -#line 5074 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 271: -#line 1903 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 5082 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5087 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 272: -#line 1909 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1908 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + } +#line 5095 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 273: +#line 1914 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if (! parseContext.limits.whileLoops) parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", ""); @@ -5091,11 +5104,11 @@ yyreduce: ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 5095 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5108 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 273: -#line 1917 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 274: +#line 1922 "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); @@ -5103,21 +5116,21 @@ yyreduce: --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 5107 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5120 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 274: -#line 1924 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 275: +#line 1929 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { ++parseContext.loopNestingLevel; ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 5117 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5130 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 275: -#line 1929 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 276: +#line 1934 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if (! parseContext.limits.whileLoops) parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", ""); @@ -5129,22 +5142,22 @@ yyreduce: --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 5133 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5146 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 276: -#line 1940 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 277: +#line 1945 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.push(); ++parseContext.loopNestingLevel; ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 5144 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5157 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 277: -#line 1946 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 278: +#line 1951 "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); @@ -5157,81 +5170,81 @@ yyreduce: --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 5161 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 278: -#line 1961 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 5169 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5174 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 279: -#line 1964 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1966 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 5177 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5182 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 280: -#line 1970 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1969 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 5185 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5190 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 281: -#line 1973 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1975 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = 0; + (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 5193 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5198 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 282: -#line 1979 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1978 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.intermTypedNode) = 0; + } +#line 5206 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 283: +#line 1984 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode); (yyval.interm.nodePair).node2 = 0; } -#line 5202 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5215 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 283: -#line 1983 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 284: +#line 1988 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode); (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode); } -#line 5211 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 284: -#line 1990 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - if (parseContext.loopNestingLevel <= 0) - parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", ""); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc); - } -#line 5221 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5224 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 285: #line 1995 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0) - parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", ""); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc); + 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 5231 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5234 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 286: #line 2000 "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 5244 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 287: +#line 2005 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc); if (parseContext.currentFunctionType->getBasicType() != EbtVoid) @@ -5239,73 +5252,73 @@ yyreduce: if (parseContext.inMain) parseContext.postEntryPointReturn = true; } -#line 5243 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 287: -#line 2007 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode)); - } -#line 5251 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5256 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 288: -#line 2010 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2012 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode)); + } +#line 5264 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 289: +#line 2015 "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 5260 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5273 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 289: -#line 2019 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 290: +#line 2024 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); } -#line 5269 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5282 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 290: -#line 2023 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 291: +#line 2028 "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 5280 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 291: -#line 2032 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 5288 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5293 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 292: -#line 2035 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2037 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 5296 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5301 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 293: -#line 2042 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2040 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + } +#line 5309 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 294: +#line 2047 "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 5305 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5318 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 294: -#line 2046 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 295: +#line 2051 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // May be best done as post process phase on intermediate code if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue) @@ -5321,11 +5334,11 @@ yyreduce: (yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug); (yyval.interm.intermNode)->getAsAggregate()->setPragmaTable(parseContext.contextPragma.pragmaTable); } -#line 5325 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5338 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; -#line 5329 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5342 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -5553,5 +5566,5 @@ yyreturn: #endif return yyresult; } -#line 2065 "MachineIndependent/glslang.y" /* yacc.c:1906 */ +#line 2070 "MachineIndependent/glslang.y" /* yacc.c:1906 */ diff --git a/glslang/MachineIndependent/glslang_tab.cpp.h b/glslang/MachineIndependent/glslang_tab.cpp.h index 5b9a17ee..1a2ec999 100644 --- a/glslang/MachineIndependent/glslang_tab.cpp.h +++ b/glslang/MachineIndependent/glslang_tab.cpp.h @@ -182,9 +182,10 @@ extern int yydebug; DEFAULT = 392, UNIFORM = 393, SHARED = 394, - FLAT = 395, - SMOOTH = 396, - LAYOUT = 397 + BUFFER = 395, + FLAT = 396, + SMOOTH = 397, + LAYOUT = 398 }; #endif @@ -229,7 +230,7 @@ union YYSTYPE glslang::TArraySizes* typeParameters; } interm; -#line 233 "MachineIndependent/glslang_tab.cpp.h" /* yacc.c:1909 */ +#line 234 "MachineIndependent/glslang_tab.cpp.h" /* yacc.c:1909 */ }; typedef union YYSTYPE YYSTYPE;