aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-prod (mdb) <android-build-team-robot@google.com>2021-02-27 05:49:54 +0000
committerandroid-build-prod (mdb) <android-build-team-robot@google.com>2021-02-27 05:49:54 +0000
commitcb6847f6016182f15f1c3020aa591d721fbc6d3a (patch)
tree42224c5c184b15464d835df5bbe44c1669ded9df
parent7ed0656c1990c6ef78a1462d9c5a1917417c9ce0 (diff)
parentd1037b62f6321bec77aa96f3b59a86847daa4885 (diff)
downloadglslang-busytown-mac1010-release.tar.gz
Snap for 7174163 from d1037b62f6321bec77aa96f3b59a86847daa4885 to busytown-mac1010-releasebusytown-mac1010-release
Change-Id: I0a9dc4d5d17705a158b1a2d3e9ff8347069e9dfa
-rw-r--r--.travis.yml12
-rw-r--r--CHANGES.md8
-rw-r--r--CMakeLists.txt50
-rw-r--r--README.md9
-rw-r--r--SPIRV/GLSL.ext.KHR.h1
-rw-r--r--SPIRV/GlslangToSpv.cpp48
-rw-r--r--SPIRV/SpvBuilder.cpp24
-rw-r--r--SPIRV/SpvBuilder.h3
-rw-r--r--SPIRV/SpvPostProcess.cpp32
-rw-r--r--SPIRV/SpvTools.cpp2
-rw-r--r--SPIRV/doc.cpp4
-rw-r--r--SPIRV/spirv.hpp94
-rw-r--r--StandAlone/StandAlone.cpp7
-rw-r--r--Test/baseResults/310.comp.out14
-rw-r--r--Test/baseResults/400.frag.out2
-rw-r--r--Test/baseResults/430.comp.out14
-rw-r--r--Test/baseResults/hlsl.load.2dms.dx10.frag.out1
-rw-r--r--Test/baseResults/hlsl.load.offset.dx10.frag.out1
-rw-r--r--Test/baseResults/hlsl.load.offsetarray.dx10.frag.out1
-rw-r--r--Test/baseResults/hlsl.round.dx10.frag.out60
-rw-r--r--Test/baseResults/hlsl.round.dx9.frag.out70
-rw-r--r--Test/baseResults/hlsl.rw.register.frag.out1
-rw-r--r--Test/baseResults/hlsl.rw.scalar.bracket.frag.out1
-rw-r--r--Test/baseResults/hlsl.rw.vec2.bracket.frag.out1
-rw-r--r--Test/baseResults/link.vk.multiBlocksValid.1.0.geom.out4
-rw-r--r--Test/baseResults/rayQuery-allOps.comp.out2
-rw-r--r--Test/baseResults/rayQuery-allOps.frag.out2
-rw-r--r--Test/baseResults/rayQuery-allOps.rgen.out2
-rw-r--r--Test/baseResults/rayQuery-types.comp.out152
-rw-r--r--Test/baseResults/spv.WorkgroupMemoryExplicitLayout.16BitAccess.comp.out54
-rw-r--r--Test/baseResults/spv.WorkgroupMemoryExplicitLayout.8BitAccess.comp.out45
-rw-r--r--Test/baseResults/spv.WorkgroupMemoryExplicitLayout.MixBlockNonBlock_Errors.comp.out4
-rw-r--r--Test/baseResults/spv.WorkgroupMemoryExplicitLayout.MultiBlock.comp.out54
-rw-r--r--Test/baseResults/spv.WorkgroupMemoryExplicitLayout.NonBlock.comp.out35
-rw-r--r--Test/baseResults/spv.WorkgroupMemoryExplicitLayout.SingleBlock.comp.out41
-rw-r--r--Test/baseResults/spv.WorkgroupMemoryExplicitLayout.scalar.comp.out84
-rw-r--r--Test/baseResults/spv.WorkgroupMemoryExplicitLayout.std140.comp.out83
-rw-r--r--Test/baseResults/spv.WorkgroupMemoryExplicitLayout.std430.comp.out83
-rw-r--r--Test/baseResults/spv.debugInfo.1.1.frag.out9
-rwxr-xr-xTest/baseResults/spv.nullInit.comp.out65
-rw-r--r--Test/baseResults/spv.queueFamilyScope.comp.out43
-rw-r--r--Test/baseResults/spv.rw.autoassign.frag.out1
-rw-r--r--Test/baseResults/spv.scalarlayout.frag.out1
-rw-r--r--Test/baseResults/spv.scalarlayoutfloat16.frag.out1
-rw-r--r--Test/baseResults/spv.specConstant.vert.out6
-rw-r--r--Test/baseResults/vulkan.comp.out13
-rw-r--r--Test/hlsl.round.dx10.frag4
-rw-r--r--Test/hlsl.round.dx9.frag4
-rw-r--r--Test/rayQuery-types.comp45
-rwxr-xr-xTest/runtests2
-rw-r--r--Test/spv.WorkgroupMemoryExplicitLayout.16BitAccess.comp18
-rw-r--r--Test/spv.WorkgroupMemoryExplicitLayout.8BitAccess.comp16
-rw-r--r--Test/spv.WorkgroupMemoryExplicitLayout.MixBlockNonBlock_Errors.comp20
-rw-r--r--Test/spv.WorkgroupMemoryExplicitLayout.MultiBlock.comp21
-rw-r--r--Test/spv.WorkgroupMemoryExplicitLayout.NonBlock.comp14
-rw-r--r--Test/spv.WorkgroupMemoryExplicitLayout.SingleBlock.comp15
-rw-r--r--Test/spv.WorkgroupMemoryExplicitLayout.scalar.comp39
-rw-r--r--Test/spv.WorkgroupMemoryExplicitLayout.std140.comp35
-rw-r--r--Test/spv.WorkgroupMemoryExplicitLayout.std430.comp35
-rw-r--r--Test/spv.nullInit.comp32
-rw-r--r--Test/spv.queueFamilyScope.comp10
-rw-r--r--Test/vulkan.comp21
-rw-r--r--build_info.h.tmpl8
-rwxr-xr-xbuild_info.py14
-rw-r--r--glslang/CMakeLists.txt2
-rw-r--r--glslang/HLSL/hlslParseHelper.cpp12
-rw-r--r--glslang/HLSL/hlslParseHelper.h22
-rw-r--r--glslang/HLSL/hlslParseables.cpp2
-rw-r--r--glslang/Include/Types.h9
-rw-r--r--glslang/Include/glslang_c_shader_types.h5
-rw-r--r--glslang/Include/intermediate.h10
-rw-r--r--glslang/MachineIndependent/Intermediate.cpp4
-rw-r--r--glslang/MachineIndependent/ParseHelper.cpp102
-rw-r--r--glslang/MachineIndependent/ParseHelper.h5
-rw-r--r--glslang/MachineIndependent/ShaderLang.cpp17
-rw-r--r--glslang/MachineIndependent/SymbolTable.cpp2
-rw-r--r--glslang/MachineIndependent/SymbolTable.h38
-rw-r--r--glslang/MachineIndependent/Versions.cpp11
-rw-r--r--glslang/MachineIndependent/Versions.h2
-rw-r--r--glslang/MachineIndependent/glslang.m46
-rw-r--r--glslang/MachineIndependent/glslang.y6
-rw-r--r--glslang/MachineIndependent/glslang_tab.cpp4687
-rw-r--r--glslang/MachineIndependent/iomapper.h2
-rw-r--r--glslang/MachineIndependent/limits.cpp6
-rw-r--r--glslang/MachineIndependent/linkValidate.cpp56
-rw-r--r--glslang/MachineIndependent/localintermediate.h27
-rw-r--r--glslang/MachineIndependent/reflection.cpp2
-rw-r--r--glslang/Public/ShaderLang.h5
-rw-r--r--gtests/Hlsl.FromFile.cpp2
-rw-r--r--gtests/Spv.FromFile.cpp14
-rw-r--r--known_good.json4
-rw-r--r--license-checker.cfg10
-rw-r--r--parse_version.cmake41
93 files changed, 4239 insertions, 2469 deletions
diff --git a/.travis.yml b/.travis.yml
index 1fa3fc01..87838b82 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -61,7 +61,17 @@ install:
fi
before_script:
- - git clone --depth=1 https://github.com/google/googletest.git External/googletest
+ # check out pre-breakage version of googletest; can be deleted when
+ # issue 3128 is fixed
+ # git clone --depth=1 https://github.com/google/googletest.git External/googletest
+ - mkdir -p External/googletest
+ - cd External/googletest
+ - git init
+ - git remote add origin https://github.com/google/googletest.git
+ - git fetch --depth 1 origin 0c400f67fcf305869c5fb113dd296eca266c9725
+ - git reset --hard FETCH_HEAD
+ - cd ../..
+ # get spirv-tools and spirv-headers
- ./update_glslang_sources.py
script:
diff --git a/CHANGES.md b/CHANGES.md
index 63280410..0698e76a 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](https://semver.org/).
+## 11.1.0 2021-02-18
+
+### Other changes
+* Removed Python requirement when not building with spirv-tools
+* Add support for GL_EXT_shared_memory_block
+* Implement GL_EXT_null_initializer
+* Add CMake support for Fuschia
+
## 11.0.0 2020-07-20
### Breaking changes
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ada2b8fb..d582926f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -186,7 +186,7 @@ elseif(MSVC)
if(NOT ENABLE_RTTI)
string(FIND "${CMAKE_CXX_FLAGS}" "/GR" MSVC_HAS_GR)
if(MSVC_HAS_GR)
- string(REGEX REPLACE /GR /GR- CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
+ string(REGEX REPLACE "/GR" "/GR-" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
else()
add_compile_options(/GR-) # Disable RTTI
endif()
@@ -234,55 +234,33 @@ if(NOT COMMAND find_host_package)
endmacro()
endif()
-# CMake needs to find the right version of python, right from the beginning,
-# otherwise, it will find the wrong version and fail later
-find_host_package(PythonInterp 3 REQUIRED)
-
# Root directory for build-time generated include files
set(GLSLANG_GENERATED_INCLUDEDIR "${CMAKE_BINARY_DIR}/include")
################################################################################
# Build version information generation
################################################################################
+include(parse_version.cmake)
set(GLSLANG_CHANGES_FILE "${CMAKE_CURRENT_SOURCE_DIR}/CHANGES.md")
-set(GLSLANG_BUILD_INFO_PY "${CMAKE_CURRENT_SOURCE_DIR}/build_info.py")
set(GLSLANG_BUILD_INFO_H_TMPL "${CMAKE_CURRENT_SOURCE_DIR}/build_info.h.tmpl")
set(GLSLANG_BUILD_INFO_H "${GLSLANG_GENERATED_INCLUDEDIR}/glslang/build_info.h")
-# Command to build the build_info.h file
-add_custom_command(
- OUTPUT ${GLSLANG_BUILD_INFO_H}
- COMMAND ${PYTHON_EXECUTABLE} "${GLSLANG_BUILD_INFO_PY}"
- ${CMAKE_CURRENT_SOURCE_DIR}
- "-i" ${GLSLANG_BUILD_INFO_H_TMPL}
- "-o" ${GLSLANG_BUILD_INFO_H}
- DEPENDS ${GLSLANG_BUILD_INFO_PY}
- ${GLSLANG_CHANGES_FILE}
- ${GLSLANG_BUILD_INFO_H_TMPL}
- COMMENT "Generating ${GLSLANG_BUILD_INFO_H}")
-
-# Target to build the build_info.h file
-add_custom_target(glslang-build-info DEPENDS ${GLSLANG_BUILD_INFO_H})
-
-# Populate the CMake GLSLANG_VERSION* variables with the build version
-# information.
-execute_process(
- COMMAND ${PYTHON_EXECUTABLE} "${GLSLANG_BUILD_INFO_PY}"
- ${CMAKE_CURRENT_SOURCE_DIR} "<major>.<minor>.<patch><-flavor>;<major>;<minor>;<patch>;<flavor>"
- OUTPUT_VARIABLE "GLSLANG_VERSIONS"
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-list(GET "GLSLANG_VERSIONS" 0 "GLSLANG_VERSION")
-list(GET "GLSLANG_VERSIONS" 1 "GLSLANG_VERSION_MAJOR")
-list(GET "GLSLANG_VERSIONS" 2 "GLSLANG_VERSION_MINOR")
-list(GET "GLSLANG_VERSIONS" 3 "GLSLANG_VERSION_PATCH")
-list(GET "GLSLANG_VERSIONS" 4 "GLSLANG_VERSION_FLAVOR")
-configure_file(${GLSLANG_CHANGES_FILE} "${CMAKE_CURRENT_BINARY_DIR}/CHANGES.md") # Required to re-run cmake on version change
+parse_version(${GLSLANG_CHANGES_FILE} GLSLANG)
+
+function(configurate_version)
+ set(major ${GLSLANG_VERSION_MAJOR})
+ set(minor ${GLSLANG_VERSION_MINOR})
+ set(patch ${GLSLANG_VERSION_PATCH})
+ set(flavor ${GLSLANG_VERSION_FLAVOR})
+ configure_file(${GLSLANG_BUILD_INFO_H_TMPL} ${GLSLANG_BUILD_INFO_H} @ONLY)
+endfunction()
+
+configurate_version()
# glslang_add_build_info_dependency() adds the glslang-build-info dependency and
# generated include directories to target.
function(glslang_add_build_info_dependency target)
target_include_directories(${target} PUBLIC $<BUILD_INTERFACE:${GLSLANG_GENERATED_INCLUDEDIR}>)
- add_dependencies(${target} glslang-build-info)
endfunction()
# glslang_only_export_explicit_symbols() makes the symbol visibility hidden by
@@ -316,6 +294,8 @@ else()
endif()
if(BUILD_EXTERNAL AND IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/External)
+ find_package(PythonInterp 3 REQUIRED)
+
# We depend on these for later projects, so they should come first.
add_subdirectory(External)
endif()
diff --git a/README.md b/README.md
index 7ad4ace9..9b8cfb3f 100644
--- a/README.md
+++ b/README.md
@@ -125,6 +125,15 @@ cd <the directory glslang was cloned to, "External" will be a subdirectory>
git clone https://github.com/google/googletest.git External/googletest
```
+TEMPORARY NOTICE: additionally perform the following to avoid a current
+breakage in googletest:
+
+```bash
+cd External/googletest
+git checkout 0c400f67fcf305869c5fb113dd296eca266c9725
+cd ../..
+```
+
If you wish to assure that SPIR-V generated from HLSL is legal for Vulkan,
wish to invoke -Os to reduce SPIR-V size from HLSL or GLSL, or wish to run the
integrated test suite, install spirv-tools with this:
diff --git a/SPIRV/GLSL.ext.KHR.h b/SPIRV/GLSL.ext.KHR.h
index 9610c6ee..175fa8d5 100644
--- a/SPIRV/GLSL.ext.KHR.h
+++ b/SPIRV/GLSL.ext.KHR.h
@@ -50,5 +50,6 @@ static const char* const E_SPV_KHR_ray_tracing = "SPV_KHR_ray_t
static const char* const E_SPV_KHR_ray_query = "SPV_KHR_ray_query";
static const char* const E_SPV_KHR_fragment_shading_rate = "SPV_KHR_fragment_shading_rate";
static const char* const E_SPV_KHR_terminate_invocation = "SPV_KHR_terminate_invocation";
+static const char* const E_SPV_KHR_workgroup_memory_explicit_layout = "SPV_KHR_workgroup_memory_explicit_layout";
#endif // #ifndef GLSLextKHR_H
diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp
index 1adebef8..8528955e 100644
--- a/SPIRV/GlslangToSpv.cpp
+++ b/SPIRV/GlslangToSpv.cpp
@@ -257,15 +257,15 @@ protected:
spv::Id nonSemanticDebugPrintf;
std::unordered_map<const char*, spv::Id> extBuiltinMap;
- std::unordered_map<int, spv::Id> symbolValues;
- std::unordered_set<int> rValueParameters; // set of formal function parameters passed as rValues,
+ std::unordered_map<long long, spv::Id> symbolValues;
+ std::unordered_set<long long> rValueParameters; // set of formal function parameters passed as rValues,
// rather than a pointer
std::unordered_map<std::string, spv::Function*> functionMap;
std::unordered_map<const glslang::TTypeList*, spv::Id> structMap[glslang::ElpCount][glslang::ElmCount];
// for mapping glslang block indices to spv indices (e.g., due to hidden members):
- std::unordered_map<int, std::vector<int>> memberRemapper;
+ std::unordered_map<long long, std::vector<int>> memberRemapper;
// for mapping glslang symbol struct to symbol Id
- std::unordered_map<const glslang::TTypeList*, int> glslangTypeToIdMap;
+ std::unordered_map<const glslang::TTypeList*, long long> glslangTypeToIdMap;
std::stack<bool> breakForLoop; // false means break for switch
std::unordered_map<std::string, const glslang::TIntermSymbol*> counterOriginator;
// Map pointee types for EbtReference to their forward pointers
@@ -380,6 +380,7 @@ spv::Decoration TranslateBlockDecoration(const glslang::TType& type, bool useSto
case glslang::EvqBuffer: return useStorageBuffer ? spv::DecorationBlock : spv::DecorationBufferBlock;
case glslang::EvqVaryingIn: return spv::DecorationBlock;
case glslang::EvqVaryingOut: return spv::DecorationBlock;
+ case glslang::EvqShared: return spv::DecorationBlock;
#ifndef GLSLANG_WEB
case glslang::EvqPayload: return spv::DecorationBlock;
case glslang::EvqPayloadIn: return spv::DecorationBlock;
@@ -436,6 +437,7 @@ spv::Decoration TranslateLayoutDecoration(const glslang::TType& type, glslang::T
break;
case glslang::EbtBlock:
switch (type.getQualifier().storage) {
+ case glslang::EvqShared:
case glslang::EvqUniform:
case glslang::EvqBuffer:
switch (type.getQualifier().layoutPacking) {
@@ -1278,6 +1280,12 @@ spv::StorageClass TGlslangToSpvTraverser::TranslateStorageClass(const glslang::T
return spv::StorageClassUniformConstant;
}
+ if (type.getQualifier().storage == glslang::EvqShared && type.getBasicType() == glslang::EbtBlock) {
+ builder.addExtension(spv::E_SPV_KHR_workgroup_memory_explicit_layout);
+ builder.addCapability(spv::CapabilityWorkgroupMemoryExplicitLayoutKHR);
+ return spv::StorageClassWorkgroup;
+ }
+
switch (type.getQualifier().storage) {
case glslang::EvqGlobal: return spv::StorageClassPrivate;
case glslang::EvqConstReadOnly: return spv::StorageClassFunction;
@@ -1986,7 +1994,7 @@ bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::T
{
// This may be, e.g., an anonymous block-member selection, which generally need
// index remapping due to hidden members in anonymous blocks.
- int glslangId = glslangTypeToIdMap[node->getLeft()->getType().getStruct()];
+ long long glslangId = glslangTypeToIdMap[node->getLeft()->getType().getStruct()];
if (memberRemapper.find(glslangId) != memberRemapper.end()) {
std::vector<int>& remapper = memberRemapper[glslangId];
assert(remapper.size() > 0);
@@ -3623,6 +3631,11 @@ spv::Id TGlslangToSpvTraverser::createSpvVariable(const glslang::TIntermSymbol*
break;
#endif
default:
+ if (storageClass == spv::StorageClassWorkgroup &&
+ node->getType().getBasicType() == glslang::EbtBlock) {
+ builder.addCapability(spv::CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR);
+ break;
+ }
if (node->getType().contains16BitFloat())
builder.addCapability(spv::CapabilityFloat16);
if (node->getType().contains16BitInt())
@@ -3641,6 +3654,9 @@ spv::Id TGlslangToSpvTraverser::createSpvVariable(const glslang::TIntermSymbol*
} else if (storageClass == spv::StorageClassStorageBuffer) {
builder.addIncorporatedExtension(spv::E_SPV_KHR_8bit_storage, spv::Spv_1_5);
builder.addCapability(spv::CapabilityStorageBuffer8BitAccess);
+ } else if (storageClass == spv::StorageClassWorkgroup &&
+ node->getType().getBasicType() == glslang::EbtBlock) {
+ builder.addCapability(spv::CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR);
} else {
builder.addCapability(spv::CapabilityInt8);
}
@@ -3652,13 +3668,14 @@ spv::Id TGlslangToSpvTraverser::createSpvVariable(const glslang::TIntermSymbol*
spv::Id initializer = spv::NoResult;
- if (node->getType().getQualifier().storage == glslang::EvqUniform &&
- !node->getConstArray().empty()) {
- int nextConst = 0;
- initializer = createSpvConstantFromConstUnionArray(node->getType(),
- node->getConstArray(),
- nextConst,
- false /* specConst */);
+ if (node->getType().getQualifier().storage == glslang::EvqUniform && !node->getConstArray().empty()) {
+ int nextConst = 0;
+ initializer = createSpvConstantFromConstUnionArray(node->getType(),
+ node->getConstArray(),
+ nextConst,
+ false /* specConst */);
+ } else if (node->getType().getQualifier().isNullInit()) {
+ initializer = builder.makeNullConstant(spvType);
}
return builder.createVariable(spv::NoPrecision, storageClass, spvType, name, initializer);
@@ -4406,6 +4423,7 @@ glslang::TLayoutPacking TGlslangToSpvTraverser::getExplicitLayout(const glslang:
// has to be a uniform or buffer block or task in/out blocks
if (type.getQualifier().storage != glslang::EvqUniform &&
type.getQualifier().storage != glslang::EvqBuffer &&
+ type.getQualifier().storage != glslang::EvqShared &&
!type.getQualifier().isTaskMemory())
return glslang::ElpNone;
@@ -6995,6 +7013,10 @@ spv::Id TGlslangToSpvTraverser::createAtomicOperation(glslang::TOperator op, spv
builder.addCapability(spv::CapabilityVulkanMemoryModelKHR);
}
+ if (builder.getConstantScalar(scopeId) == spv::ScopeQueueFamily) {
+ builder.addCapability(spv::CapabilityVulkanMemoryModelKHR);
+ }
+
if (glslangIntermediate->usingVulkanMemoryModel() && builder.getConstantScalar(scopeId) == spv::ScopeDevice) {
builder.addCapability(spv::CapabilityVulkanMemoryModelDeviceScopeKHR);
}
@@ -7991,7 +8013,7 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::
opCode = spv::OpRayQueryGetIntersectionInstanceIdKHR;
break;
case glslang::EOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffset:
- typeId = builder.makeIntType(32);
+ typeId = builder.makeUintType(32);
opCode = spv::OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR;
break;
case glslang::EOpRayQueryGetIntersectionGeometryIndex:
diff --git a/SPIRV/SpvBuilder.cpp b/SPIRV/SpvBuilder.cpp
index c8fbcc45..1401bb09 100644
--- a/SPIRV/SpvBuilder.cpp
+++ b/SPIRV/SpvBuilder.cpp
@@ -869,6 +869,30 @@ bool Builder::isSpecConstantOpCode(Op opcode) const
}
}
+Id Builder::makeNullConstant(Id typeId)
+{
+ Instruction* constant;
+
+ // See if we already made it.
+ Id existing = NoResult;
+ for (int i = 0; i < (int)nullConstants.size(); ++i) {
+ constant = nullConstants[i];
+ if (constant->getTypeId() == typeId)
+ existing = constant->getResultId();
+ }
+
+ if (existing != NoResult)
+ return existing;
+
+ // Make it
+ Instruction* c = new Instruction(getUniqueId(), typeId, OpConstantNull);
+ constantsTypesGlobals.push_back(std::unique_ptr<Instruction>(c));
+ nullConstants.push_back(c);
+ module.mapInstruction(c);
+
+ return c->getResultId();
+}
+
Id Builder::makeBoolConstant(bool b, bool specConstant)
{
Id typeId = makeBoolType();
diff --git a/SPIRV/SpvBuilder.h b/SPIRV/SpvBuilder.h
index 911ea58b..73847e1d 100644
--- a/SPIRV/SpvBuilder.h
+++ b/SPIRV/SpvBuilder.h
@@ -293,6 +293,7 @@ public:
}
// For making new constants (will return old constant if the requested one was already made).
+ Id makeNullConstant(Id typeId);
Id makeBoolConstant(bool b, bool specConstant = false);
Id makeInt8Constant(int i, bool specConstant = false)
{ return makeIntConstant(makeIntType(8), (unsigned)i, specConstant); }
@@ -838,6 +839,8 @@ public:
std::unordered_map<unsigned int, std::vector<Instruction*>> groupedStructConstants;
// map type opcodes to type instructions
std::unordered_map<unsigned int, std::vector<Instruction*>> groupedTypes;
+ // list of OpConstantNull instructions
+ std::vector<Instruction*> nullConstants;
// stack of switches
std::stack<Block*> switchMerges;
diff --git a/SPIRV/SpvPostProcess.cpp b/SPIRV/SpvPostProcess.cpp
index d40174d1..23d7b5a4 100644
--- a/SPIRV/SpvPostProcess.cpp
+++ b/SPIRV/SpvPostProcess.cpp
@@ -436,6 +436,38 @@ void Builder::postProcessFeatures() {
}
}
}
+
+ // If any Vulkan memory model-specific functionality is used, update the
+ // OpMemoryModel to match.
+ if (capabilities.find(spv::CapabilityVulkanMemoryModelKHR) != capabilities.end()) {
+ memoryModel = spv::MemoryModelVulkanKHR;
+ addIncorporatedExtension(spv::E_SPV_KHR_vulkan_memory_model, spv::Spv_1_5);
+ }
+
+ // Add Aliased decoration if there's more than one Workgroup Block variable.
+ if (capabilities.find(spv::CapabilityWorkgroupMemoryExplicitLayoutKHR) != capabilities.end()) {
+ assert(entryPoints.size() == 1);
+ auto &ep = entryPoints[0];
+
+ std::vector<Id> workgroup_variables;
+ for (int i = 0; i < (int)ep->getNumOperands(); i++) {
+ if (!ep->isIdOperand(i))
+ continue;
+
+ const Id id = ep->getIdOperand(i);
+ const Instruction *instr = module.getInstruction(id);
+ if (instr->getOpCode() != spv::OpVariable)
+ continue;
+
+ if (instr->getImmediateOperand(0) == spv::StorageClassWorkgroup)
+ workgroup_variables.push_back(id);
+ }
+
+ if (workgroup_variables.size() > 1) {
+ for (size_t i = 0; i < workgroup_variables.size(); i++)
+ addDecoration(workgroup_variables[i], spv::DecorationAliased);
+ }
+ }
}
#endif
diff --git a/SPIRV/SpvTools.cpp b/SPIRV/SpvTools.cpp
index 16d051a9..5cfc4262 100644
--- a/SPIRV/SpvTools.cpp
+++ b/SPIRV/SpvTools.cpp
@@ -153,6 +153,8 @@ void SpirvToolsValidate(const glslang::TIntermediate& intermediate, std::vector<
spv_validator_options options = spvValidatorOptionsCreate();
spvValidatorOptionsSetRelaxBlockLayout(options, intermediate.usingHlslOffsets());
spvValidatorOptionsSetBeforeHlslLegalization(options, prelegalization);
+ spvValidatorOptionsSetScalarBlockLayout(options, intermediate.usingScalarBlockLayout());
+ spvValidatorOptionsSetWorkgroupScalarBlockLayout(options, intermediate.usingScalarBlockLayout());
spvValidateWithOptions(context, options, &binary, &diagnostic);
// report
diff --git a/SPIRV/doc.cpp b/SPIRV/doc.cpp
index 5327f221..6805c3a6 100644
--- a/SPIRV/doc.cpp
+++ b/SPIRV/doc.cpp
@@ -967,6 +967,10 @@ const char* CapabilityString(int info)
case CapabilityAtomicFloat32AddEXT: return "AtomicFloat32AddEXT";
case CapabilityAtomicFloat64AddEXT: return "AtomicFloat64AddEXT";
+ case CapabilityWorkgroupMemoryExplicitLayoutKHR: return "CapabilityWorkgroupMemoryExplicitLayoutKHR";
+ case CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR: return "CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR";
+ case CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR: return "CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR";
+
default: return "Bad";
}
}
diff --git a/SPIRV/spirv.hpp b/SPIRV/spirv.hpp
index 43dd2aae..af629efa 100644
--- a/SPIRV/spirv.hpp
+++ b/SPIRV/spirv.hpp
@@ -168,10 +168,16 @@ enum ExecutionMode {
ExecutionModeSampleInterlockUnorderedEXT = 5369,
ExecutionModeShadingRateInterlockOrderedEXT = 5370,
ExecutionModeShadingRateInterlockUnorderedEXT = 5371,
+ ExecutionModeSharedLocalMemorySizeINTEL = 5618,
+ ExecutionModeRoundingModeRTPINTEL = 5620,
+ ExecutionModeRoundingModeRTNINTEL = 5621,
+ ExecutionModeFloatingPointModeALTINTEL = 5622,
+ ExecutionModeFloatingPointModeIEEEINTEL = 5623,
ExecutionModeMaxWorkgroupSizeINTEL = 5893,
ExecutionModeMaxWorkDimINTEL = 5894,
ExecutionModeNoGlobalOffsetINTEL = 5895,
ExecutionModeNumSIMDWorkitemsINTEL = 5896,
+ ExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
ExecutionModeMax = 0x7fffffff,
};
@@ -204,6 +210,8 @@ enum StorageClass {
StorageClassPhysicalStorageBuffer = 5349,
StorageClassPhysicalStorageBufferEXT = 5349,
StorageClassCodeSectionINTEL = 5605,
+ StorageClassDeviceOnlyINTEL = 5936,
+ StorageClassHostOnlyINTEL = 5937,
StorageClassMax = 0x7fffffff,
};
@@ -374,6 +382,8 @@ enum FPFastMathModeShift {
FPFastMathModeNSZShift = 2,
FPFastMathModeAllowRecipShift = 3,
FPFastMathModeFastShift = 4,
+ FPFastMathModeAllowContractFastINTELShift = 16,
+ FPFastMathModeAllowReassocINTELShift = 17,
FPFastMathModeMax = 0x7fffffff,
};
@@ -384,6 +394,8 @@ enum FPFastMathModeMask {
FPFastMathModeNSZMask = 0x00000004,
FPFastMathModeAllowRecipMask = 0x00000008,
FPFastMathModeFastMask = 0x00000010,
+ FPFastMathModeAllowContractFastINTELMask = 0x00010000,
+ FPFastMathModeAllowReassocINTELMask = 0x00020000,
};
enum FPRoundingMode {
@@ -484,12 +496,22 @@ enum Decoration {
DecorationRestrictPointerEXT = 5355,
DecorationAliasedPointer = 5356,
DecorationAliasedPointerEXT = 5356,
+ DecorationSIMTCallINTEL = 5599,
DecorationReferencedIndirectlyINTEL = 5602,
+ DecorationClobberINTEL = 5607,
+ DecorationSideEffectsINTEL = 5608,
+ DecorationVectorComputeVariableINTEL = 5624,
+ DecorationFuncParamIOKindINTEL = 5625,
+ DecorationVectorComputeFunctionINTEL = 5626,
+ DecorationStackCallINTEL = 5627,
+ DecorationGlobalVariableOffsetINTEL = 5628,
DecorationCounterBuffer = 5634,
DecorationHlslCounterBufferGOOGLE = 5634,
DecorationHlslSemanticGOOGLE = 5635,
DecorationUserSemantic = 5635,
DecorationUserTypeGOOGLE = 5636,
+ DecorationFunctionRoundingModeINTEL = 5822,
+ DecorationFunctionDenormModeINTEL = 5823,
DecorationRegisterINTEL = 5825,
DecorationMemoryINTEL = 5826,
DecorationNumbanksINTEL = 5827,
@@ -502,6 +524,17 @@ enum Decoration {
DecorationMergeINTEL = 5834,
DecorationBankBitsINTEL = 5835,
DecorationForcePow2DepthINTEL = 5836,
+ DecorationBurstCoalesceINTEL = 5899,
+ DecorationCacheSizeINTEL = 5900,
+ DecorationDontStaticallyCoalesceINTEL = 5901,
+ DecorationPrefetchINTEL = 5902,
+ DecorationStallEnableINTEL = 5905,
+ DecorationFuseLoopsInFunctionINTEL = 5907,
+ DecorationBufferLocationINTEL = 5921,
+ DecorationIOPipeStorageINTEL = 5944,
+ DecorationFunctionFloatingPointModeINTEL = 6080,
+ DecorationSingleElementVectorINTEL = 6085,
+ DecorationVectorComputeCallableFunctionINTEL = 6087,
DecorationMax = 0x7fffffff,
};
@@ -656,6 +689,7 @@ enum LoopControlShift {
LoopControlLoopCoalesceINTELShift = 20,
LoopControlMaxInterleavingINTELShift = 21,
LoopControlSpeculatedIterationsINTELShift = 22,
+ LoopControlNoFusionINTELShift = 23,
LoopControlMax = 0x7fffffff,
};
@@ -677,6 +711,7 @@ enum LoopControlMask {
LoopControlLoopCoalesceINTELMask = 0x00100000,
LoopControlMaxInterleavingINTELMask = 0x00200000,
LoopControlSpeculatedIterationsINTELMask = 0x00400000,
+ LoopControlNoFusionINTELMask = 0x00800000,
};
enum FunctionControlShift {
@@ -876,6 +911,9 @@ enum Capability {
CapabilityFragmentShadingRateKHR = 4422,
CapabilitySubgroupBallotKHR = 4423,
CapabilityDrawParameters = 4427,
+ CapabilityWorkgroupMemoryExplicitLayoutKHR = 4428,
+ CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
+ CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
CapabilitySubgroupVoteKHR = 4431,
CapabilityStorageBuffer16BitAccess = 4433,
CapabilityStorageUniformBufferBlock16 = 4433,
@@ -966,21 +1004,37 @@ enum Capability {
CapabilitySubgroupBufferBlockIOINTEL = 5569,
CapabilitySubgroupImageBlockIOINTEL = 5570,
CapabilitySubgroupImageMediaBlockIOINTEL = 5579,
+ CapabilityRoundToInfinityINTEL = 5582,
+ CapabilityFloatingPointModeINTEL = 5583,
CapabilityIntegerFunctions2INTEL = 5584,
CapabilityFunctionPointersINTEL = 5603,
CapabilityIndirectReferencesINTEL = 5604,
+ CapabilityAsmINTEL = 5606,
+ CapabilityVectorComputeINTEL = 5617,
+ CapabilityVectorAnyINTEL = 5619,
CapabilitySubgroupAvcMotionEstimationINTEL = 5696,
CapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
CapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
+ CapabilityVariableLengthArrayINTEL = 5817,
+ CapabilityFunctionFloatControlINTEL = 5821,
CapabilityFPGAMemoryAttributesINTEL = 5824,
+ CapabilityFPFastMathModeINTEL = 5837,
+ CapabilityArbitraryPrecisionIntegersINTEL = 5844,
CapabilityUnstructuredLoopControlsINTEL = 5886,
CapabilityFPGALoopControlsINTEL = 5888,
CapabilityKernelAttributesINTEL = 5892,
CapabilityFPGAKernelAttributesINTEL = 5897,
+ CapabilityFPGAMemoryAccessesINTEL = 5898,
+ CapabilityFPGAClusterAttributesINTEL = 5904,
+ CapabilityLoopFuseINTEL = 5906,
+ CapabilityFPGABufferLocationINTEL = 5920,
+ CapabilityUSMStorageClassesINTEL = 5935,
+ CapabilityIOPipesINTEL = 5943,
CapabilityBlockingPipesINTEL = 5945,
CapabilityFPGARegINTEL = 5948,
CapabilityAtomicFloat32AddEXT = 6033,
CapabilityAtomicFloat64AddEXT = 6034,
+ CapabilityLongConstantCompositeINTEL = 6089,
CapabilityMax = 0x7fffffff,
};
@@ -1047,6 +1101,18 @@ enum FragmentShadingRateMask {
FragmentShadingRateHorizontal4PixelsMask = 0x00000008,
};
+enum FPDenormMode {
+ FPDenormModePreserve = 0,
+ FPDenormModeFlushToZero = 1,
+ FPDenormModeMax = 0x7fffffff,
+};
+
+enum FPOperationMode {
+ FPOperationModeIEEE = 0,
+ FPOperationModeALT = 1,
+ FPOperationModeMax = 0x7fffffff,
+};
+
enum Op {
OpNop = 0,
OpUndef = 1,
@@ -1466,8 +1532,11 @@ enum Op {
OpUSubSatINTEL = 5596,
OpIMul32x16INTEL = 5597,
OpUMul32x16INTEL = 5598,
- OpFunctionPointerINTEL = 5600,
+ OpConstFunctionPointerINTEL = 5600,
OpFunctionPointerCallINTEL = 5601,
+ OpAsmTargetINTEL = 5609,
+ OpAsmINTEL = 5610,
+ OpAsmCallINTEL = 5611,
OpDecorateString = 5632,
OpDecorateStringGOOGLE = 5632,
OpMemberDecorateString = 5633,
@@ -1590,7 +1659,12 @@ enum Op {
OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
+ OpVariableLengthArrayINTEL = 5818,
+ OpSaveMemoryINTEL = 5819,
+ OpRestoreMemoryINTEL = 5820,
OpLoopControlINTEL = 5887,
+ OpPtrCastToCrossWorkgroupINTEL = 5934,
+ OpCrossWorkgroupCastToPtrINTEL = 5938,
OpReadPipeBlockingINTEL = 5946,
OpWritePipeBlockingINTEL = 5947,
OpFPGARegINTEL = 5949,
@@ -1612,6 +1686,10 @@ enum Op {
OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
OpAtomicFAddEXT = 6035,
+ OpTypeBufferSurfaceINTEL = 6086,
+ OpTypeStructContinuedINTEL = 6090,
+ OpConstantCompositeContinuedINTEL = 6091,
+ OpSpecConstantCompositeContinuedINTEL = 6092,
OpMax = 0x7fffffff,
};
@@ -2036,8 +2114,11 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
case OpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
case OpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
- case OpFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpConstFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
case OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpAsmINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpAsmCallINTEL: *hasResult = true; *hasResultType = true; break;
case OpDecorateString: *hasResult = false; *hasResultType = false; break;
case OpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
case OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
@@ -2158,7 +2239,12 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
case OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
case OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
case OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
+ case OpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
case OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
case OpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
case OpFPGARegINTEL: *hasResult = true; *hasResultType = true; break;
@@ -2180,6 +2266,10 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;
case OpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;
case OpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break;
+ case OpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break;
+ case OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
+ case OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
+ case OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
}
}
#endif /* SPV_ENABLE_UTILITY_CODE */
diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp
index 1f294b07..fdbf0279 100644
--- a/StandAlone/StandAlone.cpp
+++ b/StandAlone/StandAlone.cpp
@@ -844,6 +844,10 @@ void ProcessArguments(std::vector<std::unique_ptr<glslang::TWorkItem>>& workItem
(Options & EOptionReadHlsl) == 0)
Error("uniform array flattening only valid when compiling HLSL source.");
+ if ((Options & EOptionReadHlsl) && (Client == glslang::EShClientOpenGL)) {
+ Error("Using HLSL input under OpenGL semantics is not currently supported.");
+ }
+
// rationalize client and target language
if (TargetLanguage == glslang::EShTargetNone) {
switch (ClientVersion) {
@@ -1561,7 +1565,8 @@ void usage()
" 'ver', when present, is the version of the input semantics,\n"
" which will appear in #define GL_SPIRV ver;\n"
" '--client opengl100' is the same as -G100;\n"
- " a '--target-env' for OpenGL will also imply '-G'\n"
+ " a '--target-env' for OpenGL will also imply '-G';\n"
+ " currently only supports GLSL\n"
" -H print human readable form of SPIR-V; turns on -V\n"
" -I<dir> add dir to the include search path; includer's directory\n"
" is searched first, followed by left-to-right order of -I\n"
diff --git a/Test/baseResults/310.comp.out b/Test/baseResults/310.comp.out
index 538b750f..85b01161 100644
--- a/Test/baseResults/310.comp.out
+++ b/Test/baseResults/310.comp.out
@@ -7,9 +7,9 @@ ERROR: 0:39: 'in' : global storage input qualifier cannot be used in a compute s
ERROR: 0:39: 'location qualifier on input' : not supported in this stage: compute
ERROR: 0:40: 'in' : global storage input qualifier cannot be used in a compute shader
ERROR: 0:41: 'out' : global storage output qualifier cannot be used in a compute shader
-ERROR: 0:44: 'shared' : cannot apply layout qualifiers to a shared variable
+ERROR: 0:44: 'shared block' : not supported for this version or the enabled extensions
ERROR: 0:44: 'location' : can only apply to uniform, buffer, in, or out storage qualifiers
-ERROR: 0:45: 'shared' : cannot initialize this type of qualifier
+ERROR: 0:45: 'shared' : initializer can only be a null initializer ('{}')
ERROR: 0:47: 'local_size' : can only apply to 'in'
ERROR: 0:47: 'local_size' : can only apply to 'in'
ERROR: 0:47: 'local_size' : can only apply to 'in'
@@ -115,6 +115,11 @@ ERROR: node is still EOpNull!
0:36 Constant:
0:36 1 (const uint)
0:36 'gl_LocalInvocationIndex' ( in highp uint LocalInvocationIndex)
+0:45 Sequence
+0:45 move second child to first child ( temp highp float)
+0:45 'fs' ( shared highp float)
+0:45 Constant:
+0:45 4.200000
0:59 Function Definition: foo( ( global void)
0:59 Function Parameters:
0:61 Sequence
@@ -553,6 +558,11 @@ ERROR: node is still EOpNull!
0:36 Constant:
0:36 1 (const uint)
0:36 'gl_LocalInvocationIndex' ( in highp uint LocalInvocationIndex)
+0:45 Sequence
+0:45 move second child to first child ( temp highp float)
+0:45 'fs' ( shared highp float)
+0:45 Constant:
+0:45 4.200000
0:? Linker Objects
0:? 'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize)
0:? 2 (const uint)
diff --git a/Test/baseResults/400.frag.out b/Test/baseResults/400.frag.out
index 90f73dc7..b7e88df9 100644
--- a/Test/baseResults/400.frag.out
+++ b/Test/baseResults/400.frag.out
@@ -34,7 +34,7 @@ ERROR: 0:183: 'assign' : cannot convert from ' const float' to ' temp 2-compone
ERROR: 0:184: 'textureQueryLod' : no matching overloaded function found
ERROR: 0:184: 'assign' : cannot convert from ' const float' to ' temp 2-component vector of float'
ERROR: 0:197: 'subroutine' : feature not yet implemented
-ERROR: 0:197: '' : default qualifier requires 'uniform', 'buffer', 'in', or 'out' storage qualification
+ERROR: 0:197: '' : default qualifier requires 'uniform', 'buffer', 'in', 'out' or 'shared' storage qualification
ERROR: 0:198: 'subroutine' : feature not yet implemented
ERROR: 0:199: 'subroutine' : feature not yet implemented
ERROR: 0:201: '' : syntax error, unexpected PRECISE, expecting IDENTIFIER
diff --git a/Test/baseResults/430.comp.out b/Test/baseResults/430.comp.out
index 55c82388..4d8495bc 100644
--- a/Test/baseResults/430.comp.out
+++ b/Test/baseResults/430.comp.out
@@ -5,9 +5,9 @@ ERROR: 0:43: 'in' : global storage input qualifier cannot be used in a compute s
ERROR: 0:43: 'location qualifier on input' : not supported in this stage: compute
ERROR: 0:44: 'in' : global storage input qualifier cannot be used in a compute shader
ERROR: 0:45: 'out' : global storage output qualifier cannot be used in a compute shader
-ERROR: 0:48: 'shared' : cannot apply layout qualifiers to a shared variable
+ERROR: 0:48: 'shared block' : not supported for this version or the enabled extensions
ERROR: 0:48: 'location' : can only apply to uniform, buffer, in, or out storage qualifiers
-ERROR: 0:49: 'shared' : cannot initialize this type of qualifier
+ERROR: 0:49: 'shared' : initializer can only be a null initializer ('{}')
ERROR: 0:52: 'local_size' : cannot change previously set size
ERROR: 0:54: 'local_size' : can only apply to 'in'
ERROR: 0:54: 'local_size' : can only apply to 'in'
@@ -52,6 +52,11 @@ ERROR: node is still EOpNull!
0:39 10 (const int)
0:39 true case
0:40 Barrier ( global void)
+0:49 Sequence
+0:49 move second child to first child ( temp float)
+0:49 'fs' ( shared float)
+0:49 Constant:
+0:49 4.200000
0:66 Function Definition: foo( ( global void)
0:66 Function Parameters:
0:68 Sequence
@@ -184,6 +189,11 @@ ERROR: node is still EOpNull!
0:39 10 (const int)
0:39 true case
0:40 Barrier ( global void)
+0:49 Sequence
+0:49 move second child to first child ( temp float)
+0:49 'fs' ( shared float)
+0:49 Constant:
+0:49 4.200000
0:? Linker Objects
0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
0:? 2 (const uint)
diff --git a/Test/baseResults/hlsl.load.2dms.dx10.frag.out b/Test/baseResults/hlsl.load.2dms.dx10.frag.out
index 99860745..02365b8f 100644
--- a/Test/baseResults/hlsl.load.2dms.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.2dms.dx10.frag.out
@@ -357,6 +357,7 @@ using depth_any
0:? '@entryPointOutput.Depth' ( out float FragDepth)
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
+Validation failed
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 130
diff --git a/Test/baseResults/hlsl.load.offset.dx10.frag.out b/Test/baseResults/hlsl.load.offset.dx10.frag.out
index d0fa5fd4..135b4afa 100644
--- a/Test/baseResults/hlsl.load.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.offset.dx10.frag.out
@@ -561,6 +561,7 @@ using depth_any
0:? '@entryPointOutput.Depth' ( out float FragDepth)
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
+Validation failed
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 201
diff --git a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out
index a379068a..24aa3680 100644
--- a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out
@@ -435,6 +435,7 @@ using depth_any
0:? '@entryPointOutput.Depth' ( out float FragDepth)
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
+Validation failed
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 174
diff --git a/Test/baseResults/hlsl.round.dx10.frag.out b/Test/baseResults/hlsl.round.dx10.frag.out
new file mode 100644
index 00000000..be72dc59
--- /dev/null
+++ b/Test/baseResults/hlsl.round.dx10.frag.out
@@ -0,0 +1,60 @@
+hlsl.round.dx10.frag
+Shader version: 500
+gl_FragCoord origin is upper left
+0:? Sequence
+0:2 Function Definition: PixelShaderFunction(vf4; ( temp 4-component vector of float)
+0:2 Function Parameters:
+0:2 'input' ( in 4-component vector of float)
+0:? Sequence
+0:3 Branch: Return with expression
+0:3 roundEven ( temp 4-component vector of float)
+0:3 'input' ( in 4-component vector of float)
+0:? Linker Objects
+
+
+Linked fragment stage:
+
+WARNING: Linking fragment stage: Entry point not found
+
+Shader version: 500
+gl_FragCoord origin is upper left
+0:? Sequence
+0:2 Function Definition: PixelShaderFunction(vf4; ( temp 4-component vector of float)
+0:2 Function Parameters:
+0:2 'input' ( in 4-component vector of float)
+0:? Sequence
+0:3 Branch: Return with expression
+0:3 roundEven ( temp 4-component vector of float)
+0:3 'input' ( in 4-component vector of float)
+0:? Linker Objects
+
+// Module Version 10000
+// Generated by (magic number): 8000a
+// Id's are bound by 17
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 500
+ Name 4 "main"
+ Name 11 "PixelShaderFunction(vf4;"
+ Name 10 "input"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 9: TypeFunction 7(fvec4) 8(ptr)
+ 4(main): 2 Function None 3
+ 5: Label
+ Return
+ FunctionEnd
+11(PixelShaderFunction(vf4;): 7(fvec4) Function None 9
+ 10(input): 8(ptr) FunctionParameter
+ 12: Label
+ 13: 7(fvec4) Load 10(input)
+ 14: 7(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 13
+ ReturnValue 14
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.round.dx9.frag.out b/Test/baseResults/hlsl.round.dx9.frag.out
new file mode 100644
index 00000000..9333c7dc
--- /dev/null
+++ b/Test/baseResults/hlsl.round.dx9.frag.out
@@ -0,0 +1,70 @@
+hlsl.round.dx9.frag
+Shader version: 500
+gl_FragCoord origin is upper left
+0:? Sequence
+0:2 Function Definition: PixelShaderFunction(vf4; ( temp 4-component vector of float)
+0:2 Function Parameters:
+0:2 'input' ( in 4-component vector of float)
+0:? Sequence
+0:3 Branch: Return with expression
+0:3 round ( temp 4-component vector of float)
+0:3 'input' ( in 4-component vector of float)
+0:? Linker Objects
+
+
+Linked fragment stage:
+
+WARNING: Linking fragment stage: Entry point not found
+
+Shader version: 500
+gl_FragCoord origin is upper left
+0:? Sequence
+0:2 Function Definition: PixelShaderFunction(vf4; ( temp 4-component vector of float)
+0:2 Function Parameters:
+0:2 'input' ( in 4-component vector of float)
+0:? Sequence
+0:3 Branch: Return with expression
+0:3 round ( temp 4-component vector of float)
+0:3 'input' ( in 4-component vector of float)
+0:? Linker Objects
+
+// Module Version 10000
+// Generated by (magic number): 8000a
+// Id's are bound by 18
+
+ Capability Shader
+ 2: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 5 "main"
+ ExecutionMode 5 OriginUpperLeft
+ 1: String ""
+ Source HLSL 500 1 "// OpModuleProcessed auto-map-locations
+// OpModuleProcessed auto-map-bindings
+// OpModuleProcessed entry-point main
+// OpModuleProcessed client vulkan100
+// OpModuleProcessed target-env vulkan1.0
+// OpModuleProcessed keep-uncalled
+// OpModuleProcessed hlsl-offsets
+#line 1
+"
+ Name 5 "main"
+ Name 12 "PixelShaderFunction(vf4;"
+ Name 11 "input"
+ 3: TypeVoid
+ 4: TypeFunction 3
+ 7: TypeFloat 32
+ 8: TypeVector 7(float) 4
+ 9: TypePointer Function 8(fvec4)
+ 10: TypeFunction 8(fvec4) 9(ptr)
+ 5(main): 3 Function None 4
+ 6: Label
+ Return
+ FunctionEnd
+12(PixelShaderFunction(vf4;): 8(fvec4) Function None 10
+ 11(input): 9(ptr) FunctionParameter
+ 13: Label
+ Line 1 3 0
+ 14: 8(fvec4) Load 11(input)
+ 15: 8(fvec4) ExtInst 2(GLSL.std.450) 1(Round) 14
+ ReturnValue 15
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.rw.register.frag.out b/Test/baseResults/hlsl.rw.register.frag.out
index 35b47583..7bcecc9f 100644
--- a/Test/baseResults/hlsl.rw.register.frag.out
+++ b/Test/baseResults/hlsl.rw.register.frag.out
@@ -97,6 +97,7 @@ gl_FragCoord origin is upper left
0:? 'g_tBuf1du1' (layout( binding=3 r32ui) uniform uimageBuffer)
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
+Validation failed
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 42
diff --git a/Test/baseResults/hlsl.rw.scalar.bracket.frag.out b/Test/baseResults/hlsl.rw.scalar.bracket.frag.out
index 2c670753..06146770 100644
--- a/Test/baseResults/hlsl.rw.scalar.bracket.frag.out
+++ b/Test/baseResults/hlsl.rw.scalar.bracket.frag.out
@@ -1689,6 +1689,7 @@ gl_FragCoord origin is upper left
0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1})
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
+Validation failed
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 571
diff --git a/Test/baseResults/hlsl.rw.vec2.bracket.frag.out b/Test/baseResults/hlsl.rw.vec2.bracket.frag.out
index 093665c4..68e40de8 100644
--- a/Test/baseResults/hlsl.rw.vec2.bracket.frag.out
+++ b/Test/baseResults/hlsl.rw.vec2.bracket.frag.out
@@ -1707,6 +1707,7 @@ gl_FragCoord origin is upper left
0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2})
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
+Validation failed
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 605
diff --git a/Test/baseResults/link.vk.multiBlocksValid.1.0.geom.out b/Test/baseResults/link.vk.multiBlocksValid.1.0.geom.out
index c0b33b70..b0456a08 100644
--- a/Test/baseResults/link.vk.multiBlocksValid.1.0.geom.out
+++ b/Test/baseResults/link.vk.multiBlocksValid.1.0.geom.out
@@ -328,14 +328,14 @@ output primitive = triangle_strip
Decorate 59(Vertex) Block
Decorate 61(oV) Location 0
Decorate 64(Vertex) Block
- Decorate 68(iV) Location 1
+ Decorate 68(iV) Location 0
MemberDecorate 95(BufferBlock) 0 ColMajor
MemberDecorate 95(BufferBlock) 0 Offset 0
MemberDecorate 95(BufferBlock) 0 MatrixStride 16
Decorate 95(BufferBlock) BufferBlock
Decorate 97(uBuf) DescriptorSet 0
Decorate 97(uBuf) Binding 1
- Decorate 100(P) Location 0
+ Decorate 100(P) Location 2
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
diff --git a/Test/baseResults/rayQuery-allOps.comp.out b/Test/baseResults/rayQuery-allOps.comp.out
index fd4a2ff8..bf654f77 100644
--- a/Test/baseResults/rayQuery-allOps.comp.out
+++ b/Test/baseResults/rayQuery-allOps.comp.out
@@ -223,7 +223,7 @@ rayQuery-allOps.comp
129: 2 FunctionCall 6(doSomething()
Branch 128
128: Label
- 130: 18(int) RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR 47(rayQuery) 23
+ 130: 14(int) RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR 47(rayQuery) 23
131: 66(bool) UGreaterThan 130 20
SelectionMerge 133 None
BranchConditional 131 132 133
diff --git a/Test/baseResults/rayQuery-allOps.frag.out b/Test/baseResults/rayQuery-allOps.frag.out
index 573a640a..90ebc4a2 100644
--- a/Test/baseResults/rayQuery-allOps.frag.out
+++ b/Test/baseResults/rayQuery-allOps.frag.out
@@ -221,7 +221,7 @@ rayQuery-allOps.frag
129: 2 FunctionCall 6(doSomething()
Branch 128
128: Label
- 130: 18(int) RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR 47(rayQuery) 23
+ 130: 14(int) RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR 47(rayQuery) 23
131: 66(bool) UGreaterThan 130 20
SelectionMerge 133 None
BranchConditional 131 132 133
diff --git a/Test/baseResults/rayQuery-allOps.rgen.out b/Test/baseResults/rayQuery-allOps.rgen.out
index deb0f7d5..b3a93b02 100644
--- a/Test/baseResults/rayQuery-allOps.rgen.out
+++ b/Test/baseResults/rayQuery-allOps.rgen.out
@@ -221,7 +221,7 @@ rayQuery-allOps.rgen
129: 2 FunctionCall 6(doSomething()
Branch 128
128: Label
- 130: 18(int) RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR 47(rayQuery) 23
+ 130: 14(int) RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR 47(rayQuery) 23
131: 66(bool) UGreaterThan 130 20
SelectionMerge 133 None
BranchConditional 131 132 133
diff --git a/Test/baseResults/rayQuery-types.comp.out b/Test/baseResults/rayQuery-types.comp.out
new file mode 100644
index 00000000..87a1d683
--- /dev/null
+++ b/Test/baseResults/rayQuery-types.comp.out
@@ -0,0 +1,152 @@
+rayQuery-types.comp
+// Module Version 10000
+// Generated by (magic number): 8000a
+// Id's are bound by 86
+
+ Capability Shader
+ Capability RayQueryKHR
+ Extension "SPV_KHR_ray_query"
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint GLCompute 4 "main"
+ ExecutionMode 4 LocalSize 16 8 1
+ Source GLSL 460
+ SourceExtension "GL_EXT_ray_query"
+ Name 4 "main"
+ Name 8 "rayQuery"
+ Name 11 "tlas"
+ Name 25 "rq_proceed"
+ Name 35 "intersectionType"
+ Name 41 "rayTMin"
+ Name 43 "rayFlags"
+ Name 46 "worldRayOrigin"
+ Name 48 "worldDirection"
+ Name 50 "intersectionT"
+ Name 53 "customIndex"
+ Name 55 "instanceId"
+ Name 57 "sbtOffset"
+ Name 59 "geometryIndex"
+ Name 61 "primitiveIndex"
+ Name 65 "barys"
+ Name 67 "frontface"
+ Name 69 "aabbOpaque"
+ Name 71 "objRayDirection"
+ Name 73 "objRayOrigin"
+ Name 77 "objToWorld"
+ Name 79 "worldToObj"
+ Decorate 11(tlas) DescriptorSet 0
+ Decorate 11(tlas) Binding 0
+ Decorate 85 BuiltIn WorkgroupSize
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeRayQueryKHR
+ 7: TypePointer Private 6
+ 8(rayQuery): 7(ptr) Variable Private
+ 9: TypeAccelerationStructureKHR
+ 10: TypePointer UniformConstant 9
+ 11(tlas): 10(ptr) Variable UniformConstant
+ 13: TypeInt 32 0
+ 14: 13(int) Constant 0
+ 15: 13(int) Constant 255
+ 16: TypeFloat 32
+ 17: TypeVector 16(float) 3
+ 18: 16(float) Constant 0
+ 19: 17(fvec3) ConstantComposite 18 18 18
+ 20: 16(float) Constant 1065353216
+ 21: 17(fvec3) ConstantComposite 20 18 18
+ 22: 16(float) Constant 1176256512
+ 23: TypeBool
+ 24: TypePointer Function 23(bool)
+ 34: TypePointer Function 13(int)
+ 36: 23(bool) ConstantTrue
+ 37: TypeInt 32 1
+ 38: 37(int) Constant 1
+ 40: TypePointer Function 16(float)
+ 45: TypePointer Function 17(fvec3)
+ 52: TypePointer Function 37(int)
+ 63: TypeVector 16(float) 2
+ 64: TypePointer Function 63(fvec2)
+ 75: TypeMatrix 17(fvec3) 4
+ 76: TypePointer Function 75
+ 81: TypeVector 13(int) 3
+ 82: 13(int) Constant 16
+ 83: 13(int) Constant 8
+ 84: 13(int) Constant 1
+ 85: 81(ivec3) ConstantComposite 82 83 84
+ 4(main): 2 Function None 3
+ 5: Label
+ 25(rq_proceed): 24(ptr) Variable Function
+35(intersectionType): 34(ptr) Variable Function
+ 41(rayTMin): 40(ptr) Variable Function
+ 43(rayFlags): 34(ptr) Variable Function
+46(worldRayOrigin): 45(ptr) Variable Function
+48(worldDirection): 45(ptr) Variable Function
+50(intersectionT): 40(ptr) Variable Function
+ 53(customIndex): 52(ptr) Variable Function
+ 55(instanceId): 52(ptr) Variable Function
+ 57(sbtOffset): 34(ptr) Variable Function
+59(geometryIndex): 52(ptr) Variable Function
+61(primitiveIndex): 52(ptr) Variable Function
+ 65(barys): 64(ptr) Variable Function
+ 67(frontface): 24(ptr) Variable Function
+ 69(aabbOpaque): 24(ptr) Variable Function
+71(objRayDirection): 45(ptr) Variable Function
+73(objRayOrigin): 45(ptr) Variable Function
+ 77(objToWorld): 76(ptr) Variable Function
+ 79(worldToObj): 76(ptr) Variable Function
+ 12: 9 Load 11(tlas)
+ RayQueryInitializeKHR 8(rayQuery) 12 14 15 19 18 21 22
+ 26: 23(bool) RayQueryProceedKHR 8(rayQuery)
+ Store 25(rq_proceed) 26
+ Branch 27
+ 27: Label
+ LoopMerge 29 30 None
+ Branch 31
+ 31: Label
+ 32: 23(bool) Load 25(rq_proceed)
+ BranchConditional 32 28 29
+ 28: Label
+ 33: 23(bool) RayQueryProceedKHR 8(rayQuery)
+ Store 25(rq_proceed) 33
+ Branch 30
+ 30: Label
+ Branch 27
+ 29: Label
+ 39: 13(int) RayQueryGetIntersectionTypeKHR 8(rayQuery) 38
+ Store 35(intersectionType) 39
+ 42: 16(float) RayQueryGetRayTMinKHR 8(rayQuery)
+ Store 41(rayTMin) 42
+ 44: 13(int) RayQueryGetRayFlagsKHR 8(rayQuery)
+ Store 43(rayFlags) 44
+ 47: 17(fvec3) RayQueryGetWorldRayOriginKHR 8(rayQuery)
+ Store 46(worldRayOrigin) 47
+ 49: 17(fvec3) RayQueryGetWorldRayDirectionKHR 8(rayQuery)
+ Store 48(worldDirection) 49
+ 51: 16(float) RayQueryGetIntersectionTKHR 8(rayQuery) 38
+ Store 50(intersectionT) 51
+ 54: 37(int) RayQueryGetIntersectionInstanceCustomIndexKHR 8(rayQuery) 38
+ Store 53(customIndex) 54
+ 56: 37(int) RayQueryGetIntersectionInstanceIdKHR 8(rayQuery) 38
+ Store 55(instanceId) 56
+ 58: 13(int) RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR 8(rayQuery) 38
+ Store 57(sbtOffset) 58
+ 60: 37(int) RayQueryGetIntersectionGeometryIndexKHR 8(rayQuery) 38
+ Store 59(geometryIndex) 60
+ 62: 37(int) RayQueryGetIntersectionPrimitiveIndexKHR 8(rayQuery) 38
+ Store 61(primitiveIndex) 62
+ 66: 63(fvec2) RayQueryGetIntersectionBarycentricsKHR 8(rayQuery) 38
+ Store 65(barys) 66
+ 68: 23(bool) RayQueryGetIntersectionFrontFaceKHR 8(rayQuery) 38
+ Store 67(frontface) 68
+ 70: 23(bool) RayQueryGetIntersectionCandidateAABBOpaqueKHR 8(rayQuery)
+ Store 69(aabbOpaque) 70
+ 72: 17(fvec3) RayQueryGetIntersectionObjectRayDirectionKHR 8(rayQuery) 38
+ Store 71(objRayDirection) 72
+ 74: 17(fvec3) RayQueryGetIntersectionObjectRayOriginKHR 8(rayQuery) 38
+ Store 73(objRayOrigin) 74
+ 78: 75 RayQueryGetIntersectionObjectToWorldKHR 8(rayQuery) 38
+ Store 77(objToWorld) 78
+ 80: 75 RayQueryGetIntersectionWorldToObjectKHR 8(rayQuery) 38
+ Store 79(worldToObj) 80
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.16BitAccess.comp.out b/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.16BitAccess.comp.out
new file mode 100644
index 00000000..31dd2dd1
--- /dev/null
+++ b/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.16BitAccess.comp.out
@@ -0,0 +1,54 @@
+spv.WorkgroupMemoryExplicitLayout.16BitAccess.comp
+// Module Version 10400
+// Generated by (magic number): 8000a
+// Id's are bound by 25
+
+ Capability Shader
+ Capability Float16
+ Capability Int16
+ Capability CapabilityWorkgroupMemoryExplicitLayoutKHR
+ Capability CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR
+ Extension "SPV_KHR_workgroup_memory_explicit_layout"
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint GLCompute 4 "main" 10
+ ExecutionMode 4 LocalSize 2 1 1
+ Source GLSL 430
+ SourceExtension "GL_EXT_shader_explicit_arithmetic_types"
+ SourceExtension "GL_EXT_shared_memory_block"
+ Name 4 "main"
+ Name 8 "first"
+ MemberName 8(first) 0 "a"
+ MemberName 8(first) 1 "f"
+ Name 10 ""
+ MemberDecorate 8(first) 0 Offset 0
+ MemberDecorate 8(first) 1 Offset 2
+ Decorate 8(first) Block
+ Decorate 24 BuiltIn WorkgroupSize
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 16 1
+ 7: TypeFloat 16
+ 8(first): TypeStruct 6(int16_t) 7(float16_t)
+ 9: TypePointer Workgroup 8(first)
+ 10: 9(ptr) Variable Workgroup
+ 11: TypeInt 32 1
+ 12: 11(int) Constant 0
+ 13: 6(int16_t) Constant 3
+ 14: TypePointer Workgroup 6(int16_t)
+ 16: 11(int) Constant 1
+ 17:7(float16_t) Constant 18982
+ 18: TypePointer Workgroup 7(float16_t)
+ 20: TypeInt 32 0
+ 21: TypeVector 20(int) 3
+ 22: 20(int) Constant 2
+ 23: 20(int) Constant 1
+ 24: 21(ivec3) ConstantComposite 22 23 23
+ 4(main): 2 Function None 3
+ 5: Label
+ 15: 14(ptr) AccessChain 10 12
+ Store 15 13
+ 19: 18(ptr) AccessChain 10 16
+ Store 19 17
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.8BitAccess.comp.out b/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.8BitAccess.comp.out
new file mode 100644
index 00000000..3447791f
--- /dev/null
+++ b/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.8BitAccess.comp.out
@@ -0,0 +1,45 @@
+spv.WorkgroupMemoryExplicitLayout.8BitAccess.comp
+// Module Version 10400
+// Generated by (magic number): 8000a
+// Id's are bound by 20
+
+ Capability Shader
+ Capability Int8
+ Capability CapabilityWorkgroupMemoryExplicitLayoutKHR
+ Capability CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR
+ Extension "SPV_KHR_workgroup_memory_explicit_layout"
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint GLCompute 4 "main" 9
+ ExecutionMode 4 LocalSize 2 1 1
+ Source GLSL 430
+ SourceExtension "GL_EXT_shader_explicit_arithmetic_types"
+ SourceExtension "GL_EXT_shared_memory_block"
+ Name 4 "main"
+ Name 7 "first"
+ MemberName 7(first) 0 "a"
+ Name 9 ""
+ MemberDecorate 7(first) 0 Offset 0
+ Decorate 7(first) Block
+ Decorate 19 BuiltIn WorkgroupSize
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 8 1
+ 7(first): TypeStruct 6(int8_t)
+ 8: TypePointer Workgroup 7(first)
+ 9: 8(ptr) Variable Workgroup
+ 10: TypeInt 32 1
+ 11: 10(int) Constant 0
+ 12: 6(int8_t) Constant 2
+ 13: TypePointer Workgroup 6(int8_t)
+ 15: TypeInt 32 0
+ 16: TypeVector 15(int) 3
+ 17: 15(int) Constant 2
+ 18: 15(int) Constant 1
+ 19: 16(ivec3) ConstantComposite 17 18 18
+ 4(main): 2 Function None 3
+ 5: Label
+ 14: 13(ptr) AccessChain 9 11
+ Store 14 12
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.MixBlockNonBlock_Errors.comp.out b/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.MixBlockNonBlock_Errors.comp.out
new file mode 100644
index 00000000..82495d11
--- /dev/null
+++ b/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.MixBlockNonBlock_Errors.comp.out
@@ -0,0 +1,4 @@
+spv.WorkgroupMemoryExplicitLayout.MixBlockNonBlock_Errors.comp
+ERROR: Linking compute stage: cannot mix use of shared variables inside and outside blocks
+
+SPIR-V is not generated for failed compile or link
diff --git a/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.MultiBlock.comp.out b/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.MultiBlock.comp.out
new file mode 100644
index 00000000..b578bd3a
--- /dev/null
+++ b/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.MultiBlock.comp.out
@@ -0,0 +1,54 @@
+spv.WorkgroupMemoryExplicitLayout.MultiBlock.comp
+// Module Version 10400
+// Generated by (magic number): 8000a
+// Id's are bound by 24
+
+ Capability Shader
+ Capability CapabilityWorkgroupMemoryExplicitLayoutKHR
+ Extension "SPV_KHR_workgroup_memory_explicit_layout"
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint GLCompute 4 "main" 9 16
+ ExecutionMode 4 LocalSize 8 1 1
+ Source GLSL 430
+ SourceExtension "GL_EXT_shared_memory_block"
+ Name 4 "main"
+ Name 7 "first"
+ MemberName 7(first) 0 "a"
+ Name 9 ""
+ Name 14 "second"
+ MemberName 14(second) 0 "b"
+ Name 16 ""
+ MemberDecorate 7(first) 0 Offset 0
+ Decorate 7(first) Block
+ MemberDecorate 14(second) 0 Offset 0
+ Decorate 14(second) Block
+ Decorate 23 BuiltIn WorkgroupSize
+ Decorate 9 Aliased
+ Decorate 16 Aliased
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7(first): TypeStruct 6(int)
+ 8: TypePointer Workgroup 7(first)
+ 9: 8(ptr) Variable Workgroup
+ 10: 6(int) Constant 0
+ 11: 6(int) Constant 2
+ 12: TypePointer Workgroup 6(int)
+ 14(second): TypeStruct 6(int)
+ 15: TypePointer Workgroup 14(second)
+ 16: 15(ptr) Variable Workgroup
+ 17: 6(int) Constant 3
+ 19: TypeInt 32 0
+ 20: TypeVector 19(int) 3
+ 21: 19(int) Constant 8
+ 22: 19(int) Constant 1
+ 23: 20(ivec3) ConstantComposite 21 22 22
+ 4(main): 2 Function None 3
+ 5: Label
+ 13: 12(ptr) AccessChain 9 10
+ Store 13 11
+ 18: 12(ptr) AccessChain 16 10
+ Store 18 17
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.NonBlock.comp.out b/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.NonBlock.comp.out
new file mode 100644
index 00000000..19bcff6b
--- /dev/null
+++ b/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.NonBlock.comp.out
@@ -0,0 +1,35 @@
+spv.WorkgroupMemoryExplicitLayout.NonBlock.comp
+// Module Version 10400
+// Generated by (magic number): 8000a
+// Id's are bound by 17
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint GLCompute 4 "main" 8 10
+ ExecutionMode 4 LocalSize 8 1 1
+ Source GLSL 430
+ SourceExtension "GL_EXT_shared_memory_block"
+ Name 4 "main"
+ Name 8 "a"
+ Name 10 "b"
+ Decorate 16 BuiltIn WorkgroupSize
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypePointer Workgroup 6(int)
+ 8(a): 7(ptr) Variable Workgroup
+ 9: 6(int) Constant 2
+ 10(b): 7(ptr) Variable Workgroup
+ 11: 6(int) Constant 3
+ 12: TypeInt 32 0
+ 13: TypeVector 12(int) 3
+ 14: 12(int) Constant 8
+ 15: 12(int) Constant 1
+ 16: 13(ivec3) ConstantComposite 14 15 15
+ 4(main): 2 Function None 3
+ 5: Label
+ Store 8(a) 9
+ Store 10(b) 11
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.SingleBlock.comp.out b/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.SingleBlock.comp.out
new file mode 100644
index 00000000..413fd2e8
--- /dev/null
+++ b/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.SingleBlock.comp.out
@@ -0,0 +1,41 @@
+spv.WorkgroupMemoryExplicitLayout.SingleBlock.comp
+// Module Version 10400
+// Generated by (magic number): 8000a
+// Id's are bound by 19
+
+ Capability Shader
+ Capability CapabilityWorkgroupMemoryExplicitLayoutKHR
+ Extension "SPV_KHR_workgroup_memory_explicit_layout"
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint GLCompute 4 "main" 9
+ ExecutionMode 4 LocalSize 8 1 1
+ Source GLSL 430
+ SourceExtension "GL_EXT_shared_memory_block"
+ Name 4 "main"
+ Name 7 "first"
+ MemberName 7(first) 0 "a"
+ Name 9 ""
+ MemberDecorate 7(first) 0 Offset 0
+ Decorate 7(first) Block
+ Decorate 18 BuiltIn WorkgroupSize
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7(first): TypeStruct 6(int)
+ 8: TypePointer Workgroup 7(first)
+ 9: 8(ptr) Variable Workgroup
+ 10: 6(int) Constant 0
+ 11: 6(int) Constant 2
+ 12: TypePointer Workgroup 6(int)
+ 14: TypeInt 32 0
+ 15: TypeVector 14(int) 3
+ 16: 14(int) Constant 8
+ 17: 14(int) Constant 1
+ 18: 15(ivec3) ConstantComposite 16 17 17
+ 4(main): 2 Function None 3
+ 5: Label
+ 13: 12(ptr) AccessChain 9 10
+ Store 13 11
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.scalar.comp.out b/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.scalar.comp.out
new file mode 100644
index 00000000..6a43e236
--- /dev/null
+++ b/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.scalar.comp.out
@@ -0,0 +1,84 @@
+spv.WorkgroupMemoryExplicitLayout.scalar.comp
+// Module Version 10400
+// Generated by (magic number): 8000a
+// Id's are bound by 29
+
+ Capability Shader
+ Capability CapabilityWorkgroupMemoryExplicitLayoutKHR
+ Extension "SPV_KHR_workgroup_memory_explicit_layout"
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint GLCompute 4 "main" 28
+ ExecutionMode 4 LocalSize 8 1 1
+ Source GLSL 430
+ SourceExtension "GL_EXT_scalar_block_layout"
+ SourceExtension "GL_EXT_shared_memory_block"
+ Name 4 "main"
+ Name 17 "T"
+ MemberName 17(T) 0 "t"
+ Name 24 "S"
+ MemberName 24(S) 0 "f"
+ MemberName 24(S) 1 "v2"
+ MemberName 24(S) 2 "v3"
+ MemberName 24(S) 3 "v4"
+ MemberName 24(S) 4 "t"
+ MemberName 24(S) 5 "f_array"
+ MemberName 24(S) 6 "v2_array"
+ MemberName 24(S) 7 "v3_array"
+ MemberName 24(S) 8 "v4_array"
+ MemberName 24(S) 9 "t_array"
+ Name 26 "Block"
+ MemberName 26(Block) 0 "s"
+ MemberName 26(Block) 1 "s_array"
+ Name 28 ""
+ Decorate 10 BuiltIn WorkgroupSize
+ Decorate 16 ArrayStride 4
+ MemberDecorate 17(T) 0 Offset 0
+ Decorate 19 ArrayStride 4
+ Decorate 20 ArrayStride 8
+ Decorate 21 ArrayStride 12
+ Decorate 22 ArrayStride 16
+ Decorate 23 ArrayStride 12
+ MemberDecorate 24(S) 0 Offset 0
+ MemberDecorate 24(S) 1 Offset 4
+ MemberDecorate 24(S) 2 Offset 12
+ MemberDecorate 24(S) 3 Offset 24
+ MemberDecorate 24(S) 4 Offset 40
+ MemberDecorate 24(S) 5 Offset 52
+ MemberDecorate 24(S) 6 Offset 76
+ MemberDecorate 24(S) 7 Offset 124
+ MemberDecorate 24(S) 8 Offset 196
+ MemberDecorate 24(S) 9 Offset 292
+ Decorate 25 ArrayStride 364
+ MemberDecorate 26(Block) 0 Offset 0
+ MemberDecorate 26(Block) 1 Offset 364
+ Decorate 26(Block) Block
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 0
+ 7: TypeVector 6(int) 3
+ 8: 6(int) Constant 8
+ 9: 6(int) Constant 1
+ 10: 7(ivec3) ConstantComposite 8 9 9
+ 11: TypeFloat 32
+ 12: TypeVector 11(float) 2
+ 13: TypeVector 11(float) 3
+ 14: TypeVector 11(float) 4
+ 15: 6(int) Constant 3
+ 16: TypeArray 11(float) 15
+ 17(T): TypeStruct 16
+ 18: 6(int) Constant 6
+ 19: TypeArray 11(float) 18
+ 20: TypeArray 12(fvec2) 18
+ 21: TypeArray 13(fvec3) 18
+ 22: TypeArray 14(fvec4) 18
+ 23: TypeArray 17(T) 18
+ 24(S): TypeStruct 11(float) 12(fvec2) 13(fvec3) 14(fvec4) 17(T) 19 20 21 22 23
+ 25: TypeArray 24(S) 18
+ 26(Block): TypeStruct 24(S) 25
+ 27: TypePointer Workgroup 26(Block)
+ 28: 27(ptr) Variable Workgroup
+ 4(main): 2 Function None 3
+ 5: Label
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.std140.comp.out b/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.std140.comp.out
new file mode 100644
index 00000000..df4b8aed
--- /dev/null
+++ b/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.std140.comp.out
@@ -0,0 +1,83 @@
+spv.WorkgroupMemoryExplicitLayout.std140.comp
+// Module Version 10400
+// Generated by (magic number): 8000a
+// Id's are bound by 29
+
+ Capability Shader
+ Capability CapabilityWorkgroupMemoryExplicitLayoutKHR
+ Extension "SPV_KHR_workgroup_memory_explicit_layout"
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint GLCompute 4 "main" 28
+ ExecutionMode 4 LocalSize 8 1 1
+ Source GLSL 430
+ SourceExtension "GL_EXT_shared_memory_block"
+ Name 4 "main"
+ Name 17 "T"
+ MemberName 17(T) 0 "t"
+ Name 24 "S"
+ MemberName 24(S) 0 "f"
+ MemberName 24(S) 1 "v2"
+ MemberName 24(S) 2 "v3"
+ MemberName 24(S) 3 "v4"
+ MemberName 24(S) 4 "t"
+ MemberName 24(S) 5 "f_array"
+ MemberName 24(S) 6 "v2_array"
+ MemberName 24(S) 7 "v3_array"
+ MemberName 24(S) 8 "v4_array"
+ MemberName 24(S) 9 "t_array"
+ Name 26 "Block"
+ MemberName 26(Block) 0 "s"
+ MemberName 26(Block) 1 "s_array"
+ Name 28 ""
+ Decorate 10 BuiltIn WorkgroupSize
+ Decorate 16 ArrayStride 16
+ MemberDecorate 17(T) 0 Offset 0
+ Decorate 19 ArrayStride 16
+ Decorate 20 ArrayStride 16
+ Decorate 21 ArrayStride 16
+ Decorate 22 ArrayStride 16
+ Decorate 23 ArrayStride 48
+ MemberDecorate 24(S) 0 Offset 0
+ MemberDecorate 24(S) 1 Offset 8
+ MemberDecorate 24(S) 2 Offset 16
+ MemberDecorate 24(S) 3 Offset 32
+ MemberDecorate 24(S) 4 Offset 48
+ MemberDecorate 24(S) 5 Offset 96
+ MemberDecorate 24(S) 6 Offset 192
+ MemberDecorate 24(S) 7 Offset 288
+ MemberDecorate 24(S) 8 Offset 384
+ MemberDecorate 24(S) 9 Offset 480
+ Decorate 25 ArrayStride 768
+ MemberDecorate 26(Block) 0 Offset 0
+ MemberDecorate 26(Block) 1 Offset 768
+ Decorate 26(Block) Block
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 0
+ 7: TypeVector 6(int) 3
+ 8: 6(int) Constant 8
+ 9: 6(int) Constant 1
+ 10: 7(ivec3) ConstantComposite 8 9 9
+ 11: TypeFloat 32
+ 12: TypeVector 11(float) 2
+ 13: TypeVector 11(float) 3
+ 14: TypeVector 11(float) 4
+ 15: 6(int) Constant 3
+ 16: TypeArray 11(float) 15
+ 17(T): TypeStruct 16
+ 18: 6(int) Constant 6
+ 19: TypeArray 11(float) 18
+ 20: TypeArray 12(fvec2) 18
+ 21: TypeArray 13(fvec3) 18
+ 22: TypeArray 14(fvec4) 18
+ 23: TypeArray 17(T) 18
+ 24(S): TypeStruct 11(float) 12(fvec2) 13(fvec3) 14(fvec4) 17(T) 19 20 21 22 23
+ 25: TypeArray 24(S) 18
+ 26(Block): TypeStruct 24(S) 25
+ 27: TypePointer Workgroup 26(Block)
+ 28: 27(ptr) Variable Workgroup
+ 4(main): 2 Function None 3
+ 5: Label
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.std430.comp.out b/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.std430.comp.out
new file mode 100644
index 00000000..e782784b
--- /dev/null
+++ b/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.std430.comp.out
@@ -0,0 +1,83 @@
+spv.WorkgroupMemoryExplicitLayout.std430.comp
+// Module Version 10400
+// Generated by (magic number): 8000a
+// Id's are bound by 29
+
+ Capability Shader
+ Capability CapabilityWorkgroupMemoryExplicitLayoutKHR
+ Extension "SPV_KHR_workgroup_memory_explicit_layout"
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint GLCompute 4 "main" 28
+ ExecutionMode 4 LocalSize 8 1 1
+ Source GLSL 430
+ SourceExtension "GL_EXT_shared_memory_block"
+ Name 4 "main"
+ Name 17 "T"
+ MemberName 17(T) 0 "t"
+ Name 24 "S"
+ MemberName 24(S) 0 "f"
+ MemberName 24(S) 1 "v2"
+ MemberName 24(S) 2 "v3"
+ MemberName 24(S) 3 "v4"
+ MemberName 24(S) 4 "t"
+ MemberName 24(S) 5 "f_array"
+ MemberName 24(S) 6 "v2_array"
+ MemberName 24(S) 7 "v3_array"
+ MemberName 24(S) 8 "v4_array"
+ MemberName 24(S) 9 "t_array"
+ Name 26 "Block"
+ MemberName 26(Block) 0 "s"
+ MemberName 26(Block) 1 "s_array"
+ Name 28 ""
+ Decorate 10 BuiltIn WorkgroupSize
+ Decorate 16 ArrayStride 4
+ MemberDecorate 17(T) 0 Offset 0
+ Decorate 19 ArrayStride 4
+ Decorate 20 ArrayStride 8
+ Decorate 21 ArrayStride 16
+ Decorate 22 ArrayStride 16
+ Decorate 23 ArrayStride 12
+ MemberDecorate 24(S) 0 Offset 0
+ MemberDecorate 24(S) 1 Offset 8
+ MemberDecorate 24(S) 2 Offset 16
+ MemberDecorate 24(S) 3 Offset 32
+ MemberDecorate 24(S) 4 Offset 48
+ MemberDecorate 24(S) 5 Offset 60
+ MemberDecorate 24(S) 6 Offset 88
+ MemberDecorate 24(S) 7 Offset 144
+ MemberDecorate 24(S) 8 Offset 240
+ MemberDecorate 24(S) 9 Offset 336
+ Decorate 25 ArrayStride 416
+ MemberDecorate 26(Block) 0 Offset 0
+ MemberDecorate 26(Block) 1 Offset 416
+ Decorate 26(Block) Block
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 0
+ 7: TypeVector 6(int) 3
+ 8: 6(int) Constant 8
+ 9: 6(int) Constant 1
+ 10: 7(ivec3) ConstantComposite 8 9 9
+ 11: TypeFloat 32
+ 12: TypeVector 11(float) 2
+ 13: TypeVector 11(float) 3
+ 14: TypeVector 11(float) 4
+ 15: 6(int) Constant 3
+ 16: TypeArray 11(float) 15
+ 17(T): TypeStruct 16
+ 18: 6(int) Constant 6
+ 19: TypeArray 11(float) 18
+ 20: TypeArray 12(fvec2) 18
+ 21: TypeArray 13(fvec3) 18
+ 22: TypeArray 14(fvec4) 18
+ 23: TypeArray 17(T) 18
+ 24(S): TypeStruct 11(float) 12(fvec2) 13(fvec3) 14(fvec4) 17(T) 19 20 21 22 23
+ 25: TypeArray 24(S) 18
+ 26(Block): TypeStruct 24(S) 25
+ 27: TypePointer Workgroup 26(Block)
+ 28: 27(ptr) Variable Workgroup
+ 4(main): 2 Function None 3
+ 5: Label
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/spv.debugInfo.1.1.frag.out b/Test/baseResults/spv.debugInfo.1.1.frag.out
index 384c76b0..78044ff2 100644
--- a/Test/baseResults/spv.debugInfo.1.1.frag.out
+++ b/Test/baseResults/spv.debugInfo.1.1.frag.out
@@ -1,6 +1,4 @@
spv.debugInfo.frag
-error: SPIRV-Tools Validation Errors
-error: Invalid SPIR-V binary version 1.3 for target environment SPIR-V 1.0 (under OpenGL 4.5 semantics).
// Module Version 10300
// Generated by (magic number): 8000a
// Id's are bound by 124
@@ -9,7 +7,7 @@ error: Invalid SPIR-V binary version 1.3 for target environment SPIR-V 1.0 (unde
2: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 5 "main" 24 52
- ExecutionMode 5 OriginLowerLeft
+ ExecutionMode 5 OriginUpperLeft
1: String "spv.debugInfo.frag"
Source GLSL 450 1 "#version 450
@@ -83,9 +81,9 @@ void main()
ModuleProcessed "resource-set-binding 3"
ModuleProcessed "auto-map-bindings"
ModuleProcessed "auto-map-locations"
- ModuleProcessed "client opengl100"
+ ModuleProcessed "client vulkan100"
ModuleProcessed "target-env spirv1.3"
- ModuleProcessed "target-env opengl"
+ ModuleProcessed "target-env vulkan1.1"
ModuleProcessed "relaxed-errors"
ModuleProcessed "suppress-warnings"
ModuleProcessed "hlsl-offsets"
@@ -97,7 +95,6 @@ void main()
Decorate 54(ubuf) Block
Decorate 56 DescriptorSet 3
Decorate 56 Binding 0
- Decorate 67(s2d) Location 0
Decorate 67(s2d) DescriptorSet 3
Decorate 67(s2d) Binding 1
3: TypeVoid
diff --git a/Test/baseResults/spv.nullInit.comp.out b/Test/baseResults/spv.nullInit.comp.out
new file mode 100755
index 00000000..b7908b57
--- /dev/null
+++ b/Test/baseResults/spv.nullInit.comp.out
@@ -0,0 +1,65 @@
+spv.nullInit.comp
+// Module Version 10000
+// Generated by (magic number): 8000a
+// Id's are bound by 37
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint GLCompute 4 "main"
+ ExecutionMode 4 LocalSize 1 1 1
+ Source GLSL 460
+ SourceExtension "GL_EXT_null_initializer"
+ Name 4 "main"
+ Name 12 "S"
+ MemberName 12(S) 0 "v"
+ MemberName 12(S) 1 "a"
+ Name 15 "local"
+ Name 23 "f"
+ Name 24 "T"
+ MemberName 24(T) 0 "b"
+ MemberName 24(T) 1 "s"
+ Name 27 "t1"
+ Name 28 "t2"
+ Name 30 "s"
+ Name 31 "g"
+ Name 34 "i"
+ Name 36 "global"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 3
+ 8: TypeInt 32 0
+ 9: 8(int) Constant 4
+ 10: TypeArray 7(fvec3) 9
+ 11: TypeInt 32 1
+ 12(S): TypeStruct 10 11(int)
+ 13: 12(S) ConstantNull
+ 14: TypePointer Function 12(S)
+ 16: 11(int) Constant 1
+ 17: TypePointer Function 11(int)
+ 21: 6(float) ConstantNull
+ 22: TypePointer Workgroup 6(float)
+ 23(f): 22(ptr) Variable Workgroup 21
+ 24(T): TypeStruct 11(int) 12(S)
+ 25: 24(T) ConstantNull
+ 26: TypePointer Workgroup 24(T)
+ 27(t1): 26(ptr) Variable Workgroup 25
+ 28(t2): 26(ptr) Variable Workgroup 25
+ 29: TypePointer Workgroup 12(S)
+ 30(s): 29(ptr) Variable Workgroup 13
+ 31(g): 22(ptr) Variable Workgroup 21
+ 32: 11(int) ConstantNull
+ 33: TypePointer Workgroup 11(int)
+ 34(i): 33(ptr) Variable Workgroup 32
+ 35: TypePointer Private 12(S)
+ 36(global): 35(ptr) Variable Private 13
+ 4(main): 2 Function None 3
+ 5: Label
+ 15(local): 14(ptr) Variable Function 13
+ 18: 17(ptr) AccessChain 15(local) 16
+ 19: 11(int) Load 18
+ 20: 11(int) IAdd 19 16
+ Store 18 20
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/spv.queueFamilyScope.comp.out b/Test/baseResults/spv.queueFamilyScope.comp.out
new file mode 100644
index 00000000..9c239df2
--- /dev/null
+++ b/Test/baseResults/spv.queueFamilyScope.comp.out
@@ -0,0 +1,43 @@
+spv.queueFamilyScope.comp
+// Module Version 10300
+// Generated by (magic number): 8000a
+// Id's are bound by 21
+
+ Capability Shader
+ Capability VulkanMemoryModelKHR
+ Extension "SPV_KHR_vulkan_memory_model"
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical VulkanKHR
+ EntryPoint GLCompute 4 "main"
+ ExecutionMode 4 LocalSize 1 1 1
+ Source GLSL 450
+ SourceExtension "GL_KHR_memory_scope_semantics"
+ Name 4 "main"
+ Name 7 "Buffer"
+ MemberName 7(Buffer) 0 "a"
+ Name 9 "A"
+ MemberDecorate 7(Buffer) 0 Offset 0
+ Decorate 7(Buffer) Block
+ Decorate 9(A) DescriptorSet 0
+ Decorate 9(A) Binding 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 0
+ 7(Buffer): TypeStruct 6(int)
+ 8: TypePointer StorageBuffer 7(Buffer)
+ 9(A): 8(ptr) Variable StorageBuffer
+ 10: TypeInt 32 1
+ 11: 10(int) Constant 0
+ 12: TypePointer StorageBuffer 6(int)
+ 14: 10(int) Constant 5
+ 15: 10(int) Constant 64
+ 16: 10(int) Constant 2
+ 17: 6(int) Constant 1
+ 18: 6(int) Constant 0
+ 19: 6(int) Constant 66
+ 4(main): 2 Function None 3
+ 5: Label
+ 13: 12(ptr) AccessChain 9(A) 11
+ 20: 6(int) AtomicLoad 13 14 19
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/spv.rw.autoassign.frag.out b/Test/baseResults/spv.rw.autoassign.frag.out
index 43adeddf..c696c525 100644
--- a/Test/baseResults/spv.rw.autoassign.frag.out
+++ b/Test/baseResults/spv.rw.autoassign.frag.out
@@ -1,4 +1,5 @@
spv.rw.autoassign.frag
+Validation failed
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 42
diff --git a/Test/baseResults/spv.scalarlayout.frag.out b/Test/baseResults/spv.scalarlayout.frag.out
index 549efaa8..e08721f8 100644
--- a/Test/baseResults/spv.scalarlayout.frag.out
+++ b/Test/baseResults/spv.scalarlayout.frag.out
@@ -1,5 +1,4 @@
spv.scalarlayout.frag
-Validation failed
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 20
diff --git a/Test/baseResults/spv.scalarlayoutfloat16.frag.out b/Test/baseResults/spv.scalarlayoutfloat16.frag.out
index fc0dca84..4f22730e 100644
--- a/Test/baseResults/spv.scalarlayoutfloat16.frag.out
+++ b/Test/baseResults/spv.scalarlayoutfloat16.frag.out
@@ -1,5 +1,4 @@
spv.scalarlayoutfloat16.frag
-Validation failed
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 18
diff --git a/Test/baseResults/spv.specConstant.vert.out b/Test/baseResults/spv.specConstant.vert.out
index 76f3de61..f7d43811 100644
--- a/Test/baseResults/spv.specConstant.vert.out
+++ b/Test/baseResults/spv.specConstant.vert.out
@@ -11,7 +11,7 @@ spv.specConstant.vert
Source GLSL 400
Name 4 "main"
Name 9 "arraySize"
- Name 14 "foo(vf4[s805310914];"
+ Name 14 "foo(vf4[s216172782];"
Name 13 "p"
Name 17 "builtin_spec_constant("
Name 20 "color"
@@ -106,10 +106,10 @@ spv.specConstant.vert
Store 20(color) 46
48: 10 Load 22(ucol)
Store 47(param) 48
- 49: 2 FunctionCall 14(foo(vf4[s805310914];) 47(param)
+ 49: 2 FunctionCall 14(foo(vf4[s216172782];) 47(param)
Return
FunctionEnd
-14(foo(vf4[s805310914];): 2 Function None 12
+14(foo(vf4[s216172782];): 2 Function None 12
13(p): 11(ptr) FunctionParameter
15: Label
54: 24(ptr) AccessChain 53(dupUcol) 23
diff --git a/Test/baseResults/vulkan.comp.out b/Test/baseResults/vulkan.comp.out
index e56dca48..3edb619d 100644
--- a/Test/baseResults/vulkan.comp.out
+++ b/Test/baseResults/vulkan.comp.out
@@ -1,6 +1,17 @@
vulkan.comp
ERROR: 0:5: 'local_size' : cannot change previously set size
-ERROR: 1 compilation errors. No code generated.
+ERROR: 0:10: 'empty { } initializer' : not supported for this version or the enabled extensions
+ERROR: 0:15: 'empty { } initializer' : not supported for this version or the enabled extensions
+ERROR: 0:15: 'initialization with shared qualifier' : not supported for this version or the enabled extensions
+ERROR: 0:16: 'empty { } initializer' : not supported for this version or the enabled extensions
+ERROR: 0:26: '{}' : null initializers can't size unsized arrays
+ERROR: 0:31: 'structure' : non-uniform struct contains a sampler or image: sampVar
+ERROR: 0:31: '{}' : null initializers can't be used on opaque values
+ERROR: 0:33: 'atomic counter types' : not allowed when using GLSL for Vulkan
+ERROR: 0:33: 'atomic_uint' : atomic_uints can only be used in uniform variables or function parameters: a
+ERROR: 0:33: '{}' : null initializers can't be used on opaque values
+ERROR: 0:33: 'atomic_uint' : layout(binding=X) is required
+ERROR: 12 compilation errors. No code generated.
SPIR-V is not generated for failed compile or link
diff --git a/Test/hlsl.round.dx10.frag b/Test/hlsl.round.dx10.frag
new file mode 100644
index 00000000..cd88334c
--- /dev/null
+++ b/Test/hlsl.round.dx10.frag
@@ -0,0 +1,4 @@
+float4 PixelShaderFunction(float4 input) : COLOR0
+{
+ return round(input);
+}
diff --git a/Test/hlsl.round.dx9.frag b/Test/hlsl.round.dx9.frag
new file mode 100644
index 00000000..cd88334c
--- /dev/null
+++ b/Test/hlsl.round.dx9.frag
@@ -0,0 +1,4 @@
+float4 PixelShaderFunction(float4 input) : COLOR0
+{
+ return round(input);
+}
diff --git a/Test/rayQuery-types.comp b/Test/rayQuery-types.comp
new file mode 100644
index 00000000..c70a3fc4
--- /dev/null
+++ b/Test/rayQuery-types.comp
@@ -0,0 +1,45 @@
+#version 460
+#extension GL_EXT_ray_query : require
+
+layout(local_size_x = 16, local_size_y = 8, local_size_z = 1) in;
+
+layout(binding = 0, set = 0) uniform accelerationStructureEXT tlas;
+
+void main()
+{
+ rayQueryEXT rayQuery;
+ rayQueryInitializeEXT(rayQuery, // Ray query
+ tlas, // Top-level acceleration structure
+ 0, // Ray flags
+ 0xFF, // 8-bit instance mask
+ vec3(0), // Ray origin
+ 0.0, // Minimum t-value
+ vec3(1, 0, 0), // Ray direction
+ 10000.0); // Maximum t-value
+
+ // yes this is silly, just want to verify the return types
+ bool rq_proceed = rayQueryProceedEXT(rayQuery);
+ while(rq_proceed)
+ {
+ rq_proceed = rayQueryProceedEXT(rayQuery);
+ }
+
+ const uint intersectionType = rayQueryGetIntersectionTypeEXT(rayQuery, true);
+ const float rayTMin = rayQueryGetRayTMinEXT(rayQuery);
+ const uint rayFlags = rayQueryGetRayFlagsEXT(rayQuery);
+ const vec3 worldRayOrigin = rayQueryGetWorldRayOriginEXT(rayQuery);
+ const vec3 worldDirection = rayQueryGetWorldRayDirectionEXT(rayQuery);
+ const float intersectionT = rayQueryGetIntersectionTEXT(rayQuery, true);
+ const int customIndex = rayQueryGetIntersectionInstanceCustomIndexEXT(rayQuery, true);
+ const int instanceId = rayQueryGetIntersectionInstanceIdEXT(rayQuery, true);
+ const uint sbtOffset = rayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetEXT(rayQuery, true);
+ const int geometryIndex = rayQueryGetIntersectionGeometryIndexEXT(rayQuery, true);
+ const int primitiveIndex = rayQueryGetIntersectionPrimitiveIndexEXT(rayQuery, true);
+ const vec2 barys = rayQueryGetIntersectionBarycentricsEXT(rayQuery, true);
+ const bool frontface = rayQueryGetIntersectionFrontFaceEXT(rayQuery, true);
+ const bool aabbOpaque = rayQueryGetIntersectionCandidateAABBOpaqueEXT(rayQuery);
+ const vec3 objRayDirection = rayQueryGetIntersectionObjectRayDirectionEXT(rayQuery, true);
+ const vec3 objRayOrigin = rayQueryGetIntersectionObjectRayOriginEXT(rayQuery, true);
+ const mat4x3 objToWorld = rayQueryGetIntersectionObjectToWorldEXT(rayQuery, true);
+ const mat4x3 worldToObj = rayQueryGetIntersectionWorldToObjectEXT(rayQuery, true);
+}
diff --git a/Test/runtests b/Test/runtests
index df070460..51f1a6a6 100755
--- a/Test/runtests
+++ b/Test/runtests
@@ -169,7 +169,7 @@ run -g --relaxed-errors --suppress-warnings --aml --amb --hlsl-offsets --nsf --s
-G -H spv.debugInfo.frag --rsb frag 3 > $TARGETDIR/spv.debugInfo.frag.out
diff -b $BASEDIR/spv.debugInfo.frag.out $TARGETDIR/spv.debugInfo.frag.out || HASERROR=1
run -g -Od --target-env vulkan1.1 --relaxed-errors --suppress-warnings --aml --amb --hlsl-offsets --nsf --spirv-val \
- -G -H spv.debugInfo.frag --rsb frag 3 > $TARGETDIR/spv.debugInfo.1.1.frag.out
+ -V -H spv.debugInfo.frag --rsb frag 3 > $TARGETDIR/spv.debugInfo.1.1.frag.out
diff -b $BASEDIR/spv.debugInfo.1.1.frag.out $TARGETDIR/spv.debugInfo.1.1.frag.out || HASERROR=1
run -g -D -Od -e newMain -g --amb --aml --fua --hlsl-iomap --nsf --spirv-val --sib 1 --ssb 2 --sbb 3 --stb 4 --suavb 5 --sub 6 \
--sep origMain -H -Od spv.hlslDebugInfo.vert --rsb vert t0 0 0 > $TARGETDIR/spv.hlslDebugInfo.frag.out
diff --git a/Test/spv.WorkgroupMemoryExplicitLayout.16BitAccess.comp b/Test/spv.WorkgroupMemoryExplicitLayout.16BitAccess.comp
new file mode 100644
index 00000000..e06555e4
--- /dev/null
+++ b/Test/spv.WorkgroupMemoryExplicitLayout.16BitAccess.comp
@@ -0,0 +1,18 @@
+#version 430 core
+
+#extension GL_EXT_shared_memory_block : enable
+#extension GL_EXT_shader_explicit_arithmetic_types: enable
+
+layout(local_size_x = 2) in;
+
+shared first
+{
+ int16_t a;
+ float16_t f;
+};
+
+void main()
+{
+ a = int16_t(3);
+ f = float16_t(12.3);
+}
diff --git a/Test/spv.WorkgroupMemoryExplicitLayout.8BitAccess.comp b/Test/spv.WorkgroupMemoryExplicitLayout.8BitAccess.comp
new file mode 100644
index 00000000..aaa512c2
--- /dev/null
+++ b/Test/spv.WorkgroupMemoryExplicitLayout.8BitAccess.comp
@@ -0,0 +1,16 @@
+#version 430 core
+
+#extension GL_EXT_shared_memory_block : enable
+#extension GL_EXT_shader_explicit_arithmetic_types: enable
+
+layout(local_size_x = 2) in;
+
+shared first
+{
+ int8_t a;
+};
+
+void main()
+{
+ a = int8_t(2);
+}
diff --git a/Test/spv.WorkgroupMemoryExplicitLayout.MixBlockNonBlock_Errors.comp b/Test/spv.WorkgroupMemoryExplicitLayout.MixBlockNonBlock_Errors.comp
new file mode 100644
index 00000000..573d0922
--- /dev/null
+++ b/Test/spv.WorkgroupMemoryExplicitLayout.MixBlockNonBlock_Errors.comp
@@ -0,0 +1,20 @@
+#version 430 core
+
+#extension GL_EXT_shared_memory_block : enable
+
+layout(local_size_x = 8) in;
+
+shared first
+{
+ int a;
+};
+
+shared int b;
+
+// Cannot mix shared block and shared non-block, will fail at linking.
+
+void main()
+{
+ a = 2;
+ b = 3;
+}
diff --git a/Test/spv.WorkgroupMemoryExplicitLayout.MultiBlock.comp b/Test/spv.WorkgroupMemoryExplicitLayout.MultiBlock.comp
new file mode 100644
index 00000000..675a4433
--- /dev/null
+++ b/Test/spv.WorkgroupMemoryExplicitLayout.MultiBlock.comp
@@ -0,0 +1,21 @@
+#version 430 core
+
+#extension GL_EXT_shared_memory_block : enable
+
+layout(local_size_x = 8) in;
+
+shared first
+{
+ int a;
+};
+
+shared second
+{
+ int b;
+};
+
+void main()
+{
+ a = 2;
+ b = 3;
+}
diff --git a/Test/spv.WorkgroupMemoryExplicitLayout.NonBlock.comp b/Test/spv.WorkgroupMemoryExplicitLayout.NonBlock.comp
new file mode 100644
index 00000000..38316a50
--- /dev/null
+++ b/Test/spv.WorkgroupMemoryExplicitLayout.NonBlock.comp
@@ -0,0 +1,14 @@
+#version 430 core
+
+#extension GL_EXT_shared_memory_block : enable
+
+layout(local_size_x = 8) in;
+
+shared int a;
+shared int b;
+
+void main()
+{
+ a = 2;
+ b = 3;
+}
diff --git a/Test/spv.WorkgroupMemoryExplicitLayout.SingleBlock.comp b/Test/spv.WorkgroupMemoryExplicitLayout.SingleBlock.comp
new file mode 100644
index 00000000..2a17c61c
--- /dev/null
+++ b/Test/spv.WorkgroupMemoryExplicitLayout.SingleBlock.comp
@@ -0,0 +1,15 @@
+#version 430 core
+
+#extension GL_EXT_shared_memory_block : enable
+
+layout(local_size_x = 8) in;
+
+shared first
+{
+ int a;
+};
+
+void main()
+{
+ a = 2;
+}
diff --git a/Test/spv.WorkgroupMemoryExplicitLayout.scalar.comp b/Test/spv.WorkgroupMemoryExplicitLayout.scalar.comp
new file mode 100644
index 00000000..38085b4d
--- /dev/null
+++ b/Test/spv.WorkgroupMemoryExplicitLayout.scalar.comp
@@ -0,0 +1,39 @@
+#version 430 core
+
+#extension GL_EXT_scalar_block_layout : enable
+#extension GL_EXT_shared_memory_block : enable
+
+layout(local_size_x = 8) in;
+
+struct T
+{
+ float t[3];
+};
+
+struct S
+{
+ float f;
+ vec2 v2;
+ vec3 v3;
+ vec4 v4;
+ T t;
+
+ float f_array[6];
+ vec2 v2_array[6];
+ vec3 v3_array[6];
+ vec4 v4_array[6];
+ T t_array[6];
+};
+
+// Use a default qualifier.
+layout(scalar) shared;
+
+shared Block
+{
+ S s;
+ S s_array[6];
+};
+
+void main()
+{
+}
diff --git a/Test/spv.WorkgroupMemoryExplicitLayout.std140.comp b/Test/spv.WorkgroupMemoryExplicitLayout.std140.comp
new file mode 100644
index 00000000..f4f2475a
--- /dev/null
+++ b/Test/spv.WorkgroupMemoryExplicitLayout.std140.comp
@@ -0,0 +1,35 @@
+#version 430 core
+
+#extension GL_EXT_shared_memory_block : enable
+
+layout(local_size_x = 8) in;
+
+struct T
+{
+ float t[3];
+};
+
+struct S
+{
+ float f;
+ vec2 v2;
+ vec3 v3;
+ vec4 v4;
+ T t;
+
+ float f_array[6];
+ vec2 v2_array[6];
+ vec3 v3_array[6];
+ vec4 v4_array[6];
+ T t_array[6];
+};
+
+layout(std140) shared Block
+{
+ S s;
+ S s_array[6];
+};
+
+void main()
+{
+}
diff --git a/Test/spv.WorkgroupMemoryExplicitLayout.std430.comp b/Test/spv.WorkgroupMemoryExplicitLayout.std430.comp
new file mode 100644
index 00000000..717593b6
--- /dev/null
+++ b/Test/spv.WorkgroupMemoryExplicitLayout.std430.comp
@@ -0,0 +1,35 @@
+#version 430 core
+
+#extension GL_EXT_shared_memory_block : enable
+
+layout(local_size_x = 8) in;
+
+struct T
+{
+ float t[3];
+};
+
+struct S
+{
+ float f;
+ vec2 v2;
+ vec3 v3;
+ vec4 v4;
+ T t;
+
+ float f_array[6];
+ vec2 v2_array[6];
+ vec3 v3_array[6];
+ vec4 v4_array[6];
+ T t_array[6];
+};
+
+layout(std430) shared Block
+{
+ S s;
+ S s_array[6];
+};
+
+void main()
+{
+}
diff --git a/Test/spv.nullInit.comp b/Test/spv.nullInit.comp
new file mode 100644
index 00000000..256fd54a
--- /dev/null
+++ b/Test/spv.nullInit.comp
@@ -0,0 +1,32 @@
+#version 460
+
+#extension GL_EXT_null_initializer : enable
+
+#ifdef GL_EXT_null_initializer
+
+struct S {
+ vec3[4] v;
+ int a;
+};
+
+struct T {
+ int b;
+ S s;
+};
+
+shared float f = { };
+shared T t1 = { };
+shared T t2 = { };
+shared S s = { };
+shared float g = { };
+shared int i = { };
+
+void main()
+{
+ S local = { };
+ ++local.a;
+}
+
+S global = { };
+
+#endif
diff --git a/Test/spv.queueFamilyScope.comp b/Test/spv.queueFamilyScope.comp
new file mode 100644
index 00000000..0d798508
--- /dev/null
+++ b/Test/spv.queueFamilyScope.comp
@@ -0,0 +1,10 @@
+#version 450
+#extension GL_KHR_memory_scope_semantics : require
+
+layout (binding = 0) buffer Buffer { uint a; } A;
+
+void main()
+{
+ atomicLoad(A.a, gl_ScopeQueueFamily, gl_StorageSemanticsBuffer, gl_SemanticsAcquire);
+}
+
diff --git a/Test/vulkan.comp b/Test/vulkan.comp
index 6b6f4cf3..98d93ed2 100644
--- a/Test/vulkan.comp
+++ b/Test/vulkan.comp
@@ -7,6 +7,27 @@ layout(local_size_z_id = 14) in; // ERROR, can't change this
void main()
{
gl_WorkGroupSize;
+ int i = { }; // ERROR, need an extension
}
layout(local_size_y_id = 19) in; // ERROR, already used: TODO not yet reported
+
+shared float f = { }; // ERROR, need an extension
+float g = { }; // ERROR, need an extension
+
+#extension GL_EXT_null_initializer : enable
+
+shared float f2 = { };
+float g2 = { };
+
+void foo()
+{
+ int i = { };
+ float fa[] = { };
+}
+
+struct samp {
+ sampler2D s2D;
+} sampVar = { };
+
+atomic_uint a = { };
diff --git a/build_info.h.tmpl b/build_info.h.tmpl
index eacecb09..5b5e9e62 100644
--- a/build_info.h.tmpl
+++ b/build_info.h.tmpl
@@ -34,10 +34,10 @@
#ifndef GLSLANG_BUILD_INFO
#define GLSLANG_BUILD_INFO
-#define GLSLANG_VERSION_MAJOR <major>
-#define GLSLANG_VERSION_MINOR <minor>
-#define GLSLANG_VERSION_PATCH <patch>
-#define GLSLANG_VERSION_FLAVOR "<flavor>"
+#define GLSLANG_VERSION_MAJOR @major@
+#define GLSLANG_VERSION_MINOR @minor@
+#define GLSLANG_VERSION_PATCH @patch@
+#define GLSLANG_VERSION_FLAVOR "@flavor@"
#define GLSLANG_VERSION_GREATER_THAN(major, minor, patch) \
(((major) > GLSLANG_VERSION_MAJOR) || ((major) == GLSLANG_VERSION_MAJOR && \
diff --git a/build_info.py b/build_info.py
index 2ac864b0..7c1998f6 100755
--- a/build_info.py
+++ b/build_info.py
@@ -201,13 +201,13 @@ def main():
software_version = deduce_software_version(directory)
commit = describe(directory)
output = template \
- .replace("<major>", software_version["major"]) \
- .replace("<minor>", software_version["minor"]) \
- .replace("<patch>", software_version["patch"]) \
- .replace("<flavor>", software_version["flavor"]) \
- .replace("<-flavor>", software_version["-flavor"]) \
- .replace("<date>", software_version["date"]) \
- .replace("<commit>", commit)
+ .replace("@major@", software_version["major"]) \
+ .replace("@minor@", software_version["minor"]) \
+ .replace("@patch@", software_version["patch"]) \
+ .replace("@flavor@", software_version["flavor"]) \
+ .replace("@-flavor@", software_version["-flavor"]) \
+ .replace("@date@", software_version["date"]) \
+ .replace("@commit@", commit)
if output_file is None:
print(output)
diff --git a/glslang/CMakeLists.txt b/glslang/CMakeLists.txt
index 1c7d22a2..fc925eaf 100644
--- a/glslang/CMakeLists.txt
+++ b/glslang/CMakeLists.txt
@@ -33,7 +33,7 @@
if(WIN32)
add_subdirectory(OSDependent/Windows)
-elseif(UNIX)
+elseif(UNIX OR "${CMAKE_SYSTEM_NAME}" STREQUAL "Fuchsia")
add_subdirectory(OSDependent/Unix)
else(WIN32)
message("unknown platform")
diff --git a/glslang/HLSL/hlslParseHelper.cpp b/glslang/HLSL/hlslParseHelper.cpp
index ea31837e..63dd8e38 100644
--- a/glslang/HLSL/hlslParseHelper.cpp
+++ b/glslang/HLSL/hlslParseHelper.cpp
@@ -1376,7 +1376,7 @@ TIntermTyped* HlslParseContext::flattenAccess(TIntermTyped* base, int member)
return flattened ? flattened : base;
}
-TIntermTyped* HlslParseContext::flattenAccess(int uniqueId, int member, TStorageQualifier outerStorage,
+TIntermTyped* HlslParseContext::flattenAccess(long long uniqueId, int member, TStorageQualifier outerStorage,
const TType& dereferencedType, int subset)
{
const auto flattenData = flattenMap.find(uniqueId);
@@ -1444,7 +1444,7 @@ int HlslParseContext::findSubtreeOffset(const TType& type, int subset, const TVe
};
// Find and return the split IO TVariable for id, or nullptr if none.
-TVariable* HlslParseContext::getSplitNonIoVar(int id) const
+TVariable* HlslParseContext::getSplitNonIoVar(long long id) const
{
const auto splitNonIoVar = splitNonIoVars.find(id);
if (splitNonIoVar == splitNonIoVars.end())
@@ -3256,7 +3256,7 @@ TIntermAggregate* HlslParseContext::handleSamplerTextureCombine(const TSourceLoc
// shadow state. This depends on downstream optimization to
// DCE one variant in [shadow, nonshadow] if both are present,
// or the SPIR-V module would be invalid.
- int newId = texSymbol->getId();
+ long long newId = texSymbol->getId();
// Check to see if this texture has been given a shadow mode already.
// If so, look up the one we already have.
@@ -5492,6 +5492,10 @@ TIntermTyped* HlslParseContext::handleFunctionCall(const TSourceLoc& loc, TFunct
op = fnCandidate->getBuiltInOp();
if (builtIn && op != EOpNull) {
+ // SM 4.0 and above guarantees roundEven semantics for round()
+ if (!hlslDX9Compatible() && op == EOpRound)
+ op = EOpRoundEven;
+
// A function call mapped to a built-in operation.
result = intermediate.addBuiltInFunctionCall(loc, op, fnCandidate->getParamCount() == 1, arguments,
fnCandidate->getType());
@@ -9865,7 +9869,7 @@ void HlslParseContext::addPatchConstantInvocation()
} else {
// Use the original declaration type for the linkage
paramType->getQualifier().builtIn = biType;
- if (biType == EbvTessLevelInner || biType == EbvTessLevelInner)
+ if (biType == EbvTessLevelInner || biType == EbvTessLevelOuter)
paramType->getQualifier().patch = true;
if (notInEntryPoint.count(tInterstageIoData(biType, storage)) == 1)
diff --git a/glslang/HLSL/hlslParseHelper.h b/glslang/HLSL/hlslParseHelper.h
index b92856a4..2d7165cf 100644
--- a/glslang/HLSL/hlslParseHelper.h
+++ b/glslang/HLSL/hlslParseHelper.h
@@ -253,12 +253,12 @@ protected:
// Array and struct flattening
TIntermTyped* flattenAccess(TIntermTyped* base, int member);
- TIntermTyped* flattenAccess(int uniqueId, int member, TStorageQualifier outerStorage, const TType&, int subset = -1);
+ TIntermTyped* flattenAccess(long long uniqueId, int member, TStorageQualifier outerStorage, const TType&, int subset = -1);
int findSubtreeOffset(const TIntermNode&) const;
int findSubtreeOffset(const TType&, int subset, const TVector<int>& offsets) const;
bool shouldFlatten(const TType&, TStorageQualifier, bool topLevel) const;
bool wasFlattened(const TIntermTyped* node) const;
- bool wasFlattened(int id) const { return flattenMap.find(id) != flattenMap.end(); }
+ bool wasFlattened(long long id) const { return flattenMap.find(id) != flattenMap.end(); }
int addFlattenedMember(const TVariable&, const TType&, TFlattenData&, const TString& name, bool linkage,
const TQualifier& outerQualifier, const TArraySizes* builtInArraySizes);
@@ -267,8 +267,8 @@ protected:
void splitBuiltIn(const TString& baseName, const TType& memberType, const TArraySizes*, const TQualifier&);
const TType& split(const TType& type, const TString& name, const TQualifier&);
bool wasSplit(const TIntermTyped* node) const;
- bool wasSplit(int id) const { return splitNonIoVars.find(id) != splitNonIoVars.end(); }
- TVariable* getSplitNonIoVar(int id) const;
+ bool wasSplit(long long id) const { return splitNonIoVars.find(id) != splitNonIoVars.end(); }
+ TVariable* getSplitNonIoVar(long long id) const;
void addPatchConstantInvocation();
void fixTextureShadowModes();
void finalizeAppendMethods();
@@ -386,7 +386,7 @@ protected:
//
TVector<TSymbol*> ioArraySymbolResizeList;
- TMap<int, TFlattenData> flattenMap;
+ TMap<long long, TFlattenData> flattenMap;
// IO-type map. Maps a pure symbol-table form of a structure-member list into
// each of the (up to) three kinds of IO, as each as different allowed decorations,
@@ -399,7 +399,7 @@ protected:
TMap<const TTypeList*, tIoKinds> ioTypeMap;
// Structure splitting data:
- TMap<int, TVariable*> splitNonIoVars; // variables with the built-in interstage IO removed, indexed by unique ID.
+ TMap<long long, TVariable*> splitNonIoVars; // variables with the built-in interstage IO removed, indexed by unique ID.
// Structuredbuffer shared types. Typically there are only a few.
TVector<TType*> structBufferTypes;
@@ -488,18 +488,18 @@ protected:
struct tShadowTextureSymbols {
tShadowTextureSymbols() { symId.fill(-1); }
- void set(bool shadow, int id) { symId[int(shadow)] = id; }
- int get(bool shadow) const { return symId[int(shadow)]; }
+ void set(bool shadow, long long id) { symId[int(shadow)] = id; }
+ long long get(bool shadow) const { return symId[int(shadow)]; }
// True if this texture has been seen with both shadow and non-shadow modes
bool overloaded() const { return symId[0] != -1 && symId[1] != -1; }
- bool isShadowId(int id) const { return symId[1] == id; }
+ bool isShadowId(long long id) const { return symId[1] == id; }
private:
- std::array<int, 2> symId;
+ std::array<long long, 2> symId;
};
- TMap<int, tShadowTextureSymbols*> textureShadowVariant;
+ TMap<long long, tShadowTextureSymbols*> textureShadowVariant;
bool parsingEntrypointParameters;
};
diff --git a/glslang/HLSL/hlslParseables.cpp b/glslang/HLSL/hlslParseables.cpp
index 025cb5e1..4673b460 100644
--- a/glslang/HLSL/hlslParseables.cpp
+++ b/glslang/HLSL/hlslParseables.cpp
@@ -1123,7 +1123,7 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profil
symbolTable.relateToOperator("reflect", EOpReflect);
symbolTable.relateToOperator("refract", EOpRefract);
symbolTable.relateToOperator("reversebits", EOpBitFieldReverse);
- symbolTable.relateToOperator("round", EOpRoundEven);
+ symbolTable.relateToOperator("round", EOpRound);
symbolTable.relateToOperator("rsqrt", EOpInverseSqrt);
symbolTable.relateToOperator("saturate", EOpSaturate);
symbolTable.relateToOperator("sign", EOpSign);
diff --git a/glslang/Include/Types.h b/glslang/Include/Types.h
index 696daf6d..603203db 100644
--- a/glslang/Include/Types.h
+++ b/glslang/Include/Types.h
@@ -499,6 +499,7 @@ public:
declaredBuiltIn = EbvNone;
#ifndef GLSLANG_WEB
noContraction = false;
+ nullInit = false;
#endif
}
@@ -512,6 +513,7 @@ public:
clearMemory();
specConstant = false;
nonUniform = false;
+ nullInit = false;
clearLayout();
}
@@ -588,6 +590,8 @@ public:
bool isNoContraction() const { return false; }
void setNoContraction() { }
bool isPervertexNV() const { return false; }
+ void setNullInit() { }
+ bool isNullInit() const { return false; }
#else
bool noContraction: 1; // prevent contraction and reassociation, e.g., for 'precise' keyword, and expressions it affects
bool nopersp : 1;
@@ -609,6 +613,7 @@ public:
bool subgroupcoherent : 1;
bool shadercallcoherent : 1;
bool nonprivate : 1;
+ bool nullInit : 1;
bool isWriteOnly() const { return writeonly; }
bool isReadOnly() const { return readonly; }
bool isRestrict() const { return restrict; }
@@ -644,6 +649,8 @@ public:
bool isNoContraction() const { return noContraction; }
void setNoContraction() { noContraction = true; }
bool isPervertexNV() const { return pervertexNV; }
+ void setNullInit() { nullInit = true; }
+ bool isNullInit() const { return nullInit; }
#endif
bool isPipeInput() const
@@ -2164,6 +2171,8 @@ public:
appendStr(" specialization-constant");
if (qualifier.nonUniform)
appendStr(" nonuniform");
+ if (qualifier.isNullInit())
+ appendStr(" null-init");
appendStr(" ");
appendStr(getStorageQualifierString());
if (isArray()) {
diff --git a/glslang/Include/glslang_c_shader_types.h b/glslang/Include/glslang_c_shader_types.h
index d01a115f..f100a9aa 100644
--- a/glslang/Include/glslang_c_shader_types.h
+++ b/glslang/Include/glslang_c_shader_types.h
@@ -100,8 +100,9 @@ typedef enum {
typedef enum {
GLSLANG_TARGET_VULKAN_1_0 = (1 << 22),
GLSLANG_TARGET_VULKAN_1_1 = (1 << 22) | (1 << 12),
+ GLSLANG_TARGET_VULKAN_1_2 = (1 << 22) | (2 << 12),
GLSLANG_TARGET_OPENGL_450 = 450,
- LAST_ELEMENT_MARKER(GLSLANG_TARGET_CLIENT_VERSION_COUNT),
+ LAST_ELEMENT_MARKER(GLSLANG_TARGET_CLIENT_VERSION_COUNT = 4),
} glslang_target_client_version_t;
/* SH_TARGET_LanguageVersion counterpart */
@@ -112,7 +113,7 @@ typedef enum {
GLSLANG_TARGET_SPV_1_3 = (1 << 16) | (3 << 8),
GLSLANG_TARGET_SPV_1_4 = (1 << 16) | (4 << 8),
GLSLANG_TARGET_SPV_1_5 = (1 << 16) | (5 << 8),
- LAST_ELEMENT_MARKER(GLSLANG_TARGET_LANGUAGE_VERSION_COUNT),
+ LAST_ELEMENT_MARKER(GLSLANG_TARGET_LANGUAGE_VERSION_COUNT = 6),
} glslang_target_language_version_t;
/* EShExecutable counterpart */
diff --git a/glslang/Include/intermediate.h b/glslang/Include/intermediate.h
index 19cd32e9..85edd635 100644
--- a/glslang/Include/intermediate.h
+++ b/glslang/Include/intermediate.h
@@ -1275,15 +1275,15 @@ public:
// if symbol is initialized as symbol(sym), the memory comes from the pool allocator of sym. If sym comes from
// per process threadPoolAllocator, then it causes increased memory usage per compile
// it is essential to use "symbol = sym" to assign to symbol
- TIntermSymbol(int i, const TString& n, const TType& t)
+ TIntermSymbol(long long i, const TString& n, const TType& t)
: TIntermTyped(t), id(i),
#ifndef GLSLANG_WEB
flattenSubset(-1),
#endif
constSubtree(nullptr)
{ name = n; }
- virtual int getId() const { return id; }
- virtual void changeId(int i) { id = i; }
+ virtual long long getId() const { return id; }
+ virtual void changeId(long long i) { id = i; }
virtual const TString& getName() const { return name; }
virtual void traverse(TIntermTraverser*);
virtual TIntermSymbol* getAsSymbolNode() { return this; }
@@ -1301,10 +1301,10 @@ public:
// This is meant for cases where a node has already been constructed, and
// later on, it becomes necessary to switch to a different symbol.
- virtual void switchId(int newId) { id = newId; }
+ virtual void switchId(long long newId) { id = newId; }
protected:
- int id; // the unique id of the symbol this node represents
+ long long id; // the unique id of the symbol this node represents
#ifndef GLSLANG_WEB
int flattenSubset; // how deeply the flattened object rooted at id has been dereferenced
#endif
diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp
index f6172a2b..cadf6f34 100644
--- a/glslang/MachineIndependent/Intermediate.cpp
+++ b/glslang/MachineIndependent/Intermediate.cpp
@@ -65,7 +65,7 @@ namespace glslang {
// Returns the added node.
//
-TIntermSymbol* TIntermediate::addSymbol(int id, const TString& name, const TType& type, const TConstUnionArray& constArray,
+TIntermSymbol* TIntermediate::addSymbol(long long id, const TString& name, const TType& type, const TConstUnionArray& constArray,
TIntermTyped* constSubtree, const TSourceLoc& loc)
{
TIntermSymbol* node = new TIntermSymbol(id, name, type);
@@ -2870,7 +2870,7 @@ void TIntermediate::addToCallGraph(TInfoSink& /*infoSink*/, const TString& calle
return;
}
- callGraph.push_front(TCall(caller, callee));
+ callGraph.emplace_front(caller, callee);
}
//
diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp
index 9c42a204..cba242a2 100644
--- a/glslang/MachineIndependent/ParseHelper.cpp
+++ b/glslang/MachineIndependent/ParseHelper.cpp
@@ -87,6 +87,10 @@ TParseContext::TParseContext(TSymbolTable& symbolTable, TIntermediate& interm, b
globalInputDefaults.clear();
globalOutputDefaults.clear();
+ globalSharedDefaults.clear();
+ globalSharedDefaults.layoutMatrix = ElmColumnMajor;
+ globalSharedDefaults.layoutPacking = ElpStd430;
+
#ifndef GLSLANG_WEB
// "Shaders in the transform
// feedback capturing mode have an initial global default of
@@ -4292,8 +4296,10 @@ TSymbol* TParseContext::redeclareBuiltinVariable(const TSourceLoc& loc, const TS
// If it wasn't at a built-in level, then it's already been redeclared;
// that is, this is a redeclaration of a redeclaration; reuse that initial
// redeclaration. Otherwise, make the new one.
- if (builtIn)
+ if (builtIn) {
makeEditable(symbol);
+ symbolTable.amendSymbolIdLevel(*symbol);
+ }
// Now, modify the type of the copy, as per the type of the current redeclaration.
@@ -4822,7 +4828,7 @@ void TParseContext::inductiveLoopCheck(const TSourceLoc& loc, TIntermNode* init,
}
// get the unique id of the loop index
- int loopIndex = binaryInit->getLeft()->getAsSymbolNode()->getId();
+ long long loopIndex = binaryInit->getLeft()->getAsSymbolNode()->getId();
inductiveLoopIds.insert(loopIndex);
// condition's form must be "loop-index relational-operator constant-expression"
@@ -5465,7 +5471,14 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi
if (! IsPow2(value))
error(loc, "must be a power of 2", "buffer_reference_align", "");
else
+#ifdef __ANDROID__
+ // Android NDK r15c tageting ABI 15 doesn't have full support for C++11
+ // (no std::exp2/log2). ::exp2 is available from C99 but ::log2 isn't
+ // available up until ABI 18 so we use the mathematical equivalent form
+ publicType.qualifier.layoutBufferReferenceAlign = (unsigned int)(std::log(value) / std::log(2.0));
+#else
publicType.qualifier.layoutBufferReferenceAlign = (unsigned int)std::log2(value);
+#endif
if (nonLiteral)
error(loc, "needs a literal integer", "buffer_reference_align", "");
return;
@@ -6026,12 +6039,28 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type)
}
}
+static bool storageCanHaveLayoutInBlock(const enum TStorageQualifier storage)
+{
+ switch (storage) {
+ case EvqUniform:
+ case EvqBuffer:
+ case EvqShared:
+ return true;
+ default:
+ return false;
+ }
+}
+
// Do layout error checking that can be done within a layout qualifier proper, not needing to know
// if there are blocks, atomic counters, variables, etc.
void TParseContext::layoutQualifierCheck(const TSourceLoc& loc, const TQualifier& qualifier)
{
- if (qualifier.storage == EvqShared && qualifier.hasLayout())
- error(loc, "cannot apply layout qualifiers to a shared variable", "shared", "");
+ if (qualifier.storage == EvqShared && qualifier.hasLayout()) {
+ if (spvVersion.spv > 0 && spvVersion.spv < EShTargetSpv_1_4) {
+ error(loc, "shared block requires at least SPIR-V 1.4", "shared block", "");
+ }
+ profileRequires(loc, EEsProfile | ECoreProfile | ECompatibilityProfile, 0, E_GL_EXT_shared_memory_block, "shared block");
+ }
// "It is a compile-time error to use *component* without also specifying the location qualifier (order does not matter)."
if (qualifier.hasComponent() && ! qualifier.hasLocation())
@@ -6114,7 +6143,7 @@ void TParseContext::layoutQualifierCheck(const TSourceLoc& loc, const TQualifier
error(loc, "can only be used on an output", "xfb layout qualifier", "");
}
if (qualifier.hasUniformLayout()) {
- if (! qualifier.isUniformOrBuffer() && !qualifier.isTaskMemory()) {
+ if (!storageCanHaveLayoutInBlock(qualifier.storage) && !qualifier.isTaskMemory()) {
if (qualifier.hasMatrix() || qualifier.hasPacking())
error(loc, "matrix or packing qualifiers can only be used on a uniform or buffer", "layout", "");
if (qualifier.hasOffset() || qualifier.hasAlign())
@@ -6808,6 +6837,11 @@ TVariable* TParseContext::declareNonArray(const TSourceLoc& loc, const TString&
//
TIntermNode* TParseContext::executeInitializer(const TSourceLoc& loc, TIntermTyped* initializer, TVariable* variable)
{
+ // A null initializer is an aggregate that hasn't had an op assigned yet
+ // (still EOpNull, no relation to nullInit), and has no children.
+ bool nullInit = initializer->getAsAggregate() && initializer->getAsAggregate()->getOp() == EOpNull &&
+ initializer->getAsAggregate()->getSequence().size() == 0;
+
//
// Identifier must be of type constant, a global, or a temporary, and
// starting at version 120, desktop allows uniforms to have initializers.
@@ -6815,9 +6849,36 @@ TIntermNode* TParseContext::executeInitializer(const TSourceLoc& loc, TIntermTyp
TStorageQualifier qualifier = variable->getType().getQualifier().storage;
if (! (qualifier == EvqTemporary || qualifier == EvqGlobal || qualifier == EvqConst ||
(qualifier == EvqUniform && !isEsProfile() && version >= 120))) {
- error(loc, " cannot initialize this type of qualifier ", variable->getType().getStorageQualifierString(), "");
+ if (qualifier == EvqShared) {
+ // GL_EXT_null_initializer allows this for shared, if it's a null initializer
+ if (nullInit) {
+ const char* feature = "initialization with shared qualifier";
+ profileRequires(loc, EEsProfile, 0, E_GL_EXT_null_initializer, feature);
+ profileRequires(loc, ~EEsProfile, 0, E_GL_EXT_null_initializer, feature);
+ } else {
+ error(loc, "initializer can only be a null initializer ('{}')", "shared", "");
+ }
+ } else {
+ error(loc, " cannot initialize this type of qualifier ",
+ variable->getType().getStorageQualifierString(), "");
+ return nullptr;
+ }
+ }
+
+ if (nullInit) {
+ // only some types can be null initialized
+ if (variable->getType().containsUnsizedArray()) {
+ error(loc, "null initializers can't size unsized arrays", "{}", "");
+ return nullptr;
+ }
+ if (variable->getType().containsOpaque()) {
+ error(loc, "null initializers can't be used on opaque values", "{}", "");
+ return nullptr;
+ }
+ variable->getWritableType().getQualifier().setNullInit();
return nullptr;
}
+
arrayObjectCheck(loc, variable->getType(), "array initializer");
//
@@ -6861,13 +6922,15 @@ TIntermNode* TParseContext::executeInitializer(const TSourceLoc& loc, TIntermTyp
// Uniforms require a compile-time constant initializer
if (qualifier == EvqUniform && ! initializer->getType().getQualifier().isFrontEndConstant()) {
- error(loc, "uniform initializers must be constant", "=", "'%s'", variable->getType().getCompleteString().c_str());
+ error(loc, "uniform initializers must be constant", "=", "'%s'",
+ variable->getType().getCompleteString().c_str());
variable->getWritableType().getQualifier().makeTemporary();
return nullptr;
}
// Global consts require a constant initializer (specialization constant is okay)
if (qualifier == EvqConst && symbolTable.atGlobalLevel() && ! initializer->getType().getQualifier().isConstant()) {
- error(loc, "global const initializers must be constant", "=", "'%s'", variable->getType().getCompleteString().c_str());
+ error(loc, "global const initializers must be constant", "=", "'%s'",
+ variable->getType().getCompleteString().c_str());
variable->getWritableType().getQualifier().makeTemporary();
return nullptr;
}
@@ -6887,7 +6950,8 @@ TIntermNode* TParseContext::executeInitializer(const TSourceLoc& loc, TIntermTyp
// "In declarations of global variables with no storage qualifier or with a const
// qualifier any initializer must be a constant expression."
if (symbolTable.atGlobalLevel() && ! initializer->getType().getQualifier().isConstant()) {
- const char* initFeature = "non-constant global initializer (needs GL_EXT_shader_non_constant_global_initializers)";
+ const char* initFeature =
+ "non-constant global initializer (needs GL_EXT_shader_non_constant_global_initializers)";
if (isEsProfile()) {
if (relaxedErrors() && ! extensionTurnedOn(E_GL_EXT_shader_non_constant_global_initializers))
warn(loc, "not allowed in this version", initFeature, "");
@@ -6901,7 +6965,8 @@ TIntermNode* TParseContext::executeInitializer(const TSourceLoc& loc, TIntermTyp
// Compile-time tagging of the variable with its constant value...
initializer = intermediate.addConversion(EOpAssign, variable->getType(), initializer);
- if (! initializer || ! initializer->getType().getQualifier().isConstant() || variable->getType() != initializer->getType()) {
+ if (! initializer || ! initializer->getType().getQualifier().isConstant() ||
+ variable->getType() != initializer->getType()) {
error(loc, "non-matching or non-convertible constant type for const initializer",
variable->getType().getStorageQualifierString(), "");
variable->getWritableType().getQualifier().makeTemporary();
@@ -7624,6 +7689,7 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con
case EvqBuffer: defaultQualification = globalBufferDefaults; break;
case EvqVaryingIn: defaultQualification = globalInputDefaults; break;
case EvqVaryingOut: defaultQualification = globalOutputDefaults; break;
+ case EvqShared: defaultQualification = globalSharedDefaults; break;
default: defaultQualification.clear(); break;
}
@@ -7887,6 +7953,12 @@ void TParseContext::blockStageIoCheck(const TSourceLoc& loc, const TQualifier& q
error(loc, "output blocks cannot be used in a task shader", "out", "");
}
break;
+ case EvqShared:
+ if (spvVersion.spv > 0 && spvVersion.spv < EShTargetSpv_1_4) {
+ error(loc, "shared block requires at least SPIR-V 1.4", "shared block", "");
+ }
+ profileRequires(loc, EEsProfile | ECoreProfile | ECompatibilityProfile, 0, E_GL_EXT_shared_memory_block, "shared block");
+ break;
#ifndef GLSLANG_WEB
case EvqPayload:
profileRequires(loc, ~EEsProfile, 460, 2, extsrt, "rayPayloadNV block");
@@ -8045,7 +8117,7 @@ void TParseContext::fixXfbOffsets(TQualifier& qualifier, TTypeList& typeList)
//
void TParseContext::fixBlockUniformOffsets(TQualifier& qualifier, TTypeList& typeList)
{
- if (!qualifier.isUniformOrBuffer() && !qualifier.isTaskMemory())
+ if (!storageCanHaveLayoutInBlock(qualifier.storage) && !qualifier.isTaskMemory())
return;
if (qualifier.layoutPacking != ElpStd140 && qualifier.layoutPacking != ElpStd430 && qualifier.layoutPacking != ElpScalar)
return;
@@ -8559,8 +8631,14 @@ void TParseContext::updateStandaloneQualifierDefaults(const TSourceLoc& loc, con
}
#endif
break;
+ case EvqShared:
+ if (qualifier.hasMatrix())
+ globalSharedDefaults.layoutMatrix = qualifier.layoutMatrix;
+ if (qualifier.hasPacking())
+ globalSharedDefaults.layoutPacking = qualifier.layoutPacking;
+ break;
default:
- error(loc, "default qualifier requires 'uniform', 'buffer', 'in', or 'out' storage qualification", "", "");
+ error(loc, "default qualifier requires 'uniform', 'buffer', 'in', 'out' or 'shared' storage qualification", "", "");
return;
}
diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h
index fe2b6fbb..ad9b8d6a 100644
--- a/glslang/MachineIndependent/ParseHelper.h
+++ b/glslang/MachineIndependent/ParseHelper.h
@@ -67,7 +67,7 @@ struct TPragma {
class TScanContext;
class TPpContext;
-typedef std::set<int> TIdSetType;
+typedef std::set<long long> TIdSetType;
typedef std::map<const TTypeList*, std::map<size_t, const TTypeList*>> TStructRecord;
//
@@ -392,7 +392,7 @@ public:
void arrayLimitCheck(const TSourceLoc&, const TString&, int size);
void limitCheck(const TSourceLoc&, int value, const char* limit, const char* feature);
- void inductiveLoopBodyCheck(TIntermNode*, int loopIndexId, TSymbolTable&);
+ void inductiveLoopBodyCheck(TIntermNode*, long long loopIndexId, TSymbolTable&);
void constantIndexExpressionCheck(TIntermNode*);
void setLayoutQualifier(const TSourceLoc&, TPublicType&, TString&);
@@ -485,6 +485,7 @@ protected:
TQualifier globalUniformDefaults;
TQualifier globalInputDefaults;
TQualifier globalOutputDefaults;
+ TQualifier globalSharedDefaults;
TString currentCaller; // name of last function body entered (not valid when at global scope)
#ifndef GLSLANG_WEB
int* atomicUintOffsets; // to become an array of the right size to hold an offset per binding point
diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp
index c6030bd7..3f793a74 100644
--- a/glslang/MachineIndependent/ShaderLang.cpp
+++ b/glslang/MachineIndependent/ShaderLang.cpp
@@ -949,6 +949,9 @@ bool ProcessDeferred(
if (cachedTable)
symbolTable->adoptLevels(*cachedTable);
+ if (intermediate.getUniqueId() != 0)
+ symbolTable->overwriteUniqueId(intermediate.getUniqueId());
+
// Add built-in symbols that are potentially context dependent;
// they get popped again further down.
if (! AddContextSpecificSymbols(resources, compiler->infoSink, *symbolTable, version, profile, spvVersion,
@@ -1011,6 +1014,7 @@ bool ProcessDeferred(
bool success = processingContext(*parseContext, ppContext, fullInput,
versionWillBeError, *symbolTable,
intermediate, optLevel, messages);
+ intermediate.setUniqueId(symbolTable->getMaxSymbolId());
return success;
}
@@ -1270,14 +1274,15 @@ bool PreprocessDeferred(
EShMessages messages, // warnings/errors/AST; things to print out
TShader::Includer& includer,
TIntermediate& intermediate, // returned tree, etc.
- std::string* outputString)
+ std::string* outputString,
+ TEnvironment* environment = nullptr)
{
DoPreprocessing parser(outputString);
return ProcessDeferred(compiler, shaderStrings, numStrings, inputLengths, stringNames,
preamble, optLevel, resources, defaultVersion,
defaultProfile, forceDefaultVersionAndProfile,
forwardCompatible, messages, intermediate, parser,
- false, includer);
+ false, includer, "", environment);
}
#endif
@@ -1810,6 +1815,11 @@ void TShader::addProcesses(const std::vector<std::string>& p)
intermediate->addProcesses(p);
}
+void TShader::setUniqueId(unsigned long long id)
+{
+ intermediate->setUniqueId(id);
+}
+
void TShader::setInvertY(bool invert) { intermediate->setInvertY(invert); }
void TShader::setNanMinMaxClamp(bool useNonNan) { intermediate->setNanMinMaxClamp(useNonNan); }
@@ -1909,7 +1919,8 @@ bool TShader::preprocess(const TBuiltInResource* builtInResources,
return PreprocessDeferred(compiler, strings, numStrings, lengths, stringNames, preamble,
EShOptNone, builtInResources, defaultVersion,
defaultProfile, forceDefaultVersionAndProfile,
- forwardCompatible, message, includer, *intermediate, output_string);
+ forwardCompatible, message, includer, *intermediate, output_string,
+ &environment);
}
#endif
diff --git a/glslang/MachineIndependent/SymbolTable.cpp b/glslang/MachineIndependent/SymbolTable.cpp
index f6291c39..0e5ee195 100644
--- a/glslang/MachineIndependent/SymbolTable.cpp
+++ b/glslang/MachineIndependent/SymbolTable.cpp
@@ -170,7 +170,7 @@ void TType::buildMangledName(TString& mangledName) const
for (int i = 0; i < arraySizes->getNumDims(); ++i) {
if (arraySizes->getDimNode(i)) {
if (arraySizes->getDimNode(i)->getAsSymbolNode())
- snprintf(buf, maxSize, "s%d", arraySizes->getDimNode(i)->getAsSymbolNode()->getId());
+ snprintf(buf, maxSize, "s%lld", arraySizes->getDimNode(i)->getAsSymbolNode()->getId());
else
snprintf(buf, maxSize, "s%p", arraySizes->getDimNode(i));
} else
diff --git a/glslang/MachineIndependent/SymbolTable.h b/glslang/MachineIndependent/SymbolTable.h
index db16c19b..54c3ca50 100644
--- a/glslang/MachineIndependent/SymbolTable.h
+++ b/glslang/MachineIndependent/SymbolTable.h
@@ -104,8 +104,8 @@ public:
virtual const TAnonMember* getAsAnonMember() const { return 0; }
virtual const TType& getType() const = 0;
virtual TType& getWritableType() = 0;
- virtual void setUniqueId(int id) { uniqueId = id; }
- virtual int getUniqueId() const { return uniqueId; }
+ virtual void setUniqueId(long long id) { uniqueId = id; }
+ virtual long long getUniqueId() const { return uniqueId; }
virtual void setExtensions(int numExts, const char* const exts[])
{
assert(extensions == 0);
@@ -130,7 +130,7 @@ protected:
TSymbol& operator=(const TSymbol&);
const TString *name;
- unsigned int uniqueId; // For cross-scope comparing during code generation
+ unsigned long long uniqueId; // For cross-scope comparing during code generation
// For tracking what extensions must be present
// (don't use if correct version/profile is present).
@@ -612,6 +612,7 @@ public:
// 3: user-shader globals
//
protected:
+ static const uint32_t LevelFlagBitOffset = 56;
static const int globalLevel = 3;
static bool isSharedLevel(int level) { return level <= 1; } // exclude all per-compile levels
static bool isBuiltInLevel(int level) { return level <= 2; } // exclude user globals
@@ -620,10 +621,12 @@ public:
bool isEmpty() { return table.size() == 0; }
bool atBuiltInLevel() { return isBuiltInLevel(currentLevel()); }
bool atGlobalLevel() { return isGlobalLevel(currentLevel()); }
- static bool isBuiltInSymbol(int uniqueId) {
- int level = uniqueId >> LevelFlagBitOffset;
+ static bool isBuiltInSymbol(long long uniqueId) {
+ int level = static_cast<int>(uniqueId >> LevelFlagBitOffset);
return isBuiltInLevel(level);
}
+ static constexpr uint64_t uniqueIdMask = (1LL << LevelFlagBitOffset) - 1;
+ static const uint32_t MaxLevelInUniqueID = 127;
void setNoBuiltInRedeclarations() { noBuiltInRedeclarations = true; }
void setSeparateNameSpaces() { separateNameSpaces = true; }
@@ -691,6 +694,16 @@ public:
return table[currentLevel()]->amend(symbol, firstNewMember);
}
+ // Update the level info in symbol's unique ID to current level
+ void amendSymbolIdLevel(TSymbol& symbol)
+ {
+ // clamp level to avoid overflow
+ uint64_t level = currentLevel() > MaxLevelInUniqueID ? MaxLevelInUniqueID : currentLevel();
+ uint64_t symbolId = symbol.getUniqueId();
+ symbolId &= uniqueIdMask;
+ symbolId |= (level << LevelFlagBitOffset);
+ symbol.setUniqueId(symbolId);
+ }
//
// To allocate an internal temporary, which will need to be uniquely
// identified by the consumer of the AST, but never need to
@@ -859,7 +872,7 @@ public:
}
}
- int getMaxSymbolId() { return uniqueId; }
+ long long getMaxSymbolId() { return uniqueId; }
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
void dump(TInfoSink& infoSink, bool complete = false) const;
#endif
@@ -876,19 +889,24 @@ public:
// Add current level in the high-bits of unique id
void updateUniqueIdLevelFlag() {
// clamp level to avoid overflow
- uint32_t level = currentLevel() > 7 ? 7 : currentLevel();
- uniqueId &= ((1 << LevelFlagBitOffset) - 1);
+ uint64_t level = currentLevel() > MaxLevelInUniqueID ? MaxLevelInUniqueID : currentLevel();
+ uniqueId &= uniqueIdMask;
uniqueId |= (level << LevelFlagBitOffset);
}
+ void overwriteUniqueId(long long id)
+ {
+ uniqueId = id;
+ updateUniqueIdLevelFlag();
+ }
+
protected:
TSymbolTable(TSymbolTable&);
TSymbolTable& operator=(TSymbolTableLevel&);
int currentLevel() const { return static_cast<int>(table.size()) - 1; }
- static const uint32_t LevelFlagBitOffset = 28;
std::vector<TSymbolTableLevel*> table;
- int uniqueId; // for unique identification in code generation
+ long long uniqueId; // for unique identification in code generation
bool noBuiltInRedeclarations;
bool separateNameSpaces;
unsigned int adoptedLevels;
diff --git a/glslang/MachineIndependent/Versions.cpp b/glslang/MachineIndependent/Versions.cpp
index 69b8863c..488c98c5 100644
--- a/glslang/MachineIndependent/Versions.cpp
+++ b/glslang/MachineIndependent/Versions.cpp
@@ -305,6 +305,7 @@ void TParseVersions::initializeExtensionBehavior()
extensionBehavior[E_GL_EXT_tessellation_point_size] = EBhDisable;
extensionBehavior[E_GL_EXT_texture_buffer] = EBhDisable;
extensionBehavior[E_GL_EXT_texture_cube_map_array] = EBhDisable;
+ extensionBehavior[E_GL_EXT_null_initializer] = EBhDisable;
// OES matching AEP
extensionBehavior[E_GL_OES_geometry_shader] = EBhDisable;
@@ -330,6 +331,7 @@ void TParseVersions::initializeExtensionBehavior()
extensionBehavior[E_GL_EXT_fragment_shading_rate] = EBhDisable;
extensionBehavior[E_GL_EXT_shader_image_int64] = EBhDisable;
extensionBehavior[E_GL_EXT_terminate_invocation] = EBhDisable;
+ extensionBehavior[E_GL_EXT_shared_memory_block] = EBhDisable;
// OVR extensions
extensionBehavior[E_GL_OVR_multiview] = EBhDisable;
@@ -408,9 +410,12 @@ void TParseVersions::getPreamble(std::string& preamble)
"#define GL_EXT_shader_non_constant_global_initializers 1\n"
;
- if (isEsProfile() && version >= 300) {
+ if (version >= 300) {
preamble += "#define GL_NV_shader_noperspective_interpolation 1\n";
}
+ if (version >= 310) {
+ preamble += "#define GL_EXT_null_initializer 1\n";
+ }
} else { // !isEsProfile()
preamble =
@@ -468,6 +473,7 @@ void TParseVersions::getPreamble(std::string& preamble)
"#define GL_EXT_demote_to_helper_invocation 1\n"
"#define GL_EXT_debug_printf 1\n"
"#define GL_EXT_fragment_shading_rate 1\n"
+ "#define GL_EXT_shared_memory_block 1\n"
// GL_KHR_shader_subgroup
"#define GL_KHR_shader_subgroup_basic 1\n"
@@ -538,6 +544,9 @@ void TParseVersions::getPreamble(std::string& preamble)
if (profile == ECompatibilityProfile)
preamble += "#define GL_compatibility_profile 1\n";
}
+ if (version >= 140) {
+ preamble += "#define GL_EXT_null_initializer 1\n";
+ }
#endif // GLSLANG_WEB
}
diff --git a/glslang/MachineIndependent/Versions.h b/glslang/MachineIndependent/Versions.h
index eb17c52e..f377973a 100644
--- a/glslang/MachineIndependent/Versions.h
+++ b/glslang/MachineIndependent/Versions.h
@@ -201,6 +201,8 @@ const char* const E_GL_EXT_blend_func_extended = "GL_EXT_blend_func
const char* const E_GL_EXT_shader_implicit_conversions = "GL_EXT_shader_implicit_conversions";
const char* const E_GL_EXT_fragment_shading_rate = "GL_EXT_fragment_shading_rate";
const char* const E_GL_EXT_shader_image_int64 = "GL_EXT_shader_image_int64";
+const char* const E_GL_EXT_null_initializer = "GL_EXT_null_initializer";
+const char* const E_GL_EXT_shared_memory_block = "GL_EXT_shared_memory_block";
// Arrays of extensions for the above viewportEXTs duplications
diff --git a/glslang/MachineIndependent/glslang.m4 b/glslang/MachineIndependent/glslang.m4
index 8884b268..4d37639d 100644
--- a/glslang/MachineIndependent/glslang.m4
+++ b/glslang/MachineIndependent/glslang.m4
@@ -3575,6 +3575,12 @@ GLSLANG_WEB_EXCLUDE_ON
parseContext.profileRequires($1.loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
$$ = $2;
}
+ | LEFT_BRACE RIGHT_BRACE {
+ const char* initFeature = "empty { } initializer";
+ parseContext.profileRequires($1.loc, EEsProfile, 0, E_GL_EXT_null_initializer, initFeature);
+ parseContext.profileRequires($1.loc, ~EEsProfile, 0, E_GL_EXT_null_initializer, initFeature);
+ $$ = parseContext.intermediate.makeAggregate($1.loc);
+ }
GLSLANG_WEB_EXCLUDE_OFF
;
diff --git a/glslang/MachineIndependent/glslang.y b/glslang/MachineIndependent/glslang.y
index 2681d48f..0b711ae2 100644
--- a/glslang/MachineIndependent/glslang.y
+++ b/glslang/MachineIndependent/glslang.y
@@ -3575,6 +3575,12 @@ initializer
parseContext.profileRequires($1.loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
$$ = $2;
}
+ | LEFT_BRACE RIGHT_BRACE {
+ const char* initFeature = "empty { } initializer";
+ parseContext.profileRequires($1.loc, EEsProfile, 0, E_GL_EXT_null_initializer, initFeature);
+ parseContext.profileRequires($1.loc, ~EEsProfile, 0, E_GL_EXT_null_initializer, initFeature);
+ $$ = parseContext.intermediate.makeAggregate($1.loc);
+ }
;
diff --git a/glslang/MachineIndependent/glslang_tab.cpp b/glslang/MachineIndependent/glslang_tab.cpp
index feecc982..da0658c2 100644
--- a/glslang/MachineIndependent/glslang_tab.cpp
+++ b/glslang/MachineIndependent/glslang_tab.cpp
@@ -1004,16 +1004,16 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 416
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 10112
+#define YYLAST 10537
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 445
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 111
/* YYNRULES -- Number of rules. */
-#define YYNRULES 616
+#define YYNRULES 617
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 764
+#define YYNSTATES 765
/* YYMAXUTOK -- Last valid token kind. */
#define YYMAXUTOK 699
@@ -1159,15 +1159,15 @@ static const yytype_int16 yyrline[] =
3305, 3310, 3315, 3320, 3325, 3330, 3336, 3342, 3348, 3354,
3361, 3368, 3374, 3380, 3386, 3392, 3398, 3404, 3411, 3416,
3432, 3437, 3442, 3450, 3450, 3461, 3461, 3471, 3474, 3487,
- 3509, 3536, 3540, 3546, 3551, 3562, 3566, 3572, 3583, 3586,
- 3593, 3597, 3598, 3604, 3605, 3606, 3607, 3608, 3609, 3610,
- 3612, 3618, 3627, 3628, 3632, 3628, 3644, 3645, 3649, 3649,
- 3656, 3656, 3670, 3673, 3681, 3689, 3700, 3701, 3705, 3709,
- 3716, 3723, 3727, 3735, 3739, 3752, 3756, 3763, 3763, 3783,
- 3786, 3792, 3804, 3816, 3820, 3827, 3827, 3842, 3842, 3858,
- 3858, 3879, 3882, 3888, 3891, 3897, 3901, 3908, 3913, 3918,
- 3925, 3928, 3932, 3937, 3941, 3951, 3955, 3964, 3967, 3971,
- 3980, 3980, 4022, 4028, 4031, 4036, 4039
+ 3509, 3536, 3540, 3546, 3551, 3562, 3566, 3572, 3578, 3589,
+ 3592, 3599, 3603, 3604, 3610, 3611, 3612, 3613, 3614, 3615,
+ 3616, 3618, 3624, 3633, 3634, 3638, 3634, 3650, 3651, 3655,
+ 3655, 3662, 3662, 3676, 3679, 3687, 3695, 3706, 3707, 3711,
+ 3715, 3722, 3729, 3733, 3741, 3745, 3758, 3762, 3769, 3769,
+ 3789, 3792, 3798, 3810, 3822, 3826, 3833, 3833, 3848, 3848,
+ 3864, 3864, 3885, 3888, 3894, 3897, 3903, 3907, 3914, 3919,
+ 3924, 3931, 3934, 3938, 3943, 3947, 3957, 3961, 3970, 3973,
+ 3977, 3986, 3986, 4028, 4034, 4037, 4042, 4045
};
#endif
@@ -1380,12 +1380,12 @@ static const yytype_int16 yytoknum[] =
};
#endif
-#define YYPACT_NINF (-732)
+#define YYPACT_NINF (-733)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
-#define YYTABLE_NINF (-559)
+#define YYTABLE_NINF (-560)
#define yytable_value_is_error(Yyn) \
0
@@ -1394,83 +1394,83 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 4303, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- 109, -732, -732, -732, -732, -732, 1, -732, -732, -732,
- -732, -732, -732, -324, -261, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, 11, 44, 22,
- 7, 6513, -332, -732, -10, -732, -732, -732, -732, 4745,
- -732, -732, -732, -732, 46, -732, -732, 767, -732, -732,
- 16, -732, 69, -5, 47, -732, -338, -732, 91, -732,
- 6513, -732, -732, -732, 6513, 72, 80, -732, 13, -732,
- 74, -732, -732, 9069, 126, -732, -732, -732, 127, 6513,
- -732, 144, -732, 17, -732, -732, 61, 7377, -732, 10,
- 1209, -732, -732, -732, -732, 126, 25, -732, 7800, 26,
- -732, 119, -732, 78, 9069, 9069, -732, 9069, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, 36, -732, -732,
- -732, 164, 65, 9492, 171, -732, 9069, -732, -732, -340,
- 173, -732, 6513, 140, 5187, -732, 6513, 9069, -732, -5,
- -732, 141, -732, -732, 124, 130, 179, 27, 117, 156,
- 158, 160, 195, 194, 20, 181, 8223, -732, 183, 182,
- -732, -732, 186, 178, 180, -732, 189, 192, 184, 8646,
- 193, 9069, 187, 188, 190, 196, 197, 129, -732, -732,
- 89, -732, 44, 199, 204, -732, -732, -732, -732, -732,
- 1651, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -376, 173, 7800, 54, 7800, -732, -732, 7800, 6513, -732,
- 161, -732, -732, -732, 70, -732, -732, 9069, 169, -732,
- -732, 9069, 207, -732, -732, -732, 9069, -732, 140, 126,
- 103, -732, -732, -732, 5629, -732, -732, -732, -732, 9069,
- 9069, 9069, 9069, 9069, 9069, 9069, 9069, 9069, 9069, 9069,
- 9069, 9069, 9069, 9069, 9069, 9069, 9069, 9069, -732, -732,
- -732, 209, 177, -732, 2093, -732, -732, -732, 2093, -732,
- 9069, -732, -732, 122, 9069, 152, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, 9069, 9069, -732, -732, -732, -732, -732, -732,
- -732, 7800, -732, 143, -732, 6071, -732, -732, 211, 208,
- -732, -732, -732, 123, 173, 140, -732, -732, -732, -732,
- -732, 124, 124, 130, 130, 179, 179, 179, 179, 27,
- 27, 117, 156, 158, 160, 195, 194, 9069, -732, 216,
- 87, -732, 2093, 3861, 174, 3419, 75, -732, 85, -732,
- -732, -732, -732, -732, 6954, -732, -732, -732, -732, 154,
- 9069, 217, 177, 191, 208, 185, 6513, 221, 223, -732,
- -732, 3861, 220, -732, -732, -732, 9069, 224, -732, -732,
- -732, 218, 2535, 9069, -732, 219, 225, 198, 226, 2977,
- -732, 227, -732, -732, 7800, -732, -732, -732, 86, 9069,
- 2535, 220, -732, -732, 2093, -732, 222, 208, -732, -732,
- 2093, 228, -732, -732
+ 4304, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ 109, -733, -733, -733, -733, -733, 3, -733, -733, -733,
+ -733, -733, -733, -322, -261, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, 19, 101, 140,
+ 79, 6514, 57, -733, 96, -733, -733, -733, -733, 4746,
+ -733, -733, -733, -733, 133, -733, -733, 768, -733, -733,
+ 16, -733, 151, -32, 125, -733, -335, -733, 158, -733,
+ 6514, -733, -733, -733, 6514, 127, 128, -733, 13, -733,
+ 72, -733, -733, 9493, 163, -733, -733, -733, 156, 6514,
+ -733, 160, -733, 20, -733, -733, 61, 7801, -733, 10,
+ 1210, -733, -733, -733, -733, 163, -330, -733, 8224, 14,
+ -733, 134, -733, 88, 9493, 9493, -733, 9493, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, 54, -733, -733,
+ -733, 166, 62, 9916, 171, -733, 9493, -733, -733, -343,
+ 173, -733, 6514, 137, 5188, -733, 6514, 9493, -733, -32,
+ -733, 141, -733, -733, 122, 93, 39, 28, 41, 157,
+ 159, 161, 192, 195, 21, 181, 8647, -733, 183, 182,
+ -733, -733, 186, 178, 179, -733, 190, 191, 184, 9070,
+ 196, 9493, 187, 188, 189, 194, 197, 131, -733, -733,
+ 99, -733, 101, 200, 205, -733, -733, -733, -733, -733,
+ 1652, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -376, 173, 8224, 36, 6955, -733, -733, 8224, 6514, -733,
+ 170, -733, -733, -733, 71, -733, -733, 9493, 176, -733,
+ -733, 9493, 208, -733, -733, -733, 9493, -733, 137, 163,
+ 106, -733, -733, -733, 5630, -733, -733, -733, -733, 9493,
+ 9493, 9493, 9493, 9493, 9493, 9493, 9493, 9493, 9493, 9493,
+ 9493, 9493, 9493, 9493, 9493, 9493, 9493, 9493, -733, -733,
+ -733, 210, 180, -733, 2094, -733, -733, -733, 2094, -733,
+ 9493, -733, -733, 108, 9493, 29, -733, -733, -733, -733,
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, 9493, 9493, -733, -733, -733, -733, -733, -733,
+ -733, 8224, -733, -733, 139, -733, 6072, -733, -733, 211,
+ 185, -733, -733, -733, 123, 173, 137, -733, -733, -733,
+ -733, -733, 122, 122, 93, 93, 39, 39, 39, 39,
+ 28, 28, 41, 157, 159, 161, 192, 195, 9493, -733,
+ 215, 85, -733, 2094, 3862, 153, 3420, 76, -733, 80,
+ -733, -733, -733, -733, -733, 7378, -733, -733, -733, -733,
+ 86, 9493, 214, 180, 216, 185, 193, 6514, 219, 222,
+ -733, -733, 3862, 220, -733, -733, -733, 9493, 224, -733,
+ -733, -733, 217, 2536, 9493, -733, 213, 226, 199, 227,
+ 2978, -733, 228, -733, -733, 8224, -733, -733, -733, 83,
+ 9493, 2536, 220, -733, -733, 2094, -733, 223, 185, -733,
+ -733, 2094, 225, -733, -733
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -1509,86 +1509,86 @@ static const yytype_int16 yydefact[] =
421, 415, 420, 422, 423, 425, 426, 427, 429, 430,
431, 433, 434, 435, 437, 438, 411, 412, 413, 424,
414, 416, 417, 418, 428, 432, 436, 507, 508, 511,
- 512, 513, 514, 509, 510, 609, 132, 520, 521, 522,
+ 512, 513, 514, 509, 510, 610, 132, 520, 521, 522,
0, 519, 161, 159, 160, 158, 0, 206, 162, 163,
164, 134, 133, 0, 190, 171, 173, 169, 175, 177,
172, 174, 170, 176, 178, 167, 168, 192, 179, 186,
187, 188, 189, 180, 181, 182, 183, 184, 185, 135,
- 136, 137, 138, 139, 140, 147, 608, 0, 610, 0,
+ 136, 137, 138, 139, 140, 147, 609, 0, 611, 0,
109, 108, 0, 120, 125, 154, 153, 151, 155, 0,
- 148, 150, 156, 130, 202, 152, 518, 0, 605, 607,
+ 148, 150, 156, 130, 202, 152, 518, 0, 606, 608,
0, 525, 0, 0, 0, 97, 0, 94, 0, 107,
0, 116, 110, 118, 0, 119, 0, 95, 126, 100,
- 0, 149, 131, 0, 195, 201, 1, 606, 0, 0,
+ 0, 149, 131, 0, 195, 201, 1, 607, 0, 0,
523, 144, 146, 0, 142, 193, 0, 0, 98, 0,
- 0, 611, 111, 115, 117, 113, 121, 112, 0, 127,
+ 0, 612, 111, 115, 117, 113, 121, 112, 0, 127,
103, 0, 101, 0, 0, 0, 9, 0, 43, 42,
44, 41, 5, 6, 7, 8, 2, 16, 14, 15,
17, 10, 11, 12, 13, 3, 18, 37, 20, 25,
26, 0, 0, 30, 0, 204, 0, 36, 34, 0,
196, 96, 0, 0, 0, 527, 0, 0, 141, 0,
191, 0, 197, 45, 49, 52, 55, 60, 63, 65,
- 67, 69, 71, 73, 75, 0, 0, 99, 0, 553,
- 562, 566, 0, 0, 0, 587, 0, 0, 0, 0,
+ 67, 69, 71, 73, 75, 0, 0, 99, 0, 554,
+ 563, 567, 0, 0, 0, 588, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 45, 78, 91,
- 0, 540, 0, 156, 130, 543, 564, 542, 550, 541,
- 0, 544, 545, 568, 546, 575, 547, 548, 583, 549,
+ 0, 541, 0, 156, 130, 544, 565, 543, 551, 542,
+ 0, 545, 546, 569, 547, 576, 548, 549, 584, 550,
0, 114, 0, 122, 0, 535, 129, 0, 0, 105,
0, 102, 38, 39, 0, 22, 23, 0, 0, 28,
27, 0, 206, 31, 33, 40, 0, 203, 0, 533,
0, 531, 526, 528, 0, 93, 145, 143, 194, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 76, 198,
- 199, 0, 0, 552, 0, 585, 598, 597, 0, 589,
- 0, 601, 599, 0, 0, 0, 582, 602, 603, 604,
- 551, 81, 82, 84, 83, 86, 87, 88, 89, 90,
- 85, 80, 0, 0, 567, 563, 565, 569, 576, 584,
- 124, 0, 538, 0, 128, 0, 106, 4, 0, 24,
- 21, 32, 205, 0, 534, 0, 529, 524, 46, 47,
- 48, 51, 50, 53, 54, 58, 59, 56, 57, 61,
- 62, 64, 66, 68, 70, 72, 74, 0, 200, 615,
- 0, 613, 554, 0, 0, 0, 0, 600, 0, 581,
- 79, 92, 123, 536, 0, 104, 19, 530, 532, 0,
- 0, 0, 0, 0, 573, 0, 0, 0, 0, 592,
- 591, 594, 560, 577, 537, 539, 0, 0, 612, 614,
- 555, 0, 0, 0, 593, 0, 0, 572, 0, 0,
- 570, 0, 77, 616, 0, 557, 586, 556, 0, 595,
- 0, 560, 559, 561, 579, 574, 0, 596, 590, 571,
- 580, 0, 588, 578
+ 199, 0, 0, 553, 0, 586, 599, 598, 0, 590,
+ 0, 602, 600, 0, 0, 0, 583, 603, 604, 605,
+ 552, 81, 82, 84, 83, 86, 87, 88, 89, 90,
+ 85, 80, 0, 0, 568, 564, 566, 570, 577, 585,
+ 124, 0, 538, 539, 0, 128, 0, 106, 4, 0,
+ 24, 21, 32, 205, 0, 534, 0, 529, 524, 46,
+ 47, 48, 51, 50, 53, 54, 58, 59, 56, 57,
+ 61, 62, 64, 66, 68, 70, 72, 74, 0, 200,
+ 616, 0, 614, 555, 0, 0, 0, 0, 601, 0,
+ 582, 79, 92, 123, 536, 0, 104, 19, 530, 532,
+ 0, 0, 0, 0, 0, 574, 0, 0, 0, 0,
+ 593, 592, 595, 561, 578, 537, 540, 0, 0, 613,
+ 615, 556, 0, 0, 0, 594, 0, 0, 573, 0,
+ 0, 571, 0, 77, 617, 0, 558, 587, 557, 0,
+ 596, 0, 561, 560, 562, 580, 575, 0, 597, 591,
+ 572, 581, 0, 589, 579
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, 9402, -732, -90, -89, -153, -92, -29, -28,
- -27, -26, -30, -25, -732, -88, -732, -101, -732, -113,
- -132, 2, -732, -732, -732, 4, -732, -732, -732, 200,
- 201, 202, -732, -732, -343, -732, -732, -732, -732, 92,
- -732, -36, -46, -732, 9, -732, 0, -67, -732, -732,
- -732, -732, 263, -732, -732, -732, -481, -142, 8, -78,
- -214, -732, -107, -204, -731, -732, -149, -732, -732, -160,
- -159, -732, -732, 212, -269, -104, -732, 45, -732, -127,
- -732, 48, -732, -732, -732, -732, 49, -732, -732, -732,
- -732, -732, -732, -732, -732, 210, -732, -732, -732, -732,
- -116
+ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+ -733, -733, 9826, -733, -105, -98, -156, -102, -29, -28,
+ -30, -27, -26, -31, -733, -82, -733, -101, -733, -109,
+ -134, 2, -733, -733, -733, 4, -733, -733, -733, 177,
+ 198, 201, -733, -733, -341, -733, -733, -733, -733, 94,
+ -733, -37, -46, -733, 9, -733, 0, -66, -733, -733,
+ -733, -733, 262, -733, -733, -733, -481, -149, 11, -79,
+ -213, -733, -108, -204, -732, -733, -148, -733, -733, -161,
+ -160, -733, -733, 202, -274, -100, -733, 44, -733, -127,
+ -733, 47, -733, -733, -733, -733, 49, -733, -733, -733,
+ -733, -733, -733, -733, -733, 221, -733, -733, -733, -733,
+ -112
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 465, 466, 467, 658, 468, 469, 470, 471, 472,
+ -1, 465, 466, 467, 659, 468, 469, 470, 471, 472,
473, 474, 527, 476, 494, 495, 496, 497, 498, 499,
- 500, 501, 502, 503, 504, 528, 687, 529, 642, 530,
+ 500, 501, 502, 503, 504, 528, 688, 529, 642, 530,
586, 531, 367, 558, 443, 532, 369, 370, 371, 401,
402, 403, 372, 373, 374, 375, 376, 377, 423, 424,
378, 379, 380, 381, 477, 426, 478, 429, 414, 415,
479, 384, 385, 386, 486, 419, 484, 485, 580, 581,
- 556, 653, 535, 536, 537, 538, 539, 614, 713, 746,
- 737, 738, 739, 747, 540, 541, 542, 543, 740, 717,
- 544, 545, 741, 761, 546, 547, 548, 693, 618, 695,
- 721, 735, 736, 549, 387, 388, 389, 398, 550, 690,
- 691
+ 556, 654, 535, 536, 537, 538, 539, 614, 714, 747,
+ 738, 739, 740, 748, 540, 541, 542, 543, 741, 718,
+ 544, 545, 742, 762, 546, 547, 548, 694, 618, 696,
+ 722, 736, 737, 549, 387, 388, 389, 398, 550, 691,
+ 692
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -1596,14 +1596,14 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 383, 745, 366, 427, 368, 584, 576, 512, 753, 382,
- 515, 428, 516, 517, 406, 393, 520, 407, 577, 745,
+ 383, 746, 366, 576, 368, 584, 427, 512, 754, 382,
+ 515, 427, 516, 517, 428, 577, 520, 393, 552, 746,
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, 655, 394, 61,
+ 52, 53, 54, 55, 56, 57, 58, 656, 394, 61,
62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
@@ -1629,454 +1629,675 @@ static const yytype_int16 yytable[] =
282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
- 312, 313, 314, 411, 564, 404, 646, 555, 650, 505,
- 652, 439, 583, 654, 391, 692, 607, 480, 596, 597,
- 715, 506, 437, 400, 427, 565, 566, 488, 411, 507,
- 395, 438, 399, 489, 404, 408, 427, 506, 551, 553,
- 421, 405, 573, 552, 557, -35, 392, 567, 715, 412,
- 382, 568, 608, 482, 598, 599, 396, 383, 382, 366,
- 418, 368, 321, 397, 422, 506, 382, 326, 327, 585,
- 405, 490, 651, 413, 405, 570, 623, 491, 625, 382,
- 657, 571, 420, 382, 694, 722, 643, 440, 611, 483,
- 441, 643, 425, 442, 560, 723, 756, 561, 382, 711,
- 534, 643, 643, 712, 430, 643, 411, 702, 644, 533,
- 600, 601, 583, 675, 676, 677, 678, 435, 482, 665,
- 482, 555, 666, 555, 659, 436, 555, 631, 632, 633,
- 634, 635, 636, 637, 638, 639, 640, 427, 643, 665,
- 661, 697, 707, 317, 318, 319, 481, 641, 589, 590,
- 591, 592, 578, 593, 483, 760, 483, 703, 646, 704,
- 725, 382, 487, 382, 559, 382, 594, 595, 643, 699,
- 643, 726, 671, 672, 569, 673, 674, 696, 679, 680,
- 574, 698, 664, 583, 506, 579, 588, 602, 603, 604,
- 605, 606, 482, 609, 612, 615, 613, 616, 619, 617,
- 755, 620, 624, 621, 626, 730, 656, 627, -36, 628,
- 534, 700, 701, -34, 660, 629, 630, -29, 482, 533,
- 555, 688, 689, 706, 643, 710, 646, 718, 483, 728,
- 731, 732, 733, -558, 743, 750, 744, 382, 749, 509,
- 754, 762, 763, 681, 709, 682, 685, 683, 727, 684,
- 714, 587, 686, 390, 483, 751, 663, 708, 719, 752,
- 758, 720, 759, 382, 734, 647, 729, 417, 648, 649,
- 0, 432, 0, 555, 433, 0, 434, 0, 714, 0,
- 431, 0, 0, 0, 534, 0, 0, 0, 534, 482,
- 748, 0, 585, 533, 0, 742, 0, 533, 0, 0,
- 0, 0, 0, 0, 0, 0, 757, 0, 0, 0,
- 0, 0, 0, 555, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 483, 0, 716, 0, 0,
- 0, 0, 0, 0, 382, 0, 0, 0, 0, 0,
- 411, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 716, 0, 0, 0, 0,
- 0, 0, 534, 534, 0, 534, 0, 0, 0, 0,
- 0, 533, 533, 0, 533, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 412, 0, 0, 0,
- 0, 534, 0, 0, 0, 382, 0, 0, 0, 0,
- 533, 0, 534, 0, 0, 0, 0, 0, 0, 534,
- 0, 533, 0, 0, 0, 0, 0, 0, 533, 0,
- 534, 0, 0, 0, 534, 0, 0, 0, 0, 533,
- 534, 0, 0, 533, 0, 0, 0, 416, 0, 533,
- 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, 59, 60,
- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
- 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
- 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
- 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
- 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
- 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
- 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
- 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
- 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
- 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
- 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
- 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
- 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
- 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
- 221, 222, 223, 224, 225, 226, 227, 228, 229, 230,
- 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
- 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
- 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
- 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
- 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
- 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
- 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
- 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
- 311, 312, 313, 314, 0, 0, 0, 0, 0, 0,
+ 312, 313, 314, 411, 404, 583, 646, 555, 564, 650,
+ 693, 653, 439, 421, 655, 505, 391, 607, 480, 596,
+ 597, 506, 437, 716, 427, 506, 594, 595, 411, 507,
+ 488, 438, 557, 404, 600, 601, 489, 422, 395, 551,
+ 553, 405, 573, 565, 566, 643, 700, 506, 392, 412,
+ 382, 716, 482, 608, 651, 598, 599, 383, 382, 366,
+ 418, 368, 321, -35, 396, 567, 382, 326, 327, 568,
+ 405, 490, 570, 406, 405, 585, 407, 491, 571, 382,
+ 623, 658, 625, 382, 695, 440, 723, 643, 441, 483,
+ 724, 442, 643, 757, 611, 400, 643, 712, 382, 643,
+ 534, 713, 643, 727, 560, 583, 411, 561, 703, 533,
+ 676, 677, 678, 679, 592, 643, 593, 482, 644, 482,
+ 397, 555, 666, 555, 643, 667, 555, 698, 660, 631,
+ 632, 633, 634, 635, 636, 637, 638, 639, 640, 666,
+ 662, 408, 708, 317, 318, 319, 589, 590, 591, 641,
+ 399, 761, 578, 704, 483, 705, 483, 672, 673, 646,
+ 413, 382, 726, 382, 420, 382, 674, 675, 680, 681,
+ 425, 430, 435, 436, 427, 481, 569, 583, 487, 559,
+ 574, 697, 579, 665, 506, 699, 588, 605, 602, 603,
+ 604, 482, 606, 609, 612, 615, 613, 616, 617, 619,
+ 620, 643, 756, 621, 626, 624, 719, 627, 628, -36,
+ 534, 701, 702, 629, -34, 657, 630, 482, -29, 533,
+ 555, 661, 689, 707, 711, 690, 729, 646, 483, 733,
+ 731, 734, 750, -559, 744, 745, 751, 382, 732, 764,
+ 509, 755, 763, 682, 684, 683, 687, 728, 685, 710,
+ 686, 433, 390, 587, 483, 715, 752, 709, 720, 664,
+ 759, 753, 760, 382, 647, 735, 721, 648, 432, 649,
+ 431, 730, 0, 0, 555, 434, 0, 0, 417, 0,
+ 0, 0, 0, 715, 534, 0, 0, 0, 534, 482,
+ 0, 0, 0, 533, 0, 749, 743, 533, 0, 585,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 758, 0, 0, 555, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 483, 717, 0, 0,
+ 0, 0, 0, 0, 0, 382, 0, 0, 0, 0,
+ 0, 411, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 717, 0, 0, 0, 0,
+ 0, 0, 0, 534, 534, 0, 534, 0, 0, 0,
+ 0, 0, 533, 533, 0, 533, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 412, 0, 0,
+ 0, 0, 534, 0, 0, 0, 382, 0, 0, 0,
+ 0, 533, 0, 534, 0, 0, 0, 0, 0, 0,
+ 534, 0, 533, 0, 0, 0, 0, 0, 0, 533,
+ 0, 534, 0, 0, 0, 534, 0, 0, 0, 0,
+ 533, 534, 0, 0, 533, 0, 0, 0, 416, 0,
+ 533, 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, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
+ 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
+ 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
+ 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
+ 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
+ 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
+ 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
+ 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
+ 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
+ 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
+ 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
+ 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
+ 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
+ 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
+ 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
+ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ 310, 311, 312, 313, 314, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 315, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 316, 317, 318, 319, 320, 0, 0, 0, 0, 0,
- 0, 0, 0, 321, 322, 323, 324, 325, 326, 327,
+ 0, 0, 0, 0, 0, 0, 0, 315, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 328, 329, 330, 331, 332,
- 333, 0, 0, 0, 0, 0, 0, 0, 0, 334,
- 0, 335, 336, 337, 338, 339, 340, 341, 342, 343,
- 344, 345, 346, 347, 348, 349, 350, 351, 352, 353,
- 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
- 364, 365, 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,
- 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
- 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
- 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
- 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
- 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
- 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
- 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
- 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
- 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
- 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
- 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
- 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
- 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
- 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
- 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
- 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
- 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
- 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
- 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
- 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
- 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
- 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
- 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
- 309, 310, 311, 312, 313, 314, 0, 0, 444, 445,
+ 0, 316, 317, 318, 319, 320, 0, 0, 0, 0,
+ 0, 0, 0, 0, 321, 322, 323, 324, 325, 326,
+ 327, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 328, 329, 330, 331,
+ 332, 333, 0, 0, 0, 0, 0, 0, 0, 0,
+ 334, 0, 335, 336, 337, 338, 339, 340, 341, 342,
+ 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
+ 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
+ 363, 364, 365, 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, 59, 60, 61, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
+ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
+ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
+ 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
+ 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
+ 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
+ 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
+ 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
+ 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
+ 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
+ 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
+ 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
+ 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
+ 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
+ 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
+ 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
+ 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
+ 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
+ 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
+ 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, 310, 311, 312, 313, 314, 0, 0, 444,
+ 445, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 446, 447,
+ 0, 508, 0, 509, 510, 0, 0, 0, 0, 511,
+ 448, 449, 450, 451, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 316, 317, 318, 319, 320, 0, 0,
+ 0, 452, 453, 454, 455, 456, 321, 322, 323, 324,
+ 325, 326, 327, 512, 513, 514, 515, 0, 516, 517,
+ 518, 519, 520, 521, 522, 523, 524, 525, 328, 329,
+ 330, 331, 332, 333, 457, 458, 459, 460, 461, 462,
+ 463, 464, 334, 526, 335, 336, 337, 338, 339, 340,
+ 341, 342, 343, 344, 345, 346, 347, 348, 349, 350,
+ 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
+ 361, 362, 363, 364, 365, 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, 59, 60, 61, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
+ 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
+ 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
+ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
+ 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
+ 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
+ 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
+ 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
+ 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
+ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
+ 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
+ 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
+ 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
+ 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
+ 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
+ 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
+ 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
+ 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
+ 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
+ 306, 307, 308, 309, 310, 311, 312, 313, 314, 0,
+ 0, 444, 445, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 446, 447, 0,
- 508, 0, 509, 510, 0, 0, 0, 0, 511, 448,
- 449, 450, 451, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 316, 317, 318, 319, 320, 0, 0, 0,
- 452, 453, 454, 455, 456, 321, 322, 323, 324, 325,
- 326, 327, 512, 513, 514, 515, 0, 516, 517, 518,
- 519, 520, 521, 522, 523, 524, 525, 328, 329, 330,
- 331, 332, 333, 457, 458, 459, 460, 461, 462, 463,
- 464, 334, 526, 335, 336, 337, 338, 339, 340, 341,
- 342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
- 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
- 362, 363, 364, 365, 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, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
- 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
- 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
- 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
- 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
- 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
- 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
- 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
- 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
- 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
- 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
- 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
- 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
- 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
- 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
- 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
- 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
- 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
- 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
- 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
- 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
- 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
- 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
- 307, 308, 309, 310, 311, 312, 313, 314, 0, 0,
- 444, 445, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 446,
- 447, 0, 508, 0, 509, 645, 0, 0, 0, 0,
- 511, 448, 449, 450, 451, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 316, 317, 318, 319, 320, 0,
- 0, 0, 452, 453, 454, 455, 456, 321, 322, 323,
- 324, 325, 326, 327, 512, 513, 514, 515, 0, 516,
- 517, 518, 519, 520, 521, 522, 523, 524, 525, 328,
- 329, 330, 331, 332, 333, 457, 458, 459, 460, 461,
- 462, 463, 464, 334, 526, 335, 336, 337, 338, 339,
- 340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
- 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
- 360, 361, 362, 363, 364, 365, 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, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
- 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
- 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
- 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
- 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
- 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
- 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
- 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
- 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
- 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
- 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
- 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
- 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
- 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
- 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
- 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
- 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
- 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
- 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
- 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 0, 0, 444, 445, 0, 0, 0, 0, 0, 0,
+ 446, 447, 0, 508, 0, 509, 645, 0, 0, 0,
+ 0, 511, 448, 449, 450, 451, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 316, 317, 318, 319, 320,
+ 0, 0, 0, 452, 453, 454, 455, 456, 321, 322,
+ 323, 324, 325, 326, 327, 512, 513, 514, 515, 0,
+ 516, 517, 518, 519, 520, 521, 522, 523, 524, 525,
+ 328, 329, 330, 331, 332, 333, 457, 458, 459, 460,
+ 461, 462, 463, 464, 334, 526, 335, 336, 337, 338,
+ 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
+ 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
+ 359, 360, 361, 362, 363, 364, 365, 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, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
+ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
+ 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
+ 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
+ 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
+ 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
+ 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
+ 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
+ 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
+ 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
+ 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
+ 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
+ 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
+ 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
+ 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
+ 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
+ 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
+ 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
+ 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
+ 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
+ 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
+ 314, 0, 0, 444, 445, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 446, 447, 0, 508, 0, 509, 0, 0, 0,
- 0, 0, 511, 448, 449, 450, 451, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 316, 317, 318, 319,
- 320, 0, 0, 0, 452, 453, 454, 455, 456, 321,
- 322, 323, 324, 325, 326, 327, 512, 513, 514, 515,
- 0, 516, 517, 518, 519, 520, 521, 522, 523, 524,
- 525, 328, 329, 330, 331, 332, 333, 457, 458, 459,
- 460, 461, 462, 463, 464, 334, 526, 335, 336, 337,
- 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
- 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
- 358, 359, 360, 361, 362, 363, 364, 365, 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, 59, 60, 61, 62,
- 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
- 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
- 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
- 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
- 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
- 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
- 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
- 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
- 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
- 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
- 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
- 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
- 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
- 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
- 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
- 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
- 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
- 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
- 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
- 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
- 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
- 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
- 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
- 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
- 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
- 313, 314, 0, 0, 444, 445, 0, 0, 0, 0,
+ 0, 0, 446, 447, 0, 508, 0, 509, 0, 0,
+ 0, 0, 0, 511, 448, 449, 450, 451, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 316, 317, 318,
+ 319, 320, 0, 0, 0, 452, 453, 454, 455, 456,
+ 321, 322, 323, 324, 325, 326, 327, 512, 513, 514,
+ 515, 0, 516, 517, 518, 519, 520, 521, 522, 523,
+ 524, 525, 328, 329, 330, 331, 332, 333, 457, 458,
+ 459, 460, 461, 462, 463, 464, 334, 526, 335, 336,
+ 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
+ 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
+ 357, 358, 359, 360, 361, 362, 363, 364, 365, 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, 59, 60, 61,
+ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
+ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
+ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
+ 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
+ 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
+ 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
+ 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
+ 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
+ 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
+ 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
+ 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
+ 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
+ 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
+ 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
+ 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
+ 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
+ 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
+ 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
+ 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
+ 312, 313, 314, 0, 0, 444, 445, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 446, 447, 0, 508, 0, 430, 0,
- 0, 0, 0, 0, 511, 448, 449, 450, 451, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 316, 317,
- 318, 319, 320, 0, 0, 0, 452, 453, 454, 455,
- 456, 321, 322, 323, 324, 325, 326, 327, 512, 513,
- 514, 515, 0, 516, 517, 518, 519, 520, 521, 522,
- 523, 524, 525, 328, 329, 330, 331, 332, 333, 457,
- 458, 459, 460, 461, 462, 463, 464, 334, 526, 335,
- 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
- 346, 347, 348, 349, 350, 351, 352, 353, 354, 355,
- 356, 357, 358, 359, 360, 361, 362, 363, 364, 365,
- 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, 59, 60,
- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
- 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
- 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
- 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
- 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
- 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
- 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
- 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
- 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
- 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
- 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
- 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
- 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
- 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
- 221, 222, 223, 224, 225, 226, 227, 228, 229, 230,
- 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
- 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
- 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
- 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
- 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
- 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
- 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
- 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
- 311, 312, 313, 314, 0, 0, 444, 445, 0, 0,
+ 0, 0, 0, 0, 446, 447, 0, 508, 0, 430,
+ 0, 0, 0, 0, 0, 511, 448, 449, 450, 451,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 316,
+ 317, 318, 319, 320, 0, 0, 0, 452, 453, 454,
+ 455, 456, 321, 322, 323, 324, 325, 326, 327, 512,
+ 513, 514, 515, 0, 516, 517, 518, 519, 520, 521,
+ 522, 523, 524, 525, 328, 329, 330, 331, 332, 333,
+ 457, 458, 459, 460, 461, 462, 463, 464, 334, 526,
+ 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
+ 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
+ 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
+ 365, 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, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
+ 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
+ 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
+ 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
+ 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
+ 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
+ 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
+ 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
+ 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
+ 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
+ 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
+ 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
+ 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
+ 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
+ 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
+ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ 310, 311, 312, 313, 314, 0, 0, 444, 445, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 446, 447, 0, 508, 0,
- 0, 0, 0, 0, 0, 0, 511, 448, 449, 450,
- 451, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 316, 317, 318, 319, 320, 0, 0, 0, 452, 453,
- 454, 455, 456, 321, 322, 323, 324, 325, 326, 327,
- 512, 513, 514, 515, 0, 516, 517, 518, 519, 520,
- 521, 522, 523, 524, 525, 328, 329, 330, 331, 332,
- 333, 457, 458, 459, 460, 461, 462, 463, 464, 334,
- 526, 335, 336, 337, 338, 339, 340, 341, 342, 343,
- 344, 345, 346, 347, 348, 349, 350, 351, 352, 353,
- 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
- 364, 365, 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,
- 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
- 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
- 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
- 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
- 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
- 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
- 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
- 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
- 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
- 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
- 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
- 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
- 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
- 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
- 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
- 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
- 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
- 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
- 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
- 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
- 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
- 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
- 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
- 309, 310, 311, 312, 313, 314, 0, 0, 444, 445,
+ 0, 0, 0, 0, 0, 0, 446, 447, 0, 508,
+ 0, 0, 0, 0, 0, 0, 0, 511, 448, 449,
+ 450, 451, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 316, 317, 318, 319, 320, 0, 0, 0, 452,
+ 453, 454, 455, 456, 321, 322, 323, 324, 325, 326,
+ 327, 512, 513, 514, 515, 0, 516, 517, 518, 519,
+ 520, 521, 522, 523, 524, 525, 328, 329, 330, 331,
+ 332, 333, 457, 458, 459, 460, 461, 462, 463, 464,
+ 334, 526, 335, 336, 337, 338, 339, 340, 341, 342,
+ 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
+ 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
+ 363, 364, 365, 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, 59, 60, 61, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
+ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
+ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
+ 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
+ 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
+ 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
+ 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
+ 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
+ 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
+ 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
+ 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
+ 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
+ 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
+ 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
+ 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
+ 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
+ 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
+ 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
+ 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
+ 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, 310, 311, 312, 313, 314, 0, 0, 444,
+ 445, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 446, 447,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 511,
+ 448, 449, 450, 451, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 316, 317, 318, 319, 320, 0, 0,
+ 0, 452, 453, 454, 455, 456, 321, 322, 323, 324,
+ 325, 326, 327, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 328, 329,
+ 330, 331, 332, 333, 457, 458, 459, 460, 461, 462,
+ 463, 464, 334, 0, 335, 336, 337, 338, 339, 340,
+ 341, 342, 343, 344, 345, 346, 347, 348, 349, 350,
+ 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
+ 361, 362, 363, 364, 365, 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, 59, 60, 61, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
+ 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
+ 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
+ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
+ 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
+ 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
+ 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
+ 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
+ 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
+ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
+ 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
+ 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
+ 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
+ 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
+ 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
+ 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
+ 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
+ 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
+ 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
+ 306, 307, 308, 309, 310, 311, 312, 313, 314, 0,
+ 0, 444, 445, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 446, 447, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 511, 448,
- 449, 450, 451, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 316, 317, 318, 319, 320, 0, 0, 0,
- 452, 453, 454, 455, 456, 321, 322, 323, 324, 325,
- 326, 327, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 328, 329, 330,
- 331, 332, 333, 457, 458, 459, 460, 461, 462, 463,
- 464, 334, 0, 335, 336, 337, 338, 339, 340, 341,
- 342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
- 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
- 362, 363, 364, 365, 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, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
- 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
- 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
- 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
- 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
- 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
- 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
- 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
- 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
- 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
- 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
- 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
- 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
- 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
- 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
- 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
- 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
- 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
- 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
- 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
- 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
- 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
- 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
- 307, 308, 309, 310, 311, 312, 313, 314, 0, 0,
- 444, 445, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 446,
- 447, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 448, 449, 450, 451, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 316, 317, 318, 319, 0, 0,
- 0, 0, 452, 453, 454, 455, 456, 321, 322, 323,
- 324, 325, 326, 327, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 328,
- 329, 330, 331, 332, 333, 457, 458, 459, 460, 461,
- 462, 463, 464, 334, 0, 335, 336, 337, 338, 339,
- 340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
- 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
- 360, 361, 362, 363, 364, 365, 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, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
- 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
- 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
- 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
- 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
- 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
- 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
- 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
- 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
- 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
- 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
- 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
- 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
- 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
- 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
- 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
- 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
- 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
- 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
- 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
+ 446, 447, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 448, 449, 450, 451, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 316, 317, 318, 319, 0,
+ 0, 0, 0, 452, 453, 454, 455, 456, 321, 322,
+ 323, 324, 325, 326, 327, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 328, 329, 330, 331, 332, 333, 457, 458, 459, 460,
+ 461, 462, 463, 464, 334, 0, 335, 336, 337, 338,
+ 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
+ 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
+ 359, 360, 361, 362, 363, 364, 365, 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, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
+ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
+ 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
+ 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
+ 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
+ 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
+ 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
+ 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
+ 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
+ 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
+ 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
+ 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
+ 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
+ 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
+ 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
+ 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
+ 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
+ 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
+ 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
+ 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
+ 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
+ 314, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 315, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 316, 317, 318,
+ 319, 320, 0, 0, 0, 0, 0, 0, 0, 0,
+ 321, 322, 323, 324, 325, 326, 327, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 328, 329, 330, 331, 332, 333, 0, 0,
+ 0, 0, 0, 0, 0, 0, 334, 0, 335, 336,
+ 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
+ 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
+ 357, 358, 359, 360, 361, 362, 363, 364, 365, 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, 59, 60, 61,
+ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
+ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
+ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
+ 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
+ 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
+ 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
+ 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
+ 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
+ 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
+ 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
+ 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
+ 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
+ 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
+ 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
+ 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
+ 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
+ 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
+ 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
+ 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
+ 312, 313, 314, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 315, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 316, 317, 318, 319,
- 320, 0, 0, 0, 0, 0, 0, 0, 0, 321,
- 322, 323, 324, 325, 326, 327, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 409, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 316,
+ 317, 318, 319, 0, 0, 0, 0, 0, 0, 0,
+ 0, 410, 321, 322, 323, 324, 325, 326, 327, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 328, 329, 330, 331, 332, 333, 0, 0, 0,
- 0, 0, 0, 0, 0, 334, 0, 335, 336, 337,
- 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
- 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
- 358, 359, 360, 361, 362, 363, 364, 365, 1, 2,
+ 0, 0, 0, 0, 328, 329, 330, 331, 332, 333,
+ 0, 0, 0, 0, 0, 0, 0, 0, 334, 0,
+ 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
+ 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
+ 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
+ 365, 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, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
+ 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
+ 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
+ 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
+ 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
+ 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
+ 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
+ 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
+ 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
+ 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
+ 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
+ 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
+ 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
+ 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
+ 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
+ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ 310, 311, 312, 313, 314, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 582, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 316, 317, 318, 319, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 321, 322, 323, 324, 325, 326,
+ 327, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 328, 329, 330, 331,
+ 332, 333, 0, 0, 0, 0, 0, 0, 0, 0,
+ 334, 0, 335, 336, 337, 338, 339, 340, 341, 342,
+ 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
+ 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
+ 363, 364, 365, 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, 59, 60, 61, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
+ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
+ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
+ 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
+ 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
+ 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
+ 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
+ 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
+ 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
+ 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
+ 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
+ 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
+ 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
+ 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
+ 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
+ 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
+ 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
+ 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
+ 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
+ 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, 310, 311, 312, 313, 314, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 668, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 316, 317, 318, 319, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 321, 322, 323, 324,
+ 325, 326, 327, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 328, 329,
+ 330, 331, 332, 333, 0, 0, 0, 0, 0, 0,
+ 0, 0, 334, 0, 335, 336, 337, 338, 339, 340,
+ 341, 342, 343, 344, 345, 346, 347, 348, 349, 350,
+ 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
+ 361, 362, 363, 364, 365, 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, 59, 60, 61, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
+ 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
+ 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
+ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
+ 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
+ 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
+ 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
+ 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
+ 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
+ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
+ 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
+ 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
+ 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
+ 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
+ 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
+ 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
+ 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
+ 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
+ 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
+ 306, 307, 308, 309, 310, 311, 312, 313, 314, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 706, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 316, 317, 318, 319, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 321, 322,
+ 323, 324, 325, 326, 327, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 328, 329, 330, 331, 332, 333, 0, 0, 0, 0,
+ 0, 0, 0, 0, 334, 0, 335, 336, 337, 338,
+ 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
+ 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
+ 359, 360, 361, 362, 363, 364, 365, 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, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
+ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
+ 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
+ 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
+ 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
+ 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
+ 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
+ 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
+ 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
+ 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
+ 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
+ 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
+ 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
+ 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
+ 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
+ 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
+ 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
+ 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
+ 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
+ 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
+ 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
+ 314, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 316, 317, 318,
+ 319, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 321, 322, 323, 324, 325, 326, 327, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 328, 329, 330, 331, 332, 333, 0, 0,
+ 0, 0, 0, 0, 0, 0, 334, 0, 335, 336,
+ 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
+ 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
+ 357, 358, 359, 360, 361, 362, 363, 364, 365, 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, 59, 60, 61, 62,
+ 53, 54, 55, 56, 57, 58, 0, 0, 61, 62,
63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
@@ -2102,114 +2323,66 @@ static const yytype_int16 yytable[] =
283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
- 313, 314, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 409, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 316, 317,
- 318, 319, 0, 0, 0, 0, 0, 0, 0, 0,
- 410, 321, 322, 323, 324, 325, 326, 327, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 328, 329, 330, 331, 332, 333, 0,
- 0, 0, 0, 0, 0, 0, 0, 334, 0, 335,
- 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
- 346, 347, 348, 349, 350, 351, 352, 353, 354, 355,
- 356, 357, 358, 359, 360, 361, 362, 363, 364, 365,
- 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, 59, 60,
- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
- 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
- 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
- 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
- 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
- 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
- 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
- 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
- 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
- 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
- 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
- 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
- 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
- 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
- 221, 222, 223, 224, 225, 226, 227, 228, 229, 230,
- 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
- 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
- 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
- 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
- 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
- 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
- 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
- 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
- 311, 312, 313, 314, 0, 0, 0, 0, 0, 0,
+ 313, 314, 0, 0, 444, 445, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 446, 447, 0, 0, 0, 554, 652,
+ 0, 0, 0, 0, 0, 448, 449, 450, 451, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 582, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 452, 453, 454, 455,
+ 456, 321, 0, 0, 0, 0, 326, 327, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 316, 317, 318, 319, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 321, 322, 323, 324, 325, 326, 327,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 457,
+ 458, 459, 460, 461, 462, 463, 464, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 328, 329, 330, 331, 332,
- 333, 0, 0, 0, 0, 0, 0, 0, 0, 334,
- 0, 335, 336, 337, 338, 339, 340, 341, 342, 343,
- 344, 345, 346, 347, 348, 349, 350, 351, 352, 353,
- 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
- 364, 365, 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,
- 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
- 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
- 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
- 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
- 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
- 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
- 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
- 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
- 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
- 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
- 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
- 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
- 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
- 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
- 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
- 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
- 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
- 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
- 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
- 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
- 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
- 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
- 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
- 309, 310, 311, 312, 313, 314, 0, 0, 0, 0,
+ 0, 347, 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, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
+ 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
+ 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
+ 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
+ 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
+ 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
+ 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
+ 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
+ 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
+ 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
+ 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
+ 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
+ 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
+ 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
+ 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
+ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ 310, 311, 312, 313, 314, 0, 0, 444, 445, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 446, 447, 0, 0,
+ 0, 554, 725, 0, 0, 0, 0, 0, 448, 449,
+ 450, 451, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 452,
+ 453, 454, 455, 456, 321, 0, 0, 0, 0, 326,
+ 327, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 667, 0, 0, 0, 0, 0, 0,
+ 0, 0, 457, 458, 459, 460, 461, 462, 463, 464,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 316, 317, 318, 319, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 321, 322, 323, 324, 325,
- 326, 327, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 328, 329, 330,
- 331, 332, 333, 0, 0, 0, 0, 0, 0, 0,
- 0, 334, 0, 335, 336, 337, 338, 339, 340, 341,
- 342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
- 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
- 362, 363, 364, 365, 1, 2, 3, 4, 5, 6,
+ 0, 0, 0, 0, 347, 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, 59, 60, 61, 62, 63, 64, 65, 66,
+ 57, 58, 0, 0, 61, 62, 63, 64, 65, 66,
67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
@@ -2235,63 +2408,17 @@ static const yytype_int16 yytable[] =
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
307, 308, 309, 310, 311, 312, 313, 314, 0, 0,
+ 444, 445, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 446,
+ 447, 0, 0, 492, 0, 0, 0, 0, 0, 0,
+ 0, 448, 449, 450, 451, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 452, 453, 454, 455, 456, 321, 0, 0,
+ 0, 0, 326, 327, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 705, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 316, 317, 318, 319, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 321, 322, 323,
- 324, 325, 326, 327, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 328,
- 329, 330, 331, 332, 333, 0, 0, 0, 0, 0,
- 0, 0, 0, 334, 0, 335, 336, 337, 338, 339,
- 340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
- 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
- 360, 361, 362, 363, 364, 365, 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, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
- 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
- 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
- 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
- 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
- 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
- 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
- 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
- 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
- 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
- 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
- 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
- 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
- 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
- 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
- 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
- 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
- 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
- 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
- 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 316, 317, 318, 319,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 321,
- 322, 323, 324, 325, 326, 327, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 328, 329, 330, 331, 332, 333, 0, 0, 0,
- 0, 0, 0, 0, 0, 334, 0, 335, 336, 337,
- 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
- 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
- 358, 359, 360, 361, 362, 363, 364, 365, 2, 3,
+ 0, 0, 0, 0, 0, 457, 458, 459, 460, 461,
+ 462, 463, 464, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 347, 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,
@@ -2325,7 +2452,7 @@ static const yytype_int16 yytable[] =
304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
314, 0, 0, 444, 445, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 446, 447, 0, 0, 0, 554, 724, 0,
+ 0, 0, 446, 447, 0, 0, 0, 554, 0, 0,
0, 0, 0, 0, 448, 449, 450, 451, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 452, 453, 454, 455, 456,
@@ -2367,7 +2494,7 @@ static const yytype_int16 yytable[] =
301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
311, 312, 313, 314, 0, 0, 444, 445, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 446, 447, 0, 0, 492,
+ 0, 0, 0, 0, 0, 446, 447, 0, 0, 610,
0, 0, 0, 0, 0, 0, 0, 448, 449, 450,
451, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 452, 453,
@@ -2410,7 +2537,7 @@ static const yytype_int16 yytable[] =
308, 309, 310, 311, 312, 313, 314, 0, 0, 444,
445, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 446, 447,
- 0, 0, 0, 554, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 622,
448, 449, 450, 451, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 452, 453, 454, 455, 456, 321, 0, 0, 0,
@@ -2452,7 +2579,7 @@ static const yytype_int16 yytable[] =
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
0, 0, 444, 445, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 446, 447, 0, 0, 610, 0, 0, 0, 0,
+ 0, 446, 447, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 448, 449, 450, 451, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 452, 453, 454, 455, 456, 321,
@@ -2492,66 +2619,257 @@ static const yytype_int16 yytable[] =
282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
- 312, 313, 314, 0, 0, 444, 445, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 446, 447, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 622, 448, 449, 450, 451,
+ 312, 313, 314, 0, 0, 444, 445, 0, 0, 475,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 493, 446, 447, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 448, 449, 450, 451,
+ 562, 563, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 452, 453, 454,
- 455, 456, 321, 0, 0, 0, 0, 326, 327, 0,
+ 455, 456, 321, 0, 0, 0, 0, 326, 572, 0,
+ 0, 0, 575, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 493, 0, 0, 0, 0, 0, 0,
+ 457, 458, 459, 460, 461, 462, 463, 464, 0, 0,
+ 0, 0, 493, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 347, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 663, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 669, 670, 671, 493, 493,
+ 493, 493, 493, 493, 493, 493, 493, 493, 493, 493,
+ 493, 493, 493, 493, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 457, 458, 459, 460, 461, 462, 463, 464, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 347, 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, 61, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
- 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
- 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
- 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
- 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
- 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
- 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
- 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
- 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
- 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
- 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
- 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
- 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
- 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
- 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
- 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
- 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
- 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
- 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
- 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
- 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
- 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
- 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
- 309, 310, 311, 312, 313, 314, 0, 0, 444, 445,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 446, 447, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 448,
- 449, 450, 451, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 452, 453, 454, 455, 456, 321, 0, 0, 0, 0,
- 326, 327, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 457, 458, 459, 460, 461, 462, 463,
- 464, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 347, 2, 3, 4, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 493
+};
+
+static const yytype_int16 yycheck[] =
+{
+ 0, 733, 0, 346, 0, 486, 341, 383, 740, 0,
+ 386, 341, 388, 389, 349, 358, 392, 339, 348, 751,
+ 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, 558, 339, 63,
+ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
+ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
+ 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
+ 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
+ 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
+ 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
+ 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
+ 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
+ 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
+ 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
+ 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
+ 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
+ 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
+ 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
+ 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
+ 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
+ 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
+ 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
+ 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
+ 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
+ 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
+ 314, 315, 316, 379, 371, 484, 540, 438, 447, 552,
+ 614, 554, 408, 375, 557, 427, 343, 326, 414, 321,
+ 322, 341, 339, 694, 341, 341, 317, 318, 404, 349,
+ 340, 348, 348, 400, 323, 324, 346, 399, 349, 435,
+ 436, 371, 473, 319, 320, 346, 347, 341, 375, 379,
+ 371, 722, 419, 362, 348, 357, 358, 387, 379, 387,
+ 390, 387, 376, 339, 375, 341, 387, 381, 382, 345,
+ 400, 340, 340, 346, 404, 487, 349, 346, 346, 400,
+ 519, 340, 521, 404, 618, 343, 340, 346, 346, 419,
+ 340, 349, 346, 340, 506, 346, 346, 342, 419, 346,
+ 430, 346, 346, 347, 346, 584, 482, 349, 651, 430,
+ 596, 597, 598, 599, 351, 346, 353, 484, 349, 486,
+ 349, 552, 346, 554, 346, 349, 557, 349, 567, 328,
+ 329, 330, 331, 332, 333, 334, 335, 336, 337, 346,
+ 571, 375, 349, 364, 365, 366, 354, 355, 356, 348,
+ 340, 755, 482, 344, 484, 346, 486, 592, 593, 693,
+ 357, 482, 705, 484, 343, 486, 594, 595, 600, 601,
+ 375, 343, 375, 375, 341, 349, 340, 656, 348, 375,
+ 339, 620, 375, 579, 341, 624, 375, 325, 361, 360,
+ 359, 558, 327, 342, 341, 339, 344, 349, 349, 339,
+ 339, 346, 745, 349, 347, 339, 383, 349, 349, 339,
+ 540, 642, 643, 349, 339, 375, 349, 584, 340, 540,
+ 651, 375, 342, 342, 339, 375, 342, 761, 558, 340,
+ 344, 339, 349, 343, 340, 348, 340, 558, 375, 344,
+ 343, 343, 349, 602, 604, 603, 607, 711, 605, 688,
+ 606, 404, 320, 489, 584, 694, 387, 666, 696, 578,
+ 751, 739, 752, 584, 550, 722, 696, 550, 400, 550,
+ 398, 713, -1, -1, 705, 404, -1, -1, 387, -1,
+ -1, -1, -1, 722, 614, -1, -1, -1, 618, 656,
+ -1, -1, -1, 614, -1, 734, 727, 618, -1, 711,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 750, -1, -1, 745, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 656, 694, -1, -1,
+ -1, -1, -1, -1, -1, 656, -1, -1, -1, -1,
+ -1, 717, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 722, -1, -1, -1, -1,
+ -1, -1, -1, 693, 694, -1, 696, -1, -1, -1,
+ -1, -1, 693, 694, -1, 696, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 717, -1, -1,
+ -1, -1, 722, -1, -1, -1, 717, -1, -1, -1,
+ -1, 722, -1, 733, -1, -1, -1, -1, -1, -1,
+ 740, -1, 733, -1, -1, -1, -1, -1, -1, 740,
+ -1, 751, -1, -1, -1, 755, -1, -1, -1, -1,
+ 751, 761, -1, -1, 755, -1, -1, -1, 0, -1,
+ 761, 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, 61,
+ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
+ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
+ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
+ 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
+ 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
+ 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
+ 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
+ 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
+ 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
+ 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
+ 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
+ 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
+ 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
+ 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
+ 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
+ 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
+ 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
+ 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
+ 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
+ 312, 313, 314, 315, 316, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 349, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 363, 364, 365, 366, 367, -1, -1, -1, -1,
+ -1, -1, -1, -1, 376, 377, 378, 379, 380, 381,
+ 382, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 398, 399, 400, 401,
+ 402, 403, -1, -1, -1, -1, -1, -1, -1, -1,
+ 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
+ 422, 423, 424, 425, 426, 427, 428, 429, 430, 431,
+ 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
+ 442, 443, 444, 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, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
+ 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
+ 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
+ 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
+ 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
+ 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
+ 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
+ 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
+ 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
+ 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
+ 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
+ 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
+ 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
+ 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
+ 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
+ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ 310, 311, 312, 313, 314, 315, 316, -1, -1, 319,
+ 320, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 338, 339,
+ -1, 341, -1, 343, 344, -1, -1, -1, -1, 349,
+ 350, 351, 352, 353, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 363, 364, 365, 366, 367, -1, -1,
+ -1, 371, 372, 373, 374, 375, 376, 377, 378, 379,
+ 380, 381, 382, 383, 384, 385, 386, -1, 388, 389,
+ 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
+ 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
+ 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
+ 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
+ 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
+ 440, 441, 442, 443, 444, 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, 61, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
+ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
+ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
+ 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
+ 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
+ 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
+ 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
+ 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
+ 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
+ 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
+ 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
+ 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
+ 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
+ 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
+ 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
+ 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
+ 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
+ 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
+ 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
+ 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, 310, 311, 312, 313, 314, 315, 316, -1,
+ -1, 319, 320, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 338, 339, -1, 341, -1, 343, 344, -1, -1, -1,
+ -1, 349, 350, 351, 352, 353, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 363, 364, 365, 366, 367,
+ -1, -1, -1, 371, 372, 373, 374, 375, 376, 377,
+ 378, 379, 380, 381, 382, 383, 384, 385, 386, -1,
+ 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
+ 398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
+ 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
+ 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
+ 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
+ 438, 439, 440, 441, 442, 443, 444, 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, 61, 62, 63, 64, 65,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
@@ -2576,50 +2894,26 @@ static const yytype_int16 yytable[] =
276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
- 306, 307, 308, 309, 310, 311, 312, 313, 314, 0,
- 0, 444, 445, 0, 0, 475, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 493,
- 446, 447, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 448, 449, 450, 451, 562, 563, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 452, 453, 454, 455, 456, 321, 0,
- 0, 0, 0, 326, 572, 0, 0, 0, 575, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 493,
- 0, 0, 0, 0, 0, 0, 457, 458, 459, 460,
- 461, 462, 463, 464, 0, 0, 0, 0, 493, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 347, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 662, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 668, 669, 670, 493, 493, 493, 493, 493, 493,
- 493, 493, 493, 493, 493, 493, 493, 493, 493, 493,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 493
-};
-
-static const yytype_int16 yycheck[] =
-{
- 0, 732, 0, 341, 0, 486, 346, 383, 739, 0,
- 386, 349, 388, 389, 346, 339, 392, 349, 358, 750,
+ 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
+ 316, -1, -1, 319, 320, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 338, 339, -1, 341, -1, 343, -1, -1,
+ -1, -1, -1, 349, 350, 351, 352, 353, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 363, 364, 365,
+ 366, 367, -1, -1, -1, 371, 372, 373, 374, 375,
+ 376, 377, 378, 379, 380, 381, 382, 383, 384, 385,
+ 386, -1, 388, 389, 390, 391, 392, 393, 394, 395,
+ 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
+ 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
+ 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
+ 426, 427, 428, 429, 430, 431, 432, 433, 434, 435,
+ 436, 437, 438, 439, 440, 441, 442, 443, 444, 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, 558, 339, 63,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
@@ -2645,454 +2939,423 @@ static const yytype_int16 yycheck[] =
284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
- 314, 315, 316, 379, 447, 371, 540, 438, 552, 427,
- 554, 408, 484, 557, 343, 614, 326, 414, 321, 322,
- 693, 341, 339, 346, 341, 319, 320, 340, 404, 349,
- 349, 348, 340, 346, 400, 375, 341, 341, 435, 436,
- 375, 371, 473, 348, 348, 339, 375, 341, 721, 379,
- 371, 345, 362, 419, 357, 358, 375, 387, 379, 387,
- 390, 387, 376, 349, 399, 341, 387, 381, 382, 487,
- 400, 340, 348, 357, 404, 340, 519, 346, 521, 400,
- 340, 346, 343, 404, 618, 340, 346, 343, 506, 419,
- 346, 346, 375, 349, 346, 340, 340, 349, 419, 342,
- 430, 346, 346, 346, 343, 346, 482, 651, 349, 430,
- 323, 324, 584, 596, 597, 598, 599, 375, 484, 346,
- 486, 552, 349, 554, 567, 375, 557, 328, 329, 330,
- 331, 332, 333, 334, 335, 336, 337, 341, 346, 346,
- 571, 349, 349, 364, 365, 366, 349, 348, 354, 355,
- 356, 351, 482, 353, 484, 754, 486, 344, 692, 346,
- 704, 482, 348, 484, 375, 486, 317, 318, 346, 347,
- 346, 347, 592, 593, 340, 594, 595, 620, 600, 601,
- 339, 624, 579, 655, 341, 375, 375, 361, 360, 359,
- 325, 327, 558, 342, 341, 339, 344, 349, 339, 349,
- 744, 339, 339, 349, 347, 344, 375, 349, 339, 349,
- 540, 642, 643, 339, 375, 349, 349, 340, 584, 540,
- 651, 342, 375, 342, 346, 339, 760, 383, 558, 342,
- 375, 340, 339, 343, 340, 340, 348, 558, 349, 343,
- 343, 349, 344, 602, 687, 603, 606, 604, 710, 605,
- 693, 489, 607, 320, 584, 387, 578, 665, 695, 738,
- 750, 695, 751, 584, 721, 550, 712, 387, 550, 550,
- -1, 400, -1, 704, 404, -1, 404, -1, 721, -1,
- 398, -1, -1, -1, 614, -1, -1, -1, 618, 655,
- 733, -1, 710, 614, -1, 726, -1, 618, -1, -1,
- -1, -1, -1, -1, -1, -1, 749, -1, -1, -1,
- -1, -1, -1, 744, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 655, -1, 693, -1, -1,
- -1, -1, -1, -1, 655, -1, -1, -1, -1, -1,
- 716, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 721, -1, -1, -1, -1,
- -1, -1, 692, 693, -1, 695, -1, -1, -1, -1,
- -1, 692, 693, -1, 695, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 716, -1, -1, -1,
- -1, 721, -1, -1, -1, 716, -1, -1, -1, -1,
- 721, -1, 732, -1, -1, -1, -1, -1, -1, 739,
- -1, 732, -1, -1, -1, -1, -1, -1, 739, -1,
- 750, -1, -1, -1, 754, -1, -1, -1, -1, 750,
- 760, -1, -1, 754, -1, -1, -1, 0, -1, 760,
- 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, 61, 62,
- 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
- 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
- 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
- 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
- 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
- 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
- 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
- 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
- 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
- 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
- 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
- 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
- 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
- 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
- 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
- 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
- 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
- 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
- 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
- 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
- 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
- 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
- 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
- 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
- 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
- 313, 314, 315, 316, -1, -1, -1, -1, -1, -1,
+ 314, 315, 316, -1, -1, 319, 320, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 338, 339, -1, 341, -1, 343,
+ -1, -1, -1, -1, -1, 349, 350, 351, 352, 353,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 363,
+ 364, 365, 366, 367, -1, -1, -1, 371, 372, 373,
+ 374, 375, 376, 377, 378, 379, 380, 381, 382, 383,
+ 384, 385, 386, -1, 388, 389, 390, 391, 392, 393,
+ 394, 395, 396, 397, 398, 399, 400, 401, 402, 403,
+ 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
+ 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
+ 424, 425, 426, 427, 428, 429, 430, 431, 432, 433,
+ 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
+ 444, 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, 61,
+ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
+ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
+ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
+ 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
+ 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
+ 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
+ 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
+ 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
+ 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
+ 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
+ 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
+ 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
+ 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
+ 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
+ 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
+ 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
+ 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
+ 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
+ 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
+ 312, 313, 314, 315, 316, -1, -1, 319, 320, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 349, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 338, 339, -1, 341,
+ -1, -1, -1, -1, -1, -1, -1, 349, 350, 351,
+ 352, 353, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 363, 364, 365, 366, 367, -1, -1, -1, 371,
+ 372, 373, 374, 375, 376, 377, 378, 379, 380, 381,
+ 382, 383, 384, 385, 386, -1, 388, 389, 390, 391,
+ 392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
+ 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
+ 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
+ 422, 423, 424, 425, 426, 427, 428, 429, 430, 431,
+ 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
+ 442, 443, 444, 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, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
+ 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
+ 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
+ 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
+ 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
+ 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
+ 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
+ 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
+ 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
+ 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
+ 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
+ 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
+ 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
+ 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
+ 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
+ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ 310, 311, 312, 313, 314, 315, 316, -1, -1, 319,
+ 320, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 338, 339,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 349,
+ 350, 351, 352, 353, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 363, 364, 365, 366, 367, -1, -1,
+ -1, 371, 372, 373, 374, 375, 376, 377, 378, 379,
+ 380, 381, 382, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 398, 399,
+ 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
+ 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
+ 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
+ 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
+ 440, 441, 442, 443, 444, 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, 61, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
+ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
+ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
+ 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
+ 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
+ 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
+ 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
+ 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
+ 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
+ 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
+ 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
+ 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
+ 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
+ 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
+ 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
+ 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
+ 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
+ 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
+ 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
+ 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, 310, 311, 312, 313, 314, 315, 316, -1,
+ -1, 319, 320, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 363, 364, 365, 366, 367, -1, -1, -1, -1, -1,
- -1, -1, -1, 376, 377, 378, 379, 380, 381, 382,
+ 338, 339, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 350, 351, 352, 353, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 363, 364, 365, 366, -1,
+ -1, -1, -1, 371, 372, 373, 374, 375, 376, 377,
+ 378, 379, 380, 381, 382, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 398, 399, 400, 401, 402,
- 403, -1, -1, -1, -1, -1, -1, -1, -1, 412,
- -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
- 423, 424, 425, 426, 427, 428, 429, 430, 431, 432,
- 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
- 443, 444, 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,
- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
- 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
- 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
- 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
- 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
- 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
- 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
- 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
- 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
- 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
- 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
- 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
- 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
- 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
- 221, 222, 223, 224, 225, 226, 227, 228, 229, 230,
- 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
- 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
- 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
- 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
- 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
- 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
- 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
- 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
- 311, 312, 313, 314, 315, 316, -1, -1, 319, 320,
+ 398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
+ 408, 409, 410, 411, 412, -1, 414, 415, 416, 417,
+ 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
+ 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
+ 438, 439, 440, 441, 442, 443, 444, 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, 61, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
+ 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
+ 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
+ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
+ 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
+ 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
+ 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
+ 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
+ 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
+ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
+ 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
+ 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
+ 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
+ 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
+ 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
+ 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
+ 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
+ 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
+ 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
+ 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
+ 316, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 338, 339, -1,
- 341, -1, 343, 344, -1, -1, -1, -1, 349, 350,
- 351, 352, 353, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 363, 364, 365, 366, 367, -1, -1, -1,
- 371, 372, 373, 374, 375, 376, 377, 378, 379, 380,
- 381, 382, 383, 384, 385, 386, -1, 388, 389, 390,
- 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
- 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
- 411, 412, 413, 414, 415, 416, 417, 418, 419, 420,
- 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
- 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
- 441, 442, 443, 444, 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, 61, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
- 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
- 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
- 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
- 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
- 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
- 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
- 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
- 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
- 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
- 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
- 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
- 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
- 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
- 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
- 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
- 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
- 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
- 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
- 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
- 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
- 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
- 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
- 309, 310, 311, 312, 313, 314, 315, 316, -1, -1,
- 319, 320, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 338,
- 339, -1, 341, -1, 343, 344, -1, -1, -1, -1,
- 349, 350, 351, 352, 353, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 363, 364, 365, 366, 367, -1,
- -1, -1, 371, 372, 373, 374, 375, 376, 377, 378,
- 379, 380, 381, 382, 383, 384, 385, 386, -1, 388,
- 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
- 399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
- 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
- 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
- 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
- 439, 440, 441, 442, 443, 444, 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, 61, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
- 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
- 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
- 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
- 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
- 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
- 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
- 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
- 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
- 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
- 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
- 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
- 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
- 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
- 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
- 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
- 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
- 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
- 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
- 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
- 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
- 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
- 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
- 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
- -1, -1, 319, 320, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 338, 339, -1, 341, -1, 343, -1, -1, -1,
- -1, -1, 349, 350, 351, 352, 353, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 363, 364, 365, 366,
- 367, -1, -1, -1, 371, 372, 373, 374, 375, 376,
- 377, 378, 379, 380, 381, 382, 383, 384, 385, 386,
- -1, 388, 389, 390, 391, 392, 393, 394, 395, 396,
- 397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
- 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
- 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
- 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
- 437, 438, 439, 440, 441, 442, 443, 444, 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, 61, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
- 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
- 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
- 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
- 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
- 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
- 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
- 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
- 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
- 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
- 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
- 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
- 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
- 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
- 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
- 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
- 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
- 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
- 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
- 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 316, -1, -1, 319, 320, -1, -1, -1, -1,
+ -1, -1, -1, 349, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 363, 364, 365,
+ 366, 367, -1, -1, -1, -1, -1, -1, -1, -1,
+ 376, 377, 378, 379, 380, 381, 382, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 338, 339, -1, 341, -1, 343, -1,
- -1, -1, -1, -1, 349, 350, 351, 352, 353, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 363, 364,
- 365, 366, 367, -1, -1, -1, 371, 372, 373, 374,
- 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
- 385, 386, -1, 388, 389, 390, 391, 392, 393, 394,
- 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
- 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
- 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
- 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
- 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
- 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, 61, 62,
- 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
- 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
- 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
- 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
- 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
- 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
- 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
- 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
- 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
- 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
- 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
- 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
- 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
- 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
- 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
- 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
- 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
- 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
- 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
- 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
- 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
- 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
- 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
- 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
- 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
- 313, 314, 315, 316, -1, -1, 319, 320, -1, -1,
+ -1, -1, 398, 399, 400, 401, 402, 403, -1, -1,
+ -1, -1, -1, -1, -1, -1, 412, -1, 414, 415,
+ 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
+ 426, 427, 428, 429, 430, 431, 432, 433, 434, 435,
+ 436, 437, 438, 439, 440, 441, 442, 443, 444, 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, 61, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
+ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
+ 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
+ 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
+ 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
+ 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
+ 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
+ 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
+ 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
+ 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
+ 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
+ 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
+ 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
+ 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
+ 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
+ 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
+ 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
+ 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
+ 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
+ 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
+ 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
+ 314, 315, 316, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 338, 339, -1, 341, -1,
- -1, -1, -1, -1, -1, -1, 349, 350, 351, 352,
- 353, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 363, 364, 365, 366, 367, -1, -1, -1, 371, 372,
- 373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
- 383, 384, 385, 386, -1, 388, 389, 390, 391, 392,
- 393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
- 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
- 413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
- 423, 424, 425, 426, 427, 428, 429, 430, 431, 432,
- 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
- 443, 444, 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,
- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
- 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
- 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
- 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
- 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
- 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
- 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
- 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
- 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
- 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
- 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
- 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
- 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
- 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
- 221, 222, 223, 224, 225, 226, 227, 228, 229, 230,
- 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
- 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
- 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
- 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
- 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
- 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
- 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
- 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
- 311, 312, 313, 314, 315, 316, -1, -1, 319, 320,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 338, 339, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 349, 350,
- 351, 352, 353, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 363, 364, 365, 366, 367, -1, -1, -1,
- 371, 372, 373, 374, 375, 376, 377, 378, 379, 380,
- 381, 382, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 398, 399, 400,
- 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
- 411, 412, -1, 414, 415, 416, 417, 418, 419, 420,
- 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
- 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
- 441, 442, 443, 444, 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, 61, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
- 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
- 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
- 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
- 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
- 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
- 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
- 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
- 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
- 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
- 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
- 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
- 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
- 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
- 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
- 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
- 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
- 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
- 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
- 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
- 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
- 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
- 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
- 309, 310, 311, 312, 313, 314, 315, 316, -1, -1,
- 319, 320, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 338,
- 339, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 350, 351, 352, 353, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 363, 364, 365, 366, -1, -1,
- -1, -1, 371, 372, 373, 374, 375, 376, 377, 378,
- 379, 380, 381, 382, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 398,
- 399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
- 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
- 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
- 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
- 439, 440, 441, 442, 443, 444, 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, 61, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
- 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
- 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
- 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
- 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
- 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
- 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
- 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
- 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
- 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
- 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
- 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
- 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
- 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
- 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
- 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
- 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
- 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
- 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
- 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
- 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
- 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
- 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
- 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
+ -1, -1, -1, -1, -1, 349, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 363,
+ 364, 365, 366, -1, -1, -1, -1, -1, -1, -1,
+ -1, 375, 376, 377, 378, 379, 380, 381, 382, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 398, 399, 400, 401, 402, 403,
+ -1, -1, -1, -1, -1, -1, -1, -1, 412, -1,
+ 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
+ 424, 425, 426, 427, 428, 429, 430, 431, 432, 433,
+ 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
+ 444, 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, 61,
+ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
+ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
+ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
+ 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
+ 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
+ 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
+ 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
+ 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
+ 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
+ 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
+ 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
+ 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
+ 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
+ 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
+ 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
+ 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
+ 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
+ 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
+ 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
+ 312, 313, 314, 315, 316, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 344, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 363, 364, 365, 366, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 376, 377, 378, 379, 380, 381,
+ 382, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 398, 399, 400, 401,
+ 402, 403, -1, -1, -1, -1, -1, -1, -1, -1,
+ 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
+ 422, 423, 424, 425, 426, 427, 428, 429, 430, 431,
+ 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
+ 442, 443, 444, 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, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
+ 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
+ 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
+ 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
+ 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
+ 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
+ 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
+ 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
+ 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
+ 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
+ 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
+ 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
+ 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
+ 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
+ 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
+ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ 310, 311, 312, 313, 314, 315, 316, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 349, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 363, 364, 365, 366,
- 367, -1, -1, -1, -1, -1, -1, -1, -1, 376,
- 377, 378, 379, 380, 381, 382, -1, -1, -1, -1,
+ -1, -1, -1, -1, 344, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 398, 399, 400, 401, 402, 403, -1, -1, -1,
- -1, -1, -1, -1, -1, 412, -1, 414, 415, 416,
- 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
- 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
- 437, 438, 439, 440, 441, 442, 443, 444, 3, 4,
+ -1, -1, -1, 363, 364, 365, 366, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 376, 377, 378, 379,
+ 380, 381, 382, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 398, 399,
+ 400, 401, 402, 403, -1, -1, -1, -1, -1, -1,
+ -1, -1, 412, -1, 414, 415, 416, 417, 418, 419,
+ 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
+ 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
+ 440, 441, 442, 443, 444, 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, 61, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
+ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
+ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
+ 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
+ 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
+ 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
+ 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
+ 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
+ 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
+ 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
+ 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
+ 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
+ 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
+ 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
+ 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
+ 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
+ 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
+ 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
+ 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
+ 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, 310, 311, 312, 313, 314, 315, 316, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 344, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 363, 364, 365, 366, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 376, 377,
+ 378, 379, 380, 381, 382, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 398, 399, 400, 401, 402, 403, -1, -1, -1, -1,
+ -1, -1, -1, -1, 412, -1, 414, 415, 416, 417,
+ 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
+ 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
+ 438, 439, 440, 441, 442, 443, 444, 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, 61, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
+ 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
+ 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
+ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
+ 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
+ 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
+ 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
+ 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
+ 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
+ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
+ 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
+ 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
+ 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
+ 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
+ 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
+ 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
+ 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
+ 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
+ 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
+ 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
+ 316, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 363, 364, 365,
+ 366, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 376, 377, 378, 379, 380, 381, 382, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 398, 399, 400, 401, 402, 403, -1, -1,
+ -1, -1, -1, -1, -1, -1, 412, -1, 414, 415,
+ 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
+ 426, 427, 428, 429, 430, 431, 432, 433, 434, 435,
+ 436, 437, 438, 439, 440, 441, 442, 443, 444, 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, 61, 62, 63, 64,
+ 55, 56, 57, 58, 59, 60, -1, -1, 63, 64,
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
@@ -3118,114 +3381,66 @@ static const yytype_int16 yycheck[] =
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 316, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 349, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 363, 364,
- 365, 366, -1, -1, -1, -1, -1, -1, -1, -1,
- 375, 376, 377, 378, 379, 380, 381, 382, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 398, 399, 400, 401, 402, 403, -1,
- -1, -1, -1, -1, -1, -1, -1, 412, -1, 414,
- 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
- 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
- 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
- 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, 61, 62,
- 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
- 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
- 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
- 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
- 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
- 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
- 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
- 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
- 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
- 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
- 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
- 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
- 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
- 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
- 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
- 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
- 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
- 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
- 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
- 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
- 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
- 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
- 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
- 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
- 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
- 313, 314, 315, 316, -1, -1, -1, -1, -1, -1,
+ 315, 316, -1, -1, 319, 320, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 338, 339, -1, -1, -1, 343, 344,
+ -1, -1, -1, -1, -1, 350, 351, 352, 353, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 344, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 371, 372, 373, 374,
+ 375, 376, -1, -1, -1, -1, 381, 382, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 363, 364, 365, 366, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 376, 377, 378, 379, 380, 381, 382,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 404,
+ 405, 406, 407, 408, 409, 410, 411, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 398, 399, 400, 401, 402,
- 403, -1, -1, -1, -1, -1, -1, -1, -1, 412,
- -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
- 423, 424, 425, 426, 427, 428, 429, 430, 431, 432,
- 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
- 443, 444, 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,
- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
- 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
- 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
- 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
- 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
- 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
- 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
- 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
- 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
- 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
- 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
- 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
- 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
- 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
- 221, 222, 223, 224, 225, 226, 227, 228, 229, 230,
- 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
- 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
- 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
- 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
- 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
- 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
- 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
- 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
- 311, 312, 313, 314, 315, 316, -1, -1, -1, -1,
+ -1, 426, 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, 65, 66, 67, 68, 69, 70, 71,
+ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
+ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
+ 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
+ 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
+ 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
+ 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
+ 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
+ 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
+ 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
+ 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
+ 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
+ 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
+ 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
+ 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
+ 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
+ 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
+ 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
+ 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
+ 312, 313, 314, 315, 316, -1, -1, 319, 320, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 338, 339, -1, -1,
+ -1, 343, 344, -1, -1, -1, -1, -1, 350, 351,
+ 352, 353, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 371,
+ 372, 373, 374, 375, 376, -1, -1, -1, -1, 381,
+ 382, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 344, -1, -1, -1, -1, -1, -1,
+ -1, -1, 404, 405, 406, 407, 408, 409, 410, 411,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 363, 364, 365, 366, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 376, 377, 378, 379, 380,
- 381, 382, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 398, 399, 400,
- 401, 402, 403, -1, -1, -1, -1, -1, -1, -1,
- -1, 412, -1, 414, 415, 416, 417, 418, 419, 420,
- 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
- 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
- 441, 442, 443, 444, 3, 4, 5, 6, 7, 8,
+ -1, -1, -1, -1, 426, 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, 61, 62, 63, 64, 65, 66, 67, 68,
+ 59, 60, -1, -1, 63, 64, 65, 66, 67, 68,
69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
@@ -3251,63 +3466,17 @@ static const yytype_int16 yycheck[] =
289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
309, 310, 311, 312, 313, 314, 315, 316, -1, -1,
+ 319, 320, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 338,
+ 339, -1, -1, 342, -1, -1, -1, -1, -1, -1,
+ -1, 350, 351, 352, 353, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 371, 372, 373, 374, 375, 376, -1, -1,
+ -1, -1, 381, 382, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 344, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 363, 364, 365, 366, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 376, 377, 378,
- 379, 380, 381, 382, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 398,
- 399, 400, 401, 402, 403, -1, -1, -1, -1, -1,
- -1, -1, -1, 412, -1, 414, 415, 416, 417, 418,
- 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
- 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
- 439, 440, 441, 442, 443, 444, 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, 61, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
- 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
- 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
- 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
- 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
- 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
- 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
- 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
- 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
- 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
- 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
- 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
- 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
- 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
- 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
- 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
- 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
- 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
- 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
- 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
- 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
- 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
- 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
- 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 363, 364, 365, 366,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 376,
- 377, 378, 379, 380, 381, 382, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 398, 399, 400, 401, 402, 403, -1, -1, -1,
- -1, -1, -1, -1, -1, 412, -1, 414, 415, 416,
- 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
- 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
- 437, 438, 439, 440, 441, 442, 443, 444, 4, 5,
+ -1, -1, -1, -1, -1, 404, 405, 406, 407, 408,
+ 409, 410, 411, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 426, 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,
@@ -3341,7 +3510,7 @@ static const yytype_int16 yycheck[] =
306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
316, -1, -1, 319, 320, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 338, 339, -1, -1, -1, 343, 344, -1,
+ -1, -1, 338, 339, -1, -1, -1, 343, -1, -1,
-1, -1, -1, -1, 350, 351, 352, 353, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 371, 372, 373, 374, 375,
@@ -3426,7 +3595,7 @@ static const yytype_int16 yycheck[] =
310, 311, 312, 313, 314, 315, 316, -1, -1, 319,
320, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 338, 339,
- -1, -1, -1, 343, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 349,
350, 351, 352, 353, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 371, 372, 373, 374, 375, 376, -1, -1, -1,
@@ -3468,7 +3637,7 @@ static const yytype_int16 yycheck[] =
307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
-1, -1, 319, 320, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 338, 339, -1, -1, 342, -1, -1, -1, -1,
+ -1, 338, 339, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 350, 351, 352, 353, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 371, 372, 373, 374, 375, 376,
@@ -3508,111 +3677,27 @@ static const yytype_int16 yycheck[] =
284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
- 314, 315, 316, -1, -1, 319, 320, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 338, 339, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 349, 350, 351, 352, 353,
+ 314, 315, 316, -1, -1, 319, 320, -1, -1, 413,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 427, 338, 339, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 350, 351, 352, 353,
+ 444, 445, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 371, 372, 373,
374, 375, 376, -1, -1, -1, -1, 381, 382, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 476, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 487, -1, -1, -1, -1, -1, -1,
404, 405, 406, 407, 408, 409, 410, 411, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 426, 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, 65, 66, 67, 68, 69, 70,
- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
- 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
- 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
- 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
- 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
- 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
- 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
- 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
- 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
- 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
- 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
- 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
- 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
- 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
- 221, 222, 223, 224, 225, 226, 227, 228, 229, 230,
- 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
- 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
- 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
- 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
- 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
- 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
- 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
- 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
- 311, 312, 313, 314, 315, 316, -1, -1, 319, 320,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 338, 339, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 350,
- 351, 352, 353, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 371, 372, 373, 374, 375, 376, -1, -1, -1, -1,
- 381, 382, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 404, 405, 406, 407, 408, 409, 410,
- 411, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 426, 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, 65, 66, 67,
- 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
- 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
- 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
- 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
- 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
- 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
- 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
- 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
- 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
- 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
- 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
- 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
- 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
- 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
- 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
- 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
- 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
- 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
- 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
- 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
- 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
- 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
- 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
- 308, 309, 310, 311, 312, 313, 314, 315, 316, -1,
- -1, 319, 320, -1, -1, 413, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 427,
- 338, 339, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 350, 351, 352, 353, 444, 445, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 371, 372, 373, 374, 375, 376, -1,
- -1, -1, -1, 381, 382, -1, -1, -1, 476, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 487,
- -1, -1, -1, -1, -1, -1, 404, 405, 406, 407,
- 408, 409, 410, 411, -1, -1, -1, -1, 506, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 426, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 506, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 426, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 576, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 589, 590, 591, 592, 593, 594, 595, 596, 597,
- 598, 599, 600, 601, 602, 603, 604, 605, 606, 607,
+ -1, -1, 576, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 589, 590, 591, 592, 593,
+ 594, 595, 596, 597, 598, 599, 600, 601, 602, 603,
+ 604, 605, 606, 607, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
@@ -3622,8 +3707,7 @@ static const yytype_int16 yycheck[] =
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 710
+ -1, -1, -1, -1, -1, -1, -1, 711
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -3695,18 +3779,18 @@ static const yytype_int16 yystos[] =
339, 349, 349, 474, 339, 474, 347, 349, 349, 349,
349, 328, 329, 330, 331, 332, 333, 334, 335, 336,
337, 348, 473, 346, 349, 344, 518, 532, 536, 541,
- 515, 348, 515, 516, 515, 511, 375, 340, 449, 474,
- 375, 472, 457, 513, 502, 346, 349, 344, 457, 457,
- 457, 459, 459, 460, 460, 461, 461, 461, 461, 462,
- 462, 463, 464, 465, 466, 467, 468, 471, 342, 375,
- 554, 555, 529, 542, 518, 544, 474, 349, 474, 347,
- 472, 472, 515, 344, 346, 344, 342, 349, 514, 474,
- 339, 342, 346, 523, 474, 489, 496, 534, 383, 517,
- 530, 545, 340, 340, 344, 515, 347, 475, 342, 555,
- 344, 375, 340, 339, 534, 546, 547, 525, 526, 527,
- 533, 537, 472, 340, 348, 519, 524, 528, 474, 349,
- 340, 387, 521, 519, 343, 515, 340, 474, 524, 525,
- 529, 538, 349, 344
+ 515, 348, 344, 515, 516, 515, 511, 375, 340, 449,
+ 474, 375, 472, 457, 513, 502, 346, 349, 344, 457,
+ 457, 457, 459, 459, 460, 460, 461, 461, 461, 461,
+ 462, 462, 463, 464, 465, 466, 467, 468, 471, 342,
+ 375, 554, 555, 529, 542, 518, 544, 474, 349, 474,
+ 347, 472, 472, 515, 344, 346, 344, 342, 349, 514,
+ 474, 339, 342, 346, 523, 474, 489, 496, 534, 383,
+ 517, 530, 545, 340, 340, 344, 515, 347, 475, 342,
+ 555, 344, 375, 340, 339, 534, 546, 547, 525, 526,
+ 527, 533, 537, 472, 340, 348, 519, 524, 528, 474,
+ 349, 340, 387, 521, 519, 343, 515, 340, 474, 524,
+ 525, 529, 538, 349, 344
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
@@ -3765,15 +3849,15 @@ static const yytype_int16 yyr1[] =
506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
507, 507, 507, 509, 508, 510, 508, 511, 511, 512,
- 512, 513, 513, 514, 514, 515, 515, 515, 516, 516,
- 517, 518, 518, 519, 519, 519, 519, 519, 519, 519,
- 519, 520, 521, 522, 523, 521, 524, 524, 526, 525,
- 527, 525, 528, 528, 529, 529, 530, 530, 531, 531,
- 532, 533, 533, 534, 534, 535, 535, 537, 536, 538,
- 538, 539, 539, 540, 540, 542, 541, 543, 541, 544,
- 541, 545, 545, 546, 546, 547, 547, 548, 548, 548,
- 548, 548, 548, 548, 548, 549, 549, 550, 550, 550,
- 552, 551, 553, 554, 554, 555, 555
+ 512, 513, 513, 514, 514, 515, 515, 515, 515, 516,
+ 516, 517, 518, 518, 519, 519, 519, 519, 519, 519,
+ 519, 519, 520, 521, 522, 523, 521, 524, 524, 526,
+ 525, 527, 525, 528, 528, 529, 529, 530, 530, 531,
+ 531, 532, 533, 533, 534, 534, 535, 535, 537, 536,
+ 538, 538, 539, 539, 540, 540, 542, 541, 543, 541,
+ 544, 541, 545, 545, 546, 546, 547, 547, 548, 548,
+ 548, 548, 548, 548, 548, 548, 549, 549, 550, 550,
+ 550, 552, 551, 553, 554, 554, 555, 555
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -3832,15 +3916,15 @@ static const yytype_int8 yyr2[] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 0, 6, 0, 5, 1, 2, 3,
- 4, 1, 3, 1, 2, 1, 3, 4, 1, 3,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 2, 2, 0, 0, 5, 1, 1, 0, 2,
- 0, 2, 2, 3, 1, 2, 1, 2, 1, 2,
- 5, 3, 1, 1, 4, 1, 2, 0, 8, 0,
- 1, 3, 2, 1, 2, 0, 6, 0, 8, 0,
- 7, 1, 1, 1, 0, 2, 3, 2, 2, 2,
- 3, 2, 2, 2, 2, 1, 2, 1, 1, 1,
- 0, 3, 5, 1, 3, 1, 4
+ 4, 1, 3, 1, 2, 1, 3, 4, 2, 1,
+ 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 2, 2, 0, 0, 5, 1, 1, 0,
+ 2, 0, 2, 2, 3, 1, 2, 1, 2, 1,
+ 2, 5, 3, 1, 1, 4, 1, 2, 0, 8,
+ 0, 1, 3, 2, 1, 2, 0, 6, 0, 8,
+ 0, 7, 1, 1, 1, 0, 2, 3, 2, 2,
+ 2, 3, 2, 2, 2, 2, 1, 2, 1, 1,
+ 1, 0, 3, 5, 1, 3, 1, 4
};
@@ -4590,7 +4674,7 @@ yyreduce:
{
(yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string);
}
-#line 4594 "MachineIndependent/glslang_tab.cpp"
+#line 4678 "MachineIndependent/glslang_tab.cpp"
break;
case 3: /* primary_expression: variable_identifier */
@@ -4598,7 +4682,7 @@ yyreduce:
{
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
-#line 4602 "MachineIndependent/glslang_tab.cpp"
+#line 4686 "MachineIndependent/glslang_tab.cpp"
break;
case 4: /* primary_expression: LEFT_PAREN expression RIGHT_PAREN */
@@ -4608,7 +4692,7 @@ yyreduce:
if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
(yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
}
-#line 4612 "MachineIndependent/glslang_tab.cpp"
+#line 4696 "MachineIndependent/glslang_tab.cpp"
break;
case 5: /* primary_expression: FLOATCONSTANT */
@@ -4616,7 +4700,7 @@ yyreduce:
{
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
}
-#line 4620 "MachineIndependent/glslang_tab.cpp"
+#line 4704 "MachineIndependent/glslang_tab.cpp"
break;
case 6: /* primary_expression: INTCONSTANT */
@@ -4624,7 +4708,7 @@ yyreduce:
{
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
}
-#line 4628 "MachineIndependent/glslang_tab.cpp"
+#line 4712 "MachineIndependent/glslang_tab.cpp"
break;
case 7: /* primary_expression: UINTCONSTANT */
@@ -4633,7 +4717,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 4637 "MachineIndependent/glslang_tab.cpp"
+#line 4721 "MachineIndependent/glslang_tab.cpp"
break;
case 8: /* primary_expression: BOOLCONSTANT */
@@ -4641,7 +4725,7 @@ yyreduce:
{
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
}
-#line 4645 "MachineIndependent/glslang_tab.cpp"
+#line 4729 "MachineIndependent/glslang_tab.cpp"
break;
case 9: /* primary_expression: STRING_LITERAL */
@@ -4649,7 +4733,7 @@ yyreduce:
{
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true);
}
-#line 4653 "MachineIndependent/glslang_tab.cpp"
+#line 4737 "MachineIndependent/glslang_tab.cpp"
break;
case 10: /* primary_expression: INT32CONSTANT */
@@ -4658,7 +4742,7 @@ yyreduce:
parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
}
-#line 4662 "MachineIndependent/glslang_tab.cpp"
+#line 4746 "MachineIndependent/glslang_tab.cpp"
break;
case 11: /* primary_expression: UINT32CONSTANT */
@@ -4667,7 +4751,7 @@ yyreduce:
parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
}
-#line 4671 "MachineIndependent/glslang_tab.cpp"
+#line 4755 "MachineIndependent/glslang_tab.cpp"
break;
case 12: /* primary_expression: INT64CONSTANT */
@@ -4676,7 +4760,7 @@ yyreduce:
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer literal");
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i64, (yyvsp[0].lex).loc, true);
}
-#line 4680 "MachineIndependent/glslang_tab.cpp"
+#line 4764 "MachineIndependent/glslang_tab.cpp"
break;
case 13: /* primary_expression: UINT64CONSTANT */
@@ -4685,7 +4769,7 @@ yyreduce:
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer literal");
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u64, (yyvsp[0].lex).loc, true);
}
-#line 4689 "MachineIndependent/glslang_tab.cpp"
+#line 4773 "MachineIndependent/glslang_tab.cpp"
break;
case 14: /* primary_expression: INT16CONSTANT */
@@ -4694,7 +4778,7 @@ yyreduce:
parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit integer literal");
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((short)(yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
}
-#line 4698 "MachineIndependent/glslang_tab.cpp"
+#line 4782 "MachineIndependent/glslang_tab.cpp"
break;
case 15: /* primary_expression: UINT16CONSTANT */
@@ -4703,7 +4787,7 @@ yyreduce:
parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer literal");
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((unsigned short)(yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
}
-#line 4707 "MachineIndependent/glslang_tab.cpp"
+#line 4791 "MachineIndependent/glslang_tab.cpp"
break;
case 16: /* primary_expression: DOUBLECONSTANT */
@@ -4714,7 +4798,7 @@ yyreduce:
parseContext.doubleCheck((yyvsp[0].lex).loc, "double literal");
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtDouble, (yyvsp[0].lex).loc, true);
}
-#line 4718 "MachineIndependent/glslang_tab.cpp"
+#line 4802 "MachineIndependent/glslang_tab.cpp"
break;
case 17: /* primary_expression: FLOAT16CONSTANT */
@@ -4723,7 +4807,7 @@ yyreduce:
parseContext.float16Check((yyvsp[0].lex).loc, "half float literal");
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat16, (yyvsp[0].lex).loc, true);
}
-#line 4727 "MachineIndependent/glslang_tab.cpp"
+#line 4811 "MachineIndependent/glslang_tab.cpp"
break;
case 18: /* postfix_expression: primary_expression */
@@ -4731,7 +4815,7 @@ yyreduce:
{
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
-#line 4735 "MachineIndependent/glslang_tab.cpp"
+#line 4819 "MachineIndependent/glslang_tab.cpp"
break;
case 19: /* postfix_expression: postfix_expression LEFT_BRACKET integer_expression RIGHT_BRACKET */
@@ -4739,7 +4823,7 @@ yyreduce:
{
(yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode));
}
-#line 4743 "MachineIndependent/glslang_tab.cpp"
+#line 4827 "MachineIndependent/glslang_tab.cpp"
break;
case 20: /* postfix_expression: function_call */
@@ -4747,7 +4831,7 @@ yyreduce:
{
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
-#line 4751 "MachineIndependent/glslang_tab.cpp"
+#line 4835 "MachineIndependent/glslang_tab.cpp"
break;
case 21: /* postfix_expression: postfix_expression DOT IDENTIFIER */
@@ -4755,7 +4839,7 @@ yyreduce:
{
(yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string);
}
-#line 4759 "MachineIndependent/glslang_tab.cpp"
+#line 4843 "MachineIndependent/glslang_tab.cpp"
break;
case 22: /* postfix_expression: postfix_expression INC_OP */
@@ -4765,7 +4849,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 4769 "MachineIndependent/glslang_tab.cpp"
+#line 4853 "MachineIndependent/glslang_tab.cpp"
break;
case 23: /* postfix_expression: postfix_expression DEC_OP */
@@ -4775,7 +4859,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 4779 "MachineIndependent/glslang_tab.cpp"
+#line 4863 "MachineIndependent/glslang_tab.cpp"
break;
case 24: /* integer_expression: expression */
@@ -4784,7 +4868,7 @@ yyreduce:
parseContext.integerCheck((yyvsp[0].interm.intermTypedNode), "[]");
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
-#line 4788 "MachineIndependent/glslang_tab.cpp"
+#line 4872 "MachineIndependent/glslang_tab.cpp"
break;
case 25: /* function_call: function_call_or_method */
@@ -4793,7 +4877,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 4797 "MachineIndependent/glslang_tab.cpp"
+#line 4881 "MachineIndependent/glslang_tab.cpp"
break;
case 26: /* function_call_or_method: function_call_generic */
@@ -4801,7 +4885,7 @@ yyreduce:
{
(yyval.interm) = (yyvsp[0].interm);
}
-#line 4805 "MachineIndependent/glslang_tab.cpp"
+#line 4889 "MachineIndependent/glslang_tab.cpp"
break;
case 27: /* function_call_generic: function_call_header_with_parameters RIGHT_PAREN */
@@ -4810,7 +4894,7 @@ yyreduce:
(yyval.interm) = (yyvsp[-1].interm);
(yyval.interm).loc = (yyvsp[0].lex).loc;
}
-#line 4814 "MachineIndependent/glslang_tab.cpp"
+#line 4898 "MachineIndependent/glslang_tab.cpp"
break;
case 28: /* function_call_generic: function_call_header_no_parameters RIGHT_PAREN */
@@ -4819,7 +4903,7 @@ yyreduce:
(yyval.interm) = (yyvsp[-1].interm);
(yyval.interm).loc = (yyvsp[0].lex).loc;
}
-#line 4823 "MachineIndependent/glslang_tab.cpp"
+#line 4907 "MachineIndependent/glslang_tab.cpp"
break;
case 29: /* function_call_header_no_parameters: function_call_header VOID */
@@ -4827,7 +4911,7 @@ yyreduce:
{
(yyval.interm) = (yyvsp[-1].interm);
}
-#line 4831 "MachineIndependent/glslang_tab.cpp"
+#line 4915 "MachineIndependent/glslang_tab.cpp"
break;
case 30: /* function_call_header_no_parameters: function_call_header */
@@ -4835,7 +4919,7 @@ yyreduce:
{
(yyval.interm) = (yyvsp[0].interm);
}
-#line 4839 "MachineIndependent/glslang_tab.cpp"
+#line 4923 "MachineIndependent/glslang_tab.cpp"
break;
case 31: /* function_call_header_with_parameters: function_call_header assignment_expression */
@@ -4847,7 +4931,7 @@ yyreduce:
(yyval.interm).function = (yyvsp[-1].interm).function;
(yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode);
}
-#line 4851 "MachineIndependent/glslang_tab.cpp"
+#line 4935 "MachineIndependent/glslang_tab.cpp"
break;
case 32: /* function_call_header_with_parameters: function_call_header_with_parameters COMMA assignment_expression */
@@ -4859,7 +4943,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 4863 "MachineIndependent/glslang_tab.cpp"
+#line 4947 "MachineIndependent/glslang_tab.cpp"
break;
case 33: /* function_call_header: function_identifier LEFT_PAREN */
@@ -4867,7 +4951,7 @@ yyreduce:
{
(yyval.interm) = (yyvsp[-1].interm);
}
-#line 4871 "MachineIndependent/glslang_tab.cpp"
+#line 4955 "MachineIndependent/glslang_tab.cpp"
break;
case 34: /* function_identifier: type_specifier */
@@ -4877,7 +4961,7 @@ yyreduce:
(yyval.interm).intermNode = 0;
(yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
}
-#line 4881 "MachineIndependent/glslang_tab.cpp"
+#line 4965 "MachineIndependent/glslang_tab.cpp"
break;
case 35: /* function_identifier: postfix_expression */
@@ -4909,7 +4993,7 @@ yyreduce:
(yyval.interm).function = new TFunction(empty, TType(EbtVoid), EOpNull);
}
}
-#line 4913 "MachineIndependent/glslang_tab.cpp"
+#line 4997 "MachineIndependent/glslang_tab.cpp"
break;
case 36: /* function_identifier: non_uniform_qualifier */
@@ -4919,7 +5003,7 @@ yyreduce:
(yyval.interm).intermNode = 0;
(yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
}
-#line 4923 "MachineIndependent/glslang_tab.cpp"
+#line 5007 "MachineIndependent/glslang_tab.cpp"
break;
case 37: /* unary_expression: postfix_expression */
@@ -4930,7 +5014,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 4934 "MachineIndependent/glslang_tab.cpp"
+#line 5018 "MachineIndependent/glslang_tab.cpp"
break;
case 38: /* unary_expression: INC_OP unary_expression */
@@ -4939,7 +5023,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 4943 "MachineIndependent/glslang_tab.cpp"
+#line 5027 "MachineIndependent/glslang_tab.cpp"
break;
case 39: /* unary_expression: DEC_OP unary_expression */
@@ -4948,7 +5032,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 4952 "MachineIndependent/glslang_tab.cpp"
+#line 5036 "MachineIndependent/glslang_tab.cpp"
break;
case 40: /* unary_expression: unary_operator unary_expression */
@@ -4969,38 +5053,38 @@ yyreduce:
(yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
}
}
-#line 4973 "MachineIndependent/glslang_tab.cpp"
+#line 5057 "MachineIndependent/glslang_tab.cpp"
break;
case 41: /* unary_operator: PLUS */
#line 606 "MachineIndependent/glslang.y"
{ (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; }
-#line 4979 "MachineIndependent/glslang_tab.cpp"
+#line 5063 "MachineIndependent/glslang_tab.cpp"
break;
case 42: /* unary_operator: DASH */
#line 607 "MachineIndependent/glslang.y"
{ (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; }
-#line 4985 "MachineIndependent/glslang_tab.cpp"
+#line 5069 "MachineIndependent/glslang_tab.cpp"
break;
case 43: /* unary_operator: BANG */
#line 608 "MachineIndependent/glslang.y"
{ (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; }
-#line 4991 "MachineIndependent/glslang_tab.cpp"
+#line 5075 "MachineIndependent/glslang_tab.cpp"
break;
case 44: /* unary_operator: TILDE */
#line 609 "MachineIndependent/glslang.y"
{ (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot;
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise not"); }
-#line 4998 "MachineIndependent/glslang_tab.cpp"
+#line 5082 "MachineIndependent/glslang_tab.cpp"
break;
case 45: /* multiplicative_expression: unary_expression */
#line 615 "MachineIndependent/glslang.y"
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5004 "MachineIndependent/glslang_tab.cpp"
+#line 5088 "MachineIndependent/glslang_tab.cpp"
break;
case 46: /* multiplicative_expression: multiplicative_expression STAR unary_expression */
@@ -5010,7 +5094,7 @@ yyreduce:
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 5014 "MachineIndependent/glslang_tab.cpp"
+#line 5098 "MachineIndependent/glslang_tab.cpp"
break;
case 47: /* multiplicative_expression: multiplicative_expression SLASH unary_expression */
@@ -5020,7 +5104,7 @@ yyreduce:
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 5024 "MachineIndependent/glslang_tab.cpp"
+#line 5108 "MachineIndependent/glslang_tab.cpp"
break;
case 48: /* multiplicative_expression: multiplicative_expression PERCENT unary_expression */
@@ -5031,13 +5115,13 @@ yyreduce:
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 5035 "MachineIndependent/glslang_tab.cpp"
+#line 5119 "MachineIndependent/glslang_tab.cpp"
break;
case 49: /* additive_expression: multiplicative_expression */
#line 635 "MachineIndependent/glslang.y"
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5041 "MachineIndependent/glslang_tab.cpp"
+#line 5125 "MachineIndependent/glslang_tab.cpp"
break;
case 50: /* additive_expression: additive_expression PLUS multiplicative_expression */
@@ -5047,7 +5131,7 @@ yyreduce:
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 5051 "MachineIndependent/glslang_tab.cpp"
+#line 5135 "MachineIndependent/glslang_tab.cpp"
break;
case 51: /* additive_expression: additive_expression DASH multiplicative_expression */
@@ -5057,13 +5141,13 @@ yyreduce:
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 5061 "MachineIndependent/glslang_tab.cpp"
+#line 5145 "MachineIndependent/glslang_tab.cpp"
break;
case 52: /* shift_expression: additive_expression */
#line 649 "MachineIndependent/glslang.y"
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5067 "MachineIndependent/glslang_tab.cpp"
+#line 5151 "MachineIndependent/glslang_tab.cpp"
break;
case 53: /* shift_expression: shift_expression LEFT_OP additive_expression */
@@ -5074,7 +5158,7 @@ yyreduce:
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 5078 "MachineIndependent/glslang_tab.cpp"
+#line 5162 "MachineIndependent/glslang_tab.cpp"
break;
case 54: /* shift_expression: shift_expression RIGHT_OP additive_expression */
@@ -5085,13 +5169,13 @@ yyreduce:
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 5089 "MachineIndependent/glslang_tab.cpp"
+#line 5173 "MachineIndependent/glslang_tab.cpp"
break;
case 55: /* relational_expression: shift_expression */
#line 665 "MachineIndependent/glslang.y"
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5095 "MachineIndependent/glslang_tab.cpp"
+#line 5179 "MachineIndependent/glslang_tab.cpp"
break;
case 56: /* relational_expression: relational_expression LEFT_ANGLE shift_expression */
@@ -5101,7 +5185,7 @@ yyreduce:
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 5105 "MachineIndependent/glslang_tab.cpp"
+#line 5189 "MachineIndependent/glslang_tab.cpp"
break;
case 57: /* relational_expression: relational_expression RIGHT_ANGLE shift_expression */
@@ -5111,7 +5195,7 @@ yyreduce:
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 5115 "MachineIndependent/glslang_tab.cpp"
+#line 5199 "MachineIndependent/glslang_tab.cpp"
break;
case 58: /* relational_expression: relational_expression LE_OP shift_expression */
@@ -5121,7 +5205,7 @@ yyreduce:
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 5125 "MachineIndependent/glslang_tab.cpp"
+#line 5209 "MachineIndependent/glslang_tab.cpp"
break;
case 59: /* relational_expression: relational_expression GE_OP shift_expression */
@@ -5131,13 +5215,13 @@ yyreduce:
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 5135 "MachineIndependent/glslang_tab.cpp"
+#line 5219 "MachineIndependent/glslang_tab.cpp"
break;
case 60: /* equality_expression: relational_expression */
#line 689 "MachineIndependent/glslang.y"
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5141 "MachineIndependent/glslang_tab.cpp"
+#line 5225 "MachineIndependent/glslang_tab.cpp"
break;
case 61: /* equality_expression: equality_expression EQ_OP relational_expression */
@@ -5151,7 +5235,7 @@ yyreduce:
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 5155 "MachineIndependent/glslang_tab.cpp"
+#line 5239 "MachineIndependent/glslang_tab.cpp"
break;
case 62: /* equality_expression: equality_expression NE_OP relational_expression */
@@ -5165,13 +5249,13 @@ yyreduce:
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 5169 "MachineIndependent/glslang_tab.cpp"
+#line 5253 "MachineIndependent/glslang_tab.cpp"
break;
case 63: /* and_expression: equality_expression */
#line 711 "MachineIndependent/glslang.y"
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5175 "MachineIndependent/glslang_tab.cpp"
+#line 5259 "MachineIndependent/glslang_tab.cpp"
break;
case 64: /* and_expression: and_expression AMPERSAND equality_expression */
@@ -5182,13 +5266,13 @@ yyreduce:
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 5186 "MachineIndependent/glslang_tab.cpp"
+#line 5270 "MachineIndependent/glslang_tab.cpp"
break;
case 65: /* exclusive_or_expression: and_expression */
#line 721 "MachineIndependent/glslang.y"
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5192 "MachineIndependent/glslang_tab.cpp"
+#line 5276 "MachineIndependent/glslang_tab.cpp"
break;
case 66: /* exclusive_or_expression: exclusive_or_expression CARET and_expression */
@@ -5199,13 +5283,13 @@ yyreduce:
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 5203 "MachineIndependent/glslang_tab.cpp"
+#line 5287 "MachineIndependent/glslang_tab.cpp"
break;
case 67: /* inclusive_or_expression: exclusive_or_expression */
#line 731 "MachineIndependent/glslang.y"
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5209 "MachineIndependent/glslang_tab.cpp"
+#line 5293 "MachineIndependent/glslang_tab.cpp"
break;
case 68: /* inclusive_or_expression: inclusive_or_expression VERTICAL_BAR exclusive_or_expression */
@@ -5216,13 +5300,13 @@ yyreduce:
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 5220 "MachineIndependent/glslang_tab.cpp"
+#line 5304 "MachineIndependent/glslang_tab.cpp"
break;
case 69: /* logical_and_expression: inclusive_or_expression */
#line 741 "MachineIndependent/glslang.y"
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5226 "MachineIndependent/glslang_tab.cpp"
+#line 5310 "MachineIndependent/glslang_tab.cpp"
break;
case 70: /* logical_and_expression: logical_and_expression AND_OP inclusive_or_expression */
@@ -5232,13 +5316,13 @@ yyreduce:
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 5236 "MachineIndependent/glslang_tab.cpp"
+#line 5320 "MachineIndependent/glslang_tab.cpp"
break;
case 71: /* logical_xor_expression: logical_and_expression */
#line 750 "MachineIndependent/glslang.y"
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5242 "MachineIndependent/glslang_tab.cpp"
+#line 5326 "MachineIndependent/glslang_tab.cpp"
break;
case 72: /* logical_xor_expression: logical_xor_expression XOR_OP logical_and_expression */
@@ -5248,13 +5332,13 @@ yyreduce:
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 5252 "MachineIndependent/glslang_tab.cpp"
+#line 5336 "MachineIndependent/glslang_tab.cpp"
break;
case 73: /* logical_or_expression: logical_xor_expression */
#line 759 "MachineIndependent/glslang.y"
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5258 "MachineIndependent/glslang_tab.cpp"
+#line 5342 "MachineIndependent/glslang_tab.cpp"
break;
case 74: /* logical_or_expression: logical_or_expression OR_OP logical_xor_expression */
@@ -5264,13 +5348,13 @@ yyreduce:
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 5268 "MachineIndependent/glslang_tab.cpp"
+#line 5352 "MachineIndependent/glslang_tab.cpp"
break;
case 75: /* conditional_expression: logical_or_expression */
#line 768 "MachineIndependent/glslang.y"
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5274 "MachineIndependent/glslang_tab.cpp"
+#line 5358 "MachineIndependent/glslang_tab.cpp"
break;
case 76: /* $@1: %empty */
@@ -5278,7 +5362,7 @@ yyreduce:
{
++parseContext.controlFlowNestingLevel;
}
-#line 5282 "MachineIndependent/glslang_tab.cpp"
+#line 5366 "MachineIndependent/glslang_tab.cpp"
break;
case 77: /* conditional_expression: logical_or_expression QUESTION $@1 expression COLON assignment_expression */
@@ -5295,13 +5379,13 @@ yyreduce:
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
}
-#line 5299 "MachineIndependent/glslang_tab.cpp"
+#line 5383 "MachineIndependent/glslang_tab.cpp"
break;
case 78: /* assignment_expression: conditional_expression */
#line 787 "MachineIndependent/glslang.y"
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5305 "MachineIndependent/glslang_tab.cpp"
+#line 5389 "MachineIndependent/glslang_tab.cpp"
break;
case 79: /* assignment_expression: unary_expression assignment_operator assignment_expression */
@@ -5319,7 +5403,7 @@ yyreduce:
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
}
-#line 5323 "MachineIndependent/glslang_tab.cpp"
+#line 5407 "MachineIndependent/glslang_tab.cpp"
break;
case 80: /* assignment_operator: EQUAL */
@@ -5328,7 +5412,7 @@ yyreduce:
(yyval.interm).loc = (yyvsp[0].lex).loc;
(yyval.interm).op = EOpAssign;
}
-#line 5332 "MachineIndependent/glslang_tab.cpp"
+#line 5416 "MachineIndependent/glslang_tab.cpp"
break;
case 81: /* assignment_operator: MUL_ASSIGN */
@@ -5337,7 +5421,7 @@ yyreduce:
(yyval.interm).loc = (yyvsp[0].lex).loc;
(yyval.interm).op = EOpMulAssign;
}
-#line 5341 "MachineIndependent/glslang_tab.cpp"
+#line 5425 "MachineIndependent/glslang_tab.cpp"
break;
case 82: /* assignment_operator: DIV_ASSIGN */
@@ -5346,7 +5430,7 @@ yyreduce:
(yyval.interm).loc = (yyvsp[0].lex).loc;
(yyval.interm).op = EOpDivAssign;
}
-#line 5350 "MachineIndependent/glslang_tab.cpp"
+#line 5434 "MachineIndependent/glslang_tab.cpp"
break;
case 83: /* assignment_operator: MOD_ASSIGN */
@@ -5356,7 +5440,7 @@ yyreduce:
(yyval.interm).loc = (yyvsp[0].lex).loc;
(yyval.interm).op = EOpModAssign;
}
-#line 5360 "MachineIndependent/glslang_tab.cpp"
+#line 5444 "MachineIndependent/glslang_tab.cpp"
break;
case 84: /* assignment_operator: ADD_ASSIGN */
@@ -5365,7 +5449,7 @@ yyreduce:
(yyval.interm).loc = (yyvsp[0].lex).loc;
(yyval.interm).op = EOpAddAssign;
}
-#line 5369 "MachineIndependent/glslang_tab.cpp"
+#line 5453 "MachineIndependent/glslang_tab.cpp"
break;
case 85: /* assignment_operator: SUB_ASSIGN */
@@ -5374,7 +5458,7 @@ yyreduce:
(yyval.interm).loc = (yyvsp[0].lex).loc;
(yyval.interm).op = EOpSubAssign;
}
-#line 5378 "MachineIndependent/glslang_tab.cpp"
+#line 5462 "MachineIndependent/glslang_tab.cpp"
break;
case 86: /* assignment_operator: LEFT_ASSIGN */
@@ -5383,7 +5467,7 @@ yyreduce:
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign");
(yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign;
}
-#line 5387 "MachineIndependent/glslang_tab.cpp"
+#line 5471 "MachineIndependent/glslang_tab.cpp"
break;
case 87: /* assignment_operator: RIGHT_ASSIGN */
@@ -5392,7 +5476,7 @@ yyreduce:
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign");
(yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign;
}
-#line 5396 "MachineIndependent/glslang_tab.cpp"
+#line 5480 "MachineIndependent/glslang_tab.cpp"
break;
case 88: /* assignment_operator: AND_ASSIGN */
@@ -5401,7 +5485,7 @@ yyreduce:
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign");
(yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign;
}
-#line 5405 "MachineIndependent/glslang_tab.cpp"
+#line 5489 "MachineIndependent/glslang_tab.cpp"
break;
case 89: /* assignment_operator: XOR_ASSIGN */
@@ -5410,7 +5494,7 @@ yyreduce:
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign");
(yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign;
}
-#line 5414 "MachineIndependent/glslang_tab.cpp"
+#line 5498 "MachineIndependent/glslang_tab.cpp"
break;
case 90: /* assignment_operator: OR_ASSIGN */
@@ -5419,7 +5503,7 @@ yyreduce:
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign");
(yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign;
}
-#line 5423 "MachineIndependent/glslang_tab.cpp"
+#line 5507 "MachineIndependent/glslang_tab.cpp"
break;
case 91: /* expression: assignment_expression */
@@ -5427,7 +5511,7 @@ yyreduce:
{
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
-#line 5431 "MachineIndependent/glslang_tab.cpp"
+#line 5515 "MachineIndependent/glslang_tab.cpp"
break;
case 92: /* expression: expression COMMA assignment_expression */
@@ -5440,7 +5524,7 @@ yyreduce:
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
}
-#line 5444 "MachineIndependent/glslang_tab.cpp"
+#line 5528 "MachineIndependent/glslang_tab.cpp"
break;
case 93: /* constant_expression: conditional_expression */
@@ -5449,7 +5533,7 @@ yyreduce:
parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), "");
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
-#line 5453 "MachineIndependent/glslang_tab.cpp"
+#line 5537 "MachineIndependent/glslang_tab.cpp"
break;
case 94: /* declaration: function_prototype SEMICOLON */
@@ -5459,7 +5543,7 @@ yyreduce:
(yyval.interm.intermNode) = 0;
// TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature
}
-#line 5463 "MachineIndependent/glslang_tab.cpp"
+#line 5547 "MachineIndependent/glslang_tab.cpp"
break;
case 95: /* declaration: init_declarator_list SEMICOLON */
@@ -5469,7 +5553,7 @@ yyreduce:
(yyvsp[-1].interm).intermNode->getAsAggregate()->setOperator(EOpSequence);
(yyval.interm.intermNode) = (yyvsp[-1].interm).intermNode;
}
-#line 5473 "MachineIndependent/glslang_tab.cpp"
+#line 5557 "MachineIndependent/glslang_tab.cpp"
break;
case 96: /* declaration: PRECISION precision_qualifier type_specifier SEMICOLON */
@@ -5481,7 +5565,7 @@ yyreduce:
parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision);
(yyval.interm.intermNode) = 0;
}
-#line 5485 "MachineIndependent/glslang_tab.cpp"
+#line 5569 "MachineIndependent/glslang_tab.cpp"
break;
case 97: /* declaration: block_structure SEMICOLON */
@@ -5490,7 +5574,7 @@ yyreduce:
parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList);
(yyval.interm.intermNode) = 0;
}
-#line 5494 "MachineIndependent/glslang_tab.cpp"
+#line 5578 "MachineIndependent/glslang_tab.cpp"
break;
case 98: /* declaration: block_structure IDENTIFIER SEMICOLON */
@@ -5499,7 +5583,7 @@ yyreduce:
parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string);
(yyval.interm.intermNode) = 0;
}
-#line 5503 "MachineIndependent/glslang_tab.cpp"
+#line 5587 "MachineIndependent/glslang_tab.cpp"
break;
case 99: /* declaration: block_structure IDENTIFIER array_specifier SEMICOLON */
@@ -5508,7 +5592,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 5512 "MachineIndependent/glslang_tab.cpp"
+#line 5596 "MachineIndependent/glslang_tab.cpp"
break;
case 100: /* declaration: type_qualifier SEMICOLON */
@@ -5518,7 +5602,7 @@ yyreduce:
parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type));
(yyval.interm.intermNode) = 0;
}
-#line 5522 "MachineIndependent/glslang_tab.cpp"
+#line 5606 "MachineIndependent/glslang_tab.cpp"
break;
case 101: /* declaration: type_qualifier IDENTIFIER SEMICOLON */
@@ -5528,7 +5612,7 @@ yyreduce:
parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].lex).string);
(yyval.interm.intermNode) = 0;
}
-#line 5532 "MachineIndependent/glslang_tab.cpp"
+#line 5616 "MachineIndependent/glslang_tab.cpp"
break;
case 102: /* declaration: type_qualifier IDENTIFIER identifier_list SEMICOLON */
@@ -5539,13 +5623,13 @@ yyreduce:
parseContext.addQualifierToExisting((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier, *(yyvsp[-1].interm.identifierList));
(yyval.interm.intermNode) = 0;
}
-#line 5543 "MachineIndependent/glslang_tab.cpp"
+#line 5627 "MachineIndependent/glslang_tab.cpp"
break;
case 103: /* $@2: %empty */
#line 921 "MachineIndependent/glslang.y"
{ parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); }
-#line 5549 "MachineIndependent/glslang_tab.cpp"
+#line 5633 "MachineIndependent/glslang_tab.cpp"
break;
case 104: /* block_structure: type_qualifier IDENTIFIER LEFT_BRACE $@2 struct_declaration_list RIGHT_BRACE */
@@ -5559,7 +5643,7 @@ yyreduce:
(yyval.interm).loc = (yyvsp[-5].interm.type).loc;
(yyval.interm).typeList = (yyvsp[-1].interm.typeList);
}
-#line 5563 "MachineIndependent/glslang_tab.cpp"
+#line 5647 "MachineIndependent/glslang_tab.cpp"
break;
case 105: /* identifier_list: COMMA IDENTIFIER */
@@ -5568,7 +5652,7 @@ yyreduce:
(yyval.interm.identifierList) = new TIdentifierList;
(yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
}
-#line 5572 "MachineIndependent/glslang_tab.cpp"
+#line 5656 "MachineIndependent/glslang_tab.cpp"
break;
case 106: /* identifier_list: identifier_list COMMA IDENTIFIER */
@@ -5577,7 +5661,7 @@ yyreduce:
(yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList);
(yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
}
-#line 5581 "MachineIndependent/glslang_tab.cpp"
+#line 5665 "MachineIndependent/glslang_tab.cpp"
break;
case 107: /* function_prototype: function_declarator RIGHT_PAREN */
@@ -5586,7 +5670,7 @@ yyreduce:
(yyval.interm).function = (yyvsp[-1].interm.function);
(yyval.interm).loc = (yyvsp[0].lex).loc;
}
-#line 5590 "MachineIndependent/glslang_tab.cpp"
+#line 5674 "MachineIndependent/glslang_tab.cpp"
break;
case 108: /* function_declarator: function_header */
@@ -5594,7 +5678,7 @@ yyreduce:
{
(yyval.interm.function) = (yyvsp[0].interm.function);
}
-#line 5598 "MachineIndependent/glslang_tab.cpp"
+#line 5682 "MachineIndependent/glslang_tab.cpp"
break;
case 109: /* function_declarator: function_header_with_parameters */
@@ -5602,7 +5686,7 @@ yyreduce:
{
(yyval.interm.function) = (yyvsp[0].interm.function);
}
-#line 5606 "MachineIndependent/glslang_tab.cpp"
+#line 5690 "MachineIndependent/glslang_tab.cpp"
break;
case 110: /* function_header_with_parameters: function_header parameter_declaration */
@@ -5615,7 +5699,7 @@ yyreduce:
else
delete (yyvsp[0].interm).param.type;
}
-#line 5619 "MachineIndependent/glslang_tab.cpp"
+#line 5703 "MachineIndependent/glslang_tab.cpp"
break;
case 111: /* function_header_with_parameters: function_header_with_parameters COMMA parameter_declaration */
@@ -5637,7 +5721,7 @@ yyreduce:
(yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param);
}
}
-#line 5641 "MachineIndependent/glslang_tab.cpp"
+#line 5725 "MachineIndependent/glslang_tab.cpp"
break;
case 112: /* function_header: fully_specified_type IDENTIFIER LEFT_PAREN */
@@ -5661,7 +5745,7 @@ yyreduce:
function = new TFunction((yyvsp[-1].lex).string, type);
(yyval.interm.function) = function;
}
-#line 5665 "MachineIndependent/glslang_tab.cpp"
+#line 5749 "MachineIndependent/glslang_tab.cpp"
break;
case 113: /* parameter_declarator: type_specifier IDENTIFIER */
@@ -5681,7 +5765,7 @@ yyreduce:
(yyval.interm).loc = (yyvsp[0].lex).loc;
(yyval.interm).param = param;
}
-#line 5685 "MachineIndependent/glslang_tab.cpp"
+#line 5769 "MachineIndependent/glslang_tab.cpp"
break;
case 114: /* parameter_declarator: type_specifier IDENTIFIER array_specifier */
@@ -5705,7 +5789,7 @@ yyreduce:
(yyval.interm).loc = (yyvsp[-1].lex).loc;
(yyval.interm).param = param;
}
-#line 5709 "MachineIndependent/glslang_tab.cpp"
+#line 5793 "MachineIndependent/glslang_tab.cpp"
break;
case 115: /* parameter_declaration: type_qualifier parameter_declarator */
@@ -5721,7 +5805,7 @@ yyreduce:
parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
}
-#line 5725 "MachineIndependent/glslang_tab.cpp"
+#line 5809 "MachineIndependent/glslang_tab.cpp"
break;
case 116: /* parameter_declaration: parameter_declarator */
@@ -5733,7 +5817,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 5737 "MachineIndependent/glslang_tab.cpp"
+#line 5821 "MachineIndependent/glslang_tab.cpp"
break;
case 117: /* parameter_declaration: type_qualifier parameter_type_specifier */
@@ -5748,7 +5832,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 5752 "MachineIndependent/glslang_tab.cpp"
+#line 5836 "MachineIndependent/glslang_tab.cpp"
break;
case 118: /* parameter_declaration: parameter_type_specifier */
@@ -5760,7 +5844,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 5764 "MachineIndependent/glslang_tab.cpp"
+#line 5848 "MachineIndependent/glslang_tab.cpp"
break;
case 119: /* parameter_type_specifier: type_specifier */
@@ -5771,7 +5855,7 @@ yyreduce:
if ((yyvsp[0].interm.type).arraySizes)
parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes);
}
-#line 5775 "MachineIndependent/glslang_tab.cpp"
+#line 5859 "MachineIndependent/glslang_tab.cpp"
break;
case 120: /* init_declarator_list: single_declaration */
@@ -5779,7 +5863,7 @@ yyreduce:
{
(yyval.interm) = (yyvsp[0].interm);
}
-#line 5783 "MachineIndependent/glslang_tab.cpp"
+#line 5867 "MachineIndependent/glslang_tab.cpp"
break;
case 121: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER */
@@ -5788,7 +5872,7 @@ yyreduce:
(yyval.interm) = (yyvsp[-2].interm);
parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type);
}
-#line 5792 "MachineIndependent/glslang_tab.cpp"
+#line 5876 "MachineIndependent/glslang_tab.cpp"
break;
case 122: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER array_specifier */
@@ -5797,7 +5881,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 5801 "MachineIndependent/glslang_tab.cpp"
+#line 5885 "MachineIndependent/glslang_tab.cpp"
break;
case 123: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER array_specifier EQUAL initializer */
@@ -5807,7 +5891,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 5811 "MachineIndependent/glslang_tab.cpp"
+#line 5895 "MachineIndependent/glslang_tab.cpp"
break;
case 124: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER EQUAL initializer */
@@ -5817,7 +5901,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 5821 "MachineIndependent/glslang_tab.cpp"
+#line 5905 "MachineIndependent/glslang_tab.cpp"
break;
case 125: /* single_declaration: fully_specified_type */
@@ -5829,7 +5913,7 @@ yyreduce:
parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type);
}
-#line 5833 "MachineIndependent/glslang_tab.cpp"
+#line 5917 "MachineIndependent/glslang_tab.cpp"
break;
case 126: /* single_declaration: fully_specified_type IDENTIFIER */
@@ -5839,7 +5923,7 @@ yyreduce:
(yyval.interm).intermNode = 0;
parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type));
}
-#line 5843 "MachineIndependent/glslang_tab.cpp"
+#line 5927 "MachineIndependent/glslang_tab.cpp"
break;
case 127: /* single_declaration: fully_specified_type IDENTIFIER array_specifier */
@@ -5849,7 +5933,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 5853 "MachineIndependent/glslang_tab.cpp"
+#line 5937 "MachineIndependent/glslang_tab.cpp"
break;
case 128: /* single_declaration: fully_specified_type IDENTIFIER array_specifier EQUAL initializer */
@@ -5859,7 +5943,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 5863 "MachineIndependent/glslang_tab.cpp"
+#line 5947 "MachineIndependent/glslang_tab.cpp"
break;
case 129: /* single_declaration: fully_specified_type IDENTIFIER EQUAL initializer */
@@ -5869,7 +5953,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 5873 "MachineIndependent/glslang_tab.cpp"
+#line 5957 "MachineIndependent/glslang_tab.cpp"
break;
case 130: /* fully_specified_type: type_specifier */
@@ -5884,7 +5968,7 @@ yyreduce:
}
parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier);
}
-#line 5888 "MachineIndependent/glslang_tab.cpp"
+#line 5972 "MachineIndependent/glslang_tab.cpp"
break;
case 131: /* fully_specified_type: type_qualifier type_specifier */
@@ -5913,7 +5997,7 @@ yyreduce:
(parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn)))
(yyval.interm.type).qualifier.smooth = true;
}
-#line 5917 "MachineIndependent/glslang_tab.cpp"
+#line 6001 "MachineIndependent/glslang_tab.cpp"
break;
case 132: /* invariant_qualifier: INVARIANT */
@@ -5924,7 +6008,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.invariant = true;
}
-#line 5928 "MachineIndependent/glslang_tab.cpp"
+#line 6012 "MachineIndependent/glslang_tab.cpp"
break;
case 133: /* interpolation_qualifier: SMOOTH */
@@ -5936,7 +6020,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.smooth = true;
}
-#line 5940 "MachineIndependent/glslang_tab.cpp"
+#line 6024 "MachineIndependent/glslang_tab.cpp"
break;
case 134: /* interpolation_qualifier: FLAT */
@@ -5948,7 +6032,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.flat = true;
}
-#line 5952 "MachineIndependent/glslang_tab.cpp"
+#line 6036 "MachineIndependent/glslang_tab.cpp"
break;
case 135: /* interpolation_qualifier: NOPERSPECTIVE */
@@ -5960,7 +6044,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.nopersp = true;
}
-#line 5964 "MachineIndependent/glslang_tab.cpp"
+#line 6048 "MachineIndependent/glslang_tab.cpp"
break;
case 136: /* interpolation_qualifier: EXPLICITINTERPAMD */
@@ -5972,7 +6056,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.explicitInterp = true;
}
-#line 5976 "MachineIndependent/glslang_tab.cpp"
+#line 6060 "MachineIndependent/glslang_tab.cpp"
break;
case 137: /* interpolation_qualifier: PERVERTEXNV */
@@ -5985,7 +6069,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.pervertexNV = true;
}
-#line 5989 "MachineIndependent/glslang_tab.cpp"
+#line 6073 "MachineIndependent/glslang_tab.cpp"
break;
case 138: /* interpolation_qualifier: PERPRIMITIVENV */
@@ -6000,7 +6084,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.perPrimitiveNV = true;
}
-#line 6004 "MachineIndependent/glslang_tab.cpp"
+#line 6088 "MachineIndependent/glslang_tab.cpp"
break;
case 139: /* interpolation_qualifier: PERVIEWNV */
@@ -6012,7 +6096,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.perViewNV = true;
}
-#line 6016 "MachineIndependent/glslang_tab.cpp"
+#line 6100 "MachineIndependent/glslang_tab.cpp"
break;
case 140: /* interpolation_qualifier: PERTASKNV */
@@ -6024,7 +6108,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.perTaskNV = true;
}
-#line 6028 "MachineIndependent/glslang_tab.cpp"
+#line 6112 "MachineIndependent/glslang_tab.cpp"
break;
case 141: /* layout_qualifier: LAYOUT LEFT_PAREN layout_qualifier_id_list RIGHT_PAREN */
@@ -6032,7 +6116,7 @@ yyreduce:
{
(yyval.interm.type) = (yyvsp[-1].interm.type);
}
-#line 6036 "MachineIndependent/glslang_tab.cpp"
+#line 6120 "MachineIndependent/glslang_tab.cpp"
break;
case 142: /* layout_qualifier_id_list: layout_qualifier_id */
@@ -6040,7 +6124,7 @@ yyreduce:
{
(yyval.interm.type) = (yyvsp[0].interm.type);
}
-#line 6044 "MachineIndependent/glslang_tab.cpp"
+#line 6128 "MachineIndependent/glslang_tab.cpp"
break;
case 143: /* layout_qualifier_id_list: layout_qualifier_id_list COMMA layout_qualifier_id */
@@ -6050,7 +6134,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 6054 "MachineIndependent/glslang_tab.cpp"
+#line 6138 "MachineIndependent/glslang_tab.cpp"
break;
case 144: /* layout_qualifier_id: IDENTIFIER */
@@ -6059,7 +6143,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string);
}
-#line 6063 "MachineIndependent/glslang_tab.cpp"
+#line 6147 "MachineIndependent/glslang_tab.cpp"
break;
case 145: /* layout_qualifier_id: IDENTIFIER EQUAL constant_expression */
@@ -6068,7 +6152,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 6072 "MachineIndependent/glslang_tab.cpp"
+#line 6156 "MachineIndependent/glslang_tab.cpp"
break;
case 146: /* layout_qualifier_id: SHARED */
@@ -6078,7 +6162,7 @@ yyreduce:
TString strShared("shared");
parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), strShared);
}
-#line 6082 "MachineIndependent/glslang_tab.cpp"
+#line 6166 "MachineIndependent/glslang_tab.cpp"
break;
case 147: /* precise_qualifier: PRECISE */
@@ -6089,7 +6173,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.noContraction = true;
}
-#line 6093 "MachineIndependent/glslang_tab.cpp"
+#line 6177 "MachineIndependent/glslang_tab.cpp"
break;
case 148: /* type_qualifier: single_type_qualifier */
@@ -6097,7 +6181,7 @@ yyreduce:
{
(yyval.interm.type) = (yyvsp[0].interm.type);
}
-#line 6101 "MachineIndependent/glslang_tab.cpp"
+#line 6185 "MachineIndependent/glslang_tab.cpp"
break;
case 149: /* type_qualifier: type_qualifier single_type_qualifier */
@@ -6110,7 +6194,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 6114 "MachineIndependent/glslang_tab.cpp"
+#line 6198 "MachineIndependent/glslang_tab.cpp"
break;
case 150: /* single_type_qualifier: storage_qualifier */
@@ -6118,7 +6202,7 @@ yyreduce:
{
(yyval.interm.type) = (yyvsp[0].interm.type);
}
-#line 6122 "MachineIndependent/glslang_tab.cpp"
+#line 6206 "MachineIndependent/glslang_tab.cpp"
break;
case 151: /* single_type_qualifier: layout_qualifier */
@@ -6126,7 +6210,7 @@ yyreduce:
{
(yyval.interm.type) = (yyvsp[0].interm.type);
}
-#line 6130 "MachineIndependent/glslang_tab.cpp"
+#line 6214 "MachineIndependent/glslang_tab.cpp"
break;
case 152: /* single_type_qualifier: precision_qualifier */
@@ -6135,7 +6219,7 @@ yyreduce:
parseContext.checkPrecisionQualifier((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier.precision);
(yyval.interm.type) = (yyvsp[0].interm.type);
}
-#line 6139 "MachineIndependent/glslang_tab.cpp"
+#line 6223 "MachineIndependent/glslang_tab.cpp"
break;
case 153: /* single_type_qualifier: interpolation_qualifier */
@@ -6144,7 +6228,7 @@ yyreduce:
// allow inheritance of storage qualifier from block declaration
(yyval.interm.type) = (yyvsp[0].interm.type);
}
-#line 6148 "MachineIndependent/glslang_tab.cpp"
+#line 6232 "MachineIndependent/glslang_tab.cpp"
break;
case 154: /* single_type_qualifier: invariant_qualifier */
@@ -6153,7 +6237,7 @@ yyreduce:
// allow inheritance of storage qualifier from block declaration
(yyval.interm.type) = (yyvsp[0].interm.type);
}
-#line 6157 "MachineIndependent/glslang_tab.cpp"
+#line 6241 "MachineIndependent/glslang_tab.cpp"
break;
case 155: /* single_type_qualifier: precise_qualifier */
@@ -6162,7 +6246,7 @@ yyreduce:
// allow inheritance of storage qualifier from block declaration
(yyval.interm.type) = (yyvsp[0].interm.type);
}
-#line 6166 "MachineIndependent/glslang_tab.cpp"
+#line 6250 "MachineIndependent/glslang_tab.cpp"
break;
case 156: /* single_type_qualifier: non_uniform_qualifier */
@@ -6170,7 +6254,7 @@ yyreduce:
{
(yyval.interm.type) = (yyvsp[0].interm.type);
}
-#line 6174 "MachineIndependent/glslang_tab.cpp"
+#line 6258 "MachineIndependent/glslang_tab.cpp"
break;
case 157: /* storage_qualifier: CONST */
@@ -6179,7 +6263,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 6183 "MachineIndependent/glslang_tab.cpp"
+#line 6267 "MachineIndependent/glslang_tab.cpp"
break;
case 158: /* storage_qualifier: INOUT */
@@ -6189,7 +6273,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqInOut;
}
-#line 6193 "MachineIndependent/glslang_tab.cpp"
+#line 6277 "MachineIndependent/glslang_tab.cpp"
break;
case 159: /* storage_qualifier: IN */
@@ -6200,7 +6284,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 6204 "MachineIndependent/glslang_tab.cpp"
+#line 6288 "MachineIndependent/glslang_tab.cpp"
break;
case 160: /* storage_qualifier: OUT */
@@ -6211,7 +6295,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 6215 "MachineIndependent/glslang_tab.cpp"
+#line 6299 "MachineIndependent/glslang_tab.cpp"
break;
case 161: /* storage_qualifier: CENTROID */
@@ -6223,7 +6307,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.centroid = true;
}
-#line 6227 "MachineIndependent/glslang_tab.cpp"
+#line 6311 "MachineIndependent/glslang_tab.cpp"
break;
case 162: /* storage_qualifier: UNIFORM */
@@ -6233,7 +6317,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqUniform;
}
-#line 6237 "MachineIndependent/glslang_tab.cpp"
+#line 6321 "MachineIndependent/glslang_tab.cpp"
break;
case 163: /* storage_qualifier: SHARED */
@@ -6246,7 +6330,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqShared;
}
-#line 6250 "MachineIndependent/glslang_tab.cpp"
+#line 6334 "MachineIndependent/glslang_tab.cpp"
break;
case 164: /* storage_qualifier: BUFFER */
@@ -6256,7 +6340,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqBuffer;
}
-#line 6260 "MachineIndependent/glslang_tab.cpp"
+#line 6344 "MachineIndependent/glslang_tab.cpp"
break;
case 165: /* storage_qualifier: ATTRIBUTE */
@@ -6273,7 +6357,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqVaryingIn;
}
-#line 6277 "MachineIndependent/glslang_tab.cpp"
+#line 6361 "MachineIndependent/glslang_tab.cpp"
break;
case 166: /* storage_qualifier: VARYING */
@@ -6292,7 +6376,7 @@ yyreduce:
else
(yyval.interm.type).qualifier.storage = EvqVaryingIn;
}
-#line 6296 "MachineIndependent/glslang_tab.cpp"
+#line 6380 "MachineIndependent/glslang_tab.cpp"
break;
case 167: /* storage_qualifier: PATCH */
@@ -6303,7 +6387,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.patch = true;
}
-#line 6307 "MachineIndependent/glslang_tab.cpp"
+#line 6391 "MachineIndependent/glslang_tab.cpp"
break;
case 168: /* storage_qualifier: SAMPLE */
@@ -6313,7 +6397,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.sample = true;
}
-#line 6317 "MachineIndependent/glslang_tab.cpp"
+#line 6401 "MachineIndependent/glslang_tab.cpp"
break;
case 169: /* storage_qualifier: HITATTRNV */
@@ -6326,7 +6410,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqHitAttr;
}
-#line 6330 "MachineIndependent/glslang_tab.cpp"
+#line 6414 "MachineIndependent/glslang_tab.cpp"
break;
case 170: /* storage_qualifier: HITATTREXT */
@@ -6339,7 +6423,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqHitAttr;
}
-#line 6343 "MachineIndependent/glslang_tab.cpp"
+#line 6427 "MachineIndependent/glslang_tab.cpp"
break;
case 171: /* storage_qualifier: PAYLOADNV */
@@ -6352,7 +6436,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqPayload;
}
-#line 6356 "MachineIndependent/glslang_tab.cpp"
+#line 6440 "MachineIndependent/glslang_tab.cpp"
break;
case 172: /* storage_qualifier: PAYLOADEXT */
@@ -6365,7 +6449,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqPayload;
}
-#line 6369 "MachineIndependent/glslang_tab.cpp"
+#line 6453 "MachineIndependent/glslang_tab.cpp"
break;
case 173: /* storage_qualifier: PAYLOADINNV */
@@ -6378,7 +6462,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqPayloadIn;
}
-#line 6382 "MachineIndependent/glslang_tab.cpp"
+#line 6466 "MachineIndependent/glslang_tab.cpp"
break;
case 174: /* storage_qualifier: PAYLOADINEXT */
@@ -6391,7 +6475,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqPayloadIn;
}
-#line 6395 "MachineIndependent/glslang_tab.cpp"
+#line 6479 "MachineIndependent/glslang_tab.cpp"
break;
case 175: /* storage_qualifier: CALLDATANV */
@@ -6404,7 +6488,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqCallableData;
}
-#line 6408 "MachineIndependent/glslang_tab.cpp"
+#line 6492 "MachineIndependent/glslang_tab.cpp"
break;
case 176: /* storage_qualifier: CALLDATAEXT */
@@ -6417,7 +6501,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqCallableData;
}
-#line 6421 "MachineIndependent/glslang_tab.cpp"
+#line 6505 "MachineIndependent/glslang_tab.cpp"
break;
case 177: /* storage_qualifier: CALLDATAINNV */
@@ -6429,7 +6513,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqCallableDataIn;
}
-#line 6433 "MachineIndependent/glslang_tab.cpp"
+#line 6517 "MachineIndependent/glslang_tab.cpp"
break;
case 178: /* storage_qualifier: CALLDATAINEXT */
@@ -6441,7 +6525,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqCallableDataIn;
}
-#line 6445 "MachineIndependent/glslang_tab.cpp"
+#line 6529 "MachineIndependent/glslang_tab.cpp"
break;
case 179: /* storage_qualifier: COHERENT */
@@ -6450,7 +6534,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.coherent = true;
}
-#line 6454 "MachineIndependent/glslang_tab.cpp"
+#line 6538 "MachineIndependent/glslang_tab.cpp"
break;
case 180: /* storage_qualifier: DEVICECOHERENT */
@@ -6460,7 +6544,7 @@ yyreduce:
parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent");
(yyval.interm.type).qualifier.devicecoherent = true;
}
-#line 6464 "MachineIndependent/glslang_tab.cpp"
+#line 6548 "MachineIndependent/glslang_tab.cpp"
break;
case 181: /* storage_qualifier: QUEUEFAMILYCOHERENT */
@@ -6470,7 +6554,7 @@ yyreduce:
parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "queuefamilycoherent");
(yyval.interm.type).qualifier.queuefamilycoherent = true;
}
-#line 6474 "MachineIndependent/glslang_tab.cpp"
+#line 6558 "MachineIndependent/glslang_tab.cpp"
break;
case 182: /* storage_qualifier: WORKGROUPCOHERENT */
@@ -6480,7 +6564,7 @@ yyreduce:
parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "workgroupcoherent");
(yyval.interm.type).qualifier.workgroupcoherent = true;
}
-#line 6484 "MachineIndependent/glslang_tab.cpp"
+#line 6568 "MachineIndependent/glslang_tab.cpp"
break;
case 183: /* storage_qualifier: SUBGROUPCOHERENT */
@@ -6490,7 +6574,7 @@ yyreduce:
parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "subgroupcoherent");
(yyval.interm.type).qualifier.subgroupcoherent = true;
}
-#line 6494 "MachineIndependent/glslang_tab.cpp"
+#line 6578 "MachineIndependent/glslang_tab.cpp"
break;
case 184: /* storage_qualifier: NONPRIVATE */
@@ -6500,7 +6584,7 @@ yyreduce:
parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "nonprivate");
(yyval.interm.type).qualifier.nonprivate = true;
}
-#line 6504 "MachineIndependent/glslang_tab.cpp"
+#line 6588 "MachineIndependent/glslang_tab.cpp"
break;
case 185: /* storage_qualifier: SHADERCALLCOHERENT */
@@ -6510,7 +6594,7 @@ yyreduce:
parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_ray_tracing, "shadercallcoherent");
(yyval.interm.type).qualifier.shadercallcoherent = true;
}
-#line 6514 "MachineIndependent/glslang_tab.cpp"
+#line 6598 "MachineIndependent/glslang_tab.cpp"
break;
case 186: /* storage_qualifier: VOLATILE */
@@ -6519,7 +6603,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.volatil = true;
}
-#line 6523 "MachineIndependent/glslang_tab.cpp"
+#line 6607 "MachineIndependent/glslang_tab.cpp"
break;
case 187: /* storage_qualifier: RESTRICT */
@@ -6528,7 +6612,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.restrict = true;
}
-#line 6532 "MachineIndependent/glslang_tab.cpp"
+#line 6616 "MachineIndependent/glslang_tab.cpp"
break;
case 188: /* storage_qualifier: READONLY */
@@ -6537,7 +6621,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.readonly = true;
}
-#line 6541 "MachineIndependent/glslang_tab.cpp"
+#line 6625 "MachineIndependent/glslang_tab.cpp"
break;
case 189: /* storage_qualifier: WRITEONLY */
@@ -6546,7 +6630,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.writeonly = true;
}
-#line 6550 "MachineIndependent/glslang_tab.cpp"
+#line 6634 "MachineIndependent/glslang_tab.cpp"
break;
case 190: /* storage_qualifier: SUBROUTINE */
@@ -6557,7 +6641,7 @@ yyreduce:
parseContext.unimplemented((yyvsp[0].lex).loc, "subroutine");
(yyval.interm.type).init((yyvsp[0].lex).loc);
}
-#line 6561 "MachineIndependent/glslang_tab.cpp"
+#line 6645 "MachineIndependent/glslang_tab.cpp"
break;
case 191: /* storage_qualifier: SUBROUTINE LEFT_PAREN type_name_list RIGHT_PAREN */
@@ -6568,7 +6652,7 @@ yyreduce:
parseContext.unimplemented((yyvsp[-3].lex).loc, "subroutine");
(yyval.interm.type).init((yyvsp[-3].lex).loc);
}
-#line 6572 "MachineIndependent/glslang_tab.cpp"
+#line 6656 "MachineIndependent/glslang_tab.cpp"
break;
case 192: /* non_uniform_qualifier: NONUNIFORM */
@@ -6577,7 +6661,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.nonUniform = true;
}
-#line 6581 "MachineIndependent/glslang_tab.cpp"
+#line 6665 "MachineIndependent/glslang_tab.cpp"
break;
case 193: /* type_name_list: IDENTIFIER */
@@ -6585,7 +6669,7 @@ yyreduce:
{
// TODO
}
-#line 6589 "MachineIndependent/glslang_tab.cpp"
+#line 6673 "MachineIndependent/glslang_tab.cpp"
break;
case 194: /* type_name_list: type_name_list COMMA IDENTIFIER */
@@ -6595,7 +6679,7 @@ yyreduce:
// 1) make sure each identifier is a type declared earlier with SUBROUTINE
// 2) save all of the identifiers for future comparison with the declared function
}
-#line 6599 "MachineIndependent/glslang_tab.cpp"
+#line 6683 "MachineIndependent/glslang_tab.cpp"
break;
case 195: /* type_specifier: type_specifier_nonarray type_parameter_specifier_opt */
@@ -6605,7 +6689,7 @@ yyreduce:
(yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
(yyval.interm.type).typeParameters = (yyvsp[0].interm.typeParameters);
}
-#line 6609 "MachineIndependent/glslang_tab.cpp"
+#line 6693 "MachineIndependent/glslang_tab.cpp"
break;
case 196: /* type_specifier: type_specifier_nonarray type_parameter_specifier_opt array_specifier */
@@ -6617,7 +6701,7 @@ yyreduce:
(yyval.interm.type).typeParameters = (yyvsp[-1].interm.typeParameters);
(yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes;
}
-#line 6621 "MachineIndependent/glslang_tab.cpp"
+#line 6705 "MachineIndependent/glslang_tab.cpp"
break;
case 197: /* array_specifier: LEFT_BRACKET RIGHT_BRACKET */
@@ -6627,7 +6711,7 @@ yyreduce:
(yyval.interm).arraySizes = new TArraySizes;
(yyval.interm).arraySizes->addInnerSize();
}
-#line 6631 "MachineIndependent/glslang_tab.cpp"
+#line 6715 "MachineIndependent/glslang_tab.cpp"
break;
case 198: /* array_specifier: LEFT_BRACKET conditional_expression RIGHT_BRACKET */
@@ -6640,7 +6724,7 @@ yyreduce:
parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
(yyval.interm).arraySizes->addInnerSize(size);
}
-#line 6644 "MachineIndependent/glslang_tab.cpp"
+#line 6728 "MachineIndependent/glslang_tab.cpp"
break;
case 199: /* array_specifier: array_specifier LEFT_BRACKET RIGHT_BRACKET */
@@ -6649,7 +6733,7 @@ yyreduce:
(yyval.interm) = (yyvsp[-2].interm);
(yyval.interm).arraySizes->addInnerSize();
}
-#line 6653 "MachineIndependent/glslang_tab.cpp"
+#line 6737 "MachineIndependent/glslang_tab.cpp"
break;
case 200: /* array_specifier: array_specifier LEFT_BRACKET conditional_expression RIGHT_BRACKET */
@@ -6661,7 +6745,7 @@ yyreduce:
parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
(yyval.interm).arraySizes->addInnerSize(size);
}
-#line 6665 "MachineIndependent/glslang_tab.cpp"
+#line 6749 "MachineIndependent/glslang_tab.cpp"
break;
case 201: /* type_parameter_specifier_opt: type_parameter_specifier */
@@ -6669,7 +6753,7 @@ yyreduce:
{
(yyval.interm.typeParameters) = (yyvsp[0].interm.typeParameters);
}
-#line 6673 "MachineIndependent/glslang_tab.cpp"
+#line 6757 "MachineIndependent/glslang_tab.cpp"
break;
case 202: /* type_parameter_specifier_opt: %empty */
@@ -6677,7 +6761,7 @@ yyreduce:
{
(yyval.interm.typeParameters) = 0;
}
-#line 6681 "MachineIndependent/glslang_tab.cpp"
+#line 6765 "MachineIndependent/glslang_tab.cpp"
break;
case 203: /* type_parameter_specifier: LEFT_ANGLE type_parameter_specifier_list RIGHT_ANGLE */
@@ -6685,7 +6769,7 @@ yyreduce:
{
(yyval.interm.typeParameters) = (yyvsp[-1].interm.typeParameters);
}
-#line 6689 "MachineIndependent/glslang_tab.cpp"
+#line 6773 "MachineIndependent/glslang_tab.cpp"
break;
case 204: /* type_parameter_specifier_list: unary_expression */
@@ -6697,7 +6781,7 @@ yyreduce:
parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter");
(yyval.interm.typeParameters)->addInnerSize(size);
}
-#line 6701 "MachineIndependent/glslang_tab.cpp"
+#line 6785 "MachineIndependent/glslang_tab.cpp"
break;
case 205: /* type_parameter_specifier_list: type_parameter_specifier_list COMMA unary_expression */
@@ -6709,7 +6793,7 @@ yyreduce:
parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter");
(yyval.interm.typeParameters)->addInnerSize(size);
}
-#line 6713 "MachineIndependent/glslang_tab.cpp"
+#line 6797 "MachineIndependent/glslang_tab.cpp"
break;
case 206: /* type_specifier_nonarray: VOID */
@@ -6718,7 +6802,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtVoid;
}
-#line 6722 "MachineIndependent/glslang_tab.cpp"
+#line 6806 "MachineIndependent/glslang_tab.cpp"
break;
case 207: /* type_specifier_nonarray: FLOAT */
@@ -6727,7 +6811,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
}
-#line 6731 "MachineIndependent/glslang_tab.cpp"
+#line 6815 "MachineIndependent/glslang_tab.cpp"
break;
case 208: /* type_specifier_nonarray: INT */
@@ -6736,7 +6820,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt;
}
-#line 6740 "MachineIndependent/glslang_tab.cpp"
+#line 6824 "MachineIndependent/glslang_tab.cpp"
break;
case 209: /* type_specifier_nonarray: UINT */
@@ -6746,7 +6830,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint;
}
-#line 6750 "MachineIndependent/glslang_tab.cpp"
+#line 6834 "MachineIndependent/glslang_tab.cpp"
break;
case 210: /* type_specifier_nonarray: BOOL */
@@ -6755,7 +6839,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtBool;
}
-#line 6759 "MachineIndependent/glslang_tab.cpp"
+#line 6843 "MachineIndependent/glslang_tab.cpp"
break;
case 211: /* type_specifier_nonarray: VEC2 */
@@ -6765,7 +6849,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setVector(2);
}
-#line 6769 "MachineIndependent/glslang_tab.cpp"
+#line 6853 "MachineIndependent/glslang_tab.cpp"
break;
case 212: /* type_specifier_nonarray: VEC3 */
@@ -6775,7 +6859,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setVector(3);
}
-#line 6779 "MachineIndependent/glslang_tab.cpp"
+#line 6863 "MachineIndependent/glslang_tab.cpp"
break;
case 213: /* type_specifier_nonarray: VEC4 */
@@ -6785,7 +6869,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setVector(4);
}
-#line 6789 "MachineIndependent/glslang_tab.cpp"
+#line 6873 "MachineIndependent/glslang_tab.cpp"
break;
case 214: /* type_specifier_nonarray: BVEC2 */
@@ -6795,7 +6879,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtBool;
(yyval.interm.type).setVector(2);
}
-#line 6799 "MachineIndependent/glslang_tab.cpp"
+#line 6883 "MachineIndependent/glslang_tab.cpp"
break;
case 215: /* type_specifier_nonarray: BVEC3 */
@@ -6805,7 +6889,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtBool;
(yyval.interm.type).setVector(3);
}
-#line 6809 "MachineIndependent/glslang_tab.cpp"
+#line 6893 "MachineIndependent/glslang_tab.cpp"
break;
case 216: /* type_specifier_nonarray: BVEC4 */
@@ -6815,7 +6899,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtBool;
(yyval.interm.type).setVector(4);
}
-#line 6819 "MachineIndependent/glslang_tab.cpp"
+#line 6903 "MachineIndependent/glslang_tab.cpp"
break;
case 217: /* type_specifier_nonarray: IVEC2 */
@@ -6825,7 +6909,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtInt;
(yyval.interm.type).setVector(2);
}
-#line 6829 "MachineIndependent/glslang_tab.cpp"
+#line 6913 "MachineIndependent/glslang_tab.cpp"
break;
case 218: /* type_specifier_nonarray: IVEC3 */
@@ -6835,7 +6919,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtInt;
(yyval.interm.type).setVector(3);
}
-#line 6839 "MachineIndependent/glslang_tab.cpp"
+#line 6923 "MachineIndependent/glslang_tab.cpp"
break;
case 219: /* type_specifier_nonarray: IVEC4 */
@@ -6845,7 +6929,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtInt;
(yyval.interm.type).setVector(4);
}
-#line 6849 "MachineIndependent/glslang_tab.cpp"
+#line 6933 "MachineIndependent/glslang_tab.cpp"
break;
case 220: /* type_specifier_nonarray: UVEC2 */
@@ -6856,7 +6940,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtUint;
(yyval.interm.type).setVector(2);
}
-#line 6860 "MachineIndependent/glslang_tab.cpp"
+#line 6944 "MachineIndependent/glslang_tab.cpp"
break;
case 221: /* type_specifier_nonarray: UVEC3 */
@@ -6867,7 +6951,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtUint;
(yyval.interm.type).setVector(3);
}
-#line 6871 "MachineIndependent/glslang_tab.cpp"
+#line 6955 "MachineIndependent/glslang_tab.cpp"
break;
case 222: /* type_specifier_nonarray: UVEC4 */
@@ -6878,7 +6962,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtUint;
(yyval.interm.type).setVector(4);
}
-#line 6882 "MachineIndependent/glslang_tab.cpp"
+#line 6966 "MachineIndependent/glslang_tab.cpp"
break;
case 223: /* type_specifier_nonarray: MAT2 */
@@ -6888,7 +6972,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(2, 2);
}
-#line 6892 "MachineIndependent/glslang_tab.cpp"
+#line 6976 "MachineIndependent/glslang_tab.cpp"
break;
case 224: /* type_specifier_nonarray: MAT3 */
@@ -6898,7 +6982,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(3, 3);
}
-#line 6902 "MachineIndependent/glslang_tab.cpp"
+#line 6986 "MachineIndependent/glslang_tab.cpp"
break;
case 225: /* type_specifier_nonarray: MAT4 */
@@ -6908,7 +6992,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(4, 4);
}
-#line 6912 "MachineIndependent/glslang_tab.cpp"
+#line 6996 "MachineIndependent/glslang_tab.cpp"
break;
case 226: /* type_specifier_nonarray: MAT2X2 */
@@ -6918,7 +7002,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(2, 2);
}
-#line 6922 "MachineIndependent/glslang_tab.cpp"
+#line 7006 "MachineIndependent/glslang_tab.cpp"
break;
case 227: /* type_specifier_nonarray: MAT2X3 */
@@ -6928,7 +7012,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(2, 3);
}
-#line 6932 "MachineIndependent/glslang_tab.cpp"
+#line 7016 "MachineIndependent/glslang_tab.cpp"
break;
case 228: /* type_specifier_nonarray: MAT2X4 */
@@ -6938,7 +7022,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(2, 4);
}
-#line 6942 "MachineIndependent/glslang_tab.cpp"
+#line 7026 "MachineIndependent/glslang_tab.cpp"
break;
case 229: /* type_specifier_nonarray: MAT3X2 */
@@ -6948,7 +7032,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(3, 2);
}
-#line 6952 "MachineIndependent/glslang_tab.cpp"
+#line 7036 "MachineIndependent/glslang_tab.cpp"
break;
case 230: /* type_specifier_nonarray: MAT3X3 */
@@ -6958,7 +7042,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(3, 3);
}
-#line 6962 "MachineIndependent/glslang_tab.cpp"
+#line 7046 "MachineIndependent/glslang_tab.cpp"
break;
case 231: /* type_specifier_nonarray: MAT3X4 */
@@ -6968,7 +7052,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(3, 4);
}
-#line 6972 "MachineIndependent/glslang_tab.cpp"
+#line 7056 "MachineIndependent/glslang_tab.cpp"
break;
case 232: /* type_specifier_nonarray: MAT4X2 */
@@ -6978,7 +7062,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(4, 2);
}
-#line 6982 "MachineIndependent/glslang_tab.cpp"
+#line 7066 "MachineIndependent/glslang_tab.cpp"
break;
case 233: /* type_specifier_nonarray: MAT4X3 */
@@ -6988,7 +7072,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(4, 3);
}
-#line 6992 "MachineIndependent/glslang_tab.cpp"
+#line 7076 "MachineIndependent/glslang_tab.cpp"
break;
case 234: /* type_specifier_nonarray: MAT4X4 */
@@ -6998,7 +7082,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(4, 4);
}
-#line 7002 "MachineIndependent/glslang_tab.cpp"
+#line 7086 "MachineIndependent/glslang_tab.cpp"
break;
case 235: /* type_specifier_nonarray: DOUBLE */
@@ -7010,7 +7094,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
}
-#line 7014 "MachineIndependent/glslang_tab.cpp"
+#line 7098 "MachineIndependent/glslang_tab.cpp"
break;
case 236: /* type_specifier_nonarray: FLOAT16_T */
@@ -7020,7 +7104,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat16;
}
-#line 7024 "MachineIndependent/glslang_tab.cpp"
+#line 7108 "MachineIndependent/glslang_tab.cpp"
break;
case 237: /* type_specifier_nonarray: FLOAT32_T */
@@ -7030,7 +7114,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
}
-#line 7034 "MachineIndependent/glslang_tab.cpp"
+#line 7118 "MachineIndependent/glslang_tab.cpp"
break;
case 238: /* type_specifier_nonarray: FLOAT64_T */
@@ -7040,7 +7124,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
}
-#line 7044 "MachineIndependent/glslang_tab.cpp"
+#line 7128 "MachineIndependent/glslang_tab.cpp"
break;
case 239: /* type_specifier_nonarray: INT8_T */
@@ -7050,7 +7134,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt8;
}
-#line 7054 "MachineIndependent/glslang_tab.cpp"
+#line 7138 "MachineIndependent/glslang_tab.cpp"
break;
case 240: /* type_specifier_nonarray: UINT8_T */
@@ -7060,7 +7144,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint8;
}
-#line 7064 "MachineIndependent/glslang_tab.cpp"
+#line 7148 "MachineIndependent/glslang_tab.cpp"
break;
case 241: /* type_specifier_nonarray: INT16_T */
@@ -7070,7 +7154,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt16;
}
-#line 7074 "MachineIndependent/glslang_tab.cpp"
+#line 7158 "MachineIndependent/glslang_tab.cpp"
break;
case 242: /* type_specifier_nonarray: UINT16_T */
@@ -7080,7 +7164,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint16;
}
-#line 7084 "MachineIndependent/glslang_tab.cpp"
+#line 7168 "MachineIndependent/glslang_tab.cpp"
break;
case 243: /* type_specifier_nonarray: INT32_T */
@@ -7090,7 +7174,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt;
}
-#line 7094 "MachineIndependent/glslang_tab.cpp"
+#line 7178 "MachineIndependent/glslang_tab.cpp"
break;
case 244: /* type_specifier_nonarray: UINT32_T */
@@ -7100,7 +7184,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint;
}
-#line 7104 "MachineIndependent/glslang_tab.cpp"
+#line 7188 "MachineIndependent/glslang_tab.cpp"
break;
case 245: /* type_specifier_nonarray: INT64_T */
@@ -7110,7 +7194,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt64;
}
-#line 7114 "MachineIndependent/glslang_tab.cpp"
+#line 7198 "MachineIndependent/glslang_tab.cpp"
break;
case 246: /* type_specifier_nonarray: UINT64_T */
@@ -7120,7 +7204,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint64;
}
-#line 7124 "MachineIndependent/glslang_tab.cpp"
+#line 7208 "MachineIndependent/glslang_tab.cpp"
break;
case 247: /* type_specifier_nonarray: DVEC2 */
@@ -7133,7 +7217,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setVector(2);
}
-#line 7137 "MachineIndependent/glslang_tab.cpp"
+#line 7221 "MachineIndependent/glslang_tab.cpp"
break;
case 248: /* type_specifier_nonarray: DVEC3 */
@@ -7146,7 +7230,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setVector(3);
}
-#line 7150 "MachineIndependent/glslang_tab.cpp"
+#line 7234 "MachineIndependent/glslang_tab.cpp"
break;
case 249: /* type_specifier_nonarray: DVEC4 */
@@ -7159,7 +7243,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setVector(4);
}
-#line 7163 "MachineIndependent/glslang_tab.cpp"
+#line 7247 "MachineIndependent/glslang_tab.cpp"
break;
case 250: /* type_specifier_nonarray: F16VEC2 */
@@ -7170,7 +7254,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setVector(2);
}
-#line 7174 "MachineIndependent/glslang_tab.cpp"
+#line 7258 "MachineIndependent/glslang_tab.cpp"
break;
case 251: /* type_specifier_nonarray: F16VEC3 */
@@ -7181,7 +7265,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setVector(3);
}
-#line 7185 "MachineIndependent/glslang_tab.cpp"
+#line 7269 "MachineIndependent/glslang_tab.cpp"
break;
case 252: /* type_specifier_nonarray: F16VEC4 */
@@ -7192,7 +7276,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setVector(4);
}
-#line 7196 "MachineIndependent/glslang_tab.cpp"
+#line 7280 "MachineIndependent/glslang_tab.cpp"
break;
case 253: /* type_specifier_nonarray: F32VEC2 */
@@ -7203,7 +7287,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setVector(2);
}
-#line 7207 "MachineIndependent/glslang_tab.cpp"
+#line 7291 "MachineIndependent/glslang_tab.cpp"
break;
case 254: /* type_specifier_nonarray: F32VEC3 */
@@ -7214,7 +7298,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setVector(3);
}
-#line 7218 "MachineIndependent/glslang_tab.cpp"
+#line 7302 "MachineIndependent/glslang_tab.cpp"
break;
case 255: /* type_specifier_nonarray: F32VEC4 */
@@ -7225,7 +7309,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setVector(4);
}
-#line 7229 "MachineIndependent/glslang_tab.cpp"
+#line 7313 "MachineIndependent/glslang_tab.cpp"
break;
case 256: /* type_specifier_nonarray: F64VEC2 */
@@ -7236,7 +7320,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setVector(2);
}
-#line 7240 "MachineIndependent/glslang_tab.cpp"
+#line 7324 "MachineIndependent/glslang_tab.cpp"
break;
case 257: /* type_specifier_nonarray: F64VEC3 */
@@ -7247,7 +7331,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setVector(3);
}
-#line 7251 "MachineIndependent/glslang_tab.cpp"
+#line 7335 "MachineIndependent/glslang_tab.cpp"
break;
case 258: /* type_specifier_nonarray: F64VEC4 */
@@ -7258,7 +7342,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setVector(4);
}
-#line 7262 "MachineIndependent/glslang_tab.cpp"
+#line 7346 "MachineIndependent/glslang_tab.cpp"
break;
case 259: /* type_specifier_nonarray: I8VEC2 */
@@ -7269,7 +7353,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtInt8;
(yyval.interm.type).setVector(2);
}
-#line 7273 "MachineIndependent/glslang_tab.cpp"
+#line 7357 "MachineIndependent/glslang_tab.cpp"
break;
case 260: /* type_specifier_nonarray: I8VEC3 */
@@ -7280,7 +7364,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtInt8;
(yyval.interm.type).setVector(3);
}
-#line 7284 "MachineIndependent/glslang_tab.cpp"
+#line 7368 "MachineIndependent/glslang_tab.cpp"
break;
case 261: /* type_specifier_nonarray: I8VEC4 */
@@ -7291,7 +7375,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtInt8;
(yyval.interm.type).setVector(4);
}
-#line 7295 "MachineIndependent/glslang_tab.cpp"
+#line 7379 "MachineIndependent/glslang_tab.cpp"
break;
case 262: /* type_specifier_nonarray: I16VEC2 */
@@ -7302,7 +7386,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtInt16;
(yyval.interm.type).setVector(2);
}
-#line 7306 "MachineIndependent/glslang_tab.cpp"
+#line 7390 "MachineIndependent/glslang_tab.cpp"
break;
case 263: /* type_specifier_nonarray: I16VEC3 */
@@ -7313,7 +7397,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtInt16;
(yyval.interm.type).setVector(3);
}
-#line 7317 "MachineIndependent/glslang_tab.cpp"
+#line 7401 "MachineIndependent/glslang_tab.cpp"
break;
case 264: /* type_specifier_nonarray: I16VEC4 */
@@ -7324,7 +7408,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtInt16;
(yyval.interm.type).setVector(4);
}
-#line 7328 "MachineIndependent/glslang_tab.cpp"
+#line 7412 "MachineIndependent/glslang_tab.cpp"
break;
case 265: /* type_specifier_nonarray: I32VEC2 */
@@ -7335,7 +7419,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtInt;
(yyval.interm.type).setVector(2);
}
-#line 7339 "MachineIndependent/glslang_tab.cpp"
+#line 7423 "MachineIndependent/glslang_tab.cpp"
break;
case 266: /* type_specifier_nonarray: I32VEC3 */
@@ -7346,7 +7430,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtInt;
(yyval.interm.type).setVector(3);
}
-#line 7350 "MachineIndependent/glslang_tab.cpp"
+#line 7434 "MachineIndependent/glslang_tab.cpp"
break;
case 267: /* type_specifier_nonarray: I32VEC4 */
@@ -7357,7 +7441,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtInt;
(yyval.interm.type).setVector(4);
}
-#line 7361 "MachineIndependent/glslang_tab.cpp"
+#line 7445 "MachineIndependent/glslang_tab.cpp"
break;
case 268: /* type_specifier_nonarray: I64VEC2 */
@@ -7368,7 +7452,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtInt64;
(yyval.interm.type).setVector(2);
}
-#line 7372 "MachineIndependent/glslang_tab.cpp"
+#line 7456 "MachineIndependent/glslang_tab.cpp"
break;
case 269: /* type_specifier_nonarray: I64VEC3 */
@@ -7379,7 +7463,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtInt64;
(yyval.interm.type).setVector(3);
}
-#line 7383 "MachineIndependent/glslang_tab.cpp"
+#line 7467 "MachineIndependent/glslang_tab.cpp"
break;
case 270: /* type_specifier_nonarray: I64VEC4 */
@@ -7390,7 +7474,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtInt64;
(yyval.interm.type).setVector(4);
}
-#line 7394 "MachineIndependent/glslang_tab.cpp"
+#line 7478 "MachineIndependent/glslang_tab.cpp"
break;
case 271: /* type_specifier_nonarray: U8VEC2 */
@@ -7401,7 +7485,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtUint8;
(yyval.interm.type).setVector(2);
}
-#line 7405 "MachineIndependent/glslang_tab.cpp"
+#line 7489 "MachineIndependent/glslang_tab.cpp"
break;
case 272: /* type_specifier_nonarray: U8VEC3 */
@@ -7412,7 +7496,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtUint8;
(yyval.interm.type).setVector(3);
}
-#line 7416 "MachineIndependent/glslang_tab.cpp"
+#line 7500 "MachineIndependent/glslang_tab.cpp"
break;
case 273: /* type_specifier_nonarray: U8VEC4 */
@@ -7423,7 +7507,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtUint8;
(yyval.interm.type).setVector(4);
}
-#line 7427 "MachineIndependent/glslang_tab.cpp"
+#line 7511 "MachineIndependent/glslang_tab.cpp"
break;
case 274: /* type_specifier_nonarray: U16VEC2 */
@@ -7434,7 +7518,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtUint16;
(yyval.interm.type).setVector(2);
}
-#line 7438 "MachineIndependent/glslang_tab.cpp"
+#line 7522 "MachineIndependent/glslang_tab.cpp"
break;
case 275: /* type_specifier_nonarray: U16VEC3 */
@@ -7445,7 +7529,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtUint16;
(yyval.interm.type).setVector(3);
}
-#line 7449 "MachineIndependent/glslang_tab.cpp"
+#line 7533 "MachineIndependent/glslang_tab.cpp"
break;
case 276: /* type_specifier_nonarray: U16VEC4 */
@@ -7456,7 +7540,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtUint16;
(yyval.interm.type).setVector(4);
}
-#line 7460 "MachineIndependent/glslang_tab.cpp"
+#line 7544 "MachineIndependent/glslang_tab.cpp"
break;
case 277: /* type_specifier_nonarray: U32VEC2 */
@@ -7467,7 +7551,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtUint;
(yyval.interm.type).setVector(2);
}
-#line 7471 "MachineIndependent/glslang_tab.cpp"
+#line 7555 "MachineIndependent/glslang_tab.cpp"
break;
case 278: /* type_specifier_nonarray: U32VEC3 */
@@ -7478,7 +7562,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtUint;
(yyval.interm.type).setVector(3);
}
-#line 7482 "MachineIndependent/glslang_tab.cpp"
+#line 7566 "MachineIndependent/glslang_tab.cpp"
break;
case 279: /* type_specifier_nonarray: U32VEC4 */
@@ -7489,7 +7573,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtUint;
(yyval.interm.type).setVector(4);
}
-#line 7493 "MachineIndependent/glslang_tab.cpp"
+#line 7577 "MachineIndependent/glslang_tab.cpp"
break;
case 280: /* type_specifier_nonarray: U64VEC2 */
@@ -7500,7 +7584,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtUint64;
(yyval.interm.type).setVector(2);
}
-#line 7504 "MachineIndependent/glslang_tab.cpp"
+#line 7588 "MachineIndependent/glslang_tab.cpp"
break;
case 281: /* type_specifier_nonarray: U64VEC3 */
@@ -7511,7 +7595,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtUint64;
(yyval.interm.type).setVector(3);
}
-#line 7515 "MachineIndependent/glslang_tab.cpp"
+#line 7599 "MachineIndependent/glslang_tab.cpp"
break;
case 282: /* type_specifier_nonarray: U64VEC4 */
@@ -7522,7 +7606,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtUint64;
(yyval.interm.type).setVector(4);
}
-#line 7526 "MachineIndependent/glslang_tab.cpp"
+#line 7610 "MachineIndependent/glslang_tab.cpp"
break;
case 283: /* type_specifier_nonarray: DMAT2 */
@@ -7535,7 +7619,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(2, 2);
}
-#line 7539 "MachineIndependent/glslang_tab.cpp"
+#line 7623 "MachineIndependent/glslang_tab.cpp"
break;
case 284: /* type_specifier_nonarray: DMAT3 */
@@ -7548,7 +7632,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(3, 3);
}
-#line 7552 "MachineIndependent/glslang_tab.cpp"
+#line 7636 "MachineIndependent/glslang_tab.cpp"
break;
case 285: /* type_specifier_nonarray: DMAT4 */
@@ -7561,7 +7645,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(4, 4);
}
-#line 7565 "MachineIndependent/glslang_tab.cpp"
+#line 7649 "MachineIndependent/glslang_tab.cpp"
break;
case 286: /* type_specifier_nonarray: DMAT2X2 */
@@ -7574,7 +7658,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(2, 2);
}
-#line 7578 "MachineIndependent/glslang_tab.cpp"
+#line 7662 "MachineIndependent/glslang_tab.cpp"
break;
case 287: /* type_specifier_nonarray: DMAT2X3 */
@@ -7587,7 +7671,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(2, 3);
}
-#line 7591 "MachineIndependent/glslang_tab.cpp"
+#line 7675 "MachineIndependent/glslang_tab.cpp"
break;
case 288: /* type_specifier_nonarray: DMAT2X4 */
@@ -7600,7 +7684,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(2, 4);
}
-#line 7604 "MachineIndependent/glslang_tab.cpp"
+#line 7688 "MachineIndependent/glslang_tab.cpp"
break;
case 289: /* type_specifier_nonarray: DMAT3X2 */
@@ -7613,7 +7697,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(3, 2);
}
-#line 7617 "MachineIndependent/glslang_tab.cpp"
+#line 7701 "MachineIndependent/glslang_tab.cpp"
break;
case 290: /* type_specifier_nonarray: DMAT3X3 */
@@ -7626,7 +7710,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(3, 3);
}
-#line 7630 "MachineIndependent/glslang_tab.cpp"
+#line 7714 "MachineIndependent/glslang_tab.cpp"
break;
case 291: /* type_specifier_nonarray: DMAT3X4 */
@@ -7639,7 +7723,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(3, 4);
}
-#line 7643 "MachineIndependent/glslang_tab.cpp"
+#line 7727 "MachineIndependent/glslang_tab.cpp"
break;
case 292: /* type_specifier_nonarray: DMAT4X2 */
@@ -7652,7 +7736,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(4, 2);
}
-#line 7656 "MachineIndependent/glslang_tab.cpp"
+#line 7740 "MachineIndependent/glslang_tab.cpp"
break;
case 293: /* type_specifier_nonarray: DMAT4X3 */
@@ -7665,7 +7749,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(4, 3);
}
-#line 7669 "MachineIndependent/glslang_tab.cpp"
+#line 7753 "MachineIndependent/glslang_tab.cpp"
break;
case 294: /* type_specifier_nonarray: DMAT4X4 */
@@ -7678,7 +7762,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(4, 4);
}
-#line 7682 "MachineIndependent/glslang_tab.cpp"
+#line 7766 "MachineIndependent/glslang_tab.cpp"
break;
case 295: /* type_specifier_nonarray: F16MAT2 */
@@ -7689,7 +7773,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(2, 2);
}
-#line 7693 "MachineIndependent/glslang_tab.cpp"
+#line 7777 "MachineIndependent/glslang_tab.cpp"
break;
case 296: /* type_specifier_nonarray: F16MAT3 */
@@ -7700,7 +7784,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(3, 3);
}
-#line 7704 "MachineIndependent/glslang_tab.cpp"
+#line 7788 "MachineIndependent/glslang_tab.cpp"
break;
case 297: /* type_specifier_nonarray: F16MAT4 */
@@ -7711,7 +7795,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(4, 4);
}
-#line 7715 "MachineIndependent/glslang_tab.cpp"
+#line 7799 "MachineIndependent/glslang_tab.cpp"
break;
case 298: /* type_specifier_nonarray: F16MAT2X2 */
@@ -7722,7 +7806,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(2, 2);
}
-#line 7726 "MachineIndependent/glslang_tab.cpp"
+#line 7810 "MachineIndependent/glslang_tab.cpp"
break;
case 299: /* type_specifier_nonarray: F16MAT2X3 */
@@ -7733,7 +7817,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(2, 3);
}
-#line 7737 "MachineIndependent/glslang_tab.cpp"
+#line 7821 "MachineIndependent/glslang_tab.cpp"
break;
case 300: /* type_specifier_nonarray: F16MAT2X4 */
@@ -7744,7 +7828,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(2, 4);
}
-#line 7748 "MachineIndependent/glslang_tab.cpp"
+#line 7832 "MachineIndependent/glslang_tab.cpp"
break;
case 301: /* type_specifier_nonarray: F16MAT3X2 */
@@ -7755,7 +7839,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(3, 2);
}
-#line 7759 "MachineIndependent/glslang_tab.cpp"
+#line 7843 "MachineIndependent/glslang_tab.cpp"
break;
case 302: /* type_specifier_nonarray: F16MAT3X3 */
@@ -7766,7 +7850,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(3, 3);
}
-#line 7770 "MachineIndependent/glslang_tab.cpp"
+#line 7854 "MachineIndependent/glslang_tab.cpp"
break;
case 303: /* type_specifier_nonarray: F16MAT3X4 */
@@ -7777,7 +7861,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(3, 4);
}
-#line 7781 "MachineIndependent/glslang_tab.cpp"
+#line 7865 "MachineIndependent/glslang_tab.cpp"
break;
case 304: /* type_specifier_nonarray: F16MAT4X2 */
@@ -7788,7 +7872,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(4, 2);
}
-#line 7792 "MachineIndependent/glslang_tab.cpp"
+#line 7876 "MachineIndependent/glslang_tab.cpp"
break;
case 305: /* type_specifier_nonarray: F16MAT4X3 */
@@ -7799,7 +7883,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(4, 3);
}
-#line 7803 "MachineIndependent/glslang_tab.cpp"
+#line 7887 "MachineIndependent/glslang_tab.cpp"
break;
case 306: /* type_specifier_nonarray: F16MAT4X4 */
@@ -7810,7 +7894,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(4, 4);
}
-#line 7814 "MachineIndependent/glslang_tab.cpp"
+#line 7898 "MachineIndependent/glslang_tab.cpp"
break;
case 307: /* type_specifier_nonarray: F32MAT2 */
@@ -7821,7 +7905,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(2, 2);
}
-#line 7825 "MachineIndependent/glslang_tab.cpp"
+#line 7909 "MachineIndependent/glslang_tab.cpp"
break;
case 308: /* type_specifier_nonarray: F32MAT3 */
@@ -7832,7 +7916,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(3, 3);
}
-#line 7836 "MachineIndependent/glslang_tab.cpp"
+#line 7920 "MachineIndependent/glslang_tab.cpp"
break;
case 309: /* type_specifier_nonarray: F32MAT4 */
@@ -7843,7 +7927,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(4, 4);
}
-#line 7847 "MachineIndependent/glslang_tab.cpp"
+#line 7931 "MachineIndependent/glslang_tab.cpp"
break;
case 310: /* type_specifier_nonarray: F32MAT2X2 */
@@ -7854,7 +7938,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(2, 2);
}
-#line 7858 "MachineIndependent/glslang_tab.cpp"
+#line 7942 "MachineIndependent/glslang_tab.cpp"
break;
case 311: /* type_specifier_nonarray: F32MAT2X3 */
@@ -7865,7 +7949,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(2, 3);
}
-#line 7869 "MachineIndependent/glslang_tab.cpp"
+#line 7953 "MachineIndependent/glslang_tab.cpp"
break;
case 312: /* type_specifier_nonarray: F32MAT2X4 */
@@ -7876,7 +7960,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(2, 4);
}
-#line 7880 "MachineIndependent/glslang_tab.cpp"
+#line 7964 "MachineIndependent/glslang_tab.cpp"
break;
case 313: /* type_specifier_nonarray: F32MAT3X2 */
@@ -7887,7 +7971,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(3, 2);
}
-#line 7891 "MachineIndependent/glslang_tab.cpp"
+#line 7975 "MachineIndependent/glslang_tab.cpp"
break;
case 314: /* type_specifier_nonarray: F32MAT3X3 */
@@ -7898,7 +7982,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(3, 3);
}
-#line 7902 "MachineIndependent/glslang_tab.cpp"
+#line 7986 "MachineIndependent/glslang_tab.cpp"
break;
case 315: /* type_specifier_nonarray: F32MAT3X4 */
@@ -7909,7 +7993,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(3, 4);
}
-#line 7913 "MachineIndependent/glslang_tab.cpp"
+#line 7997 "MachineIndependent/glslang_tab.cpp"
break;
case 316: /* type_specifier_nonarray: F32MAT4X2 */
@@ -7920,7 +8004,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(4, 2);
}
-#line 7924 "MachineIndependent/glslang_tab.cpp"
+#line 8008 "MachineIndependent/glslang_tab.cpp"
break;
case 317: /* type_specifier_nonarray: F32MAT4X3 */
@@ -7931,7 +8015,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(4, 3);
}
-#line 7935 "MachineIndependent/glslang_tab.cpp"
+#line 8019 "MachineIndependent/glslang_tab.cpp"
break;
case 318: /* type_specifier_nonarray: F32MAT4X4 */
@@ -7942,7 +8026,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(4, 4);
}
-#line 7946 "MachineIndependent/glslang_tab.cpp"
+#line 8030 "MachineIndependent/glslang_tab.cpp"
break;
case 319: /* type_specifier_nonarray: F64MAT2 */
@@ -7953,7 +8037,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(2, 2);
}
-#line 7957 "MachineIndependent/glslang_tab.cpp"
+#line 8041 "MachineIndependent/glslang_tab.cpp"
break;
case 320: /* type_specifier_nonarray: F64MAT3 */
@@ -7964,7 +8048,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(3, 3);
}
-#line 7968 "MachineIndependent/glslang_tab.cpp"
+#line 8052 "MachineIndependent/glslang_tab.cpp"
break;
case 321: /* type_specifier_nonarray: F64MAT4 */
@@ -7975,7 +8059,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(4, 4);
}
-#line 7979 "MachineIndependent/glslang_tab.cpp"
+#line 8063 "MachineIndependent/glslang_tab.cpp"
break;
case 322: /* type_specifier_nonarray: F64MAT2X2 */
@@ -7986,7 +8070,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(2, 2);
}
-#line 7990 "MachineIndependent/glslang_tab.cpp"
+#line 8074 "MachineIndependent/glslang_tab.cpp"
break;
case 323: /* type_specifier_nonarray: F64MAT2X3 */
@@ -7997,7 +8081,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(2, 3);
}
-#line 8001 "MachineIndependent/glslang_tab.cpp"
+#line 8085 "MachineIndependent/glslang_tab.cpp"
break;
case 324: /* type_specifier_nonarray: F64MAT2X4 */
@@ -8008,7 +8092,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(2, 4);
}
-#line 8012 "MachineIndependent/glslang_tab.cpp"
+#line 8096 "MachineIndependent/glslang_tab.cpp"
break;
case 325: /* type_specifier_nonarray: F64MAT3X2 */
@@ -8019,7 +8103,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(3, 2);
}
-#line 8023 "MachineIndependent/glslang_tab.cpp"
+#line 8107 "MachineIndependent/glslang_tab.cpp"
break;
case 326: /* type_specifier_nonarray: F64MAT3X3 */
@@ -8030,7 +8114,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(3, 3);
}
-#line 8034 "MachineIndependent/glslang_tab.cpp"
+#line 8118 "MachineIndependent/glslang_tab.cpp"
break;
case 327: /* type_specifier_nonarray: F64MAT3X4 */
@@ -8041,7 +8125,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(3, 4);
}
-#line 8045 "MachineIndependent/glslang_tab.cpp"
+#line 8129 "MachineIndependent/glslang_tab.cpp"
break;
case 328: /* type_specifier_nonarray: F64MAT4X2 */
@@ -8052,7 +8136,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(4, 2);
}
-#line 8056 "MachineIndependent/glslang_tab.cpp"
+#line 8140 "MachineIndependent/glslang_tab.cpp"
break;
case 329: /* type_specifier_nonarray: F64MAT4X3 */
@@ -8063,7 +8147,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(4, 3);
}
-#line 8067 "MachineIndependent/glslang_tab.cpp"
+#line 8151 "MachineIndependent/glslang_tab.cpp"
break;
case 330: /* type_specifier_nonarray: F64MAT4X4 */
@@ -8074,7 +8158,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(4, 4);
}
-#line 8078 "MachineIndependent/glslang_tab.cpp"
+#line 8162 "MachineIndependent/glslang_tab.cpp"
break;
case 331: /* type_specifier_nonarray: ACCSTRUCTNV */
@@ -8083,7 +8167,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtAccStruct;
}
-#line 8087 "MachineIndependent/glslang_tab.cpp"
+#line 8171 "MachineIndependent/glslang_tab.cpp"
break;
case 332: /* type_specifier_nonarray: ACCSTRUCTEXT */
@@ -8092,7 +8176,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtAccStruct;
}
-#line 8096 "MachineIndependent/glslang_tab.cpp"
+#line 8180 "MachineIndependent/glslang_tab.cpp"
break;
case 333: /* type_specifier_nonarray: RAYQUERYEXT */
@@ -8101,7 +8185,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtRayQuery;
}
-#line 8105 "MachineIndependent/glslang_tab.cpp"
+#line 8189 "MachineIndependent/glslang_tab.cpp"
break;
case 334: /* type_specifier_nonarray: ATOMIC_UINT */
@@ -8111,7 +8195,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtAtomicUint;
}
-#line 8115 "MachineIndependent/glslang_tab.cpp"
+#line 8199 "MachineIndependent/glslang_tab.cpp"
break;
case 335: /* type_specifier_nonarray: SAMPLER1D */
@@ -8121,7 +8205,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd1D);
}
-#line 8125 "MachineIndependent/glslang_tab.cpp"
+#line 8209 "MachineIndependent/glslang_tab.cpp"
break;
case 336: /* type_specifier_nonarray: SAMPLER2D */
@@ -8131,7 +8215,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd2D);
}
-#line 8135 "MachineIndependent/glslang_tab.cpp"
+#line 8219 "MachineIndependent/glslang_tab.cpp"
break;
case 337: /* type_specifier_nonarray: SAMPLER3D */
@@ -8141,7 +8225,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd3D);
}
-#line 8145 "MachineIndependent/glslang_tab.cpp"
+#line 8229 "MachineIndependent/glslang_tab.cpp"
break;
case 338: /* type_specifier_nonarray: SAMPLERCUBE */
@@ -8151,7 +8235,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, EsdCube);
}
-#line 8155 "MachineIndependent/glslang_tab.cpp"
+#line 8239 "MachineIndependent/glslang_tab.cpp"
break;
case 339: /* type_specifier_nonarray: SAMPLER2DSHADOW */
@@ -8161,7 +8245,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true);
}
-#line 8165 "MachineIndependent/glslang_tab.cpp"
+#line 8249 "MachineIndependent/glslang_tab.cpp"
break;
case 340: /* type_specifier_nonarray: SAMPLERCUBESHADOW */
@@ -8171,7 +8255,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true);
}
-#line 8175 "MachineIndependent/glslang_tab.cpp"
+#line 8259 "MachineIndependent/glslang_tab.cpp"
break;
case 341: /* type_specifier_nonarray: SAMPLER2DARRAY */
@@ -8181,7 +8265,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd2D, true);
}
-#line 8185 "MachineIndependent/glslang_tab.cpp"
+#line 8269 "MachineIndependent/glslang_tab.cpp"
break;
case 342: /* type_specifier_nonarray: SAMPLER2DARRAYSHADOW */
@@ -8191,7 +8275,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true);
}
-#line 8195 "MachineIndependent/glslang_tab.cpp"
+#line 8279 "MachineIndependent/glslang_tab.cpp"
break;
case 343: /* type_specifier_nonarray: SAMPLER1DSHADOW */
@@ -8201,7 +8285,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true);
}
-#line 8205 "MachineIndependent/glslang_tab.cpp"
+#line 8289 "MachineIndependent/glslang_tab.cpp"
break;
case 344: /* type_specifier_nonarray: SAMPLER1DARRAY */
@@ -8211,7 +8295,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd1D, true);
}
-#line 8215 "MachineIndependent/glslang_tab.cpp"
+#line 8299 "MachineIndependent/glslang_tab.cpp"
break;
case 345: /* type_specifier_nonarray: SAMPLER1DARRAYSHADOW */
@@ -8221,7 +8305,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true);
}
-#line 8225 "MachineIndependent/glslang_tab.cpp"
+#line 8309 "MachineIndependent/glslang_tab.cpp"
break;
case 346: /* type_specifier_nonarray: SAMPLERCUBEARRAY */
@@ -8231,7 +8315,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, EsdCube, true);
}
-#line 8235 "MachineIndependent/glslang_tab.cpp"
+#line 8319 "MachineIndependent/glslang_tab.cpp"
break;
case 347: /* type_specifier_nonarray: SAMPLERCUBEARRAYSHADOW */
@@ -8241,7 +8325,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true);
}
-#line 8245 "MachineIndependent/glslang_tab.cpp"
+#line 8329 "MachineIndependent/glslang_tab.cpp"
break;
case 348: /* type_specifier_nonarray: F16SAMPLER1D */
@@ -8252,7 +8336,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, Esd1D);
}
-#line 8256 "MachineIndependent/glslang_tab.cpp"
+#line 8340 "MachineIndependent/glslang_tab.cpp"
break;
case 349: /* type_specifier_nonarray: F16SAMPLER2D */
@@ -8263,7 +8347,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, Esd2D);
}
-#line 8267 "MachineIndependent/glslang_tab.cpp"
+#line 8351 "MachineIndependent/glslang_tab.cpp"
break;
case 350: /* type_specifier_nonarray: F16SAMPLER3D */
@@ -8274,7 +8358,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, Esd3D);
}
-#line 8278 "MachineIndependent/glslang_tab.cpp"
+#line 8362 "MachineIndependent/glslang_tab.cpp"
break;
case 351: /* type_specifier_nonarray: F16SAMPLERCUBE */
@@ -8285,7 +8369,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, EsdCube);
}
-#line 8289 "MachineIndependent/glslang_tab.cpp"
+#line 8373 "MachineIndependent/glslang_tab.cpp"
break;
case 352: /* type_specifier_nonarray: F16SAMPLER1DSHADOW */
@@ -8296,7 +8380,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, Esd1D, false, true);
}
-#line 8300 "MachineIndependent/glslang_tab.cpp"
+#line 8384 "MachineIndependent/glslang_tab.cpp"
break;
case 353: /* type_specifier_nonarray: F16SAMPLER2DSHADOW */
@@ -8307,7 +8391,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, true);
}
-#line 8311 "MachineIndependent/glslang_tab.cpp"
+#line 8395 "MachineIndependent/glslang_tab.cpp"
break;
case 354: /* type_specifier_nonarray: F16SAMPLERCUBESHADOW */
@@ -8318,7 +8402,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, EsdCube, false, true);
}
-#line 8322 "MachineIndependent/glslang_tab.cpp"
+#line 8406 "MachineIndependent/glslang_tab.cpp"
break;
case 355: /* type_specifier_nonarray: F16SAMPLER1DARRAY */
@@ -8329,7 +8413,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true);
}
-#line 8333 "MachineIndependent/glslang_tab.cpp"
+#line 8417 "MachineIndependent/glslang_tab.cpp"
break;
case 356: /* type_specifier_nonarray: F16SAMPLER2DARRAY */
@@ -8340,7 +8424,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true);
}
-#line 8344 "MachineIndependent/glslang_tab.cpp"
+#line 8428 "MachineIndependent/glslang_tab.cpp"
break;
case 357: /* type_specifier_nonarray: F16SAMPLER1DARRAYSHADOW */
@@ -8351,7 +8435,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true, true);
}
-#line 8355 "MachineIndependent/glslang_tab.cpp"
+#line 8439 "MachineIndependent/glslang_tab.cpp"
break;
case 358: /* type_specifier_nonarray: F16SAMPLER2DARRAYSHADOW */
@@ -8362,7 +8446,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, true);
}
-#line 8366 "MachineIndependent/glslang_tab.cpp"
+#line 8450 "MachineIndependent/glslang_tab.cpp"
break;
case 359: /* type_specifier_nonarray: F16SAMPLERCUBEARRAY */
@@ -8373,7 +8457,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true);
}
-#line 8377 "MachineIndependent/glslang_tab.cpp"
+#line 8461 "MachineIndependent/glslang_tab.cpp"
break;
case 360: /* type_specifier_nonarray: F16SAMPLERCUBEARRAYSHADOW */
@@ -8384,7 +8468,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true, true);
}
-#line 8388 "MachineIndependent/glslang_tab.cpp"
+#line 8472 "MachineIndependent/glslang_tab.cpp"
break;
case 361: /* type_specifier_nonarray: ISAMPLER1D */
@@ -8394,7 +8478,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, Esd1D);
}
-#line 8398 "MachineIndependent/glslang_tab.cpp"
+#line 8482 "MachineIndependent/glslang_tab.cpp"
break;
case 362: /* type_specifier_nonarray: ISAMPLER2D */
@@ -8404,7 +8488,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, Esd2D);
}
-#line 8408 "MachineIndependent/glslang_tab.cpp"
+#line 8492 "MachineIndependent/glslang_tab.cpp"
break;
case 363: /* type_specifier_nonarray: ISAMPLER3D */
@@ -8414,7 +8498,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, Esd3D);
}
-#line 8418 "MachineIndependent/glslang_tab.cpp"
+#line 8502 "MachineIndependent/glslang_tab.cpp"
break;
case 364: /* type_specifier_nonarray: ISAMPLERCUBE */
@@ -8424,7 +8508,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, EsdCube);
}
-#line 8428 "MachineIndependent/glslang_tab.cpp"
+#line 8512 "MachineIndependent/glslang_tab.cpp"
break;
case 365: /* type_specifier_nonarray: ISAMPLER2DARRAY */
@@ -8434,7 +8518,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, Esd2D, true);
}
-#line 8438 "MachineIndependent/glslang_tab.cpp"
+#line 8522 "MachineIndependent/glslang_tab.cpp"
break;
case 366: /* type_specifier_nonarray: USAMPLER2D */
@@ -8444,7 +8528,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, Esd2D);
}
-#line 8448 "MachineIndependent/glslang_tab.cpp"
+#line 8532 "MachineIndependent/glslang_tab.cpp"
break;
case 367: /* type_specifier_nonarray: USAMPLER3D */
@@ -8454,7 +8538,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, Esd3D);
}
-#line 8458 "MachineIndependent/glslang_tab.cpp"
+#line 8542 "MachineIndependent/glslang_tab.cpp"
break;
case 368: /* type_specifier_nonarray: USAMPLERCUBE */
@@ -8464,7 +8548,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, EsdCube);
}
-#line 8468 "MachineIndependent/glslang_tab.cpp"
+#line 8552 "MachineIndependent/glslang_tab.cpp"
break;
case 369: /* type_specifier_nonarray: ISAMPLER1DARRAY */
@@ -8474,7 +8558,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, Esd1D, true);
}
-#line 8478 "MachineIndependent/glslang_tab.cpp"
+#line 8562 "MachineIndependent/glslang_tab.cpp"
break;
case 370: /* type_specifier_nonarray: ISAMPLERCUBEARRAY */
@@ -8484,7 +8568,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, EsdCube, true);
}
-#line 8488 "MachineIndependent/glslang_tab.cpp"
+#line 8572 "MachineIndependent/glslang_tab.cpp"
break;
case 371: /* type_specifier_nonarray: USAMPLER1D */
@@ -8494,7 +8578,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, Esd1D);
}
-#line 8498 "MachineIndependent/glslang_tab.cpp"
+#line 8582 "MachineIndependent/glslang_tab.cpp"
break;
case 372: /* type_specifier_nonarray: USAMPLER1DARRAY */
@@ -8504,7 +8588,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, Esd1D, true);
}
-#line 8508 "MachineIndependent/glslang_tab.cpp"
+#line 8592 "MachineIndependent/glslang_tab.cpp"
break;
case 373: /* type_specifier_nonarray: USAMPLERCUBEARRAY */
@@ -8514,7 +8598,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, EsdCube, true);
}
-#line 8518 "MachineIndependent/glslang_tab.cpp"
+#line 8602 "MachineIndependent/glslang_tab.cpp"
break;
case 374: /* type_specifier_nonarray: TEXTURECUBEARRAY */
@@ -8524,7 +8608,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true);
}
-#line 8528 "MachineIndependent/glslang_tab.cpp"
+#line 8612 "MachineIndependent/glslang_tab.cpp"
break;
case 375: /* type_specifier_nonarray: ITEXTURECUBEARRAY */
@@ -8534,7 +8618,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true);
}
-#line 8538 "MachineIndependent/glslang_tab.cpp"
+#line 8622 "MachineIndependent/glslang_tab.cpp"
break;
case 376: /* type_specifier_nonarray: UTEXTURECUBEARRAY */
@@ -8544,7 +8628,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true);
}
-#line 8548 "MachineIndependent/glslang_tab.cpp"
+#line 8632 "MachineIndependent/glslang_tab.cpp"
break;
case 377: /* type_specifier_nonarray: USAMPLER2DARRAY */
@@ -8554,7 +8638,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, Esd2D, true);
}
-#line 8558 "MachineIndependent/glslang_tab.cpp"
+#line 8642 "MachineIndependent/glslang_tab.cpp"
break;
case 378: /* type_specifier_nonarray: TEXTURE2D */
@@ -8564,7 +8648,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D);
}
-#line 8568 "MachineIndependent/glslang_tab.cpp"
+#line 8652 "MachineIndependent/glslang_tab.cpp"
break;
case 379: /* type_specifier_nonarray: TEXTURE3D */
@@ -8574,7 +8658,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D);
}
-#line 8578 "MachineIndependent/glslang_tab.cpp"
+#line 8662 "MachineIndependent/glslang_tab.cpp"
break;
case 380: /* type_specifier_nonarray: TEXTURE2DARRAY */
@@ -8584,7 +8668,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true);
}
-#line 8588 "MachineIndependent/glslang_tab.cpp"
+#line 8672 "MachineIndependent/glslang_tab.cpp"
break;
case 381: /* type_specifier_nonarray: TEXTURECUBE */
@@ -8594,7 +8678,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube);
}
-#line 8598 "MachineIndependent/glslang_tab.cpp"
+#line 8682 "MachineIndependent/glslang_tab.cpp"
break;
case 382: /* type_specifier_nonarray: ITEXTURE2D */
@@ -8604,7 +8688,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, Esd2D);
}
-#line 8608 "MachineIndependent/glslang_tab.cpp"
+#line 8692 "MachineIndependent/glslang_tab.cpp"
break;
case 383: /* type_specifier_nonarray: ITEXTURE3D */
@@ -8614,7 +8698,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, Esd3D);
}
-#line 8618 "MachineIndependent/glslang_tab.cpp"
+#line 8702 "MachineIndependent/glslang_tab.cpp"
break;
case 384: /* type_specifier_nonarray: ITEXTURECUBE */
@@ -8624,7 +8708,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, EsdCube);
}
-#line 8628 "MachineIndependent/glslang_tab.cpp"
+#line 8712 "MachineIndependent/glslang_tab.cpp"
break;
case 385: /* type_specifier_nonarray: ITEXTURE2DARRAY */
@@ -8634,7 +8718,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true);
}
-#line 8638 "MachineIndependent/glslang_tab.cpp"
+#line 8722 "MachineIndependent/glslang_tab.cpp"
break;
case 386: /* type_specifier_nonarray: UTEXTURE2D */
@@ -8644,7 +8728,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, Esd2D);
}
-#line 8648 "MachineIndependent/glslang_tab.cpp"
+#line 8732 "MachineIndependent/glslang_tab.cpp"
break;
case 387: /* type_specifier_nonarray: UTEXTURE3D */
@@ -8654,7 +8738,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, Esd3D);
}
-#line 8658 "MachineIndependent/glslang_tab.cpp"
+#line 8742 "MachineIndependent/glslang_tab.cpp"
break;
case 388: /* type_specifier_nonarray: UTEXTURECUBE */
@@ -8664,7 +8748,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, EsdCube);
}
-#line 8668 "MachineIndependent/glslang_tab.cpp"
+#line 8752 "MachineIndependent/glslang_tab.cpp"
break;
case 389: /* type_specifier_nonarray: UTEXTURE2DARRAY */
@@ -8674,7 +8758,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true);
}
-#line 8678 "MachineIndependent/glslang_tab.cpp"
+#line 8762 "MachineIndependent/glslang_tab.cpp"
break;
case 390: /* type_specifier_nonarray: SAMPLER */
@@ -8684,7 +8768,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setPureSampler(false);
}
-#line 8688 "MachineIndependent/glslang_tab.cpp"
+#line 8772 "MachineIndependent/glslang_tab.cpp"
break;
case 391: /* type_specifier_nonarray: SAMPLERSHADOW */
@@ -8694,7 +8778,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setPureSampler(true);
}
-#line 8698 "MachineIndependent/glslang_tab.cpp"
+#line 8782 "MachineIndependent/glslang_tab.cpp"
break;
case 392: /* type_specifier_nonarray: SAMPLER2DRECT */
@@ -8704,7 +8788,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, EsdRect);
}
-#line 8708 "MachineIndependent/glslang_tab.cpp"
+#line 8792 "MachineIndependent/glslang_tab.cpp"
break;
case 393: /* type_specifier_nonarray: SAMPLER2DRECTSHADOW */
@@ -8714,7 +8798,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true);
}
-#line 8718 "MachineIndependent/glslang_tab.cpp"
+#line 8802 "MachineIndependent/glslang_tab.cpp"
break;
case 394: /* type_specifier_nonarray: F16SAMPLER2DRECT */
@@ -8725,7 +8809,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, EsdRect);
}
-#line 8729 "MachineIndependent/glslang_tab.cpp"
+#line 8813 "MachineIndependent/glslang_tab.cpp"
break;
case 395: /* type_specifier_nonarray: F16SAMPLER2DRECTSHADOW */
@@ -8736,7 +8820,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, EsdRect, false, true);
}
-#line 8740 "MachineIndependent/glslang_tab.cpp"
+#line 8824 "MachineIndependent/glslang_tab.cpp"
break;
case 396: /* type_specifier_nonarray: ISAMPLER2DRECT */
@@ -8746,7 +8830,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, EsdRect);
}
-#line 8750 "MachineIndependent/glslang_tab.cpp"
+#line 8834 "MachineIndependent/glslang_tab.cpp"
break;
case 397: /* type_specifier_nonarray: USAMPLER2DRECT */
@@ -8756,7 +8840,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, EsdRect);
}
-#line 8760 "MachineIndependent/glslang_tab.cpp"
+#line 8844 "MachineIndependent/glslang_tab.cpp"
break;
case 398: /* type_specifier_nonarray: SAMPLERBUFFER */
@@ -8766,7 +8850,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, EsdBuffer);
}
-#line 8770 "MachineIndependent/glslang_tab.cpp"
+#line 8854 "MachineIndependent/glslang_tab.cpp"
break;
case 399: /* type_specifier_nonarray: F16SAMPLERBUFFER */
@@ -8777,7 +8861,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, EsdBuffer);
}
-#line 8781 "MachineIndependent/glslang_tab.cpp"
+#line 8865 "MachineIndependent/glslang_tab.cpp"
break;
case 400: /* type_specifier_nonarray: ISAMPLERBUFFER */
@@ -8787,7 +8871,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, EsdBuffer);
}
-#line 8791 "MachineIndependent/glslang_tab.cpp"
+#line 8875 "MachineIndependent/glslang_tab.cpp"
break;
case 401: /* type_specifier_nonarray: USAMPLERBUFFER */
@@ -8797,7 +8881,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, EsdBuffer);
}
-#line 8801 "MachineIndependent/glslang_tab.cpp"
+#line 8885 "MachineIndependent/glslang_tab.cpp"
break;
case 402: /* type_specifier_nonarray: SAMPLER2DMS */
@@ -8807,7 +8891,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true);
}
-#line 8811 "MachineIndependent/glslang_tab.cpp"
+#line 8895 "MachineIndependent/glslang_tab.cpp"
break;
case 403: /* type_specifier_nonarray: F16SAMPLER2DMS */
@@ -8818,7 +8902,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, false, true);
}
-#line 8822 "MachineIndependent/glslang_tab.cpp"
+#line 8906 "MachineIndependent/glslang_tab.cpp"
break;
case 404: /* type_specifier_nonarray: ISAMPLER2DMS */
@@ -8828,7 +8912,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true);
}
-#line 8832 "MachineIndependent/glslang_tab.cpp"
+#line 8916 "MachineIndependent/glslang_tab.cpp"
break;
case 405: /* type_specifier_nonarray: USAMPLER2DMS */
@@ -8838,7 +8922,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true);
}
-#line 8842 "MachineIndependent/glslang_tab.cpp"
+#line 8926 "MachineIndependent/glslang_tab.cpp"
break;
case 406: /* type_specifier_nonarray: SAMPLER2DMSARRAY */
@@ -8848,7 +8932,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true);
}
-#line 8852 "MachineIndependent/glslang_tab.cpp"
+#line 8936 "MachineIndependent/glslang_tab.cpp"
break;
case 407: /* type_specifier_nonarray: F16SAMPLER2DMSARRAY */
@@ -8859,7 +8943,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, false, true);
}
-#line 8863 "MachineIndependent/glslang_tab.cpp"
+#line 8947 "MachineIndependent/glslang_tab.cpp"
break;
case 408: /* type_specifier_nonarray: ISAMPLER2DMSARRAY */
@@ -8869,7 +8953,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true);
}
-#line 8873 "MachineIndependent/glslang_tab.cpp"
+#line 8957 "MachineIndependent/glslang_tab.cpp"
break;
case 409: /* type_specifier_nonarray: USAMPLER2DMSARRAY */
@@ -8879,7 +8963,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true);
}
-#line 8883 "MachineIndependent/glslang_tab.cpp"
+#line 8967 "MachineIndependent/glslang_tab.cpp"
break;
case 410: /* type_specifier_nonarray: TEXTURE1D */
@@ -8889,7 +8973,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D);
}
-#line 8893 "MachineIndependent/glslang_tab.cpp"
+#line 8977 "MachineIndependent/glslang_tab.cpp"
break;
case 411: /* type_specifier_nonarray: F16TEXTURE1D */
@@ -8900,7 +8984,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D);
}
-#line 8904 "MachineIndependent/glslang_tab.cpp"
+#line 8988 "MachineIndependent/glslang_tab.cpp"
break;
case 412: /* type_specifier_nonarray: F16TEXTURE2D */
@@ -8911,7 +8995,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D);
}
-#line 8915 "MachineIndependent/glslang_tab.cpp"
+#line 8999 "MachineIndependent/glslang_tab.cpp"
break;
case 413: /* type_specifier_nonarray: F16TEXTURE3D */
@@ -8922,7 +9006,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat16, Esd3D);
}
-#line 8926 "MachineIndependent/glslang_tab.cpp"
+#line 9010 "MachineIndependent/glslang_tab.cpp"
break;
case 414: /* type_specifier_nonarray: F16TEXTURECUBE */
@@ -8933,7 +9017,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube);
}
-#line 8937 "MachineIndependent/glslang_tab.cpp"
+#line 9021 "MachineIndependent/glslang_tab.cpp"
break;
case 415: /* type_specifier_nonarray: TEXTURE1DARRAY */
@@ -8943,7 +9027,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true);
}
-#line 8947 "MachineIndependent/glslang_tab.cpp"
+#line 9031 "MachineIndependent/glslang_tab.cpp"
break;
case 416: /* type_specifier_nonarray: F16TEXTURE1DARRAY */
@@ -8954,7 +9038,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D, true);
}
-#line 8958 "MachineIndependent/glslang_tab.cpp"
+#line 9042 "MachineIndependent/glslang_tab.cpp"
break;
case 417: /* type_specifier_nonarray: F16TEXTURE2DARRAY */
@@ -8965,7 +9049,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true);
}
-#line 8969 "MachineIndependent/glslang_tab.cpp"
+#line 9053 "MachineIndependent/glslang_tab.cpp"
break;
case 418: /* type_specifier_nonarray: F16TEXTURECUBEARRAY */
@@ -8976,7 +9060,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube, true);
}
-#line 8980 "MachineIndependent/glslang_tab.cpp"
+#line 9064 "MachineIndependent/glslang_tab.cpp"
break;
case 419: /* type_specifier_nonarray: ITEXTURE1D */
@@ -8986,7 +9070,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, Esd1D);
}
-#line 8990 "MachineIndependent/glslang_tab.cpp"
+#line 9074 "MachineIndependent/glslang_tab.cpp"
break;
case 420: /* type_specifier_nonarray: ITEXTURE1DARRAY */
@@ -8996,7 +9080,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true);
}
-#line 9000 "MachineIndependent/glslang_tab.cpp"
+#line 9084 "MachineIndependent/glslang_tab.cpp"
break;
case 421: /* type_specifier_nonarray: UTEXTURE1D */
@@ -9006,7 +9090,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, Esd1D);
}
-#line 9010 "MachineIndependent/glslang_tab.cpp"
+#line 9094 "MachineIndependent/glslang_tab.cpp"
break;
case 422: /* type_specifier_nonarray: UTEXTURE1DARRAY */
@@ -9016,7 +9100,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true);
}
-#line 9020 "MachineIndependent/glslang_tab.cpp"
+#line 9104 "MachineIndependent/glslang_tab.cpp"
break;
case 423: /* type_specifier_nonarray: TEXTURE2DRECT */
@@ -9026,7 +9110,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect);
}
-#line 9030 "MachineIndependent/glslang_tab.cpp"
+#line 9114 "MachineIndependent/glslang_tab.cpp"
break;
case 424: /* type_specifier_nonarray: F16TEXTURE2DRECT */
@@ -9037,7 +9121,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat16, EsdRect);
}
-#line 9041 "MachineIndependent/glslang_tab.cpp"
+#line 9125 "MachineIndependent/glslang_tab.cpp"
break;
case 425: /* type_specifier_nonarray: ITEXTURE2DRECT */
@@ -9047,7 +9131,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, EsdRect);
}
-#line 9051 "MachineIndependent/glslang_tab.cpp"
+#line 9135 "MachineIndependent/glslang_tab.cpp"
break;
case 426: /* type_specifier_nonarray: UTEXTURE2DRECT */
@@ -9057,7 +9141,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, EsdRect);
}
-#line 9061 "MachineIndependent/glslang_tab.cpp"
+#line 9145 "MachineIndependent/glslang_tab.cpp"
break;
case 427: /* type_specifier_nonarray: TEXTUREBUFFER */
@@ -9067,7 +9151,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer);
}
-#line 9071 "MachineIndependent/glslang_tab.cpp"
+#line 9155 "MachineIndependent/glslang_tab.cpp"
break;
case 428: /* type_specifier_nonarray: F16TEXTUREBUFFER */
@@ -9078,7 +9162,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat16, EsdBuffer);
}
-#line 9082 "MachineIndependent/glslang_tab.cpp"
+#line 9166 "MachineIndependent/glslang_tab.cpp"
break;
case 429: /* type_specifier_nonarray: ITEXTUREBUFFER */
@@ -9088,7 +9172,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer);
}
-#line 9092 "MachineIndependent/glslang_tab.cpp"
+#line 9176 "MachineIndependent/glslang_tab.cpp"
break;
case 430: /* type_specifier_nonarray: UTEXTUREBUFFER */
@@ -9098,7 +9182,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer);
}
-#line 9102 "MachineIndependent/glslang_tab.cpp"
+#line 9186 "MachineIndependent/glslang_tab.cpp"
break;
case 431: /* type_specifier_nonarray: TEXTURE2DMS */
@@ -9108,7 +9192,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true);
}
-#line 9112 "MachineIndependent/glslang_tab.cpp"
+#line 9196 "MachineIndependent/glslang_tab.cpp"
break;
case 432: /* type_specifier_nonarray: F16TEXTURE2DMS */
@@ -9119,7 +9203,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, false, false, true);
}
-#line 9123 "MachineIndependent/glslang_tab.cpp"
+#line 9207 "MachineIndependent/glslang_tab.cpp"
break;
case 433: /* type_specifier_nonarray: ITEXTURE2DMS */
@@ -9129,7 +9213,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true);
}
-#line 9133 "MachineIndependent/glslang_tab.cpp"
+#line 9217 "MachineIndependent/glslang_tab.cpp"
break;
case 434: /* type_specifier_nonarray: UTEXTURE2DMS */
@@ -9139,7 +9223,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true);
}
-#line 9143 "MachineIndependent/glslang_tab.cpp"
+#line 9227 "MachineIndependent/glslang_tab.cpp"
break;
case 435: /* type_specifier_nonarray: TEXTURE2DMSARRAY */
@@ -9149,7 +9233,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true);
}
-#line 9153 "MachineIndependent/glslang_tab.cpp"
+#line 9237 "MachineIndependent/glslang_tab.cpp"
break;
case 436: /* type_specifier_nonarray: F16TEXTURE2DMSARRAY */
@@ -9160,7 +9244,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true, false, true);
}
-#line 9164 "MachineIndependent/glslang_tab.cpp"
+#line 9248 "MachineIndependent/glslang_tab.cpp"
break;
case 437: /* type_specifier_nonarray: ITEXTURE2DMSARRAY */
@@ -9170,7 +9254,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true);
}
-#line 9174 "MachineIndependent/glslang_tab.cpp"
+#line 9258 "MachineIndependent/glslang_tab.cpp"
break;
case 438: /* type_specifier_nonarray: UTEXTURE2DMSARRAY */
@@ -9180,7 +9264,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true);
}
-#line 9184 "MachineIndependent/glslang_tab.cpp"
+#line 9268 "MachineIndependent/glslang_tab.cpp"
break;
case 439: /* type_specifier_nonarray: IMAGE1D */
@@ -9190,7 +9274,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat, Esd1D);
}
-#line 9194 "MachineIndependent/glslang_tab.cpp"
+#line 9278 "MachineIndependent/glslang_tab.cpp"
break;
case 440: /* type_specifier_nonarray: F16IMAGE1D */
@@ -9201,7 +9285,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D);
}
-#line 9205 "MachineIndependent/glslang_tab.cpp"
+#line 9289 "MachineIndependent/glslang_tab.cpp"
break;
case 441: /* type_specifier_nonarray: IIMAGE1D */
@@ -9211,7 +9295,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt, Esd1D);
}
-#line 9215 "MachineIndependent/glslang_tab.cpp"
+#line 9299 "MachineIndependent/glslang_tab.cpp"
break;
case 442: /* type_specifier_nonarray: UIMAGE1D */
@@ -9221,7 +9305,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint, Esd1D);
}
-#line 9225 "MachineIndependent/glslang_tab.cpp"
+#line 9309 "MachineIndependent/glslang_tab.cpp"
break;
case 443: /* type_specifier_nonarray: IMAGE2D */
@@ -9231,7 +9315,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat, Esd2D);
}
-#line 9235 "MachineIndependent/glslang_tab.cpp"
+#line 9319 "MachineIndependent/glslang_tab.cpp"
break;
case 444: /* type_specifier_nonarray: F16IMAGE2D */
@@ -9242,7 +9326,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D);
}
-#line 9246 "MachineIndependent/glslang_tab.cpp"
+#line 9330 "MachineIndependent/glslang_tab.cpp"
break;
case 445: /* type_specifier_nonarray: IIMAGE2D */
@@ -9252,7 +9336,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt, Esd2D);
}
-#line 9256 "MachineIndependent/glslang_tab.cpp"
+#line 9340 "MachineIndependent/glslang_tab.cpp"
break;
case 446: /* type_specifier_nonarray: UIMAGE2D */
@@ -9262,7 +9346,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint, Esd2D);
}
-#line 9266 "MachineIndependent/glslang_tab.cpp"
+#line 9350 "MachineIndependent/glslang_tab.cpp"
break;
case 447: /* type_specifier_nonarray: IMAGE3D */
@@ -9272,7 +9356,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat, Esd3D);
}
-#line 9276 "MachineIndependent/glslang_tab.cpp"
+#line 9360 "MachineIndependent/glslang_tab.cpp"
break;
case 448: /* type_specifier_nonarray: F16IMAGE3D */
@@ -9283,7 +9367,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat16, Esd3D);
}
-#line 9287 "MachineIndependent/glslang_tab.cpp"
+#line 9371 "MachineIndependent/glslang_tab.cpp"
break;
case 449: /* type_specifier_nonarray: IIMAGE3D */
@@ -9293,7 +9377,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt, Esd3D);
}
-#line 9297 "MachineIndependent/glslang_tab.cpp"
+#line 9381 "MachineIndependent/glslang_tab.cpp"
break;
case 450: /* type_specifier_nonarray: UIMAGE3D */
@@ -9303,7 +9387,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint, Esd3D);
}
-#line 9307 "MachineIndependent/glslang_tab.cpp"
+#line 9391 "MachineIndependent/glslang_tab.cpp"
break;
case 451: /* type_specifier_nonarray: IMAGE2DRECT */
@@ -9313,7 +9397,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat, EsdRect);
}
-#line 9317 "MachineIndependent/glslang_tab.cpp"
+#line 9401 "MachineIndependent/glslang_tab.cpp"
break;
case 452: /* type_specifier_nonarray: F16IMAGE2DRECT */
@@ -9324,7 +9408,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat16, EsdRect);
}
-#line 9328 "MachineIndependent/glslang_tab.cpp"
+#line 9412 "MachineIndependent/glslang_tab.cpp"
break;
case 453: /* type_specifier_nonarray: IIMAGE2DRECT */
@@ -9334,7 +9418,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt, EsdRect);
}
-#line 9338 "MachineIndependent/glslang_tab.cpp"
+#line 9422 "MachineIndependent/glslang_tab.cpp"
break;
case 454: /* type_specifier_nonarray: UIMAGE2DRECT */
@@ -9344,7 +9428,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint, EsdRect);
}
-#line 9348 "MachineIndependent/glslang_tab.cpp"
+#line 9432 "MachineIndependent/glslang_tab.cpp"
break;
case 455: /* type_specifier_nonarray: IMAGECUBE */
@@ -9354,7 +9438,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat, EsdCube);
}
-#line 9358 "MachineIndependent/glslang_tab.cpp"
+#line 9442 "MachineIndependent/glslang_tab.cpp"
break;
case 456: /* type_specifier_nonarray: F16IMAGECUBE */
@@ -9365,7 +9449,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube);
}
-#line 9369 "MachineIndependent/glslang_tab.cpp"
+#line 9453 "MachineIndependent/glslang_tab.cpp"
break;
case 457: /* type_specifier_nonarray: IIMAGECUBE */
@@ -9375,7 +9459,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt, EsdCube);
}
-#line 9379 "MachineIndependent/glslang_tab.cpp"
+#line 9463 "MachineIndependent/glslang_tab.cpp"
break;
case 458: /* type_specifier_nonarray: UIMAGECUBE */
@@ -9385,7 +9469,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint, EsdCube);
}
-#line 9389 "MachineIndependent/glslang_tab.cpp"
+#line 9473 "MachineIndependent/glslang_tab.cpp"
break;
case 459: /* type_specifier_nonarray: IMAGEBUFFER */
@@ -9395,7 +9479,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer);
}
-#line 9399 "MachineIndependent/glslang_tab.cpp"
+#line 9483 "MachineIndependent/glslang_tab.cpp"
break;
case 460: /* type_specifier_nonarray: F16IMAGEBUFFER */
@@ -9406,7 +9490,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat16, EsdBuffer);
}
-#line 9410 "MachineIndependent/glslang_tab.cpp"
+#line 9494 "MachineIndependent/glslang_tab.cpp"
break;
case 461: /* type_specifier_nonarray: IIMAGEBUFFER */
@@ -9416,7 +9500,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer);
}
-#line 9420 "MachineIndependent/glslang_tab.cpp"
+#line 9504 "MachineIndependent/glslang_tab.cpp"
break;
case 462: /* type_specifier_nonarray: UIMAGEBUFFER */
@@ -9426,7 +9510,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer);
}
-#line 9430 "MachineIndependent/glslang_tab.cpp"
+#line 9514 "MachineIndependent/glslang_tab.cpp"
break;
case 463: /* type_specifier_nonarray: IMAGE1DARRAY */
@@ -9436,7 +9520,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true);
}
-#line 9440 "MachineIndependent/glslang_tab.cpp"
+#line 9524 "MachineIndependent/glslang_tab.cpp"
break;
case 464: /* type_specifier_nonarray: F16IMAGE1DARRAY */
@@ -9447,7 +9531,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D, true);
}
-#line 9451 "MachineIndependent/glslang_tab.cpp"
+#line 9535 "MachineIndependent/glslang_tab.cpp"
break;
case 465: /* type_specifier_nonarray: IIMAGE1DARRAY */
@@ -9457,7 +9541,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true);
}
-#line 9461 "MachineIndependent/glslang_tab.cpp"
+#line 9545 "MachineIndependent/glslang_tab.cpp"
break;
case 466: /* type_specifier_nonarray: UIMAGE1DARRAY */
@@ -9467,7 +9551,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true);
}
-#line 9471 "MachineIndependent/glslang_tab.cpp"
+#line 9555 "MachineIndependent/glslang_tab.cpp"
break;
case 467: /* type_specifier_nonarray: IMAGE2DARRAY */
@@ -9477,7 +9561,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true);
}
-#line 9481 "MachineIndependent/glslang_tab.cpp"
+#line 9565 "MachineIndependent/glslang_tab.cpp"
break;
case 468: /* type_specifier_nonarray: F16IMAGE2DARRAY */
@@ -9488,7 +9572,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true);
}
-#line 9492 "MachineIndependent/glslang_tab.cpp"
+#line 9576 "MachineIndependent/glslang_tab.cpp"
break;
case 469: /* type_specifier_nonarray: IIMAGE2DARRAY */
@@ -9498,7 +9582,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true);
}
-#line 9502 "MachineIndependent/glslang_tab.cpp"
+#line 9586 "MachineIndependent/glslang_tab.cpp"
break;
case 470: /* type_specifier_nonarray: UIMAGE2DARRAY */
@@ -9508,7 +9592,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true);
}
-#line 9512 "MachineIndependent/glslang_tab.cpp"
+#line 9596 "MachineIndependent/glslang_tab.cpp"
break;
case 471: /* type_specifier_nonarray: IMAGECUBEARRAY */
@@ -9518,7 +9602,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true);
}
-#line 9522 "MachineIndependent/glslang_tab.cpp"
+#line 9606 "MachineIndependent/glslang_tab.cpp"
break;
case 472: /* type_specifier_nonarray: F16IMAGECUBEARRAY */
@@ -9529,7 +9613,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube, true);
}
-#line 9533 "MachineIndependent/glslang_tab.cpp"
+#line 9617 "MachineIndependent/glslang_tab.cpp"
break;
case 473: /* type_specifier_nonarray: IIMAGECUBEARRAY */
@@ -9539,7 +9623,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true);
}
-#line 9543 "MachineIndependent/glslang_tab.cpp"
+#line 9627 "MachineIndependent/glslang_tab.cpp"
break;
case 474: /* type_specifier_nonarray: UIMAGECUBEARRAY */
@@ -9549,7 +9633,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true);
}
-#line 9553 "MachineIndependent/glslang_tab.cpp"
+#line 9637 "MachineIndependent/glslang_tab.cpp"
break;
case 475: /* type_specifier_nonarray: IMAGE2DMS */
@@ -9559,7 +9643,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true);
}
-#line 9563 "MachineIndependent/glslang_tab.cpp"
+#line 9647 "MachineIndependent/glslang_tab.cpp"
break;
case 476: /* type_specifier_nonarray: F16IMAGE2DMS */
@@ -9570,7 +9654,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, false, false, true);
}
-#line 9574 "MachineIndependent/glslang_tab.cpp"
+#line 9658 "MachineIndependent/glslang_tab.cpp"
break;
case 477: /* type_specifier_nonarray: IIMAGE2DMS */
@@ -9580,7 +9664,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true);
}
-#line 9584 "MachineIndependent/glslang_tab.cpp"
+#line 9668 "MachineIndependent/glslang_tab.cpp"
break;
case 478: /* type_specifier_nonarray: UIMAGE2DMS */
@@ -9590,7 +9674,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true);
}
-#line 9594 "MachineIndependent/glslang_tab.cpp"
+#line 9678 "MachineIndependent/glslang_tab.cpp"
break;
case 479: /* type_specifier_nonarray: IMAGE2DMSARRAY */
@@ -9600,7 +9684,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true);
}
-#line 9604 "MachineIndependent/glslang_tab.cpp"
+#line 9688 "MachineIndependent/glslang_tab.cpp"
break;
case 480: /* type_specifier_nonarray: F16IMAGE2DMSARRAY */
@@ -9611,7 +9695,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true, false, true);
}
-#line 9615 "MachineIndependent/glslang_tab.cpp"
+#line 9699 "MachineIndependent/glslang_tab.cpp"
break;
case 481: /* type_specifier_nonarray: IIMAGE2DMSARRAY */
@@ -9621,7 +9705,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true);
}
-#line 9625 "MachineIndependent/glslang_tab.cpp"
+#line 9709 "MachineIndependent/glslang_tab.cpp"
break;
case 482: /* type_specifier_nonarray: UIMAGE2DMSARRAY */
@@ -9631,7 +9715,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true);
}
-#line 9635 "MachineIndependent/glslang_tab.cpp"
+#line 9719 "MachineIndependent/glslang_tab.cpp"
break;
case 483: /* type_specifier_nonarray: I64IMAGE1D */
@@ -9641,7 +9725,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt64, Esd1D);
}
-#line 9645 "MachineIndependent/glslang_tab.cpp"
+#line 9729 "MachineIndependent/glslang_tab.cpp"
break;
case 484: /* type_specifier_nonarray: U64IMAGE1D */
@@ -9651,7 +9735,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint64, Esd1D);
}
-#line 9655 "MachineIndependent/glslang_tab.cpp"
+#line 9739 "MachineIndependent/glslang_tab.cpp"
break;
case 485: /* type_specifier_nonarray: I64IMAGE2D */
@@ -9661,7 +9745,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt64, Esd2D);
}
-#line 9665 "MachineIndependent/glslang_tab.cpp"
+#line 9749 "MachineIndependent/glslang_tab.cpp"
break;
case 486: /* type_specifier_nonarray: U64IMAGE2D */
@@ -9671,7 +9755,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint64, Esd2D);
}
-#line 9675 "MachineIndependent/glslang_tab.cpp"
+#line 9759 "MachineIndependent/glslang_tab.cpp"
break;
case 487: /* type_specifier_nonarray: I64IMAGE3D */
@@ -9681,7 +9765,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt64, Esd3D);
}
-#line 9685 "MachineIndependent/glslang_tab.cpp"
+#line 9769 "MachineIndependent/glslang_tab.cpp"
break;
case 488: /* type_specifier_nonarray: U64IMAGE3D */
@@ -9691,7 +9775,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint64, Esd3D);
}
-#line 9695 "MachineIndependent/glslang_tab.cpp"
+#line 9779 "MachineIndependent/glslang_tab.cpp"
break;
case 489: /* type_specifier_nonarray: I64IMAGE2DRECT */
@@ -9701,7 +9785,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt64, EsdRect);
}
-#line 9705 "MachineIndependent/glslang_tab.cpp"
+#line 9789 "MachineIndependent/glslang_tab.cpp"
break;
case 490: /* type_specifier_nonarray: U64IMAGE2DRECT */
@@ -9711,7 +9795,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint64, EsdRect);
}
-#line 9715 "MachineIndependent/glslang_tab.cpp"
+#line 9799 "MachineIndependent/glslang_tab.cpp"
break;
case 491: /* type_specifier_nonarray: I64IMAGECUBE */
@@ -9721,7 +9805,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt64, EsdCube);
}
-#line 9725 "MachineIndependent/glslang_tab.cpp"
+#line 9809 "MachineIndependent/glslang_tab.cpp"
break;
case 492: /* type_specifier_nonarray: U64IMAGECUBE */
@@ -9731,7 +9815,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint64, EsdCube);
}
-#line 9735 "MachineIndependent/glslang_tab.cpp"
+#line 9819 "MachineIndependent/glslang_tab.cpp"
break;
case 493: /* type_specifier_nonarray: I64IMAGEBUFFER */
@@ -9741,7 +9825,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt64, EsdBuffer);
}
-#line 9745 "MachineIndependent/glslang_tab.cpp"
+#line 9829 "MachineIndependent/glslang_tab.cpp"
break;
case 494: /* type_specifier_nonarray: U64IMAGEBUFFER */
@@ -9751,7 +9835,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint64, EsdBuffer);
}
-#line 9755 "MachineIndependent/glslang_tab.cpp"
+#line 9839 "MachineIndependent/glslang_tab.cpp"
break;
case 495: /* type_specifier_nonarray: I64IMAGE1DARRAY */
@@ -9761,7 +9845,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt64, Esd1D, true);
}
-#line 9765 "MachineIndependent/glslang_tab.cpp"
+#line 9849 "MachineIndependent/glslang_tab.cpp"
break;
case 496: /* type_specifier_nonarray: U64IMAGE1DARRAY */
@@ -9771,7 +9855,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint64, Esd1D, true);
}
-#line 9775 "MachineIndependent/glslang_tab.cpp"
+#line 9859 "MachineIndependent/glslang_tab.cpp"
break;
case 497: /* type_specifier_nonarray: I64IMAGE2DARRAY */
@@ -9781,7 +9865,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, true);
}
-#line 9785 "MachineIndependent/glslang_tab.cpp"
+#line 9869 "MachineIndependent/glslang_tab.cpp"
break;
case 498: /* type_specifier_nonarray: U64IMAGE2DARRAY */
@@ -9791,7 +9875,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, true);
}
-#line 9795 "MachineIndependent/glslang_tab.cpp"
+#line 9879 "MachineIndependent/glslang_tab.cpp"
break;
case 499: /* type_specifier_nonarray: I64IMAGECUBEARRAY */
@@ -9801,7 +9885,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt64, EsdCube, true);
}
-#line 9805 "MachineIndependent/glslang_tab.cpp"
+#line 9889 "MachineIndependent/glslang_tab.cpp"
break;
case 500: /* type_specifier_nonarray: U64IMAGECUBEARRAY */
@@ -9811,7 +9895,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint64, EsdCube, true);
}
-#line 9815 "MachineIndependent/glslang_tab.cpp"
+#line 9899 "MachineIndependent/glslang_tab.cpp"
break;
case 501: /* type_specifier_nonarray: I64IMAGE2DMS */
@@ -9821,7 +9905,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, false, false, true);
}
-#line 9825 "MachineIndependent/glslang_tab.cpp"
+#line 9909 "MachineIndependent/glslang_tab.cpp"
break;
case 502: /* type_specifier_nonarray: U64IMAGE2DMS */
@@ -9831,7 +9915,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, false, false, true);
}
-#line 9835 "MachineIndependent/glslang_tab.cpp"
+#line 9919 "MachineIndependent/glslang_tab.cpp"
break;
case 503: /* type_specifier_nonarray: I64IMAGE2DMSARRAY */
@@ -9841,7 +9925,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, true, false, true);
}
-#line 9845 "MachineIndependent/glslang_tab.cpp"
+#line 9929 "MachineIndependent/glslang_tab.cpp"
break;
case 504: /* type_specifier_nonarray: U64IMAGE2DMSARRAY */
@@ -9851,7 +9935,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, true, false, true);
}
-#line 9855 "MachineIndependent/glslang_tab.cpp"
+#line 9939 "MachineIndependent/glslang_tab.cpp"
break;
case 505: /* type_specifier_nonarray: SAMPLEREXTERNALOES */
@@ -9862,7 +9946,7 @@ yyreduce:
(yyval.interm.type).sampler.set(EbtFloat, Esd2D);
(yyval.interm.type).sampler.external = true;
}
-#line 9866 "MachineIndependent/glslang_tab.cpp"
+#line 9950 "MachineIndependent/glslang_tab.cpp"
break;
case 506: /* type_specifier_nonarray: SAMPLEREXTERNAL2DY2YEXT */
@@ -9873,7 +9957,7 @@ yyreduce:
(yyval.interm.type).sampler.set(EbtFloat, Esd2D);
(yyval.interm.type).sampler.yuv = true;
}
-#line 9877 "MachineIndependent/glslang_tab.cpp"
+#line 9961 "MachineIndependent/glslang_tab.cpp"
break;
case 507: /* type_specifier_nonarray: SUBPASSINPUT */
@@ -9884,7 +9968,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setSubpass(EbtFloat);
}
-#line 9888 "MachineIndependent/glslang_tab.cpp"
+#line 9972 "MachineIndependent/glslang_tab.cpp"
break;
case 508: /* type_specifier_nonarray: SUBPASSINPUTMS */
@@ -9895,7 +9979,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setSubpass(EbtFloat, true);
}
-#line 9899 "MachineIndependent/glslang_tab.cpp"
+#line 9983 "MachineIndependent/glslang_tab.cpp"
break;
case 509: /* type_specifier_nonarray: F16SUBPASSINPUT */
@@ -9907,7 +9991,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setSubpass(EbtFloat16);
}
-#line 9911 "MachineIndependent/glslang_tab.cpp"
+#line 9995 "MachineIndependent/glslang_tab.cpp"
break;
case 510: /* type_specifier_nonarray: F16SUBPASSINPUTMS */
@@ -9919,7 +10003,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setSubpass(EbtFloat16, true);
}
-#line 9923 "MachineIndependent/glslang_tab.cpp"
+#line 10007 "MachineIndependent/glslang_tab.cpp"
break;
case 511: /* type_specifier_nonarray: ISUBPASSINPUT */
@@ -9930,7 +10014,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setSubpass(EbtInt);
}
-#line 9934 "MachineIndependent/glslang_tab.cpp"
+#line 10018 "MachineIndependent/glslang_tab.cpp"
break;
case 512: /* type_specifier_nonarray: ISUBPASSINPUTMS */
@@ -9941,7 +10025,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setSubpass(EbtInt, true);
}
-#line 9945 "MachineIndependent/glslang_tab.cpp"
+#line 10029 "MachineIndependent/glslang_tab.cpp"
break;
case 513: /* type_specifier_nonarray: USUBPASSINPUT */
@@ -9952,7 +10036,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setSubpass(EbtUint);
}
-#line 9956 "MachineIndependent/glslang_tab.cpp"
+#line 10040 "MachineIndependent/glslang_tab.cpp"
break;
case 514: /* type_specifier_nonarray: USUBPASSINPUTMS */
@@ -9963,7 +10047,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setSubpass(EbtUint, true);
}
-#line 9967 "MachineIndependent/glslang_tab.cpp"
+#line 10051 "MachineIndependent/glslang_tab.cpp"
break;
case 515: /* type_specifier_nonarray: FCOOPMATNV */
@@ -9974,7 +10058,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).coopmat = true;
}
-#line 9978 "MachineIndependent/glslang_tab.cpp"
+#line 10062 "MachineIndependent/glslang_tab.cpp"
break;
case 516: /* type_specifier_nonarray: ICOOPMATNV */
@@ -9985,7 +10069,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtInt;
(yyval.interm.type).coopmat = true;
}
-#line 9989 "MachineIndependent/glslang_tab.cpp"
+#line 10073 "MachineIndependent/glslang_tab.cpp"
break;
case 517: /* type_specifier_nonarray: UCOOPMATNV */
@@ -9996,7 +10080,7 @@ yyreduce:
(yyval.interm.type).basicType = EbtUint;
(yyval.interm.type).coopmat = true;
}
-#line 10000 "MachineIndependent/glslang_tab.cpp"
+#line 10084 "MachineIndependent/glslang_tab.cpp"
break;
case 518: /* type_specifier_nonarray: struct_specifier */
@@ -10006,7 +10090,7 @@ yyreduce:
(yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type));
}
-#line 10010 "MachineIndependent/glslang_tab.cpp"
+#line 10094 "MachineIndependent/glslang_tab.cpp"
break;
case 519: /* type_specifier_nonarray: TYPE_NAME */
@@ -10024,7 +10108,7 @@ yyreduce:
} else
parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), "");
}
-#line 10028 "MachineIndependent/glslang_tab.cpp"
+#line 10112 "MachineIndependent/glslang_tab.cpp"
break;
case 520: /* precision_qualifier: HIGH_PRECISION */
@@ -10034,7 +10118,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqHigh);
}
-#line 10038 "MachineIndependent/glslang_tab.cpp"
+#line 10122 "MachineIndependent/glslang_tab.cpp"
break;
case 521: /* precision_qualifier: MEDIUM_PRECISION */
@@ -10044,7 +10128,7 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqMedium);
}
-#line 10048 "MachineIndependent/glslang_tab.cpp"
+#line 10132 "MachineIndependent/glslang_tab.cpp"
break;
case 522: /* precision_qualifier: LOW_PRECISION */
@@ -10054,13 +10138,13 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqLow);
}
-#line 10058 "MachineIndependent/glslang_tab.cpp"
+#line 10142 "MachineIndependent/glslang_tab.cpp"
break;
case 523: /* $@3: %empty */
#line 3450 "MachineIndependent/glslang.y"
{ parseContext.nestedStructCheck((yyvsp[-2].lex).loc); }
-#line 10064 "MachineIndependent/glslang_tab.cpp"
+#line 10148 "MachineIndependent/glslang_tab.cpp"
break;
case 524: /* struct_specifier: STRUCT IDENTIFIER LEFT_BRACE $@3 struct_declaration_list RIGHT_BRACE */
@@ -10076,13 +10160,13 @@ yyreduce:
(yyval.interm.type).userDef = structure;
--parseContext.structNestingLevel;
}
-#line 10080 "MachineIndependent/glslang_tab.cpp"
+#line 10164 "MachineIndependent/glslang_tab.cpp"
break;
case 525: /* $@4: %empty */
#line 3461 "MachineIndependent/glslang.y"
{ parseContext.nestedStructCheck((yyvsp[-1].lex).loc); }
-#line 10086 "MachineIndependent/glslang_tab.cpp"
+#line 10170 "MachineIndependent/glslang_tab.cpp"
break;
case 526: /* struct_specifier: STRUCT LEFT_BRACE $@4 struct_declaration_list RIGHT_BRACE */
@@ -10094,7 +10178,7 @@ yyreduce:
(yyval.interm.type).userDef = structure;
--parseContext.structNestingLevel;
}
-#line 10098 "MachineIndependent/glslang_tab.cpp"
+#line 10182 "MachineIndependent/glslang_tab.cpp"
break;
case 527: /* struct_declaration_list: struct_declaration */
@@ -10102,7 +10186,7 @@ yyreduce:
{
(yyval.interm.typeList) = (yyvsp[0].interm.typeList);
}
-#line 10106 "MachineIndependent/glslang_tab.cpp"
+#line 10190 "MachineIndependent/glslang_tab.cpp"
break;
case 528: /* struct_declaration_list: struct_declaration_list struct_declaration */
@@ -10117,7 +10201,7 @@ yyreduce:
(yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]);
}
}
-#line 10121 "MachineIndependent/glslang_tab.cpp"
+#line 10205 "MachineIndependent/glslang_tab.cpp"
break;
case 529: /* struct_declaration: type_specifier struct_declarator_list SEMICOLON */
@@ -10144,7 +10228,7 @@ yyreduce:
(*(yyval.interm.typeList))[i].type->shallowCopy(type);
}
}
-#line 10148 "MachineIndependent/glslang_tab.cpp"
+#line 10232 "MachineIndependent/glslang_tab.cpp"
break;
case 530: /* struct_declaration: type_qualifier type_specifier struct_declarator_list SEMICOLON */
@@ -10173,7 +10257,7 @@ yyreduce:
(*(yyval.interm.typeList))[i].type->shallowCopy(type);
}
}
-#line 10177 "MachineIndependent/glslang_tab.cpp"
+#line 10261 "MachineIndependent/glslang_tab.cpp"
break;
case 531: /* struct_declarator_list: struct_declarator */
@@ -10182,7 +10266,7 @@ yyreduce:
(yyval.interm.typeList) = new TTypeList;
(yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
}
-#line 10186 "MachineIndependent/glslang_tab.cpp"
+#line 10270 "MachineIndependent/glslang_tab.cpp"
break;
case 532: /* struct_declarator_list: struct_declarator_list COMMA struct_declarator */
@@ -10190,7 +10274,7 @@ yyreduce:
{
(yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
}
-#line 10194 "MachineIndependent/glslang_tab.cpp"
+#line 10278 "MachineIndependent/glslang_tab.cpp"
break;
case 533: /* struct_declarator: IDENTIFIER */
@@ -10200,7 +10284,7 @@ yyreduce:
(yyval.interm.typeLine).loc = (yyvsp[0].lex).loc;
(yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string);
}
-#line 10204 "MachineIndependent/glslang_tab.cpp"
+#line 10288 "MachineIndependent/glslang_tab.cpp"
break;
case 534: /* struct_declarator: IDENTIFIER array_specifier */
@@ -10213,7 +10297,7 @@ yyreduce:
(yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string);
(yyval.interm.typeLine).type->transferArraySizes((yyvsp[0].interm).arraySizes);
}
-#line 10217 "MachineIndependent/glslang_tab.cpp"
+#line 10301 "MachineIndependent/glslang_tab.cpp"
break;
case 535: /* initializer: assignment_expression */
@@ -10221,7 +10305,7 @@ yyreduce:
{
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
-#line 10225 "MachineIndependent/glslang_tab.cpp"
+#line 10309 "MachineIndependent/glslang_tab.cpp"
break;
case 536: /* initializer: LEFT_BRACE initializer_list RIGHT_BRACE */
@@ -10232,7 +10316,7 @@ yyreduce:
parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
(yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
}
-#line 10236 "MachineIndependent/glslang_tab.cpp"
+#line 10320 "MachineIndependent/glslang_tab.cpp"
break;
case 537: /* initializer: LEFT_BRACE initializer_list COMMA RIGHT_BRACE */
@@ -10243,205 +10327,216 @@ yyreduce:
parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 10247 "MachineIndependent/glslang_tab.cpp"
+#line 10331 "MachineIndependent/glslang_tab.cpp"
break;
- case 538: /* initializer_list: initializer */
-#line 3583 "MachineIndependent/glslang.y"
+ case 538: /* initializer: LEFT_BRACE RIGHT_BRACE */
+#line 3578 "MachineIndependent/glslang.y"
+ {
+ const char* initFeature = "empty { } initializer";
+ parseContext.profileRequires((yyvsp[-1].lex).loc, EEsProfile, 0, E_GL_EXT_null_initializer, initFeature);
+ parseContext.profileRequires((yyvsp[-1].lex).loc, ~EEsProfile, 0, E_GL_EXT_null_initializer, initFeature);
+ (yyval.interm.intermTypedNode) = parseContext.intermediate.makeAggregate((yyvsp[-1].lex).loc);
+ }
+#line 10342 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 539: /* initializer_list: initializer */
+#line 3589 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc());
}
-#line 10255 "MachineIndependent/glslang_tab.cpp"
+#line 10350 "MachineIndependent/glslang_tab.cpp"
break;
- case 539: /* initializer_list: initializer_list COMMA initializer */
-#line 3586 "MachineIndependent/glslang.y"
+ case 540: /* initializer_list: initializer_list COMMA initializer */
+#line 3592 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
}
-#line 10263 "MachineIndependent/glslang_tab.cpp"
+#line 10358 "MachineIndependent/glslang_tab.cpp"
break;
- case 540: /* declaration_statement: declaration */
-#line 3593 "MachineIndependent/glslang.y"
+ case 541: /* declaration_statement: declaration */
+#line 3599 "MachineIndependent/glslang.y"
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 10269 "MachineIndependent/glslang_tab.cpp"
+#line 10364 "MachineIndependent/glslang_tab.cpp"
break;
- case 541: /* statement: compound_statement */
-#line 3597 "MachineIndependent/glslang.y"
+ case 542: /* statement: compound_statement */
+#line 3603 "MachineIndependent/glslang.y"
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 10275 "MachineIndependent/glslang_tab.cpp"
+#line 10370 "MachineIndependent/glslang_tab.cpp"
break;
- case 542: /* statement: simple_statement */
-#line 3598 "MachineIndependent/glslang.y"
+ case 543: /* statement: simple_statement */
+#line 3604 "MachineIndependent/glslang.y"
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 10281 "MachineIndependent/glslang_tab.cpp"
+#line 10376 "MachineIndependent/glslang_tab.cpp"
break;
- case 543: /* simple_statement: declaration_statement */
-#line 3604 "MachineIndependent/glslang.y"
+ case 544: /* simple_statement: declaration_statement */
+#line 3610 "MachineIndependent/glslang.y"
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 10287 "MachineIndependent/glslang_tab.cpp"
+#line 10382 "MachineIndependent/glslang_tab.cpp"
break;
- case 544: /* simple_statement: expression_statement */
-#line 3605 "MachineIndependent/glslang.y"
+ case 545: /* simple_statement: expression_statement */
+#line 3611 "MachineIndependent/glslang.y"
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 10293 "MachineIndependent/glslang_tab.cpp"
+#line 10388 "MachineIndependent/glslang_tab.cpp"
break;
- case 545: /* simple_statement: selection_statement */
-#line 3606 "MachineIndependent/glslang.y"
+ case 546: /* simple_statement: selection_statement */
+#line 3612 "MachineIndependent/glslang.y"
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 10299 "MachineIndependent/glslang_tab.cpp"
+#line 10394 "MachineIndependent/glslang_tab.cpp"
break;
- case 546: /* simple_statement: switch_statement */
-#line 3607 "MachineIndependent/glslang.y"
+ case 547: /* simple_statement: switch_statement */
+#line 3613 "MachineIndependent/glslang.y"
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 10305 "MachineIndependent/glslang_tab.cpp"
+#line 10400 "MachineIndependent/glslang_tab.cpp"
break;
- case 547: /* simple_statement: case_label */
-#line 3608 "MachineIndependent/glslang.y"
+ case 548: /* simple_statement: case_label */
+#line 3614 "MachineIndependent/glslang.y"
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 10311 "MachineIndependent/glslang_tab.cpp"
+#line 10406 "MachineIndependent/glslang_tab.cpp"
break;
- case 548: /* simple_statement: iteration_statement */
-#line 3609 "MachineIndependent/glslang.y"
+ case 549: /* simple_statement: iteration_statement */
+#line 3615 "MachineIndependent/glslang.y"
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 10317 "MachineIndependent/glslang_tab.cpp"
+#line 10412 "MachineIndependent/glslang_tab.cpp"
break;
- case 549: /* simple_statement: jump_statement */
-#line 3610 "MachineIndependent/glslang.y"
+ case 550: /* simple_statement: jump_statement */
+#line 3616 "MachineIndependent/glslang.y"
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 10323 "MachineIndependent/glslang_tab.cpp"
+#line 10418 "MachineIndependent/glslang_tab.cpp"
break;
- case 550: /* simple_statement: demote_statement */
-#line 3612 "MachineIndependent/glslang.y"
+ case 551: /* simple_statement: demote_statement */
+#line 3618 "MachineIndependent/glslang.y"
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 10329 "MachineIndependent/glslang_tab.cpp"
+#line 10424 "MachineIndependent/glslang_tab.cpp"
break;
- case 551: /* demote_statement: DEMOTE SEMICOLON */
-#line 3618 "MachineIndependent/glslang.y"
+ case 552: /* demote_statement: DEMOTE SEMICOLON */
+#line 3624 "MachineIndependent/glslang.y"
{
parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "demote");
parseContext.requireExtensions((yyvsp[-1].lex).loc, 1, &E_GL_EXT_demote_to_helper_invocation, "demote");
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDemote, (yyvsp[-1].lex).loc);
}
-#line 10339 "MachineIndependent/glslang_tab.cpp"
+#line 10434 "MachineIndependent/glslang_tab.cpp"
break;
- case 552: /* compound_statement: LEFT_BRACE RIGHT_BRACE */
-#line 3627 "MachineIndependent/glslang.y"
+ case 553: /* compound_statement: LEFT_BRACE RIGHT_BRACE */
+#line 3633 "MachineIndependent/glslang.y"
{ (yyval.interm.intermNode) = 0; }
-#line 10345 "MachineIndependent/glslang_tab.cpp"
+#line 10440 "MachineIndependent/glslang_tab.cpp"
break;
- case 553: /* $@5: %empty */
-#line 3628 "MachineIndependent/glslang.y"
+ case 554: /* $@5: %empty */
+#line 3634 "MachineIndependent/glslang.y"
{
parseContext.symbolTable.push();
++parseContext.statementNestingLevel;
}
-#line 10354 "MachineIndependent/glslang_tab.cpp"
+#line 10449 "MachineIndependent/glslang_tab.cpp"
break;
- case 554: /* $@6: %empty */
-#line 3632 "MachineIndependent/glslang.y"
+ case 555: /* $@6: %empty */
+#line 3638 "MachineIndependent/glslang.y"
{
parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
--parseContext.statementNestingLevel;
}
-#line 10363 "MachineIndependent/glslang_tab.cpp"
+#line 10458 "MachineIndependent/glslang_tab.cpp"
break;
- case 555: /* compound_statement: LEFT_BRACE $@5 statement_list $@6 RIGHT_BRACE */
-#line 3636 "MachineIndependent/glslang.y"
+ case 556: /* compound_statement: LEFT_BRACE $@5 statement_list $@6 RIGHT_BRACE */
+#line 3642 "MachineIndependent/glslang.y"
{
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 10373 "MachineIndependent/glslang_tab.cpp"
+#line 10468 "MachineIndependent/glslang_tab.cpp"
break;
- case 556: /* statement_no_new_scope: compound_statement_no_new_scope */
-#line 3644 "MachineIndependent/glslang.y"
+ case 557: /* statement_no_new_scope: compound_statement_no_new_scope */
+#line 3650 "MachineIndependent/glslang.y"
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 10379 "MachineIndependent/glslang_tab.cpp"
+#line 10474 "MachineIndependent/glslang_tab.cpp"
break;
- case 557: /* statement_no_new_scope: simple_statement */
-#line 3645 "MachineIndependent/glslang.y"
+ case 558: /* statement_no_new_scope: simple_statement */
+#line 3651 "MachineIndependent/glslang.y"
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 10385 "MachineIndependent/glslang_tab.cpp"
+#line 10480 "MachineIndependent/glslang_tab.cpp"
break;
- case 558: /* $@7: %empty */
-#line 3649 "MachineIndependent/glslang.y"
+ case 559: /* $@7: %empty */
+#line 3655 "MachineIndependent/glslang.y"
{
++parseContext.controlFlowNestingLevel;
}
-#line 10393 "MachineIndependent/glslang_tab.cpp"
+#line 10488 "MachineIndependent/glslang_tab.cpp"
break;
- case 559: /* statement_scoped: $@7 compound_statement */
-#line 3652 "MachineIndependent/glslang.y"
+ case 560: /* statement_scoped: $@7 compound_statement */
+#line 3658 "MachineIndependent/glslang.y"
{
--parseContext.controlFlowNestingLevel;
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10402 "MachineIndependent/glslang_tab.cpp"
+#line 10497 "MachineIndependent/glslang_tab.cpp"
break;
- case 560: /* $@8: %empty */
-#line 3656 "MachineIndependent/glslang.y"
+ case 561: /* $@8: %empty */
+#line 3662 "MachineIndependent/glslang.y"
{
parseContext.symbolTable.push();
++parseContext.statementNestingLevel;
++parseContext.controlFlowNestingLevel;
}
-#line 10412 "MachineIndependent/glslang_tab.cpp"
+#line 10507 "MachineIndependent/glslang_tab.cpp"
break;
- case 561: /* statement_scoped: $@8 simple_statement */
-#line 3661 "MachineIndependent/glslang.y"
+ case 562: /* statement_scoped: $@8 simple_statement */
+#line 3667 "MachineIndependent/glslang.y"
{
parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
--parseContext.statementNestingLevel;
--parseContext.controlFlowNestingLevel;
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10423 "MachineIndependent/glslang_tab.cpp"
+#line 10518 "MachineIndependent/glslang_tab.cpp"
break;
- case 562: /* compound_statement_no_new_scope: LEFT_BRACE RIGHT_BRACE */
-#line 3670 "MachineIndependent/glslang.y"
+ case 563: /* compound_statement_no_new_scope: LEFT_BRACE RIGHT_BRACE */
+#line 3676 "MachineIndependent/glslang.y"
{
(yyval.interm.intermNode) = 0;
}
-#line 10431 "MachineIndependent/glslang_tab.cpp"
+#line 10526 "MachineIndependent/glslang_tab.cpp"
break;
- case 563: /* compound_statement_no_new_scope: LEFT_BRACE statement_list RIGHT_BRACE */
-#line 3673 "MachineIndependent/glslang.y"
+ case 564: /* compound_statement_no_new_scope: LEFT_BRACE statement_list RIGHT_BRACE */
+#line 3679 "MachineIndependent/glslang.y"
{
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 10441 "MachineIndependent/glslang_tab.cpp"
+#line 10536 "MachineIndependent/glslang_tab.cpp"
break;
- case 564: /* statement_list: statement */
-#line 3681 "MachineIndependent/glslang.y"
+ case 565: /* statement_list: statement */
+#line 3687 "MachineIndependent/glslang.y"
{
(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 ||
@@ -10450,11 +10545,11 @@ yyreduce:
(yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case
}
}
-#line 10454 "MachineIndependent/glslang_tab.cpp"
+#line 10549 "MachineIndependent/glslang_tab.cpp"
break;
- case 565: /* statement_list: statement_list statement */
-#line 3689 "MachineIndependent/glslang.y"
+ case 566: /* statement_list: statement_list statement */
+#line 3695 "MachineIndependent/glslang.y"
{
if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
(yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
@@ -10463,76 +10558,76 @@ yyreduce:
} else
(yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
}
-#line 10467 "MachineIndependent/glslang_tab.cpp"
+#line 10562 "MachineIndependent/glslang_tab.cpp"
break;
- case 566: /* expression_statement: SEMICOLON */
-#line 3700 "MachineIndependent/glslang.y"
+ case 567: /* expression_statement: SEMICOLON */
+#line 3706 "MachineIndependent/glslang.y"
{ (yyval.interm.intermNode) = 0; }
-#line 10473 "MachineIndependent/glslang_tab.cpp"
+#line 10568 "MachineIndependent/glslang_tab.cpp"
break;
- case 567: /* expression_statement: expression SEMICOLON */
-#line 3701 "MachineIndependent/glslang.y"
+ case 568: /* expression_statement: expression SEMICOLON */
+#line 3707 "MachineIndependent/glslang.y"
{ (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[-1].interm.intermTypedNode)); }
-#line 10479 "MachineIndependent/glslang_tab.cpp"
+#line 10574 "MachineIndependent/glslang_tab.cpp"
break;
- case 568: /* selection_statement: selection_statement_nonattributed */
-#line 3705 "MachineIndependent/glslang.y"
+ case 569: /* selection_statement: selection_statement_nonattributed */
+#line 3711 "MachineIndependent/glslang.y"
{
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10487 "MachineIndependent/glslang_tab.cpp"
+#line 10582 "MachineIndependent/glslang_tab.cpp"
break;
- case 569: /* selection_statement: attribute selection_statement_nonattributed */
-#line 3709 "MachineIndependent/glslang.y"
+ case 570: /* selection_statement: attribute selection_statement_nonattributed */
+#line 3715 "MachineIndependent/glslang.y"
{
parseContext.handleSelectionAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10496 "MachineIndependent/glslang_tab.cpp"
+#line 10591 "MachineIndependent/glslang_tab.cpp"
break;
- case 570: /* selection_statement_nonattributed: IF LEFT_PAREN expression RIGHT_PAREN selection_rest_statement */
-#line 3716 "MachineIndependent/glslang.y"
+ case 571: /* selection_statement_nonattributed: IF LEFT_PAREN expression RIGHT_PAREN selection_rest_statement */
+#line 3722 "MachineIndependent/glslang.y"
{
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 10505 "MachineIndependent/glslang_tab.cpp"
+#line 10600 "MachineIndependent/glslang_tab.cpp"
break;
- case 571: /* selection_rest_statement: statement_scoped ELSE statement_scoped */
-#line 3723 "MachineIndependent/glslang.y"
+ case 572: /* selection_rest_statement: statement_scoped ELSE statement_scoped */
+#line 3729 "MachineIndependent/glslang.y"
{
(yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode);
(yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode);
}
-#line 10514 "MachineIndependent/glslang_tab.cpp"
+#line 10609 "MachineIndependent/glslang_tab.cpp"
break;
- case 572: /* selection_rest_statement: statement_scoped */
-#line 3727 "MachineIndependent/glslang.y"
+ case 573: /* selection_rest_statement: statement_scoped */
+#line 3733 "MachineIndependent/glslang.y"
{
(yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode);
(yyval.interm.nodePair).node2 = 0;
}
-#line 10523 "MachineIndependent/glslang_tab.cpp"
+#line 10618 "MachineIndependent/glslang_tab.cpp"
break;
- case 573: /* condition: expression */
-#line 3735 "MachineIndependent/glslang.y"
+ case 574: /* condition: expression */
+#line 3741 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode));
}
-#line 10532 "MachineIndependent/glslang_tab.cpp"
+#line 10627 "MachineIndependent/glslang_tab.cpp"
break;
- case 574: /* condition: fully_specified_type IDENTIFIER EQUAL initializer */
-#line 3739 "MachineIndependent/glslang.y"
+ case 575: /* condition: fully_specified_type IDENTIFIER EQUAL initializer */
+#line 3745 "MachineIndependent/glslang.y"
{
parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type));
@@ -10543,28 +10638,28 @@ yyreduce:
else
(yyval.interm.intermTypedNode) = 0;
}
-#line 10547 "MachineIndependent/glslang_tab.cpp"
+#line 10642 "MachineIndependent/glslang_tab.cpp"
break;
- case 575: /* switch_statement: switch_statement_nonattributed */
-#line 3752 "MachineIndependent/glslang.y"
+ case 576: /* switch_statement: switch_statement_nonattributed */
+#line 3758 "MachineIndependent/glslang.y"
{
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10555 "MachineIndependent/glslang_tab.cpp"
+#line 10650 "MachineIndependent/glslang_tab.cpp"
break;
- case 576: /* switch_statement: attribute switch_statement_nonattributed */
-#line 3756 "MachineIndependent/glslang.y"
+ case 577: /* switch_statement: attribute switch_statement_nonattributed */
+#line 3762 "MachineIndependent/glslang.y"
{
parseContext.handleSwitchAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10564 "MachineIndependent/glslang_tab.cpp"
+#line 10659 "MachineIndependent/glslang_tab.cpp"
break;
- case 577: /* $@9: %empty */
-#line 3763 "MachineIndependent/glslang.y"
+ case 578: /* $@9: %empty */
+#line 3769 "MachineIndependent/glslang.y"
{
// start new switch sequence on the switch stack
++parseContext.controlFlowNestingLevel;
@@ -10573,11 +10668,11 @@ yyreduce:
parseContext.switchLevel.push_back(parseContext.statementNestingLevel);
parseContext.symbolTable.push();
}
-#line 10577 "MachineIndependent/glslang_tab.cpp"
+#line 10672 "MachineIndependent/glslang_tab.cpp"
break;
- case 578: /* switch_statement_nonattributed: SWITCH LEFT_PAREN expression RIGHT_PAREN $@9 LEFT_BRACE switch_statement_list RIGHT_BRACE */
-#line 3771 "MachineIndependent/glslang.y"
+ case 579: /* switch_statement_nonattributed: SWITCH LEFT_PAREN expression RIGHT_PAREN $@9 LEFT_BRACE switch_statement_list RIGHT_BRACE */
+#line 3777 "MachineIndependent/glslang.y"
{
(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();
@@ -10587,27 +10682,27 @@ yyreduce:
--parseContext.statementNestingLevel;
--parseContext.controlFlowNestingLevel;
}
-#line 10591 "MachineIndependent/glslang_tab.cpp"
+#line 10686 "MachineIndependent/glslang_tab.cpp"
break;
- case 579: /* switch_statement_list: %empty */
-#line 3783 "MachineIndependent/glslang.y"
+ case 580: /* switch_statement_list: %empty */
+#line 3789 "MachineIndependent/glslang.y"
{
(yyval.interm.intermNode) = 0;
}
-#line 10599 "MachineIndependent/glslang_tab.cpp"
+#line 10694 "MachineIndependent/glslang_tab.cpp"
break;
- case 580: /* switch_statement_list: statement_list */
-#line 3786 "MachineIndependent/glslang.y"
+ case 581: /* switch_statement_list: statement_list */
+#line 3792 "MachineIndependent/glslang.y"
{
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10607 "MachineIndependent/glslang_tab.cpp"
+#line 10702 "MachineIndependent/glslang_tab.cpp"
break;
- case 581: /* case_label: CASE expression COLON */
-#line 3792 "MachineIndependent/glslang.y"
+ case 582: /* case_label: CASE expression COLON */
+#line 3798 "MachineIndependent/glslang.y"
{
(yyval.interm.intermNode) = 0;
if (parseContext.switchLevel.size() == 0)
@@ -10620,11 +10715,11 @@ yyreduce:
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc);
}
}
-#line 10624 "MachineIndependent/glslang_tab.cpp"
+#line 10719 "MachineIndependent/glslang_tab.cpp"
break;
- case 582: /* case_label: DEFAULT COLON */
-#line 3804 "MachineIndependent/glslang.y"
+ case 583: /* case_label: DEFAULT COLON */
+#line 3810 "MachineIndependent/glslang.y"
{
(yyval.interm.intermNode) = 0;
if (parseContext.switchLevel.size() == 0)
@@ -10634,28 +10729,28 @@ yyreduce:
else
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc);
}
-#line 10638 "MachineIndependent/glslang_tab.cpp"
+#line 10733 "MachineIndependent/glslang_tab.cpp"
break;
- case 583: /* iteration_statement: iteration_statement_nonattributed */
-#line 3816 "MachineIndependent/glslang.y"
+ case 584: /* iteration_statement: iteration_statement_nonattributed */
+#line 3822 "MachineIndependent/glslang.y"
{
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10646 "MachineIndependent/glslang_tab.cpp"
+#line 10741 "MachineIndependent/glslang_tab.cpp"
break;
- case 584: /* iteration_statement: attribute iteration_statement_nonattributed */
-#line 3820 "MachineIndependent/glslang.y"
+ case 585: /* iteration_statement: attribute iteration_statement_nonattributed */
+#line 3826 "MachineIndependent/glslang.y"
{
parseContext.handleLoopAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10655 "MachineIndependent/glslang_tab.cpp"
+#line 10750 "MachineIndependent/glslang_tab.cpp"
break;
- case 585: /* $@10: %empty */
-#line 3827 "MachineIndependent/glslang.y"
+ case 586: /* $@10: %empty */
+#line 3833 "MachineIndependent/glslang.y"
{
if (! parseContext.limits.whileLoops)
parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", "");
@@ -10664,11 +10759,11 @@ yyreduce:
++parseContext.statementNestingLevel;
++parseContext.controlFlowNestingLevel;
}
-#line 10668 "MachineIndependent/glslang_tab.cpp"
+#line 10763 "MachineIndependent/glslang_tab.cpp"
break;
- case 586: /* iteration_statement_nonattributed: WHILE LEFT_PAREN $@10 condition RIGHT_PAREN statement_no_new_scope */
-#line 3835 "MachineIndependent/glslang.y"
+ case 587: /* iteration_statement_nonattributed: WHILE LEFT_PAREN $@10 condition RIGHT_PAREN statement_no_new_scope */
+#line 3841 "MachineIndependent/glslang.y"
{
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);
@@ -10676,21 +10771,21 @@ yyreduce:
--parseContext.statementNestingLevel;
--parseContext.controlFlowNestingLevel;
}
-#line 10680 "MachineIndependent/glslang_tab.cpp"
+#line 10775 "MachineIndependent/glslang_tab.cpp"
break;
- case 587: /* $@11: %empty */
-#line 3842 "MachineIndependent/glslang.y"
+ case 588: /* $@11: %empty */
+#line 3848 "MachineIndependent/glslang.y"
{
++parseContext.loopNestingLevel;
++parseContext.statementNestingLevel;
++parseContext.controlFlowNestingLevel;
}
-#line 10690 "MachineIndependent/glslang_tab.cpp"
+#line 10785 "MachineIndependent/glslang_tab.cpp"
break;
- case 588: /* iteration_statement_nonattributed: DO $@11 statement WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON */
-#line 3847 "MachineIndependent/glslang.y"
+ case 589: /* iteration_statement_nonattributed: DO $@11 statement WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON */
+#line 3853 "MachineIndependent/glslang.y"
{
if (! parseContext.limits.whileLoops)
parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", "");
@@ -10702,22 +10797,22 @@ yyreduce:
--parseContext.statementNestingLevel;
--parseContext.controlFlowNestingLevel;
}
-#line 10706 "MachineIndependent/glslang_tab.cpp"
+#line 10801 "MachineIndependent/glslang_tab.cpp"
break;
- case 589: /* $@12: %empty */
-#line 3858 "MachineIndependent/glslang.y"
+ case 590: /* $@12: %empty */
+#line 3864 "MachineIndependent/glslang.y"
{
parseContext.symbolTable.push();
++parseContext.loopNestingLevel;
++parseContext.statementNestingLevel;
++parseContext.controlFlowNestingLevel;
}
-#line 10717 "MachineIndependent/glslang_tab.cpp"
+#line 10812 "MachineIndependent/glslang_tab.cpp"
break;
- case 590: /* iteration_statement_nonattributed: FOR LEFT_PAREN $@12 for_init_statement for_rest_statement RIGHT_PAREN statement_no_new_scope */
-#line 3864 "MachineIndependent/glslang.y"
+ case 591: /* iteration_statement_nonattributed: FOR LEFT_PAREN $@12 for_init_statement for_rest_statement RIGHT_PAREN statement_no_new_scope */
+#line 3870 "MachineIndependent/glslang.y"
{
parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
(yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc);
@@ -10730,81 +10825,81 @@ yyreduce:
--parseContext.statementNestingLevel;
--parseContext.controlFlowNestingLevel;
}
-#line 10734 "MachineIndependent/glslang_tab.cpp"
+#line 10829 "MachineIndependent/glslang_tab.cpp"
break;
- case 591: /* for_init_statement: expression_statement */
-#line 3879 "MachineIndependent/glslang.y"
+ case 592: /* for_init_statement: expression_statement */
+#line 3885 "MachineIndependent/glslang.y"
{
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10742 "MachineIndependent/glslang_tab.cpp"
+#line 10837 "MachineIndependent/glslang_tab.cpp"
break;
- case 592: /* for_init_statement: declaration_statement */
-#line 3882 "MachineIndependent/glslang.y"
+ case 593: /* for_init_statement: declaration_statement */
+#line 3888 "MachineIndependent/glslang.y"
{
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10750 "MachineIndependent/glslang_tab.cpp"
+#line 10845 "MachineIndependent/glslang_tab.cpp"
break;
- case 593: /* conditionopt: condition */
-#line 3888 "MachineIndependent/glslang.y"
+ case 594: /* conditionopt: condition */
+#line 3894 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
-#line 10758 "MachineIndependent/glslang_tab.cpp"
+#line 10853 "MachineIndependent/glslang_tab.cpp"
break;
- case 594: /* conditionopt: %empty */
-#line 3891 "MachineIndependent/glslang.y"
+ case 595: /* conditionopt: %empty */
+#line 3897 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = 0;
}
-#line 10766 "MachineIndependent/glslang_tab.cpp"
+#line 10861 "MachineIndependent/glslang_tab.cpp"
break;
- case 595: /* for_rest_statement: conditionopt SEMICOLON */
-#line 3897 "MachineIndependent/glslang.y"
+ case 596: /* for_rest_statement: conditionopt SEMICOLON */
+#line 3903 "MachineIndependent/glslang.y"
{
(yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode);
(yyval.interm.nodePair).node2 = 0;
}
-#line 10775 "MachineIndependent/glslang_tab.cpp"
+#line 10870 "MachineIndependent/glslang_tab.cpp"
break;
- case 596: /* for_rest_statement: conditionopt SEMICOLON expression */
-#line 3901 "MachineIndependent/glslang.y"
+ case 597: /* for_rest_statement: conditionopt SEMICOLON expression */
+#line 3907 "MachineIndependent/glslang.y"
{
(yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode);
(yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode);
}
-#line 10784 "MachineIndependent/glslang_tab.cpp"
+#line 10879 "MachineIndependent/glslang_tab.cpp"
break;
- case 597: /* jump_statement: CONTINUE SEMICOLON */
-#line 3908 "MachineIndependent/glslang.y"
+ case 598: /* jump_statement: CONTINUE SEMICOLON */
+#line 3914 "MachineIndependent/glslang.y"
{
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 10794 "MachineIndependent/glslang_tab.cpp"
+#line 10889 "MachineIndependent/glslang_tab.cpp"
break;
- case 598: /* jump_statement: BREAK SEMICOLON */
-#line 3913 "MachineIndependent/glslang.y"
+ case 599: /* jump_statement: BREAK SEMICOLON */
+#line 3919 "MachineIndependent/glslang.y"
{
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 10804 "MachineIndependent/glslang_tab.cpp"
+#line 10899 "MachineIndependent/glslang_tab.cpp"
break;
- case 599: /* jump_statement: RETURN SEMICOLON */
-#line 3918 "MachineIndependent/glslang.y"
+ case 600: /* jump_statement: RETURN SEMICOLON */
+#line 3924 "MachineIndependent/glslang.y"
{
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc);
if (parseContext.currentFunctionType->getBasicType() != EbtVoid)
@@ -10812,101 +10907,101 @@ yyreduce:
if (parseContext.inMain)
parseContext.postEntryPointReturn = true;
}
-#line 10816 "MachineIndependent/glslang_tab.cpp"
+#line 10911 "MachineIndependent/glslang_tab.cpp"
break;
- case 600: /* jump_statement: RETURN expression SEMICOLON */
-#line 3925 "MachineIndependent/glslang.y"
+ case 601: /* jump_statement: RETURN expression SEMICOLON */
+#line 3931 "MachineIndependent/glslang.y"
{
(yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode));
}
-#line 10824 "MachineIndependent/glslang_tab.cpp"
+#line 10919 "MachineIndependent/glslang_tab.cpp"
break;
- case 601: /* jump_statement: DISCARD SEMICOLON */
-#line 3928 "MachineIndependent/glslang.y"
+ case 602: /* jump_statement: DISCARD SEMICOLON */
+#line 3934 "MachineIndependent/glslang.y"
{
parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard");
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc);
}
-#line 10833 "MachineIndependent/glslang_tab.cpp"
+#line 10928 "MachineIndependent/glslang_tab.cpp"
break;
- case 602: /* jump_statement: TERMINATE_INVOCATION SEMICOLON */
-#line 3932 "MachineIndependent/glslang.y"
+ case 603: /* jump_statement: TERMINATE_INVOCATION SEMICOLON */
+#line 3938 "MachineIndependent/glslang.y"
{
parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "terminateInvocation");
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpTerminateInvocation, (yyvsp[-1].lex).loc);
}
-#line 10842 "MachineIndependent/glslang_tab.cpp"
+#line 10937 "MachineIndependent/glslang_tab.cpp"
break;
- case 603: /* jump_statement: TERMINATE_RAY SEMICOLON */
-#line 3937 "MachineIndependent/glslang.y"
+ case 604: /* jump_statement: TERMINATE_RAY SEMICOLON */
+#line 3943 "MachineIndependent/glslang.y"
{
parseContext.requireStage((yyvsp[-1].lex).loc, EShLangAnyHit, "terminateRayEXT");
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpTerminateRayKHR, (yyvsp[-1].lex).loc);
}
-#line 10851 "MachineIndependent/glslang_tab.cpp"
+#line 10946 "MachineIndependent/glslang_tab.cpp"
break;
- case 604: /* jump_statement: IGNORE_INTERSECTION SEMICOLON */
-#line 3941 "MachineIndependent/glslang.y"
+ case 605: /* jump_statement: IGNORE_INTERSECTION SEMICOLON */
+#line 3947 "MachineIndependent/glslang.y"
{
parseContext.requireStage((yyvsp[-1].lex).loc, EShLangAnyHit, "ignoreIntersectionEXT");
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpIgnoreIntersectionKHR, (yyvsp[-1].lex).loc);
}
-#line 10860 "MachineIndependent/glslang_tab.cpp"
+#line 10955 "MachineIndependent/glslang_tab.cpp"
break;
- case 605: /* translation_unit: external_declaration */
-#line 3951 "MachineIndependent/glslang.y"
+ case 606: /* translation_unit: external_declaration */
+#line 3957 "MachineIndependent/glslang.y"
{
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
}
-#line 10869 "MachineIndependent/glslang_tab.cpp"
+#line 10964 "MachineIndependent/glslang_tab.cpp"
break;
- case 606: /* translation_unit: translation_unit external_declaration */
-#line 3955 "MachineIndependent/glslang.y"
+ case 607: /* translation_unit: translation_unit external_declaration */
+#line 3961 "MachineIndependent/glslang.y"
{
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 10880 "MachineIndependent/glslang_tab.cpp"
+#line 10975 "MachineIndependent/glslang_tab.cpp"
break;
- case 607: /* external_declaration: function_definition */
-#line 3964 "MachineIndependent/glslang.y"
+ case 608: /* external_declaration: function_definition */
+#line 3970 "MachineIndependent/glslang.y"
{
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10888 "MachineIndependent/glslang_tab.cpp"
+#line 10983 "MachineIndependent/glslang_tab.cpp"
break;
- case 608: /* external_declaration: declaration */
-#line 3967 "MachineIndependent/glslang.y"
+ case 609: /* external_declaration: declaration */
+#line 3973 "MachineIndependent/glslang.y"
{
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10896 "MachineIndependent/glslang_tab.cpp"
+#line 10991 "MachineIndependent/glslang_tab.cpp"
break;
- case 609: /* external_declaration: SEMICOLON */
-#line 3971 "MachineIndependent/glslang.y"
+ case 610: /* external_declaration: SEMICOLON */
+#line 3977 "MachineIndependent/glslang.y"
{
parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "extraneous semicolon");
parseContext.profileRequires((yyvsp[0].lex).loc, ~EEsProfile, 460, nullptr, "extraneous semicolon");
(yyval.interm.intermNode) = nullptr;
}
-#line 10906 "MachineIndependent/glslang_tab.cpp"
+#line 11001 "MachineIndependent/glslang_tab.cpp"
break;
- case 610: /* $@13: %empty */
-#line 3980 "MachineIndependent/glslang.y"
+ case 611: /* $@13: %empty */
+#line 3986 "MachineIndependent/glslang.y"
{
(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);
@@ -10919,11 +11014,11 @@ yyreduce:
++parseContext.statementNestingLevel;
}
}
-#line 10923 "MachineIndependent/glslang_tab.cpp"
+#line 11018 "MachineIndependent/glslang_tab.cpp"
break;
- case 611: /* function_definition: function_prototype $@13 compound_statement_no_new_scope */
-#line 3992 "MachineIndependent/glslang.y"
+ case 612: /* function_definition: function_prototype $@13 compound_statement_no_new_scope */
+#line 3998 "MachineIndependent/glslang.y"
{
// May be best done as post process phase on intermediate code
if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue)
@@ -10950,52 +11045,52 @@ yyreduce:
--parseContext.statementNestingLevel;
}
}
-#line 10954 "MachineIndependent/glslang_tab.cpp"
+#line 11049 "MachineIndependent/glslang_tab.cpp"
break;
- case 612: /* attribute: LEFT_BRACKET LEFT_BRACKET attribute_list RIGHT_BRACKET RIGHT_BRACKET */
-#line 4022 "MachineIndependent/glslang.y"
+ case 613: /* attribute: LEFT_BRACKET LEFT_BRACKET attribute_list RIGHT_BRACKET RIGHT_BRACKET */
+#line 4028 "MachineIndependent/glslang.y"
{
(yyval.interm.attributes) = (yyvsp[-2].interm.attributes);
parseContext.requireExtensions((yyvsp[-4].lex).loc, 1, &E_GL_EXT_control_flow_attributes, "attribute");
}
-#line 10963 "MachineIndependent/glslang_tab.cpp"
+#line 11058 "MachineIndependent/glslang_tab.cpp"
break;
- case 613: /* attribute_list: single_attribute */
-#line 4028 "MachineIndependent/glslang.y"
+ case 614: /* attribute_list: single_attribute */
+#line 4034 "MachineIndependent/glslang.y"
{
(yyval.interm.attributes) = (yyvsp[0].interm.attributes);
}
-#line 10971 "MachineIndependent/glslang_tab.cpp"
+#line 11066 "MachineIndependent/glslang_tab.cpp"
break;
- case 614: /* attribute_list: attribute_list COMMA single_attribute */
-#line 4031 "MachineIndependent/glslang.y"
+ case 615: /* attribute_list: attribute_list COMMA single_attribute */
+#line 4037 "MachineIndependent/glslang.y"
{
(yyval.interm.attributes) = parseContext.mergeAttributes((yyvsp[-2].interm.attributes), (yyvsp[0].interm.attributes));
}
-#line 10979 "MachineIndependent/glslang_tab.cpp"
+#line 11074 "MachineIndependent/glslang_tab.cpp"
break;
- case 615: /* single_attribute: IDENTIFIER */
-#line 4036 "MachineIndependent/glslang.y"
+ case 616: /* single_attribute: IDENTIFIER */
+#line 4042 "MachineIndependent/glslang.y"
{
(yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[0].lex).string);
}
-#line 10987 "MachineIndependent/glslang_tab.cpp"
+#line 11082 "MachineIndependent/glslang_tab.cpp"
break;
- case 616: /* single_attribute: IDENTIFIER LEFT_PAREN constant_expression RIGHT_PAREN */
-#line 4039 "MachineIndependent/glslang.y"
+ case 617: /* single_attribute: IDENTIFIER LEFT_PAREN constant_expression RIGHT_PAREN */
+#line 4045 "MachineIndependent/glslang.y"
{
(yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[-3].lex).string, (yyvsp[-1].interm.intermTypedNode));
}
-#line 10995 "MachineIndependent/glslang_tab.cpp"
+#line 11090 "MachineIndependent/glslang_tab.cpp"
break;
-#line 10999 "MachineIndependent/glslang_tab.cpp"
+#line 11094 "MachineIndependent/glslang_tab.cpp"
default: break;
}
@@ -11220,5 +11315,5 @@ yyreturn:
return yyresult;
}
-#line 4044 "MachineIndependent/glslang.y"
+#line 4050 "MachineIndependent/glslang.y"
diff --git a/glslang/MachineIndependent/iomapper.h b/glslang/MachineIndependent/iomapper.h
index 7934c4a9..1dce8ff5 100644
--- a/glslang/MachineIndependent/iomapper.h
+++ b/glslang/MachineIndependent/iomapper.h
@@ -52,7 +52,7 @@ namespace glslang {
class TIntermediate;
struct TVarEntryInfo {
- int id;
+ long long id;
TIntermSymbol* symbol;
bool live;
int newBinding;
diff --git a/glslang/MachineIndependent/limits.cpp b/glslang/MachineIndependent/limits.cpp
index 51d93003..39157057 100644
--- a/glslang/MachineIndependent/limits.cpp
+++ b/glslang/MachineIndependent/limits.cpp
@@ -63,14 +63,14 @@ namespace glslang {
class TInductiveTraverser : public TIntermTraverser {
public:
- TInductiveTraverser(int id, TSymbolTable& st)
+ TInductiveTraverser(long long id, TSymbolTable& st)
: loopId(id), symbolTable(st), bad(false) { }
virtual bool visitBinary(TVisit, TIntermBinary* node);
virtual bool visitUnary(TVisit, TIntermUnary* node);
virtual bool visitAggregate(TVisit, TIntermAggregate* node);
- int loopId; // unique ID of the symbol that's the loop inductive variable
+ long long loopId; // unique ID of the symbol that's the loop inductive variable
TSymbolTable& symbolTable;
bool bad;
TSourceLoc badLoc;
@@ -129,7 +129,7 @@ bool TInductiveTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* n
//
// External function to call for loop check.
//
-void TParseContext::inductiveLoopBodyCheck(TIntermNode* body, int loopId, TSymbolTable& symbolTable)
+void TParseContext::inductiveLoopBodyCheck(TIntermNode* body, long long loopId, TSymbolTable& symbolTable)
{
TInductiveTraverser it(loopId, symbolTable);
diff --git a/glslang/MachineIndependent/linkValidate.cpp b/glslang/MachineIndependent/linkValidate.cpp
index 4e84adbf..3f3a3127 100644
--- a/glslang/MachineIndependent/linkValidate.cpp
+++ b/glslang/MachineIndependent/linkValidate.cpp
@@ -48,6 +48,7 @@
#include "localintermediate.h"
#include "../Include/InfoSink.h"
+#include "SymbolTable.h"
namespace glslang {
@@ -306,9 +307,9 @@ void TIntermediate::mergeTrees(TInfoSink& infoSink, TIntermediate& unit)
// Map by global name to unique ID to rationalize the same object having
// differing IDs in different trees.
TIdMaps idMaps;
- int maxId;
- seedIdMap(idMaps, maxId);
- remapIds(idMaps, maxId + 1, unit);
+ long long idShift;
+ seedIdMap(idMaps, idShift);
+ remapIds(idMaps, idShift + 1, unit);
mergeBodies(infoSink, globals, unitGlobals);
mergeLinkerObjects(infoSink, linkerObjects, unitLinkerObjects);
@@ -329,14 +330,14 @@ static const TString& getNameForIdMap(TIntermSymbol* symbol)
// Traverser that seeds an ID map with all built-ins, and tracks the
-// maximum ID used.
+// maximum ID used, currently using (maximum ID + 1) as new symbol id shift seed.
+// Level id will keep same after shifting.
// (It would be nice to put this in a function, but that causes warnings
// on having no bodies for the copy-constructor/operator=.)
class TBuiltInIdTraverser : public TIntermTraverser {
public:
- TBuiltInIdTraverser(TIdMaps& idMaps) : idMaps(idMaps), maxId(0) { }
+ TBuiltInIdTraverser(TIdMaps& idMaps) : idMaps(idMaps), idShift(0) { }
// If it's a built in, add it to the map.
- // Track the max ID.
virtual void visitSymbol(TIntermSymbol* symbol)
{
const TQualifier& qualifier = symbol->getType().getQualifier();
@@ -344,14 +345,16 @@ public:
TShaderInterface si = symbol->getType().getShaderInterface();
idMaps[si][getNameForIdMap(symbol)] = symbol->getId();
}
- maxId = std::max(maxId, symbol->getId());
+ idShift = (symbol->getId() & ~TSymbolTable::uniqueIdMask) |
+ std::max(idShift & TSymbolTable::uniqueIdMask,
+ symbol->getId() & TSymbolTable::uniqueIdMask);
}
- int getMaxId() const { return maxId; }
+ long long getIdShift() const { return idShift; }
protected:
TBuiltInIdTraverser(TBuiltInIdTraverser&);
TBuiltInIdTraverser& operator=(TBuiltInIdTraverser&);
TIdMaps& idMaps;
- int maxId;
+ long long idShift;
};
// Traverser that seeds an ID map with non-builtins.
@@ -377,12 +380,12 @@ protected:
};
// Initialize the the ID map with what we know of 'this' AST.
-void TIntermediate::seedIdMap(TIdMaps& idMaps, int& maxId)
+void TIntermediate::seedIdMap(TIdMaps& idMaps, long long& idShift)
{
// all built-ins everywhere need to align on IDs and contribute to the max ID
TBuiltInIdTraverser builtInIdTraverser(idMaps);
treeRoot->traverse(&builtInIdTraverser);
- maxId = builtInIdTraverser.getMaxId();
+ idShift = builtInIdTraverser.getIdShift() & TSymbolTable::uniqueIdMask;
// user variables in the linker object list need to align on ids
TUserIdTraverser userIdTraverser(idMaps);
@@ -394,7 +397,7 @@ void TIntermediate::seedIdMap(TIdMaps& idMaps, int& maxId)
// on having no bodies for the copy-constructor/operator=.)
class TRemapIdTraverser : public TIntermTraverser {
public:
- TRemapIdTraverser(const TIdMaps& idMaps, int idShift) : idMaps(idMaps), idShift(idShift) { }
+ TRemapIdTraverser(const TIdMaps& idMaps, long long idShift) : idMaps(idMaps), idShift(idShift) { }
// Do the mapping:
// - if the same symbol, adopt the 'this' ID
// - otherwise, ensure a unique ID by shifting to a new space
@@ -406,7 +409,9 @@ public:
TShaderInterface si = symbol->getType().getShaderInterface();
auto it = idMaps[si].find(getNameForIdMap(symbol));
if (it != idMaps[si].end()) {
- symbol->changeId(it->second);
+ uint64_t id = (symbol->getId() & ~TSymbolTable::uniqueIdMask) |
+ (it->second & TSymbolTable::uniqueIdMask);
+ symbol->changeId(id);
remapped = true;
}
}
@@ -417,10 +422,10 @@ protected:
TRemapIdTraverser(TRemapIdTraverser&);
TRemapIdTraverser& operator=(TRemapIdTraverser&);
const TIdMaps& idMaps;
- int idShift;
+ long long idShift;
};
-void TIntermediate::remapIds(const TIdMaps& idMaps, int idShift, TIntermediate& unit)
+void TIntermediate::remapIds(const TIdMaps& idMaps, long long idShift, TIntermediate& unit)
{
// Remap all IDs to either share or be unique, as dictated by the idMap and idShift.
TRemapIdTraverser idTraverser(idMaps, idShift);
@@ -653,6 +658,25 @@ void TIntermediate::mergeErrorCheck(TInfoSink& infoSink, const TIntermSymbol& sy
#endif
}
+void TIntermediate::sharedBlockCheck(TInfoSink& infoSink)
+{
+ bool has_shared_block = false;
+ bool has_shared_non_block = false;
+ TIntermSequence& linkObjects = findLinkerObjects()->getSequence();
+ for (size_t i = 0; i < linkObjects.size(); ++i) {
+ const TType& type = linkObjects[i]->getAsTyped()->getType();
+ const TQualifier& qualifier = type.getQualifier();
+ if (qualifier.storage == glslang::EvqShared) {
+ if (type.getBasicType() == glslang::EbtBlock)
+ has_shared_block = true;
+ else
+ has_shared_non_block = true;
+ }
+ }
+ if (has_shared_block && has_shared_non_block)
+ error(infoSink, "cannot mix use of shared variables inside and outside blocks");
+}
+
//
// Do final link-time error checking of a complete (merged) intermediate representation.
// (Much error checking was done during merging).
@@ -778,6 +802,7 @@ void TIntermediate::finalCheck(TInfoSink& infoSink, bool keepUncalled)
error(infoSink, "post_depth_coverage requires early_fragment_tests");
break;
case EShLangCompute:
+ sharedBlockCheck(infoSink);
break;
case EShLangRayGen:
case EShLangIntersect:
@@ -810,6 +835,7 @@ void TIntermediate::finalCheck(TInfoSink& infoSink, bool keepUncalled)
case EShLangTaskNV:
if (numTaskNVBlocks > 1)
error(infoSink, "Only one taskNV interface block is allowed per shader");
+ sharedBlockCheck(infoSink);
break;
default:
error(infoSink, "Unknown Stage.");
diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h
index f8d8e801..1db3d1c3 100644
--- a/glslang/MachineIndependent/localintermediate.h
+++ b/glslang/MachineIndependent/localintermediate.h
@@ -227,10 +227,10 @@ enum ComputeDerivativeMode {
class TIdMaps {
public:
- TMap<TString, int>& operator[](int i) { return maps[i]; }
- const TMap<TString, int>& operator[](int i) const { return maps[i]; }
+ TMap<TString, long long>& operator[](long long i) { return maps[i]; }
+ const TMap<TString, long long>& operator[](long long i) const { return maps[i]; }
private:
- TMap<TString, int> maps[EsiCount];
+ TMap<TString, long long> maps[EsiCount];
};
class TNumericFeatures {
@@ -292,7 +292,8 @@ public:
invertY(false),
useStorageBuffer(false),
nanMinMaxClamp(false),
- depthReplacing(false)
+ depthReplacing(false),
+ uniqueId(0)
#ifndef GLSLANG_WEB
,
implicitThisName("@this"), implicitCounterName("@count"),
@@ -858,6 +859,14 @@ public:
bool usingHlslIoMapping() { return false; }
#endif
+ bool usingScalarBlockLayout() const {
+ for (auto extIt = requestedExtensions.begin(); extIt != requestedExtensions.end(); ++extIt) {
+ if (*extIt == E_GL_EXT_scalar_block_layout)
+ return true;
+ }
+ return false;
+ }
+
void addToCallGraph(TInfoSink&, const TString& caller, const TString& callee);
void merge(TInfoSink&, TIntermediate&);
void finalCheck(TInfoSink&, bool keepUncalled);
@@ -903,6 +912,8 @@ public:
void addProcess(const std::string& process) { processes.addProcess(process); }
void addProcessArgument(const std::string& arg) { processes.addArgument(arg); }
const std::vector<std::string>& getProcesses() const { return processes.getProcesses(); }
+ unsigned long long getUniqueId() const { return uniqueId; }
+ void setUniqueId(unsigned long long id) { uniqueId = id; }
// Certain explicit conversions are allowed conditionally
#ifdef GLSLANG_WEB
@@ -931,14 +942,14 @@ public:
#endif
protected:
- TIntermSymbol* addSymbol(int Id, const TString&, const TType&, const TConstUnionArray&, TIntermTyped* subtree, const TSourceLoc&);
+ TIntermSymbol* addSymbol(long long Id, const TString&, const TType&, const TConstUnionArray&, TIntermTyped* subtree, const TSourceLoc&);
void error(TInfoSink& infoSink, const char*);
void warn(TInfoSink& infoSink, const char*);
void mergeCallGraphs(TInfoSink&, TIntermediate&);
void mergeModes(TInfoSink&, TIntermediate&);
void mergeTrees(TInfoSink&, TIntermediate&);
- void seedIdMap(TIdMaps& idMaps, int& maxId);
- void remapIds(const TIdMaps& idMaps, int idShift, TIntermediate&);
+ void seedIdMap(TIdMaps& idMaps, long long& IdShift);
+ void remapIds(const TIdMaps& idMaps, long long idShift, TIntermediate&);
void mergeBodies(TInfoSink&, TIntermSequence& globals, const TIntermSequence& unitGlobals);
void mergeLinkerObjects(TInfoSink&, TIntermSequence& linkerObjects, const TIntermSequence& unitLinkerObjects);
void mergeImplicitArraySizes(TType&, const TType&);
@@ -946,6 +957,7 @@ protected:
void checkCallGraphCycles(TInfoSink&);
void checkCallGraphBodies(TInfoSink&, bool keepUncalled);
void inOutLocationCheck(TInfoSink&);
+ void sharedBlockCheck(TInfoSink&);
bool userOutputUsed() const;
bool isSpecializationOperation(const TIntermOperator&) const;
bool isNonuniformPropagating(TOperator) const;
@@ -990,6 +1002,7 @@ protected:
int localSize[3];
bool localSizeNotDefault[3];
int localSizeSpecId[3];
+ unsigned long long uniqueId;
#ifndef GLSLANG_WEB
public:
const char* const implicitThisName;
diff --git a/glslang/MachineIndependent/reflection.cpp b/glslang/MachineIndependent/reflection.cpp
index 72950029..9870a400 100644
--- a/glslang/MachineIndependent/reflection.cpp
+++ b/glslang/MachineIndependent/reflection.cpp
@@ -1138,6 +1138,8 @@ void TReflection::buildCounterIndices(const TIntermediate& intermediate)
if (index >= 0)
indexToUniformBlock[i].counterIndex = index;
}
+#else
+ (void)intermediate;
#endif
}
diff --git a/glslang/Public/ShaderLang.h b/glslang/Public/ShaderLang.h
index 273f1569..e147b0dc 100644
--- a/glslang/Public/ShaderLang.h
+++ b/glslang/Public/ShaderLang.h
@@ -167,7 +167,7 @@ typedef enum {
EShTargetVulkan_1_1 = (1 << 22) | (1 << 12), // Vulkan 1.1
EShTargetVulkan_1_2 = (1 << 22) | (2 << 12), // Vulkan 1.2
EShTargetOpenGL_450 = 450, // OpenGL
- LAST_ELEMENT_MARKER(EShTargetClientVersionCount),
+ LAST_ELEMENT_MARKER(EShTargetClientVersionCount = 4),
} EShTargetClientVersion;
typedef EShTargetClientVersion EshTargetClientVersion;
@@ -179,7 +179,7 @@ typedef enum {
EShTargetSpv_1_3 = (1 << 16) | (3 << 8), // SPIR-V 1.3
EShTargetSpv_1_4 = (1 << 16) | (4 << 8), // SPIR-V 1.4
EShTargetSpv_1_5 = (1 << 16) | (5 << 8), // SPIR-V 1.5
- LAST_ELEMENT_MARKER(EShTargetLanguageVersionCount),
+ LAST_ELEMENT_MARKER(EShTargetLanguageVersionCount = 6),
} EShTargetLanguageVersion;
struct TInputLanguage {
@@ -458,6 +458,7 @@ public:
GLSLANG_EXPORT void setEntryPoint(const char* entryPoint);
GLSLANG_EXPORT void setSourceEntryPoint(const char* sourceEntryPointName);
GLSLANG_EXPORT void addProcesses(const std::vector<std::string>&);
+ GLSLANG_EXPORT void setUniqueId(unsigned long long id);
// IO resolver binding data: see comments in ShaderLang.cpp
GLSLANG_EXPORT void setShiftBinding(TResourceType res, unsigned int base);
diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp
index 4d1cb50b..de071b9f 100644
--- a/gtests/Hlsl.FromFile.cpp
+++ b/gtests/Hlsl.FromFile.cpp
@@ -313,6 +313,7 @@ INSTANTIATE_TEST_SUITE_P(
{"hlsl.promote.binary.frag", "main"},
{"hlsl.promote.vec1.frag", "main"},
{"hlsl.promotions.frag", "main"},
+ {"hlsl.round.dx10.frag", "main"},
{"hlsl.rw.atomics.frag", "main"},
{"hlsl.rw.bracket.frag", "main"},
{"hlsl.rw.register.frag", "main"},
@@ -490,6 +491,7 @@ INSTANTIATE_TEST_SUITE_P(
INSTANTIATE_TEST_SUITE_P(
ToSpirv, HlslDX9CompatibleTest,
::testing::ValuesIn(std::vector<FileNameEntryPointPair>{
+ {"hlsl.round.dx9.frag", "main"},
{"hlsl.sample.dx9.frag", "main"},
{"hlsl.sample.dx9.vert", "main"},
}),
diff --git a/gtests/Spv.FromFile.cpp b/gtests/Spv.FromFile.cpp
index a393cccc..2ee292e4 100644
--- a/gtests/Spv.FromFile.cpp
+++ b/gtests/Spv.FromFile.cpp
@@ -241,6 +241,7 @@ INSTANTIATE_TEST_SUITE_P(
"rayQuery-allOps.frag",
"rayQuery-initialization.Error.comp",
"rayQuery-global.rgen",
+ "rayQuery-types.comp",
"spv.set.vert",
"spv.double.comp",
"spv.100ops.frag",
@@ -375,6 +376,7 @@ INSTANTIATE_TEST_SUITE_P(
"spv.nonuniform4.frag",
"spv.nonuniform5.frag",
"spv.noWorkgroup.comp",
+ "spv.nullInit.comp",
"spv.offsets.frag",
"spv.Operations.frag",
"spv.paramMemory.frag",
@@ -501,6 +503,7 @@ INSTANTIATE_TEST_SUITE_P(
"spv.memoryScopeSemantics.comp",
"spv.memoryScopeSemantics_Error.comp",
"spv.multiView.frag",
+ "spv.queueFamilyScope.comp",
"spv.RayGenShader11.rgen",
"spv.subgroup.frag",
"spv.subgroup.geom",
@@ -579,6 +582,17 @@ INSTANTIATE_TEST_SUITE_P(
"spv.ext.World3x4.rahit",
"spv.ext.AccelDecl.frag",
"spv.ext.RayQueryDecl.frag",
+
+ // SPV_KHR_workgroup_memory_explicit_layout depends on SPIR-V 1.4.
+ "spv.WorkgroupMemoryExplicitLayout.SingleBlock.comp",
+ "spv.WorkgroupMemoryExplicitLayout.MultiBlock.comp",
+ "spv.WorkgroupMemoryExplicitLayout.8BitAccess.comp",
+ "spv.WorkgroupMemoryExplicitLayout.16BitAccess.comp",
+ "spv.WorkgroupMemoryExplicitLayout.NonBlock.comp",
+ "spv.WorkgroupMemoryExplicitLayout.MixBlockNonBlock_Errors.comp",
+ "spv.WorkgroupMemoryExplicitLayout.std140.comp",
+ "spv.WorkgroupMemoryExplicitLayout.std430.comp",
+ "spv.WorkgroupMemoryExplicitLayout.scalar.comp",
})),
FileNameAsCustomTestSuffix
);
diff --git a/known_good.json b/known_good.json
index 81301e13..4442f892 100644
--- a/known_good.json
+++ b/known_good.json
@@ -5,14 +5,14 @@
"site" : "github",
"subrepo" : "KhronosGroup/SPIRV-Tools",
"subdir" : "External/spirv-tools",
- "commit" : "cd590fa3341284cd6d1ee82366155786cfd44c96"
+ "commit" : "c79edd260c2b503f0eca57310057b4a100999cc5"
},
{
"name" : "spirv-tools/external/spirv-headers",
"site" : "github",
"subrepo" : "KhronosGroup/SPIRV-Headers",
"subdir" : "External/spirv-tools/external/spirv-headers",
- "commit" : "f027d53ded7e230e008d37c8b47ede7cd308e19d"
+ "commit" : "75b30a659c8a4979104986652c54cc421fc51129"
}
]
}
diff --git a/license-checker.cfg b/license-checker.cfg
index 886b3353..409f18ef 100644
--- a/license-checker.cfg
+++ b/license-checker.cfg
@@ -1,6 +1,7 @@
[
{
"licenses": [
+ "Apache-2.0",
"Apache-2.0-Header",
"BSD-2-Clause",
"BSD-3-Clause",
@@ -29,14 +30,19 @@
"build/**",
"out/**",
"Test/**",
- "External/spirv-tools/**"
+ "External/spirv-tools/**",
+
+ "SPIRV/GLSL.*.h",
+ "SPIRV/NonSemanticDebugPrintf.h",
+ "SPIRV/spirv.hpp"
]
}
]
},
{
"licenses": [
- "GPL-Header"
+ "GPL-Header",
+ "GPL-3.0-or-later"
],
"paths": [
{ "exclude": [ "**" ] },
diff --git a/parse_version.cmake b/parse_version.cmake
new file mode 100644
index 00000000..b9ba4137
--- /dev/null
+++ b/parse_version.cmake
@@ -0,0 +1,41 @@
+# Copyright (C) 2020 Google, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# parse_version() reads and parses the version string from FILE, assigning the
+# version string to ${PROJECT}_VERSION and the parsed version to
+# ${PROJECT}_VERSION_MAJOR, ${PROJECT}_VERSION_MINOR, ${PROJECT}_VERSION_PATCH,
+# and the optional ${PROJECT}_VERSION_FLAVOR.
+#
+# The version string take one of the forms:
+# <major>.<minor>.<patch>
+# <major>.<minor>.<patch>-<flavor>
+function(parse_version FILE PROJECT)
+ configure_file(${FILE} "${CMAKE_CURRENT_BINARY_DIR}/CHANGES.md") # Required to re-run cmake on version change
+ file(READ ${FILE} CHANGES)
+ if(${CHANGES} MATCHES "#+ *([0-9]+)\\.([0-9]+)\\.([0-9]+)(-[a-zA-Z0-9]+)?")
+ set(FLAVOR "")
+ if(NOT "${CMAKE_MATCH_4}" STREQUAL "")
+ string(SUBSTRING ${CMAKE_MATCH_4} 1 -1 FLAVOR)
+ endif()
+ set("${PROJECT}_VERSION_MAJOR" ${CMAKE_MATCH_1} PARENT_SCOPE)
+ set("${PROJECT}_VERSION_MINOR" ${CMAKE_MATCH_2} PARENT_SCOPE)
+ set("${PROJECT}_VERSION_PATCH" ${CMAKE_MATCH_3} PARENT_SCOPE)
+ set("${PROJECT}_VERSION_FLAVOR" ${FLAVOR} PARENT_SCOPE)
+ set("${PROJECT}_VERSION"
+ "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.${CMAKE_MATCH_3}${CMAKE_MATCH_4}"
+ PARENT_SCOPE)
+ else()
+ message(FATAL_ERROR "Unable to parse version from '${FILE}'")
+ endif()
+endfunction()